{"version":3,"sources":["providers/assets/asset.service.js","extras.js","app.js","templates.js","directives/app/sidebar/data/section/asset/revisions/revisions.js","directives/app/sidebar/data/section/upload/upload.js","directives/app/sidebar/data/section/batchDownloads/batchDownloads.js","directives/app/sidebar/data/section/asset/asset.js","directives/ui/mdTimePicker/src/js/mdTimePicker.js","directives/app/sidebar/nav/navItem/navItem.js","directives/app/sidebar/data/section/section.js","routes/campaign/video/advertising/new/new.js","routes/campaign/shoot/call/callDetails/callDetailsController.js","routes/administration/partners/emailTemplates/emailTemplate/emailTemplate.js","directives/widgets/listing/video/video.js","directives/widgets/listing/script/script.js","directives/widgets/listing/links/links.js","directives/widgets/listing/comment/comment.js","directives/widgets/listing/events/events.js","directives/widgets/dash/videos/videos.js","directives/widgets/dash/videoGrid/videoGrid.js","directives/widgets/dash/upcomingGraph/upcomingGraph.js","directives/widgets/dash/listingStatus/listingStatus.js","directives/widgets/dash/listingGrid/listingGrid.js","directives/widgets/dash/dueDateText/dueDateText.js","directives/widgets/common/notes/notes.js","directives/widgets/common/clock/clock.js","directives/widgets/common/calendar/calendar.js","directives/widgets/campaign/listings/listings.js","directives/widgets/campaign/advertiserMap/advertiserMap.js","directives/widgets/campaign/events/events.js","directives/widgets/advertising/impressions/impressions.js","directives/vls/events/filter/eventFilter.js","directives/vls/events/list/eventList.js","directives/vls/events/event/event.js","directives/vls/events/comment/eventComment.js","directives/uiGrid/ui-grid-custom-scroller-1.0.0/src/ui-grid-custom-scroller.module.js","directives/uiGrid/ui-grid-custom-scroller-1.0.0/src/ui-grid-custom-scroller.factory.js","directives/uiGrid/ui-grid-custom-scroller-1.0.0/src/ui-grid-custom-scroller.directive.js","directives/uiGrid/ui-grid-custom-scroller-1.0.0/src/ui-grid-custom-scroller.constants.js","directives/app/sidebar/nav/nav.js","directives/app/sidebar/data/data.js","routes/management/playlists/playlistVideos/playlistVideosController.js","routes/management/pages/page/pageController.js","routes/campaign/video/script/scriptController.js","routes/campaign/video/production/productionController.js","routes/campaign/video/preview/previewController.js","routes/campaign/video/advertising/advertising.js","routes/campaign/shoot/schedule/scheduleController.js","routes/campaign/shoot/footageReview/footageReviewController.js","routes/campaign/shoot/events/eventsController.js","routes/campaign/shoot/call/callController.js","routes/campaign/advertising/editAdvertising/editAdvertising.js","routes/campaign/advertising/advertisingListing/advertising.js","routes/administration/users/edit/editUserController.js","routes/administration/partners/emailTemplates/emailTemplatesController.js","routes/administration/partners/billingCodes/billingCodesController.js","routes/administration/partners/batch/batchController.js","directives/vls/workflowAction/workflowAction.js","directives/vls/statusSelect/statusSelect.js","directives/vls/partnerSelect/partnerSelect.js","directives/vls/filter/vlsFilter.js","directives/vls/events/events.js","directives/vls/comment/comment.js","directives/vls/campaignDrawer/campaignDrawer.js","directives/util/dragAndDrop/dragAndDrop.js","directives/util/bindHtmlTemplate/bindHtmlTemplate.js","directives/ui/monacoEditor/monaco.js","directives/ui/slimscroll/slimscroll.js","directives/ui/mdSelectMultiple/mdSelectMultiple.js","directives/ui/mdInputContainerExtended/mdInputContainerExtended.js","directives/ui/keyNavGrid/keyNavGrid.js","directives/ui/fullcalendar/fullcalendar.js","directives/ui/contextMenu/contextMenu.js","directives/ui/confirmMenu/confirmMenu.js","directives/ui/editRemove/editRemove.js","directives/ui/checkmark/checkmark.js","directives/app/userSelect/userSelect.js","directives/app/sidebar/appSidebar.js","directives/app/search/search.js","directives/app/loading/appLoading.js","directives/app/alerts/appAlerts.js","routes/management/playlists/playlistsController.js","routes/management/pages/pagesController.js","routes/campaign/videos/listingsController.js","routes/campaign/video/listingController.js","routes/campaign/video/eventsController.js","routes/campaign/shoot/shootController.js","routes/campaign/property/propertyController.js","routes/campaign/profile/profileController.js","routes/campaign/playlist/playlistController.js","routes/campaign/events/eventsController.js","routes/campaign/assets/assetsController.js","routes/campaign/advertiserDetails/advertiserDetailsController.js","routes/campaign/advertiser/advertiserController.js","routes/administration/users/usersController.js","routes/administration/partners/partnersController.js","providers/vls/partners/partners.js","providers/vls/partners/partner.js","providers/vls/partners/billingCodes.js","providers/vls/partners/api.js","directives/widgets/widgets.js","directives/widgets/baseWidget.js","directives/wavesurfer/wavesurfer.min.js","directives/wavesurfer/wavesurfer.js","directives/webDrop/webDrop.js","directives/vls/vlsDirectives.js","directives/videojs/videojs.js","directives/util/util.js","directives/tbGallery/tbGallery.js","directives/ui/ui.js","directives/slideMenu/slideMenu.js","directives/ngLoad/ngLoad.js","directives/productOrderTracker/productOrderTracker.js","directives/focus/focus.js","directives/dotSpinner/dotSpinner.js","directives/bugReport/bugReport.js","directives/contentEditable/contentEditable.js","directives/app/appDirectives.js","routes/user/userController.js","directives/advancedSearchOptions/advancedSearchOptions.js","routes/videos/videosController.js","routes/shoots/shoots.js","routes/reports/reportsController.js","routes/reports/reportFilterController.js","routes/management/managementController.js","routes/order/orderController.js","routes/index/indexController.js","routes/checkout/checkoutController.js","routes/customer/portal.js","routes/campaign/overviewController.js","routes/campaign/campaignController.js","routes/administration/administrationController.js","routes/assets/assetsController.js","providers/workflow/workflow.service.js","providers/workflow/workflow.module.js","providers/workflow/workflow.api.js","providers/videoListing/api.js","providers/util/validators.js","providers/util/keyboardShortcuts.js","providers/util/generateUID.js","providers/util/diffObjects.js","providers/util/batchTranslate.js","providers/vls/vpaList.js","providers/vls/vls.js","providers/vls/user.js","providers/vls/search.js","providers/vls/objects.js","providers/vls/listings.js","providers/vls/listingStatus.js","providers/vls/listingStats.js","providers/vls/creativeConsultants.js","providers/vls/campaign.js","providers/vls/api.js","providers/vls/accountExecutives.js","providers/svg/svg.js","providers/shoot/shoot.service.js","providers/shoot/shoot.module.js","providers/shoot/shoot.api.js","providers/security/security.module.js","providers/security/security.api.js","providers/reports/reporting.service.js","providers/reports/reporting.module.js","providers/reports/reporting.api.js","providers/orders/orders.module.js","providers/orders/orders.api.js","providers/playlists/playlists.module.js","providers/playlists/playlists.api.js","providers/config/config.module.js","providers/config/config.api.js","providers/communicationHub/communicationHub.api.js","providers/clientForms/clientForms.js","providers/assets/footer.js","providers/assets/batchDownload.js","providers/assets/assets.module.js","providers/assets/assets.api.js","directives/touch.js","providers/appDashboard/appDashboard.js","providers/appAuth/appAuth.js","providers/appAuth/mdsAuthManager.js","providers/appAuth/jwtInterceptor.js","providers/appAuth/authInterceptor.js","providers/advertising/api.js","providers/advertising/advertisingService.js","providers/advertising/advertising.js","dialogs/tags/tags.js","dialogs/shootFilter/shootFilter.js","dialogs/partnerSelect/partnerSelectDialog.js","dialogs/ngMap/ngMap.js","dialogs/newShooter/newShooterDialog.js","dialogs/campaignSelect/campaignSelectDialog.js","dialogs/assetTags/assetTagsDialog.js","dialogs/assetDetail/assetDetailDialog.js","dialogs/assetBulkOptions/assetBulkOptionsDialog.js","dialogs/advancedSearch/advancedSearch.js","directives/inputFocus.js","providers/util.js","providers/appConfig.js","providers/apiCore.js","filters/tel.js","filters/stringFunctions.js","filters/numberFunctions.js","filters/mimeTypes.js","filters/limitObjectTo.js","filters/eventFilter.js","filters/asyncFilter.js","filters/appFilters.js","dialogs/nameAndDescriptionPrompt.js","dialogs/dialogs.js","dialogs/billingCodeDialog.js","controllers/appController.js","vls.js","providers.js","polyfills.js","locale.js","filters.js","directives.js","controllers.js"],"names":["filterClients","value","index","arr","partnerIsSelected","selectedPartners","this","selected","partners","x","length","partnerId","assetEdit","assetEditController","$scope","$log","assetService","assetsApi","ctrl","$onInit","$onChanges","changes","active","previousValue","constructor","name","newVal","currentValue","edit","asset_id","then","asset","tags","undefined","searchText","get","query","getTags","transformChip","chip","angular","isObject","id","bindings","setAsset","controller","controllerAs","templateUrl","Log","prefix","window","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","callback","element","setTimeout","module","config","$locationProvider","$urlRouterProvider","$logProvider","$qProvider","html5Mode","enabled","requireBase","debugEnabled","$urlMatcherFactory","$stateProvider","$httpProvider","$mdThemingProvider","cfpLoadingBarProvider","$resourceProvider","AppConfigProvider","USER_ROLES","errorOnUnhandledRejections","defaults","stripTrailingSlashes","includeSpinner","latencyThreshold","definePalette","50","100","200","300","400","500","600","700","800","900","A100","A200","A400","A700","contrastDefaultColor","contrastDarkColors","contrastLightColors","theme","primaryPalette","default","hue-1","hue-2","hue-3","accentPalette","warnPalette","backgroundPalette","dark","registerStyles","caseInsensitive","state","url","abstract","template","data","requiresLogin","resolve","user","vlsUser","isLoaded","partnerCode","clientId","partnerName","partnerVPAs","vlsVPAList","load","clientid","result","items","partnerAEs","vlsAES","aes","partnerCCs","vlsApi","getUsersByRole","partnerBillingCodes","vlsBillingCodes","partnerProducts","getPartnerProductTypes","partnerproducttypes","partnerLogo","$stateParams","onEnter","$rootScope","$mdDialog","$timeout","$state","appAuth","AUTH_EVENTS","show","bindToController","loginError","login","processing","authenticate","credentials","username","password","notOff","$on","notAuthenticated","event","nextState","nextParams","statusText","internalmessage","off","loginSuccess","cancel","isStateTranisition","requestPassword","clickOutsideToClose","escapeToClose","fullscreen","onExit","when","otherwise","alwaysWatchTheme","setDefaultTheme","enableBrowserColor","palette","hue","run","$q","$cookies","$location","$window","$filter","fakeStateChangeSuccess","fromState","fromParams","$broadcast","redirectTo","stateParams","log","go","notify","reload","replace","inherit","blockAdBlock","alert","onDetected","local","toState","document","title","next","toParams","from","getElementById","scrollTop","rg4js","path","preventDefault","campaignid","userId","initialLoad","authorizedRoles","isAuthorized","error","unfoundState","service","cause","$templateCache","put","component","appSidebarDataSectionAssetRevisionsController","$element","$compile","$templateRequest","$sce","$appSidebar","appSidebarDataSectionUploadController","hidden","appSidebarDataSectionAssetController","setDisplayObject","obj","displayData","kind","originalFile","contentType","size","fileSize","createdBy","created","createdAt","modified","updatedAt","currentRevision","revisions","filter","revision","currentVersion","status","videoSrcObject","object","functions","getVideoSrcFn","uploadRevision","files","revisionFn","isVideo","getExtension","filename","split","pop","toLowerCase","getPublicLink","previewFiles","isOriginal","encoderId","video","find","file","poster","importUrl","moment","fixHour","hour","increment","Math","round","fixMinute","minute","mdTimePickerProvider","SCROLL_BUFFER","options","format","scrollBuffer","minMinute","maxMinute","minuteIncrement","minHour","maxHour","hourIncrement","$get","$mdPanel","DialogController","mdPanelRef","init","hourScroll","minuteScroll","setHour","setMinute","am","hourScroller","panelEl","querySelector","minuteScroller","mousewheelevt","test","navigator","userAgent","on","handleHourScroll","handleMinuteScroll","$event","timeStamp","lastHourScroll","deltaY","$apply","lastMinuteScroll","getAdjustedHour","adjustedHour","saveLabel","cancelLabel","Object","assign","Date","now","hourDisplay","_hour","postfix","$watch","tmp","_minute","minuteChange","getHour","diff","getMinute","val","absolute","isMinuteError","validMinute","setAm","validHour","hr","min","defer","reject","close","mdTimePickerForm","$valid","errorMsg","$error","getHourDisplay","promise","finally","panelRef","open","mValue","tz","timezone","panelPosition","newPanelPosition","relativeTo","target","addPanelPosition","xPosition","ALIGN_START","yPosition","BELOW","panelAnimation","newPanelAnimation","openFrom","withAnimation","animation","FADE","duration","attachTo","body","locals","minutes","position","focusOnOpen","onCloseSuccess","destroy","TimePickerCtrl","$attrs","$mdUtil","$$mdDateUtil","$mdTimePicker","timeRegex","ngModelCtrl","inputElement","ngInputElement","inputContainer","dateUtil","timeButton","ngDateFilter","date","isFocused","isDisabled","setDisabled","disabled","isString","openPanel","BROWSER_TZ","guess","utcOffset","provider","directive","inputDirective","restrict","scope","require","mdTimePicker","ngModel","mdInputContainer","link","attr","controllers","mdTimePickerController","ngModelController","configureNgModel","spacer","after","append","input","addClass","toggleClass","elm","attrs","opts","$eval","mdTimePickerHour","max","$validate","$validators","modelValue","viewValue","adjusted","parseInt","prototype","$postLink","attachChangeListeners","installPropertyInterceptors","self","ngDisabled","$parent","defineProperty","placeholder","set","debounceInterval","isDefined","handleInputEvent","bind","evt","parseInputEvent","debounce","oldVal","diffHours","diffMins","setHours","getHours","setMinutes","getMinutes","setModelValue","onExternalChange","openTimePanel","$setTouched","$modelValue","parsed","setDateTime","evalAttr","setFocused","openOnFocus","pre","noop","0","$formatters","push","parsedValue","parse","isNaN","isNumber","Error","$viewChangeListeners","unshift","updateErrorState","updateOn","getModelOption","triggerHandler","timeFormatter","newValue","opt_date","clearErrorState","isValidDate","isFunction","dateFilter","$setValidity","classList","remove","forEach","field","parseTime","exec","seconds","ampm","returnObj","hours","inputString","parsedTime","blur","isValidInput","parsedDate","$setViewValue","toJSON","setHasValue","appSidebarNavItemController","isActive","root","params","JSON","paramKeys","keys","key","includes","showChildren","item","condition","isLongLabel","text","depth","appSidebarDataSectionController","sectionIdentifier","type","sectionVisibility","cache","uid","sectionData","layout","sidebar","location","toggleHidden","$translate","EVENT_TYPES","campaignId","campaigndata","campaignData","hasBackdrop","fromNew","call","shootApi","shootId","callId","displayLoader","vlsSearchApi","securityApi","clientForms","util","shoot","shootData","partnerdata","setFormFieldPristine","elementNgModelController","$setPristine","$setUntouched","isNewCall","callData","DateTimeZone","ContactFirstName","firstname","ContactLastName","lastname","ContactPhone","businessphone","ContactEmail","emailaddress","callResult","callDateLoader","callTimeLoader","canEdit","eventComment","admin","masterAdmin","productionCoordinator","productionScheduler","timeZones","zone","currentCoordinator","coordinatorOptions","calls","users","roleIds","all","returnArray","res","firstName","lastName","setCoordinatorValue","getUserBasics","ids","coordinatorSearchTxt","ProductionCoordinatorValue","back","saveNewCall","callDetailsForm","setCallData","saveCallData","bypass","el","isFormFieldDirty","callApiCall","DateTimezone","ProductionCoordinatorId","templates","templateId","comHub","uiMonacoeditorConfig","email","editorOptions","language","wordWrap","onLoad","editor","isLoading","onPreviewSelect","blob","Blob","previewUrl","trustAsResourceUrl","URL","createObjectURL","onPreviewDeselect","indexOf","saveEmailTemplate","transitionTo","openLookUpDialog","ev","selectionRange","getSelection","getModel","getValueInRange","ctrl_","selectedItem","lookup","term","lookUpReplacement","results","hide","targetEvent","executeEdits","range","$dashboardWidgetsProvider","register","hideTitle","sizeX","sizeY","minSizeY","minSizeX","widgetBase","optionConfig","label","order","setSize","resizeTimeout","height","offsetHeight","width","offsetWidth","titleBarHeight","parent","rowHeight","ceil","neededHeight","newSizeY","extend","campaign","listing","listings","listingId","getOptionConfig","sources","src","videocode","productname","search","entityTypeId","entityId","imageMaster","image","gridster","isMobile","_$scope","doCancel","editAction","icon","actions","shift","model","script","editable","doEdit","cancelAction","readonly","accountExecutive","partnerData","method","methods","saveScript","prevValue","loadScript","scriptId","listingData","response","scripttext","decodeURIComponent","scriptText","encodeURIComponent","trixEditor","trixInitialize","e","addLink","links","cid","pid","vid","bid","bundleid","statusid","domDownloadLinkCIDs","media","loaded","pwmLegacy","linkType","entityType","VIDEOS","isExpanded","expandAction","EVENTTYPES","eventFilter","status_manual","production","coordination","comment","special","events","getEvents","extras","productionnotes","applySize","removeClass","newChart","chartInstance","views","published","wasClick","graphOptions","resizeUpdate","maintainAspectRatio","legend","display","onClick","dataset","scales","xAxes","ticks","userCallback","dataLabel","yAxes","gridLines","drawOnChartArea","labels","today","floor","random","labelDate","setDate","getDate","getMonth","refresh","graphData","datasets","series","impressionDataset","borderWidth","tension","borderColor","backgroundColor","pointBackgroundColor","yAxisID","impressionDataset2","getElementsByClassName","empty","day","dayIndex","month","tooltip","_active","getDatasetMeta","update","render","chart","showNew","showRev","tmpDate","viewsLast30","reduce","i","v","viewsLastMonth","viewsYTD","color","maxSizeY","localStorageService","emptyFilters","assignedTo","customDateRange","partnerClients","clients","assignees","mdsProductTypes","partnerProductTypes","revisionTypes","userObj","getUserData","userFilter","demographic","emailAddress","fullname","fullName","phonenumber","businessPhone","copyOrLoadLayout","confirm","htmlContent","ok","multiple","loadLayout","copyLayout","filters","textContent","layoutId","getLayouts","lsKeys","layouts","preEditor","videoEditor","videoQC","NgTableParams","paginationOptions","pageNumber","pageSize","sort","direction","equals","tableParams","page","count","sorting","duedate","total","getData","sortColumn","map","join","_headers","Pagination","billingCodes","dates","start","end","setSeconds","dayOfWeek","getDay","setFullYear","getFullYear","dueDateFrom","dueDateTo","toUpperCase","apiCall","videoListings","loading","pagination","headers","TotalItems","totalItems","totalPages","TotalPages","CurrentPage","dueDate","$data","counts","listingStats","processListingData","numDays","returnData","newListings","revListings","getPartnersOption","graphType","stacked","getConfig","getListingData","colors","newDataset","revDataset","partner","vlsListingStatus","findPartnerByCode","code","getUserPartners","names","getStatuses","getStatusIds","getLayout","currentPartner","getStatusCount","prev","gotoLink","f","stringify","searchTerm","debugMode","column","sortcolumn","sortdir","substring","getListings","partnercodefn","getTime","statusname","notes","parentStyles","merge","getCurrentTheme","isDark","foregroundPalette","borderLeftColor","iconStyles","getDailyListings","newCount","revCount","totalCount","showIcon","showDate","getClass","$interpolate","$interval","$http","loadingDefer","tickInterval","interval","tick","theDate","sec","getSeconds","getYear","clock","year","units","truthy","falsey","useGeo","initWeather","posOptions","timeout","enableHighAccuracy","weather","temp","geolocation","getCurrentPosition","geoSuccess","geoError","positionStr","getWeather","loadingTimeout","withCredentials","main","tempUnit","getWeatherIcon","clearTimeout","lat","coords","latitude","lon","longitude","time","category","iconChar","unitChar","character","unit","iElement","Attrs","calendar","previousMonth","nextMonth","getCalendarLayout","currentDate","firstDay","startDay","monthLength","daysInMonth","previousYear","previousDays","nextDays","rows","j","isLeapYear","setup","days","monthNames","setMonth","weeks","dateBackground","appConfig","includeDate","hover","leave","searchResult","orderBy","slice","map_id","NgMap","NgMapPool","ngMapStyles","lang","zoom","mapStyle","_map","getMap","google","maps","trigger","address","addressline1","addressline2","city","postalcode","companyname","CAMPAIGNS","impressions","clicks","clickDataset","clickDataset2","geo","keyword","live","newAds","package","cost","customPackageAmount","customPackageCost","vlsEventFilterController","vlsEventList","vlsPartner","vlsVpaList","vlsCCS","EVENT_ENTITIES","EVENT_CATEGORIES","EVENT_TEXT","LISTING_STATUS_EVENTS","SCRIPT_APPROVAL","GENDER_MAP","REVISION_TYPES","getItemText","toString","getItemType","getValueString","o","n","oldValue","vpalist","aeList","getAEList","ccList","getCCList","getListingStatusEvent","eid","getVONameFromId","vo","voTalent","escapeHTMLEncode","str","div","createElement","createTextNode","appendChild","innerHTML","oldvalue","newvalue","preposition","eventtypeid","newName","oldName","oldProd","getProductType","newProd","productName","getText","itemText","valueText","parseComment","parseEvents","parsedEvents","listEvent","groupid","eventtype","className","tempEvent","eventdate","createdby","recordid","recordtypeid","voTalentRequest","partnerRequest","defaultFilter","communication","entityid","entitytype","limit","showAddComment","showFilter","transclude","ENTITY_CODES","watchFn","isArray","showCommentForm","_defer","responses","eventTypes","vlsEventController","vlsEventCommentController","$keyboardShortcuts","shortcuts","action","pause","$doCheck","resume","$onDestroy","billingCode","factory","gridUtil","uiGridScrollerConstants","uiGridScroller","scrollHandler","point","touches","initiated","initType","pointX","pageX","pointY","pageY","startTime","startX","scrollLeft","startY","isAnimating","calcNewMove","scrollPos","delta","axis","newMove","getMaxScroll","move","newX","newY","timestamp","deltaX","translate","momentumX","momentum","momentumY","animate","destination","scrollType","NONE","curr","abs","distance","speed","deceleration","maxScroll","scroller","clientWidth","y","clientHeight","children","touchstart","TOUCHABLE","touchmove","touchend","touchcancel","isTouchEnabled","easeClb","relPoint","calcNewPos","destPos","easeRes","startPos","destX","destY","destTime","compile","$elm","uiGridCtrl","grid","customScroller","post","constant","MOUSE","POINTER","appSidebarNavController","canAccess","navItem","nav","appSidebar","appSidebarDataController","_data","playlist","playlistsApi","getPlaylist","playlistId","playlistVideosData","PlaylistVideos","columns","videolistingidfn","VideoListingId","getArrayIndex","match","findIndex","assignIndexAsPosition","Position","updatePlaylistVideosData","console","playlistHasChanged","LastPublishedAt","sortableOptions","orderChanged","savePlaylist","editVideo","answer","removeVideo","videoId","removeIndex","newPlaylist","MarkAsDeleted","Id","$emit","msg","fn","playlists","splice","removedVideo","publishPlaylist","toggleView","detailedView","addListings","queryStr","selectedListing","selectedListings","queryFn","PartnerCode","textfn","addVideosToPlaylist","videos","playlistItem","PlaylistId","ClientId","getPage","pageId","$mdColors","selectPlaylist","isPlaylistSelected","activePlaylist","pageOptions","getPlaylistUrl","savePage","saveObj","Columns","DisplayType","getItemStyle","selectedColor","player","plugins","playlistGrid","container","getThemeColor","$root","getThemeBackgroundColor","pages","listingdata","getWordCount","cont","encodeURI","notestext","setModelData","info","videoCode","productType","partnerproducttypeid","youtube","youtubeurl","assetsReady","assetsready","isAd","isad","isInPlaylist","isinplaylist","revisioncount","revisiontypeid","enablerefresh","gender","genderMap","genderpreferencedisplay","talent","votalentid","rush","vorush","shootdate","shootLength","shootlength","videoLength","videolength","intent","focus","details","focusdetails","unpublish","unpublishdate","keywords","setShooter","shooterid","setVOTalent","voiceovertalentfullname","setPC","productioncoordinatorid","buildFormsWithTranslations","partnerKey","testTranslation","instant","schema","videoProductionAssistant","properties","enum","productTypeEnum","x-schema-form","optionData","htmlClass","requireMatch","optionFilter","minLength","titleMap","step","shooter","addShooter","notitle","saveBtn","tempForm","copy","form","keys2","productTypeTitleMap","propertyMap","info.videoCode","info.productType","info.dueDate","revision.count","revision.type","revision.refresh","info.youtube","info.assetsReady","info.productionCoordinator","info.isAd","info.isInPlaylist","vo.gender","vo.talent","vo.rush","shoot.date","shoot.time","shoot.shooter","video.shootLength","video.videoLength","intent.intent","intent.details","unpublish.date","Male","Female","Any","addShooterFn","newShooter","shooterData","submit","newListingData","section","sectionName","prop","dateStr","timeStr","Number","resp","currentVOTalent","currentShooter","currentPC","inline","style","productTypeObj","getOptionsArray","getEnumArray","voTalentOptions","voiceOverTalent","shootersOptions","pcOptions","partnerForm","forms","loader","$dashboard","locations","getLocations","countries","regions","LocaleService","workflowActions","shootGeo","locale","getLocale","m","campaignPartnerCode","Geocoder","guessedTZ","tzMap","EDT","EST","CDT","CST","MDT","MST","PDT","PST","AKDT","AKST","HDT","HST","dateLoaders","dueDateLoaders","timeLoaders","setShooterValue","shooterSearchTxt","ShooterValue","openNewShooter","saveShootData","response2","setData","tmpLocation","copyBusinessAddress","toggleBusinessAddress","locationIndex","Addr1","Addr2","City","State","PostalCode","saveLocation","addLocation","ShootId","hasNewLocation","hasNewShot","create","removeLocation","viewLocation","$index","ngMapDialog","address1","address2","Name","stopEvent","stopPropagation","REGIONS","ShootDate","Shooter","canSeeShooterData","apiCredentials","ShootDateTimeZone","geocode","geometry","toUrlValue","timeZoneId","tzMatch","err","shootUpdateListener","getActions","$translateListener","feedback","getFeedback","searchApi","feedbackInit","entries","entry","autoFocusSettings","lens","frameRates","previousFeedback","checkboxToggle","idx","saveFeedback","feedbackParams","clearFeedback","footageParams","createdById","assets","bundles","bundleId","BundleId","footage","onFeedbackRowClick","row","isImage","onFootageRowClick","getOriginalFile","getVideoSrc","mp4s","getFilteredFiles","getPosterUrl","mime","a","b","getBoundingClientRect","eventsData","customerService","productionManager","isVPA","contacts","partnerContacts","950","740","getContacts","pc","pcContacts","pcCon","idx2","inPartner","preferredDayEnum","callResultEnum","isDateTime","auditValue","audit","auditLog","ColumnName","tzSearch","tmpAudit","OriginalValue","getHTML","sendEmail","message","ToAddresses","ReplyTo","defaultMessage","Comment","External","otherEmails","addComment","concat","getCalls","$mdDateLocale","initShootDates","ShootDates","guessedTz","shotList","ShotList","callHistory","listingsForShoot","promises","timezoneLoaders","setupDayArray","dayNum","timeZoneName","shootDetails","mornings","evenings","dayNameLocale","dayName","listingBundleId","customAttributes","attributevalue","$stateChangeListener","getDayName","toggleDayCheckbox","pos","toggleCheck","savePreferredShootDays","checkDay","checkMornings","checkEvenings","getTimezone","uploadShotList","file_input","PartnerId","ShotlistAssetId","getCall","shooGetData","uploadShotListRevision","revise","deleteShotList","delete","saveListing","hasClass","save","getCallDateTime","loaders","tmpData","preferredMornings","preferredEvenings","saveShootDates","setPreferredShootDate","removePreferredShootDate","addShot","VideoListings","Title","Topic","saveShot","shot","tmpShot","$$hashKey","removeShot","adData","advertisingApi","getAdByCampaign","adid","geoData","getGeoTargeting","adProducts","getProducts","videoListing","getVideoListing","getPartnerProducts","adListing","productData","unAddedVideoList","customFullscreen","selectedVideoListing","endDateSelect","started","startOn","ended","endOn","startDateComparison","endDateComparison","currentDay","String","targetingData","zipCode","radius","advertisingCampaignId","getCheckedStatus","createUnaddedVideoListing","adId","advertising","addZipCode","saveGeoTargetingCampaign","deleteZipCode","deleteGeoTargetingCampaign","saveAdCampaign","updateAdData","ad","saveAdListing","updateCampaignData","saveCampaign","getById","toggleAdStatus","showAdConfirm","toggleListingStatus","showListingConfirm","toggleProductStatus","productTableValues","showConfirm","addNewProductToCampaign","toggleVideoList","contentElement","addVideoToList","endDate","startDate","toISOString","clickUrl","websiteUrl","updateDate","submitVideoListing","addVideosToListing","updatePartnerProductTable","product","productBody","advertisingProductId","addPartnerProduct","getDailyImpressions","impressionData","filtered","values","pDate","processDate","MONTHS","CHART_OFFSET","getReports","_campaignId","_clientId","dailyImpressions","monthlyImpressions","flatVal","imp","firstMonth","chartMin","sortedData","chartMax","getCampaignProductList","products","getCampaignImpressions","dailyChart","datasetOverride","responsive","autoSkip","monthlyChart","_index","isChecked","$mdConstant","vlsPartners","createFilterForPartner","lowercaseQuery","setUserRoles","userRoles","roleId","setPartnerSelectOptions","partnerSelect","partnerArray","objectKeyAlphaSort","saveUserData","addressLine1","addressLine2","postalCode","roles","newPassword","newpassword","newPassword2","newpassword2","newUser","userName","partnercode","roleids","vlsuserid","userid","saveUser","states","abbrev","current","1","2","3","4","5","6","7","8","9","10","11","12","13","18","19","55","60","70","left","right","resetCurrent","checked","role","setChecks","conditional","same","change","copyFromPartner","partnerAutocomplete","copyFromUser","copyUser","userAutocomplete","getUser","copyUserDetails","newRoleObj","hasOwnProperty","querySearch","lockUser","stopImmediatePropagation","isLocked","errorcode","apply","addToBatch","selectedPartner","applyPermissionsTo","getEmailTemplatesByPartner","getBillingCodes","removeBillingCode","removeInProgress","documentElement","one","confirmBillingCodeRemoval","editBillingCode","billingCodeDialog","addBillingCode","S3","BUCKET","REGION","IDENTITY_POOL_ID","USE_ACCELERATION","decorator","$delegate","$injector","has","overwrite","domain","DOMAIN","s3UtilFactory","endpoints","s3Util","upload","uploadFile","workflowActionController","vm","vlsStatusSelectController","initialized","prevData","childLayout","statuses","getDefaults","layoutFlat","accum","showCount","userPartners","getCounts","updateCounts","partnerCodes","clearStatus","allStatus","openAccordionsObj","toggleAccordion","labelFormatted","openAccordions","isParentChecked","col","every","isParentIndeterminate","some","toggleAllChildren","check","vlsPartnerSelectController","getAllClients","isRow","showClients","setPartners","client","filterModal","$parse","$vlsFilter","onApply","statusFilter","partnerFilter","openFilter","isOpen","_self","preserveScope","vlsCommentController","vlsCampaign","getBillingCodeEmail","sendNotification","partnerAddresses","DOM","send","WHI","GAN","TMG","PRO","ADV","packet","ccbvprod","otherEmail","notificationemailaddress","ccvpa","saveComment","setUpListeners","closeDrawer","setUpNav","currentItemData","getItemData","modifiers","gotoNextItem","gotoPrevItem","onCloseDrawer","openDrawer","displayItemTable","currentItem","setUpNavObject","itemNav","gotoItem","itemId","getItemSref","currentItemId","displayListingTable","searchId","stateData","toggleDrawer","isFileDrag","dragEvent","fileDrag","dataTransfer","originalEvent","types","enter","onDragEnter","fakeDropEvent","DragEvent","bubbles","dispatchEvent","fakeLeaveEvent","originalHtml","newScope","$new","removeWatch","html","htmlValue","trustAsHtml","contents","uiMonacoeditorDirective","postLink","iAttrs","monacoeditorOptions","monacoeditor","uiMonacoeditor","uiMonacoeditorOpts","newMonacoeditorEditor","configOptionsWatcher","configNgModelLink","monaco","lineNumbers","minimap","automaticLayout","scrollBeyondLastLine","uiMonacoeditorAttr","updateOptions","newValues","oldValues","monacoeditorDefaultsKeys","setModelLanguage","isUndefined","$render","safeViewValue","$viewValue","setValue","onDidChangeModelContent","getValue","$evalAsync","PerfectScrollbar","getScrollbarSize","scrollbarWidth","scrollDiv","removeChild","css","overflow","top","ps","wheelPropagation","checkSize","containerHeight","scrollHeight","windowHeight","innerHeight","hideCheckboxes","lastClickedItem","shiftKey","finish","toChecked","selectAll","selectNone","blurFn","__mdBlurEvent","changeFn","showLoadingToSuccess","mdShowLoading","mdShowSuccess","updateFn","retVal","$$state","mdShowFailure","$$phase","loadingIndicator","successIndicator","errorIndicator","maxWidth","exampleItem","firstElementChild","compExampleStyle","getComputedStyle","itemWidth","marginLeft","marginRight","setCursorLocationByEvent","setCursorLocation","withFocus","cursor","focusOnCursor","activeElement","setCursorLocationByElement","itemIndex","Array","setCursorLocationByIndex","setSelection","endX","endY","newSelectionIndecies","selectionBeginCursor","selectionBegin","resizeBuffer","SHORTCUTS","meta","keyboardShortcuts","uiFullcalendarDirective","attrConfig","defaultConfig","uiFullcalendar","uiFullcalendarOpts","FullCalendar","Calendar","initialView","headerToolbar","center","dateClick","arg","changeView","ngRightClick","getAncestor","contextMenuItems","contextMenu","menu","showContextMenu","which","panelGroup","newPanelGroup","maxOpen","subPanelGroup","menuName","parentEl","groupName","openPanels","panel","parentPosition","withOffsetX","withOffsetY","panelConfig","closeSubmenu","closeTimeout","cancelClose","preventFn","panelContainer","doAction","panelClass","propagateContainerEvents","yes","no","showMenu","CENTER","zIndex","editFn","removeFn","identifier","documentEl","cancelConfirm","confirmFn","userSelectController","currentUser","userListReady","typeAName","usersLoaded","changesObj","setUserValue","userOptions","tempUser","userSearchTxt","onBlur","appSidebarProvider","Sidebar","sidebars","fields","generic","unload","$cacheFactory","$mdSidenav","generateUID","orderIndex","loadingSidebar","loadingSidebarCache","addFields","add","side","newSection","sidebarData","loadSidebar","sidebarCacheItem","sidebarLayout","tempSidebarCacheItem","getField","duplicate","toggle","tempSidebar","changeBuffer","getPartnerClientList","returnArr","subItem","appSidebarController","$animate","findSection","getSection","currentSection","createSection","getFields","fieldName","fieldLabel","fieldData","insertNode","parentNode","insertLocation","previousSibling","collapsedState","prevState","setCollapseStateClass","clearSidebar","sidenav","$body","isLockedOpen","toggleCollapseState","canCollapse","canExpand","getCollapsedStateIcon","icons","toCollapsed","toExpanded","chevron","__data","renderUID","buildShowFn","existing","charAt","substr","showVal","lockSize","appSearchController","focused","shouldCollapse","collapse","q","p","expand","expanded","tmpParams","inputEl","advancedSearchRef","toggleAdvanced","showAdvancedSearch","currentTarget","ALIGN_END","_$httpProvider","requests","completed","tracking","lastLoad","opacity","track","release","checkComplete","hasAppLoaded","isTracking","complete","CacheFactory","$appLoading","isCached","defaultCache","urlToTest","buildUrl","paramSerializer","cached","serializedParams","request","responseError","rejection","warn","getLoaderBackground","interceptors","align","$appAlerts","appAlerts","history","fromHistory","alertObj","clearHistory","updatePlaylists","newPlaylists","nameAndDescription","isAdmin","editPlaylist","playlistToEdit","dataObj","removePlaylist","deletePlaylist","removedPlaylist","reinstatePlaylist","playlistObj","forceCreate","DeletedAt","createPlaylist","updatePages","newPages","selectedTab","selectPage","isPageSelected","activePage","newPage","editPage","Description","removePage","deletePage","pageObj","createPage","reinstatePage","filterByBundle","bundle","listingsReturn","clean","dirty","none","getBundleParams","bundleParams","listingResults","orderedData","batchSubmit","dirtyDebounce","videolistingid","scriptrequirement","apiCalls","bundleParamsObj","dataKey","checkboxes","batch","batchEdit","checkDirty","cancelTimeout","toggleFilterByBundle","columnConfig","scriptRequirements","adminActions","administration_actions","_workflow_actions","do","AppConfig","assetsUrls","mediaorder","assetUrl","shootsData","workflowService","shootService","newShoot","shoots","bundleIds","shootsByBundle","getTimeZoneOffset","getTimeZoneName","addShoot","shootFromBundle","AdvertiserId","ListingCode","ShootType","ShootTypeId","DueDate","WorkflowId","WorkflowStateId","Length","getProfileData","propertyData","$resource","API_ENDPOINTS","AdvertiserSocialMedia","AdvertiserProfile","listingCode","listingcode","profileData","advertiserBusinessHours","openTime","closeTime","advertiserMedias","mediaType","mediaTypeName","advertiserDataBusinessCategories","businessDataName","advertiserId","social","socialSaving","socialMediaId","inUse","available","socialMediaName","saving","new","network","watch","$promise","isNew","socialData","videoListingApi","saveData","vlsApiProvider","campaignSidebar","assetsNavItem","global","userClients","fileTypes","getFileTypes","newNavItems","newBundleNavItems","bundleItems","$translations","$translateProvider","translations","batchTranslate","aeData","vpaData","billingCodeData","ccData","currentAE","currentVPA","currentCC","currentBillingCode","aeOnChange","advertiser","businessContact","aeEmail","aePhone","phone","getTranslation","fallbackBase","testKey","use","fallbackBaseNormalized","fallbackKey","testResult","required","advertiserName","website","stateAU","zip","advertiserContact","salesRepName","salesRepEmail","salesRepPhone","salesRep2Name","salesRep2Email","salesRep2Phone","ae","cc","vpa","info.listingCode","info.advertiserName","info.businessPhone","info.website","info.billingCode","address.address","address.address2","address.city","address.state","address.stateAU","address.zip","advertiserContact.firstName","advertiserContact.lastName","advertiserContact.phone","advertiserContact.email","businessContact.salesRepName","businessContact.salesRepEmail","businessContact.salesRepPhone","businessContact.salesRep2Name","businessContact.salesRep2Email","businessContact.salesRep2Phone","businessContact.ae","businessContact.cc","businessContact.vpa","websiteurl","contactphone","salesrepname","salesrepemail","salesrepphone","salesrep2name","salesrep2email","salesrep2phone","newCampaignData","p1","billingcode","billingCodesObj","aesObj","uniqueArray","ccsObj","ccs","vpasObj","vpas","alphaSort","billingCodeOptions","createOptionsFilterFunction","vpaOptions","aeOptions","ccOptions","reloadOnSearch","closeByExit","isLoginUsers","pageCounts","deleteUser","confirmModal","deactivateUser","clearFilter","buffer","loadDefer","nameSplit","VLSPartner","cleanSidebars","rightNavBar","partnerObj","rightNav","vlsSearch","vlsPartnersApi","findPartner","getPartner","foundPartner","_cache","partnerList","_callCache","getByCode","getByName","getClientsForPartner","clientData","displayName","allPartners","getPartners","productTypes","partnerProductType","Partner","_parent","_partnerCode","_partnerName","_partnerId","_aeList","_vpaList","_ccList","_productTypes","_apiCounters","totalApiCalls","maxApiAttempts","partnersAttempts","aeAttempts","productTypesAttempts","billingCodesAttempts","_partnersLoadStart","_parseApiNotification","getDataFromSet","returnVal","retPartner","nameKey","cacheTTL","_partnerData","_billingCodes","partnerbillingcodes","req","_partnersLoadSuccess","_partnersLoadError","_aeLoadStart","_aeLoadSuccess","_aeLoadError","_productTypesLoadStart","_productsTypeAttempts","_productTypesLoadSuccess","_productTypesLoadError","_billingCodesLoadStart","_billingCodesLoadSuccess","_billingCodesLoadError","_vpaLoadStart","vpaAttempts","_vpaLoadSuccess","_vpaLoadError","_ccLoadStart","_ccLoadSuccess","_ccLoadError","ccAttempts","getBillingCode","getAE","getCC","getVPA","_forms","formName","BASE","PARTNERS","BILLING_CODES","CLIENTS","PRODUCT_TYPES","apiCore","performApiCall","includeProducts","includeClients","nameIdCode","performRawApiCall","apiProvider","baseWidgetService","setupLoading","tearDownLoading","clone","debug","optionsFn","define","amd","WaveSurfer","exports","defaultParams","waveColor","progressColor","cursorColor","cursorWidth","skipLength","minPxPerSec","pixelRatio","devicePixelRatio","screen","deviceXDPI","logicalXDPI","fillParent","scrollParent","hideScrollbar","normalize","audioContext","dragSelection","loopSelection","audioRate","interact","splitChannels","mediaContainer","mediaControls","renderer","backend","autoCenter","savedVolume","isMuted","tmpEvents","createDrawer","createBackend","drawer","Drawer","drawBuffer","progress","getPlayedPercents","c","seekTo","fireEvent","WebAudio","supportsWebAudio","startAnimationLoop","isPaused","d","getCurrentTime","getDuration","play","playPause","isPlaying","skipBackward","skip","skipForward","seekAndCenter","recenter","stop","setVolume","setPlaybackRate","toggleMute","getVolume","toggleScroll","toggleInteraction","getWidth","getPeaks","drawPeaks","loadArrayBuffer","decodeArrayBuffer","loadDecodedBuffer","loadBlob","FileReader","addEventListener","onProgress","readAsArrayBuffer","loadBuffer","loadMediaElement","getArrayBuffer","once","ajax","responseType","lengthComputable","exportPCM","clearTmpEvents","un","disconnectSource","setWidth","unAll","arguments","getId","Observer","XMLHttpRequest","xhr","handlers","scriptBufferSize","PLAYING_STATE","PAUSED_STATE","FINISHED_STATE","AudioContext","webkitAudioContext","getAudioContext","getOfflineAudioContext","offlineAudioContext","OfflineAudioContext","webkitOfflineAudioContext","ac","lastPlay","currentTime","startPosition","scheduledPause","playing","paused","finished","createVolumeNode","createScriptNode","createAnalyserNode","setState","disconnectFilters","disconnect","analyser","connect","gainNode","setFilter","setFilters","createScriptProcessor","scriptNode","createJavaScriptNode","addOnAudioProcess","onaudioprocess","removeOnAudioProcess","createAnalyser","createGain","createGainNode","gain","offlineAc","sampleRate","decodeAudioData","numberOfChannels","g","h","getChannelData","k","l","source","createSource","createBufferSource","noteGrainOn","noteOff","playbackRate","getPlayedTime","MediaElement","elementPosition","controls","autoplay","preload","peaks","onPlayEnd","seekable","clearPlayEnd","setPlayEnd","volume","AudioElement","lastPos","createWrapper","createElements","wrapper","userSelect","webkitUserSelect","overflowX","overflowY","setupWrapperEvents","handleEvent","clientX","scrollWidth","clientY","bottom","resetScroll","barWidth","drawBars","drawWave","recenterOnPosition","updateSize","setHeight","updateProgress","clearWave","Canvas","waveCc","getContext","progressWave","boxSizing","borderRightStyle","borderRightWidth","borderRightColor","progressCc","canvas","clearRect","fillStyle","fillRect","beginPath","moveTo","lineTo","closePath","fill","querySelectorAll","readyState","app","$document","getLength","deferred","audio","listener","removeEventListener","DOMError","attributes","tracks","selectedIndex","currentTrack","addTrack","trackScope","removeTrack","playerProperties","nKey","$1","getPlayer","setAutoPlay","forcePlay","surfer","autoPlay","setTrack","extraButtons","class","mdWavesurferUtils","albumArt","dur","$mdTheme","timeInterval","control","themeClass","defaultTheme","isReady","isMute","initWaveSurfer","stopInterval","startInterval","src1","src2","toolbarClass","isWebDrop","HTMLCanvasElement","toBlob","quality","binStr","atob","toDataURL","len","Uint8Array","charCodeAt","onDrop","dragData","imgSrcRegex","imageUrl","img","drawImage","$flow","addFile","isLocal","webDropDragEnter","webDropDragLeave","videojs","updatePlayer","playlistPlugin","removePlayer","playerEl","s","writePlayer","playerObj","tech","stopTrackingCurrentTime","dispose","dimTheLights","showPosterAtEnd","bvReporting","ready","allowedImageTypes","get_random_color","letters","ancestor","cls","tagName","elements","$container","preview","$previewImageCon","$preview","dims","fullsize_url","$row","indicator","$target","$figure","$previewRow","nextElementSibling","$previewRows","arrowPosition","offsetLeft","loc","process","rowWidth","elWidth","ext","file_url","thumbnail_url","ratio","displaywidth","medium_url","$previewIndicator","base","onSelect","showSelect","selectIcon","tbGalleryFactory","checkLoaded","totalLoaded","output","tbGallery","preloads","firstLoad","selectImage","isSelected","tmpPreload","background-image","$imgCon","$img","isMoving","setMenuSize","$active","$slider","lastElementChild","getClosest","onlyParent","nodeName","hasAnyAttribute","rawAttr","altForms","hasAttribute","menuContent","parentElement","getAttribute","menuItemClick","menuPreviousClick","showLoading","currentPos","developer","isStatusComplete","statusPos","stat","isStatusActive","getDetails","statusCall","statusDetails","statusError","elem","eventFocus","eventFocusId","opener","hasOpenedBefore","openBugReporter","Function","ua","detect","jQuery","dataType","ATL_JQ_PAGE_PROPS","triggerFunction","showCollectorDialog","fieldValues","userData","affectsVersion","mdsApp","version","description","href","browser","major","minor","patch","device","manufacturer","os","innerWidth","environment","App Version","Url","Browser","Device","Operating System","Window Size","Screen Resolution","User Agent","thisArg","T","A","TypeError","O","kValue","mappedValue","_this","regexes","browser_parsers","regex","family_replacement","other","family_replacment","tablet","v2_replacement","v1_replacement","os_parsers","os_v2_replacement","os_v1_replacement","os_replacement","mobile_os_families","device_parsers","device_replacement","mobile_browser_families","parsers","parser","families","ArrayProto","nativeForEach","ret","props","each","iterator","context","_","toVersionString","suffix","family","regexp","rep","major_rep","man","RegExp","major_version_replacement","UserAgent","mobile_agents","addListeners","doRead","removeListeners","read","parseHtml","validate","convertNewLines","onlyText","ngMaxlength","ngMinlength","modelKey","opt","contenteditable","schemas","maxLength","password2","password3","validationMessage","models","tempForms","settings","onSubmit","transcludeLabel","disableGeneralTab","disableStatusTab","disableAssigneeTab","disableDatesTab","$transclude","vlsPartnerApi","userHasEID","getUserRoles","sectionExpanded","general","week","hasTransclusion","addToAssignees","assignedToValue","removeFromAssignees","addSelfToAssignees","setAssigneesToAnyone","doAssignees","toggleSection","isSectionOpen","filterProductsForMDS","productTypeId","filterProducts","advancedSearchOptionsCtrl","$mdMenu","vlsDueDateCategories","uiGridGridMenuService","uiGridSaveStateService","uiGridConstants","getColumnWidth","horizontalScroll","getCurrentState","savedState","gridApi","saveState","saveWidths","saveOrder","saveScroll","saveFocus","saveVisible","saveSort","saveFilter","savePinning","saveGrouping","saveGroupingExpandedStates","saveTreeView","saveSelection","paginationCurrentPage","getPageApiCallOptions","campaignAttributes","endDay","setMilliseconds","dir","gridDataChangeWatchFn","getFiltersAsQueryString","_filters","urlFiltersRaw","urlFilters","hasUrlFilters","mergeDeep","vlsFilterIsOpen","filterWatch","filterDebounce","filterListings","openFilters","closeFilters","setColumns","visible","updateVisibleColumns","toggleColumnVisibility","onDomRemoved","saveLayout","prompt","ariaLabel","previousLayout","toOverwrite","writeLayout","restore","defaultData","pinned","scrollFocus","selection","grouping","treeView","paginationPageSize","openLayoutMenu","core","notifyDataChange","dataChange","COLUMN","removeLayout","enforceMinMax100","canvasWidth","enableColumnResizing","drawnWidth","resetGrid","newParams","doClickEvent","entity","listingid","editCopy","newdiv","selectAllChildren","exportToCSV","fullSet","gridOptions","csvContent","pom","setAttribute","click","showLoader","enablePinning","pinnedLeft","cellTemplate","enableSorting","cellFilter","pagesArray","paginationPageSizes","useExternalPagination","useExternalSorting","showGridFooter","showColumnFooter","enablePaginationControls","enableFiltering","disableScrolling","enableHorizontalScrollbar","enableVerticalScrollbar","scrollbars","NEVER","enableColumnMenus","minimumColumnSize","minRowsToShow","virtualizationThreshold","rowTemplate","columnDefs","onRegisterApi","colResizable","columnSizeChanged","colDef","deltaChange","columnVisibilityChanged","sortChanged","sortColumns","paginationChanged","colMovable","columnPositionChanged","pinning","columnPinned","getPageApiCall","skipSave","isFiltering","createRange","getTotalPages","mdDialog","getCellTemplate","inner","searchParams","filterModel","getCalEvents","successCB","errorCB","shootDateFrom","startStr","shootDateTo","endStr","newCalEvents","newEvent","companyName","shootDate","extendedProps","catch","searchVal","updateColumns","requestedShootDates","aD","bD","enableRowSelection","enableFullRowSelection","selectionRowHeaderWidth","getPageCall","selectedIds","pending","onClose","newKey","baseName","paramDebug","header","reportData","reportApi","reports","reportTableParams","formatDate","getDatesFromDateOptions","dateOptions","startOf","subtract","route","stateParamKeys","savedReportData","getReportById","findField","addFieldToForm","onChange","compileAdvertisersLists","advertisersRequest","getReportByClientId","advertisersObj","advertisers","advertisersOptions","currentAdvertiser","getValueForAutoComplete","reportDataById","reportDataPropertyKeys","dateFlag","toggleFlag","filledOutLog","optionFlagFromSavedReport","savedReportStatus","errMsg","partnerIdCatalog","clientIdCatalog","reportIdCatalog","selectedMode","selectedDirection","reportModel","startdate","enddate","dateoptions","performanceData","reportURL","datasource","getPartnersFromReportData","createFormFromReportPropertyKeys","parentFilter","updateFormToAllowCustomDateRange","getReportData","formLength","getReportByPartnerId","clientIndex","advertisersIndex","partnerIdRegEx","clientIdRegEx","listingCodeRegEx","advertisersRegEx","tempUrl","qstring","getPerformanceReport","updateStartDate","updateEndDate","convertArrayOfObjectsToCSV","args","ctr","columnDelimiter","lineDelimiter","downloadCSV","csv","startIndex","endIndex","initializeVariables","resetValues","copyURL","protocol","host","generateOptions","showSimpleToast","leftSidebar","$httpParamSerializerJQLike","validators","ordersApi","reset","$ac","hasAssets","hasSubmitted","currentStep","steps","nextText","orderDate","toLocaleDateString","addons","companyContact","advertiserDetails","videoIntent","music","requirement","getSubmitObject","newOrderData","intentDetails","intentKeys","orderAddons","shootStr","prodNotes","shootTimes","AdditionalComments","noSpecial","accountId","noSpace","productTypesEnum","passcode","partnerIntentEnums","videoIntentDetails","videoIntentChecks","videoIntentArray","maxItems","minItems","startAtMin","videoIntentItem","videoIntentAltArray","videoIntentItemAlt","known","schedule","mdIcon","proceed","infoForm","videoCodeCheck","producttype","accountid","contactForm","advertiserForm","videoForm","addon","adimpressions","info.orderDate","info.addons","info.passcode","info.accountId","companyContact.salesRepName","companyContact.salesRepEmail","companyContact.salesRepPhone","companyContact.ae","companyContact.vpa","companyContact.cc","advertiserDetails.companyName","advertiserDetails.address","advertiserDetails.address2","advertiserDetails.city","advertiserDetails.state","advertiserDetails.zip","advertiserDetails.phone","advertiserDetails.website","videoIntent.videoLength","videoIntent.videoIntent","videoIntent.videoIntentChecks","videoIntent.videoIntentArray","videoIntent.videoIntentAltArray","videoIntent.videoIntentDetails","music.music","script.requirement","script.text","assets.requirement","assets.url","notes.notes","shoot.shoot","shoot.schedule","ignoredProducts","productTypesObj","partnerproducttypename","TWC","DEX","DEX_ALT","assetsOnChange","previousChecked","intentChecksOnChange","maxlength","scriptWriter","voiceOverCoordinator","webServiceAccount","leftNavBar","leftNav","defaultRoles","canBatch","canAssign","statusForGrid","statusForReassign","accountTypeForUser","is","redirect","getFilterTemplate","filterFn","parsedOptions","filterStr","selectRow","userToAssign","groupByBundle","checkout","videoListingCount","videoListingId","bundleids","checkoutListings","setAssignmentMode","reassignMode","statusidfn","setGenderFilter","genderPreference","toggleBundleView","usersObj","ASC","priority","filterHeaderTemplate","rowSelectionChanged","rowSelectionChangedBatch","rowsRendered","textFN","withAssignee","genderpreferences","videoListingsBundles","authRequired","updateText","portal","hasSubmited","minDate","noWeekendsPredicate","completeMessage","shootOptions","shootLocation","getSidebarData","VLSCampaign","shootdata","drawerData","campaignUpdateListener","$destroy","sidebarTimeout","leftNavSidebar","rightNavSidebar","squash","vlsBillingcodes","getClients","STATES","COUNTRIES","select","getMasters","getAssetAssociation","typeId","removeRightSidebar","getFigureAssetId","getFigureAssetIndex","getFigureFromEvent","elementFromPoint","getIdFromEvent","figure","getIndexFromEvent","arr_diff","a1","a2","assetIndex","assetRecord","addAndClickDownloadLink","testForBlur","temporaryDownloadLink","innerText","iframe","download","fileDownloads","PREVIEW","proxies","lastIndexOf","TRANSCODE","ORIGINAL","getDownloadUrl","mediaFileTypes","isMedia","videoFileTypes","imageFileTypes","extension","zipMasterFileTypes","audioFileTypes","search_params","allowedAssetTypes","fileType","allowedVideoTypes","allowedAudioTypes","selectedClient","globalAssets","selectPartner","selectClient","hideForm","showForm","formVisible","toggleForm","countryCode","activeUploads","activeUploadData","iconSize","increaseIconSize","decreaseIconSize","setLayout","openUploadMenu","getFileType","kindSplit","showThumbnails","shouldShowThumbnail","getThumbnail","thumbnailContentTypes","thumbnail","videoMaster","hasVideoMaster","hasImageMaster","zipMaster","hasZipMaster","audioMaster","hasAudioMaster","openTagDownloadSelector","association","assetTagsDialog","assetBulkOptionsDialog","bulkOptions","assetAssociationId","assetAssociationTypeId","tagIds","tag","assetIds","notifyUser","includeOnlyOriginal","originalsOnly","requestUrl","beginBatchDownloadSelection","lastClickIndex","ignoreSelect","selectButNotLoad","_current","fromGrid","currentIndex","ctrlKey","metaKey","changeSelection","fieldSortKeys","pageSizes","getDirection","getIcon","rightClickMenu","shortcut","batchDownload","svgIcon","batchDelete","addTags","activeElementId","activeElementIndex","refreshInterval","ignorePaginationChange","ignoreIfEqual","dataArr","oldData","nextPage","gotoPage","prevPage","searchSubmit","outstandingSidebar","oldDefer","assetId","newDefer","versions","getVersions","asset_hash","deleteFn","setRevisionFn","setActiveRevision","getPosterUrlFn","selectCampaign","campaignSelect","tagsPrompt","previewDialog","previewDialogObject","assetsData","assetReturn","editDialog","dialog","assetDetail","amt","downloadNextFile","autoDownloadInterval","downloadIframes","setRevision","version_result","revisionUploaded","master","menus","getWorkflowStates","workflowApi","workflowStatesDefer","workflowStates","authenticated","workflow","wf","allStatesDefer","allStates$","getStates","actionsDefer","actions$","setEntity","setEntityId","setEntityType","getEntityStates","Sequence","executeAction","actionId","execute","setWorkflow","workflowId","allStates","entityStates","getStateNameById","wfStates","wfid","stateId","singleton","ENTITY","ALL_STATES","GET_ACTIONS","EXECUTE_ACTION","LISTING","SHOOT","CCNRecruiting","fresh","skipBase","getEntityActions","executeEntityAction","getAllWorkflowStates","getEntityWorkflowStates","hasBody","Status","StatusDetails","Playlist","PlaylistSort","re_weburl","Shortcut","node","normalizeModifiers","getModifierArray","modifierArray","newModifierArray","alt","modifier","getModifierObject","modifierObject","checkModifiers","checkKey","doShortCut","onKeyPress","contains","$$window","pow","diffObjects","aTotal","createTranslationCallback","phrase","that","translatedCount","getTranslations","translationPromises","vpaList","getVPAList","_userid","userDefer","userPartnersSorted","secApiEndpoints","jwtHelper","USERS","compileUserPartners","stateOrRoles","authorized","aName","bName","getUserPartnersDefer","userPartnerKeys","ALL_ROLES","partnerRoles","ASSETS","VIDEO_LISTING","VIDEO_LISTING_GENERIC","VIDEO_LISTING_BUNDLE","USER","PARTNER","videoListingsGeneric","vls","dueDateCategories","notActive","stage1","stage2","stage3","pastDue","awaitingCustomer","scriptMap","entities","entityCodes","entityTypes","eventCategories","eventText","104","105","108","110","112","120","122","130","140","150","304","308","312","316","320","324","328","332","504","508","512","516","520","521","524","526","527","528","530","534","550","551","552","554","556","558","559","560","561","562","563","564","565","566","567","568","569","570","573","574","704","708","712","716","720","724","904","listingStatus","16","17","20","22","26","27","30","31","32","33","36","64","68","72","90","91","128","129","255","256","257","258","260","310","620","650","655","1000","1100","1111","1200","1205","1210","1215","1024","2036","2040","2048","2050","4096","65536","131072","scriptApprovalMap","14","15","21","23","24","25","94","95","96","97","98","99","101","102","103","106","151","152","153","158","160","161","162","163","164","165","166","167","201","202","203","204","205","206","301","302","303","305","306","307","350","351","352","353","354","355","356","357","358","359","401","402","403","404","405","406","407","408","501","502","503","510","511","513","531","532","533","553","555","601","721","722","723","801","802","803","804","805","820","821","QUICKSTART","CONVENTIONAL","TESTIMONIAL","LEGACY","LVS","PVP","THIRD","SPECIAL","VTOUR","vlsStatuses","vlsUserData","listingworkflowstates","VLSListing","VLSListingsCustomAttributes","VLSListingsActions","VLSListingsScript","Listings","_videoListings","_activeListing","tmpListings","updateVideoListingById","VLSListingCustomAttributes","VLSListingActions","VLSListingScript","Listing","customattributes","workflow_actions","ListingCustomAttributes","_attributes","attributeid","aerialpasses","photostodeliver","motiongraphics","musicpreference","attributeNameMap","FocusDetails","ShootLength","VideoLength","AerialPasses","PhotosToDeliver","MotionGraphics","ScriptRequirement","Music Preference","getAttributeById","ListingActions","_actions","actionoptions","saveObject","currentstatusid","sendAction","ListingScript","_listingId","scriptid","getVideoListingScriptById","script_id","commenttext","updateVideoListingScriptById","getListingCountByStatus","StatusProvider","getStatus","clearCache","successFn","vlsListingStats","listingData_","tomorrow","thisWeek","upcoming","purge","tempDate","returnCount","VLSCampaignListings","Campaign","_campaignData","_events","_vpas","campaignAttempts","listingUpdateListener","getCampaign","retCampaign","videolistings","profileUrl","partnername","_parseCustomAttributes","_campaignLoadStart","getCampaignById","_campaignLoadSuccess","_campaignLoadError","_campaignAttempts","_maxApiAttempts","vpaLoadStart","_partnerLoadStart","_partnerLoadSuccess","_partnerLoadError","_parnterName","establishedYear","productServices","affiliations","landingpage","landingpagelink","advertiserprofileurl","advertiserprofileurllink","onlyData","_loadOnlyCampaign","updateCampaignById","aeid","ccid","vpaid","getPromise","$httpParamSerializer","pass","APPCONFIG","application","logout","LOGOUT","RESET_PASSWORD","getCampaigns","newFilters","userPartnerCodes","valueStr","VIDEO_LISTINGS","CAMPAIGN","VIDEO_LISTING_COMMENT","VIDEO_LISTING_WORKFLOW","LISTING_OVERVIEW","VPA_LIST","AE_LIST","PARTNER_PRODUCT_TYPES","PARTNER_BILLING_CODES","PARTNER_BILLING_CODE","updateBillingCode","createBillingCode","getUsers","USERS_BY_ROLE","roleid","LOCK_USER","DEACTIVATE_USER","getScript","VO_SCRIPT","scriptnotes","getVideoListingById","CHECKOUT_LISTING","getProfiledata","PARTNER_PROFILE_INFORMATION","polarToCartesian","centerX","centerY","angleInDegrees","angleInRadians","PI","cos","sin","describeArc","startAngle","endAngle","arcSweep","largeArc","svgEl","createElementNS","getDayOctal","Shoot","_promise","single","shootDates","getPreferredShootDates","shotListAsset","resultAll","ShotListAsset","shootType","PreferredDaySunday","PreferredDayMonday","PreferredDayTuesday","PreferredDayWednesday","PreferredDayThursday","PreferredDayFriday","PreferredDaySaturday","preferredDates","DateType","toDate","dateData","wf_actions","shootAction","GroupLabel","Label","option","requiredinputtype","shootCallsApiCall","parseDetails","eventData","eventApiCall","commentApiCall","comments","usernames","userResults","UserFullName","detail","eventDetail","AuditLogs","dateA","CreatedDate","createdDate","dateB","dateSubmited","CALL","SHOTLIST","LOCATION","PREFERRED_DATE","COMMUNICATION_HUB","EVENT_AUDIT","HUB_EVENTS","HUB_COMMENTS","SHOOT_COMMENT","SHOOT_TYPE","SHOOT_FEEDBACK","getAll","getSingle","setShootType","shootTypeId","createCall","updateCall","removeCall","getShotList","getShot","shotId","createShot","updateShot","getLocation","locationId","createLocation","updateLocation","getDates","dateId","createDate","removeDate","getShootEvents","getShootComments","createShootComment","createFeedback","updateFeedback","feedbackId","TOKEN","USER_BASICS","appendTransform","transform","jwtData","Content-Type","transformResponse","getUserDefer","userCall","result2","reject2","reportingApi","VERSION","LOOKUP","TYPE","PERFORMANCE","ADVERTISERS","DUE_TODAY","getDueDateReport","excludePartners","excludeStatuses","partnerExcepts","statusExcepts","CREATE","ApiProvider","videocodecheck","retObj","salesperson","currentae","aeNameSplit","currentvpa","CompanyName","AddressLine1","AddressLine2","BusinessPhone","WebSiteUrl","FirstName","LastName","EmailAddress","CellPhone","extraQueries","orderWSURL","PLAYLISTS","PAGES","parsePlaylist","positions","getPlaylists","parsedPlaylists","getPages","GENERIC","getUserConfig","TEMPLATES","baseUrl","$diffObjects","ClientForm","getForm","formOriginal","lock","removeExtra","isEmptyObj","settingsDiff","defaultSettings","itemsOriginal","dash","createFilterForNameAndValue","createFilterForName","updateFooter","footer","footerData","uploads","returnValue","fileName","fileSizeInBytes","imgUrl","blobURL","addUpload","timer","pct","SEARCH","ASSET","FILE","ENTITY_TYPES","ASSET_OPERATIONS","RESTART","ASSET_OPERATIONS_EXTERNAL","TAG","FILE_TYPES","DOWNLOAD","clean_file_name","file_name","createVersion","isGlobal","associations","fileCreate","fileSetActiveRevision","getEntityTypes","getAssetVersionFile","assetVersionId","fileId","getOperations","getOperation","operationId","restartOperation","getExternalActions","getExternalAction","externalActionId","cfg","AWS","setPromisesDependency","region","CognitoIdentityCredentials","IdentityPoolId","s3Params","Bucket","s3","apiVersion","useAccelerateEndpoint","getSignedUrl","Key","ResponseContentDisposition","Body","ACL","assetsFooter","findEntityType","fileKeyOnS3","file_id","createFile","fileKey","createAssetRecord","assetUpdate","availableEntityTypes","errorResult","createAsset","fileItem","reviseAsset","readAsset","errorMessage","error_message","created_at","updated_at","current_version","deleteAsset","editAsset","new_asset","showDialog","dialogDefer","editController","autoWrap","countryCodes","stateCodes","availablePartners","availableClients","tbTouch","eventName","directiveName","minColumns","minRows","maxRows","pushing","floating","swapping","colWidth","margins","outerMargin","mobileBreakPoint","mobileModeEnabled","defaultSizeX","defaultSizeY","resizable","handles","widget","resize","draggable","scrollContainer","drag","Widget","dashboard","formattedName","directiveClassName","insertBefore","insertBfore","actionAdded","optionsTemplate","newOptions","removeWidget","initialize","optionsElement","widgets","categories","getCategories","$dashboardWidgets","$dashboardWidget","Dashboard","sub","resource","idSplit","dashboards","getItems","items_","settingsOriginal","letter","widgetInfo","maxSizeX","setEl","addWidget","namespace","widgetTypes","newWidget","selectedType","widgetDefaults","widgetIndex","lastRemovedWidget","undoRemove","unlock","locked","toggleLock","$observe","dashboardWidget","containerEl","persistence","419","440","loginFailed","logoutSuccess","sessionTimeout","notAuthorized","creativeConsultant","guest","jwtOptionsProvider","tokenGetter","whiteListedDomains","unauthenticatedRedirectPath","unauthenticatedRedirector","_isAuthenticated","jwtOptions","JWT_BUFFER","invokeToken","invoke","jwtConfig","checkPersistant","refresh_token","vlsLogin","apiLogin","api","decodeToken","access_token","skipEmit","isExpired","isNearExpired","jwtToken","isTokenExpired","exp","vlsData","token","deauthenticate","JWT_AUTH_EVENTS","invokeRedirector","redirector","isAnonymous","jwtInterceptor","isAuthenticated","unauthenticate","checkAuthOnRefresh","redirectWhenUnauthenticated","verifyRoute","routeData","$$route","getToken","urlParam","authHeader","authPrefix","urlUtils","AUTH_EVENT_STATUSES","AUTH_EVENT_MESSAGES","SECURITY_API_ENDPOINTS","VLS_API_ENDPOINTS","reauthenticate","retry","reauthBuffer","addToReauthBuffer","isSafe","isSameOrigin","hostname","urlResolve","timeout401","previous401","reauthInProgress","skipAuthorization","retryPromise","reauthCall","checkRefresh","thisDefer","refreshDefer","refreshAuth","authCall","authErrorKey","authError","authErrorMessage","MARKETING_BASE","ADVERTISER","ADS","GEOTARGETING","PRODUCTS","ALL_ADS","adCampaignId","geoId","performRawReportApiCall","$mdDialogProvider","addPreset","tagsAutocomplete","$mdPanelProvider","definePreset","stringToInt","clear","tabId","pcIdsValue","shootersValue","listingCodes","pcIds","shooters","requestedShootDateFrom","requestedShootDateTo","postalCodes","ENTITY_TYPE","wfId","isStateInArr","mapStyles","newval","filterOn","seen","isObjects","selectedCampaigns","campaignIds","listingIds","campaigns","campaignSearch","expandRow","testIndex","common","isReserved","searchSelected","assetApi","versionOpen","originalFileOpen","proxyFileOpen","previewFileOpen","objectKeys","hiddenKeys","$mdSelect","mdsProductType","statusLayout","mdsproducttypename","producttypeid","partnerid","onSelectOpen","selectAllStates","selectNoStates","getStatusFlexWidth","nameA","nameB","nameAndValue","optionsToFilter","isMergeableObject","emptyTarget","cloneIfNecessary","optionsArgument","deepmerge","defaultArrayMerge","mergeObject","array","arrayMerge","undfined","server","serverConfig","getConfigJSON","Errors","str2","apiCache","transformations","raw","removeAll","canceller","json_data","tel","trim","country","number","ucAbbr","mom","noYes","isOSX","seperator","abbreviations","META","CTRL","ALT","SHIFT","ENTER","DEL","BACKSPACE","LEFT","RIGHT","bytes","precision","parseFloat","isFinite","toFixed","rating","mimeFilter","hasExt","$stateful","asyncFilter","async","subscribe","inputId","objectId","subscriptions","subscriptionStrategy","success","$applyAsync","unsubscribe","__asyncFilterObjectID__","nextObjectID","SCRIPT_MAP","cachedUsers","revisionTypeFilter","enumVal","SHOOT_TYPES","shootTypeFilter","workflowStateFilter","partnerCodeFilter","productTypeFilter","partnerProductTypeId","isEdit","apiError","$mdTheming","buildToggler","componentId","isDev","currentState","currentStateClass","currentNavResult","currentNavItem","authData","authTime","showSearch","didBlur","toggleSearch","searchBtnClick","appSidebars","toggleAppAlertHistory","mdSelectRepeatOnOpen","repeatIndex","Event","topIndex","navigateToGridPage","seek","list","uncheck","toggleDarkTheme","THEMES","getCurrentThemeName","alpha","hues","rowColors","odd","oddSelected","even","evenSelected","getRowColor","rowRenderIndex","nothing","prevent","toggleResize","toggleLeftSidebar","toggleRightSidebar","toggleBottomSidebar","devThemes","predicate","callbackfn","fun","t","searchElement","fromIndex","lowercase","txt","locales","en_US","es_MX","preferredLocale","tmhDynamicLocaleProvider","LOCALES","useLocalStorage","useStaticFilesLoader","preferredLanguage","fallbackLanguage","localeLocationPattern","tmhDynamicLocale","localesObj","_LOCALES","_LOCALES_DISPLAY_NAMES","currentLocale","checkLocaleIsValid","setLocale","getLocaleDisplayName","setLocaleByDisplayName","localeDisplayName","getLocalesDisplayNames","currentLocaleDisplayName","localesDisplayNames","changeLanguage","shapes","twitter","facebook","googleplus","linkedin","rss","binoculars","db-search","user-search","low-quality","file-file","file-pdf","file-xml","file-image","file-video","file-audio","file-text","file-doc","file-xls","file-ppt","file-csv","file-svg","file-zip","button","searchTextModel","mdSearchText","selectedItemModel","mdSelectedItem","reqs","$isEmpty","US","CA","MX","AU","AL","AK","AS","AZ","AR","CO","CT","DE","DC","FM","FL","GA","GU","HI","ID","IL","IN","IA","KS","KY","LA","ME","MH","MD","MA","MI","MN","MS","MO","MT","NE","NV","NH","NJ","NM","NY","NC","ND","MP","OH","OK","OR","PW","PA","PR","RI","SC","SD","TN","TX","UT","VT","VI","VA","WA","WV","WI","WY"],"mappings":"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","file":"app.min.js","sourcesContent":["'use strict';\n\nangular.module('assets.asset', ['assets.api'])\n\t.factory('assets.s3Util', ['$q', 'assets.api.endpoints', function( $q, endpoints ) {\n\n\t\t\treturn function( config ) {\n\n\t\t\t\tthis.cfg = endpoints.S3;\n\n\t\t\t\tif ( config ) {\n\t\t\t\t\tthis.cfg = Object.assign( {}, endpoints.S3, config );\n\t\t\t\t}\n\n\t\t\t\tAWS.config.setPromisesDependency($q);\n\n\t\t\t\tAWS.config.update({\n\t\t\t\t\tregion: this.cfg.REGION,\n\t\t\t\t\tcredentials: new AWS.CognitoIdentityCredentials({\n\t\t\t\t\t\tIdentityPoolId: this.cfg.IDENTITY_POOL_ID\n\t\t\t\t\t})\n\t\t\t\t});\n\t\t\t\tthis.s3Params = {Bucket: this.cfg.BUCKET };\n\t\t\t\tthis.s3 = new AWS.S3({\n\t\t\t\t\tapiVersion: '2006-03-01',\n\t\t\t\t\tparams: this.s3Params,\n\t\t\t\t\tuseAccelerateEndpoint: this.cfg.USE_ACCELERATION\n\t\t\t\t});\n\n\n\t\t\t\tthis.getDownloadUrl = function( key, fileName ) {\n\t\t\t\t\tconsole.log( '[S3 Util] Get Download URL', endpoints, this.s3Params, this.cfg, key, fileName );\n\t\t\t\t\tvar defer = $q.defer();\n\n\t\t\t\t\tthis.s3.getSignedUrl('getObject', { Bucket: this.s3Params.Bucket, Key: key, ResponseContentDisposition: 'attachment; filename=\"'+fileName+'\"'}, function( err, data ) {\n\t\t\t\t\t\tif ( err ) {\n\t\t\t\t\t\t\tdefer.reject( err );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdefer.resolve( data );\n\t\t\t\t\t});\n\n\t\t\t\t\treturn defer.promise;\n\n\t\t\t\t}\n\n\t\t\t\tthis.uploadFile = function(file, key) {\n\t\t\t\t\tconsole.log('[S3 Util] CREATE FILE FOR ', file);\n\n\t\t\t\t\t// var URL = window.URL || window.webkitURL;\n\t\t\t\t\t// var url;\n\t\t\t\t\t// if (URL && URL.createObjectURL) {\n\t\t\t\t\t//\n\t\t\t\t\t// \ttry {\n\t\t\t\t\t// \t\turl = URL.createObjectURL(file);\n\t\t\t\t\t// \t} catch (e) {\n\t\t\t\t\t// \t\turl = '';\n\t\t\t\t\t// \t}\n\t\t\t\t\t//\n\t\t\t\t\t// } else {\n\t\t\t\t\t// \turl = '';\n\t\t\t\t\t// }\n\t\t\t\t\t//\n\t\t\t\t\t// file.blobURL = url;\n\n\t\t\t\t\t// Upload file to S3.\n\n\t\t\t\t\tvar upload = this.s3.upload({\n\t\t\t\t\t\tKey: key,\n\t\t\t\t\t\tBody: file,\n\t\t\t\t\t\tACL: 'public-read'\n\t\t\t\t\t});\n\n\n\t\t\t\t\treturn upload;\n\t\t\t\t}\n\n\t\t\t\treturn this;\n\t\t\t};\n\t}])\n\t.provider('assets.asset', function () {\n\n\n\t\tvar blankAsset = {\n\t\t\tselected: {\n\t\t\t\tpartners: undefined,\n\t\t\t\tclients: undefined,\n\t\t\t\tcampaigns: undefined,\n\t\t\t\tvideoListings: undefined,\n\t\t\t\ttags: undefined\n\t\t\t},\n\t\t\toriginal: {\n\t\t\t\tpartners: undefined,\n\t\t\t\tclients: undefined,\n\t\t\t\tcampaigns: undefined,\n\t\t\t\tvideoListings: undefined,\n\t\t\t\ttags: undefined\n\t\t\t}\n\t\t};\n\n\t\t// To remove something, you must set DeletedAt. Otherwise it will add/update the relationship.\n\t\tfunction updateFromModified(modified, id, key) {\n\t\t\tvar ret = [];\n\t\t\tif (modified !== undefined) {\n\t\t\t\tret = modified.map(function (item) {\n\t\t\t\t\tvar temp = {\n\t\t\t\t\t\tAssetId: id,\n\t\t\t\t\t\tDeletedAt: null\n\t\t\t\t\t};\n\t\t\t\t\ttemp[key] = item;\n\t\t\t\t\treturn temp;\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\n\t\t// grab anything from the original NOT in the newly selected and mark it as deleted.\n\t\tfunction updateFromOriginal(modified, original, id, key) {\n\t\t\tvar ret = [];\n\t\t\tangular.forEach(original, function (orig) {\n\t\t\t\tif (modified.indexOf(orig) === -1) {\n\t\t\t\t\tvar temp = {\n\t\t\t\t\t\tAssetId: id,\n\t\t\t\t\t\tMarkAsDeleted: true\n\t\t\t\t\t};\n\t\t\t\t\ttemp[key] = orig;\n\t\t\t\t\tret.push(temp);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ret;\n\t\t}\n\n\t\tfunction getUpdatedValue(modified, original, id, key) {\n\t\t\treturn updateFromModified(modified, id, key).concat(updateFromOriginal(modified, original, id, key));\n\t\t}\n\n\n\t\tthis.$get = ['$rootScope', '$q', '$stateParams', '$mdDialog', 'assets.api', 'assets.footer', 'assets.api.endpoints', 'assets.s3Util', 'vls.partners', 'vls.campaign', function ($rootScope, $q, $stateParams, $mdDialog, assetsApi, assetsFooter, endpoints, s3UtilFactory, vlsPartners, VLSCampaign) {\n\t\t\tvar availablePartners;\n\t\t\tvlsPartners.get().then(function (partners) {\n\t\t\t\tavailablePartners = partners;\n\t\t\t});\n\n\n\t\t\tvar s3Util = new s3UtilFactory();\n\n\t\t\tvar availableClients;\n\t\t\tvlsPartners.getAllClients().then(function (clients) {\n\t\t\t\tavailableClients = clients;\n\t\t\t});\n\n\n\t\t\tvar availableEntityTypes;\n\t\t\tassetsApi.getEntityTypes().then(function (result) {\n\t\t\t\tavailableEntityTypes = result;\n\t\t\t})\n\n\t\t\tfunction findEntityType(type) {\n\t\t\t\treturn function (entityType) {\n\t\t\t\t\treturn entityType.name.toLowerCase() === type.toLowerCase();\n\t\t\t\t}\n\t\t\t}\n\n\n\t\t\treturn {\n\t\t\t\tcreate: createAsset,\n\t\t\t\tget: readAsset,\n\t\t\t\tread: readAsset,\n\t\t\t\tedit: readAsset,\n\t\t\t\tupdate: editAsset,\n\t\t\t\trevise: reviseAsset,\n\t\t\t\tdelete: deleteAsset,\n\t\t\t\tsetRevision: setRevision,\n\t\t\t\tgetVersions: getVersions,\n\t\t\t\tgetDownloadUrl: s3Util.getDownloadUrl.bind( s3Util ),\n\t\t\t\tdialog: {\n\t\t\t\t\tshow: showDialog\n\t\t\t\t},\n\t\t\t\t// fileKeyOnS3: fileKeyOnS3,\n\t\t\t\t// getAssetHash: getAssetHash\n\t\t\t};\n\n\t\t\tfunction fileKeyOnS3(asset_id, file_id, name, size) {\n\t\t\t\tvar key;\n\t\t\t\tswitch (size) {\n\t\t\t\t\tcase 'tiny':\n\t\t\t\t\tcase 'small':\n\t\t\t\t\tcase 'medium':\n\t\t\t\t\tcase 'large':\n\t\t\t\t\t\tvar nameSplit = name.split('.');\n\t\t\t\t\t\tvar ext = nameSplit.pop();\n\t\t\t\t\t\tvar nameSansExt = nameSplit.join('.');\n\t\t\t\t\t\tkey = 'asset-thumbnails/' + asset_id + '/' + file_id + '/' + nameSansExt + '-' + size + '.' + ext;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tkey = 'uploads/' + asset_id + '/' + file_id + '/' + name;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\treturn key;\n\t\t\t}\n\n\n\t\t\tfunction createFile(file, assetRecord) {\n\t\t\t\tconsole.log('CREATE FILE FOR ', file, assetRecord);\n\t\t\t\tvar defer = $q.defer();\n\n\t\t\t\tvar fileKey = fileKeyOnS3(assetRecord.id, assetRecord.currentVersion.id, file.name);\n\n\n\t\t\t\t// Upload file to S3.\n\t\t\t\tvar upload = s3Util.uploadFile(file, fileKey);\n\n\n\t\t\t\treturn assetsFooter.addUpload(assetRecord, upload).then(function (data) {\n\t\t\t\t\tconsole.log('ASSET FOOTER UPLOAD COMPLETE', data);\n\t\t\t\t\tdefer.resolve(true);\n\t\t\t\t});\n\n\n\t\t\t\treturn defer.promise;\n\t\t\t}\n\n\n\t\t\tfunction createAssetRecord(partnerId, file, tags) {\n\t\t\t\tvar defer = $q.defer();\n\t\t\t\tvar assetUpdate = {\n\t\t\t\t\tassociations: []\n\t\t\t\t};\n\n\t\t\t\tif (tags) {\n\t\t\t\t\tassetUpdate.tags = tags;\n\t\t\t\t}\n\n\t\t\t\tif ($stateParams.listingId) {\n\t\t\t\t\tassetUpdate.associations.push({\n\t\t\t\t\t\tentityId: $stateParams.listingId,\n\t\t\t\t\t\tentityType: availableEntityTypes.find(findEntityType('VideoListing'))\n\t\t\t\t\t});\n\t\t\t\t} else if ($stateParams.bundleId) {\n\t\t\t\t\tassetUpdate.associations.push({\n\t\t\t\t\t\tentityId: $stateParams.bundleId,\n\t\t\t\t\t\tentityType: availableEntityTypes.find(findEntityType('Bundle'))\n\t\t\t\t\t});\n\t\t\t\t} else if ($stateParams.shootId) {\n\t\t\t\t\tassetUpdate.associations.push({\n\t\t\t\t\t\tentityId: $stateParams.shootId,\n\t\t\t\t\t\tentityType: availableEntityTypes.find(findEntityType('Shoot'))\n\t\t\t\t\t});\n\t\t\t\t} else if ($stateParams.campaignId) {\n\t\t\t\t\tassetUpdate.associations.push({\n\t\t\t\t\t\tentityId: $stateParams.campaignId,\n\t\t\t\t\t\tentityType: availableEntityTypes.find(findEntityType('Advertiser'))\n\t\t\t\t\t});\n\t\t\t\t} else if ($stateParams.clientId) {\n\t\t\t\t\tassetUpdate.associations.push({\n\t\t\t\t\t\tentityId: $stateParams.clientId,\n\t\t\t\t\t\tentityType: availableEntityTypes.find(findEntityType('Client'))\n\t\t\t\t\t});\n\t\t\t\t} else if ($stateParams.partnerId) {\n\t\t\t\t\tassetUpdate.associations.push({\n\t\t\t\t\t\tentityId: $stateParams.partnerId,\n\t\t\t\t\t\tentityType: availableEntityTypes.find(findEntityType('Partner'))\n\t\t\t\t\t});\n\t\t\t\t} else { // If we don't have any of this, we upload as a global asset to MDS\n\t\t\t\t\tpartnerId = 1;\n\t\t\t\t\tassetUpdate.isGlobal = true;\n\t\t\t\t\tassetUpdate.associations.push({\n\t\t\t\t\t\tentityId: 1,\n\t\t\t\t\t\tentityType: availableEntityTypes.find(findEntityType('Partner'))\n\t\t\t\t\t});\n\t\t\t\t}\n\n\n\t\t\t\tvar apiCall = assetsApi.create(partnerId, file, assetUpdate).then(function (result) {\n\t\t\t\t\tvar assetUpdate = result.data;\n\n\t\t\t\t\tpromises.push(createFile(file, assetUpdate));\n\n\t\t\t\t\t$q.all(promises).then(function (results) {\n\t\t\t\t\t\tdefer.resolve(results);\n\t\t\t\t\t}, function (errorResult) {\n\t\t\t\t\t\tdefer.reject(errorResult);\n\t\t\t\t\t});\n\t\t\t\t\treturn result\n\t\t\t\t});\n\t\t\t\tvar promises = [apiCall];\n\n\t\t\t\treturn defer.promise;\n\t\t\t}\n\n\t\t\tfunction createAsset(partnerId, files, tags) {\n\t\t\t\t// var defer = $q.defer();\n\n\t\t\t\tvar promises = [];\n\n\t\t\t\tif (angular.isObject(files) && files.files) {\n\t\t\t\t\tfiles = files.files;\n\t\t\t\t}\n\n\t\t\t\tangular.forEach(files, function (fileItem) {\n\t\t\t\t\tpromises.push(createAssetRecord(partnerId, fileItem, tags));\n\t\t\t\t});\n\n\t\t\t\tconsole.log('CREATE PROMISES', promises);\n\n\t\t\t\treturn $q.all(promises);//defer.promise;\n\n\t\t\t}\n\n\t\t\tfunction reviseAsset(partnerId, id, files) {\n\t\t\t\tvar assetRecord;\n\t\t\t\tvar promises = [];\n\t\t\t\tvar defer = $q.defer();\n\n\t\t\t\tif (files.files) {\n\t\t\t\t\tfiles = files.files;\n\t\t\t\t}\n\n\t\t\t\tassetsApi.createVersion(partnerId, id, {\n\t\t\t\t\tcurrentVersion: true,\n\t\t\t\t\tdescription: files[0].name\n\t\t\t\t}).then(function (version) {\n\n\t\t\t\t\tvar revisionUpload = createFile(files[0], {id: version.assetId, currentVersion: version});\n\n\t\t\t\t\trevisionUpload.then(function (res) {\n\t\t\t\t\t\tconsole.log('ALL REVISION PROMISES RESOLVED', promises, res);\n\t\t\t\t\t\treadAsset(partnerId, id).then(function (asset) {\n\t\t\t\t\t\t\tdefer.resolve(asset);\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\n\t\t\t\t});\n\n\t\t\t\treturn defer.promise;\n\t\t\t}\n\n\t\t\tfunction setRevision(partnerId, version) {\n\t\t\t\tvar defer = $q.defer();\n\t\t\t\tconsole.log('SET REVISION', version);\n\t\t\t\tassetsApi.fileSetActiveRevision(partnerId, version).then(function (result) {\n\t\t\t\t\tdefer.resolve(result);\n\t\t\t\t}, function (errorResult) {\n\t\t\t\t\tvar errorMessage;\n\t\t\t\t\tswitch (errorResult.status) {\n\t\t\t\t\t\tcase 404:\n\t\t\t\t\t\t\terrorMessage = 'The revision is no longer available.';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\terrorMessage = errorResult.headers()['application-error'];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\t$rootScope.$broadcast('alert', {\n\t\t\t\t\t\ttype: 'danger',\n\t\t\t\t\t\ttitle: 'Error setting revision',\n\t\t\t\t\t\tmsg: errorMessage\n\t\t\t\t\t});\n\t\t\t\t\tdefer.reject();\n\t\t\t\t});\n\n\t\t\t\treturn defer.promise;\n\t\t\t}\n\n\t\t\tfunction getVersions(partnerId, id) {\n\t\t\t\treturn assetsApi.getVersions(partnerId, id).then(function (result) {\n\t\t\t\t\treturn result.data;\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tfunction readAsset(partnerId, id) {\n\t\t\t\tvar defer = $q.defer();\n\n\t\t\t\tassetsApi.get(partnerId, id, null).then(function (result) {\n\t\t\t\t\tconsole.log('GOT ASSET', result);\n\n\t\t\t\t\tvar assetRecord = result.data;\n\t\t\t\t\t//.map( function( asset ) {\n\t\t\t\t\t//\tconsole.log( \"Got Asset Files\", asset );\n\t\t\t\t\tassetRecord.originalFile = assetRecord.currentVersion && assetRecord.currentVersion.files ? assetRecord.currentVersion.files.find(function (item, i) {\n\t\t\t\t\t\treturn item.isOriginal\n\t\t\t\t\t}) : {};\n\t\t\t\t\t// var current_revision = assetRecord.Files.find(function(item) {\n\t\t\t\t\t// \tif (item.CurrentRevision)\n\t\t\t\t\t// \t\treturn item;\n\t\t\t\t\t// });\n\n\t\t\t\t\t// var asset_hash = getAssetHash( assetRecord, current_revision );\n\n\t\t\t\t\tdefer.resolve(assetRecord);\n\n\t\t\t\t}, function (errorResult) {\n\t\t\t\t\tvar errorMessage = '';\n\t\t\t\t\tconsole.log('GOT ERROR');\n\t\t\t\t\tswitch (errorResult.status) {\n\t\t\t\t\t\tcase 404:\n\t\t\t\t\t\t\terrorMessage = 'The asset is no longer available.';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\terrorMessage = 'There was an error retrieving the asset.';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconsole.log('GOT ERROR');\n\t\t\t\t\tvar asset_hash = {\n\t\t\t\t\t\t'name': null,\n\t\t\t\t\t\t'error_message': errorMessage,\n\t\t\t\t\t\t'asset_id': id,\n\t\t\t\t\t\t'thumbnail_url': 'http://placehold.it/350x350?text=ERROR',\n\t\t\t\t\t\t'kind': '',\n\t\t\t\t\t\t'size': '',\n\t\t\t\t\t\t'created_at': '',\n\t\t\t\t\t\t'updated_at': '',\n\t\t\t\t\t\t'current_version': '',\n\t\t\t\t\t\t// uploadRevisionFn: $scope.uploadRevision,\n\t\t\t\t\t\t// deleteFn: $scope.delete,\n\t\t\t\t\t\t'revisions': []\n\t\t\t\t\t};\n\t\t\t\t\tconsole.log('GOT ERROR');\n\t\t\t\t\t$rootScope.$broadcast('alert', {\n\t\t\t\t\t\ttype: 'danger',\n\t\t\t\t\t\ttitle: 'Error loading the Asset',\n\t\t\t\t\t\tmsg: errorMessage\n\t\t\t\t\t});\n\n\n\t\t\t\t\tdefer.reject(asset_hash);\n\t\t\t\t});\n\n\n\t\t\t\treturn defer.promise;\n\t\t\t}\n\n\n\t\t\tfunction deleteAsset(partnerId, id, $event) {\n\t\t\t\tconsole.log('DELETE ASSET', id, $event);\n\t\t\t\tvar defer = $q.defer();\n\t\t\t\tvar confirm = $mdDialog.confirm()\n\t\t\t\t\t.title('Confirm Deletion?')\n\t\t\t\t\t.textContent('Are you sure you would like to delete this asset?.')\n\t\t\t\t\t.ariaLabel('Confirm Deletion')\n\t\t\t\t\t.targetEvent($event)\n\t\t\t\t\t.ok('Delete')\n\t\t\t\t\t.cancel('Cancel');\n\n\t\t\t\t$mdDialog.show(confirm).then(function () {\n\t\t\t\t\tassetsApi.delete(partnerId, id).then(function (result) {\n\t\t\t\t\t\tdefer.resolve(result.data);\n\t\t\t\t\t});\n\t\t\t\t}, function () {\n\t\t\t\t\tdefer.reject();\n\t\t\t\t});\n\n\t\t\t\treturn defer.promise;\n\t\t\t}\n\n\t\t\tfunction editAsset(partnerId, asset) {\n\t\t\t\tvar new_asset = {\n\t\t\t\t\tid: asset.id,\n\t\t\t\t\tname: asset.name,\n\t\t\t\t\tdescription: asset.description,\n\t\t\t\t\tcity: asset.city,\n\t\t\t\t\tstate: asset.state,\n\t\t\t\t\tpostalCode: asset.postalCode,\n\t\t\t\t\tcountryCode: asset.countryCode,\n\t\t\t\t\tisGlobal: asset.isGlobal == '1' ? 1 : 0,\n\t\t\t\t\ttags: asset.tags\n\t\t\t\t};\n\n\t\t\t\tconsole.log('UPDATE ASSET', new_asset);\n\t\t\t\tvar apiCall = assetsApi.update(partnerId, new_asset);\n\t\t\t\tapiCall.then(function (result) {\n\n\t\t\t\t}, function (errorResult) {\n\n\t\t\t\t\tvar errorMessage = errorResult.headers()['application-error'];\n\n\t\t\t\t\tif (errorMessage == undefined) {\n\t\t\t\t\t\terrorMessage = Object.values(errorResult.data).join(', ');\n\t\t\t\t\t\tconsole.error(errorResult.data);\n\t\t\t\t\t}\n\n\t\t\t\t\t$rootScope.$broadcast('alert', {type: 'danger', title: 'Error Saving Asset', msg: errorMessage});\n\n\t\t\t\t});\n\n\t\t\t\treturn apiCall;\n\t\t\t}\n\n\t\t\tfunction getAssetForEdit(asset_id) {\n\t\t\t\tvar defer = $q.defer();\n\n\t\t\t\tassetsApi.get(asset_id, {}).then(function (result) {\n\t\t\t\t\tconsole.log('GET EDIT DETAILS', result);\n\n\n\t\t\t\t\tvar asset = angular.merge({}, blankAsset, result.data);\n\n\t\t\t\t\tconsole.log('GET EDIT DETAILS');\n\n\t\t\t\t\tasset.original = angular.merge({}, asset.selected);\n\n\t\t\t\t\tdefer.resolve(asset);\n\n\t\t\t\t}, function (errorResult) {\n\n\t\t\t\t\tvar errorMessage;\n\n\t\t\t\t\tswitch (errorResult.status) {\n\t\t\t\t\t\tcase 404:\n\t\t\t\t\t\t\terrorMessage = 'The asset is no longer available.';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\terrorMessage = 'There was an error retrieving the asset.';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\t$rootScope.$broadcast('alert', {\n\t\t\t\t\t\ttype: 'danger',\n\t\t\t\t\t\ttitle: 'Error loading the Asset',\n\t\t\t\t\t\tmsg: errorMessage\n\t\t\t\t\t});\n\t\t\t\t\tdefer.reject();\n\t\t\t\t});\n\n\n\t\t\t\treturn defer.promise;\n\t\t\t}\n\n\t\t\tfunction showDialog($event, partnerId, asset_id) {\n\t\t\t\tconsole.log('SHOW EDIT DIALOG: ', partnerId, asset_id);\n\t\t\t\tvar dialogDefer = $q.defer();\n\n\t\t\t\treadAsset(partnerId, asset_id).then(function (asset) {\n\n\n\t\t\t\t\tconsole.log('GOT ASSET FOR EDIT', asset);\n\t\t\t\t\t$mdDialog.show({\n\t\t\t\t\t\tcontroller: ['STATES', 'COUNTRIES', editController],\n\t\t\t\t\t\tcontrollerAs: 'ctrl',\n\t\t\t\t\t\tbindToController: true,\n\t\t\t\t\t\tlocals: {\n\t\t\t\t\t\t\tasset: asset,\n\t\t\t\t\t\t\tpartnerId: partnerId\n\t\t\t\t\t\t},\n\t\t\t\t\t\t// preserveScope: true,\n\t\t\t\t\t\ttemplateUrl: '/templates/assets/editDialog.tpl.html',\n\t\t\t\t\t\ttargetEvent: $event,\n\t\t\t\t\t\tclickOutsideToClose: true,\n\t\t\t\t\t\tfullscreen: false, // Only for -xs, -sm breakpoints.\n\t\t\t\t\t\tautoWrap: false\n\t\t\t\t\t}).then(dialogDefer.resolve, dialogDefer.reject);\n\t\t\t\t});\n\t\t\t\treturn dialogDefer.promise;\n\t\t\t}\n\n\t\t\tfunction editController(STATES, COUNTRIES) {\n\t\t\t\tvar ctrl = this;\n\t\t\t\tthis.countryCodes = Object.keys(COUNTRIES);\n\t\t\t\tthis.stateCodes = Object.keys(STATES);\n\n\t\t\t\tthis.close = function () {\n\t\t\t\t\t$mdDialog.cancel();\n\t\t\t\t};\n\t\t\t\tthis.save = function () {\n\t\t\t\t\teditAsset(ctrl.partnerId, ctrl.asset);\n\t\t\t\t\t$mdDialog.hide();\n\t\t\t\t};\n\t\t\t\tthis.selected = {\n\t\t\t\t\tpartners: [],\n\t\t\t\t\tclients: []\n\t\t\t\t}\n\t\t\t}\n\t\t}];\n\n\t})\n\t.component('assetsEdit', assetEdit())\n;\n\nfunction filterClients(value, index, arr) {\n\tvar partnerIsSelected;\n\tvar selectedPartners = this.selected.partners;\n\n\tfor (var x = 0; x < selectedPartners.length; x++) {\n\t\tif (selectedPartners[x] === value.partnerId) {\n\t\t\tpartnerIsSelected = true;\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn partnerIsSelected;\n}\n\nfunction assetEdit() {\n\n\tfunction assetEditController($scope, $log, assetService, assetsApi) {\n\t\tvar ctrl = this;\n\t\tvar availablePartners, availableClients;\n\n\t\tctrl.$onInit = function () {\n\n\t\t\t// vlsUser.getPartners().then(function (partners) {\n\t\t\t// console.log('GOT PARTNERS', partners);\n\t\t\t// availablePartners = partners;\n\t\t\t// });\n\t\t\t//\n\t\t\t//\n\t\t\t// vlsUser.getClients().then(function (clients) {\n\t\t\t// console.log('GOT CLIENTS');\n\t\t\t// availableClients = clients;\n\t\t\t// });\n\n\t\t};\n\n\t\tctrl.$onChanges = function (changes) {\n\t\t\tconsole.log('ASSET EDIT ON CHANGE', changes);\n\t\t\tif (changes.active && changes.active.previousValue.constructor.name !== 'UNINITIALIZED_VALUE') {\n\t\t\t\tvar newVal = changes.active.currentValue;\n\t\t\t\tif (newVal) {\n\t\t\t\t\tassetService.edit(newVal.asset_id).then(function (asset) {\n\t\t\t\t\t\tctrl.asset = asset;\n\t\t\t\t\t\t// ctrl.asset = angular.merge(asset, {clients: availableClients, partners: availablePartners});\n\t\t\t\t\t\t// console.log('NEW ASSET VAL', ctrl.asset, availableClients, availablePartners);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tctrl.asset = {};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (changes.asset) {\n\t\t\t\tctrl.asset = changes.asset.currentValue;\n\t\t\t}\n\t\t};\n\n\n\t\tctrl.tags = {\n\t\t\tselected: undefined,\n\t\t\tsearchText: '',\n\t\t\tget: function (query) {\n\t\t\t\tconsole.log(\"get tags\", query);\n\t\t\t\treturn assetsApi.getTags(query);\n\t\t\t},\n\t\t\ttransformChip: function (chip) {\n\t\t\t\tconsole.log('NEW CHIP', chip);\n\t\t\t\tif (angular.isObject(chip)) {\n\t\t\t\t\treturn {name: chip.name, id: chip.id};\n\t\t\t\t} else {\n\t\t\t\t\treturn {name: chip};\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tconsole.log('ctrl', ctrl);\n\n\t\t// ctrl.$doCheck = function () {\n\t\t// console.log('DO CHECK', ctrl.setAsset);\n\t\t// ctrl.setAsset({asset: ctrl.asset});\n\t\t// };\n\n\t\t// ctrl.filterClients = filterClients.bind(ctrl);\n\n\t}\n\n\treturn {\n\t\tbindings: {\n\t\t\tactive: '<',\n\t\t\tasset: '<',\n\t\t\tsetAsset: '&'\n\t\t},\n\t\tcontroller: ['$scope', '$log', 'assets.asset', 'assets.api', assetEditController],\n\t\tcontrollerAs: 'editCtrl',\n\t\t//template: \"
\",\n\t\ttemplateUrl: '/templates/assets/edit.tpl.html'\n\t};\n}\n","(function ( window, angular, undefined ) {\n\t'use strict';\n\n\n\tangular.module( 'app.extras', [ ] )\n\n\t\t.run([ '$templateCache', function( $templateCache ) {\n\t\t\t//icon resource should not be dependent\n\t\t\t//credit to materialdesignicons.com\n\t\t\tvar shapes = {\n\t\t\t\tconsole: '',\n\t\t\t\ttwitter: '',\n\t\t\t\tfacebook: '',\n\t\t\t\tgoogleplus: '',\n\t\t\t\tlinkedin: '',\n\t\t\t\trss: '',\n\t\t\t\tfilter: '',\n\t\t\t\tbinoculars: '',\n\t\t\t\t'db-search': '',\n\t\t\t\t'user-search': '',\n\t\t\t\t'low-quality': '',\n\t\t\t\t// File Types\n\t\t\t\t'file-file': '',\n\t\t\t\t'file-pdf': '',\n\t\t\t\t'file-xml': '',\n\t\t\t\t'file-image': '',\n\t\t\t\t'file-video': '',\n\t\t\t\t'file-audio': ' ',\n\t\t\t\t'file-text': '',\n\t\t\t\t'file-doc': '',\n\t\t\t\t'file-xls': '',\n\t\t\t\t'file-ppt': '',\n\t\t\t\t'file-csv': '',\n\t\t\t\t'file-svg': '',\n\t\t\t\t'file-zip': '',\n\n\n\n\t\t\t};\n\n\n\t\t\tfor (var i in shapes) {\n\t\t\t\tif (shapes.hasOwnProperty(i)) {\n\t\t\t\t\t$templateCache.put([ i, 'svg' ].join('.'),\n\t\t\t\t\t\t[ '', shapes[i], '' ].join(''));\n\t\t\t\t}\n\t\t\t}\n\n\n\n\n\n\t\t} ])\n\n\t\t/***********************/\n\t\t/***********************/\n\t\t/* quick fix for an issue with the mdDatePicker, which I can't recall right now... its working leave it a lone */\n\t\t.directive('mdCalendarMonthBody', [ '$mdTheming', function($mdTheming){\n\t\t\treturn {\n\t\t\t\tlink: function(scope, element){\n\t\t\t\t\t// var calendarPane = angular.element(element[0].querySelectorAll('.md-datepicker-calendar-pane *'));\n\t\t\t\t\t// angular.forEach( calendarPane, function( el ) {\n\t\t\t\t\t$mdTheming(element);\n\t\t\t\t\t// });\n\t\t\t\t}\n\t\t\t};\n\t\t} ])\n\n\t\t/***********************/\n\t\t/***********************/\n\t\t/* Adds an 'x' to clear an autocomplete without having to backspace or highlight / delete everything */\n\t\t.directive('clearAutocomplete', [ '$parse', function($parse) {\n\t\t\treturn {\n\t\t\t\trestrict: 'A',\n\t\t\t\tlink: function(scope, element, attrs) {\n\t\t\t\t\tvar button = angular.element('').addClass('clear-autocomplete');\n\t\t\t\t\tbutton.append('clear');\n\t\t\t\t\telement.append(button);\n\n\t\t\t\t\tvar searchTextModel = $parse(attrs.mdSearchText);\n\t\t\t\t\tvar selectedItemModel = $parse(attrs.mdSelectedItem);\n\n\t\t\t\t\tscope.$watch(searchTextModel, function(searchText) {\n\t\t\t\t\t\tif (searchText && searchText !== '' && searchText !== null) {\n\t\t\t\t\t\t\tbutton.addClass('visible');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbutton.removeClass('visible');\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tbutton.on('click', function() {\n\t\t\t\t\t\tsearchTextModel.assign(scope, undefined);\n\t\t\t\t\t\tselectedItemModel.assign(scope, undefined);\n\t\t\t\t\t\tscope.$apply();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\t\t} ])\n\n\t\t.directive('mdInputClear', [ '$parse', function($parse) {\n\t\t\treturn {\n\t\t\t\trestrict: 'A',\n\t\t\t\trequire: [\n\t\t\t\t\t'ngModel',\n\t\t\t\t\t'^mdInputContainer'\n\t\t\t\t],\n\n\t\t\t\tlink: function(scope, element, attrs, reqs) {\n\t\t\t\t\tvar ngModel = reqs[0];\n\t\t\t\t\tvar inputContainer = reqs[1];\n\n\t\t\t\t\tvar button = angular.element('').addClass('md-input-clear');\n\n\t\t\t\t\tbutton.append('clear');\n\t\t\t\t\tinputContainer.element.append(button);\n\t\t\t\t\tinputContainer.element.addClass( 'md-input-clear' );\n\n\n\t\t\t\t\t// // scope.$evalAsync(function() {\n\t\t\t\t\t// \tmodelGetter = $parse(attrs['ngModel']);\n\t\t\t\t\t// \tmodelSetter = modelGetter.assign;\n\t\t\t\t\t// // });\n\n\t\t\t\t\t// console.log( 'md-input-clear', modelGetter, modelGetter.$isEmpty, modelGetter && modelGetter.$isEmpty && modelGetter.$isEmpty() );\n\t\t\t\t\tscope.$watch( function() { return ngModel.$isEmpty(ngModel.$viewValue); }, function( newVal, oldVal ) {\n\t\t\t\t\t\tconsole.log( 'md-input-clear', newVal );// ngModel, ngModel.$isEmpty(ngModel.$viewValue), inputContainer );\n\t\t\t\t\t\tif (newVal) {\n\t\t\t\t\t\t\tinputContainer.element.removeClass( 'md-input-clear-visible' );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tinputContainer.element.addClass( 'md-input-clear-visible' );\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tbutton.on('click', function( evt ) {\n\t\t\t\t\t\tscope.$apply( function() {\n\t\t\t\t\t\t\tngModel.$setViewValue( '' );\n\t\t\t\t\t\t\tngModel.$render();\n\t\t\t\t\t\t\telement.value = ''\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\t\t} ])\n\n\t\t/***********************/\n\t\t/* Constants */\n\t\t/***********************/\n\t\t.constant('COUNTRIES', {\n\t\t\t'US': 'United States of America',\n\t\t\t'CA': 'Canada',\n\t\t\t'MX': 'Mexico',\n\t\t\t'AU': 'Australia'\n\t\t})\n\t\t.constant('STATES', {\n\t\t\t'AL': 'Alabama',\n\t\t\t'AK': 'Alaska',\n\t\t\t'AS': 'American Samoa',\n\t\t\t'AZ': 'Arizona',\n\t\t\t'AR': 'Arkansas',\n\t\t\t'CA': 'California',\n\t\t\t'CO': 'Colorado',\n\t\t\t'CT': 'Connecticut',\n\t\t\t'DE': 'Delaware',\n\t\t\t'DC': 'District Of Columbia',\n\t\t\t'FM': 'Federated States Of Micronesia',\n\t\t\t'FL': 'Florida',\n\t\t\t'GA': 'Georgia',\n\t\t\t'GU': 'Guam',\n\t\t\t'HI': 'Hawaii',\n\t\t\t'ID': 'Idaho',\n\t\t\t'IL': 'Illinois',\n\t\t\t'IN': 'Indiana',\n\t\t\t'IA': 'Iowa',\n\t\t\t'KS': 'Kansas',\n\t\t\t'KY': 'Kentucky',\n\t\t\t'LA': 'Louisiana',\n\t\t\t'ME': 'Maine',\n\t\t\t'MH': 'Marshall Islands',\n\t\t\t'MD': 'Maryland',\n\t\t\t'MA': 'Massachusetts',\n\t\t\t'MI': 'Michigan',\n\t\t\t'MN': 'Minnesota',\n\t\t\t'MS': 'Mississippi',\n\t\t\t'MO': 'Missouri',\n\t\t\t'MT': 'Montana',\n\t\t\t'NE': 'Nebraska',\n\t\t\t'NV': 'Nevada',\n\t\t\t'NH': 'New Hampshire',\n\t\t\t'NJ': 'New Jersey',\n\t\t\t'NM': 'New Mexico',\n\t\t\t'NY': 'New York',\n\t\t\t'NC': 'North Carolina',\n\t\t\t'ND': 'North Dakota',\n\t\t\t'MP': 'Northern Mariana Islands',\n\t\t\t'OH': 'Ohio',\n\t\t\t'OK': 'Oklahoma',\n\t\t\t'OR': 'Oregon',\n\t\t\t'PW': 'Palau',\n\t\t\t'PA': 'Pennsylvania',\n\t\t\t'PR': 'Puerto Rico',\n\t\t\t'RI': 'Rhode Island',\n\t\t\t'SC': 'South Carolina',\n\t\t\t'SD': 'South Dakota',\n\t\t\t'TN': 'Tennessee',\n\t\t\t'TX': 'Texas',\n\t\t\t'UT': 'Utah',\n\t\t\t'VT': 'Vermont',\n\t\t\t'VI': 'Virgin Islands',\n\t\t\t'VA': 'Virginia',\n\t\t\t'WA': 'Washington',\n\t\t\t'WV': 'West Virginia',\n\t\t\t'WI': 'Wisconsin',\n\t\t\t'WY': 'Wyoming'\n\t\t})\n\n\t\t.constant('ngMapStyles', '[{\"elementType\":\"geometry\",\"stylers\":[{\"color\":\"#f6f6f6\"}]},{\"elementType\":\"labels.icon\",\"stylers\":[{\"visibility\":\"off\"}]},{\"elementType\":\"labels.text.fill\",\"stylers\":[{\"color\":\"#616161\"}]},{\"elementType\":\"labels.text.stroke\",\"stylers\":[{\"color\":\"#f5f5f5\"}]},{\"featureType\":\"administrative.land_parcel\",\"elementType\":\"labels.text.fill\",\"stylers\":[{\"color\":\"#bdbdbd\"}]},{\"featureType\":\"poi\",\"stylers\":[{\"visibility\":\"off\"}]},{\"featureType\":\"poi\",\"elementType\":\"labels.text.fill\",\"stylers\":[{\"color\":\"#757575\"}]},{\"featureType\":\"poi.park\",\"elementType\":\"geometry\",\"stylers\":[{\"color\":\"#d9e5cf\"},{\"visibility\":\"on\"}]},{\"featureType\":\"poi.park\",\"elementType\":\"labels.text.fill\",\"stylers\":[{\"color\":\"#9e9e9e\"}]},{\"featureType\":\"road\",\"elementType\":\"geometry\",\"stylers\":[{\"color\":\"#dadada\"}]},{\"featureType\":\"road.arterial\",\"elementType\":\"geometry.fill\",\"stylers\":[{\"color\":\"#ced2d6\"},{\"visibility\":\"on\"},{\"weight\":1.5}]},{\"featureType\":\"road.arterial\",\"elementType\":\"labels.icon\",\"stylers\":[{\"visibility\":\"simplified\"}]},{\"featureType\":\"road.arterial\",\"elementType\":\"labels.text.fill\",\"stylers\":[{\"color\":\"#757575\"}]},{\"featureType\":\"road.highway\",\"elementType\":\"geometry\",\"stylers\":[{\"color\":\"#c5c8cc\"},{\"weight\":0.5}]},{\"featureType\":\"road.highway\",\"elementType\":\"geometry.stroke\",\"stylers\":[{\"visibility\":\"off\"}]},{\"featureType\":\"road.highway\",\"elementType\":\"labels.icon\",\"stylers\":[{\"visibility\":\"simplified\"}]},{\"featureType\":\"road.highway\",\"elementType\":\"labels.text.fill\",\"stylers\":[{\"color\":\"#616161\"}]},{\"featureType\":\"road.local\",\"elementType\":\"geometry\",\"stylers\":[{\"color\":\"#dbe1e5\"},{\"weight\":1}]},{\"featureType\":\"road.local\",\"elementType\":\"labels.text.fill\",\"stylers\":[{\"color\":\"#9e9e9e\"}]},{\"featureType\":\"transit\",\"stylers\":[{\"visibility\":\"off\"}]},{\"featureType\":\"transit.line\",\"elementType\":\"geometry\",\"stylers\":[{\"color\":\"#e5e5e5\"}]},{\"featureType\":\"transit.station\",\"elementType\":\"geometry\",\"stylers\":[{\"color\":\"#eeeeee\"}]},{\"featureType\":\"water\",\"elementType\":\"geometry\",\"stylers\":[{\"color\":\"#bfd0e0\"}]},{\"featureType\":\"water\",\"elementType\":\"labels.text.fill\",\"stylers\":[{\"color\":\"#9e9e9e\"}]}]' );\n\n})( window, angular );\n\n\n\n\nfunction Log( prefix ) {\n\tthis.prefix = prefix;\n}\n\nLog.prototype.log = function() {\n\tvar tmp = [].slice.call( arguments );\n\ttmp.unshift( '[' + this.prefix + '] ' );\n\tconsole.log.apply( null, tmp );\n}\n","(function( window, angular, undefined ) {\n\n\n\t'use strict';\n\n\n\twindow.requestAnimationFrame = (function () {\n\t\treturn window.requestAnimationFrame ||\n\t\t\twindow.webkitRequestAnimationFrame ||\n\t\t\twindow.mozRequestAnimationFrame ||\n\t\t\twindow.oRequestAnimationFrame ||\n\t\t\twindow.msRequestAnimationFrame ||\n\t\t\tfunction ( /* function */ callback, /* DOMElement */ element ) {\n\t\t\t\treturn window.setTimeout( callback, 1000 / 60 );\n\t\t\t};\n\t})();\n\n\t/**\n\t * Base module for the entire application\n\t * @ngdoc object\n\t * @module app\n\t * @requires ngSanitize\n\t * @requires ngMaterial\n\t * @requires ngAnimate\n\t * @requires ngCookies\n\t * @requires ngMessageFormat\n\t * @requires ngResource\n\t * @requires app.local\n\t * @requires includes.controllers\n\t * @requires includes.providers\n\t * @requires includes.directives\n\t * @requires app.filters\n\t **/\n\tvar angular = window.angular;\n\n\tvar app = angular.module( 'app', [\n\t\t// Angular Modules\n\t\t'ngSanitize',\n\t\t'ngMaterial',\n\t\t'ngAnimate',\n\t\t'ngCookies',\n\t\t'ngMessages',\n\t\t'ngMessageFormat',\n\t\t'ngResource',\n\t\t'ngTable',\n\t\t// Third Party\n\t\t// Add third party to their respective files\n\n\t\t// Include files\n\t\t'includes.dialogs',\n\t\t'includes.controllers',\n\t\t'includes.providers',\n\t\t'includes.directives',\n\t\t'includes.filters',\n\n\t\t// App Specific\n\t\t'app.locale',\n\t\t'app.extras',\n\n\t\t'vls'\n\t] )\n\n\t\t.config( [ '$locationProvider', '$urlRouterProvider', '$logProvider', '$qProvider', function ( $locationProvider, $urlRouterProvider, $logProvider, $qProvider ) {\n\n\n\t\t\t// $qProvider.errorOnUnhandledRejections(false);\n\n\t\t\t$locationProvider.html5Mode( {\n\t\t\t\tenabled: true,\n\t\t\t\trequireBase: false\n\t\t\t} );\n\n\t\t\t$logProvider.debugEnabled( true );\n\n\t\t} ] )\n\n\t\t.config( [ '$urlMatcherFactoryProvider', '$urlRouterProvider', '$stateProvider', '$httpProvider', '$mdThemingProvider', 'cfpLoadingBarProvider', '$resourceProvider', '$qProvider', 'AppConfigProvider', 'USER_ROLES', function ( $urlMatcherFactory, $urlRouterProvider, $stateProvider, $httpProvider, $mdThemingProvider, cfpLoadingBarProvider, $resourceProvider, $qProvider, AppConfigProvider, USER_ROLES ) {\n\n\t\t\t$qProvider.errorOnUnhandledRejections( false );\n\n\t\t\t$resourceProvider.defaults.stripTrailingSlashes = false;\n\n\t\t\t// $httpProvider.interceptors.push(function() {\n\t\t\t// return {\n\t\t\t// 'requestError': function(rejection) {\n\t\t\t// window.rg4js('send', { error: new Error('Failed $http request', rejection) } );\n\t\t\t// },\n\t\t\t//\n\t\t\t// 'responseError': function(rejection) {\n\t\t\t// window.rg4js('send', { error: new Error('Failed $http response', rejection) } );\n\t\t\t// }\n\t\t\t// };\n\t\t\t// });\n\t\t\t//$httpProvider.defaults.withCredentials = true;\n\n\t\t\t// Loading Bar config\n\t\t\tcfpLoadingBarProvider.includeSpinner = false;\n\t\t\tcfpLoadingBarProvider.latencyThreshold = 50;\n\n\n\t\t\t$mdThemingProvider.definePalette( 'mdsGreen', {\n\t\t\t\t'50': '#f1f8e8',\n\t\t\t\t'100': '#ddeec5',\n\t\t\t\t'200': '#c6e39f',\n\t\t\t\t'300': '#afd779',\n\t\t\t\t'400': '#9ecf5c',\n\t\t\t\t'500': '#8dc63f',\n\t\t\t\t'600': '#85c039',\n\t\t\t\t'700': '#7ab931',\n\t\t\t\t'800': '#70b129',\n\t\t\t\t'900': '#5da41b',\n\t\t\t\t'A100': '#ebffdb',\n\t\t\t\t'A200': '#aee168',\n\t\t\t\t'A400': '#87ba43',\n\t\t\t\t'A700': '#75a533',\n\t\t\t\t'contrastDefaultColor': 'light',\n\t\t\t\t'contrastDarkColors': [\n\t\t\t\t\t'50',\n\t\t\t\t\t'100',\n\t\t\t\t\t'A100',\n\t\t\t\t\t'A200'\n\t\t\t\t],\n\t\t\t\t'contrastLightColors': [\n\t\t\t\t\t'200',\n\t\t\t\t\t'300',\n\t\t\t\t\t'400',\n\t\t\t\t\t'500',\n\t\t\t\t\t'600',\n\t\t\t\t\t'700',\n\t\t\t\t\t'800',\n\t\t\t\t\t'900',\n\t\t\t\t\t'A400',\n\t\t\t\t\t'A700'\n\t\t\t\t]\n\t\t\t} );\n\n\n\t\t\t$mdThemingProvider.definePalette('spectrio', {\n\t\t\t\t'50': '#edecf7',\n\t\t\t\t'100': '#d2cfea',\n\t\t\t\t'200': '#b4afdc',\n\t\t\t\t'300': '#958fce',\n\t\t\t\t'400': '#7f77c4',\n\t\t\t\t'500': '#685fb9',\n\t\t\t\t'600': '#6057b2',\n\t\t\t\t'700': '#554daa',\n\t\t\t\t'800': '#4b43a2',\n\t\t\t\t'900': '#3a3293',\n\t\t\t\t'A100': '#dfdcff',\n\t\t\t\t'A200': '#afa9ff',\n\t\t\t\t'A400': '#8076ff',\n\t\t\t\t'A700': '#685dff',\n\t\t\t\t'contrastDefaultColor': 'light',\n\t\t\t\t'contrastDarkColors': [\n\t\t\t\t\t'50',\n\t\t\t\t\t'100',\n\t\t\t\t\t'200',\n\t\t\t\t\t'300',\n\t\t\t\t\t'400',\n\t\t\t\t\t'A100',\n\t\t\t\t\t'A200',\n\t\t\t\t\t'A400'\n\t\t\t\t],\n\t\t\t\t'contrastLightColors': [\n\t\t\t\t\t'500',\n\t\t\t\t\t'600',\n\t\t\t\t\t'700',\n\t\t\t\t\t'800',\n\t\t\t\t\t'900',\n\t\t\t\t\t'A700'\n\t\t\t\t]\n\t\t\t});\n\n\t\t\t$mdThemingProvider.definePalette( 'mdsGrey', {\n\t\t\t\t// '50': '#ffffff',\n\t\t\t\t// '100': '#f2f2f2',\n\t\t\t\t// '200': '#dfe2e5',\n\t\t\t\t// '300': '#b8bec5',\n\t\t\t\t// '400': '#a7afb7',\n\t\t\t\t// '500': '#96a0a9',\n\t\t\t\t// '600': '#85919b',\n\t\t\t\t// '700': '#74828d',\n\t\t\t\t// '800': '#66727d',\n\t\t\t\t// '900': '#59636c',\n\t\t\t\t// 'A100': '#ffffff',\n\t\t\t\t// 'A200': '#fefefe',\n\t\t\t\t// 'A400': '#a7afb7',\n\t\t\t\t// 'A700': '#74828d',\n\t\t\t\t// 'contrastDefaultColor': 'light',\n\t\t\t\t// 'contrastDarkColors': [ '50', '100', '200', 'A100', 'A200' ],\n\t\t\t\t// 'contrastLightColors': [ '300', '400', '500', '600', '700', '800', '900', 'A400', 'A700' ]\n\t\t\t\t'50': 'f6f6f7',\n\t\t\t\t'100': 'e9e8eb',\n\t\t\t\t'200': 'dad9dd',\n\t\t\t\t'300': 'cbcacf',\n\t\t\t\t'400': 'bfbec5',\n\t\t\t\t'500': 'b4b3bb',\n\t\t\t\t'600': 'adacb5',\n\t\t\t\t'700': 'a4a3ac',\n\t\t\t\t'800': '9c9aa4',\n\t\t\t\t'900': '8c8b96',\n\t\t\t\t'A100': 'ffffff',\n\t\t\t\t'A200': 'd9d3f0',\n\t\t\t\t'A400': 'cfc5ff',\n\t\t\t\t'A700': 'baacff',\n\t\t\t\t'contrastDefaultColor': 'light',\n\t\t\t\t'contrastDarkColors': [\n\t\t\t\t\t'50',\n\t\t\t\t\t'100',\n\t\t\t\t\t'200',\n\t\t\t\t\t'A100',\n\t\t\t\t\t'A200',\n\t\t\t\t\t'A400',\n\t\t\t\t\t'A700'\n\t\t\t\t],\n\t\t\t\t'contrastLightColors': [\n\t\t\t\t\t'300',\n\t\t\t\t\t'400',\n\t\t\t\t\t'500',\n\t\t\t\t\t'600',\n\t\t\t\t\t'700',\n\t\t\t\t\t'800',\n\t\t\t\t\t'900'\n\t\t\t\t]\n\t\t\t});\n\n\t\t\t$mdThemingProvider.definePalette( 'mdsGreyDark', {\n\t\t\t\t'50': '#ebeced',\n\t\t\t\t'100': '#cdd0d3',\n\t\t\t\t'200': '#acb1b6',\n\t\t\t\t'300': '#8b9298',\n\t\t\t\t'400': '#727a82',\n\t\t\t\t'500': '#59636c',\n\t\t\t\t'600': '#515b64',\n\t\t\t\t'700': '#485159',\n\t\t\t\t'800': '#3e474f',\n\t\t\t\t'900': '#2e353d',\n\t\t\t\t'A100': '#8fc6fd',\n\t\t\t\t'A200': '#5dacfc',\n\t\t\t\t'A400': '#2793ff',\n\t\t\t\t'A700': '#0e86ff',\n\t\t\t\t'contrastDefaultColor': 'light',\n\t\t\t\t'contrastDarkColors': [\n\t\t\t\t\t'50',\n\t\t\t\t\t'100',\n\t\t\t\t\t'200',\n\t\t\t\t\t'300',\n\t\t\t\t\t'A100',\n\t\t\t\t\t'A200'\n\t\t\t\t],\n\t\t\t\t'contrastLightColors': [\n\t\t\t\t\t'400',\n\t\t\t\t\t'500',\n\t\t\t\t\t'600',\n\t\t\t\t\t'700',\n\t\t\t\t\t'800',\n\t\t\t\t\t'900',\n\t\t\t\t\t'A400',\n\t\t\t\t\t'A700'\n\t\t\t\t]\n\t\t\t} );\n\t\t\t$mdThemingProvider.definePalette( 'bgGrey', {\n\t\t\t\t'50': '#ffffff',\n\t\t\t\t'100': '#dbdbdb',\n\t\t\t\t'200': '#c4c4c4',\n\t\t\t\t'300': '#dbdbdb',\n\t\t\t\t'400': '#9a9a9a',\n\t\t\t\t'500': '#888888',\n\t\t\t\t'600': '#808080',\n\t\t\t\t'700': '#757575',\n\t\t\t\t'800': '#6b6b6b',\n\t\t\t\t'900': '#585858',\n\t\t\t\t'A100': '#ffffff',\n\t\t\t\t'A200': '#000000',\n\t\t\t\t'A400': '#777777',\n\t\t\t\t'A700': '#555555',\n\t\t\t\t'contrastDefaultColor': 'light',\n\t\t\t\t'contrastDarkColors': [\n\t\t\t\t\t'50',\n\t\t\t\t\t'100',\n\t\t\t\t\t'200',\n\t\t\t\t\t'300',\n\t\t\t\t\t'400',\n\t\t\t\t\t'A100',\n\t\t\t\t\t'A200',\n\t\t\t\t\t'A400'\n\t\t\t\t],\n\t\t\t\t'contrastLightColors': [\n\t\t\t\t\t'500',\n\t\t\t\t\t'600',\n\t\t\t\t\t'700',\n\t\t\t\t\t'800',\n\t\t\t\t\t'900',\n\t\t\t\t\t'A700'\n\t\t\t\t]\n\t\t\t});\n\n\t\t\t$mdThemingProvider.theme( 'mds' )\n\t\t\t\t.primaryPalette( 'mdsGrey', {\n\t\t\t\t\tdefault: '500',\n\t\t\t\t\t'hue-1': '900',\n\t\t\t\t\t'hue-2': '300',\n\t\t\t\t\t'hue-3': '200'\n\t\t\t\t} )\n\t\t\t\t.accentPalette( 'spectrio', {\n\t\t\t\t\t'default': '500',\n\t\t\t\t\t'hue-1': '300',\n\t\t\t\t\t'hue-2': '500',\n\t\t\t\t\t'hue-3': '700'\n\t\t\t\t} )\n\t\t\t\t.warnPalette('deep-orange')\n\t\t\t\t.backgroundPalette( 'bgGrey', {\n\t\t\t\t\t'default': '100',\n\t\t\t\t\t'hue-1': '50',\n\t\t\t\t\t'hue-2': '100',\n\t\t\t\t\t'hue-3': '200'\n\t\t\t\t} );\n\n\n\n\t\t\t$mdThemingProvider.theme( 'mdsDark' )\n\t\t\t\t.primaryPalette( 'mdsGreyDark', {\n\t\t\t\t\t'default': '700',\n\t\t\t\t\t'hue-1': '800',\n\t\t\t\t\t'hue-2': '600',\n\t\t\t\t\t'hue-3': '400'\n\t\t\t\t} )\n\t\t\t\t.accentPalette( 'mdsGreen', {\n\t\t\t\t\t'default': '500',\n\t\t\t\t\t'hue-1': '400',\n\t\t\t\t\t'hue-2': '500',\n\t\t\t\t\t'hue-3': '700'\n\t\t\t\t} )\n\t\t\t\t.backgroundPalette( 'bgGrey', {\n\t\t\t\t\t'default': '900',\n\t\t\t\t\t'hue-1': '500',\n\t\t\t\t\t'hue-2': '600',\n\t\t\t\t\t'hue-3': '700'\n\t\t\t\t} )\n\t\t\t\t.warnPalette('orange')\n\t\t\t\t.dark();\n\n\n\t\t\t$mdThemingProvider.theme( 'thryve' )\n\t\t\t\t.primaryPalette( 'grey', {\n\t\t\t\t\tdefault: '800',\n\t\t\t\t\t'hue-1': '900',\n\t\t\t\t\t'hue-2': '300',\n\t\t\t\t\t'hue-3': '200'\n\t\t\t\t} )\n\t\t\t\t.accentPalette( 'deep-orange', {\n\t\t\t\t\t'default': '500',\n\t\t\t\t\t'hue-1': '400',\n\t\t\t\t\t'hue-2': '500',\n\t\t\t\t\t'hue-3': '700'\n\t\t\t\t} )\n\t\t\t\t.warnPalette('yellow')\n\t\t\t\t.backgroundPalette( 'bgGrey', {\n\t\t\t\t\t'default': '900',\n\t\t\t\t\t'hue-1': '500',\n\t\t\t\t\t'hue-2': '600',\n\t\t\t\t\t'hue-3': '700'\n\t\t\t\t} )\n\t\t\t\t.dark();\n\n\n\n\t\t\t// $mdThemingProvider.registerStyles('md-dialog.md-THEME_NAME-theme { background: \\'{{background-50}}\\'; }');\n\n\t\t\t$mdThemingProvider.registerStyles('' +\n\t\t\t\t// md-calendar fix\n\t\t\t\t'.md-THEME_NAME-theme .md-calendar tr:last-child td { border-bottom-color: \\'{{background-200}}\\'; }' +\n\t\t\t\t'.md-THEME_NAME-theme md-calendar-month .md-calendar-day-header { background: \\'{{primary-200}}\\'; }' +\n\t\t\t\t// md-autocomplete highlight\n\t\t\t\t'.md-THEME_NAME-theme .md-autocomplete-suggestions-container.md-THEME_NAME-theme li .highlight { color: \\'{{accent-700}}\\'; }' +\n\t\t\t\t// md-chips readonly\n\t\t\t\t'.md-THEME_NAME-theme md-chips[readonly] .md-chips { box-shadow: none; }' +\n\t\t\t\t// Default card background\n\t\t\t\t'.md-THEME_NAME-theme md-card,' +\n\t\t\t\t'.md-THEME_NAME-theme md-card md-content { background: \\'{{background-hue-1}}\\'; }' +\n\t\t\t\t// App Styles\n\t\t\t\t'.md-THEME_NAME-theme md-toolbar.app-toolbar { background: \\'{{background-hue-1}}\\'; }' +\n\t\t\t\t'.md-THEME_NAME-theme md-toolbar.app-toolbar .logo { background: \\'{{accent-default}}\\'; }' +\n\t\t\t\t'.md-THEME_NAME-theme .app-search { background: \\'{{background-hue-3}}\\'; }' +\n\n\t\t\t\t'.md-THEME_NAME-theme .error-message { border-left-color: \\'{{warn-default}}\\'; }' +\n\t\t\t\t'.md-THEME_NAME-theme .error-message:before, .md-THEME_NAME-theme .error-message:after { color: \\'{{warn-default}}\\'; }' +\n\t\t\t\t// Login Box\n\t\t\t\t'.md-THEME_NAME-theme .login-dialog .login-dialog-header { background: \\'{{accent-hue-2}}\\'; color: \\'{{accent-hue-2-contrast}}\\'; }' +\n\t\t\t\t'.md-THEME_NAME-theme .login-dialog .login-dialog-header md-icon { color: \\'{{accent-contrast-0.5}}\\'; }' +\n\t\t\t\t// Table Styles\n\t\t\t\t'.md-THEME_NAME-theme .table.table-striped *:not(thead) tr { background: \\'{{background-hue-1}}\\'; }' +\n\t\t\t\t'.md-THEME_NAME-theme .table.table-striped *:not(thead) tr:nth-child(odd) { background: \\'{{background-hue-2-0.45}}\\'; }' +\n\t\t\t\t'.md-THEME_NAME-theme .table.table-hover > *:not(thead) > tr:hover { background: \\'{{background-hue-2}}\\'; }' +\n\t\t\t\t// \".md-THEME_NAME-theme .table tr { border-bottom: 1px solid '{{background-default}}'; }\" +\n\t\t\t\t'.md-THEME_NAME-theme .table.table-hover *:not(thead, tfoot) tr:hover { background: \\'{{background-hue-2}}\\'; }' +\n\t\t\t\t'md-tabs.md-THEME_NAME-theme.md-accent > md-tabs-wrapper >md-tabs-canvas > md-pagination-wrapper > md-ink-bar { color: \\'{{ accent-contrast}}\\'; background: \\'{{ accent-contrast}}\\'; }' +\n\t\t\t\t'md-tabs.md-THEME_NAME-theme.md-accent>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-active,' +\n\t\t\t\t// 'md-tabs.md-THEME_NAME-theme.md-accent>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-active md-icon,' +\n\t\t\t\t'md-tabs.md-THEME_NAME-theme.md-accent>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused ' +\n\t\t\t\t// 'md-tabs.md-THEME_NAME-theme.md-accent>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused md-icon ' +\n\t\t\t\t'{' +\n\t\t\t\t' background: \\'{{accent-contrast-0.1}}\\'; ' +\n\t\t\t\t'}' +\n\t\t\t\t'md-tabs.md-THEME_NAME-theme.md-primary > md-tabs-wrapper >md-tabs-canvas > md-pagination-wrapper > md-ink-bar { color: \\'{{ primary-contrast}}\\'; background: \\'{{ primary-contrast}}\\'; }' +\n\t\t\t\t'md-tabs.md-THEME_NAME-theme.md-primary>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-active,' +\n\t\t\t\t// 'md-tabs.md-THEME_NAME-theme.md-primary>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-active md-icon,' +\n\t\t\t\t'md-tabs.md-THEME_NAME-theme.md-primary>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused ' +\n\t\t\t\t// 'md-tabs.md-THEME_NAME-theme.md-primary>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused md-icon ' +\n\t\t\t\t'{' +\n\t\t\t\t' background: \\'{{primary-contrast-0.1}}\\'; ' +\n\t\t\t\t'}' +\n\t\t\t\t// '.md-THEME_NAME-theme .grid.table-striped .ui-grid-row:nth-child(odd) { background: \\'{{background-hue-2-0.45}}\\'; }' +\n\t\t\t\t// '.md-THEME_NAME-theme .grid.table-striped .ui-grid-row:nth-child(odd) .ui-grid-cell { background: \\'{{background-hue-2-0.45}}\\'; }' +\n\t\t\t\t'');\n\n\n\t\t\t$urlMatcherFactory.caseInsensitive(true);\n\n\t\t\tvar authCheckOff; // Variable to hold the deregister function\n\n\t\t\t$stateProvider\n\t\t\t\t// setup an abstract state for base view of the app.\n\t\t\t\t.state( 'app', {\n\t\t\t\t\turl: '',\n\t\t\t\t\tabstract: true,\n\t\t\t\t\ttemplate: '',\n\n\t\t\t\t\tdata: {\n\t\t\t\t\t\trequiresLogin: true\n\t\t\t\t\t},\n\t\t\t\t\tresolve: {\n\t\t\t\t\t\tuser: [ 'vls.user', function( vlsUser ) {\n\t\t\t\t\t\t\treturn vlsUser.isLoaded();\n\t\t\t\t\t\t}]\n\t\t\t\t\t}\n\t\t\t\t} )\n\n\t\t\t\t.state( 'order', {\n\t\t\t\t\turl: '/order',\n\t\t\t\t\tabstract: true,\n\t\t\t\t\ttemplate: '',\n\t\t\t\t\tcontroller: function() {},\n\t\t\t\t\tdata: {\n\t\t\t\t\t\trequiresLogin: false\n\t\t\t\t\t},\n\t\t\t\t\tresolve: {\n\t\t\t\t\t\t// partner: [ '$stateParams', '$filter', 'vls.partner', function ( $stateParams, $filter, VLSPartner ) {\n\t\t\t\t\t\t// \t// console.log( $filter('camelToHuman' )( $stateParams.partnerName ) );\n\t\t\t\t\t\t// \treturn new VLSPartner( $filter( 'camelToHuman' )( $stateParams.partnerName ) );\n\t\t\t\t\t\t// } ]\n\t\t\t\t\t}\n\n\n\t\t\t\t} )\n\t\t\t\t.state( 'order.thryv', {\n\t\t\t\t\turl: '/thryv',\n\t\t\t\t\ttemplateUrl: '/templates/order/order.tpl.html',\n\t\t\t\t\tcontroller: 'OrderController',\n\t\t\t\t\t//controllerAs: 'orderCtrl',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\trequiresLogin: false\n\t\t\t\t\t},\n\t\t\t\t\tresolve: {\n\t\t\t\t\t\tpartnerCode: function() { return 'DEX'; },\n\t\t\t\t\t\tpartnerId: function() { return 950; },\n\t\t\t\t\t\tclientId: function() { return 950; },\n\t\t\t\t\t\tpartnerName: function() { return 'Thryv'; },\n\t\t\t\t\t\tpartnerVPAs: [ 'vls.vpaList', 'clientId', function( vlsVPAList, clientId ) {\n\t\t\t\t\t\t\treturn vlsVPAList.load( { clientid: clientId } ).then( function( result ) { return result.data && result.data.items; } );\n\t\t\t\t\t\t}],\n\t\t\t\t\t\tpartnerAEs: [ 'vls.aes', 'partnerCode', function( vlsAES, partnerCode ) {\n\t\t\t\t\t\t\treturn vlsAES.load( partnerCode ).then( function( result ) { return result.data && result.data.aes; } );\n\t\t\t\t\t\t}],\n\t\t\t\t\t\tpartnerCCs: [ 'vls.api', 'partnerCode', function( vlsApi, partnerCode ) {\n\t\t\t\t\t\t\treturn vlsApi.getUsersByRole( 70, partnerCode ).then( function( result ) { return result.data && result.data.items; } );\n\t\t\t\t\t\t}],\n\t\t\t\t\t\tpartnerBillingCodes: [ 'vls.partners.billingCodes', 'partnerCode', function( vlsBillingCodes, partnerCode ) {\n\t\t\t\t\t\t\t//return vlsBillingCodes.load( partnerCode ).then( function( result ) { return result.data && result.data.partnerbillingcodes; } );\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t} ],\n\t\t\t\t\t\tpartnerProducts: ['vls.api', 'partnerCode', function( vlsApi, partnerCode ) {\n\t\t\t\t\t\t\treturn vlsApi.getPartnerProductTypes( partnerCode ).then( function( result ) { return result.data && result.data.partnerproducttypes; } );\n\t\t\t\t\t\t}],\n\t\t\t\t\t\tpartnerLogo: function() {\n\t\t\t\t\t\t\treturn 'thryv.png';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\n\t\t\t\t.state( 'status', {\n\t\t\t\t\turl: '/status/{clientId}/{videoCode}',\n\t\t\t\t\ttemplate: '',\n\t\t\t\t\tcontroller: ['$scope', '$stateParams', function( $scope, $stateParams ) { $scope.$stateParams = $stateParams; }],\n\t\t\t\t\tdata: {\n\t\t\t\t\t\trequiresLogin: false\n\t\t\t\t\t},\n\t\t\t\t\tresolve: {\n\n\t\t\t\t\t}\n\n\n\t\t\t\t} )\n\n\t\t\t\t// the first \"state\" a user will enter.\n\n\t\t\t\t.state( 'login', {\n\t\t\t\t\turl: '/login',\n\t\t\t\t\tonEnter: [ '$rootScope', '$mdDialog', '$timeout', '$state', 'appAuth', 'AUTH_EVENTS', function ( $rootScope, $mdDialog, $timeout, $state, appAuth, AUTH_EVENTS ) {\n\t\t\t\t\t\t//console.log( 'in login controller');\n\n\t\t\t\t\t\t$timeout( function() {\n\t\t\t\t\t\t\t$mdDialog.show({\n\t\t\t\t\t\t\t\tbindToController: true,\n\t\t\t\t\t\t\t\tcontrollerAs: 'ctrl',\n\t\t\t\t\t\t\t\tcontroller: ['$scope', '$mdDialog', 'vls.api', function ($scope, $mdDialog, vlsApi) {\n\t\t\t\t\t\t\t\t\tvar ctrl = this;\n\n\t\t\t\t\t\t\t\t\t// appAuth.authenticate();\n\t\t\t\t\t\t\t\t\tctrl.state = 'login';\n\n\t\t\t\t\t\t\t\t\tctrl.loginError = false;\n\t\t\t\t\t\t\t\t\tctrl.login = function () {\n\t\t\t\t\t\t\t\t\t\tconsole.log('LOGIN', ctrl.credentials);\n\t\t\t\t\t\t\t\t\t\tctrl.processing = true;\n\n\t\t\t\t\t\t\t\t\t\tappAuth.authenticate(ctrl.credentials.username, ctrl.credentials.password);\n\n\t\t\t\t\t\t\t\t\t\t// $rootScope.$on( AUTH_EVENTS.authenticated, function( result ) {\n\t\t\t\t\t\t\t\t\t\t// \t$rootScope.$broadcast( AUTH_EVENTS.loginSuccess );\n\t\t\t\t\t\t\t\t\t\t// });\n\t\t\t\t\t\t\t\t\t\tvar notOff = $rootScope.$on(AUTH_EVENTS.notAuthenticated, function (event, nextState, nextParams, data) {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log('REJECTED LOGIN', arguments, data);\n\t\t\t\t\t\t\t\t\t\t\tif (data && !ctrl.loginError) {\n\t\t\t\t\t\t\t\t\t\t\t\tif (data.statusText === 'Unauthorized' && data.data) { // API Error\n\t\t\t\t\t\t\t\t\t\t\t\t\tctrl.loginError = data.data;\n\t\t\t\t\t\t\t\t\t\t\t\t} else if (data.data.internalmessage) { // VLS Error\n\t\t\t\t\t\t\t\t\t\t\t\t\tctrl.loginError = data.data.internalmessage;\n\t\t\t\t\t\t\t\t\t\t\t\t} else { // Generic\n\t\t\t\t\t\t\t\t\t\t\t\t\tctrl.loginError = 'Login Failed';\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\toff();\n\t\t\t\t\t\t\t\t\t\t\tnotOff();\n\t\t\t\t\t\t\t\t\t\t\tctrl.processing = false;\n\t\t\t\t\t\t\t\t\t\t\t//$rootScope.$broadcast(AUTH_EVENTS.loginFailed);\n\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\tvar off = $rootScope.$on(AUTH_EVENTS.loginSuccess, function () {\n\t\t\t\t\t\t\t\t\t\t\tctrl.processing = false;\n\t\t\t\t\t\t\t\t\t\t\t$mdDialog.cancel();\n\t\t\t\t\t\t\t\t\t\t\t$timeout(function () {\n\t\t\t\t\t\t\t\t\t\t\t\t$rootScope.isStateTranisition = true;\n\t\t\t\t\t\t\t\t\t\t\t}, 100);\n\t\t\t\t\t\t\t\t\t\t\toff();\n\t\t\t\t\t\t\t\t\t\t\tnotOff();\n\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\tctrl.requestPassword = function() {\n\t\t\t\t\t\t\t\t\t\tctrl.processing = true;\n\n\t\t\t\t\t\t\t\t\t\tvlsApi.requestPassword( ctrl.credentials.username ).then( function() {\n\t\t\t\t\t\t\t\t\t\t\tctrl.loginError = \"A new password has been sent to your email address.\";\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}],\n\t\t\t\t\t\t\t\ttemplateUrl: '/templates/auth/login-dialog.tpl.html',\n\t\t\t\t\t\t\t\t//parent: angular.element(document.body),\n\t\t\t\t\t\t\t\t//targetEvent: ev,\n\t\t\t\t\t\t\t\tclickOutsideToClose: false,\n\t\t\t\t\t\t\t\tescapeToClose: false,\n\t\t\t\t\t\t\t\tfullscreen: true\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}, 500 );\n\n\n\t\t\t\t\t\t// Show the dialog\n\t\t\t\t\t\t// $rootScope.$on( AUTH_EVENTS.notAuthenticated, showDialog );\n\t\t\t\t\t\t// $rootScope.$on( AUTH_EVENTS.loginFailed, showDialog );\n\t\t\t\t\t\t// $rootScope.$on( AUTH_EVENTS.sessionTimeout, showDialog );\n\n\t\t\t\t\t\t// Hide the dialog\n\t\t\t\t\t\t// $scope.$on( AUTH_EVENTS.loginSuccess, hideDialog );\n\t\t\t\t\t} ],\n\t\t\t\t\tonExit: [ '$mdDialog', function ( $mdDialog ) {\n\t\t\t\t\t\t$mdDialog.cancel();\n\t\t\t\t\t} ]\n\n\t\t\t\t} )\n\t\t\t;\n\n\t\t\t// if none of the above states are matched, use this as the fallback\n\t\t\t$urlRouterProvider\n\t\t\t\t// .when('/campaign/:campaignid/listing/', '/campaign/:campaignid')\n\t\t\t\t.when( '/administration/', '/administration/users' )\n\t\t\t\t// .when( '/campaign/{campaignid}/listing', '/administration/users' )\n\t\t\t\t.when( '/order/dexmedia', '/order/thryv' )\n\t\t\t\t.when( '/order/dexmedia/', '/order/thryv' )\n\t\t\t\t.otherwise( '/' );\n\n\t\t\t// $mdThemingProvider.generateThemesOnDemand(true);\n\t\t\t$mdThemingProvider.alwaysWatchTheme(true);\n\t\t\t$mdThemingProvider.setDefaultTheme( AppConfigProvider.theme );\n\n\t\t\t$mdThemingProvider.enableBrowserColor({\n\t\t\t\ttheme: AppConfigProvider.theme,\n\t\t\t\tpalette: 'accent',\n\t\t\t\thue: '500'\n\t\t\t});\n\n\n\n\t\t} ] )\n\t\t.run( [ '$rootScope', '$state', '$q', '$cookies', '$timeout', '$location', '$window', '$log', '$filter', 'AUTH_EVENTS', 'vls.user', 'USER_ROLES', function ( $rootScope, $state, $q, $cookies, $timeout, $location, $window, $log, $filter, AUTH_EVENTS, vlsUser, USER_ROLES ) {\n\n\n\n\n\n\t\t\t// Recommended audit because AdBlock lock the file 'blockadblock.js'\n\t\t\t// If the file is not called, the variable does not exist 'blockAdBlock'\n\t\t\t// This means that AdBlock is present\n\t\t\tif(typeof window.blockAdBlock === 'undefined') {\n\t\t\t\talert('BLOCK 1');\n\t\t\t} else {\n\t\t\t\twindow.blockAdBlock.onDetected(function() { alert(\"ATTENTION:\\n\\nDisable your ad blocker.\\nThe application will not function with an ad blocker enabled.\") } );\n\t\t\t}\n\n\n\n\n\t\t\tfunction fakeStateChangeSuccess( fromState, fromParams ) {\n\t\t\t\tfromState = fromState || {};\n\t\t\t\tfromParams = fromParams || {};\n\n\t\t\t\t$rootScope.$broadcast( '$stateChangeSuccess', fromState, fromParams, fromState, fromParams );\n\t\t\t\t$rootScope.$broadcast( '$viewContentLoaded', '' );\n\t\t\t}\n\n\t\t\tfunction redirectTo( state, stateParams ) {\n\t\t\t\t$log.log( 'Redirecting To: ', state );\n\t\t\t\tfakeStateChangeSuccess();\n\t\t\t\t$timeout( function () {\n\t\t\t\t\t$state.go( state, stateParams || {\n\t\t\t\t\t\tnotify: false,\n\t\t\t\t\t\treload: true,\n\t\t\t\t\t\treplace: true,\n\t\t\t\t\t\tinherit: false\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t$rootScope.redirectTo = redirectTo;\n\n\n\t\t\t$rootScope.local = false;\n\n\t\t\t$rootScope.$on( '$stateChangeSuccess', function( event, toState ){\n\t\t\t\tif ( toState.name ) {\n\t\t\t\t\t$timeout( function() {\n\t\t\t\t\t\tdocument.title = 'Workflow Portal - ' + $filter( 'ucWords' )(\n\t\t\t\t\t\t\ttoState.name\n\t\t\t\t\t\t\t\t.replace( 'app.', '' )\n\t\t\t\t\t\t\t\t.replace( /\\./gi, ' - ' )\n\t\t\t\t\t\t);\n\n\t\t\t\t\t}, 500 );\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t$rootScope.$on( '$stateChangeError', function () {\n\t\t\t\tconsole.debug( '[State Change Error]', arguments );\n\t\t\t} );\n\t\t\t$rootScope.$on( '$stateChangeStart', function ( event, next, toParams, from, fromParams ) {\n\n\n\t\t\t\tdocument.getElementById( 'main-content' ).scrollTop = 0;\n\n\t\t\t\tconsole.log( '[State Change Start]', arguments, $location );\n\t\t\t\tif ( $window.rg4js ) {\n\t\t\t\t\t$window.rg4js( 'pageView', {\n\t\t\t\t\t\tpath: $location.url()\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\n\n\t\t\t\t//////////////////////////////////\n\t\t\t\t//\t\tState interceptors\t\t//\n\t\t\t\t//////////////////////////////////\n\n\n\t\t\t\tswitch ( next.name ) {\n\t\t\t\t\t// Handle campaign root state\n\t\t\t\t\t//////////////////////////////////\n\t\t\t\t\tcase 'app.campaign':\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tif ( toParams.campaignid ) {\n\t\t\t\t\t\t\tredirectTo( 'app.campaign.overview', toParams );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif ( from.name === 'app.listings' ) {\n\t\t\t\t\t\t\t\tfakeStateChangeSuccess( from, fromParams );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tredirectTo( 'app.listings', toParams );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t// case 'app.campaign.listing':\n\t\t\t\t\t// \tevent.preventDefault();\n\t\t\t\t\t// \tif ( toParams.listingid ) {\n\t\t\t\t\t// \t\tif ( from.name === 'app.campaign.listing.events' ) {\n\t\t\t\t\t// \t\t\tfakeStateChangeSuccess( from, fromParams );\n\t\t\t\t\t// \t\t} else {\n\t\t\t\t\t// \t\t\t$log.log( '[State Change Start]', \"redirect to app.campaign.listing.events\", toParams );\n\t\t\t\t\t// \t\t\tredirectTo( 'app.campaign.listing.events', toParams );\n\t\t\t\t\t// \t\t}\n\t\t\t\t\t// \t} else {\n\t\t\t\t\t// \t\tredirectTo( 'app.campaign.overview', toParams );\n\t\t\t\t\t// \t}\n\t\t\t\t\t// \tbreak;\n\n\t\t\t\t\tcase 'app.administration':\n\t\t\t\t\t\t$log.log( '[State Change Start]', 'ADMINISTRATION', toParams );\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tredirectTo( 'app.administration.users', toParams );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'app.administration.users.edit':\n\t\t\t\t\t\t$log.log( '[State Change Start]', 'USERS.EDIT', toParams );\n\t\t\t\t\t\tif ( !toParams.userId ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t$log.log( '[State Change Start]', 'USERS.EDIT Redirect' );\n\t\t\t\t\t\t\tredirectTo( 'app.administration', toParams );\n\t\t\t\t\t\t} // else {\n\t\t\t\t\t\t// \tfakeStateChangeSuccess( from, fromParams );\n\t\t\t\t\t\t// }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t// case 'app.checkout': {\n\t\t\t\t\t// \tevent.preventDefault();\n\t\t\t\t\t// \tvar redirect;\n\t\t\t\t\t// \tif ( vlsUser.isAuthorized( [ USER_ROLES.admin, USER_ROLES.productionCoordinator, USER_ROLES.videoEditor ] ) ) {\n\t\t\t\t\t// \t\tredirect = 'app.checkout.video';\n\t\t\t\t\t// \t} else if ( vlsUser.isAuthorized( USER_ROLES.scriptWriter ) ) {\n\t\t\t\t\t// \t\tredirect = 'app.checkout.script';\n\t\t\t\t\t// \t} else if ( vlsUser.isAuthorized( USER_ROLES.voiceOverTalent ) ) {\n\t\t\t\t\t// \t\tredirect = 'app.checkout.voiceover';\n\t\t\t\t\t// \t} else {\n\t\t\t\t\t// \t\tredirect = 'app';\n\t\t\t\t\t// \t}\n\t\t\t\t\t// \t// fakeStateChangeSuccess( from, fromParams );\n\t\t\t\t\t// \tredirectTo( redirect, toParams );\n\t\t\t\t\t// \t// fakeStateChangeSuccess( from, fromParams );\n\t\t\t\t\t//\n\t\t\t\t\t//\n\t\t\t\t\t// }\n\t\t\t\t}\n\t\t\t} );\n\n\n\n\t\t\tvar initialLoad = true;\n\t\t\tvlsUser.isLoaded().then( function() {\n\t\t\t\tinitialLoad = false;\n\t\t\t});\n\n\t\t\t$rootScope.$on('$stateChangeStart',function(event, toState, toParams, fromState, fromParams){\n\t\t\t\tconsole.warn('$stateChangeStart to '+toState.name+' - fired when the transition begins. toState, toParams, fromState, fromParams: \\n',toState, toParams, fromState, fromParams);\n\t\t\t\tif ( toState.data && toState.data.authorizedRoles ) {\n\t\t\t\t\tif ( initialLoad ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tvlsUser.isLoaded().then(function () {\n\t\t\t\t\t\t\t$state.go(toState, toParams);\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (!vlsUser.isAuthorized(toState)) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t$timeout(function () {\n\t\t\t\t\t\t\t\t$state.go('app.index', {\n\t\t\t\t\t\t\t\t\tnotify: false,\n\t\t\t\t\t\t\t\t\treload: true,\n\t\t\t\t\t\t\t\t\treplace: true,\n\t\t\t\t\t\t\t\t\tinherit: false\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t});\n\n\t\t\t$rootScope.$on('$stateChangeError',function(event, toState, toParams, fromState, fromParams, error){\n\t\t\t\tconsole.warn('$stateChangeError - fired when an error occurs during transition.');\n\t\t\t\tconsole.warn(arguments);\n\t\t\t\tconsole.error( error );\n\t\t\t});\n\n\t\t\t$rootScope.$on('$stateChangeSuccess',function(event, toState, toParams, fromState, fromParams){\n\t\t\t\tconsole.warn('$stateChangeSuccess to '+toState.name+' - fired once the state transition is complete.');\n\t\t\t});\n\n\t\t\t$rootScope.$on('$viewContentLoaded',function(event){\n\t\t\t\tconsole.warn('$viewContentLoaded - fired after dom rendered',event);\n\t\t\t});\n\n\t\t\t$rootScope.$on('$stateNotFound',function(event, unfoundState, fromState, fromParams){\n\t\t\t\tconsole.warn('$stateNotFound '+unfoundState.to+' - fired when a state cannot be found by its name.');\n\t\t\t\tconsole.warn(unfoundState, fromState, fromParams);\n\t\t\t});\n\n\n\t\t} ] )\n\t\t.service('$exceptionHandler', function () {\n\t\t\treturn function (error, cause) {\n\t\t\t\tconsole.error('ERROR caught by exception handler: ', error, cause);\n\t\t\t\tconsole.trace();\n\t\t\t}\n\t\t})\n\n\n})( window, window.angular );\n",null,"(function(window, angular, undefined) {\n\t'use strict';\n\t\n\t/**\n * @ngdoc directive\n\t * @class app-sidebar-data-section-asset-revisions\n\t * @memberOf module:app.sidebar\n\t * @restrict EA\n\t * @requires module:app.sidebar.app-sidebar-data-section-asset\n\t * @param {module:app.sidebar.app-sidebar-data-section-asset.assetData} data - The revision data object.\n\t */\n\tangular.module('app.sidebar.data.section.asset.revisions',[ ])\n .component( 'appSidebarDataSectionAssetRevisions', appSidebarDataSectionAssetRevisions() );\n\n\tfunction appSidebarDataSectionAssetRevisions() {\n\n\t\tfunction appSidebarDataSectionAssetRevisionsController( $scope, $element, $compile, $timeout, $filter, $templateRequest, $sce, $appSidebar ){\n\t\t\tvar ctrl = this;\n\t\t\tctrl.$onInit = function() {\n \n\t\t\t};\n\t\t}\n\n\n\n\t\treturn {\n\t\t\tbindings: {\n\t\t\t\tdata: '<',\n\t\t\t},\n\t\t\tcontroller: [ '$scope', '$element', '$compile', '$timeout', '$filter', '$templateRequest', '$sce', '$appSidebar', appSidebarDataSectionAssetRevisionsController ],\n\t\t\tcontrollerAs: 'ctrl',\n // template: \"
\",\n\t\t\ttemplateUrl: '/templates/app/sidebar/data/section/asset/revisions/revisions.tpl.html'\n\t\t};\n\t}\n\n\n})(window, window.angular);\n","(function(window, angular, undefined) {\n\t'use strict';\n\t\n\t/**\n\t * @typedef {module:app.sidebar.app-sidebar-data-section.dataSection} uploadData\n\t * @memberof module:app.sidebar.app-sidebar-data-section-upload\n\t * @property {string[]} order - The order of the uploads. Each index is the asset_id of the upload.\n\t * @property {module:app.sidebar.app-sidebar-data-section-upload.upload[]} data - Array of the actual upload data. The key is the asset_id of the upload.\n\t */\n\t/**\n\t * @typedef upload\n\t * @memberof module:app.sidebar.app-sidebar-data-section-upload\n\t * @property {string} asset_id - The id of the asset being uploaded. This is the key used for {@link module:app.sidebar.app-sidebar-data-section-upload.uploadData uploadData.order}.\n\t * @property {string} fileName - Name of the file being uploaded.\n\t * @property {string} contentType - MIME type of the file being uploaded.\n\t * @property {string} fileSizeInBytes - The size of the file being uploaded in bytes.\n\t * @property {string} imgUrl - The file blob url OR a placeholder image url.\n\t * @property {number} progress - The progress percentage of the upload.\n\t */\n\t\n\t/*\n\t asset_id: assetRecord.Id,\n\t fileName: file.name,\n\t contentType: file.type,\n\t fileSizeInBytes: file.size,\n\t imgUrl: file.blobURL || \"http://placehold.it/100x100?text=PHOTO\",\n\t progress: 0\n\t */\n\t\n\t/**\n\t * @classdesc\n\t * ```html\n\t * \n\t *\t\n\t *\t \n\t *\t\n\t * \n\t * ```\n\t * @ngdoc directive\n\t * @class app-sidebar-data-section-upload\n\t * @memberOf module:app.sidebar\n\t * @restrict EA\n\t * @requires module:app.sidebar.app-sidebar-data-section\n\t * @param {module:app.sidebar.app-sidebar-data-section-upload.uploadData} data - The data object.\n\t */\n\tangular.module('app.sidebar.data.section.upload',[ ])\n\t\t.component( 'appSidebarDataSectionUpload', appSidebarDataSectionUpload() );\n\n\tfunction appSidebarDataSectionUpload() {\n\n\t\tfunction appSidebarDataSectionUploadController( $scope, $element, $compile, $timeout, $log, $templateRequest, $sce, $appSidebar ){\n\t\t\tvar ctrl = this;\n\t\t\tctrl.hidden = false;\n\n\t\t\tctrl.$onInit = function() {\n\t\t\t\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tbindings: {\n\t\t\t\tdata: '<',\n\t\t\t},\n\t\t\tcontroller: [ '$scope', '$element', '$compile', '$timeout', '$log', '$templateRequest', '$sce', '$appSidebar', appSidebarDataSectionUploadController ],\n\t\t\tcontrollerAs: 'ctrl',\n\t\t\t\t// template: \"
\",\n\t\t\ttemplateUrl: '/templates/app/sidebar/data/section/upload/upload.tpl.html'\n\t\t};\n\t}\n\n\n})(window, window.angular);\n","(function(window, angular, undefined) {\n\t'use strict';\n\n\t/**\n\t * @typedef {module:app.sidebar.app-sidebar-data-section.dataSection} uploadData\n\t * @memberof module:app.sidebar.app-sidebar-data-section-upload\n\t * @property {string[]} order - The order of the uploads. Each index is the asset_id of the upload.\n\t * @property {module:app.sidebar.app-sidebar-data-section-upload.upload[]} data - Array of the actual upload data. The key is the asset_id of the upload.\n\t */\n\t/**\n\t * @typedef upload\n\t * @memberof module:app.sidebar.app-sidebar-data-section-upload\n\t * @property {string} asset_id - The id of the asset being uploaded. This is the key used for {@link module:app.sidebar.app-sidebar-data-section-upload.uploadData uploadData.order}.\n\t * @property {string} fileName - Name of the file being uploaded.\n\t * @property {string} contentType - MIME type of the file being uploaded.\n\t * @property {string} fileSizeInBytes - The size of the file being uploaded in bytes.\n\t * @property {string} imgUrl - The file blob url OR a placeholder image url.\n\t * @property {number} progress - The progress percentage of the upload.\n\t */\n\n\t/*\n\t asset_id: assetRecord.Id,\n\t fileName: file.name,\n\t contentType: file.type,\n\t fileSizeInBytes: file.size,\n\t imgUrl: file.blobURL || \"http://placehold.it/100x100?text=PHOTO\",\n\t progress: 0\n\t */\n\n\t/**\n\t * @classdesc\n\t * ```html\n\t * \n\t *\t\n\t *\t \n\t *\t\n\t * \n\t * ```\n\t * @ngdoc directive\n\t * @class app-sidebar-data-section-upload\n\t * @memberOf module:app.sidebar\n\t * @restrict EA\n\t * @requires module:app.sidebar.app-sidebar-data-section\n\t * @param {module:app.sidebar.app-sidebar-data-section-upload.uploadData} data - The data object.\n\t */\n\tangular.module('app.sidebar.data.section.upload',[ ])\n\t\t.component( 'appSidebarDataSectionUpload', appSidebarDataSectionUpload() );\n\n\tfunction appSidebarDataSectionUpload() {\n\n\t\tfunction appSidebarDataSectionUploadController( $scope, $element, $compile, $timeout, $log, $templateRequest, $sce, $appSidebar ){\n\t\t\tvar ctrl = this;\n\t\t\tctrl.hidden = false;\n\n\t\t\tctrl.$onInit = function() {\n\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tbindings: {\n\t\t\t\tdata: '<',\n\t\t\t},\n\t\t\tcontroller: [ '$scope', '$element', '$compile', '$timeout', '$log', '$templateRequest', '$sce', '$appSidebar', appSidebarDataSectionUploadController ],\n\t\t\tcontrollerAs: 'ctrl',\n\t\t\t// template: \"
\",\n\t\t\ttemplateUrl: '/templates/app/sidebar/data/section/upload/upload.tpl.html'\n\t\t};\n\t}\n\n\n})(window, window.angular);\n","(function(window, angular, undefined) {\n\t'use strict';\n\n\t/**\n\t * @typedef {module:app.sidebar.app-sidebar-data-section.dataSection} assetData\n\t * @memberof module:app.sidebar.app-sidebar-data-section-asset\n\t * @property {module:app.sidebar.app-sidebar-data-section-asset.asset[]} data - Array of the actual asset data.\n\t */\n\t/**\n\t * @typedef asset\n\t * @memberof module:app.sidebar.app-sidebar-data-section-asset\n\t * @property {string} kind - File type of the asset.\n\t * @property {string} size - File size of the asset\n\t * @property {Date} created_at - Date file was created.\n\t * @property {Date} updated_at - Date of last revision.\n\t * @property {number} revisions - Number of revisions.\n\t */\n\n\t/*\n\t 'kind': ctrl.data.object.kind,\n\t 'size': ctrl.data.object.size,\n\t 'created': $filter('date')( ctrl.data.object.created_at, 'short'),\n\t 'modified': $filter('date')( ctrl.data.object.updated_at, 'short'),\n\t 'revisions': ctrl.data.object.revisions.length\n\t */\n\n\t/**\n\t * @classdesc\n\t * ```html\n\t * \n\t * \t\n\t * \t\t\n\t *\t\t\t\n\t * \t\t\t\t\n\t * \t\t\t\n \t * \t\t\n\t * \t\n\t * \n\t * ```\n\t * @ngdoc directive\n\t * @class app-sidebar-data-section-asset\n\t * @memberOf module:app.sidebar\n\t * @restrict EA\n\t * @requires module:app.sidebar.app-sidebar-data-section\n\t * @param {module:app.sidebar.app-sidebar-data-section-asset.assetData} data - The data object.\n\t */\n\n\tangular.module('app.sidebar.data.section.asset',[\n\t\t'app.sidebar.data.section.asset.revisions',\n\t\t'ngFileUpload'\n\t])\n .component( 'appSidebarDataSectionAsset', appSidebarDataSectionAsset() );\n\n\tfunction appSidebarDataSectionAsset() {\n\n\t\tfunction appSidebarDataSectionAssetController( $scope, $element, $compile, $timeout, $filter, $templateRequest, $sce, $appSidebar, assetService ){\n\t\t\tvar ctrl = this;\n\t\t\tctrl.hidden = false;\n\t\t\tctrl.displayData = {};\n\t\t\tctrl.videoSrcObject;\n\n\t\t\t/**\n\t\t\t * Initialization function, sets up the `ctrl.displayData` object, which is primarily the same as ctrl.data.object. with the exception of dates being filtered.\n\t\t\t * @method $onInit\n\t\t\t * @memberOf module:app.sidebar.app-sidebar-data-section-asset#\n\t\t\t */\n\t\t\tctrl.$onInit = function() {\n\t\t\t\t// console.log( 'Asset Sidebar Section', ctrl.data.object )\n\t\t\t\tsetDisplayObject( ctrl.data.object );\n\t\t\t\tctrl.videoSrcObject = ctrl.data.object.functions.getVideoSrcFn( ctrl.data.object )\n\n\t\t\t};\n\n\t\t\tctrl.$onChanges = function( changes ) {\n\t\t\t\t// console.log( 'asset.$onChanges', arguments);\n\t\t\t\tif ( changes && changes.data && changes.data.currentValue ) {\n\t\t\t\t\tsetDisplayObject(changes.data.currentValue.object);\n\n\t\t\t\t\t// if (ctrl.isVideo(ctrl.data.object)) {\n\t\t\t\t\t\tctrl.videoSrcObject = changes.data.currentValue.object.functions.getVideoSrcFn(ctrl.data.object)\n\t\t\t\t\t// }\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction setDisplayObject( obj ) {\n\t\t\t\tctrl.displayData = {\n\t\t\t\t\t'kind': obj.originalFile && $filter('mimeType')( obj.originalFile.contentType ),\n\t\t\t\t\t'size': obj.originalFile && $filter('bytesToHuman')( obj.originalFile.fileSize ),\n\t\t\t\t\t'createdBy': obj.createdBy.name,\n\t\t\t\t\t'created': $filter('date')( obj.createdAt, 'short'),\n\t\t\t\t\t'modified': $filter('date')( obj.updatedAt, 'short'),\n\t\t\t\t};\n\n\t\t\t\tvar currentRevision = obj.revisions && obj.revisions.filter(function( revision ) {\n\t\t\t\t\treturn revision.currentVersion;\n\t\t\t\t} );\n\t\t\t\tif ( currentRevision && currentRevision.length && currentRevision[0].status ) {\n\t\t\t\t\tctrl.displayData.status = currentRevision[0].status.name;\n\t\t\t\t}\n\n\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Uploades a revision via {@link module:assets.api.uploadRevision}\n\t\t\t * @method uploadRevision\n\t\t\t * @memberof module:app.sidebar.app-sidebar-data-section-asset#\n\t\t\t * @param {files} files - Files object returned by `input type=\"file\"`.\n\t\t\t */\n\t\t\tctrl.uploadRevision = function( files ) {\n\t\t\t\tctrl.data.object.functions.revisionFn( ctrl.data.object.id, files );\n\t\t\t};\n\n\t\t\tctrl.isVideo = function( asset ) {\n\t\t\t\t// console.log( '[$appSidebar data section asset] isVideo', ctrl.videoSrcObject );\n\t\t\t\treturn !!ctrl.videoSrcObject;\n\t\t\t\t// return false;\n\t\t\t};\n\n\t\t\tctrl.getExtension = function( filename ) {\n\t\t\t\tvar nameSplit = filename.split('.');\n\t\t\t\tvar ext = nameSplit.pop().toLowerCase();\n\n\t\t\t\treturn ext;\n\t\t\t};\n\n\t\t\tctrl.getPublicLink = function() {\n\t\t\t\tvar previewFiles = $filter('filter')(ctrl.data.object.currentVersion.files, { 'isOriginal': false, 'encoderId': 'PREVIEW' } );\n\t\t\t\tvar video = previewFiles.find( function( file ) { return file.contentType === 'video/mp4' } );\n\t\t\t\tvar poster = previewFiles.find( function( file ) { return file.contentType === 'image/jpeg' } );\n\t\t\t\treturn 'http://previewmyvideo.com/assets/?v=' + video.importUrl + '&p=' + poster.importUrl;\n\t\t\t}\n\n\n\t\t}\n\n\n\n\t\treturn {\n\t\t\tbindings: {\n\t\t\t\tdata: '<',\n\t\t\t},\n\t\t\tcontroller: [ '$scope', '$element', '$compile', '$timeout', '$filter', '$templateRequest', '$sce', '$appSidebar', 'assets.asset', appSidebarDataSectionAssetController ],\n\t\t\tcontrollerAs: 'ctrl',\n\t\t\ttemplateUrl: '/templates/app/sidebar/data/section/asset/asset.tpl.html'\n\t\t};\n\t}\n\n\n})(window, window.angular);\n","(function( window, angular, moment, undefined ) {\n\t'use strict';\n\tvar BROWSER_TZ = moment.tz( moment.tz.guess() ).utcOffset();\n\n\n\tangular.module( 'mdTimePicker', ['ngMaterial'] )\n\t\t.config( [ '$mdThemingProvider', function( $mdThemingProvider ) {\n\t\t\t$mdThemingProvider.registerStyles('' +\n\t\t\t\t'.md-THEME_NAME-theme .md-time-picker-panel,' +\n\t\t\t\t'.md-THEME_NAME-theme .md-time-picker-panel .md-time-picker-time-container { background: \\'{{background-hue-1}}\\'; }' +\n\n\t\t\t\t'.md-THEME_NAME-theme .md-time-picker-panel .md-time-picker-digit:first-child,' +\n\t\t\t\t'.md-THEME_NAME-theme .md-time-picker-panel .md-time-picker-digit:last-child { color: \\'{{background-contrast-0.17}}\\'; }' +\n\t\t\t\t'.md-THEME_NAME-theme .md-time-picker-panel .md-time-picker-digit:nth-child(2),' +\n\t\t\t\t'.md-THEME_NAME-theme .md-time-picker-panel .md-time-picker-digit:nth-child(4) { color: \\'{{background-contrast-0.37}}\\'; }' +\n\t\t\t\t'.md-THEME_NAME-theme .md-time-picker-panel .md-time-picker-digit.selected { color: \\'{{background-contrast-0.87}}\\'; }' +\n\t\t\t\t\t// Disabled buttons\n\n\t\t\t\t'.md-THEME_NAME-theme .md-time-picker-panel .md-time-picker-digit[disabled]:first-child,' +\n\t\t\t\t'.md-THEME_NAME-theme .md-time-picker-panel .md-time-picker-digit[disabled]:last-child { color: \\'{{warn-hue-1-0.47}}\\'; }' +\n\t\t\t\t'.md-THEME_NAME-theme .md-time-picker-panel .md-time-picker-digit[disabled]:nth-child(2),' +\n\t\t\t\t'.md-THEME_NAME-theme .md-time-picker-panel .md-time-picker-digit[disabled]:nth-child(4) { color: \\'{{warn-hue-1-0.67}}\\'; }' +\n\n\t\t\t\t\t// Input\n\t\t\t\t'.md-THEME_NAME-theme .md-time-picker-panel .md-time-picker-time-container input { border-bottom-color: \\'{{primary-default}}\\'; }' +\n\t\t\t\t'.md-THEME_NAME-theme .md-time-picker-panel .md-time-picker-time-container input.ng-invalid { border-bottom-color: \\'{{warn-default}}\\'; color: \\'{{warn-default}}\\'; }' +\n\t\t\t\t'.md-THEME_NAME-theme .md-time-picker-panel .md-time-picker-digit.single.ng-invalid:before { color: \\'{{warn-default}}\\'; }' +\n\n\t\t\t\t'.md-THEME_NAME-theme .md-time-picker-panel ng-messages { color: \\'{{warn-default}}\\'; }' +\n\n\t\t\t\t'.md-THEME_NAME-theme .md-time-picker-triangle-button { color: \\'{{background-contrast-0.38}}\\'; }' +\n\n\t\t\t\t'');\n\t\t} ])\n\t\t.provider( '$mdTimePicker', [mdTimePickerProvider])\n\t\t.directive( 'mdTimePicker', [ '$mdUtil', 'inputDirective', function( $mdUtil, inputDirective ) {\n\t\t\treturn {\n\t\t\t\ttemplateUrl: '/templates/ui/mdTimePicker/src/templates/mdTimePicker.tpl.html',\n\t\t\t\trestrict: 'E',\n\t\t\t\tscope: {\n\t\t\t\t\t// ngModelValue: '=ngModel',\n\t\t\t\t\toptions: '<'\n\t\t\t\t},\n\t\t\t\trequire: {\n\t\t\t\t\tmdTimePicker: 'mdTimePicker',\n\t\t\t\t\tngModel: '^ngModel',\n\t\t\t\t\tmdInputContainer: '?^mdInputContainer'\n\t\t\t\t},\n\t\t\t\tcontroller: [ '$scope', '$element', '$attrs', '$mdUtil', '$$mdDateUtil', '$filter', '$timeout', '$mdTimePicker', TimePickerCtrl ],\n\t\t\t\tbindToController: true,\n\t\t\t\tcontrollerAs: 'ctrl',\n\t\t\t\tlink: function( scope, element, attr, controllers ) {\n\t\t\t\t\t// console.log( '[TIME PICKER] link');\n\n\t\t\t\t\tvar mdTimePickerController = controllers.mdTimePicker;\n\t\t\t\t\tvar mdInputContainer = controllers.mdInputContainer;\n\t\t\t\t\tvar ngModelController = controllers.ngModel;\n\n\n\t\t\t\t\tmdTimePickerController.configureNgModel( ngModelController, mdInputContainer, inputDirective );\n\t\t\t\t\t// console.log( '[TIMEPICKER] md time picker controller', mdInputContainer);\n\n\t\t\t\t\tif ( mdInputContainer ) {\n\t\t\t\t\t\tvar spacer = element[0].querySelector('.md-errors-spacer');\n\t\t\t\t\t\t// console.log( '[TIMEPICKER] md time picker', spacer );\n\t\t\t\t\t\tif (spacer) {\n\t\t\t\t\t\t\telement.after(angular.element('
').append(spacer));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tmdInputContainer.input = element;\n\n\t\t\t\t\t\tmdInputContainer.element\n\t\t\t\t\t\t\t.addClass( '_md-time-picker-floating-label')\n\t\t\t\t\t\t\t.toggleClass( '_md-time-picker-has-clock-icon', true ); // Has icon // TODO: add optional icon support\n\t\t\t\t\t}\n\n\t\t\t\t\telement.toggleClass( '_md-time-picker-has-triangle-icon', true ); // Has icon // TODO: add optional icon support\n\t\t\t\t}\n\t\t\t};\n\t\t}])\n\t\t.directive('mdTimePickerHour', [function() {\n\t\t\treturn {\n\t\t\t\trequire: 'ngModel',\n\t\t\t\tlink: function(scope, elm, attrs, ctrl) {\n\t\t\t\t\tvar opts = scope.$eval( attrs.mdTimePickerHour );\n\t\t\t\t\t// var am;\n\t\t\t\t\tvar min = scope.$eval( attrs.min ) || 0;\n\t\t\t\t\tvar max = scope.$eval( attrs.max ) || 23;\n\n\t\t\t\t\t// console.log( '[TIMEPICKER] DIRECTIVE', options );\n\n\t\t\t\t\t// attrs.$observe('mdTimePickerHour', function( newVal ) {\n\t\t\t\t\tscope.$watch( function() { return scope.$eval( attrs.mdTimePickerHour ); }, function( newVal ) {\n\t\t\t\t\t\t// console.log( '[TIMEPICKER] ATTR CHANGE', newVal );\n\t\t\t\t\t\topts = newVal;\n\t\t\t\t\t\tctrl.$validate();\n\t\t\t\t\t}, true );\n\t\t\t\t\t// console.log( '[TIMEPICKER] DIRECTIVE', opts.am, min, max );\n\n\t\t\t\t\tctrl.$validators.hour = function(modelValue, viewValue) {\n\t\t\t\t\t\tvar adjusted = modelValue;\n\t\t\t\t\t\t// console.log( '[TIMEPICKER] VALIDATE', adjusted, opts, min, max );\n\t\t\t\t\t\tif ( adjusted === undefined ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( opts.format === 12 ) {\n\t\t\t\t\t\t\tif ( opts.am && adjusted == 12 ) {\n\t\t\t\t\t\t\t\tadjusted = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( !opts.am && adjusted != 12 ) {\n\t\t\t\t\t\t\t\tadjusted = adjusted + 12;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// console.log( '[TIMEPICKER] VALIDATE ==== ', adjusted + ' >= ' + min + ' && ' + adjusted + ' <= ' + max, adjusted >= min && adjusted <= max );\n\t\t\t\t\t\treturn adjusted >= min && adjusted <= max;\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t};\n\t\t}])\n\t\t.filter( 'mdTimePickerFormatHour', function() {\n\t\t\treturn function( input, options ) {\n\t\t\t\t// console.log( '[TIMEPICKER] Filter', input, options );\n\n\n\t\t\t\tvar format = parseInt( options.format );\n\t\t\t\t// var min = parseInt( options.minHour );\n\t\t\t\t// var max = parseInt( options.maxHour );\n\n\t\t\t\tinput = parseInt( input ) % format;\n\n\t\t\t\t// console.log( '[TIMEPICKER] Filter 2', input, format );\n\n\n\t\t\t\tif ( input > 23) {\n\t\t\t\t\tinput = ( ( input - 24 ) ) % format;\n\t\t\t\t}\n\n\t\t\t\tif ( input < 0 ) {\n\t\t\t\t\tinput = ( 24 + input ) % format;\n\t\t\t\t}\n\n\n\t\t\t\t// 12 hour Midnight\n\t\t\t\tif ( format === 12 && input === 0 ) {\n\t\t\t\t\treturn 12;\n\t\t\t\t}\n\t\t\t\t// 24 hour Midnight,\n\t\t\t\tif ( format === 24 && input === format ) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn Math.round( input );\n\t\t\t};\n\t\t})\n\t\t.filter( 'mdTimePickerFormatMinute', function() {\n\t\t\treturn function( input, options ) {\n\t\t\t\tinput = parseInt( input );\n\t\t\t\tif ( input >= 60 ) {\n\t\t\t\t\tinput = input - 60;\n\t\t\t\t}\n\t\t\t\tif ( input < 0 ) {\n\t\t\t\t\tinput = 60 + input;\n\t\t\t\t}\n\t\t\t\tif ( input < 10 ) {\n\t\t\t\t\tinput = '0' + input;\n\t\t\t\t}\n\t\t\t\treturn input;\n\t\t\t};\n\t\t})\n\t\t;\n\n\n\tfunction fixHour( hour, increment ) {\n\t\tincrement = increment || 1;\n\t\tif ( hour > 23 ) {\n\t\t\thour = hour % 24 ;\n\t\t}\n\n\t\tif ( hour < 0 ) {\n\t\t\thour = ( 24 + hour ) % 24;\n\t\t}\n\n\t\treturn Math.round( hour / increment ) * increment;\n\t}\n\n\tfunction fixMinute( minute, increment ) {\n\t\t// console.log( '[TIMEPICKER] fixMinute', minute, increment );\n\t\tincrement = increment || 1;\n\t\tif ( minute > 59 ) {\n\t\t\tminute = minute % 60 ;\n\t\t}\n\n\t\tif ( minute < 0 ) {\n\t\t\tminute = ( 60 + minute ) % 60;\n\t\t}\n\t\t// console.log( '[TIMEPICKER] fixMinute', minute );\n\t\treturn Math.round( minute / increment ) * increment;\n\t}\n\n\n\tfunction mdTimePickerProvider() {\n\t\tvar SCROLL_BUFFER = 35;\n\n\t\tvar options = {\n\t\t\tformat: 12,\n\t\t\tscrollBuffer: 100,\n\n\t\t\tminMinute: 0,\n\t\t\tmaxMinute: 59,\n\t\t\tminuteIncrement: 1,\n\n\t\t\tminHour: 0,\n\t\t\tmaxHour: 23,\n\t\t\thourIncrement: 1,\n\n\t\t};\n\n\n\n\t\tthis.$get = [ '$rootScope', '$q', '$filter', '$mdPanel', '$timeout', function( $scope, $q, $filter, $mdPanel, $timeout ) {\n\n\t\t\tvar panelRef;\n\t\t\tfunction DialogController(mdPanelRef) {\n\n\n\t\t\t\tvar ctrl = this;\n\t\t\t\t/*console.log( ctrl.value );\n\n\t\t\t\tif ( typeof ctrl.value === 'string' ) {\n\t\t\t\t\tctrl.value = new Date( ctrl.value );\n\t\t\t\t} else if ( Object.prototype.toString.call( ctrl.value ) !== '[object Date]' || ( Object.prototype.toString.call( ctrl.value ) === '[object Date]' && isNaN( ctrl.value.getTime() ) ) ) {\n\t\t\t\t\tctrl.value = new Date();\n\t\t\t\t}\n\n\t\t\t\tctrl.m = moment( ctrl.value );\n\t\t\t\tif ( ctrl.m.toJSON === null ) {\n\t\t\t\t\tctrl.m = moment();\n\t\t\t\t}*/\n\n\t\t\t\tctrl.saveLabel = 'OK';\n\t\t\t\tctrl.cancelLabel = 'Cancel';\n\n\t\t\t\tctrl.options = Object.assign({}, options, ctrl.options );\n\t\t\t\tctrl.format = ctrl.options.format;\n\n\t\t\t\tvar hourScroll = 0;\n\t\t\t\tvar minuteScroll = 0;\n\n\t\t\t\tvar lastHourScroll = Date.now() / 100000000;\n\t\t\t\tvar lastMinuteScroll = Date.now() / 100000000;\n\n\t\t\t\t// Give time to template to render\n\t\t\t\t$timeout( init, 100 );\n\n\n\n\t\t\t\t/********************************/\n\t\t\t\t/* Member Functions Below */\n\t\t\t\t/********************************/\n\n\n\t\t\t\tfunction init() {\n\t\t\t\t\t// console.log(\"[TIMEPICKER] DIALOG INIT\", ctrl );\n\t\t\t\t\t// INIT\n\n\t\t\t\t\t// ctrl.hour = input model\n\t\t\t\t\t// ctrl._hour = internal fixed version of the hour (display)\n\t\t\t\t\t// hourScroll = hour value that is adjusted based on scroll / mousewheel input. This will be manipulated, rounded, and corrected to the actual hour value. see fixHour\n\n\t\t\t\t\t// ctrl.m = moment( ctrl.value.toDateString() );\n\t\t\t\t\t// console.log('[TIMEPICKER] m', ctrl.m );\n\t\t\t\t\t// if ( ctrl.options.timezone ) {\n\t\t\t\t\t// \t//ctrl.m.tz( ctrl.options.timezone );\n\t\t\t\t\t// }\n\n\t\t\t\t\thourScroll = Math.round( ctrl.hour / ctrl.options.hourIncrement ) * ctrl.options.hourIncrement; //Math.round( ctrl.m.get('hours') / ctrl.options.hourIncrement ) * ctrl.options.hourIncrement;\n\t\t\t\t\tminuteScroll = Math.round( ctrl.minute / ctrl.options.minuteIncrement ) * ctrl.options.minuteIncrement; // Math.round( ctrl.m.get('minutes') / ctrl.options.minuteIncrement ) * ctrl.options.minuteIncrement;\n\n\t\t\t\t\tctrl.setHour( hourScroll, true );\n\t\t\t\t\tctrl.setMinute( minuteScroll, true );\n\n\t\t\t\t\t// ctrl.hour = hourScroll;\n\n\t\t\t\t\tctrl.am = ctrl.hour < 12;\n\n\n\t\t\t\t\tvar hourScroller = angular.element( mdPanelRef.panelEl[0].querySelector('.md-time-picker-hours') );\n\t\t\t\t\tvar minuteScroller = angular.element( mdPanelRef.panelEl[0].querySelector('.md-time-picker-minutes') );\n\n\t\t\t\t\t// https://stackoverflow.com/questions/17326663/how-can-get-a-scroll-event-work-in-chrome-and-firefox\n\t\t\t\t\tvar mousewheelevt = (/Firefox/i.test(navigator.userAgent))? 'wheel' : 'mousewheel'; //FF doesn't recognize mousewheel as of FF3.x\n\n\t\t\t\t\thourScroller.on(mousewheelevt, handleHourScroll);\n\t\t\t\t\tminuteScroller.on(mousewheelevt, handleMinuteScroll);\n\n\t\t\t\t\tctrl.options.minHour = ctrl.options.minHour || 0;\n\t\t\t\t\tctrl.options.maxHour = ctrl.options.maxHour || 23;\n\n\t\t\t\t\tctrl.options.minMinute = ctrl.options.minMinute || 0;\n\t\t\t\t\tctrl.options.maxMinute = ctrl.options.maxMinute || 59;\n\n\n\n\t\t\t\t}\n\n\t\t\t\tfunction handleHourScroll( $event ) {\n\t\t\t\t\t// console.log( '[TIME PICKER] handleHourScroll', $event );\n\t\t\t\t\tvar scrollDiff = $event.timeStamp - lastHourScroll;\n\n\t\t\t\t\tif ( scrollDiff > ctrl.options.scrollBuffer ) {\n\t\t\t\t\t\thourScroll += ctrl.options.hourIncrement * ( $event.deltaY > 0 ? 1 : -1 );\n\t\t\t\t\t} else {\n\t\t\t\t\t\thourScroll += ctrl.options.hourIncrement * ( $event.deltaY / SCROLL_BUFFER );\n\t\t\t\t\t}\n\n\t\t\t\t\t// hourScroll = fixHour( hourScroll );\n\n\t\t\t\t\t// console.log( hourScroll );\n\n\t\t\t\t\t$scope.$apply( function() {\n\t\t\t\t\t//\tvar tmp = Math.floor( hourScroll / ctrl.options.hourIncrement ) * ctrl.options.hourIncrement;\n\t\t\t\t\t\tctrl.setHour( fixHour( hourScroll, ctrl.options.hourIncrement ), true );\n\t\t\t\t\t\tlastHourScroll = $event.timeStamp;\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tfunction handleMinuteScroll( $event ) {\n\t\t\t\t\tvar scrollDiff = $event.timeStamp - lastMinuteScroll;\n\n\t\t\t\t\tif ( scrollDiff > ctrl.options.scrollBuffer ) {\n\t\t\t\t\t\tminuteScroll += ctrl.options.minuteIncrement * ( $event.deltaY > 0 ? 1 : -1 );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tminuteScroll += ctrl.options.minuteIncrement * ( $event.deltaY / SCROLL_BUFFER\t );\n\t\t\t\t\t}\n\n\n\n\t\t\t\t\t$scope.$apply( function() {\n\t\t\t\t\t\t// var tmp = Math.floor( minuteScroll / ctrl.options.minuteIncrement ) * ctrl.options.minuteIncrement;\n\t\t\t\t\t\tctrl.setMinute( fixMinute( minuteScroll, ctrl.options.minuteIncrement ), true );\n\t\t\t\t\t\tlastMinuteScroll = $event.timeStamp;\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tfunction getAdjustedHour( hour, am ) {\n\t\t\t\t\tvar adjustedHour = hour || ctrl.hour;\n\t\t\t\t\tam = am || ctrl.am;\n\t\t\t\t\tif ( ctrl.format === 12 ) {\n\t\t\t\t\t\tif ( !am && adjustedHour !== 12 ) {\n\t\t\t\t\t\t\tadjustedHour = adjustedHour + 12;\n\t\t\t\t\t\t} else if ( am && adjustedHour === 12 ) {\n\t\t\t\t\t\t\tadjustedHour = 0;\n\t\t\t\t\t\t} /*else if ( adjustedHour > 12 ) {\n\t\t\t\t\t\t\tadjustedHour = adjustedHour - 12;\n\t\t\t\t\t\t}*/\n\t\t\t\t\t}\n\n\t\t\t\t\treturn adjustedHour;\n\n\t\t\t\t}\n\n\t\t\t\tctrl.hourDisplay = function( hour ) {\n\n\t\t\t\t\thour = ( hour || hour === 0 ) ? hour : ctrl._hour;\n\t\t\t\t\thour = fixHour( hour );\n\n\t\t\t\t\tvar postfix = '';\n\n\t\t\t\t\tif ( ctrl.options.format === 12 ) {\n\t\t\t\t\t\tif ( hour < 12 ) {\n\t\t\t\t\t\t\tpostfix = 'am';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tpostfix = 'pm';\n\t\t\t\t\t\t\thour -= 12;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpostfix = ':00';\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (( hour === 0 ) ? '12' : hour ) + postfix;\n\t\t\t\t\t// return hour + postfix;\n\n\t\t\t\t};\n\n\t\t\t\t$scope.$watch( function() { return ctrl._hour; }, function( newVal ) {\n\t\t\t\t\t// console.log( '[TIMEPICKER] _HOUR CHANGE', newVal );\n\t\t\t\t\tif ( !newVal && newVal !== 0 ) { return; }\n\n\t\t\t\t\tvar tmp = newVal % ctrl.format;\n\t\t\t\t\tctrl.hour = ctrl.format === 12 && tmp === 0 ? 12 : tmp;\n\n\t\t\t\t\t// console.log( newVal, ctrl.hour );\n\t\t\t\t\tif ( fixHour( newVal, ctrl.options.hourIncrement ) < 12 ) {\n\t\t\t\t\t\tctrl.am = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tctrl.am = false;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t$scope.$watch( function() { return ctrl._minute; }, function( newVal ) {\n\n\t\t\t\t\tif ( !newVal && newVal !== 0 ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tctrl.minute = fixMinute( newVal, ctrl.options.minuteIncrement ) ;\n\t\t\t\t});\n\n\n\t\t\t\tctrl.minuteChange = function( $event ) {\n\t\t\t\t\t// console.log( '[TIMEPICKER] MINUTE CHANGE', arguments );\n\t\t\t\t\tctrl.minute = fixMinute( ctrl.minute, ctrl.options.minuteIncrement );\n\t\t\t\t};\n\n\n\t\t\t\tctrl.getHour = function( diff ) {\n\t\t\t\t\treturn $filter( 'mdTimePickerFormatHour' )( ctrl._hour + ( diff * ctrl.options.hourIncrement ), ctrl.options );\n\t\t\t\t};\n\n\t\t\t\tctrl.getMinute = function( diff ) {\n\t\t\t\t\treturn $filter( 'mdTimePickerFormatMinute' )( ( ctrl._minute + ( diff * ctrl.options.minuteIncrement ) ) % 60, ctrl.options );\n\t\t\t\t};\n\n\t\t\t\tctrl.setHour = function( val, absolute ) {\n\t\t\t\t\tif ( absolute ) {\n\t\t\t\t\t\tctrl._hour = fixHour( val, ctrl.options.hourIncrement );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tctrl._hour = fixHour( ctrl._hour + val, ctrl.options.hourIncrement );\n\t\t\t\t\t\thourScroll = ctrl._hour;\n\t\t\t\t\t}\n\n\t\t\t\t\t// ctrl.hour = ctrl._hour;\n\t\t\t\t};\n\n\t\t\t\tctrl.setMinute = function( val, absolute ) {\n\t\t\t\t\tif ( absolute ) {\n\t\t\t\t\t\tctrl._minute = fixMinute( val, ctrl.options.minuteIncrement );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tctrl._minute = fixMinute( ctrl._minute + ( val * ctrl.options.minuteIncrement ), ctrl.options.minuteIncrement );\n\t\t\t\t\t\tminuteScroll = ctrl._minute;\n\t\t\t\t\t}\n\t\t\t\t\t// ctrl.minute = ctrl._minute;\n\t\t\t\t\tctrl.isMinuteError = !ctrl.validMinute( ctrl._minute, true);\n\t\t\t\t};\n\n\t\t\t\tctrl.setAm = function( newVal ) {\n\t\t\t\t\tif ( newVal ) {\n\t\t\t\t\t\tctrl._hour -= 12;\n\t\t\t\t\t\thourScroll -= 12;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tctrl._hour += 12;\n\t\t\t\t\t\thourScroll += 12;\n\t\t\t\t\t}\n\t\t\t\t\tctrl.am = newVal;\n\t\t\t\t};\n\n\n\t\t\t\tctrl.validHour = function( val, absolute ) {\n\t\t\t\t\tvar hr;\n\t\t\t\t\tif ( absolute ) {\n\t\t\t\t\t\thr = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\thr = this._hour + ( val * ctrl.options.hourIncrement );\n\t\t\t\t\t}\n\t\t\t\t\thr = fixHour( hr );\n\n\t\t\t\t\t// console.log( \"[TIMEPICKER] VALID HOUR: \", val, hr, hr >= this.options.minHour && hr <= this.options.maxHour );\n\t\t\t\t\treturn hr >= this.options.minHour && hr <= this.options.maxHour;\n\t\t\t\t};\n\n\t\t\t\tctrl.validMinute = function( val, absolute ) {\n\t\t\t\t\tvar min;\n\t\t\t\t\tif ( absolute ) {\n\t\t\t\t\t\tmin = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmin = this._minute + ( val * ctrl.options.minuteIncrement );\n\t\t\t\t\t}\n\t\t\t\t\tmin = fixMinute( min, ctrl.options.minuteIncrement );\n\n\t\t\t\t\treturn min >= this.options.minMinute && min <= this.options.maxMinute;\n\t\t\t\t};\n\n\n\n\t\t\t\tctrl.cancel = function() {\n\t\t\t\t\tctrl.defer.reject();\n\t\t\t\t};\n\n\t\t\t\tctrl.close = function() {\n\t\t\t\t\t// console.log( '[TIMEPICKER] FORM', ctrl.mdTimePickerForm, 'VALID', ctrl.mdTimePickerForm.$valid);\n\t\t\t\t\t// console.log( '[TIMEPICKER] VALUE', ctrl.m, ctrl.value, getAdjustedHour(), ctrl.m.hour( getAdjustedHour() ).minute( ctrl.minute ).toDate() );\n\n\t\t\t\t\tvar adjustedHour = getAdjustedHour();\n\t\t\t\t\t// var tzDiff = BROWSER_TZ - moment().tz( this.options.timezone ).utcOffset();\n\t\t\t\t\t// console.log( \"TZ DIFF\", adjustedHour, tzDiff, adjustedHour + ( tzDiff / 60 ) );\n\t\t\t\t\t//\n\t\t\t\t\t//\n\t\t\t\t\t// var tmpValue = new Date( ctrl.value );\n\t\t\t\t\t//\n\t\t\t\t\t// // + ( tzDiff / 60 )\n\t\t\t\t\t// tmpValue.setHours( adjustedHour );\n\t\t\t\t\t// tmpValue.setMinutes( ctrl.minute );\n\t\t\t\t\t//\n\t\t\t\t\t// // var tmpValue = moment.tz( ctrl.value, ctrl.options.timezone ).hour( adjustedHour ).minute( ctrl.minute ).toDate();\n\t\t\t\t\t//\n\t\t\t\t\t// console.log( '[TIMEPICKER] modal close', tmpValue );\n\n\n\t\t\t\t\tif ( ctrl.mdTimePickerForm.$valid ) {\n\t\t\t\t\t\tctrl.defer.resolve( { hour: adjustedHour, minute: ctrl.minute } );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar errorMsg = 'Error!';\n\t\t\t\t\t\tif ( ctrl.mdTimePickerForm.$error.hour ) {\n\t\t\t\t\t\t\tvar minDisplay = getHourDisplay( ctrl.options.minHour );\n\t\t\t\t\t\t\tvar maxDisplay = getHourDisplay( ctrl.options.maxHour );\n\t\t\t\t\t\t\terrorMsg = 'Please select an hour between ' + minDisplay + ' and ' + maxDisplay;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// console.error( errorMsg );\n\t\t\t\t\t\tctrl.error = errorMsg;\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tctrl.defer.promise.finally( function() {\n\t\t\t\t\tmdPanelRef.close();\n\t\t\t\t\t// mdPanelRef.destroy();\n\t\t\t\t});\n\t\t\t}\n\n\n\n\n\t\t\tvar service = {\n\t\t\t\topen: function( $event, value, options, element ) {\n\t\t\t\t\t// console.log( '[TIMEPICKER] OPEN', typeof value, value, options, element );\n\n\t\t\t\t\tvar mValue = moment.tz( value, options.timezone );\n\n\t\t\t\t\tvar panelPosition = $mdPanel.newPanelPosition()\n\t\t\t\t\t\t.relativeTo( element || $event.target )\n\t\t\t\t\t\t.addPanelPosition(\n\t\t\t\t\t\t\t$mdPanel.xPosition.ALIGN_START,\n\t\t\t\t\t\t\t$mdPanel.yPosition.BELOW\n\t\t\t\t\t\t);\n\n\t\t\t\t\tvar panelAnimation = $mdPanel.newPanelAnimation()\n\t\t\t\t\t\t.openFrom( element || $event.target )\n\t\t\t\t\t\t.withAnimation($mdPanel.animation.FADE)\n\t\t\t\t\t\t.duration(250);\n\t\t\t\t\t\t// .closeTo('.show-button');\n\n\t\t\t\t\tvar defer = $q.defer();\n\n\t\t\t\t\tvar config = {\n\t\t\t\t\t\tattachTo: angular.element(document.body),\n\t\t\t\t\t\tcontroller: [ 'mdPanelRef', DialogController ],\n\t\t\t\t\t\tcontrollerAs: 'ctrl',\n\t\t\t\t\t\tbindToController: true,\n\t\t\t\t\t\tlocals: {\n\t\t\t\t\t\t\thour: mValue.hour(),\n\t\t\t\t\t\t\tminute: mValue.minutes(),\n\t\t\t\t\t\t\toptions: options,\n\t\t\t\t\t\t\tdefer: defer\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\tposition: panelPosition,\n\t\t\t\t\t\ttemplateUrl: '/templates/ui/mdTimePicker/src/templates/mdTimePickerDialog.tpl.html',\n\n\t\t\t\t\t\tanimation: panelAnimation,\n\t\t\t\t\t\t// targetEvent: $event,\n\t\t\t\t\t\tclickOutsideToClose: true,\n\t\t\t\t\t\tescapeToClose: true,\n\t\t\t\t\t\tfocusOnOpen: true,\n\t\t\t\t\t\tonCloseSuccess: function( mdPanelRef ) {\n\t\t\t\t\t\t\tmdPanelRef.destroy();\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\t// console.log( );\n\t\t\t\t\t$mdPanel.open(config)\n\t\t\t\t\t\t.then(function(result) {\n\t\t\t\t\t\t\tpanelRef = result;\n\t\t\t\t\t\t});\n\t\t\t\t\treturn defer.promise;\n\n\t\t\t\t},\n\t\t\t\tclose: function() {\n\t\t\t\t\tif ( panelRef ) {\n\t\t\t\t\t\tpanelRef.close();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\n\t\t\treturn service;\n\t\t} ];\n\n\t}\n\n\n\n\n\n\n\t/** Class applied to the container if the date is invalid. */\n\tvar INVALID_CLASS = 'md-time-picker-invalid';\n\n\t/** Class applied to the md-input-container, if a datepicker is placed inside it */\n\tvar INPUT_CONTAINER_CLASS = '_md-time-picker-floating-label';\n\n\t/** Class to be applied when the calendar icon is enabled. */\n\tvar HAS_CLOCK_ICON_CLASS = '_md-time-picker-has-clock-icon';\n\n\t/** Class to be applied when the triangle icon is enabled. */\n\tvar HAS_TRIANGLE_ICON_CLASS = '_md-time-picker-has-triangle-icon';\n\n\t/** Default time in ms to debounce input event by. */\n\tvar DEFAULT_DEBOUNCE_INTERVAL = 350;\n\n\n\tfunction TimePickerCtrl( $scope, $element, $attrs, $mdUtil, $$mdDateUtil, $filter, $timeout, $mdTimePicker ) {\n\t\tvar ctrl = this;\n\t\tctrl.$mdUtil = $mdUtil;\n\t\tctrl.timeRegex = /^([012]?[0-9])(?:\\:?([0-5][0-9]))(?:\\:([\\d\\.]+))? ?([ap]\\.?m?\\.?)?$/mi;\n\n\t\tthis.$timeout = $timeout;\n\n\t\tthis.$mdTimePicker = $mdTimePicker;\n\n\t\t/** @type {!angular.NgModelController} */\n\t\tthis.ngModelCtrl = null;\n\n\t\t/** @type {HTMLInputElement} */\n\t\tthis.inputElement = $element[0].querySelector('input');\n\n\t\t/** @final */\n\t\tthis.ngInputElement = angular.element(this.inputElement);\n\n\t\t/** @type {HTMLElement} */\n\t\tthis.inputContainer = $element[0].querySelector('.md-time-picker-input-container');\n\n\t\tthis.dateUtil = $$mdDateUtil;\n\n\t\t/** @type {HTMLElement} */\n\t\t// this.calendarPane = $element[0].querySelector('.md-datepicker-calendar-pane');\n\n\t\t/** @type {HTMLElement} */\n\t\tthis.timeButton = $element[0].querySelector('.md-time-picker-button');\n\n\n\t\t/** @final */\n\t\tthis.$element = $element;\n\n\t\t/** @final */\n\t\tthis.$attrs = $attrs;\n\n\t\t/** @fina */\n\t\tthis.$scope = $scope;\n\n\t\t/** @type {!angular.Filter} */\n\t\tthis.ngDateFilter = $filter('date');\n\n\t\t/** @type {Date} */\n\t\tthis.date = null;\n\n\t\t/** @type {boolean} */\n\t\tthis.isFocused = false;\n\n\t\t/** @type {boolean} */\n\t\tthis.isDisabled;\n\t\tthis.setDisabled($element[0].disabled || angular.isString($attrs.disabled));\n\n\t\tthis.openPanel;\n\n\t\t// function textToDate( arg ) {\n\t\t// \t// console.log( 'text to date - input', arg, /^([012]?[0-9])(?:\\:?([0-5][0-9]))? ?([ap]m?)?$/gm.exec( arg ) );\n\t\t//\n\t\t// \treturn arg; //ctrl.model;\n\t\t// \t// return arg; //$filter('date')( arg, 'shortTime' );\n\t\t// }\n\t\t//\n\t\t// function dateToText( arg ) {\n\t\t// \t// console.log( 'text to date - output', arg, $filter('date')( arg, 'shortTime' ) );\n\t\t// \treturn $filter('date')( arg, 'shortTime' );\n\t\t// }\n\t\t//\n\t\t//\n\t\t// function ngModelPipelineCheckValue(arg) {\n\t\t// \tctrl.mdInputContainerController.setHasValue(!ctrl.ngModelCtrl.$isEmpty(arg));\n\t\t// \t// ctrl.mdInputContainerController.setInvalid(!ctrl.ngModel.$is);\n\t\t// \t// ctrl.mdInputContainerController.setHasValue(!ctrl.ngModel.$isEmpty(arg));\n\t\t//\n\t\t// \treturn arg;\n\t\t// }\n\n\n\n\t\tvar openPanel;\n\n\n\n\t\t$scope.$on('$destroy', function() {\n\t\t\t$mdTimePicker.close();\n\t\t});\n\n\t}\n\n\tTimePickerCtrl.prototype.$onInit = function() {\n\t\tthis.options = Object.assign( {}, this.options );\n\n\t\t// console.log( '[TIME PICKER] $onInit', this.ngModel.modelValue );\n\n\n\t};\n\n\tTimePickerCtrl.prototype.$postLink = function() {\n\t\t// console.log( '[TIME PICKER] $postLink', this.ngModel.modelValue );\n\t\tvar ctrl = this;\n\t\tctrl.attachChangeListeners();\n\t\tctrl.installPropertyInterceptors();\n\t\t// this.attachChangeListeners();\n\n\t};\n\t/**\n\t * Capture properties set to the date-picker and imperitively handle internal changes.\n\t * This is done to avoid setting up additional $watches.\n\t */\n\tTimePickerCtrl.prototype.installPropertyInterceptors = function() {\n\t\tvar self = this;\n\n\t\tif (this.$attrs.ngDisabled) {\n\t\t\t// The expression is to be evaluated against the directive element's scope and not\n\t\t\t// the directive's isolate scope.\n\t\t\tvar scope = this.$scope.$parent;\n\n\t\t\tif (scope) {\n\t\t\t\tscope.$watch(this.$attrs.ngDisabled, function(isDisabled) {\n\t\t\t\t\tself.setDisabled(isDisabled);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tObject.defineProperty(this, 'placeholder', {\n\t\t\tget: function() { return self.inputElement.placeholder; },\n\t\t\tset: function(value) { self.inputElement.placeholder = value || ''; }\n\t\t});\n\t};\n\n\t/**\n\t * Sets whether the date-picker is disabled.\n\t * @param {boolean} isDisabled\n\t */\n\tTimePickerCtrl.prototype.setDisabled = function(isDisabled) {\n\t\tthis.isDisabled = isDisabled;\n\t\tthis.inputElement.disabled = isDisabled;\n\n\t\tif (this.timeButton) {\n\t\t\tthis.timeButton.disabled = isDisabled;\n\t\t}\n\t};\n\tTimePickerCtrl.prototype.attachChangeListeners = function() {\n\t\tvar ctrl = this;\n\t\tvar debounceInterval = angular.isDefined(this.debounceInterval) ? this.debounceInterval : DEFAULT_DEBOUNCE_INTERVAL;\n\n\t\tctrl.ngInputElement.on('input', ctrl.handleInputEvent.bind(ctrl) );\n\t\tctrl.ngInputElement.on('blur', function( evt ) { ctrl.parseInputEvent.bind(ctrl)( evt, true ) } );\n\t\tctrl.ngInputElement.on('input', ctrl.$mdUtil.debounce(ctrl.parseInputEvent, debounceInterval, ctrl) );\n\t\t// ctrl.ngInputElement.on('keypress', function(evt) {\n\t\t//\n\t\t//\n\t\t// \tif ( evt.key === 'Enter' || evt.keycode === 13 ) {\n\t\t// \t\t//stop form submission\n\t\t// \t\tevt.stopImmediatePropagation();\n\t\t// \t\tevt.preventDefault();\n\t\t// \t\tconsole.log( evt );\n\t\t// \t\t// Update Value\n\t\t// \t\tctrl.handleInputEvent();\n\t\t// \t\tctrl.$timeout( function() {\n\t\t// \t\t\t// continue submission\n\t\t// \t\t\tevt.target.form.onSubmit();\n\t\t// \t\t\t}, 10 )\n\t\t// \t\t}\n\t\t// });\n\n\t\tthis.$scope.$watch( function() { return ctrl.options.timezone; }, angular.bind( ctrl, function( newVal, oldVal ) {\n\t\t\t// console.log( '[TIMEPICKER] TZ Change --------------------------' );\n\t\t\t// console.log( \"[TIMEPICKER] TZ CHANGE\", newVal, oldVal );\n\n\t\t\tif ( !newVal ) {\n\t\t\t\tctrl.options.timezone = moment.tz.guess();\n\t\t\t}\n\n\t\t\tif ( newVal && newVal !== oldVal && ctrl.date ) {\n\t\t\t\tvar tmp = new Date( ctrl.date );\n\t\t\t\tvar diff = 0;\n\t\t\t\tvar diffHours = 0;\n\t\t\t\tvar diffMins = 0;\n\n\t\t\t\toldVal = oldVal || moment.tz.guess();\n\n\t\t\t\tif ( oldVal ) {\n\t\t\t\t\tdiff = ( moment().tz( newVal ).utcOffset() - moment().tz( oldVal ).utcOffset() ) / 60;\n\t\t\t\t\tdiffHours = Math.round( diff );\n\t\t\t\t\tdiffMins = diff % 1 * 60;\n\t\t\t\t}\n\n\t\t\t\t// console.log( '[TIMEPICKER] TZ Change', diff, diffHours, diffMins );\n\t\t\t\t// console.log( '[TIMEPICKER] TZ Change', tmp );\n\n\n\t\t\t\ttmp.setHours( tmp.getHours() - diffHours );\n\t\t\t\ttmp.setMinutes( tmp.getMinutes() + diffMins );\n\n\t\t\t\t// console.log( '[TIMEPICKER] TZ Change', tmp );\n\n\t\t\t\tif ( oldVal ) {\n\t\t\t\t\tctrl.setModelValue(tmp);\n\t\t\t\t}\n\t\t\t\tctrl.onExternalChange( tmp );\n\t\t\t\t// console.log( '[TIMEPICKER] TZ Change --------------------------' );\n\t\t\t}\n\t\t}))\n\t};\n\n\n\tTimePickerCtrl.prototype.openTimePanel = function( $event ) {\n\t\tvar ctrl = this;\n\t\tif ( !this.isDisabled ) {\n\t\t\t// console.log( '[TIMEPICKER] [md-time-picker] OPEN PANEL', $event, ctrl.ngModel );\n\t\t\t// $event.target = $element;\n\t\t\tctrl.ngModel.$setTouched();\n\t\t\tctrl.openPanel = ctrl.$mdTimePicker.open( $event, ctrl.ngModel.$modelValue, ctrl.options, ctrl.inputElement )\n\t\t\t\t.then( function ( result ) {\n\t\t\t\t\t// console.log( 'GOT RESULT', result );\n\t\t\t\t\tctrl.ngModelCtrl.$setTouched();\n\n\t\t\t\t\tvar parsed = ctrl.setDateTime( result.hour, result.minute );\n\t\t\t\t\tctrl.setModelValue( parsed );\n\t\t\t\t\tctrl.onExternalChange( parsed );\n\t\t\t\t} );\n\t\t}\n\t};\n\t/**\n\t * Evaluates an attribute expression against the parent scope.\n\t * @param {String} attr Name of the attribute to be evaluated.\n\t */\n\tTimePickerCtrl.prototype.evalAttr = function(attr) {\n\t\tif (this.$attrs[attr]) {\n\t\t\tthis.$scope.$parent.$eval(this.$attrs[attr]);\n\t\t}\n\t};\n\tTimePickerCtrl.prototype.setFocused = function(isFocused) {\n\t\tif (!isFocused) {\n\t\t\tthis.handleInputEvent()\n\t\t\tthis.ngModelCtrl.$setTouched();\n\t\t}\n\n\t\t// The ng* expressions shouldn't be evaluated when mdOpenOnFocus is on,\n\t\t// because they also get called when the calendar is opened/closed.\n\t\tif (!this.openOnFocus) {\n\t\t\tthis.evalAttr(isFocused ? 'ngFocus' : 'ngBlur');\n\t\t}\n\n\t\tthis.isFocused = isFocused;\n\t};\n\n\t/**\n\t * Sets up the controller's reference to ngModelController and\n\t * applies AngularJS's `input[type=\"date\"]` directive.\n\t * @param {!angular.NgModelController} ngModelCtrl Instance of the ngModel controller.\n\t * @param {Object} mdInputContainer Instance of the mdInputContainer controller.\n\t * @param {Object} inputDirective Config for AngularJS's `input` directive.\n\t */\n\tTimePickerCtrl.prototype.configureNgModel = function( ngModelController, mdInputContainer, inputDirective ) {\n\t\t// console.log( '[TIME PICKER] configureNgModel' );\n\t\tvar ctrl = this;\n\n\n\t\tctrl.ngModelCtrl = ngModelController;\n\t\tctrl.mdInputContainer = mdInputContainer;\n\n\n\t\tctrl.mdInputContainer.input = ctrl.ngInputElement;\n\n\t\t// The input needs to be [type=\"date\"] in order to be picked up by AngularJS.\n\t\t//this.$attrs.$set('type', 'time');\n\n\t\t// Invoke the `input` directive link function, adding a stub for the element.\n\t\t// This allows us to re-use AngularJS's logic for setting the timezone via ng-model-options.\n\t\t// It works by calling the link function directly which then adds the proper `$parsers` and\n\t\t// `$formatters` to the ngModel controller.\n\t\tinputDirective[0].link.pre(ctrl.$scope, {\n\t\t\ton: angular.noop,\n\t\t\tval: angular.noop,\n\t\t\t0: {}\n\t\t}, ctrl.$attrs, [ngModelController]);\n\n\n\t\t// Responds to external changes to the model value.\n\t\t// ctrl.ngModelCtrl.$formatters.push( angular.bind( ctrl, ctrl.timeFormatter ) );\n\t\tctrl.ngModelCtrl.$formatters.push(function(value) {\n\t\t\tvar parsedValue = angular.isDefined(value) ? value : null;\n\n\t\t\tif (!(value instanceof Date)) {\n\t\t\t\tparsedValue = Date.parse(value);\n\n\t\t\t\t// `parsedValue` is the time since epoch if valid or `NaN` if invalid.\n\t\t\t\tif (!isNaN(parsedValue) && angular.isNumber(parsedValue)) {\n\t\t\t\t\tvalue = new Date(parsedValue);\n\t\t\t\t}\n\n\t\t\t\tif (value && !(value instanceof Date)) {\n\t\t\t\t\tthrow Error(\n\t\t\t\t\t\t'The ng-model for md-datepicker must be a Date instance or a value ' +\n\t\t\t\t\t\t'that can be parsed into a date. Currently the model is of type: ' + typeof value\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tctrl.onExternalChange(value);\n\n\t\t\treturn value;\n\t\t});\n\n\n\t\t// Responds to external error state changes (e.g. ng-required based on another input).\n\t\tngModelController.$viewChangeListeners.unshift(angular.bind(this, this.updateErrorState));\n\n\t\t// Forwards any events from the input to the root element. This is necessary to get `updateOn`\n\t\t// working for events that don't bubble (e.g. 'blur') since AngularJS binds the handlers to\n\t\t// the ``.\n\t\tvar updateOn = ctrl.$mdUtil.getModelOption(ngModelController, 'updateOn');\n\n\t\tif (updateOn) {\n\t\t\tthis.ngInputElement.on(\n\t\t\t\tupdateOn,\n\t\t\t\tangular.bind(this.$element, this.$element.triggerHandler, updateOn)\n\t\t\t);\n\t\t}\n\n\n\t};\n\n\n\n\tTimePickerCtrl.prototype.timeFormatter = function(value) {\n\t\tvar ctrl = this;\n\t\tif ( value ) {\n\t\t\t// console.log('[TIME PICKER] $formatter', JSON.parse(JSON.stringify(value)));\n\t\t\tvar newValue = new Date(value);\n\t\t\tctrl.onExternalChange(newValue);\n\t\t\treturn newValue;\n\t\t} else {\n\t\t\t// console.log('[TIME PICKER] $formatter', value);\n\t\t\tctrl.onExternalChange(value);\n\n\t\t\treturn undefined;\n\t\t}\n\t};\n\n\n\n\t/**\n\t * Sets the custom ngModel.$error flags to be consumed by ngMessages. Flags are:\n\t * - mindate: whether the selected date is before the minimum date.\n\t * - maxdate: whether the selected flag is after the maximum date.\n\t * - filtered: whether the selected date is allowed by the custom filtering function.\n\t * - valid: whether the entered text input is a valid date\n\t *\n\t * The 'required' flag is handled automatically by ngModel.\n\t *\n\t * @param {Date=} opt_date Date to check. If not given, defaults to the datepicker's model value.\n\t */\n\tTimePickerCtrl.prototype.updateErrorState = function(opt_date) {\n\t\tvar date = opt_date || this.date;\n\n\t\t// Clear any existing errors to get rid of anything that's no longer relevant.\n\t\tthis.clearErrorState();\n\n\t\tif (this.dateUtil.isValidDate(date)) {\n\t\t\tif (angular.isFunction(this.dateFilter)) {\n\t\t\t\tthis.ngModelCtrl.$setValidity('filtered', this.dateFilter(date));\n\t\t\t}\n\t\t} else {\n\t\t\t// The date is seen as \"not a valid date\" if there is *something* set\n\t\t\t// (i.e.., not null or undefined), but that something isn't a valid date.\n\t\t\tthis.ngModelCtrl.$setValidity('valid', date == null);\n\t\t}\n\n\t\tangular.element(this.inputContainer).toggleClass(INVALID_CLASS, !this.ngModelCtrl.$valid);\n\t};\n\n\n\t/** Clears any error flags set by `updateErrorState`. */\n\tTimePickerCtrl.prototype.clearErrorState = function() {\n\t\tthis.inputContainer.classList.remove(INVALID_CLASS);\n\t\t['filtered', 'valid'].forEach(function(field) {\n\t\t\tthis.ngModelCtrl.$setValidity(field, true);\n\t\t}, this);\n\t};\n\n\n\tTimePickerCtrl.prototype.parseTime = function( input ) {\n\t\tvar ctrl = this;\n\t\t// console.log( '[TIME PICKER] parseTime in', JSON.parse(JSON.stringify(input)), ctrl.timeRegex.exec( JSON.parse(JSON.stringify(input)) ) );\n\t\tvar parsed = ctrl.timeRegex.exec( input );\n\t\t// console.log( '[TIME PICKER] parseTime parsed', parsed );\n\n\t\tif ( parsed ) {\n\t\t\tvar hour = parseInt( parsed[1] ) || 0;\n\t\t\tvar minutes = parseInt( parsed[2] ) || 0 ;\n\t\t\tvar seconds = parseInt( parsed[3] ) || 0;\n\t\t\tvar ampm = parsed[4];\n\n\t\t\t// console.log( '[TIME PICKER] handling input parsing', input, parsed );\n\t\t\t// Convert to 24 hour\n\t\t\tif ( ampm && ampm[0].toLowerCase() == 'p' && hour !== 12 ) {\n\t\t\t\thour += 12;\n\t\t\t}\n\t\t\tif ( ampm && ampm[0].toLowerCase() == 'a' && hour === 12 ) {\n\t\t\t\thour = 0;\n\t\t\t}\n\n\t\t\tvar returnObj = {\n\t\t\t\thours: hour,\n\t\t\t\tminutes: minutes,\n\t\t\t\tseconds: seconds,\n\t\t\t\tampm: ampm\n\t\t\t};\n\t\t\tconsole.log( '[TIME PICKER] parseTime out', JSON.parse(JSON.stringify(returnObj)) );\n\t\t\treturn returnObj;\n\t\t} else {\n\t\t\t// console.log( '[TIME PICKER] parseTime out - bad', JSON.parse(JSON.stringify(parsed)) );\n\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tTimePickerCtrl.prototype.setDateTime = function( hours, minutes ) {\n\n\t\tvar ctrl = this;\n\t\t// console.log( '[TIME PICKER] setDateTime in', hours, minutes, typeof ctrl.ngModelCtrl.$modelValue );\n\t\t// var tmp = moment( ctrl.date ).tz( ctrl.options.timezone );\n\n\t\tvar diff = ( BROWSER_TZ - moment().tz( ctrl.options.timezone ).utcOffset() ) / 60;\n\t\tvar diffHours = Math.round( diff );\n\t\tvar diffMins = diff % 1 * 60;\n\n\t\tvar tmp;\n\t\tif ( this.date ) {\n\t\t\ttmp = new Date( ctrl.date );\n\t\t} else {\n\t\t\ttmp = new Date();\n\t\t}\n\t\ttmp.setHours( fixHour( hours + diffHours ) );\n\t\ttmp.setMinutes( fixMinute( minutes + diffMins ) );\n\n\t\t// tmp.setMonth( ctrl.date.getMonth() );\n\t\t// tmp.setDate( ctrl.date.getDate() );\n\t\t// tmp.setFullYear( ctrl.date.getFullYear() );\n\n\t\t// console.log( '[TIME PICKER] setDateTime out', JSON.parse(JSON.stringify(tmp)) );\n\t\treturn tmp;\n\t};\n\n\t/**\n\t * Sets the model value if the user input is a valid date.\n\t * Adds an invalid class to the input element if not.\n\t */\n\tTimePickerCtrl.prototype.handleInputEvent = function( ) {\n\n\t\tvar ctrl = this;\n\n\t\tvar inputString = ctrl.inputElement.value;\n\t\tvar parsedTime = inputString ? ctrl.parseTime( inputString ) : null;\n\t\tvar isValidInput = inputString == '' || !!parsedTime;\n\t\t// console.log( '[TIME PICKER] handleInputEvent', inputString, parsedTime, isValidInput );\n\n\t\tif (isValidInput && inputString == '') {\n\t\t\tctrl.setModelValue(null);\n\t\t\tctrl.date = null;\n\t\t}\n\n\t\t// ctrl.updateErrorState(parsedDate);\n\t};\n\n\t/**\n\t * Sets the model value if the user input is a valid date.\n\t * Adds an invalid class to the input element if not.\n\t */\n\tTimePickerCtrl.prototype.parseInputEvent = function( evt, blur ) {\n\n\t\tvar ctrl = this;\n\n\t\tvar inputString = ctrl.inputElement.value;\n\t\tvar parsedTime = inputString ? ctrl.parseTime( inputString ) : null;\n\n\n\t\tvar isValidInput = inputString == '' || ( !!parsedTime && ( ( !blur && !!parsedTime.ampm ) || blur ) );\n\n\t\t// console.log( '[TIME PICKER] parseInputEvent', inputString, parsedTime, isValidInput );\n\n\n\t\t// // An input string is valid if it is either empty (representing no date)\n\t\t// // or if it parses to a valid date that the user is allowed to select.\n\t\t// var isValidInput = inputString == '' || (\n\t\t// \tthis.dateUtil.isValidDate(parsedDate) &&\n\t\t// \tthis.locale.isDateComplete(inputString) //&&\n\t\t// \t// this.isDateEnabled(parsedDate)\n\t\t// );\n\n\t\t// The time picker's model is only updated when there is a valid input.\n\t\tif (isValidInput && inputString != '' ) {\n\n\t\t\tvar parsedDate = ctrl.setDateTime( parsedTime.hours, parsedTime.minutes ); // ( Hours - 1 ) for 0-23\n\n\t\t\tctrl.setModelValue(parsedDate);\n\t\t\tctrl.date = parsedDate;\n\t\t\tctrl.updateErrorState(parsedDate);\n\t\t}\n\t\tif (isValidInput && inputString == '') {\n\t\t\tctrl.setModelValue(null);\n\t\t\tctrl.date = null;\n\t\t\tctrl.updateErrorState(null);\n\t\t}\n\n\t};\n\n\n\t/**\n\t * Sets the ng-model value by first converting the date object into a string. Converting it\n\t * is necessary, in order to pass AngularJS's `input[type=\"date\"]` validations. AngularJS turns\n\t * the value into a Date object afterwards, before setting it on the model.\n\t * @param {Time=} value Date to be set as the model value.\n\t */\n\tTimePickerCtrl.prototype.setModelValue = function(value) {\n\n\t\t// console.log( '[TIME PICKER] setModelValue in', value );\n\n\t\tvar timezone = this.options.timezone || moment.tz.guess();\n\t\tthis.ngModelCtrl.$setViewValue( value ? value.toJSON() : null );\n\t\tthis.ngModelCtrl.$modelValue = value;\n\t};\n\n\tTimePickerCtrl.prototype.onExternalChange = function(value) {\n\t\t\t// console.log( '[TIME PICKER] onExternalChange', value );\n\t\tif ( value ) {\n\t\t\tvar timezone = this.options.timezone || moment.tz.guess()\n\n\t\t\t// console.log(\"TIMEZONE\", moment(value).tz(timezone).format('Z z'));\n\t\t\t// console.log(\"TIMEZONE\", this.ngDateFilter(value, 'shortTime', moment(value).tz(timezone).format('ZZ')));\n\n\n\t\t\t// If used in conjunction with an md-datepicker, the date picker will reset the time\n\t\t\t// to midnight on each date selection. This \"hack\" will hopefully help more than it hurts.\n\t\t\tif ((value && value.getHours && value.getMinutes) && value.getHours() === 0 && value.getMinutes() === 0 && this.date && this.date.getHours()) {\n\t\t\t\tvalue.setHours(this.date.getHours());\n\t\t\t\tvalue.setMinutes(this.date.getMinutes());\n\t\t\t}\n\t\t\t// console.log( '[TIME PICKER] onExternalChange 2', JSON.parse(JSON.stringify(value)) );\n\n\t\t\tthis.date = value;\n\t\t\tthis.inputElement.value = this.ngDateFilter(value, 'shortTime', moment(value).tz(timezone).format('ZZ'));\n\t\t\tthis.mdInputContainer && this.mdInputContainer.setHasValue(!!value);\n\t\t\t// this.resizeInputElement();\n\t\t\t// this.updateErrorState();\n\t\t} else {\n\t\t\t// console.log( '[TIME PICKER] onExternalChange NO VALUE' );\n\t\t\tthis.inputElement.value = '';\n\t\t\tthis.mdInputContainer && this.mdInputContainer.setHasValue(false);\n\t\t\t// console.log( '[TIME PICKER] onExternalChange NO VALUE' );\n\t\t}\n\t};\n\n\n\n})( window, window.angular, window.moment );\n","(function(window, angular, undefined) {\n\t'use strict';\n\n\t/**\n\t * @typedef navItem\n\t * @memberOf module:app.sidebar.app-sidebar-nav-item\n\t *\n\t * @property {string} text - The text that should be displayed on the link.\n\t * @property {string} icon - The icon to use. {@link https://material.io/icons/ Material Icons}\n\t * @property {string} state - The state to transition to.\n\t */\n\n\t/**\n\t * @classdesc\n\t * ```html\n\t * \n\t *\t\n\t *\t\t\n\t *\t\n\t * \n\t * ```\n\t * @ngdoc directive\n\t * @class app-sidebar-nav-item\n\t * @memberOf module:app.sidebar\n\t * @restrict EA\n\t * @requires module:app.sidebar.app-sidebar-nav\n\t * @param {navItem} item - The navigation item.\n\t * @param {number} [depth=0] - The depth of the nav. This sets the background color of the UL. Default = 0.\n\t */\n\tangular.module('app.sidebar.nav.item',[])\n\t\t.config( [ '$mdThemingProvider', function( $mdThemingProvider ) {\n\t\t\t$mdThemingProvider.registerStyles('' +\n\t\t\t\t'.md-THEME_NAME-theme app-sidebar-nav-item .active md-list-item { border-left-color: \\'{{accent-400}}\\'; }' +\n\t\t\t\t'.md-THEME_NAME-theme app-sidebar-nav-item .active app-sidebar-nav-item .active md-list-item { border-left-color: \\'{{accent-200}}\\'; }' +\n\t\t\t\t'.md-THEME_NAME-theme app-sidebar-nav-item .active app-sidebar-nav-item .active app-sidebar-nav-item .active md-list-item { border-left-color: \\'{{accent-50}}\\'; }' +\n\t\t\t\t'');\n\t\t\t// md-colors=\"::{borderLeftColor: '{{ $root.appConfig.theme }}-accent-{{ (400 - (ctrl.depth * 200 )) || 50 }}'}\"\n\t\t} ])\n\t\t.component( 'appSidebarNavItem', appSidebarNavItem() );\n\n\tfunction appSidebarNavItem() {\n\n\t\tfunction appSidebarNavItemController( $scope, $state ){\n\t\t\tvar ctrl = this;\n\n\t\t\tctrl.$onInit = function() {\n\t\t\t\t// ctrl.nav = AppConfig.sidebars[ctrl.id];\n\t\t\t\t// $log.log('appSidebarNavItem', ctrl );\n\t\t\t};\n\n\t\t\tctrl.isActive = function( root ) {\n\t\t\t\tif ( typeof root === 'string' ) {\n\t\t\t\t\tvar split = root.split( '(' );\n\t\t\t\t\tvar params = split[ 1 ];\n\n\n\t\t\t\t\tif ( params ) {\n\t\t\t\t\t\tparams = params.replace( ')', '' )\n\t\t\t\t\t\t\t.replace( /([\\w_]+?):/gi, '\"$1\":' );\n\t\t\t\t\t\t// params = params.replace(/(\"[\\w_]+?\":\\s?null?)/gi, '').replace(/,\\s+?}/gi,'}').replace(/{\\s*}/g,'');\n\t\t\t\t\t\t// console.log( 'is active', split[0], params );\n\t\t\t\t\t\tparams = JSON.parse( params );\n\t\t\t\t\t\tvar paramKeys = Object.keys( params );\n\t\t\t\t\t\tangular.forEach( paramKeys, function ( key ) {\n\t\t\t\t\t\t\tif ( params[ key ] === null ) {\n\t\t\t\t\t\t\t\tdelete params[ key ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t\t// console.log( 'is active', split[0], params );\n\n\t\t\t\t\t\t// if ( )\n\t\t\t\t\t\t// \tparams = undefined;\n\t\t\t\t\t\t// }\n\t\t\t\t\t}\n\t\t\t\t\t// console.log( 'is active', root, split[ 0 ], params, $state.includes( split[ 0 ].replace('.overview', ''), params ) );\n\t\t\t\t\treturn $state.includes( split[ 0 ].replace('.overview',''), params );\n\t\t\t\t} else {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tctrl.showChildren = function( item ) {\n\t\t\t\tif ( item.condition ) {\n\t\t\t\t\t// console.log( 'SHOW CHILDREN', $state, item.condition );\n\t\t\t\t\tif ( typeof item.condition === 'function' ) {\n\t\t\t\t\t\treturn item.condition();\n\t\t\t\t\t} else if ( typeof item.condition === 'string' ) {\n\t\t\t\t\t\t$scope.$state = $state;\n\t\t\t\t\t\treturn $scope.$eval( item.condition );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\t\t\t};\n\n\t\t\tctrl.isLongLabel = function() {\n\t\t\t\treturn ctrl.item.text.length > 20;\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tbindings: {\n\t\t\t\titem: '<',\n\t\t\t\tdepth: '<'\n\t\t\t},\n\t\t\tcontroller: [ '$scope', '$state', appSidebarNavItemController ],\n\t\t\tcontrollerAs: 'ctrl',\n\t\t\t//template: \"
\",\n\t\t\ttemplateUrl: '/templates/app/sidebar/nav/navItem/navItem.tpl.html'\n\t\t};\n\t}\n\n\n})(window, window.angular);\n","(function(window, angular, undefined) {\n\t'use strict';\n\n\t/**\n * @typedef dataSection\n * @memberOf module:app.sidebar.app-sidebar-data-section\n * @property {string} title - The title of the section.\n * @property {string} icon - The icon for the header.\n * @property {string} uid - The UID for the data section.\n\t * @property {('data'|'upload'|'asset')} [type='data'] - The type of data section.\n * @property {module:app.sidebar.app-sidebar-data-section.dataField[]} data - The data that should be displayed.\n\t */\n\t/**\n\t * @typedef dataField\n\t * @memberOf module:app.sidebar.app-sidebar-data-section\n\t * @property {string} label - Label for the data.\n\t * @property {*} data - Data to be displayed.\n\t */\n\t/**\n\t * @classdesc\n\t * ```html\n\t * \n\t *\t\n *\t \n\t *\t\n\t * \n\t * ```\n\t * @ngdoc directive\n\t * @class app-sidebar-data-section\n\t * @memberOf module:app.sidebar\n\t * @restrict EA\n\t * @requires module:app.sidebar.app-sidebar-data\n\t * @param {object} data - The data object.\n\t */\n\tangular.module('app.sidebar.data.section',[\n\t\t'app.sidebar.data.section.upload',\n\t\t'app.sidebar.data.section.asset'\n\t])\n\t\t.config( [ '$mdThemingProvider', function( $mdThemingProvider ) {\n\t\t\t$mdThemingProvider.registerStyles('' +\n\t\t\t\t\t// Headers\n\t\t\t\t'.md-THEME_NAME-theme app-sidebar-data app-sidebar-data-section md-card-header,' +\n\t\t\t\t'.md-THEME_NAME-theme app-sidebar-data app-sidebar-data-section md-card-header md-icon { background: \\'{{primary-default}}\\'; color: \\'{{primary-contrast}}\\'; }' +\n\t\t\t\t\t// Data lists\n\t\t\t\t'.md-THEME_NAME-theme app-sidebar-data app-sidebar-data-section dl dt:nth-child(4n+1),' +\n\t\t\t\t'.md-THEME_NAME-theme app-sidebar-data app-sidebar-data-section dl dd:nth-child(4n+2),' +\n\t\t\t\t'.md-THEME_NAME-theme app-sidebar-data app-sidebar-data-section ul li:nth-child(odd) { background: \\'{{primary-hue-3-0.7}}\\'; color: \\'{{primary-hue-3-contrast}}\\'; }' +\n\t\t\t\t\t//Revisions\n\t\t\t\t'.md-THEME_NAME-theme app-sidebar-data app-sidebar-data-section .md-body-2 { background: \\'{{primary-hue-2}}\\'; color: \\'{{primary-hue-1-contrast}}\\'; }' +\n\n\t\t\t\t'');\n\t\t\t// md-colors=\"::{borderLeftColor: '{{ $root.appConfig.theme }}-accent-{{ (400 - (ctrl.depth * 200 )) || 50 }}'}\"\n\t\t} ])\n .component( 'appSidebarDataSection', appSidebarDataSection() );\n\n\tfunction appSidebarDataSection() {\n\n\t\tfunction appSidebarDataSectionController( $scope, $element, $compile, $timeout, $log, $templateRequest, $sce, $appSidebar ){\n\t\t\tvar ctrl = this;\n\n\t\t\tvar sectionIdentifier;\n\t\t\tctrl.hidden = true;\n\n\t\t\tctrl.$onInit = function() {\n\t\t\t\tsectionIdentifier = ctrl.data.type + '-' + ctrl.data.title.toLowerCase().replace(/\\s/gi, '-' );\n\t\t\t\tif ( sectionVisibility[sectionIdentifier] === 'undefined' ) {\n\t\t\t\t\tsectionVisibility[sectionIdentifier] = false;\n\t\t\t\t}\n\t\t\t\tctrl.hidden = sectionVisibility[sectionIdentifier];\n\n\t\t\t\tconsole.log( '[Sidebar Section] ', sectionIdentifier, ctrl, ctrl.uid, $appSidebar.cache.layout, sectionVisibility );\n\n\n\t\t\t\tif ( $appSidebar.cache.items[ctrl.uid] ){\n\t\t\t\t\tctrl.sectionData = $appSidebar.cache.items[ctrl.uid].data;\n\t\t\t\t} else {\n\t\t\t\t\tctrl.sectionData = $appSidebar.cache.layout[ctrl.uid][ctrl.sidebar.location][ctrl.data.type];\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tctrl.$onChanges = function() {\n\t\t\t\tconsole.log(\"Sidebar data section - ON CHANGES\")\n\t\t\t\tif ( $appSidebar.cache.items[ctrl.uid] ){\n\t\t\t\t\tctrl.sectionData = $appSidebar.cache.items[ctrl.uid].data;\n\t\t\t\t} else {\n\t\t\t\t\tctrl.sectionData = $appSidebar.cache.layout[ctrl.uid][ctrl.sidebar.location][ctrl.data.type];\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tctrl.toggleHidden = function( $event ) {\n\t\t\t\tsectionVisibility[sectionIdentifier] = !sectionVisibility[sectionIdentifier];\n\t\t\t\tctrl.hidden = sectionVisibility[sectionIdentifier];\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tbindings: {\n\t\t\t\tdata: '<',\n\t\t\t\tuid: '@'\n\t\t\t},\n\t\t\trequire: {\n\t\t\t\tsidebar: '^^appSidebar'\n\t\t\t},\n\t\t\tcontroller: [ '$scope', '$element', '$compile', '$timeout', '$log', '$templateRequest', '$sce', '$appSidebar', appSidebarDataSectionController ],\n\t\t\tcontrollerAs: 'ctrl',\n\t\t\ttemplateUrl: '/templates/app/sidebar/data/section/section.tpl.html'\n\t\t};\n\t}\n\n\n\tvar sectionVisibility = {};\n\n\n\n\n})(window, window.angular);\n","'use strict';\n( function( window, angular, undefined ) {\n\tangular.module('app.controllers.campaign.listing.advertising.newController',[])\n .controller('AdvertisingNewController', [ '$rootScope', '$scope', '$translate', '$mdDialog', 'vls.api', 'vls.event.types', 'campaignId', 'campaigndata',\n\tfunction( $rootScope, $scope, $translate, $mdDialog, vlsApi, EVENT_TYPES, campaignId, campaigndata ) {\n // Let the widgets use this\n\t\t$scope.campaignData = campaigndata;\n\t\tconsole.log('HERE');\n\t\t$mdDialog.show({\n\t\t\ttemplateUrl: '/templates/campaign/video/advertising/new/new.tpl.html',\n\t\t\thasBackdrop: true,\n\t\t\tcontroller: function() {\n\n\t\t\t}\n\t\t});\n\n\n\t\t$scope.$on('app.campaign.update', function() {\n\n\t\t});\n\n\t} ]);\n})( window, window.angular );\n","(function( window, angular, moment, undefined) {\n\t'use strict';\n\tangular.module('app.campaign.shoots.shoot.call.detailsController', [])\n\t\t.config(['$stateProvider', 'USER_ROLES', function( $stateProvider, USER_ROLES ) {\n\t\t\t$stateProvider\n\t\t\t\t.state('app.campaign.shoots.shoot.call.details', {\n\t\t\t\t\turl: '/{callId:int}',\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tfromNew: false\n\t\t\t\t\t},\n\t\t\t\t\ttemplateUrl: '/templates/campaign/shoot/call/callDetails/callDetails.tpl.html',\n\t\t\t\t\tcontroller: 'callDetailsController',\n\t\t\t\t\tcontrollerAs: 'ctrl',\n\t\t\t\t\tresolve: {\n\t\t\t\t\t\tcall: ['shoot.api', '$stateParams', function( shootApi, $stateParams ) {\n\t\t\t\t\t\t\tconsole.log(\"CALL ID\", $stateParams );\n\t\t\t\t\t\t\treturn shootApi.call.get( $stateParams.shootId, $stateParams.callId ).then( function( result ) {\n\t\t\t\t\t\t\t\treturn result.data;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}]\n\t\t\t\t\t},\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tdisplayLoader: false\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.state('app.campaign.shoots.shoot.call.new', {\n\t\t\t\t\turl: '/new',\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tdata: false\n\t\t\t\t\t},\n\t\t\t\t\ttemplateUrl: '/templates/campaign/shoot/call/callDetails/callDetails.tpl.html',\n\t\t\t\t\tcontroller: 'callDetailsController',\n\t\t\t\t\tcontrollerAs: 'ctrl',\n\t\t\t\t\tresolve: {\n\t\t\t\t\t\tcall: function() { return \"new\"; }\n\t\t\t\t\t},\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tdisplayLoader: false\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t}])\n\t\t.controller( 'callDetailsController', [ '$state', '$stateParams', '$q', 'shoot.api', 'vls.search.api', 'security.api', 'vls.user', 'clientForms', 'util', 'shoot', 'shootData', 'call', 'USER_ROLES', 'campaigndata', 'partnerdata', function( $state, $stateParams, $q, shootApi, vlsSearchApi, securityApi, vlsUser, clientForms, util, shoot, shootData, call, USER_ROLES, campaigndata, partnerdata ) {\n\t\t\tvar ctrl = this;\n\t\t\tconsole.log( \"CALL DETAILS\", $stateParams.fromNew );\n\t\t\tctrl.isNewCall = false;\n\t\t\tif ( call === \"new\" ) {\n\t\t\t\tctrl.isNewCall = true;\n\t\t\t\tif ( $stateParams.data ) {\n\t\t\t\t\tvar data = $stateParams.data;\n\t\t\t\t\tvar campaignData = campaigndata.get();\n\t\t\t\t\tctrl.callData = {\n\t\t\t\t\t\tshootId: $stateParams.shootId,\n\t\t\t\t\t\tDate: data.Date,\n\t\t\t\t\t\tDateTimeZone: data.DateTimeZone,\n\t\t\t\t\t\tContactFirstName: campaignData.firstname,\n\t\t\t\t\t\tContactLastName: campaignData.lastname,\n\t\t\t\t\t\tContactPhone: campaignData.businessphone,\n\t\t\t\t\t\tContactEmail: campaignData.emailaddress,\n\t\t\t\t\t\tcallResult: 0\n\t\t\t\t\t};\n\t\t\t\t\tconsole.log( \"NEW CALL DATA\", data, Object.assign( {}, ctrl.callData ) );\n\t\t\t\t} else {\n\t\t\t\t\tctrl.callData = {\n\t\t\t\t\t\tshootId: $stateParams.shootId,\n\t\t\t\t\t\tcallResult: 0\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\tctrl.callData = call;\n\t\t\t}\n\n\n\t\t\tctrl.callDateLoader;\n\t\t\tctrl.callTimeLoader;\n\n\t\t\tctrl.canEdit = ctrl.eventComment = vlsUser.isAuthorized([\n\t\t\t\tUSER_ROLES.admin,\n\t\t\t\tUSER_ROLES.masterAdmin,\n\t\t\t\t// USER_ROLES.customerService,\n\t\t\t\tUSER_ROLES.productionCoordinator,\n\t\t\t\t// USER_ROLES.productionManager,\n\t\t\t\tUSER_ROLES.productionScheduler,\n\t\t\t\t// USER_ROLES.videoEditor,\n\t\t\t\t// USER_ROLES.accountExecutive,\n\t\t\t\t// USER_ROLES.videoProductionAssistant\n\t\t\t], partnerdata.get('partnerCode') );\n\n\t\t\tctrl.timeZones = [\n\t\t\t\t{ name: 'Eastern Time', zone: 'America/New_York' },\n\t\t\t\t{ name: 'Central Time', zone: 'America/Chicago' },\n\t\t\t\t{ name: 'Mountain Time', zone: 'America/Denver' },\n\t\t\t\t{ name: 'Mountain Time (no DST)', zone: 'America/Phoenix' },\n\t\t\t\t{ name: 'Pacific Time', zone: 'America/Los_Angeles' },\n\t\t\t\t{ name: 'Alaska Time', zone: 'America/Anchorage' },\n\t\t\t\t{ name: 'Hawaii-Aleutian', zone: 'America/Adak' },\n\t\t\t\t{ name: 'Hawaii-Aleutian Time (no DST)', zone: 'Pacific/Honolulu' }\n\t\t\t];\n\n\t\t\tvar currentCoordinator;\n\n\t\t\tctrl.coordinatorOptions = function( query ) {\n\t\t\t\tvar calls = [];\n\t\t\t\tvar split = query.split( ' ' );\n\t\t\t\tif ( split.length > 1 ) {\n\t\t\t\t\tcalls.push( vlsSearchApi.users( { firstname: '~' + split[0], lastname: '~' + split[1], roleIds: USER_ROLES.productionCoordinator } ) );\n\t\t\t\t} else {\n\t\t\t\t\tcalls.push( vlsSearchApi.users( { firstname: '~' + query, roleIds: USER_ROLES.productionCoordinator } ) );\n\t\t\t\t\tcalls.push( vlsSearchApi.users( { lastname: '~' + query, roleIds: USER_ROLES.productionCoordinator } ) );\n\t\t\t\t}\n\t\t\t\treturn $q.all( calls ).then( function( result ) {\n\t\t\t\t\tconsole.log( calls );\n\t\t\t\t\tvar returnArray = [];\n\t\t\t\t\tresult.forEach( function( res ) {\n\t\t\t\t\t\tif ( res.data ) {\n\t\t\t\t\t\t\tres.data.forEach( function( user ) {\n\t\t\t\t\t\t\t\treturnArray.push( {\n\t\t\t\t\t\t\t\t\tvalue: user,\n\t\t\t\t\t\t\t\t\tname: user.firstName + ' ' + user.lastName\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tconsole.log( returnArray );\n\t\t\t\t\treturn returnArray;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tctrl.setCoordinatorValue = function( selected ) {\n\t\t\t\tif ( !selected ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tsecurityApi.getUserBasics({ids: selected } ).then(function (result) {\n\t\t\t\t\tcurrentCoordinator = { name: result.data[0].firstName + ' ' + result.data[0].lastName, value: result.data[0] };//result.data[0].id || result.data[0].userId\n\n\t\t\t\t\tctrl.coordinatorSearchTxt = currentCoordinator ? currentCoordinator.name : '';\n\t\t\t\t\tctrl.shootData.ProductionCoordinatorValue = currentCoordinator ? currentCoordinator : undefined;\n\t\t\t\t\treturn result[0];\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tctrl.back = function() {\n\t\t\t\t$state.go( 'app.campaign.shoots.shoot.call' );\n\t\t\t};\n\n\n\t\t\t// Call Data\n\t\t\t///////////////////////\n\t\t\tctrl.saveNewCall = function() {\n\t\t\t\tif ( !ctrl.callDetailsForm.$valid ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconsole.log( 'SAVE NEW CALL', ctrl.callDetailsForm );\n\n\t\t\t\tshoot.setCallData( ctrl.callData ).then( function( result ) {\n\t\t\t\t\tconsole.log( result )\n\t\t\t\t\tif ( result.status === 201 ) {\n\t\t\t\t\t\t// $state.go( 'app.campaign.shoots.shoot.call.details', { callId: result.data.Id, fromNew: true } );\n\t\t\t\t\t\t$state.go( 'app.campaign.shoots.shoot.call' );\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t};\n\n\n\t\t\tctrl.saveCallData = function( $event, field, bypass ) {\n\t\t\t\tif ( ctrl.isNewCall ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar el = $event && angular.element( $event.target );\n\n\t\t\t\tif ( bypass || util.isFormFieldDirty( el ) ) {\n\t\t\t\t\tvar callApiCall;\n\t\t\t\t\tcallApiCall = shoot.setCallData( ctrl.callData, field );\n\n\t\t\t\t\treturn callApiCall.then( function () {\n\t\t\t\t\t\tswitch ( field ) {\n\t\t\t\t\t\t\tcase 'Date':\n\t\t\t\t\t\t\tcase 'Time':\n\t\t\t\t\t\t\t\tctrl[ 'call' + field + 'Loader' ] = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tsetFormFieldPristine( el );\n\t\t\t\t\t}, function () {\n\t\t\t\t\t\tswitch ( field ) {\n\t\t\t\t\t\t\tcase 'Date':\n\t\t\t\t\t\t\tcase 'Time':\n\t\t\t\t\t\t\t\tctrl[ 'call' + field + 'Loader' ] = false;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t};\n\n\n\n\t\t\tfunction setFormFieldPristine( field ) {\n\t\t\t\tvar elementNgModelController = angular.element( field ).controller('ngModel');\n\t\t\t\telementNgModelController.$setPristine();\n\t\t\t\telementNgModelController.$setUntouched();\n\t\t\t}\n\n\n\n\n\t\t\tfunction init() {\n\t\t\t\tctrl.callData.Date = call.Date || ctrl.callData.Date ? new Date( call.Date || ctrl.callData.Date ) : undefined;\n\t\t\t\tif ( !call.DateTimezone ) {\n\t\t\t\t\tctrl.callData.DateTimeZone = moment.tz.guess();\n\t\t\t\t}\n\t\t\t\tconsole.log( '[CALL DETAILS]', ctrl.callData );\n\t\t\t\tctrl.setCoordinatorValue( ctrl.callData.ProductionCoordinatorId );\n\t\t\t}\n\n\n\n\n\t\t\tinit();\n\n\t\t}])\n\n})( window, window.angular, window.moment );\n\n\n","\n(function( window, angular, undefined) {\n\t'use strict';\n\tangular.module('app.controllers.administration.partners.emailTemplate.emailTemplate', ['communicationHub.api'])\n\t\t.config( [ '$stateProvider', function( $stateProvider ) {\n\t\t\t$stateProvider\n\t\t\t\t.state('app.administration.partners.emailTemplates.template', {\n\t\t\t\t\turl: '/:templateId',\n\t\t\t\t\ttemplateUrl: '/templates/administration/partners/emailTemplates/emailTemplate/emailTemplate.tpl.html',\n\t\t\t\t\tcontroller: 'emailTemplateController',\n\t\t\t\t\tcontrollerAs: 'ctrl',\n\t\t\t\t\tresolve: {\n\t\t\t\t\t\ttemplate: [ '$stateParams', 'templates', function( $stateParams, templates ) {\n\t\t\t\t\t\t\tconsole.log( \"Find Email template\", templates, $stateParams.templateId )\n\t\t\t\t\t\t\treturn Object.assign( {}, templates.find( function( template ) {\n\t\t\t\t\t\t\t\treturn template.id == $stateParams.templateId;\n\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t}]\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t;\n\t\t}])\n\t\t.controller('emailTemplateController', [ '$scope', '$state', '$stateParams', '$sce', '$mdDialog', 'communicationHub.api', 'uiMonacoeditorConfig', 'template', function( $scope, $state, $stateParams, $sce, $mdDialog, comHub, uiMonacoeditorConfig, template ) {\n\t\t\tvar ctrl = this;\n\t\t\tconsole.log( uiMonacoeditorConfig );\n\t\t\tctrl.email = template;\n\t\t\tctrl.editorOptions = {\n\t\t\t\tlanguage: 'html',\n\t\t\t\twordWrap: \"on\",\n\t\t\t\tonLoad: function( editor ) {\n\t\t\t\t\tctrl.editor = editor;\n\t\t\t\t\tconsole.log( ctrl.editor )\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tctrl.isLoading = false;\n\n\t\t\tctrl.onPreviewSelect = function() {\n\t\t\t\tvar blob = new Blob([ctrl.email.body], { type: 'text/html'});\n\t\t\t\tctrl.previewUrl = $sce.trustAsResourceUrl( URL.createObjectURL( blob ) );\n\t\t\t}\n\n\t\t\tctrl.onPreviewDeselect = function() {\n\t\t\t\tctrl.previewUrl = undefined;\n\t\t\t}\n\n\t\t\t$scope.$watch( 'ctrl.email.body', function( newVal, oldVal ) {\n\t\t\t\tif ( newVal !== oldVal && newVal.indexOf( '{{' ) ) {\n\t\t\t\t\tctrl.email.body = ctrl.email.body.replace(/\\{\\{/g, '{').replace(/\\}\\}/g, '}');\n\t\t\t\t}\n\t\t\t} )\n\n\t\t\tconsole.log( \"EMAIL TEMPLATE\", template );\n\n\t\t\tctrl.saveEmailTemplate = function() {\n\t\t\t\tcomHub.saveEmailTemplate( ctrl.email ).then( function( result ) {\n\t\t\t\t\tconsole.log( 'ID', result );\n\t\t\t\t\t$state.transitionTo('app.administration.partners.emailTemplates.template', { partnerId: $stateParams.partnerId, templateId: result.data}, {\n\t\t\t\t\t\treload: true,\n\t\t\t\t\t\tinherit: false,\n\t\t\t\t\t\tnotify: true\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tctrl.openLookUpDialog = function( ev ) {\n\t\t\t\tvar selectionRange = ctrl.editor.getSelection();\n\t\t\t\tvar searchText = ctrl.editor.getModel().getValueInRange( selectionRange );\n\n\t\t\t\t$mdDialog.show( {\n\t\t\t\t\tcontroller: [function() {\n\t\t\t\t\t\tvar ctrl_ = this;\n\t\t\t\t\t\tctrl_.searchText = searchText;\n\t\t\t\t\t\tctrl_.selectedItem;\n\n\t\t\t\t\t\tctrl_.lookup = function(term) {\n\t\t\t\t\t\t\tif ( !term ) {\n\t\t\t\t\t\t\t\treturn [];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn comHub.lookUpReplacement( term.replace(/\\s/g, '_') ).then( function( results ) {\n\t\t\t\t\t\t\t\tctrl_.results = results.data;\n\t\t\t\t\t\t\t\treturn ctrl_.results;\n\t\t\t\t\t\t\t}, function() {\n\t\t\t\t\t\t\t\treturn [];\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tctrl_.close = function() {\n\t\t\t\t\t\t\t$mdDialog.hide( ctrl_.selectedItem );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tctrl_.cancel = $mdDialog.cancel;\n\t\t\t\t\t}],\n\t\t\t\t\tcontrollerAs: 'ctrl',\n\t\t\t\t\tbindToController: true,\n\t\t\t\t\ttemplateUrl: '/templates/administration/partners/emailTemplates/emailTemplate/replacementLookupDialog.tpl.html',\n\t\t\t\t\ttargetEvent: ev\n\n\t\t\t\t}).then( function( result ) {\n\t\t\t\t\tctrl.editor.executeEdits(\"\",\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\trange: selectionRange,\n\t\t\t\t\t\t\t\ttext: result\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t\t);\n\t\t\t\t})\n\t\t\t}\n\n\t\t}]);\n\n\n})( window, window.angular );\n\n\n","(function(window, angular, undefined) {\n\t'use strict';\n\n\tangular.module('widgets.video', [])\n\t\t.config( [ '$dashboardWidgetsProvider', function( $dashboardWidgetsProvider ) {\n\t\t\t$dashboardWidgetsProvider.register( 'video', ['listing'], {\n\t\t\t\tconfig: {\n\t\t\t\t},\n\t\t\t\toptions: {\n\t\t\t\t\thideTitle: false,\n\t\t\t\t\ttitle: ''\n\t\t\t\t},\n\t\t\t\tposition: {\n\t\t\t\t\tsizeX: 6,\n\t\t\t\t\tsizeY: 4,\n\t\t\t\t\tminSizeY: 5,\n\t\t\t\t\tminSizeX: 2\n\t\t\t\t}\n\t\t\t});\n\t\t} ])\n\t\t.directive('widgets.video', [ 'widgets.base', 'assets.api', function (widgetBase, assetsApi) {\n\t\t\tvar optionConfig = {\n\t\t\t\ttitle: {\n\t\t\t\t\tlabel: 'Title',\n\t\t\t\t\ttype: 'text',\n\t\t\t\t\tvalue: '',\n\t\t\t\t\torder: 0 // Silly angular sorting of the object keys\n\t\t\t\t}\n\t\t\t\t//partners: widgetBase.getPartnersOption()\n\t\t\t};\n\n\t\t\tvar defaultOptions = {\n\t\t\t\ttitle: 'Preview Video',\n\t\t\t\tskin: 'better-video-skin'\n\t\t\t};\n\n\t\t\treturn {\n\t\t\t\trestrict: 'A',\n\t\t\t\t//replace: true,\n\t\t\t\ttemplate: '
' +\n\t\t\t\t\t' ' +\n\t\t\t\t\t'
' +\n\t\t\t\t\t'
',\n\t\t\t\tcontroller: [ '$scope', '$element', '$timeout', function( $scope, $element, $timeout ) {\n\t\t\t\t\tangular.extend($scope, widgetBase);\n\t\t\t\t\t// Widget options\n\t\t\t\t\t// $scope.widget.position.minSizeY = 1;\n\t\t\t\t\t// $scope.widget.position.minSizeX = 2;\n\t\t\t\t\tif ( !$scope.campaignData ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\n\t\t\t\t\tvar campaign = $scope.campaignData && $scope.campaignData.get();\n\t\t\t\t\tvar listing = $scope.campaignData && $scope.campaignData.listings.get( $scope.listingId );\n\n\t\t\t\t\tconsole.log( \"WIDGET DATA\", campaign, listing );\n\n\t\t\t\t\t$scope.isVideo = true;\n\n\n\t\t\t\t\t// $scope.widget.options = $scope.widget.options || defaultOptions;\n\t\t\t\t\t$scope.optionConfig = $scope.getOptionConfig( $scope, optionConfig );\n\n\t\t\t\t\t$scope.video = {\n\t\t\t\t\t\tsources: {\n\t\t\t\t\t\t\tsrc: '//video2.bettervideo.com/video/PRE/MP4640x360/' + campaign.clientid + '.' + listing.videocode + '.mp4',\n\t\t\t\t\t\t\ttype: 'video/mp4'\n\t\t\t\t\t\t},\n\t\t\t\t\t\tposter: '//video2.bettervideo.com/video/PRE/JPG640x360/' + campaign.clientid + '.' + listing.videocode + '.jpg'\n\t\t\t\t\t};\n\n\t\t\t\t\tif ( /gif/gi.test( listing.productname ) ) {\n\t\t\t\t\t\t$scope.isVideo = false;\n\t\t\t\t\t\t//$scope.image =\n\n\t\t\t\t\t\tassetsApi.search({tags: '1', entityTypeId: 4, entityId: listing.id}).then(function (result) {\n\t\t\t\t\t\t\tif (result.data.length) {\n\n\t\t\t\t\t\t\t\t$scope.imageMaster = result.data.filter(function (item) {\n\t\t\t\t\t\t\t\t\tvar originalFile = item.currentVersion.files.find(function (file) {\n\t\t\t\t\t\t\t\t\t\treturn file.isOriginal === true;\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\treturn originalFile.contentType === 'image/gif';\n\t\t\t\t\t\t\t\t})[0];\n\t\t\t\t\t\t\t\tconsole.log( \"IMAGE!!!!!!!!!!\", $scope.imageMaster );\n\t\t\t\t\t\t\t\t$scope.image = $scope.imageMaster.originalFile.importUrl;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\t$scope.$on( 'gridster-item-resize', setSize );\n\t\t\t\t\tangular.element( window ).on( 'resize', setSize );\n\t\t\t\t\t$timeout( setSize, 1000 );\n\n\t\t\t\t\tvar rowHeight;\n\t\t\t\t\tvar resizeTimeout;\n\n\t\t\t\t\tfunction setSize() {\n\t\t\t\t\t\t$timeout.cancel( resizeTimeout );\n\t\t\t\t\t\t resizeTimeout = $timeout(function() {\n\t\t\t\t\t\t\tvar height = $element[0].offsetHeight;\n\t\t\t\t\t\t\tvar width = $element[0].offsetWidth;\n\n\t\t\t\t\t\t\tvar titleBarHeight = $element.parent().find('md-toolbar')[0].offsetHeight;\n\t\t\t\t\t\t\trowHeight = rowHeight || Math.ceil((height + titleBarHeight) / $scope.position.sizeY );\n\n\n\n\t\t\t\t\t\t\tvar ratio = width / height;\n\n\t\t\t\t\t\t\tconsole.log('VIDEO DIMENSIONS 1!', titleBarHeight, rowHeight, height, width, ratio);\n\t\t\t\t\t\t\t// if ( ratio > 16/9 ) {\n\t\t\t\t\t\t\tvar neededHeight = Math.ceil( width * (9 / 16) );\n\n\t\t\t\t\t\t\tvar newSizeY = Math.ceil((neededHeight + titleBarHeight) / rowHeight);\n\t\t\t\t\t\t\tconsole.log('VIDEO DIMENSIONS 2!', neededHeight, neededHeight + titleBarHeight, rowHeight, newSizeY);\n\t\t\t\t\t\t\t$scope.position.sizeY = newSizeY + 1;\n\t\t\t\t\t\t\t// }\n\t\t\t\t\t\t},1000);\n\n\t\t\t\t\t}\n\n\n\t\t\t\t\t$scope.$on('gridster-mobile-changed', function(event, gridster) {\n\t\t\t\t\t\t// console.log( 'GRIDSTER MOBILE CHANGE', gridster );\n\t\t\t\t\t\tif ( gridster.isMobile ) {\n\t\t\t\t\t\t\t$timeout.cancel( resizeTimeout );\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t} ]\n\t\t\t};\n\t\t} ]);\n\n})(window, window.angular);\n","(function (window, angular, undefined) {\n\t'use strict';\n\tvar _$scope;\n\n\tangular.module('widgets.script', [])\n\t\t.config(['$dashboardWidgetsProvider', function ($dashboardWidgetsProvider) {\n\t\t\t$dashboardWidgetsProvider.register('script', ['listing'], {\n\t\t\t\tconfig: {},\n\t\t\t\toptions: {\n\t\t\t\t\thideTitle: false\n\t\t\t\t},\n\t\t\t\tposition: {\n\t\t\t\t\tsizeX: 6,\n\t\t\t\t\tsizeY: 4,\n\t\t\t\t\tminSizeY: 1,\n\t\t\t\t\tminSizeX: 2\n\t\t\t\t}\n\t\t\t});\n\t\t}])\n\t\t.directive('widgets.script', ['widgets.base', 'USER_ROLES', function (widgetBase, USER_ROLES) {\n\n\t\t\treturn {\n\t\t\t\t//replace: true,\n\t\t\t\ttemplateUrl: '/templates/widgets/listing/script/script.tpl.html',\n\n\t\t\t\tcontroller: ['$rootScope', '$scope', function ($rootScope, $scope) {\n\t\t\t\t\t_$scope = $scope;\n\t\t\t\t\t//$scope.widget.options.title = \"Video Script\";\n\t\t\t\t\t$scope.readonly = $rootScope.user.isAuthorized([USER_ROLES.accountExecutive], $scope.partnerData.get('partnerCode') );\n\n\t\t\t\t\tvar isExpanded = false;\n\t\t\t\t\tvar editAction = {\n\t\t\t\t\t\ttext: 'Edit Script',\n\t\t\t\t\t\ticon: 'mode_edit',\n\t\t\t\t\t\tmethod: function () {\n\t\t\t\t\t\t\tif ($scope.model.script.editable) {\n\t\t\t\t\t\t\t\t$scope.methods.saveScript();\n\t\t\t\t\t\t\t\tdoCancel();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tdoEdit();\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\tfunction doCancel() {\n\t\t\t\t\t\teditAction.icon = 'mode_edit';\n\t\t\t\t\t\teditAction.text = 'Edit Script';\n\t\t\t\t\t\t$scope.actions.shift();\n\t\t\t\t\t\t$scope.model.script.editable = false;\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction doEdit() {\n\t\t\t\t\t\teditAction.icon = 'save';\n\t\t\t\t\t\teditAction.text = 'Save Edit';\n\t\t\t\t\t\t$scope.actions.unshift(cancelAction);\n\t\t\t\t\t\t$scope.model.script.editable = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar cancelAction = {\n\t\t\t\t\t\ttext: 'Cancel Edit',\n\t\t\t\t\t\ticon: 'close',\n\t\t\t\t\t\tmethod: function () {\n\t\t\t\t\t\t\t$scope.model.script.editable = false;\n\t\t\t\t\t\t\teditAction.icon = 'mode_edit';\n\t\t\t\t\t\t\teditAction.text = 'Edit Script';\n\t\t\t\t\t\t\t$scope.actions.shift();\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\tif (!$scope.readonly) {\n\t\t\t\t\t\t$scope.actions.unshift(editAction);\n\t\t\t\t\t\t$scope.$on('$destroy', function () {\n\t\t\t\t\t\t\t$scope.actions.shift();\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\n\t\t\t\t\t$scope.script = {};\n\t\t\t\t\t//$scope.methods = {};\n\t\t\t\t\t$scope.model = {\n\t\t\t\t\t\tprocessing: true,\n\t\t\t\t\t\tscript: {\n\t\t\t\t\t\t\teditable: false\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\tvar prevValue;\n\t\t\t\t\t// TODO: Create a way to reuse the script controller\n\t\t\t\t\t$scope.methods.loadScript = function (scriptId) {\n\t\t\t\t\t\tconsole.log( 'GET SCRIPT', $scope, $scope.listingData );\n\t\t\t\t\t\t$scope.model.processing = true;\n\n\t\t\t\t\t\t$scope.listingData.script.get(scriptId).then(function (response) {\n\t\t\t\t\t\t\t$scope.script = response.data;\n\t\t\t\t\t\t\t$scope.model.processing = false;\n\t\t\t\t\t\t\t$scope.script.scripttext = decodeURIComponent($scope.script.scripttext || '');\n\t\t\t\t\t\t\tprevValue = $scope.script.scripttext;\n\t\t\t\t\t\t});\n\t\t\t\t\t};\n\n\t\t\t\t\t$scope.methods.saveScript = function () {\n\t\t\t\t\t\t$scope.model.processing = true;\n\t\t\t\t\t\tvar scriptText = prevValue !== $scope.script.scripttext ? encodeURIComponent($scope.script.scripttext) : undefined;\n\t\t\t\t\t\t$scope.listingData.script.set($scope.script.id, scriptText).then(function () {\n\t\t\t\t\t\t\t$scope.methods.loadScript();\n\t\t\t\t\t\t});\n\t\t\t\t\t};\n\n\t\t\t\t\t$scope.methods.loadScript();\n\n\t\t\t\t\tvar trixEditor;\n\n\t\t\t\t\t$scope.methods.trixInitialize = function (e, editor) {\n\t\t\t\t\t\tconsole.log('TRIX INIT');\n\t\t\t\t\t\ttrixEditor = editor;\n\t\t\t\t\t\tangular.element(trixEditor.element).attr('contenteditable', !$scope.readonly);\n\t\t\t\t\t};\n\n\n\t\t\t\t}]\n\t\t\t};\n\t\t}]);\n})(window, window.angular);\n","(function (window, angular, undefined) {\n\t'use strict';\n\n\tangular.module('widgets.links', [])\n\t\t.config(['$dashboardWidgetsProvider', function ($dashboardWidgetsProvider) {\n\t\t\t$dashboardWidgetsProvider.register('links', ['listing'], {\n\t\t\t\tconfig: {},\n\t\t\t\toptions: {\n\t\t\t\t\thideTitle: false\n\t\t\t\t},\n\t\t\t\tposition: {\n\t\t\t\t\tsizeX: 6,\n\t\t\t\t\tsizeY: 4,\n\t\t\t\t\tminSizeY: 1,\n\t\t\t\t\tminSizeX: 2\n\t\t\t\t}\n\t\t\t});\n\t\t}])\n\t\t.directive('widgets.links', ['widgets.base', function (widgetBase) {\n\n\t\t\treturn {\n\t\t\t\t//replace: true,\n\t\t\t\ttemplateUrl: '/templates/widgets/listing/links/links.tpl.html',\n\n\t\t\t\tcontroller: ['$scope', 'assets.api', function ($scope, assetsApi) {\n\n\n\t\t\t\t\tvar listing = $scope.campaignData.listings.get($scope.listingId);\n\t\t\t\t\tvar cid = $scope.campaignData.get('clientid');\n\t\t\t\t\tvar pid = $scope.campaignData.get('partnerid');\n\t\t\t\t\tvar vid = listing.videocode;\n\t\t\t\t\tvar bid = listing.bundleid;\n\t\t\t\t\tvar status = listing.statusid;\n\t\t\t\t\tvar domDownloadLinkCIDs = [7, 12, 14, 15, 16, 17]; // Clients who are able to download videos.\n\n\t\t\t\t\tvar image;\n\t\t\t\t\tvar isVideo = true;\n\n\t\t\t\t\tif (/gif/gi.test(listing.productname)) {\n\t\t\t\t\t\tisVideo = false;\n\n\t\t\t\t\t\tassetsApi.search({tags: '1', entityTypeId: 4, entityId: listing.id}).then(function (result) {\n\t\t\t\t\t\t\tif (result.data.length) {\n\n\t\t\t\t\t\t\t\tvar imageMaster = result.data.filter(function (item) {\n\t\t\t\t\t\t\t\t\tvar originalFile = item.currentVersion.files.find(function (file) {\n\t\t\t\t\t\t\t\t\t\treturn file.isOriginal === true;\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\treturn originalFile.contentType === 'image/gif';\n\t\t\t\t\t\t\t\t})[0];\n\t\t\t\t\t\t\t\timage = imageMaster.originalFile.importUrl;\n\t\t\t\t\t\t\t\taddLink('Download', image);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\n\t\t\t\t\tvar media = [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'dl',\n\t\t\t\t\t\t\tlabel: 'Download Video',\n\t\t\t\t\t\t\tsrc: 'http://www.forrentvideo.com/download.php?filepath=' + cid + '.' + vid + '.mov',\n\t\t\t\t\t\t\tloaded: -1\n\t\t\t\t\t\t}, {\n\t\t\t\t\t\t\ttype: 'prodl',\n\t\t\t\t\t\t\tlabel: 'Download Video',\n\t\t\t\t\t\t\tsrc: 'http://video2.bettervideo.com/video/PRO/download.php?filepath=' + cid + '.' + vid + '.mp4',\n\t\t\t\t\t\t\tloaded: -1\n\t\t\t\t\t\t}, {\n\t\t\t\t\t\t\ttype: 'pwm',\n\t\t\t\t\t\t\tlabel: 'Preview Video',\n\t\t\t\t\t\t\tsrc: 'http://previewmyvideo.com/partners/' + pid + '/' + cid + '/video/?v=' + vid,\n\t\t\t\t\t\t\tloaded: -1\n\t\t\t\t\t\t}, {\n\t\t\t\t\t\t\ttype: 'pwm approval',\n\t\t\t\t\t\t\tlabel: 'Video Approval',\n\t\t\t\t\t\t\tsrc: 'http://previewmyvideo.com/approval/#/' + pid + '/' + cid + '/' + bid,\n\t\t\t\t\t\t\tloaded: -1\n\t\t\t\t\t\t}, {\n\t\t\t\t\t\t\ttype: 'pwm approval v2 approval',\n\t\t\t\t\t\t\tlabel: 'Video Approval',\n\t\t\t\t\t\t\tsrc: 'http://previewmyvideo.com/approval/v2/approval/' + pid + '/' + cid + '/' + bid + '/' + vid,\n\t\t\t\t\t\t\tloaded: -1\n\t\t\t\t\t\t}, {\n\t\t\t\t\t\t\ttype: 'pwm approval v2 review',\n\t\t\t\t\t\t\tlabel: 'Video Review',\n\t\t\t\t\t\t\tsrc: 'http://previewmyvideo.com/approval/v2/review/' + pid + '/' + cid + '/' + bid + '/' + vid,\n\t\t\t\t\t\t\tloaded: -1\n\t\t\t\t\t\t}\n\t\t\t\t\t];\n\n\t\t\t\t\tvar links = [];\n\t\t\t\t\t// FR Video Download links and Preview My Video\n\t\t\t\t\tif (cid == 900 && status == 2048) {\n\t\t\t\t\t\taddLink('Download Link', 'http://smartreachvideo.com/download.php?filepath=900.' + vid + '.mp4');\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction addLink(label, url) {\n\t\t\t\t\t\tlinks.push({\n\t\t\t\t\t\t\turl: url,\n\t\t\t\t\t\t\ttext: label\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\t\t//Phasing addition of pwm2 cid to array out before array grows more cumbersome\n\t\t\t\t\t// var pwm2 = [99, 220, 250, 275, 310, 410, 430, 460, 580, 605, 650, 720, 860, 920, 950];\n\t\t\t\t\tvar pwmLegacy = [10, 99, 510, 570, 640, 720, 740, 860, 930, 940, 950];\n\n\t\t\t\t\tangular.forEach(media, function (linkType) {\n\t\t\t\t\t\tconsole.log('Links!', linkType, cid, status, isVideo);\n\n\t\t\t\t\t\tswitch (linkType.type) {\n\t\t\t\t\t\t\t//controlls link for legacy partners\n\t\t\t\t\t\t\tcase 'pwm':\n\t\t\t\t\t\t\t\tif (pwmLegacy.includes(cid) && isVideo) {\n\t\t\t\t\t\t\t\t\taddLink(linkType.label, linkType.src);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'pwm approval':\n\t\t\t\t\t\t\t\tif (cid == 900) {\n\t\t\t\t\t\t\t\t\taddLink(linkType.label, linkType.src);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'pwm approval v2 review':\n\t\t\t\t\t\t\tcase 'pwm approval v2 approval':\n\t\t\t\t\t\t\t\tif (!pwmLegacy.includes(cid)) {\n\t\t\t\t\t\t\t\t\taddLink(linkType.label, linkType.src);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (linkType.type === 'pwm approval v2 approval' && cid == 10 && bid) {\n\t\t\t\t\t\t\t\t\taddLink(linkType.label, linkType.src);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'dl':\n\t\t\t\t\t\t\t\tif ((status == 600 || status == 2048) && domDownloadLinkCIDs.indexOf(cid) !== -1) {\n\t\t\t\t\t\t\t\t\taddLink(linkType.label, linkType.src);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'prodl':\n\t\t\t\t\t\t\t\tif (cid == 720) {\n\t\t\t\t\t\t\t\t\taddLink(linkType.label, linkType.src);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\n\t\t\t\t\t}, this);\n\n\t\t\t\t\t$scope.links = links;\n\n\n\t\t\t\t}]\n\t\t\t};\n\t\t}]);\n\n})(window, window.angular);\n","(function(window, angular, undefined) {\n\t'use strict';\n\t\n\tangular.module('widgets.comment', [])\n\t\t.config( [ '$dashboardWidgetsProvider', function( $dashboardWidgetsProvider ) {\n\t\t\t$dashboardWidgetsProvider.register( 'comment', ['listing'], {\n\t\t\t\tconfig: {\n\t\t\t\t},\n\t\t\t\toptions: {\n\t\t\t\t\thideTitle: false,\n\t\t\t\t\ttitle: 'Add Comment'\n\t\t\t\t},\n\t\t\t\tposition: {\n\t\t\t\t\tsizeX: 6,\n\t\t\t\t\tsizeY: 4,\n\t\t\t\t\tminSizeY: 3,\n\t\t\t\t\tminSizeX: 4\n\t\t\t\t}\n\t\t\t});\n\t\t} ])\n\t\t\n\t\t.directive('widgets.comment', [ 'widgets.base', function( widgetBase ) {\n\t\t\t\n\t\t\treturn {\n\t\t\t\t//replace: true,\n\t\t\t\ttemplateUrl: '/templates/widgets/listing/comment/comment.tpl.html',\n\t\t\t\t\n\t\t\t\tcontroller: [ '$scope', 'vls.event.types', function( $scope, EVENT_TYPES ) {\n\t\t\t\t\tconsole.log( 'COMMENT', $scope );\n\t\t\t\t\t$scope.entityType = EVENT_TYPES.VIDEOS;\n\t\t\t\t\t$scope.entityId = $scope.listingId;\n\t\t\t\t} ]\n\t\t\t};\n\t\t} ]);\n})(window, window.angular);\n","(function(window, angular, undefined) {\n\t'use strict';\n\tvar _$scope;\n\tvar isExpanded = false;\n\tvar expandAction = function() {\n\t\tif ( isExpanded ) {\n\t\t\t_$scope.position.sizeY /= 2; // Reduce height by half\n\t\t\texpandAction.icon = 'keyboard_arrow_down';\n\t\t} else {\n\t\t\t_$scope.position.sizeY *= 2; // Double the height;\n\t\t\texpandAction.icon = 'keyboard_arrow_up';\n\t\t}\n\t\tisExpanded = !isExpanded;\n\t};\n\t\n\tangular.module('widgets.listingEvents', [])\n\t\t.config( [ '$dashboardWidgetsProvider', function( $dashboardWidgetsProvider ) {\n\t\t\t$dashboardWidgetsProvider.register( 'listingEvents', ['listing'], {\n\t\t\t\tconfig: {\n\t\t\t\t},\n\t\t\t\toptions: {\n\t\t\t\t\thideTitle: false,\n\t\t\t\t\ttitle: ''\n\t\t\t\t},\n\t\t\t\tposition: {\n\t\t\t\t\tsizeX: 6,\n\t\t\t\t\tsizeY: 4,\n\t\t\t\t\tminSizeY: 1,\n\t\t\t\t\tminSizeX: 2\n\t\t\t\t},\n\t\t\t\tactions: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: 'Enlarge Container',\n\t\t\t\t\t\ticon: 'keyboard_arrow_down',\n\t\t\t\t\t\tmethod: expandAction\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t});\n\t\t} ])\n\t\t.directive('widgets.listingEvents', [ 'widgets.base', function( widgetBase ) {\n\t\t\t\n\t\t\treturn {\n\t\t\t\t//replace: true,\n\t\t\t\ttemplateUrl: '/templates/widgets/listing/events/events.tpl.html',\n\t\t\t\t\n\t\t\t\tcontroller: [ '$scope', 'vls.event.types', function( $scope, EVENT_TYPES ) {\n\t\t\t\t\tconsole.log( 'WIDGETS.LISTINGEVENTS' );\n\t\t\t\t\t$scope.EVENTTYPES = EVENT_TYPES;\n\t\t\t\t\t_$scope = $scope;\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t$scope.entityType = EVENT_TYPES.VIDEOS;\n\t\t\t\t\t$scope.entityId = $scope.listingId;\n\t\t\t\t\t$scope.eventFilter = {\n\t\t\t\t\t\tstatus: false, //\"1\",\n\t\t\t\t\t\tstatus_manual: false, //105?\n\t\t\t\t\t\tproduction: false, //\"3\",\n\t\t\t\t\t\tcoordination: false, //\"5\",\n\t\t\t\t\t\tcomment: true, //\"9\"\n\t\t\t\t\t\tspecial: false //Special instructions\n\t\t\t\t\t};\n\t\t\t\t\t$scope.partnerCode = $scope.campaignData.get('partnerCode');\n\t\t\t\t\t$scope.events = $scope.campaignData.getEvents();\n\t\t\t\t\t$scope.extras = [ $scope.campaignData.get('productionnotes'), $scope.campaignData.get('specialinstructions'), $scope.listingData.productionnotes ];\n\t\t\t\t\t\n\t\t\t\t} ]\n\t\t\t};\n\t\t} ]);\n\t\n\t\n})(window, window.angular);\n","'use strict';\n\nangular.module('widgets.videos', [])\n .config( [ '$dashboardWidgetsProvider', function( $dashboardWidgetsProvider ) {\n // $dashboardWidgetsProvider.register( 'videos', ['dash'], {\n // config: {\n // },\n // options: {\n // hideTitle: false\n // },\n // position: {\n // sizeX: 6,\n // sizeY: 4,\n // minSizeY: 3,\n // minSizeX: 4\n // }\n // });\n} ])\n\t.directive('widgets.videos', [ 'widgets.base',function (widgetBase) {\n\t\tvar optionConfig = {\n\t\t\ttitle: {\n\t\t\t\tlabel: 'Title',\n\t\t\t\ttype: 'text',\n\t\t\t\tvalue: '',\n\t\t\t\torder: 0 // Silly angular sorting of the object keys\n\t\t\t}\n\t\t\t//partners: widgetBase.getPartnersOption()\n\t\t};\n\n\t\treturn {\n\t\t\trestrict: 'A',\n\t\t\t//replace: true,\n\t\t\ttemplateUrl: '/templates/widgets/dash/videos/videos.tpl.html',\n\t\t\tcontroller: [ '$rootScope', '$scope', '$element', '$compile', '$timeout', function( $rootScope, $scope, $element, $compile, $timeout ) {\n\t\t\t\tangular.extend($scope, widgetBase);\n\t\t\t\t// Widget options\n\n\t\t\t\t$scope.options = $scope.options || {};\n\t\t\t\t$scope.optionConfig = $scope.getOptionConfig( $scope, optionConfig );\n\n\t\t\t\tvar views = [ 305,266,319,343,325,285,256,279,258,337,282,302,280,311,299,338,311,319,344,349,341,326,305,301,309,310,308,294,313,328 ];\n\t\t\t\tvar published = [ 43,32,44,39,39,31,41,33,44,30,41,43,42,35,41,30,39,44,43,32,35,33,40,40,32,33,40,38,35,43 ];\n\n\n\n\t\t\t\tvar newChart, chartInstance, wasClick = false;\n\n\t\t\t\t$scope.graphOptions = {\n\t\t\t\t\tresizeUpdate: 0,\n\t\t\t\t\tanimation: false,\n\t\t\t\t\tmaintainAspectRatio: false,\n\t\t\t\t\tlegend: {\n\t\t\t\t\t\tdisplay: true,\n\t\t\t\t\t\tonClick: function( event, dataset ) {\n\t\t\t\t\t\t\tconsole.log( arguments );\n\t\t\t\t\t\t\tdataset.hidden = !dataset.hidden;\n\n\t\t\t\t\t\t\tvar type = dataset.text == 'Revisions' ? 'Rev' : 'New';\n\t\t\t\t\t\t\twasClick = true;\n\t\t\t\t\t\t\t$scope.options['show'+type] = !dataset.hidden;\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tscales: {\n\t\t\t\t\t\txAxes: [{\n //stacked: true,\n\t\t\t\t\t\t\tticks: {\n\t\t\t\t\t\t\t\tuserCallback: function(dataLabel, index) {\n\t\t\t\t\t\t\t\t\treturn index % 2 === 0 ? dataLabel : '';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}],\n\t\t\t\t\t\tyAxes: [{\n\t\t\t\t\t\t\ttype: 'linear', // only linear but allow scale type registration. This allows extensions to exist solely for log scale for instance\n\t\t\t\t\t\t\tdisplay: true,\n\t\t\t\t\t\t\tposition: 'left',\n\t\t\t\t\t\t\tid: 'views',\n\t\t\t\t\t\t\tticks: {\n\t\t\t\t\t\t\t\tmin: 200,\n\t\t\t\t\t\t\t\tmax: 400\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'linear', // only linear but allow scale type registration. This allows extensions to exist solely for log scale for instance\n\t\t\t\t\t\t\tdisplay: true,\n\t\t\t\t\t\t\tposition: 'right',\n\t\t\t\t\t\t\tid: 'pubs',\n //stacked: true,\n\t\t\t\t\t\t\tticks: {\n\t\t\t\t\t\t\t\tmin: 0,\n // max: 20\n\t\t\t\t\t\t\t},\n // grid line settings\n\t\t\t\t\t\t\tgridLines: {\n\t\t\t\t\t\t\t\tdrawOnChartArea: false, // only want the grid lines for one axis to show up\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}]\n\t\t\t\t\t}\n\n\t\t\t\t\t// scaleGridLineColor: 'rgba(255,255,255,.05)',\n\t\t\t\t\t// scaleLineColor: 'rgba(255,255,255,.1)',\n\t\t\t\t\t// scaleFontColor: 'rgba(255,255,255,.4)',\n\t\t\t\t};\n\n\n\t\t\t\tvar labels = [];\n\t\t\t\tvar today = new Date();\n\t\t\t\tfor ( var x = 0; x < 30; x++ ) {\n\t\t\t\t\tpublished[x] = Math.floor( Math.random() * 15 ) + 30;\n\t\t\t\t\tviews[x] = Math.floor( Math.random() * 100 ) + 250;\n\n // Setup the labels\n\t\t\t\t\tvar labelDate = new Date(today);\n\t\t\t\t\tlabelDate.setDate(today.getDate()-x);\n\t\t\t\t\tlabels.push( labelDate.getMonth()+1 + '/' + labelDate.getDate());\n\t\t\t\t}\n\n\t\t\t\tconsole.log( 'VIDEOS', JSON.stringify( views ), JSON.stringify( published ) );\n\n\n\n\t\t\t\t$scope.refresh = function() {\n\n\t\t\t\t\t$scope.optionConfig = $scope.getOptionConfig( $scope, optionConfig );\n\n\t\t\t\t\t//$scope.graphOptions.scales = {\n // yAxes: [{\n // type: \"linear\", // only linear but allow scale type registration. This allows extensions to exist solely for log scale for instance\n // display: true,\n // position: \"left\",\n // id: \"impressions\",\n // }, {\n // type: \"linear\", // only linear but allow scale type registration. This allows extensions to exist solely for log scale for instance\n // display: true,\n // position: \"right\",\n // id: \"clicks\",\n // // grid line settings\n // gridLines: {\n // drawOnChartArea: false, // only want the grid lines for one axis to show up\n // },\n // }]\n // };\n\n\n\t\t\t\t\t$scope.graphData = {\n\t\t\t\t\t\tdatasets: {\n\t\t\t\t\t\t\tdatasets: [],\n\t\t\t\t\t\t\tlabels: []\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttype: 'bar'\n\t\t\t\t\t};\n\n\n\n\n\n\n\t\t\t\t\t$scope.series = [];\n\n\t\t\t\t\tvar impressionDataset = {\n\t\t\t\t\t\tlabel: 'Views',\n\t\t\t\t\t\tdata: views,\n//\t\t\t\t\t\t\tborderColor: \"rgba(141, 198, 63, 0)\",\n\t\t\t\t\t\tborderWidth: 0,\n\n\t\t\t\t\t\ttension: 0,\n\t\t\t\t\t\tborderColor: 'rgba(0, 162, 231, 0.8)',\n\t\t\t\t\t\tbackgroundColor: 'rgba(0, 162, 231, 0.0)',\n\t\t\t\t\t\ttype: 'line',\n\t\t\t\t\t\tpointBackgroundColor: 'rgba(0, 162, 231, 0.8)',\n\t\t\t\t\t\tyAxisID: 'views'\n\t\t\t\t\t};\n\n\t\t\t\t\tvar impressionDataset2 = {\n\t\t\t\t\t\tlabel: 'published',\n\t\t\t\t\t\tdata: published,\n//\t\t\t\t\t\t\tborderColor: \"rgba(141, 198, 63, 0)\",\n\t\t\t\t\t\tborderWidth: 0,\n\n\t\t\t\t\t\ttension: 0,\n\t\t\t\t\t\tborderColor: 'rgba(231, 180, 0, 0.3)',\n\t\t\t\t\t\tbackgroundColor: 'rgba(231, 180, 0, 0.3)',\n\t\t\t\t\t\ttype: 'bar',\n\n\t\t\t\t\t\tyAxisID: 'pubs'\n\t\t\t\t\t};\n\n\t\t\t\t\t$scope.graphData.datasets.datasets.push( impressionDataset );\n\t\t\t\t\t$scope.graphData.datasets.datasets.push( impressionDataset2 );\n\n\t\t\t\t\t$scope.graphData.datasets.labels = $scope.graphData.labels = labels;\n\n\n\t\t\t\t\tif (newChart) {\n\t\t\t\t\t\tnewChart.remove();\n\t\t\t\t\t}\n\t\t\t\t\tconsole.log( 'SETTING NEW CHART', $scope.graphData );\n\t\t\t\t\t$timeout(function() {\n\t\t\t\t\t\tconsole.log( 'BUILD CHART', $element[0].offsetHeight );\n\t\t\t\t\t\tnewChart = $compile('')($scope);\n\t\t\t\t\t\t\t//console.log( 'NEW CHART', angular.element($element[0].getElementsByClassName('widget-graph')[0]) );\n\t\t\t\t\t\tangular.element($element[0].getElementsByClassName('widget-graph')[0]).empty().append(newChart);\n\n\n\t\t\t\t\t}, 300);\n\n\t\t\t\t\t\t//$timeout( function() { $scope.graphData.type = 'bar'; }, 3000 );\n\n\t\t\t\t};\n\t\t\t\t$scope.refresh();\n\n\n\t\t\t\t$scope.$on('calendar-widget::hover', function( e, day ) {\n\t\t\t\t\tvar dayIndex = -1;\n\t\t\t\t\tfor ( var x = chartInstance.data.labels.length-1; x >= 0; x-- ) {\n\t\t\t\t\t\tif ( chartInstance.data.labels[x] == (day.month + 1) + '/' + day.date ) {\n\n\t\t\t\t\t\t\tdayIndex = x;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( dayIndex >= 0 ) {\n\t\t\t\t\t\tchartInstance.tooltip._active = [\n\t\t\t\t\t\t\tchartInstance.getDatasetMeta( 0 ).data[dayIndex],\n\t\t\t\t\t\t\tchartInstance.getDatasetMeta( 1 ).data[dayIndex]\n\t\t\t\t\t\t];\n\t\t\t\t\t\tchartInstance.tooltip.update();\n\t\t\t\t\t\tchartInstance.render();\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t$scope.$on('calendar-widget::leave', function( e ) {\n\t\t\t\t\tchartInstance.tooltip._active = [];\n\t\t\t\t\tchartInstance.tooltip.update();\n\t\t\t\t\tchartInstance.render();\n\t\t\t\t});\n\n\t\t\t\t$scope.$on('chart-create', function(e, chart) {\n\t\t\t\t\tchartInstance = chart;\n\t\t\t\t});\n\n\t\t\t\t$scope.$watch('options', function( newVal ) {\n\t\t\t\t\tif ( !chartInstance ) { return; }\n\t\t\t\t\tif ( wasClick ) {\n\t\t\t\t\t\tchartInstance.data.datasets[0].hidden = !newVal.showNew;\n\t\t\t\t\t\tchartInstance.data.datasets[1].hidden = !newVal.showRev;\n\t\t\t\t\t\tchartInstance.update();\n\t\t\t\t\t\twasClick = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$scope.refresh();\n\t\t\t\t\t}\n\t\t\t\t}, true);\n\t\t\t\t$element.addClass('listing-status-large');\n\t\t\t\tfunction applySize() {\n\t\t\t\t\tconsole.log( $element[0].offsetWidth, $element[0].offsetWidth < 375 );\n\n\t\t\t\t\tif ( $element[0].offsetWidth < 375 ) {\n\t\t\t\t\t\t$element.removeClass('listing-status-large');\n\t\t\t\t\t\t$element.addClass('listing-status-small');\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$element.removeClass('listing-status-small');\n\t\t\t\t\t\t$element.addClass('listing-status-large');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tapplySize();\n\t\t\t\t$scope.$on('gridster-item-resized', applySize );\n\t\t\t\t$scope.$on('gridster-item-transition-end', applySize );\n\t\t\t\t$scope.$on('gridster-item-initialized', applySize );\n\n\t\t\t\tvar tmpDate = new Date();\n\t\t\t\t$scope.viewsLast30 = views.reduce( function(i, v) { return i + v; } );\n\t\t\t\t$scope.viewsLastMonth = Math.floor( $scope.viewsLast30 - (Math.random() * 2000) );\n\t\t\t\t$scope.viewsYTD = Math.floor( ($scope.viewsLastMonth - (Math.random() * 2000)) * ( tmpDate.getMonth() + 1 ) );\n\n\n\t\t\t\tconsole.log( $scope.viewsLast30, $scope.viewsLastMonth, $scope.viewsYTD );\n\t\t\t} ],\n\t\t\tlink: function ($scope, $element, attrs) {\n\n\t\t\t\t/*\n\t\t\t\t var template = $compile(getTemplate(parseInt(attrs.month), parseInt(attrs.year), []))(this);\n\n\t\t\t\t $element.append(template);\n\t\t\t\t $compile($element.contents());\n\n\t\t\t\t */\n\t\t\t}\n\t\t};\n\t} ]);\n","(function (window, angular, undefined) {\n\t'use strict';\n\n\tangular.module('widgets.videoGrid', [])\n\t\t.config(['$dashboardWidgetsProvider', function ($dashboardWidgetsProvider) {\n\t\t\t$dashboardWidgetsProvider.register('videoGrid', ['dash'], {\n\t\t\t\tconfig: {},\n\t\t\t\toptions: {\n\t\t\t\t\ttitle: \"Search\",\n\t\t\t\t\thideTitle: false,\n\t\t\t\t\tdate: 'none',\n\t\t\t\t\tcolor: undefined\n\t\t\t\t},\n\t\t\t\tposition: {\n\t\t\t\t\tsizeX: 6,\n\t\t\t\t\tsizeY: 9,\n\t\t\t\t\tmaxSizeY: 15\n\t\t\t\t}\n\t\t\t});\n\t\t}])\n\t\t.directive('widgets.videoGridOptions', ['USER_ROLES', function (USER_ROLES) {\n\t\t\treturn {\n\t\t\t\tscope: {\n\t\t\t\t\toptions: '='\n\t\t\t\t},\n\t\t\t\tbindToController: true,\n\t\t\t\tcontrollerAs: 'ctrl',\n\t\t\t\ttemplateUrl: '/templates/widgets/dash/videoGrid/videoGridOptions.tpl.html',\n\t\t\t\tcontroller: ['$state', '$mdDialog', 'localStorageService', 'vls.user', 'USER_ROLES', function ($state, $mdDialog, localStorageService, vlsUser, USER_ROLES) {\n\t\t\t\t\tvar ctrl = this;\n\n\t\t\t\t\tvar emptyFilters = {\n\t\t\t\t\t\tassignedTo: [],\n\t\t\t\t\t\tcustomDateRange: {},\n\t\t\t\t\t\tstatus: [],\n\t\t\t\t\t\tpartnerClients: {\n\t\t\t\t\t\t\tpartners: [],\n\t\t\t\t\t\t\tclients: []\n\t\t\t\t\t\t},\n\t\t\t\t\t\tassignees: [],\n\t\t\t\t\t\tmdsProductTypes: [],\n\t\t\t\t\t\tpartnerProductTypes: [],\n\t\t\t\t\t\tpartners: [],\n\t\t\t\t\t\trevisionTypes: []\n\t\t\t\t\t};\n\n\t\t\t\t\tvar userObj = vlsUser.getUserData();\n\t\t\t\t\tvar userFilter = {\n\t\t\t\t\t\temailaddress: userObj.demographic.emailAddress,\n\t\t\t\t\t\tfullname: userObj.demographic.fullName,\n\t\t\t\t\t\tid: userObj.id,\n\t\t\t\t\t\tphonenumber: userObj.demographic.businessPhone\n\t\t\t\t\t};\n\n\t\t\t\t\tctrl.emptyFilters = function () {\n\t\t\t\t\t\tconsole.log('Empty Filters', ctrl.options);\n\t\t\t\t\t\tangular.forEach(emptyFilters, function (val, key) {\n\t\t\t\t\t\t\tconsole.log(key, val);\n\t\t\t\t\t\t\tctrl.options[key] = val;\n\t\t\t\t\t\t});\n\t\t\t\t\t\tconsole.log('Empty Filters after', ctrl.options);\n\t\t\t\t\t}\n\n\t\t\t\t\tctrl.copyOrLoadLayout = function ($event, layout) {\n\t\t\t\t\t\tif (layout.id) {\n\t\t\t\t\t\t\tvar confirm = $mdDialog.confirm()\n\t\t\t\t\t\t\t\t.title('Would you like to load or copy the saved search?')\n\t\t\t\t\t\t\t\t.htmlContent('Loading will use the saved search, all editing must be done through the videos grid.

Copying will allow editing, but changes from the video grid will not be reflected.')\n\t\t\t\t\t\t\t\t.ok('Load')\n\t\t\t\t\t\t\t\t.cancel('Copy')\n\t\t\t\t\t\t\t\t.multiple(true)\n\t\t\t\t\t\t\t\t.targetEvent($event)\n\t\t\t\t\t\t\t;\n\n\t\t\t\t\t\t\t$mdDialog.show(confirm)\n\t\t\t\t\t\t\t\t.then(function () {\n\t\t\t\t\t\t\t\t\tctrl.loadLayout($event, layout.name, layout.id);\n\t\t\t\t\t\t\t\t}, function () {\n\t\t\t\t\t\t\t\t\tctrl.copyLayout($event, layout.name, layout.filters);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tctrl.copyLayout(undefined, layout.name, layout.filters);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tctrl.loadLayout = function ($event, name, id) {\n\n\t\t\t\t\t\tvar confirm = $mdDialog.confirm()\n\t\t\t\t\t\t\t.title('Load \"' + name + '\" into the widget?')\n\t\t\t\t\t\t\t.textContent('This method will update this widget with any changes applied to the saved search from the videos grid.')\n\t\t\t\t\t\t\t.ok('Yes')\n\t\t\t\t\t\t\t.cancel('No')\n\t\t\t\t\t\t\t.multiple(true)\n\t\t\t\t\t\t\t.targetEvent($event)\n\t\t\t\t\t\t;\n\t\t\t\t\t\t$mdDialog.show(confirm).then(function () {\n\t\t\t\t\t\t\tctrl.emptyFilters();\n\t\t\t\t\t\t\tctrl.options.layoutId = id;\n\t\t\t\t\t\t\tctrl.options.title = name;\n\t\t\t\t\t\t}, function () {\n\t\t\t\t\t\t});\n\n\t\t\t\t\t};\n\t\t\t\t\tctrl.copyLayout = function ($event, name, filters) {\n\n\t\t\t\t\t\tvar confirm = $mdDialog.confirm()\n\t\t\t\t\t\t\t.title('Copy \"' + name + '\" into the widget?')\n\t\t\t\t\t\t\t.textContent('This will replace all widget settings with the saved search settings.')\n\t\t\t\t\t\t\t.ok('Yes')\n\t\t\t\t\t\t\t.cancel('No')\n\t\t\t\t\t\t\t.multiple(true)\n\t\t\t\t\t\t\t.targetEvent($event)\n\t\t\t\t\t\t;\n\t\t\t\t\t\t$mdDialog.show(confirm).then(function () {\n\t\t\t\t\t\t\tctrl.emptyFilters();\n\t\t\t\t\t\t\tctrl.options = Object.assign(ctrl.options, filters);\n\t\t\t\t\t\t\tctrl.options.layoutId = undefined;\n\t\t\t\t\t\t\tctrl.options.title = name.replace( '* ', '' );\n\t\t\t\t\t\t});\n\t\t\t\t\t};\n\t\t\t\t\tctrl.getLayouts = function () {\n\t\t\t\t\t\tvar lsKeys = localStorageService.keys();\n\t\t\t\t\t\tctrl.layouts = [];\n\n\n\t\t\t\t\t\tif (vlsUser.isAuthorized(USER_ROLES.preEditor)) {\n\t\t\t\t\t\t\tctrl.layouts.push({\n\t\t\t\t\t\t\t\tfilters: Object.assign({}, emptyFilters, {\n\t\t\t\t\t\t\t\t\tassignees: [userFilter],\n\t\t\t\t\t\t\t\t\tstatus: ['31', '91', '1200', '1205']\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\tname: '* My Pre-Edit',\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (vlsUser.isAuthorized(USER_ROLES.videoEditor)) {\n\t\t\t\t\t\t\tctrl.layouts.push({\n\t\t\t\t\t\t\t\tfilters: Object.assign({}, emptyFilters, {\n\t\t\t\t\t\t\t\t\tassignees: [userFilter],\n\t\t\t\t\t\t\t\t\tstatus: ['32', '64']\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\tname: '* My Ready to Edit',\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (vlsUser.isAuthorized(USER_ROLES.videoQC)) {\n\t\t\t\t\t\t\tctrl.layouts.push({\n\t\t\t\t\t\t\t\tfilters: Object.assign({}, emptyFilters, {\n\t\t\t\t\t\t\t\t\tassignees: [userFilter],\n\t\t\t\t\t\t\t\t\tstatus: ['72', '129', '1210', '128', '1215']\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\tname: '* My Video QC',\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (vlsUser.isAuthorized(USER_ROLES.videoQC)) {\n\t\t\t\t\t\t\tctrl.layouts.push({\n\t\t\t\t\t\t\t\tfilters: Object.assign({}, emptyFilters, {\n\t\t\t\t\t\t\t\t\tassignees: [-1],\n\t\t\t\t\t\t\t\t\tstatus: [],\n\t\t\t\t\t\t\t\t\tdate: 'past'\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\tname: '* Due Today',\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tangular.forEach(lsKeys, function (key) {\n\t\t\t\t\t\t\tif (key.indexOf('videoListingGridLayout.') !== -1 && key !== 'videoListingGridLayout.lastused') {\n\t\t\t\t\t\t\t\tctrl.layouts.push(localStorageService.get(key));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tconsole.log('LAYOUTS', lsKeys, ctrl.layouts);\n\t\t\t\t\t};\n\n\t\t\t\t\tctrl.getLayouts();\n\t\t\t\t}]\n\t\t\t}\n\t\t}])\n\n\n\t\t.directive('widgets.videoGrid', ['USER_ROLES', function (USER_ROLES) {\n\t\t\tconsole.log('-------- Predefined Search');\n\n\t\t\treturn {\n\t\t\t\ttemplateUrl: '/templates/widgets/dash/videoGrid/videoGrid.tpl.html',\n\t\t\t\tcontroller: ['$rootScope', '$scope', '$element', '$filter', '$timeout', 'NgTableParams', 'vls.search.api', 'localStorageService', function ($rootScope, $scope, $element, $filter, $timeout, NgTableParams, vlsSearchApi, localStorageService) {\n\n\t\t\t\t\tvar ctrl = this;\n\t\t\t\t\tvar initialized = false;\n\t\t\t\t\tvar paginationOptions = {\n\t\t\t\t\t\tpageNumber: 1,\n\t\t\t\t\t\tpageSize: 25,\n\t\t\t\t\t\tsort: {\n\t\t\t\t\t\t\tfield: 'dueDate',\n\t\t\t\t\t\t\tdirection: 'ASC'\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\n\n\n\t\t\t\t\t$scope.$watch('options', function (newVal, oldVal) {\n\t\t\t\t\t\tif (newVal && oldVal && !angular.equals(newVal, oldVal)) {\n\t\t\t\t\t\t\tconsole.log( 'new options, refresh');\n\t\t\t\t\t\t\t$scope.refresh()\n\t\t\t\t\t\t}\n\t\t\t\t\t}, true);\n\n\n\t\t\t\t\t$scope.refresh = function () {\n\n\n\n\n\n\t\t\t\t\t\t$scope.tableParams = new NgTableParams({\n\t\t\t\t\t\t\tpage: 1, // show first page\n\t\t\t\t\t\t\tcount: 10, // count per page\n\n\t\t\t\t\t\t\tsorting: {\n\t\t\t\t\t\t\t\tduedate: 'desc' // initial sorting\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}, {\n\t\t\t\t\t\t\ttotal: 0, // length of data\n\t\t\t\t\t\t\tgetData: function (params) {\n\t\t\t\t\t\t\t\tconsole.trace();\n\t\t\t\t\t\t\t\t// if (!initialized) {\n\t\t\t\t\t\t\t\t// \treturn;\n\t\t\t\t\t\t\t\t// }\n\n\t\t\t\t\t\t\t\tvar sorting = params.sorting();\n\t\t\t\t\t\t\t\tvar sortColumn = Object.keys(sorting)[0];\n\t\t\t\t\t\t\t\tvar layout;\n\t\t\t\t\t\t\t\tvar filters;\n\n\t\t\t\t\t\t\t\tif ($scope.options.layoutId) {\n\t\t\t\t\t\t\t\t\tlayout = localStorageService.get('videoListingGridLayout.' + $scope.options.layoutId);\n\t\t\t\t\t\t\t\t\tif (layout) {\n\t\t\t\t\t\t\t\t\t\tfilters = layout.filters;\n\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tconsole.log('LOAD LAYOUT', $scope.options.layoutId, layout, options);\n\n\t\t\t\t\t\t\t\tif (!layout || !filters) {\n\t\t\t\t\t\t\t\t\tfilters = $scope.options;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tvar options = {\n\t\t\t\t\t\t\t\t\tassignedTo: $scope.options.assignees && $scope.options.assignees.length ? $scope.options.assignees.map(function (val) {\n\t\t\t\t\t\t\t\t\t\treturn val.id;\n\t\t\t\t\t\t\t\t\t}).join(',') : '-1',\n\t\t\t\t\t\t\t\t\tsearchText: filters.term,\n\n\t\t\t\t\t\t\t\t\t_headers: {\n\t\t\t\t\t\t\t\t\t\t'Pagination': params.page() + ',' + params.count()\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\tif (filters.partnerClients && filters.partnerClients.partners) {\n\t\t\t\t\t\t\t\t\toptions.partners = filters.partnerClients.partners.join(',')\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (filters.partnerClients && filters.partnerClients.clients) {\n\t\t\t\t\t\t\t\t\toptions.clients = filters.partnerClients.clients.join(',')\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (filters.billingCodes) {\n\t\t\t\t\t\t\t\t\toptions.billingCodes = filters.billingCodes.join(',')\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (filters.status) {\n\t\t\t\t\t\t\t\t\toptions.status = filters.status.filter(function (val) {\n\t\t\t\t\t\t\t\t\t\treturn !isNaN(val);\n\t\t\t\t\t\t\t\t\t}).join(',')\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif ( filters.date && filters.date !== 'none') {\n\t\t\t\t\t\t\t\t\tctrl.dates = {\n\t\t\t\t\t\t\t\t\t\tstart: new Date(),\n\t\t\t\t\t\t\t\t\t\tend: new Date()\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\tctrl.dates.start.setHours(0);\n\t\t\t\t\t\t\t\t\tctrl.dates.start.setMinutes(0);\n\t\t\t\t\t\t\t\t\tctrl.dates.start.setSeconds(0);\n\n\t\t\t\t\t\t\t\t\tctrl.dates.end.setHours(23);\n\t\t\t\t\t\t\t\t\tctrl.dates.end.setMinutes(59);\n\t\t\t\t\t\t\t\t\tctrl.dates.end.setSeconds(59);\n\n\t\t\t\t\t\t\t\t\tvar today = new Date();\n\t\t\t\t\t\t\t\t\tvar dayOfWeek = today.getDay();\n\t\t\t\t\t\t\t\t\tconsole.log( ctrl.dates.start, ctrl.dates.end, dayOfWeek );\n\n\t\t\t\t\t\t\t\t\tswitch (filters.date) {\n\t\t\t\t\t\t\t\t\t\tcase 'past':\n\t\t\t\t\t\t\t\t\t\t\tctrl.dates.start.setFullYear( 1999 )\n\t\t\t\t\t\t\t\t\t\t\t// ctrl.dates.end, 'yyyy-MM-ddTHH:mm:ss' );\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\tcase 'today':\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\tcase 'week':\n\t\t\t\t\t\t\t\t\t\t\tctrl.dates.start.setDate(today.getDate() - dayOfWeek);\n\t\t\t\t\t\t\t\t\t\t\tctrl.dates.end.setDate(today.getDate() + (6 - dayOfWeek));\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\tcase 'custom':\n\t\t\t\t\t\t\t\t\t\t\tctrl.dates.start.setDate(today.getDate() - $scope.options.customDateRange.start);\n\t\t\t\t\t\t\t\t\t\t\tctrl.dates.end.setDate(today.getDate() + $scope.options.customDateRange.end)\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\tcase 'month':\n\t\t\t\t\t\t\t\t\t\t\tctrl.dates.start.setDate(1);\n\t\t\t\t\t\t\t\t\t\t\tctrl.dates.end = (new Date(today.getFullYear(), today.getMonth() + 1, 0, 23, 59, 59));\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\tcase 'none':\n\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tconsole.log( ctrl.dates.start, ctrl.dates.end );\n\n\t\t\t\t\t\t\t\t\toptions.dueDateFrom = $filter('date')(ctrl.dates.start, 'yyyy-MM-ddTHH:mm:ss');\n\t\t\t\t\t\t\t\t\toptions.dueDateTo = $filter('date')(ctrl.dates.end, 'yyyy-MM-ddTHH:mm:ss');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (sortColumn) {\n\t\t\t\t\t\t\t\t\toptions.sort = sortColumn + ' ' + sorting[sortColumn].toUpperCase()\n\t\t\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\t\t\tconsole.log( \"GET FOR GRID\", options, filters );\n\n\n\t\t\t\t\t\t\t\tvar apiCall = vlsSearchApi.videoListings(options)\n\t\t\t\t\t\t\t\t$scope.methods.loading.start( $element, apiCall );\n\n\t\t\t\t\t\t\t\treturn apiCall.then(function (result) {\n\t\t\t\t\t\t\t\t\tvar pagination = result.headers().pagination;\n\n\t\t\t\t\t\t\t\t\tif (pagination) {\n\t\t\t\t\t\t\t\t\t\tpagination = JSON.parse(pagination);\n\t\t\t\t\t\t\t\t\t\tparams.total(pagination.TotalItems);\n\n\t\t\t\t\t\t\t\t\t\tpaginationOptions.totalItems = pagination.TotalItems;\n\t\t\t\t\t\t\t\t\t\tpaginationOptions.totalPages = pagination.TotalPages;\n\t\t\t\t\t\t\t\t\t\tpaginationOptions.pageNumber = pagination.CurrentPage;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tangular.forEach( result.data, function ( listing ) {\n\t\t\t\t\t\t\t\t\t\tlisting.dueDate = listing.dueDate.replace('Z','-0500');\n\t\t\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\t\t\t// $defer.resolve( result.data );\n\t\t\t\t\t\t\t\t\tconsole.log( \"RESULT DATA\", result.data)\n\t\t\t\t\t\t\t\t\treturn result.data;\n\t\t\t\t\t\t\t\t});\n\n\n\n\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t$scope: {$data: {}},\n\t\t\t\t\t\t\tcounts: []\n\t\t\t\t\t\t});\n\n\t\t\t\t\t};\n\n\n\t\t\t\t\t// $scope.showIcon = true;\n\t\t\t\t\t// $scope.showDate = false;\n\n\n\t\t\t\t}],\n\t\t\t\tlink: function( scope ) {\n\t\t\t\t\tscope.refresh();\n\t\t\t\t}\n\t\t\t};\n\t\t}]);\n})(window, window.angular);\n","'use strict';\n\nangular.module('widgets.upcomingGraph',['chart.js'])\n\t.config( [ '$dashboardWidgetsProvider', function( $dashboardWidgetsProvider ) {\n\t\t$dashboardWidgetsProvider.register( 'upcomingGraph', ['dash'], {\n\t\t\tconfig: {\n\t\t\t},\n\t\t\toptions: {\n\t\t\t\thideTitle: false\n\t\t\t},\n\t\t\tposition: {\n\t\t\t\tsizeX: 6,\n\t\t\t\tsizeY: 4\n\t\t\t}\n\t\t});\n\t} ])\n\t.directive('widgets.upcomingGraph',[ 'widgets.base','vls.listingStats', '$timeout', '$compile', function( widgetBase, listingStats, $timeout, $compile ) {\n\n\t\tvar processListingData = function( data, numDays ) {\n\t\t\tvar returnData = {\n\t\t\t\tnewListings: [],\n\t\t\t\trevListings: [],\n\t\t\t\tlabels: []\n\t\t\t};\n\t\t\tvar today = new Date();\n\n\t\t\tfor ( var x = 0; x < numDays; x++ ) {\n\t\t\t\t// Move the data over\n\t\t\t\treturnData.newListings.push( data[0][x] || 0 );\n\t\t\t\treturnData.revListings.push( data[1][x] || 0 );\n\n\t\t\t\t// Setup the labels\n\t\t\t\tvar labelDate = new Date(today);\n\t\t\t\tlabelDate.setDate(today.getDate()+x);\n\t\t\t\treturnData.labels.push( labelDate.getMonth()+1 + '/' + labelDate.getDate());\n\t\t\t}\n\n\n\n\t\t\treturn returnData;\n\t\t};\n\n\n\n\t\treturn {\n\t\t\ttemplate: '
',\n\t\t\tcontroller: [ '$rootScope','$scope', '$element', '$timeout', function( $rootScope, $scope, $element, $timeout ) {\n\t\t\t\t//console.log( \"IN LINE GRAPH CONTROLLER\");\n\t\t\t\tangular.extend($scope, widgetBase);\n\t\t\t\tconsole.log( 'OPTIONS', $scope );\n\n\t\t\t\tvar optionConfig = {\n\t\t\t\t\tlayout: [['partners'],[ 'title','graphType','stacked','numDays','showNew','showRev' ]],\n\t\t\t\t\ttitle: {\n\t\t\t\t\t\tlabel: 'Title',\n\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\tvalue: 'Upcoming'\n\t\t\t\t\t},\n\t\t\t\t\tnumDays: {\n\t\t\t\t\t\tlabel: 'Number of Days',\n\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\tvalue: 20\n\t\t\t\t\t},\n\t\t\t\t\tpartners: $scope.methods.options.getPartnersOption(),\n\t\t\t\t\tshowNew: {\n\t\t\t\t\t\tlabel: 'Show New Listings',\n\t\t\t\t\t\ttype: 'bool',\n\t\t\t\t\t\tvalue: true\n\t\t\t\t\t},\n\t\t\t\t\tshowRev: {\n\t\t\t\t\t\tlabel: 'Show Revisions',\n\t\t\t\t\t\ttype: 'bool',\n\t\t\t\t\t\tvalue: true\n\t\t\t\t\t},\n\t\t\t\t\tgraphType: {\n\t\t\t\t\t\tlabel: 'Graph Type',\n\t\t\t\t\t\ttype: 'select',\n\t\t\t\t\t\toptions: [{ label: 'Line', value: 'line' },{ label: 'Bar', value: 'bar' }],\n\t\t\t\t\t\tmultiple: false,\n\t\t\t\t\t\tvalue: 'line'\n\t\t\t\t\t},\n\t\t\t\t\tstacked: {\n\t\t\t\t\t\tlabel: 'Stack Values',\n\t\t\t\t\t\ttype: 'bool',\n\t\t\t\t\t\tvalue: true\n\t\t\t\t\t\t//notes: 'Combine values into a single value'\n\t\t\t\t\t}\n\n\n\t\t\t\t};\n\n\t\t\t\t// This gets set when we create it.\n\t\t\t\tvar chartInstance;\n\t\t\t\tvar wasClick = false;\n\n\t\t\t\t$scope.graphOptions = {\n\t\t\t\t\tresizeUpdate: 0,\n\t\t\t\t\tanimation: false,\n\t\t\t\t\tmaintainAspectRatio: false,\n\t\t\t\t\tlegend: {\n\t\t\t\t\t\tdisplay: true,\n\t\t\t\t\t\tonClick: function( event, dataset ) {\n\t\t\t\t\t\t\tconsole.log( arguments );\n\t\t\t\t\t\t\tdataset.hidden = !dataset.hidden;\n\n\t\t\t\t\t\t\tvar type = dataset.text == 'Revisions' ? 'Rev' : 'New';\n\t\t\t\t\t\t\twasClick = true;\n\t\t\t\t\t\t\t$scope.options['show'+type] = !dataset.hidden;\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\n\n\t\t\t\t\t// scaleGridLineColor: 'rgba(255,255,255,.05)',\n\t\t\t\t\t// scaleLineColor: 'rgba(255,255,255,.1)',\n\t\t\t\t\t// scaleFontColor: 'rgba(255,255,255,.4)',\n\t\t\t\t};\n\n\n\n\t\t\t\t// Merge saved values with defaults here\n\n\n\t\t\t\tvar newChart;\n\n\n\n\n\t\t\t\t$scope.refresh = function() {\n\t\t\t\t\tconsole.log( 'GRAPH REFRESH', $scope.options );\n\t\t\t\t\t//$scope.optionConfig = $scope.getOptionConfig( $scope, optionConfig );\n\t\t\t\t\t$scope.optionConfig = $scope.methods.options.getConfig( $scope, optionConfig );\n\n\t\t\t\t\tif ( $scope.options.stacked ) {\n\t\t\t\t\t\t$scope.graphOptions.scales = {\n\t\t\t\t\t\t\txAxes: [{\n\t\t\t\t\t\t\t\tstacked: true,\n\t\t\t\t\t\t\t}],\n\t\t\t\t\t\t\tyAxes: [{\n\t\t\t\t\t\t\t\tstacked: true\n\t\t\t\t\t\t\t}]\n\t\t\t\t\t\t};\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$scope.graphOptions.scales = {};\n\t\t\t\t\t}\n\n\t\t\t\t\tvar apiCall = listingStats.getListingData($scope.options.partners);\n\t\t\t\t\t$scope.graphData = {\n\t\t\t\t\t\tdatasets: {\n\t\t\t\t\t\t\tdatasets: [],\n\t\t\t\t\t\t\tlabels: []\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdata: [],\n\t\t\t\t\t\tcolors: [],\n\t\t\t\t\t\tseries: [],\n\t\t\t\t\t\tlabels: [],\n\t\t\t\t\t\ttype: $scope.options.graphType\n\t\t\t\t\t};\n\n\t\t\t\t\t$scope.methods.loading.start($element, apiCall);\n\n\n\t\t\t\t\tapiCall.then(function(listings) {\n\t\t\t\t\t\t//$scope.graphData\n\t\t\t\t\t\tvar listingData = processListingData(listings, $scope.options.numDays, $scope.options.showNew, $scope.options.showRev);\n\t\t\t\t\t\tconsole.log( '[ UPCOMING ] ', listingData );\n\t\t\t\t\t\t$scope.series = [];\n\n\t\t\t\t\t\tvar newDataset = {\n\t\t\t\t\t\t\tlabel: 'New Listings',\n\t\t\t\t\t\t\thidden: !$scope.options.showNew,\n\t\t\t\t\t\t\tdata: listingData.newListings,\n\t\t\t\t\t\t\tborderColor: 'rgba(0, 162, 231, 0.8)',\n\t\t\t\t\t\t\tborderWidth: 0,\n\n\t\t\t\t\t\t\ttension: 0,\n\t\t\t\t\t\t\tbackgroundColor: 'rgba(0, 162, 231, 0.8)',\n\t\t\t\t\t\t\t//type: 'bar'\n\n\t\t\t\t\t\t};\n\t\t\t\t\t\t$scope.graphData.datasets.datasets.push( newDataset );\n\t\t\t\t\t\t$scope.graphData.data.push( listingData.newListings );\n\n\t\t\t\t\t\tvar revDataset = {\n\t\t\t\t\t\t\tlabel: 'Revisions',\n\t\t\t\t\t\t\thidden: !$scope.options.showRev,\n\t\t\t\t\t\t\tdata: listingData.revListings,\n\t\t\t\t\t\t\tborderColor: 'rgba(231, 180, 0, 0.5)',\n\t\t\t\t\t\t\tborderWidth: 0,\n\n\t\t\t\t\t\t\ttension: 0,\n\t\t\t\t\t\t\tbackgroundColor: 'rgba(231, 180, 0, 0.5)',\n\t\t\t\t\t\t\t//type: 'bar'\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t$scope.graphData.datasets.datasets.push( revDataset );\n\t\t\t\t\t\t$scope.graphData.data.push( listingData.revListings );\n\n\n\t\t\t\t\t\t$scope.graphData.datasets.labels = $scope.graphData.labels = listingData.labels;\n\n\n\t\t\t\t\t\tif (newChart) {\n\t\t\t\t\t\t\tnewChart.remove();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconsole.log( 'SETTING NEW CHART', $scope.graphData );\n\t\t\t\t\t\t$timeout(function() {\n\t\t\t\t\t\t\tconsole.log( 'BUILD CHART', $element[0].offsetHeight );\n\t\t\t\t\t\t\tnewChart = $compile('')($scope);\n\t\t\t\t\t\t\t//console.log( 'NEW CHART', angular.element($element[0].getElementsByClassName('widget-graph')[0]) );\n\t\t\t\t\t\t\tangular.element($element[0].getElementsByClassName('widget-graph')[0]).empty().append(newChart);\n\n\n\t\t\t\t\t\t}, 800);\n\n\t\t\t\t\t\t//$timeout( function() { $scope.graphData.type = 'bar'; }, 3000 );\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t\t$scope.refresh();\n\n\t\t\t\t//var helpers;\n\t\t\t\t$scope.$on('calendar-widget::hover', function( e, day ) {\n\t\t\t\t\tconsole.log('calendar-hover!');\n\t\t\t\t\tvar dayIndex = -1;\n\t\t\t\t\tfor ( var x = chartInstance.data.labels.length-1; x >= 0; x-- ) {\n\t\t\t\t\t\tif ( chartInstance.data.labels[x] == (day.month + 1) + '/' + day.date ) {\n\n\t\t\t\t\t\t\tdayIndex = x;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( dayIndex >= 0 ) {\n\t\t\t\t\t\tchartInstance.tooltip._active = [ chartInstance.getDatasetMeta( 0 ).data[dayIndex], chartInstance.getDatasetMeta( 1 ).data[dayIndex] ];\n\t\t\t\t\t\tchartInstance.tooltip.update();\n\t\t\t\t\t\tchartInstance.render();\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t$scope.$on('calendar-widget::leave', function( e ) {\n\t\t\t\t\tchartInstance.tooltip._active = [];\n\t\t\t\t\tchartInstance.tooltip.update();\n\t\t\t\t\tchartInstance.render();\n\t\t\t\t});\n\n\t\t\t\t$scope.$on('chart-create', function(e, chart) {\n\t\t\t\t\tchartInstance = chart;\n\t\t\t\t\t//helpers = Chart.helpers;\n\n\t\t\t\t});\n\n\t\t\t\t$scope.$watch('options', function( newVal ) {\n\t\t\t\t\tconsole.log( 'OPTIONS CHANGE', newVal, wasClick );\n\t\t\t\t\tif ( !chartInstance ) { return; }\n\t\t\t\t\tif ( wasClick ) {\n\t\t\t\t\t\tchartInstance.data.datasets[0].hidden = !newVal.showNew;\n\t\t\t\t\t\tchartInstance.data.datasets[1].hidden = !newVal.showRev;\n\t\t\t\t\t\tchartInstance.update();\n\t\t\t\t\t\twasClick = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$scope.refresh();\n\t\t\t\t\t}\n\t\t\t\t}, true);\n\t\t\t} ],\n\t\t\tlink: function(scope, element, attrs ) {\n\n\n\t\t\t}\n\t\t};\n\t} ]);\n","(function( window, angular, undefined) {\n\t'use strict';\n\n\tangular.module( 'widgets.listingStatus', [] )\n\t\t.config( [ '$mdThemingProvider', '$dashboardWidgetsProvider', function( $mdThemingProvider, $dashboardWidgetsProvider ) {\n\t\t\t$dashboardWidgetsProvider.register( 'listingStatus', [ 'dash', 'campaign' ], {\n\t\t\t\tconfig: {\n\t\t\t\t\t// maxSizeY: 4\n\t\t\t\t},\n\t\t\t\toptions: {\n\t\t\t\t\thideTitle: false,\n\t\t\t\t\tpartner: \"BET\"\n\t\t\t\t},\n\t\t\t\tposition: {\n\t\t\t\t\tsizeX: 6,\n\t\t\t\t\tsizeY: 16,\n\t\t\t\t\tmaxSizeY: 20\n\t\t\t\t},\n\t\t\t\tactions:\n\t\t\t\t\t[{\n\t\t\t\t\t\t// selectedPartner: $scope.options.partner,\n\t\t\t\t\t\tpartner: true\n\t\t\t\t\t}]\n\n\t\t\t});\n\n\t\t\t$mdThemingProvider.registerStyles('' +\n\t\t\t\t'.md-THEME_NAME-theme .widget-listing-status .badge { background: \\'{{accent-default}}\\'; }' +\n\t\t\t\t'');\n\t\t} ])\n\t\t.directive( 'widgets.listingStatus', [ 'widgets.base',function(widgetBase) {\n\n\n\t\t\treturn {\n\t\t\t\ttemplateUrl: '/templates/widgets/dash/listingStatus/listingStatus.tpl.html',\n\t\t\t\tcontroller: [ '$scope','$element', '$state', 'vls.user', 'vls.listingStatus', function( $scope, $element, $state, vlsUser, vlsListingStatus ) {\n\n\n\t\t\t\t\t//angular.extend($scope, widgetBase);\n\t\t\t\t\tvar optionConfig = {\n\t\t\t\t\t\tlayout: [['partner'], [ 'title','status' ]],\n\t\t\t\t\t\ttitle: {\n\t\t\t\t\t\t\tlabel: 'Title',\n\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\tvalue: 'Listing Status',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpartner: $scope.methods.options.getPartnersOption( true ),\n\n\t\t\t\t\t};\n\n\n\t\t\t\t\tfunction findPartnerByCode( code ) {\n\t\t\t\t\t\treturn partners.find( function( partner ) {\n\t\t\t\t\t\t\treturn partner.partnerCode === code;\n\t\t\t\t\t\t}).id;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tvar partners;\n\t\t\t\t\tvar partnerId;\n\t\t\t\t\tvlsUser.isLoaded().then( function() {\n\t\t\t\t\t\tpartners = vlsUser.getUserPartners();\n\t\t\t\t\t\tscope.refresh();\n\t\t\t\t\t});\n\t\t\t\t\tconsole.log( $scope );\n\n\n\t\t\t\t\t// $scope.options.statusIds = [ 30, 22, 20, 512, 256, 65536 ];\n\t\t\t\t\t$scope.options.title = $scope.options.title || 'Listing Status';\n\t\t\t\t\t// if ( $scope.options.partners && $scope.options.partners.length <= 2 ) {\n\t\t\t\t\t// $scope.options.title += \" : \" + $scope.options.partners.join(', ');\n\t\t\t\t\t// }\n\t\t\t\t\t$scope.status = {\n\t\t\t\t\t\tnames: vlsListingStatus.getStatuses(),\n\t\t\t\t\t\tids: vlsListingStatus.getStatusIds(),\n\t\t\t\t\t\tlayout: vlsListingStatus.getLayout(),\n\t\t\t\t\t\tcounts: []\n\t\t\t\t\t};\n\n\n\n\t\t\t\t\t$scope.optionConfig = $scope.methods.options.getConfig( $scope, optionConfig, true );\n\t\t\t\t\t$scope.actions[0].currentPartner = $scope.options.partner;\n\n\t\t\t\t\t$scope.refresh = function() {\n\t\t\t\t\t\tpartnerId = findPartnerByCode( $scope.actions[0].currentPartner );\n\n\t\t\t\t\t\tvlsListingStatus.getStatusCount( $scope.actions[0].currentPartner ).then( function( data ) {\n\n\t\t\t\t\t\t\t$scope.status.counts = data.reduce( function( prev, val ) {\n\t\t\t\t\t\t\t\tprev[val.statusid] = val.count;\n\t\t\t\t\t\t\t\treturn prev;\n\t\t\t\t\t\t\t}, {});\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\t// console.log( $scope.status, $scope.optionConfig );\n\t\t\t\t\t}\n\n\t\t\t\t\t$scope.$watch( 'options.partner', function( newVal, oldVal ) {\n\t\t\t\t\t\tif ( newVal && oldVal && newVal !== oldVal ) {\n\t\t\t\t\t\t\t$scope.actions[0].currentPartner = newVal;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t});\n\t\t\t\t\t// $scope.$watch( 'options.partner', function( newVal, oldVal ) {\n\t\t\t\t\t// \tif ( newVal && oldVal && newVal !== oldVal ) {\n\t\t\t\t\t// \t\t$scope.currentPartner = newVal;\n\t\t\t\t\t// \t}\n\t\t\t\t\t//\n\t\t\t\t\t// });\n\n\t\t\t\t\t$scope.$watch( 'actions[0].currentPartner', function( newVal ) {\n\t\t\t\t\t\t// console.log( 'current Partner change', newVal );\n\t\t\t\t\t\t$scope.refresh();\n\t\t\t\t\t} );\n\n\t\t\t\t\t$scope.gotoLink = function( status ) {\n\n\n\n\t\t\t\t\t\t$state.go('app.videos', {f: JSON.stringify({status: [status], partnerClients: { partners: [partnerId] } } ) } );\n\t\t\t\t\t}\n\n\n\t\t\t\t}],\n\t\t\t\tlink: function( scope ) {\n\n\t\t\t\t}\n\t\t\t};\n\t\t} ]);\n})(window, window.angular);\n","(function(window, angular, undefined) {\n\t'use strict';\n\n\t// function updateSorting() {\n\t// _$scope.tableParams.sorting({});\n\t// }\n\t//\n\t// var _$scope;\n\n\tangular.module('widgets.listingGrid', ['ngTable'])\n\t\t.config( [ '$dashboardWidgetsProvider', function( $dashboardWidgetsProvider ) {\n\t\t\t// $dashboardWidgetsProvider.register( 'listingGrid', ['dash'], {\n\t\t\t// \tconfig: {\n\t\t\t// \t},\n\t\t\t// \toptions: {\n\t\t\t// \t\thideTitle: false\n\t\t\t// \t},\n\t\t\t// \tposition: {\n\t\t\t// \t\tsizeX: 6,\n\t\t\t// \t\tsizeY: 4,\n\t\t\t// \t\tminSizeY: 5\n\t\t\t// \t}\n\t\t\t// });\n\t\t} ])\n\t\t.directive('widgets.listingGrid', [ 'widgets.base', function( widgetBase ) {\n\t\t\treturn {\n\t\t\t\t// replace: true,\n\t\t\t\ttemplateUrl: '/templates/widgets/dash/listingGrid/listingGrid.tpl.html',\n\n\t\t\t\tcontroller: [ '$scope','$element', '$filter', 'vls.api', 'NgTableParams', function( $scope, $element, $filter, vlsApi, NgTableParams ) {\n\n\t\t\t\t\t$scope.searchTerm = '';\n\n\t\t\t\t\t/** Watch these and update the grid **/\n\t\t\t\t\tvar initial = true;\n\t\t\t\t\t$scope.tableParams = new NgTableParams({\n\t\t\t\t\t\tpage: 1, // show first page\n\t\t\t\t\t\tcount: 10, // count per page\n\n\t\t\t\t\t\tsorting: {\n\t\t\t\t\t\t\tduedate: 'desc' // initial sorting\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdebugMode: true\n\t\t\t\t\t}, {\n\t\t\t\t\t\ttotal: 0, // length of data\n\t\t\t\t\t\tgetData: function( params ) {\n\t\t\t\t\t\t\t// console.log( 'GET DATA: ', params.page() );\n\t\t\t\t\t\t\t// console.trace();\n\n\t\t\t\t\t\t\tvar sorting = params.sorting();\n\t\t\t\t\t\t\tvar column = Object.keys( sorting )[0];\n\t\t\t\t\t\t\tvar options = {\n\t\t\t\t\t\t\t\tstart: 1 + ( ( params.page() - 1 ) * params.count() ),\n\t\t\t\t\t\t\t\tcount: params.count()\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tif ( column ) {\n\t\t\t\t\t\t\t\toptions.sortcolumn = column,\n\t\t\t\t\t\t\t\t\toptions.sortdir = sorting[column].substring(0,1).toUpperCase();\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn vlsApi.getListings( options, { partnercodefn: $scope.options.partners } ).then( function( result ) {\n\t\t\t\t\t\t\t\tresult = result.data;\n\t\t\t\t\t\t\t\tangular.forEach( result.items, function( value, key ) {\n\t\t\t\t\t\t\t\t\tvalue.duedate = new Date( value.duedate ).getTime();\n\t\t\t\t\t\t\t\t\tvalue.statusname = value.statusname.replace('','');\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tparams.total( result.total );\n\n\t\t\t\t\t\t\t\treturn result.items;\n\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\t$scope: { $data: {} },\n\t\t\t\t\t\tcounts:[]\n\t\t\t\t\t});\n\n\n\t\t\t\t} ]\n\t\t\t};\n\t\t} ]);\n\n\n})(window, window.angular);\n","(function( window, angular, undefined) {\n\t'use strict';\n\n\tangular.module( 'widgets.dueDateText', [] )\n .config( [ '$dashboardWidgetsProvider', function( $dashboardWidgetsProvider ) {\n\t$dashboardWidgetsProvider.register( 'dueDateText', [ 'dash', 'campaign' ], {\n\t\tconfig: {\n // maxSizeY: 4\n\t\t},\n\t\toptions: {\n\t\t\thideTitle: true\n\t\t},\n\t\tposition: {\n\t\t\tsizeX: 6,\n\t\t\tsizeY: 4,\n\t\t\tmaxSizeY: 6\n\t\t}\n\t});\n} ])\n\t.directive( 'widgets.dueDateText', [function() {\n\t\tconsole.log('--------DUEDATE');\n\t\tvar optionConfig = {\n\t\t\tlayout: [['partners'], [ 'title','color','start','end' ]],\n\t\t\ttitle: {\n\t\t\t\tlabel: 'Title',\n\t\t\t\ttype: 'text',\n\t\t\t\tvalue: 'Upcoming',\n\t\t\t},\n\t\t\tpartners: {}, //widgetBase.getPartnersOption(),\n\t\t\tstart: {\n\t\t\t\tlabel: 'Start Day',\n\t\t\t\ttype: 'number',\n\t\t\t\tvalue: 0,\n\t\t\t\tnotes: 'A negative number will retrieve all past due listings'\n\t\t\t},\n\t\t\tend: {\n\t\t\t\tlabel: 'End Day',\n\t\t\t\ttype: 'number',\n\t\t\t\tvalue: 0,\n\t\t\t\tdisabled: function(options) { console.log( 'DISABLED?!?', options.start ); return options.start < 0; },\n\t\t\t\tnotes: 'Value ignored if \"Start Day\" is negative'\n\t\t\t},\n\t\t\tcolor: {\n\t\t\t\tlabel: 'Color',\n\t\t\t\ttype: 'color',\n\t\t\t\tvalue: '',\n\t\t\t\tnotes: 'Edge color.'\n\t\t\t}\n\n\t\t};\n\t\treturn {\n\t\t\ttemplateUrl: '/templates/widgets/dash/dueDateText/dueDateText.tpl.html',\n\t\t\tcontroller: [ '$rootScope', '$scope','$element','vls.listingStats', function( $rootScope, $scope, $element, listingStats ) {\n\n\n\t\t\t\t//angular.extend($scope, widgetBase);\n\t\t\t\t//$scope.widget.position.maxSizeY = 4;\n\t\t\t\t//$scope.options.hideTitle = true;\n\n\t\t\t\t$scope.refresh = function() {\n\t\t\t\t\t// console.log( 'REFRESH duedate', $scope );\n\t\t\t\t\t$scope.optionConfig = $scope.methods.options.getConfig( $scope, optionConfig, true );\n\n\t\t\t\t\t$scope.parentStyles = angular.merge( $scope.parentStyles || {}, {\n\t\t\t\t\t\tcolor: ( $rootScope.getCurrentTheme().isDark ? $rootScope.getCurrentTheme().foregroundPalette[1] : $rootScope.getCurrentTheme().foregroundPalette[2] ) + ' !important',\n\t\t\t\t\t\tborderLeftColor: $scope.options.color\n\t\t\t\t\t} );\n\t\t\t\t\t$scope.iconStyles = { 'color': $scope.options.color };\n\n\n\t\t\t\t\t//$element.parent().parent().removeClass('fadeOut');\n\t\t\t\t\tvar apiCall = listingStats.getListingData($scope.options.partners);\n\n\t\t\t\t\t$scope.methods.loading.start($element, apiCall);\n\n\t\t\t\t\tapiCall.then(function(data) {\n\t\t\t\t\t\tdata = listingStats.getDailyListings($scope.options.start, $scope.options.end);\n\t\t\t\t\t\t$scope.newCount = data[0];\n\t\t\t\t\t\t$scope.revCount = data[1];\n\t\t\t\t\t\t$scope.totalCount = data[0] + data[1];\n\n\t\t\t\t\t\tif ($scope.newCount == 0 && $scope.revCount == 0) {\n\t\t\t\t\t\t\t$element.parent().parent().addClass('fadeOut');\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t\t$scope.refresh();\n\t\t\t\t$scope.$watch('options ', $scope.refresh, true);\n\n\n\t\t\t\t$scope.showIcon = true;\n\t\t\t\t$scope.showDate = false;\n\n\t\t\t/*\tif ( $scope.options.range.start == 0 ) {\n\t\t\t\t\t$scope.showIcon = false;\n\t\t\t\t\t$scope.showDate = true;\n\t\t\t\t\t$scope.today = new Date().getDate();\n\t\t\t\t}\n\t\t\t*/\n\t\t\t\t$scope.getClass = function( type ) {\n\t\t\t\t\t$element.parent().addClass('dueDateText');\n\n\t\t\t\t\tif ( 0 > $scope.options.start ) {\n\t\t\t\t\t\t$element.parent().addClass('overdue');\n\t\t\t\t\t\treturn type === 'widget' ? 'overdue' : 'report_problem';\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( 0 === $scope.options.start && 0 === $scope.options.end ) {\n\t\t\t\t\t\t$element.parent().addClass('today');\n\t\t\t\t\t\treturn type === 'widget' ? 'today' : 'schedule';\n\t\t\t\t\t}\n\t\t\t\t\tif ( 1 === $scope.options.start && 1 === $scope.options.end ) {\n\t\t\t\t\t\t$element.parent().addClass('future');\n\t\t\t\t\t\treturn type === 'widget' ? 'future' : 'plus_one';\n\t\t\t\t\t}\n\t\t\t\t\tif ( 2 === $scope.options.start && 2 === $scope.options.end ) {\n\t\t\t\t\t\t$element.parent().addClass('future');\n\t\t\t\t\t\treturn type === 'widget' ? 'future' : 'exposure_plus_two';\n\t\t\t\t\t}\n\t\t\t\t\tif ( 7 <= $scope.options.end ) {\n\t\t\t\t\t\t$element.parent().addClass('future');\n\t\t\t\t\t\treturn type === 'widget' ? 'future' : 'today';\n\t\t\t\t\t}\n\n\t\t\t\t};\n\n\n\n\t\t\t} ]\n\t\t};\n\t}]);\n})(window, window.angular);\n","'use strict';\n\nangular.module('widgets.notes', [])\n .config( [ '$dashboardWidgetsProvider', function( $dashboardWidgetsProvider ) {\n\t$dashboardWidgetsProvider.register( 'notes', ['common'], {\n\t\tconfig: {\n\t\t},\n\t\toptions: {\n\t\t\thideTitle: false\n\t\t},\n\t\tposition: {\n\t\t\tsizeX: 4,\n\t\t\tsizeY: 6,\n\t\t\tminSizeX: 2,\n\t\t\tminSizeY: 3\n\t\t}\n\t});\n} ])\n\t.directive('widgets.notes', [ 'widgets.base',function (widgetBase) {\n\t\tvar optionConfig = {\n\t\t\ttitle: {\n\t\t\t\tlabel: 'Title',\n\t\t\t\ttype: 'text',\n\t\t\t\tvalue: '',\n\t\t\t\torder: 0 // Silly angular sorting of the object keys\n\t\t\t}\n\t\t\t//partners: widgetBase.getPartnersOption()\n\t\t};\n\n\t\treturn {\n\t\t\trestrict: 'A',\n\t\t\t//replace: true,\n\t\t\ttemplate: '
',\n\t\t\tcontroller: [ '$scope', 'localStorageService', function( $scope, localStorageService ) {\n\t\t\t\t//angular.extend($scope, widgetBase);\n\t\t\t\t// Widget options\n\t\t\t\t$scope.position.minSizeY = 3;\n\n\t\t\t\t$scope.options = $scope.options || {};\n\t\t\t\t$scope.optionConfig = $scope.methods.options.getConfig( $scope, optionConfig );\n\n\t\t\t\t//$scope.widget.options.title =\n\n\t\t\t\t/*$scope.widget.actions.unshift({\n\t\t\t\t\ttext: 'Next Month',\n\t\t\t\t\ticon: 'chevron_right',\n\t\t\t\t\tmethod: function() {\n\t\t\t\t\t\t$scope.calendar.nextMonth();\n\t\t\t\t\t}\n\t\t\t\t});*/\n\n\t\t\t\t$scope.notes = localStorageService.get('appNotes');\n\n\t\t\t\t$scope.$watch('notes', function( value ) {\n\t\t\t\t\tlocalStorageService.set('appNotes',value);\n\t\t\t\t});\n\n\t\t\t} ],\n\t\t\tlink: function ($scope, $element, attrs) {\n\n\t\t\t\t/*\n\t\t\t\t var template = $compile(getTemplate(parseInt(attrs.month), parseInt(attrs.year), []))(this);\n\n\t\t\t\t $element.append(template);\n\t\t\t\t $compile($element.contents());\n\n\t\t\t\t */\n\t\t\t}\n\t\t};\n\t} ]);\n","'use strict';\n\nangular.module('widgets.clock',[])\n .config( [ '$dashboardWidgetsProvider', function( $dashboardWidgetsProvider ) {\n\t$dashboardWidgetsProvider.register( 'clock', ['common'], {\n\t\tconfig: {\n\t\t},\n\t\toptions: {\n\t\t\thideTitle: false\n\t\t},\n\t\tposition: {\n\t\t\tsizeX: 4,\n\t\t\tsizeY: 6,\n\t\t\tminSizeX: 2,\n\t\t\tminSizeY: 3\n\t\t}\n\t});\n} ])\n\t.directive('widgets.clock', [ '$q', '$interpolate', 'widgets.base', function( $q, $interpolate, widgetBase ) {\n\n\t\treturn {\n\t\t\t//restrict: 'A',\n\t\t\t//replace: true,\n\t\t\ttemplateUrl: '/templates/widgets/common/clock/clock.tpl.html',\n\n\t\t\tcontroller: [ '$scope', '$element', '$timeout', '$interval', '$http', function( $scope, $element, $timeout, $interval, $http ) {\n\t\t\t\t//angular.extend($scope, widgetBase);\n\n\t\t\t\t$scope.position.minSizeY = 2;\n\n\t\t\t\tvar loadingDefer = new $q.defer();\n\t\t\t\twidgetBase.getData($element, loadingDefer.promise);\n\n\n\t\t\t\tvar hour, min, month, day, year;\n\n\t\t\t\t$scope.tickInterval = 1000; //ms\n\n\t\t\t\tvar tick = function() {\n\t\t\t\t\tvar theDate = new Date;\n\t\t\t\t\tvar hour = theDate.getHours(),\n\t\t\t\t\t\tmin = theDate.getMinutes(),\n\t\t\t\t\t\tsec = theDate.getSeconds(),\n\t\t\t\t\t\tmonth = theDate.getMonth(),\n\t\t\t\t\t\tday = theDate.getDate(),\n\t\t\t\t\t\tyear = theDate.getYear();\n\n\t\t\t\t\t$scope.clock = {\n\t\t\t\t\t\thour: hour > 12 ? hour - 12 : hour === 0 ? hour = 12 : hour,\n\t\t\t\t\t\tmin: min < 10 ? '0'+min : min,\n\t\t\t\t\t\tmonth: theDate.getMonth(),\n\t\t\t\t\t\tseconds: sec < 10 ? '0'+sec : sec,\n\t\t\t\t\t\tday: theDate.getDate(),\n\t\t\t\t\t\tyear: theDate.getYear()\n\t\t\t\t\t};\n\n\t\t\t\t\t//$scope.options.title = '' + $scope.clock.hour + '' + $scope.clock.min + '' + $scope.clock.seconds + '';\n\t\t\t\t\ttheDate = null;\n\t\t\t\t};\n\n\t\t\t\tvar interval;\n\n\t\t\t\t$scope.refresh = function() {\n\t\t\t\t\tvar optionConfig = {\n\t\t\t\t\t\tunits: {\n\t\t\t\t\t\t\tlabel: {\n\t\t\t\t\t\t\t\ttruthy: 'Units: Imperial',\n\t\t\t\t\t\t\t\tfalsey: 'Units: Metric'\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\ttype: 'bool',\n\t\t\t\t\t\t\tvalue: true\n\t\t\t\t\t\t},\n\t\t\t\t\t\tuseGeo: {\n\t\t\t\t\t\t\tlabel: 'Use Current Location',\n\t\t\t\t\t\t\ttype: 'bool',\n\t\t\t\t\t\t\tvalue: true\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlocation: {\n\t\t\t\t\t\t\tlabel: 'Zip Code',\n\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\tvalue: '',\n\t\t\t\t\t\t\tdisabled: function(options) { return options.useGeo; },\n\t\t\t\t\t\t}\n\n\t\t\t\t\t};\n\n\t\t\t\t\tconsole.log( 'INTERPOLATE', optionConfig.units.label );\n\n\t\t\t\t\t$scope.optionConfig = $scope.methods.options.getConfig( $scope, optionConfig, true );\n\n\t\t\t\t\tif ( interval ) {\n\t\t\t\t\t\t$interval.cancel( interval );\n\t\t\t\t\t}\n\t\t\t\t\t// Start the timer\n\t\t\t\t\tinterval = $interval(tick, $scope.tickInterval);\n\n\t\t\t\t\t$scope.$on('$destroy', function() {\n\t\t\t\t\t\t$interval.cancel( interval );\n\t\t\t\t\t});\n\n\t\t\t\t\tinitWeather();\n\t\t\t\t};\n\n\t\t\t\t$scope.$watch( 'widget.options', function() {\n\t\t\t\t\t$scope.refresh();\n\t\t\t\t});\n\n\n\n\t\t\t\tvar apiKey = '4a1821be9d9b38539304aa8721622c91';\n\t\t\t\tvar posOptions = { timeout: 10000, enableHighAccuracy: true };\n\n\n\n\t\t\t\t$scope.weather = {\n\t\t\t\t\ttemp: 0,\n\t\t\t\t\ticon: '1',\n\t\t\t\t\tcondition: 'Sunny'\n\t\t\t\t};\n\n\t\t\t\t\t/*\n\t\t\t\t\t Weather Icon\n\t\t\t\t\t 1 - sun\n\t\t\t\t\t 2 - moon\n\t\t\t\t\t 3 - partly cloudy\n\t\t\t\t\t 4 - partly cloudy - night\n\t\t\t\t\t 5 - cloudy\n\t\t\t\t\t 6 - thunderstorm\n\t\t\t\t\t 7 - drizzle\n\t\t\t\t\t 8 - raining\n\t\t\t\t\t 9 - windy, cloudy\n\t\t\t\t\t ! - windy, raining\n\t\t\t\t\t \" - light snow\n\t\t\t\t\t # - heavy snow\n\t\t\t\t\t $ - hail\n\t\t\t\t\t % - very cloudy\n\t\t\t\t\t & - severe thunderstorms\n\t\t\t\t\t M - foggy\n\t\t\t\t\t */\n\n\n\t\t\t\tvar initWeather = function() {\n\t\t\t\t\tif ( $scope.options.useGeo ) {\n\t\t\t\t\t\tif ( window.navigator.geolocation ) {\n\t\t\t\t\t\t\twindow.navigator.geolocation.getCurrentPosition( geoSuccess, geoError, posOptions );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgeoError();\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar positionStr;\n\t\t\t\t\t\tif ( /^\\d{5}$/i.test( $scope.options.location ) ) {\n\t\t\t\t\t\t\tpositionStr = 'zip=' + $scope.options.location + ',us';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tpositionStr = 'q=' + $scope.options.location;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tgetWeather( positionStr );\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tvar getWeather = function( positionStr ) {\n\t\t\t\t\tvar apiUrl = 'https://api.openweathermap.org/data/2.5/weather?';\n\t\t\t\t\tvar units = '&units=' + ($scope.options.units ? 'imperial' : 'metric' );\n\t\t\t\t\tvar appId = '&appid=' + apiKey;\n\n\n\t\t\t\t\tvar url = apiUrl+positionStr+units+appId;\n\n\t\t\t\t\tvar apiCall = $http.get(url, { withCredentials: false }).then(function( data ) {\n\t\t\t\t\t\tvar weather = data.data;\n\t\t\t\t\t\tconsole.log( 'WEATHER DATA', weather );\n\t\t\t\t\t\t$scope.weather.temp = Math.round( weather.main.temp );\n\t\t\t\t\t\t$scope.weather.tempUnit = $scope.options.units ? 'F' : 'C';\n\t\t\t\t\t\t$scope.weather.condition = weather.weather[0].main;\n\t\t\t\t\t\t$scope.weather.location = weather.name;\n\t\t\t\t\t\t$scope.weather.icon = getWeatherIcon( weather.weather[0].icon );\n\t\t\t\t\t\tclearTimeout(loadingTimeout);\n\t\t\t\t\t\tloadingDefer.resolve();\n\t\t\t\t\t});\n\n\t\t\t\t\tvar loadingTimeout = setTimeout( function() {\n\t\t\t\t\t\tloadingDefer.resolve();\n\t\t\t\t\t}, 10000);\n\t\t\t\t};\n\n\t\t\t\tvar geoSuccess = function( position ) {\n\t\t\t\t\tvar lat = position.coords.latitude;\n\t\t\t\t\tvar lon = position.coords.longitude;\n\n\t\t\t\t\tvar positionStr = 'lat=' + lat + '&lon=' + lon;\n\n\t\t\t\t\tgetWeather( positionStr );\n\t\t\t\t};\n\t\t\t\tvar geoError = function(e) {\n\t\t\t\t//\tconsole.warn( \"Geolocation failed. Using Addison, Tx\" );\n\t\t\t\t\tvar lat = '33.0209389';\n\t\t\t\t\tvar lon = '-96.8404601';\n\n\t\t\t\t\tvar positionStr = 'lat=' + lat + '&lon=' + lon;\n\n\t\t\t\t\tgetWeather( positionStr );\n\t\t\t\t};\n\n\t\t\t\tvar getWeatherIcon = function ( icon ) {\n\t\t\t\t\tvar time = icon.replace(/[0-9]/gi,'');\n\t\t\t\t\tvar category = icon.replace(/[nd]/gi,'');\n\t\t\t\t\tvar iconChar = '1';\n\t\t\t\t\tvar unitChar = '*';\n\t\t\t\t\tswitch ( category ) {\n\t\t\t\t\t\tcase '01': iconChar = time == 'd' ? '1' : '2'; break;\n\t\t\t\t\t\tcase '02': iconChar = time == 'd' ? '3' : '4'; break;\n\t\t\t\t\t\tcase '03': iconChar = '5'; break;\n\t\t\t\t\t\tcase '04': iconChar = '%'; break;\n\t\t\t\t\t\tcase '09': iconChar = '8'; break;\n\t\t\t\t\t\tcase '10': iconChar = '7'; break;\n\t\t\t\t\t\tcase '11': iconChar = '&'; break;\n\t\t\t\t\t\tcase '13': iconChar = '#'; break;\n\t\t\t\t\t\tcase '50': iconChar = 'M'; break;\n\t\t\t\t\t\tdefault: '1'; break;\n\t\t\t\t\t}\n\n\n\n\t\t\t\t\tif ( $scope.options.units == 'f' ) {\n\t\t\t\t\t\tunitChar = '+';\n\t\t\t\t\t}\n\t\t\t\t\treturn { category: category, character: iconChar, unit: unitChar, time: time };\n\t\t\t\t};\n\n\t\t\t\tvar get;\n\n\n\t\t\t\t$scope.refresh();\n\n\t\t\t} ],\n\t\t\tlink: function( scope, iElement, Attrs ) {\n\n\t\t\t}\n\n\t\t};\n\t} ]);\n","(function(window, angular, undefined) {\n\t\n\t\n\t'use strict';\n\tvar calendar = {};\n\t\n\tangular.module('widgets.calendar', [])\n\t\t.config( [ '$mdThemingProvider', '$dashboardWidgetsProvider', function( $mdThemingProvider, $dashboardWidgetsProvider ) {\n\t\t\t\n\t\t\t// md-colors=\"::{backgroundColor: '{{ $root.appConfig.theme }}-primary-{{ $root.getCurrentTheme().isDark ? '600' : '200' }}' }\"\n\t\t\t$mdThemingProvider.registerStyles('' +\n\t\t\t\t'.md-THEME_NAME-theme .widget-calendar .cal-header { background: \\'{{primary-hue-3}}\\'; color: \\'{{primary-hue-1}}\\'; }' +\n\t\t\t\t'.md-THEME_NAME-theme .widget-calendar .cal-highlight { background: \\'{{accent-default}}\\'; }' +\n\t\t\t\t'.md-THEME_NAME-theme .widget-calendar .cal-day.cal-is-highlight { color: \\'{{accent-contrast}}\\'; }' +\n\t\t\t\t'');\n\t\t\t\n\t\t\t\n\t\t\t$dashboardWidgetsProvider.register( 'calendar', ['common'], {\n\t\t\t\tconfig: {\n\t\t\t\t\t// maxSizeY: 4\n\t\t\t\t},\n\t\t\t\toptions: {\n\t\t\t\t\thideTitle: false\n\t\t\t\t},\n\t\t\t\tposition: {\n\t\t\t\t\tsizeX: 6,\n\t\t\t\t\tsizeY: 4,\n\t\t\t\t\t\n\t\t\t\t\tminSizeY: 3\n\t\t\t\t},\n\t\t\t\tactions: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: 'Previous Month',\n\t\t\t\t\t\ticon: 'chevron_left',\n\t\t\t\t\t\tmethod: function() { calendar.previousMonth(); }\n\t\t\t\t\t},{\n\t\t\t\t\t\ttext: 'Next Month',\n\t\t\t\t\t\ticon: 'chevron_right',\n\t\t\t\t\t\tmethod: function() { calendar.nextMonth(); }\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t});\n\t\t} ])\n\t\t.directive('widgets.calendar', [ '$compile', '$filter', '$timeout', function ( $compile, $filter, $timeout ) {\n\t\t\t\n\t\t\tvar monthNames = [ 'january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december' ];\n\t\t\tvar days = [ 's', 'm', 't', 'w', 't', 'f', 's' ];\n\t\t\tvar x;\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\tvar isLeapYear = function (year) {\n\t\t\t\treturn ((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0);\n\t\t\t};\n\t\t\t\n\t\t\tvar daysInMonth = function (date) {\n\t\t\t\treturn [ 31, (isLeapYear(date.getYear()) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ][date.getMonth()];\n\t\t\t};\n\t\t\t\n\t\t\tvar formatDateHeading = function (date, includeDay) {\n\t\t\t\tvar m = monthNames[date.getMonth()];\n\t\t\t\tif ( includeDay ) {\n\t\t\t\t\treturn m.charAt(0).toUpperCase() + m.slice(1) + ' ' + currentDate.getDate() + ', ' + date.getFullYear();\n\t\t\t\t} else {\n\t\t\t\t\treturn m.charAt(0).toUpperCase() + m.slice(1) + ' ' + date.getFullYear();\n\t\t\t\t}\n\t\t\t};\n\t\t\t\n\t\t\tvar currentDate = new Date();\n\t\t\t\n\t\t\tfunction getCalendarLayout(month, year, dates) {\n\t\t\t\t\n\t\t\t\tvar month = ((isNaN(month) || month == null) ? currentDate.getMonth() : month),\n\t\t\t\t\tyear = (isNaN(year) || year == null) ? currentDate.getFullYear() : year,\n\t\t\t\t\tfirstDay = new Date(year, month, 1),\n\t\t\t\t\tstartDay = firstDay.getDay(),\n\t\t\t\t\tmonthLength = daysInMonth(firstDay),\n\t\t\t\t\n\t\t\t\t\tpreviousMonth = month == 0 ? 11 : month - 1,\n\t\t\t\t\tpreviousYear = month == 0 ? year - 1 : year,\n\t\t\t\t\tpreviousDays = daysInMonth( new Date( previousYear, previousMonth, 1)),\n\t\t\t\t\n\t\t\t\t\tnextMonth = month == 11 ? 0 : month + 1,\n\t\t\t\t\tnextYear = month == 11 ? year + 1 : year,\n\t\t\t\t\tnextDays = 1, //daysInMonth( new Date( nextYear, nextMonth, 1)),\n\t\t\t\t\n\t\t\t\t\treturnArray = [],\n\t\t\t\t\tday = 1,\n\t\t\t\t\trows = Math.ceil((monthLength + startDay) / 7);\n\t\t\t\t\n\t\t\t\tfor (var i = 0; i < rows; i++) {\n\t\t\t\t\treturnArray[i] = [];\n\t\t\t\t\t\n\t\t\t\t\tfor (var j = 0; j < 7; j++) {\n\t\t\t\t\t\tif ( i == 0 && j < startDay ) {\n\t\t\t\t\t\t\treturnArray[i][j] = { type: 'cal-previous-day', date: previousDays - startDay + j + 1, month: previousMonth, year: year };\n\t\t\t\t\t\t} else if (day <= monthLength && (i > 0 || j >= startDay)) {\n\t\t\t\t\t\t\treturnArray[i][j] = { type: 'cal-day', date: day++, month: month, year: year };\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturnArray[i][j] = { type: 'cal-next-day', date: nextDays++, month: nextMonth, year: year };\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn returnArray;\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn {\n\t\t\t\trestrict: 'A',\n\t\t\t\t//replace: true,\n\t\t\t\ttemplateUrl: '/templates/widgets/common/calendar/calendar.tpl.html',\n\t\t\t\tcontroller: [ '$scope', '$element', '$rootScope', function( $scope, $element, $rootScope ) {\n\t\t\t\t\t\n\t\t\t\t\t// Widget options\n\t\t\t\t\t/*$scope.widget.position.minSizeY = 3;\n\t\n\t\t\t\t\t$scope.widget.options = $scope.widget.options || {};\n\t\t\t\t\t*/\n\t\t\t\t\t// $scope.methods.actions.add( 'Next Month', 'chevron_right', function() { calendar.nextMonth(); }, true );\n\t\t\t\t\t// $scope.methods.actions.add( 'Previous Month', 'chevron_left', function() { calendar.previousMonth(); }, true );\n\t\t\t\t\t\n\t\t\t\t\tcalendar = {};\n\t\t\t\t\t\n\t\t\t\t\tfunction setup() {\n\t\t\t\t\t\tvar tmpDate = new Date(2016,4,1); // 5-1-16 is a sunday\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Calendar Variables\n\t\t\t\t\t\t\n\t\t\t\t\t\tcalendar.days = [];\n\t\t\t\t\t\tcalendar.monthNames = [];\n\t\t\t\t\t\t\n\t\t\t\t\t\tfor ( x = 1; x <= 7; x++ ) {\n\t\t\t\t\t\t\tcalendar.days[x-1] = $filter('date')( tmpDate.setDate( x ), 'EEE' ).substring(0,1);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tfor ( x = 0; x < 12; x++ ) {\n\t\t\t\t\t\t\tcalendar.monthNames[x] = $filter('date')( tmpDate.setMonth( x ), 'MMMM' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Calendar Layout\n\t\t\t\t\t\tcalendar.weeks = getCalendarLayout();\n\t\t\t\t\t\tcalendar.year = currentDate.getFullYear();\n\t\t\t\t\t\tcalendar.month = currentDate.getMonth();\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Today values\n\t\t\t\t\t\tcalendar.today = {};\n\t\t\t\t\t\tcalendar.today.month = currentDate.getMonth();\n\t\t\t\t\t\tcalendar.today.date = currentDate.getDate();\n\t\t\t\t\t\tcalendar.today.year = currentDate.getFullYear();\n\t\t\t\t\t\t\n\t\t\t\t\t\tcalendar.update();\n\t\t\t\t\t\t$scope.calendar = calendar;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t$scope.dateBackground = function( day ) {\n\t\t\t\t\t\treturn $rootScope.appConfig.theme + '-accent-500-' + (( day.month == calendar.today.month && calendar.year == calendar.today.year && day.date == calendar.today.date ) ? '1' : '0');\n\t\t\t\t\t};\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\tcalendar.nextMonth = function() {\n\t\t\t\t\t\tthis.month++;\n\t\t\t\t\t\tif ( this.month > 11 ) {\n\t\t\t\t\t\t\tthis.month = 0;\n\t\t\t\t\t\t\tthis.year++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.update();\n\t\t\t\t\t};\n\t\t\t\t\tcalendar.previousMonth = function() {\n\t\t\t\t\t\tthis.month--;\n\t\t\t\t\t\tif ( this.month < 0 ) {\n\t\t\t\t\t\t\tthis.month = 11;\n\t\t\t\t\t\t\tthis.year--;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.update();\n\t\t\t\t\t};\n\t\t\t\t\tcalendar.update = function() {\n\t\t\t\t\t\tcalendar.weeks = getCalendarLayout(calendar.month, calendar.year);\n\t\t\t\t\t\tvar includeDate = calendar.year === calendar.today.year && calendar.month === calendar.today.month;\n\t\t\t\t\t\t\n\t\t\t\t\t\t$scope.options.title = $filter('date')( new Date( calendar.year, calendar.month, calendar.today.date ) , includeDate ? 'longDate' : 'MMMM yyyy' );\n\t\t\t\t\t\t\n\t\t\t\t\t};\n\t\t\t\t\t\n\t\t\t\t\tcalendar.hover = function( day ) {\n\t\t\t\t\t\t//console.log( day );\n\t\t\t\t\t\t$rootScope.$broadcast('calendar-widget::hover', day );\n\t\t\t\t\t};\n\t\t\t\t\tcalendar.leave = function() {\n\t\t\t\t\t\t//console.log( day );\n\t\t\t\t\t\t$rootScope.$broadcast('calendar-widget::leave');\n\t\t\t\t\t};\n\t\t\t\t\t\n\t\t\t\t\t$rootScope.$on('$translateChangeEnd', function() {\n\t\t\t\t\t\t$timeout( function() { // $filter is slow to update\n\t\t\t\t\t\t\tconsole.log( 'UDPATING CALENDAR' );\n\t\t\t\t\t\t\tsetup();\n\t\t\t\t\t\t}, 100 );\n\t\t\t\t\t});\n\t\t\t\t\t\n\t\t\t\t\t$scope.$on('gridster-item-resized', function(item) {\n\t\t\t\t\t\tif ( $element[0].offsetHeight > 200 && $element[0].offsetWidth > 200 ) {\n\t\t\t\t\t\t\t$element.removeClass('calendar-small');\n\t\t\t\t\t\t\t$element.addClass('calendar-large');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$element.removeClass('calendar-large');\n\t\t\t\t\t\t\t$element.addClass('calendar-small');\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t});\n\t\t\t\t\t\n\t\t\t\t\t// Run INIT\n\t\t\t\t\t\n\t\t\t\t\tsetup();\n\t\t\t\t} ],\n\t\t\t\tlink: function ($scope, $element, attrs) {\n\t\t\t\t\t\n\t\t\t\t\t/*\n\t\t\t\t\tvar template = $compile(getTemplate(parseInt(attrs.month), parseInt(attrs.year), []))(this);\n\t\n\t\t\t\t\t$element.append(template);\n\t\t\t\t\t$compile($element.contents());\n\t\n\t\t\t\t\t*/\n\t\t\t\t}\n\t\t\t};\n\t\t} ]);\n})(window, window.angular);\n","(function(window, angular, undefined) {\n\t'use strict';\n\n\tangular.module('widgets.listings', [])\n\t\t.config( [ '$dashboardWidgetsProvider', function( $dashboardWidgetsProvider ) {\n\t\t\t$dashboardWidgetsProvider.register( 'listings', ['campaign'], {\n\t\t\t\tconfig: {\n\t\t\t\t},\n\t\t\t\toptions: {\n\t\t\t\t\thideTitle: false,\n\t\t\t\t\ttitle: ''\n\t\t\t\t},\n\t\t\t\tposition: {\n\t\t\t\t\tsizeX: 6,\n\t\t\t\t\tsizeY: 4,\n\t\t\t\t\tminSizeY: 5,\n\t\t\t\t\tminSizeX: 2\n\t\t\t\t}\n\t\t\t});\n\t\t} ])\n\t\t.directive('widgets.listings', [function( ) {\n\n\t\t\treturn {\n\t\t\t\treplace: true,\n\t\t\t\ttemplateUrl: '/templates/widgets/campaign/listings/listings.tpl.html',\n\n\t\t\t\tcontroller: [ '$scope', '$filter', 'NgTableParams', function( $scope, $filter, NgTableParams ) {\n\n\t\t\t\t\t$scope.tableParams = new NgTableParams({\n\t\t\t\t\t\tpage: 1, // show first page\n\t\t\t\t\t\tcount: $scope.campaignData.listings.get().length, // hides pager\n\n\t\t\t\t\t\tsorting: {\n\t\t\t\t\t\t\tduedate: 'desc' // initial sorting\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdebugMode: true\n\t\t\t\t\t}, {\n\t\t\t\t\t\ttotal: 0, // length of data\n\t\t\t\t\t\tgetData: function( params) {\n\t\t\t\t\t\t\tvar result = $scope.campaignData.listings.get();\n\n\t\t\t\t\t\t\tangular.forEach( result, function( value, key ) {\n\t\t\t\t\t\t\t\tvalue.duedate = new Date( value.duedate ).getTime();\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t// Filter on search term\n\t\t\t\t\t\t\tvar searchResult = $scope.searchTerm ? $filter('filter')( result, $scope.searchTerm ) : result;\n\t\t\t\t\t\t\tparams.total( searchResult.length );\n\n\t\t\t\t\t\t\t// Filter on sorting\n\t\t\t\t\t\t\tvar orderedData = params.sorting() ? $filter('orderBy')(searchResult, params.orderBy()) : searchResult;\n\n\t\t\t\t\t\t\t// Date Sorting\n\n\n\n\t\t\t\t\t\t\treturn orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count());\n\n\t\t\t\t\t\t},\n\t\t\t\t\t\t$scope: { $data: {} },\n\t\t\t\t\t\tcounts:[]\n\t\t\t\t\t});\n\n\t\t\t\t} ]\n\t\t\t};\n\t\t}]);\n})(window, window.angular);\n","(function(window, angular, undefined) {\n\t'use strict';\n\tvar map_id = 0;\n\t\n\t// var map_styles = '[{\"elementType\":\"geometry\",\"stylers\":[{\"color\":\"#f6f6f6\"}]},{\"elementType\":\"labels.icon\",\"stylers\":[{\"visibility\":\"off\"}]},{\"elementType\":\"labels.text.fill\",\"stylers\":[{\"color\":\"#616161\"}]},{\"elementType\":\"labels.text.stroke\",\"stylers\":[{\"color\":\"#f5f5f5\"}]},{\"featureType\":\"administrative.land_parcel\",\"elementType\":\"labels.text.fill\",\"stylers\":[{\"color\":\"#bdbdbd\"}]},{\"featureType\":\"poi\",\"stylers\":[{\"visibility\":\"off\"}]},{\"featureType\":\"poi\",\"elementType\":\"labels.text.fill\",\"stylers\":[{\"color\":\"#757575\"}]},{\"featureType\":\"poi.park\",\"elementType\":\"geometry\",\"stylers\":[{\"color\":\"#d9e5cf\"},{\"visibility\":\"on\"}]},{\"featureType\":\"poi.park\",\"elementType\":\"labels.text.fill\",\"stylers\":[{\"color\":\"#9e9e9e\"}]},{\"featureType\":\"road\",\"elementType\":\"geometry\",\"stylers\":[{\"color\":\"#ffffff\"}]},{\"featureType\":\"road.arterial\",\"elementType\":\"geometry.fill\",\"stylers\":[{\"color\":\"#ced2d6\"}]},{\"featureType\":\"road.arterial\",\"elementType\":\"labels.icon\",\"stylers\":[{\"visibility\":\"simplified\"}]},{\"featureType\":\"road.arterial\",\"elementType\":\"labels.text.fill\",\"stylers\":[{\"color\":\"#757575\"}]},{\"featureType\":\"road.highway\",\"elementType\":\"geometry\",\"stylers\":[{\"color\":\"#c5c8cc\"},{\"weight\":0.5}]},{\"featureType\":\"road.highway\",\"elementType\":\"labels.icon\",\"stylers\":[{\"visibility\":\"simplified\"}]},{\"featureType\":\"road.highway\",\"elementType\":\"labels.text.fill\",\"stylers\":[{\"color\":\"#616161\"}]},{\"featureType\":\"road.local\",\"elementType\":\"geometry\",\"stylers\":[{\"color\":\"#ced2d6\"},{\"weight\":0.5}]},{\"featureType\":\"road.local\",\"elementType\":\"labels.text.fill\",\"stylers\":[{\"color\":\"#9e9e9e\"}]},{\"featureType\":\"transit\",\"stylers\":[{\"visibility\":\"off\"}]},{\"featureType\":\"transit.line\",\"elementType\":\"geometry\",\"stylers\":[{\"color\":\"#e5e5e5\"}]},{\"featureType\":\"transit.station\",\"elementType\":\"geometry\",\"stylers\":[{\"color\":\"#eeeeee\"}]},{\"featureType\":\"water\",\"elementType\":\"geometry\",\"stylers\":[{\"color\":\"#bfd0e0\"}]},{\"featureType\":\"water\",\"elementType\":\"labels.text.fill\",\"stylers\":[{\"color\":\"#9e9e9e\"}]}]';\n\tangular.module('widgets.advertiserMap', [])\n\t\t.config( [ '$dashboardWidgetsProvider', function( $dashboardWidgetsProvider ) {\n\t\t\t$dashboardWidgetsProvider.register( 'advertiserMap', ['campaign'], {\n\t\t\t\tconfig: {\n\t\t\t\t},\n\t\t\t\toptions: {\n\t\t\t\t\thideTitle: false,\n\t\t\t\t\ttitle: ''\n\t\t\t\t},\n\t\t\t\tposition: {\n\t\t\t\t\tsizeX: 6,\n\t\t\t\t\tsizeY: 4,\n\t\t\t\t\tminSizeY: 5,\n\t\t\t\t\tminSizeX: 2\n\t\t\t\t}\n\t\t\t});\n\t\t} ])\n\t\t.directive('widgets.advertiserMap', [ '$timeout', '$http', 'NgMap', 'NgMapPool', 'ngMapStyles', function( $timeout, $http, NgMap, NgMapPool, ngMapStyles ) {\n\t\t\t\n\t\t\treturn {\n\t\t\t\treplace: true,\n\t\t\t\ttemplateUrl: '/templates/widgets/campaign/advertiserMap/advertiserMap.tpl.html',\n\t\t\t\t\n\t\t\t\tlink: function( $scope, $element ) {\n\t\t\t\t\t$scope.lat = 39.08;\n\t\t\t\t\t$scope.lang = -99.38;\n\t\t\t\t\t$scope.zoom = 5;\n\t\t\t\t\t$scope.mapStyle = ngMapStyles;\n\t\t\t\t\tvar campaign = $scope.campaignData.get();\n\t\t\t\t\t\n\t\t\t\t\t// Can't do this while the sheet is set to private, needs \"anyone with a link\" permissions. Otherwise it forces OAUTH 2.0\n\t\t\t\t\t// var shootersAPI = $http.get( 'https://sheets.googleapis.com/v4/spreadsheets/1OdkHOgD1v3lbR8Gs3wV-Ne8r80zVO3ctysBgqStV5qo/values:batchGet?dateTimeRenderOption=SERIAL_NUMBER&majorDimension=ROWS&ranges=B%3AI&ranges=O%3AO&valueRenderOption=FORMATTED_VALUE&key=AIzaSyDY5zr38rfPRoHn6PzwM8FVXclghcYxQJU' );\n\t\t\t\t\t//\n\t\t\t\t\t// shooterAPI.then( function( result ) {\n\t\t\t\t\t// \tconsole.log( result );\n\t\t\t\t\t// });\n\t\t\t\t\t\n\t\t\t\t\t$scope.id = 'advertiserMap_' + map_id++;\n\t\t\t\t\tvar _map;\n\t\t\t\t\tNgMap.getMap( $scope.id ).then( function( map ) {\n\t\t\t\t\t\t_map = map;\n\t\t\t\t\t\tvar tmpCenter;\n\t\t\t\t\t\twindow.google.maps.event.trigger(_map, 'resize');\n\t\t\t\t\t\t\n\t\t\t\t\t\t$scope.address = ( campaign.addressline1 || '' ) + ' ' + ( campaign.addressline2 || '' ) + ', ' + ( campaign.city || '' ) + ' ' + ( campaign.state || '' ) + ' ' + ( campaign.postalcode || '' );\n\t\t\t\t\t\t$scope.companyname = campaign.companyname;\n\t\t\t\t\t\t$scope.zoom = 14;\n\t\t\t\t\t\t\n\t\t\t\t\t});\n\t\t\t\t\t\n\t\t\t\t\t$scope.$on('gridster-item-transition-end', function() {\n\t\t\t\t\t\tif ( _map ) {\n\t\t\t\t\t\t\twindow.google.maps.event.trigger(_map, 'resize');\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t};\n\t\t} ]);\n\t\n\t\n})(window, window.angular );\n","(function(window, angular, undefined) {\n\t'use strict';\n\t\n\tangular.module('widgets.campaignEvents', [])\n\t\t.config( [ '$dashboardWidgetsProvider', function( $dashboardWidgetsProvider ) {\n\t\t\t$dashboardWidgetsProvider.register( 'campaignEvents', ['campaign'], {\n\t\t\t\tconfig: {\n\t\t\t\t},\n\t\t\t\toptions: {\n\t\t\t\t\thideTitle: false,\n\t\t\t\t\ttitle: ''\n\t\t\t\t},\n\t\t\t\tposition: {\n\t\t\t\t\tsizeX: 6,\n\t\t\t\t\tsizeY: 4,\n\t\t\t\t\tminSizeY: 5,\n\t\t\t\t\tminSizeX: 2\n\t\t\t\t}\n\t\t\t});\n\t\t} ])\n\t\t.directive('widgets.campaignEvents', [ 'widgets.base', function( widgetBase ) {\n\t\t\t\n\t\t\treturn {\n\t\t\t\t//replace: true,\n\t\t\t\ttemplateUrl: '/templates/widgets/campaign/events/events.tpl.html',\n\t\t\t\t\n\t\t\t\tcontroller: [ '$scope', 'vls.event.types', function( $scope, EVENT_TYPES ) {\n\t\t\t\t\t\n\t\t\t\t\t$scope.EVENTTYPES = EVENT_TYPES;\n\t\t\t\t\t\n\t\t\t\t\t$scope.entityType = EVENT_TYPES.CAMPAIGNS;\n\t\t\t\t\t$scope.entityId = $scope.campaignData.get('id');\n\t\t\t\t\t\n\t\t\t\t} ]\n\t\t\t};\n\t\t} ]);\n})(window, window.angular);\n","'use strict';\n\nangular.module('widgets.advertising.impressions', [])\n\t.config( [ '$dashboardWidgetsProvider', function( $dashboardWidgetsProvider ) {\n\t\t$dashboardWidgetsProvider.register( 'impressionsGraph', ['advertising'], {\n\t\t\tconfig: {\n\t\t\t\t// maxSizeY: 4\n\t\t\t},\n\t\t\toptions: {\n\t\t\t\thideTitle: false\n\t\t\t},\n\t\t\tposition: {\n\t\t\t\tsizeX: 6,\n\t\t\t\tsizeY: 4,\n\t\t\t\t\n\t\t\t\tminSizeY: 3\n\t\t\t},\n\t\t});\n\t} ])\n\t.directive('widgets.impressionsGraph', [ 'widgets.base', '$compile', '$timeout', function (widgetBase, $compile, $timeout) {\n\t\tvar optionConfig = {\n\t\t\ttitle: {\n\t\t\t\tlabel: 'Title',\n\t\t\t\ttype: 'text',\n\t\t\t\tvalue: '',\n\t\t\t\torder: 0 // Silly angular sorting of the object keys\n\t\t\t}\n\t\t\t//partners: widgetBase.getPartnersOption()\n\t\t};\n\n\t\treturn {\n\t\t\trestrict: 'A',\n\t\t\t//replace: true,\n\t\t\ttemplateUrl: '/templates/widgets/advertising/impressions/impressionsGraph.tpl.html',\n\t\t\tcontroller: [ '$rootScope', '$scope', '$element', function( $rootScope, $scope, $element ) {\n\t\t\t\tconsole.log( 'IN IMPRESSIONS' );\n\t\t\t\tangular.extend($scope, widgetBase);\n\t\t\t\t\n\t\t\t\t$scope.options = $scope.options || {};\n\t\t\t\t$scope.optionConfig = $scope.getOptionConfig( $scope, optionConfig );\n\n\t\t\t\tvar impressions = [\n [ 259,226,249,237,275,297,274,246,237,307,250,301,285,233,307,259,279,288,292,273,239,315,315,293,231,312,316,304,228,278,274,276,289,269,227,276,230,228,316,248,266,292,256,231,264,223,246,275,285,293 ],\n [ 59,74,57,77,98,99,52,83,91,88,50,67,57,83,98,66,85,59,69,80,94,96,75,89,48,53,74,93,76,92,79,69,48,92,85,94,99,98,74,57,81,72,66,86,86,96,79,93,71,92 ]\n\t\t\t\t];\n\t\t\t\tvar clicks = [\n [ 2,1,6,5,4,4,3,4,5,2,3,3,6,5,3,3,3,7,7,1,5,0,4,0,1,0,1,2,5,6,3,2,6,1,3,2,2,4,5,2,1,7,5,1,1,0,4,6,0,1 ],\n [ 1,1,1,2,1,1,0,2,0,1,1,0,1,2,2,1,1,1,1,1,2,1,0,1,0,1,1,2,0,0,1,1,0,1,1,1,1,2,1,1,0,0,1,2,2,1,1,1,1,1 ]\n\t\t\t\t];\n\n\n\n\t\t\t\tvar newChart, chartInstance, wasClick = false;\n\n\t\t\t\t$scope.graphOptions = {\n\t\t\t\t\tresizeUpdate: 0,\n\t\t\t\t\tanimation: false,\n\t\t\t\t\tmaintainAspectRatio: false,\n\t\t\t\t\tlegend: {\n\t\t\t\t\t\tdisplay: true,\n\t\t\t\t\t\tonClick: function( event, dataset ) {\n\t\t\t\t\t\t\tconsole.log( arguments );\n\t\t\t\t\t\t\tdataset.hidden = !dataset.hidden;\n\n\t\t\t\t\t\t\tvar type = dataset.text == 'Revisions' ? 'Rev' : 'New';\n\t\t\t\t\t\t\twasClick = true;\n\t\t\t\t\t\t\t$scope.options['show'+type] = !dataset.hidden;\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tscales: {\n\t\t\t\t\t\txAxes: [{\n //stacked: true,\n\t\t\t\t\t\t\tticks: {\n\t\t\t\t\t\t\t\tuserCallback: function(dataLabel, index) {\n\t\t\t\t\t\t\t\t\treturn index % 2 === 0 ? dataLabel : '';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}],\n\t\t\t\t\t\tyAxes: [{\n\t\t\t\t\t\t\ttype: 'linear', // only linear but allow scale type registration. This allows extensions to exist solely for log scale for instance\n\t\t\t\t\t\t\tdisplay: true,\n\t\t\t\t\t\t\tposition: 'left',\n\t\t\t\t\t\t\tid: 'impressions',\n\t\t\t\t\t\t\tticks: {\n\t\t\t\t\t\t\t\tmin: 0,\n\t\t\t\t\t\t\t\tmax: 400\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, {\n\t\t\t\t\t\t\ttype: 'linear', // only linear but allow scale type registration. This allows extensions to exist solely for log scale for instance\n\t\t\t\t\t\t\tdisplay: true,\n\t\t\t\t\t\t\tposition: 'right',\n\t\t\t\t\t\t\tid: 'clicks',\n //stacked: true,\n\t\t\t\t\t\t\tticks: {\n\t\t\t\t\t\t\t\tmin: 0,\n\t\t\t\t\t\t\t\tmax: 20\n\t\t\t\t\t\t\t},\n // grid line settings\n\t\t\t\t\t\t\tgridLines: {\n\t\t\t\t\t\t\t\tdrawOnChartArea: false, // only want the grid lines for one axis to show up\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}]\n\t\t\t\t\t}\n\n\t\t\t\t\t// scaleGridLineColor: 'rgba(255,255,255,.05)',\n\t\t\t\t\t// scaleLineColor: 'rgba(255,255,255,.1)',\n\t\t\t\t\t// scaleFontColor: 'rgba(255,255,255,.4)',\n\t\t\t\t};\n\n\n\t\t\t\tvar labels = [];\n\t\t\t\tvar today = new Date();\n\t\t\t\tfor ( var x = 0; x < impressions[0].length; x++ ) {\n\t\t\t\t\timpressions[0][x] = Math.floor( Math.random() * 100 ) + 223;\n\t\t\t\t\timpressions[1][x] = Math.floor( Math.random() * 60 ) + 40;\n\t\t\t\t\tclicks[0][x] = Math.round( impressions[0][x] * (Math.random() / 40) );\n\t\t\t\t\tclicks[1][x] = Math.round( impressions[1][x] * (Math.random() / 40) );\n\n // Setup the labels\n\t\t\t\t\tvar labelDate = new Date(today);\n\t\t\t\t\tlabelDate.setDate(today.getDate()-x);\n\t\t\t\t\tlabels.push( labelDate.getMonth()+1 + '/' + labelDate.getDate());\n\t\t\t\t}\n\n\t\t\t\tconsole.log( JSON.stringify( impressions ), JSON.stringify( clicks ) );\n\n\n\n\t\t\t\t$scope.refresh = function() {\n\t\n\t\t\t\t\t$scope.optionConfig = $scope.methods.options.getConfig( $scope, optionConfig );\n\n\t\t\t\t\t//$scope.graphOptions.scales = {\n // yAxes: [{\n // type: \"linear\", // only linear but allow scale type registration. This allows extensions to exist solely for log scale for instance\n // display: true,\n // position: \"left\",\n // id: \"impressions\",\n // }, {\n // type: \"linear\", // only linear but allow scale type registration. This allows extensions to exist solely for log scale for instance\n // display: true,\n // position: \"right\",\n // id: \"clicks\",\n // // grid line settings\n // gridLines: {\n // drawOnChartArea: false, // only want the grid lines for one axis to show up\n // },\n // }]\n // };\n\n\n\t\t\t\t\t$scope.graphData = {\n\t\t\t\t\t\tdatasets: {\n\t\t\t\t\t\t\tdatasets: [],\n\t\t\t\t\t\t\tlabels: []\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdata: [],\n\t\t\t\t\t\tcolors: [],\n\t\t\t\t\t\tseries: [],\n\t\t\t\t\t\tlabels: [],\n\t\t\t\t\t\ttype: 'bar',\n\n\t\t\t\t\t};\n\n\n\n\n\n\n\t\t\t\t\t$scope.series = [];\n\n\t\t\t\t\tvar impressionDataset = {\n\t\t\t\t\t\tlabel: '50k Impressions',\n\t\t\t\t\t\tdata: impressions[0],\n//\t\t\t\t\t\t\tborderColor: \"rgba(141, 198, 63, 0)\",\n\t\t\t\t\t\tborderWidth: 0,\n\n\t\t\t\t\t\ttension: 0,\n\t\t\t\t\t\tborderColor: 'rgba(0, 162, 231, 0.8)',\n\t\t\t\t\t\tbackgroundColor: 'rgba(0, 162, 231, 0.0)',\n\t\t\t\t\t\ttype: 'line',\n\t\t\t\t\t\tpointBackgroundColor: 'rgba(0, 162, 231, 0.8)',\n\t\t\t\t\t\tyAxisID: 'impressions'\n\t\t\t\t\t};\n\n\t\t\t\t\tvar impressionDataset2 = {\n\t\t\t\t\t\tlabel: '10k Impressions',\n\t\t\t\t\t\tdata: impressions[1],\n//\t\t\t\t\t\t\tborderColor: \"rgba(141, 198, 63, 0)\",\n\t\t\t\t\t\tborderWidth: 0,\n\n\t\t\t\t\t\ttension: 0,\n\t\t\t\t\t\tborderColor: 'rgba(231, 180, 0, 0.8)',\n\t\t\t\t\t\tbackgroundColor: 'rgba(0, 162, 231, 0.0)',\n\t\t\t\t\t\ttype: 'line',\n\t\t\t\t\t\tpointBackgroundColor: 'rgba(231, 180, 0, 0.8)',\n\t\t\t\t\t\tyAxisID: 'impressions'\n\t\t\t\t\t};\n\n\t\t\t\t\t$scope.graphData.datasets.datasets.push( impressionDataset );\n\t\t\t\t\t$scope.graphData.datasets.datasets.push( impressionDataset2 );\n\n\n\t\t\t\t\tvar clickDataset = {\n\t\t\t\t\t\tlabel: '50k Clicks',\n\t\t\t\t\t\tdata: clicks[0],\n//\t\t\t\t\t\t\tborderColor: 'rgba(50, 111, 168, 0)',\n\t\t\t\t\t\tborderWidth: 0,\n\n\t\t\t\t\t\ttension: 0,\n\t\t\t\t\t\tborderColor: 'rgba(0, 162, 231, 0.4)',\n\t\t\t\t\t\tbackgroundColor: 'rgba(0, 162, 231, 0.4)',\n\t\t\t\t\t\ttype: 'bar',\n\t\t\t\t\t\tyAxisID: 'clicks'\n\t\t\t\t\t};\n\n\t\t\t\t\tvar clickDataset2 = {\n\t\t\t\t\t\tlabel: '10k Clicks',\n\t\t\t\t\t\tdata: clicks[1],\n//\t\t\t\t\t\t\tborderColor: 'rgba(50, 111, 168, 0)',\n\t\t\t\t\t\tborderWidth: 0,\n\n\t\t\t\t\t\ttension: 0,\n\t\t\t\t\t\tborderColor: 'rgba(231, 180, 0, 0.4)',\n\t\t\t\t\t\tbackgroundColor: 'rgba(231, 180, 0, 0.4)',\n\t\t\t\t\t\ttype: 'bar',\n\t\t\t\t\t\tyAxisID: 'clicks'\n\t\t\t\t\t};\n\n\t\t\t\t\t$scope.graphData.datasets.datasets.push( clickDataset );\n\t\t\t\t\t$scope.graphData.datasets.datasets.push( clickDataset2 );\n\n\n\n\t\t\t\t\t$scope.graphData.datasets.labels = $scope.graphData.labels = labels;\n\n\n\t\t\t\t\tif (newChart) {\n\t\t\t\t\t\tnewChart.remove();\n\t\t\t\t\t}\n\t\t\t\t\tconsole.log( 'SETTING NEW CHART', $scope.graphData );\n\t\t\t\t\t$timeout(function() {\n\t\t\t\t\t\tconsole.log( 'BUILD CHART', $element[0].offsetHeight );\n\t\t\t\t\t\tnewChart = $compile('')($scope);\n\t\t\t\t\t\t\t//console.log( 'NEW CHART', angular.element($element[0].getElementsByClassName('widget-graph')[0]) );\n\t\t\t\t\t\tangular.element($element[0].getElementsByClassName('widget-graph')[0]).empty().append(newChart);\n\n\n\t\t\t\t\t}, 300);\n\n\t\t\t\t\t\t//$timeout( function() { $scope.graphData.type = 'bar'; }, 3000 );\n\n\t\t\t\t};\n\t\t\t\t$scope.refresh();\n\n\n\t\t\t\t$scope.$on('calendar-widget::hover', function( e, day ) {\n\t\t\t\t\tvar dayIndex = -1;\n\t\t\t\t\tfor ( var x = chartInstance.data.labels.length-1; x >= 0; x-- ) {\n\t\t\t\t\t\tif ( chartInstance.data.labels[x] == (day.month + 1) + '/' + day.date ) {\n\n\t\t\t\t\t\t\tdayIndex = x;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( dayIndex >= 0 ) {\n\t\t\t\t\t\tchartInstance.tooltip._active = [\n\t\t\t\t\t\t\tchartInstance.getDatasetMeta( 0 ).data[dayIndex],\n\t\t\t\t\t\t\tchartInstance.getDatasetMeta( 1 ).data[dayIndex],\n\t\t\t\t\t\t\tchartInstance.getDatasetMeta( 2 ).data[dayIndex],\n\t\t\t\t\t\t\tchartInstance.getDatasetMeta( 3 ).data[dayIndex]\n\t\t\t\t\t\t];\n\t\t\t\t\t\tchartInstance.tooltip.update();\n\t\t\t\t\t\tchartInstance.render();\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t$scope.$on('calendar-widget::leave', function( e ) {\n\t\t\t\t\tchartInstance.tooltip._active = [];\n\t\t\t\t\tchartInstance.tooltip.update();\n\t\t\t\t\tchartInstance.render();\n\t\t\t\t});\n\n\t\t\t\t$scope.$on('chart-create', function(e, chart) {\n\t\t\t\t\tchartInstance = chart;\n\t\t\t\t});\n\n\t\t\t\t$scope.$watch('widget.options', function( newVal ) {\n\t\t\t\t\tif ( !chartInstance ) { return; }\n\t\t\t\t\tif ( wasClick ) {\n\t\t\t\t\t\tchartInstance.data.datasets[0].hidden = !newVal.showNew;\n\t\t\t\t\t\tchartInstance.data.datasets[1].hidden = !newVal.showRev;\n\t\t\t\t\t\tchartInstance.update();\n\t\t\t\t\t\twasClick = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$scope.refresh();\n\t\t\t\t\t}\n\t\t\t\t}, true);\n\n\t\t\t\t$scope.impressions = [ impressions[0].reduce( function(i, v) { return i + v; } ), impressions[1].reduce( function(i, v) { return i + v; } ) ];\n\t\t\t\t$scope.clicks = [ clicks[0].reduce( function(i, v) { return i + v; } ), clicks[1].reduce( function(i, v) { return i + v; } ) ];\n\t\t\t\t$scope.geo = [ true, true ];\n\t\t\t\t$scope.keyword = [ true, false ];\n\t\t\t\t$scope.live = [ true, true ];\n\n\t\t\t\t$scope.newAds = [];\n\t\t\t\t$rootScope.$on( 'app.advertising:new', function( e, data ) {\n\t\t\t\t\tconsole.log( 'ADDING', data );\n\t\t\t\t\tif ( data.package !== 'custom' ) {\n\t\t\t\t\t\tdata.count = data.package;\n\t\t\t\t\t\tdata.package = data.package.slice( 0, -3 ) + 'k Impressions';\n\t\t\t\t\t\tdata.cost = data.count;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdata.count = data.customPackageAmount;\n\t\t\t\t\t\tdata.package = 'Custom Package';\n\t\t\t\t\t\tdata.cost = data.customPackageCost;\n\t\t\t\t\t}\n\t\t\t\t\t$scope.newAds.push( data );\n\t\t\t\t});\n\n\t\t\t} ],\n\t\t\tlink: function ($scope, $element, attrs) {\n\n\t\t\t\t/*\n\t\t\t\t var template = $compile(getTemplate(parseInt(attrs.month), parseInt(attrs.year), []))(this);\n\n\t\t\t\t $element.append(template);\n\t\t\t\t $compile($element.contents());\n\n\t\t\t\t */\n\t\t\t}\n\t\t};\n\t} ]);\n","/**\n * Created by briankelley on 7/24/17.\n */\n\n\n(function( window, angular, undefined) {\n\t'use strict';\n\t\n\tangular.module('vls.events.filter', [] )\n\t\t.config( [ '$mdThemingProvider', function( $mdThemingProvider ) {\n\t\t\t$mdThemingProvider.registerStyles('' +\n\t\t\t\t'.md-THEME_NAME-theme .md-button.filter:not(.special) { background: \\'{{background-hue-1}}\\'; }' +\n\t\t\t\t'');\n\t\t} ])\n\t\t.component('vlsEventFilter', vlsEventFilter() );\n\t\n\t\n\tfunction vlsEventFilter() {\n\t\tfunction vlsEventFilterController() {\n\t\t\tvar ctrl = this;\n\t\t\t\n\t\t\tctrl.$onInit = function() {};\n\t\t}\n\t\t\n\t\treturn {\n\t\t\tbindToController: true,\n\t\t\trequire: {\n\t\t\t\tvlsEventList: '^'\n\t\t\t},\n\t\t\tcontroller: [vlsEventFilterController],\n\t\t\tcontrollerAs: 'ctrl',\n\t\t\ttemplateUrl: '/templates/vls/events/filter/eventFilter.tpl.html'\n\t\t};\n\t}\n\t\n\t\n})( window, window.angular );\n","(function (window, angular, undefined) {\n\t'use strict';\n\n\t/**\n\t * @ngdoc directive\n\t * @class module:vls.events.eventList\n\t * @param {array} events - The array of event objects to display.\n\t * @param {object} extras - Any extra events needed.\n\t * @param {string|object} partner - Name, code, of id of a partner.\n\t * @param {string} entityid - Campaign or Listing ID\n\t * @param {'V\n\t */\n\n\tangular.module('vls.events.eventList', [])\n\t\t.directive('vlsEventList', [\n\t\t\t'vls.api',\n\t\t\t'vls.partner',\n\t\t\t'vls.vpaList',\n\t\t\t'vls.aes',\n\t\t\t'vls.ccs',\n\t\t\t'vls.event.entities',\n\t\t\t'vls.event.types',\n\t\t\t'vls.event.categories',\n\t\t\t'vls.event.text',\n\t\t\t'vls.event.listingStatus',\n\t\t\t'vls.scriptApprovalMap',\n\t\t\t'vls.genderMap',\n\t\t\t'vls.revisions.types',\n\t\t\tfunction (vlsApi, vlsPartner, vlsVpaList, vlsAES, vlsCCS, EVENT_ENTITIES, EVENT_TYPES, EVENT_CATEGORIES, EVENT_TEXT, LISTING_STATUS_EVENTS, SCRIPT_APPROVAL, GENDER_MAP, REVISION_TYPES) {\n\n\t\t\t\tvar voTalentRequest, partnerRequest;\n\t\t\t\tvar voTalent, partnerData;\n\t\t\t\tvar defaultFilter = {\n\t\t\t\t\tstatus: true, //\"1\",\n\t\t\t\t\tstatus_manual: true, //105?\n\t\t\t\t\tproduction: true, //\"3\",\n\t\t\t\t\tcoordination: true, //\"5\",\n\t\t\t\t\tcommunication: true, //\"7\"\n\t\t\t\t\tcomment: true, //\"9\"\n\t\t\t\t\tspecial: true //Special instructions\n\t\t\t\t};\n\t\t\t\tvar partner;\n\n\t\t\t\treturn {\n\t\t\t\t\ttemplateUrl: '/templates/vls/events/list/eventList.tpl.html',\n\t\t\t\t\tscope: {\n\t\t\t\t\t\tcampaignData: '=?',\n\t\t\t\t\t\textras: '=?',\n\t\t\t\t\t\tevents: '=?',\n\t\t\t\t\t\tpartner: '=?',\n\n\t\t\t\t\t\tentityid: '=',\n\t\t\t\t\t\tentitytype: '=',\n\t\t\t\t\t\tlimit: '@?',\n\t\t\t\t\t\tshowAddComment: '=?',\n\t\t\t\t\t\tshowFilter: '=?',\n\t\t\t\t\t\tfilter: '=?'\n\t\t\t\t\t},\n\t\t\t\t\ttransclude: true,\n\t\t\t\t\tcontrollerAs: 'ctrl',\n\t\t\t\t\tcontroller: ['$scope', '$q', '$timeout', 'vls.partner', 'vls.api', 'vls.event.entitycodes', function ($scope, $q, $timeout, vlsPartner, vlsApi, ENTITY_CODES) {\n\t\t\t\t\t\tvar ctrl = this;\n\t\t\t\t\t\tctrl.filter = angular.merge(defaultFilter, (ctrl.filter || {}));\n\t\t\t\t\t\tctrl.entityid = $scope.entityid;\n\t\t\t\t\t\tctrl.entitytype = $scope.entitytype;\n\t\t\t\t\t\tctrl.showCommentForm = false;\n\n\n\t\t\t\t\t\tconsole.log('EVENT LIST', $scope, this);\n\t\t\t\t\t\t// Defaults\n\t\t\t\t\t\t// ////////////////////////\n\n\n\t\t\t\t\t\tif ($scope.campaignData) {\n\t\t\t\t\t\t\tpartnerRequest = $scope.campaignData._defer;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (!$scope.partner) {\n\t\t\t\t\t\t\t\tthrow new Error('No Partner Code and campaign data');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tpartnerRequest = new vlsPartner($scope.partner);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!voTalentRequest) {\n\t\t\t\t\t\t\tvoTalentRequest = vlsApi.getUsersByRole(18); // 18 = VO Talent\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconsole.log('pre $q.all', voTalentRequest, partnerRequest);\n\t\t\t\t\t\tvar qAll = $q.all({vo: voTalentRequest, partner: partnerRequest});\n\t\t\t\t\t\tconsole.log('post $q.all', voTalentRequest, partnerRequest);\n\t\t\t\t\t\tqAll.then(function (responses) {\n\t\t\t\t\t\t\tconsole.log('$q.all', responses);\n\n\t\t\t\t\t\t\tpartnerData = responses.partner.data;\n\t\t\t\t\t\t\tpartner = responses.partner;\n\t\t\t\t\t\t\tvoTalent = responses.vo.data.items;\n\t\t\t\t\t\t\tinit();\n\n\t\t\t\t\t\t});\n\n\n\t\t\t\t\t\t$scope.eventTypes = EVENT_CATEGORIES;\n\n\t\t\t\t\t\t$scope.showAddComment = $scope.showAddComment === undefined ? true : $scope.showAddComment;\n\t\t\t\t\t\t$scope.showFilter = $scope.showFilter === undefined ? true : $scope.showFilter;\n\n\t\t\t\t\t\tif ($scope.campaignData) {\n\t\t\t\t\t\t\tvar listing = $scope.campaignData.listings.get($scope.entityid);\n\n\t\t\t\t\t\t\t$scope.extras = [$scope.campaignData.get('productionnotes'), $scope.campaignData.get('specialinstructions')];\n\t\t\t\t\t\t\tif (listing && listing.productionnotes) {\n\t\t\t\t\t\t\t\t$scope.extras.push(listing.productionnotes);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$scope.partnerCode = $scope.campaignData.partner.get('code');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar watchFn;\n\n\t\t\t\t\t\tfunction init(events) {\n\t\t\t\t\t\t\tconsole.log('!!!!!!!!!!!!_______!!!!!!!!!!!!!!', $scope.extras);\n\n\t\t\t\t\t\t\tif (!events) {\n\t\t\t\t\t\t\t\tevents = $scope.events;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\twatchFn = $scope.$watch('events', function (newVal, oldVal) {\n\t\t\t\t\t\t\t\tif (!angular.equals(newVal, oldVal)) {\n\t\t\t\t\t\t\t\t\twatchFn();\n\t\t\t\t\t\t\t\t\tinit(newVal);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t$scope.parsedEvents = parseEvents(events, $scope.entitytype, $scope.entityid);\n\n\t\t\t\t\t\t\tif ($scope.extras) {\n\t\t\t\t\t\t\t\tfor (var x = 0; x < $scope.extras.length; x++) {\n\t\t\t\t\t\t\t\t\tvar tempEvent;\n\n\t\t\t\t\t\t\t\t\tif ($scope.extras[x] && angular.isArray( $scope.extras[x]) && $scope.extras[x].length ) {\n\t\t\t\t\t\t\t\t\t\ttempEvent = {\n\t\t\t\t\t\t\t\t\t\t\t//date: event.eventdate,\n\t\t\t\t\t\t\t\t\t\t\t//user: event.createdby,\n\t\t\t\t\t\t\t\t\t\t\tclassName: 'special',\n\t\t\t\t\t\t\t\t\t\t\ttext: $scope.extras[x], // Make this an array for adding other events to the same \"event group\"\n\t\t\t\t\t\t\t\t\t\t\trecordid: $scope.entityid,\n\t\t\t\t\t\t\t\t\t\t\trecordtypeid: 0,\n\t\t\t\t\t\t\t\t\t\t\teventtype: 0\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t} else if ($scope.extras[x]) {\n\t\t\t\t\t\t\t\t\t\ttempEvent = {\n\t\t\t\t\t\t\t\t\t\t\t//date: event.eventdate,\n\t\t\t\t\t\t\t\t\t\t\t//user: event.createdby,\n\t\t\t\t\t\t\t\t\t\t\tclassName: 'special',\n\t\t\t\t\t\t\t\t\t\t\ttext: [parseComment($scope.extras[x])], // Make this an array for adding other events to the same \"event group\"\n\t\t\t\t\t\t\t\t\t\t\trecordid: $scope.entityid,\n\t\t\t\t\t\t\t\t\t\t\trecordtypeid: 0,\n\t\t\t\t\t\t\t\t\t\t\teventtype: 0\n\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (tempEvent) {\n\t\t\t\t\t\t\t\t\t\t$scope.parsedEvents.unshift( tempEvent );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// $scope.parsedEvents = Object.assign( {}, $scope.parsedEvents, );\n\t\t\t\t\t\t\tconsole.log('events', $scope.parsedEvents);\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t//\n\t\t\t\t\t\t// $scope.fn = {};\n\t\t\t\t\t\t// $scope.fn.showEvent = function( event ) {\n\t\t\t\t\t\t// \tconsole.log( \"SHOW\", event.className, ctrl.filter[event.className] );\n\t\t\t\t\t\t// \treturn ctrl.filter[event.className];\n\t\t\t\t\t\t// };\n\t\t\t\t\t\t//\n\t\t\t\t\t\t// $scope.fn.listEvent = function( event ) {\n\t\t\t\t\t\t// \treturn listEvent( event, $scope.entitytype, $scope.entityid );\n\t\t\t\t\t\t// };\n\t\t\t\t\t\t//\n\t\t\t\t\t\t// $scope.$watch( 'ctrl.filter', function() {\n\t\t\t\t\t\t// \t$timeout(angular.noop, 350, true);\n\t\t\t\t\t\t// }, true);\n\t\t\t\t\t\t//\n\n\t\t\t\t\t}]\n\t\t\t\t};\n\n\n\t\t\t\tfunction getItemText(type) {\n\t\t\t\t\t////console.log( type, type.toString(), this.eventText, this );\n\t\t\t\t\tif (type.toString() == '324') {\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t}\n\t\t\t\t\treturn EVENT_TEXT[type.toString()] || 'Comment entered';\n\t\t\t\t}\n\n\t\t\t\tfunction getItemType(type) {\n\t\t\t\t\tvar val = EVENT_CATEGORIES[type.toString().substring(0, 1)] || 'comment';\n\t\t\t\t\tif (105 == type) {\n\t\t\t\t\t\tval += '_manual';\n\t\t\t\t\t}\n\t\t\t\t\treturn val;\n\t\t\t\t}\n\n\t\t\t\tfunction getValueString(item) {\n\n\t\t\t\t\tvar vpalist = vlsVpaList.get();\n\t\t\t\t\tvar aeList = vlsAES.getAEList();\n\t\t\t\t\tvar ccList = vlsCCS.getCCList();\n\n\n\t\t\t\t\tvar getListingStatusEvent = function (eid) {\n\t\t\t\t\t\tif (eid == 'True' || eid == 'False') {\n\t\t\t\t\t\t\treturn eid == 'True' ? 'Yes' : 'No';\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn LISTING_STATUS_EVENTS[eid] || eid;\n\t\t\t\t\t};\n\n\t\t\t\t\tvar getVONameFromId = function (id) {\n\t\t\t\t\t\tconsole.log('GET VO TALENT', voTalent);\n\t\t\t\t\t\tvar vo = voTalent.find(function (item) {\n\t\t\t\t\t\t\treturn parseInt(item.id) === parseInt(id);\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn vo && vo.fullname;\n\t\t\t\t\t};\n\n\t\t\t\t\tvar o, n, oldValue, newValue;\n\t\t\t\t\tif (item.category == 3) {\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t}\n\n\t\t\t\t\tvar escapeHTMLEncode = function (str) {\n\t\t\t\t\t\tvar div = document.createElement('div');\n\t\t\t\t\t\tvar text = document.createTextNode(str);\n\t\t\t\t\t\tdiv.appendChild(text);\n\t\t\t\t\t\treturn div.innerHTML;\n\t\t\t\t\t};\n\n\t\t\t\t\to = item.oldvalue ? escapeHTMLEncode(item.oldvalue) : false; // id or string\n\t\t\t\t\tn = item.newvalue ? escapeHTMLEncode(item.newvalue) : false; // id or string\n\n\t\t\t\t\tvar preposition = 'to';\n\n\t\t\t\t\tswitch (item.eventtypeid) {\n\t\t\t\t\t\tcase 110:\n\t\t\t\t\t\tcase 130:\n\t\t\t\t\t\tcase 140:\n\t\t\t\t\t\t\tnewValue = getListingStatusEvent(o);\n\t\t\t\t\t\t\toldValue = '';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 122: // VO Checked out\n\t\t\t\t\t\t\t// Swap values for formatting and readability\n\t\t\t\t\t\t\tnewValue = o;\n\t\t\t\t\t\t\toldValue = n;\n\t\t\t\t\t\t\tpreposition = 'assigned to compilation';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 324:\n\t\t\t\t\t\t\tnewValue = n;\n\t\t\t\t\t\t\toldValue = o;\n\n\n\t\t\t\t\t\t\tvar newName = '';\n\t\t\t\t\t\t\tvar oldName = '';\n\t\t\t\t\t\t\tif (n && !o) {\n\t\t\t\t\t\t\t\tnewName = getVONameFromId(n) || 'A non-VO Talent (user id ' + n + ')';\n\t\t\t\t\t\t\t\tpreposition = ' assigned as VO Talent';\n\t\t\t\t\t\t\t\treturn newName + preposition;\n\t\t\t\t\t\t\t} else if (o && !n) {\n\t\t\t\t\t\t\t\toldName = getVONameFromId(o);\n\t\t\t\t\t\t\t\tpreposition = ' removed as VO Talent';\n\t\t\t\t\t\t\t\treturn oldName + preposition;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tnewName = getVONameFromId(n);\n\t\t\t\t\t\t\t\toldName = getVONameFromId(o);\n\t\t\t\t\t\t\t\treturn 'VO Talent changed from ' + oldName + ' ' + preposition + ' ' + newName;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 504: // Product Type Change\n\t\t\t\t\t\t\tvar oldProd = partner.getProductType(o);\n\t\t\t\t\t\t\tvar newProd = partner.getProductType(n);\n\t\t\t\t\t\t\toldValue = oldProd ? oldProd.productName : o;\n\t\t\t\t\t\t\tnewValue = newProd ? newProd.productName : n;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 520: // Revision\n\t\t\t\t\t\t\toldValue = o;\n\t\t\t\t\t\t\tnewValue = n;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 521: // Revision Type\n\t\t\t\t\t\t\toldValue = REVISION_TYPES[o];\n\t\t\t\t\t\t\tnewValue = REVISION_TYPES[n];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 526: // Script Requirements changed\n\t\t\t\t\t\t\toldValue = SCRIPT_APPROVAL[o || '0'];\n\t\t\t\t\t\t\tnewValue = SCRIPT_APPROVAL[n || '0'];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 527: // Gender Preference changed\n\t\t\t\t\t\t\toldValue = GENDER_MAP[o || '0'];\n\t\t\t\t\t\t\tnewValue = GENDER_MAP[n || '0'];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 550: // VPA Change\n\t\t\t\t\t\t\tangular.forEach(vpalist, function (item, i) {\n\t\t\t\t\t\t\t\tif (item.id.toString() == o.toString()) {\n\t\t\t\t\t\t\t\t\toldValue = item.fullname;\n\t\t\t\t\t\t\t\t} else if (item.id.toString() == n.toString()) {\n\t\t\t\t\t\t\t\t\tnewValue = item.fullname;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 551: // CC Change\n\t\t\t\t\t\t\tconsole.log( \"PARTNER CC\", vlsPartner );\n\t\t\t\t\t\t\tangular.forEach(ccList, function (item, i) {\n\t\t\t\t\t\t\t\tif (item.id.toString() == o.toString()) {\n\t\t\t\t\t\t\t\t\toldValue = item.fullname;\n\t\t\t\t\t\t\t\t} else if (item.id.toString() == n.toString()) {\n\t\t\t\t\t\t\t\t\tnewValue = item.fullname;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 552: // AE Change\n\t\t\t\t\t\t\t////console.log( this.partnercode, config.aeList );\n\t\t\t\t\t\t\tangular.forEach(aeList, function (item, i) {\n\t\t\t\t\t\t\t\t////console.log( item, i );\n\t\t\t\t\t\t\t\tif (item.id.toString() == o.toString()) {\n\t\t\t\t\t\t\t\t\toldValue = item.firstname + ' ' + item.lastname;\n\t\t\t\t\t\t\t\t} else if (item.id.toString() == n.toString()) {\n\t\t\t\t\t\t\t\t\tnewValue = item.firstname + ' ' + item.lastname;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\toldValue = getListingStatusEvent(o);\n\t\t\t\t\t\t\tnewValue = getListingStatusEvent(n);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!oldValue && !newValue) {\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!oldValue) {\n\t\t\t\t\t\treturn '' + newValue + '';\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!newValue) {\n\t\t\t\t\t\treturn '' + oldValue + '';\n\t\t\t\t\t}\n\n\t\t\t\t\treturn '' + oldValue + ' ' + preposition + ' ' + newValue + '';\n\t\t\t\t}\n\n\t\t\t\tfunction getText(event) {\n\t\t\t\t\t// console.log( 'Get Text 1', event )\n\t\t\t\t\t// console.log( 'Get Text 2', getItemText(event.eventtypeid) )\n\t\t\t\t\t// console.log( 'Get Text 3', getValueString(event) )\n\t\t\t\t\t// console.log( 'Get Text 4', getItemType(event.eventtypeid) )\n\n\t\t\t\t\tvar itemText = getItemText(event.eventtypeid) + ' ';\n\t\t\t\t\tvar valueText = getValueString(event);\n\n\t\t\t\t\t// console.log( 'Get Text 5', parseComment(valueText) )\n\n\t\t\t\t\tif (getItemType(event.eventtypeid) == 'comment') { // Move comments below for easier reading\n\t\t\t\t\t\titemText = ''; // Remove \"Comment Entered\", its only clutter\n\t\t\t\t\t\tvalueText = parseComment(valueText);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn itemText + valueText;\n\n\t\t\t\t}\n\n\t\t\t\tfunction parseComment(valueText) {\n\t\t\t\t\tvalueText = valueText.replace(/\\n||<br.*?>/ig, '
'); // new lines, line breaks\n\t\t\t\t\tvalueText = valueText.replace(/

|<p>/ig, '

'); // paragraph tags (double br for readability)\n\t\t\t\t\tvalueText = valueText.replace(/<\\\\p>|<\\\\p>/ig, ''); // paragraph tags end\n\t\t\t\t\tvalueText = valueText.replace(/ /ig, ' '); // non breaking spaces (for readability)\n\t\t\t\t\treturn valueText;\n\t\t\t\t}\n\n\t\t\t\tfunction parseEvents(events, type, id) {\n\t\t\t\t\tvar parsedEvents = [];\n\t\t\t\t\tconsole.log('EventList.parseEvents', events, type, id);\n\n\n\t\t\t\t\tangular.forEach(events, function (event, i) {\n\t\t\t\t\t\tconsole.log('EventList.parseEvents event', event);\n\t\t\t\t\t\tif (listEvent(event, type, id)) {\n\t\t\t\t\t\t\tif (parsedEvents[event.groupid]) {\n\t\t\t\t\t\t\t\tparsedEvents[event.groupid].text.push(getText(event));\n\t\t\t\t\t\t\t\tif (parsedEvents[event.groupid].eventtype === '7') {\n\t\t\t\t\t\t\t\t\tparsedEvents[event.groupid].eventtype = event.eventtypeid.toString().substring(0, 1); // Lets try to remove \"communication\" from the event group since this is 99.9% attached to a comment\n\t\t\t\t\t\t\t\t\tparsedEvents[event.groupid].className = getItemType(event.eventtypeid);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// console.log('EventList.parseEvents event 1', event);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvar tempEvent = {\n\t\t\t\t\t\t\t\t\tdate: event.eventdate,\n\t\t\t\t\t\t\t\t\tuser: event.createdby,\n\t\t\t\t\t\t\t\t\tclassName: getItemType(event.eventtypeid),\n\t\t\t\t\t\t\t\t\ttext: [getText(event)],\n\t\t\t\t\t\t\t\t\trecordid: event.recordid,\n\t\t\t\t\t\t\t\t\trecordtypeid: event.recordtypeid,\n\t\t\t\t\t\t\t\t\teventtype: event.eventtypeid.toString().substring(0, 1)\n\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t// console.log('EventList.parseEvents event 2', event);\n\n\t\t\t\t\t\t\t\tparsedEvents[event.groupid] = tempEvent;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\treturn parsedEvents;\n\t\t\t\t}\n\n\t\t\t\tfunction listEvent(event, type, id) {\n\t\t\t\t\t//console.log( event.recordid, id, '::', event.recordtypeid, type, event );\n\t\t\t\t\treturn (event.recordid == id || !event.recordid) && (event.recordtypeid == type || !event.recordtypeid);\n\t\t\t\t}\n\n\t\t\t}]);\n\n})(window, window.angular);\n","(function( window, angular, undefined) {\n\t'use strict';\n\t\n\tangular.module('vls.events.event', [])\n\t\t.component('vlsEvent', vlsEvent() );\n\t\n\tfunction vlsEvent() {\n\t\t\n\t\tfunction vlsEventController(){\n\t\t\tvar ctrl = this;\n\t\t\tctrl.$onInit = function() {};\n\t\t}\n\t\t\n\t\treturn {\n\t\t\tbindings: {\n\t\t\t\tevent: '<',\n\t\t\t},\n\t\t\tcontroller: [vlsEventController],\n\t\t\tcontrollerAs: 'ctrl',\n\t\t\ttemplateUrl: '/templates/vls/events/event/event.tpl.html',\n\t\t\t\n\t\t};\n\t}\n})( window, window.angular );","/**\n * Created by briankelley on 7/24/17.\n */\n\n(function( window, angular, undefined) {\n\t'use strict';\n\n\tangular.module('vls.events.comment', [] )\n\t\t.component('vlsEventComment', vlsEventComment() );\n\n\n\n\tfunction vlsEventComment() {\n\t\tfunction vlsEventCommentController( $keyboardShortcuts ) {\n\t\t\tvar ctrl = this;\n\t\t\tctrl.$onInit = function() {\n\t\t\t\tctrl.vlsEventList.showCommentForm = false;\n\t\t\t\tctrl.vlsEventList.eventComment = true;\n\n\t\t\t\tctrl.shortcuts = $keyboardShortcuts([{\n\t\t\t\t\tkey: 'Escape',\n\t\t\t\t\taction: function( evt ) {\n\t\t\t\t\t\tctrl.vlsEventList.showCommentForm = false;\n\t\t\t\t\t}\n\t\t\t\t}]);\n\t\t\t\tctrl.shortcuts.pause();\n\t\t\t};\n\n\t\t\tvar showCommentForm\n\t\t\tctrl.$doCheck = function() {\n\t\t\t\tif ( showCommentForm !== ctrl.vlsEventList.showCommentForm ) {\n\t\t\t\t\tif (ctrl.vlsEventList.showCommentForm) {\n\t\t\t\t\t\tctrl.shortcuts.resume();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tctrl.shortcuts.pause();\n\t\t\t\t\t}\n\t\t\t\t\tshowCommentForm = ctrl.vlsEventList.showCommentForm;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tctrl.$onDestroy = function() {\n\t\t\t\tctrl.shortcuts.remove();\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tbindings: {\n\t\t\t\tcampaignId: '<',\n\t\t\t\tbillingCode: '<',\n\t\t\t\tpartnerCode: '<'\n\t\t\t},\n\t\t\trequire: {\n\t\t\t\tvlsEventList: '^'\n\t\t\t},\n\t\t\tcontroller: ['$keyboardShortcuts', vlsEventCommentController],\n\t\t\tcontrollerAs: 'ctrl',\n\t\t\ttemplateUrl: '/templates/vls/events/comment/eventComment.tpl.html'\n\t\t};\n\t}\n\n})( window, window.angular );\n\n\n","/**\n * @ngdoc overview\n * @name ui.grid.customScroller\n *\n * @description\n *\n * #ui.grid.customScroller\n *\n * This module provides a custom grid scroller that works as an alternative to the native scroll event that\n * uses touch events to ensure that grid scrolling works without a lag on devices.\n *\n */\nangular.module('ui.grid.customScroller', ['ui.grid']);\n","/**\n * @ngdoc service\n * @name ui.grid.customScroller.service:uiGridScroller\n * @description uiGridScroller is an alternative to the native scroll event that uses touch events to ensure that grid scrolling works\n * without a lag on devices.\n * @param {object} element Element being scrolled\n * @param {function} scrollHandler Function that needs to be called when scrolling happens.\n */\nangular\n\t.module('ui.grid.customScroller')\n\t.factory('uiGridScroller', ['$window', 'gridUtil', 'uiGridScrollerConstants',\n\t\tfunction($window, gridUtil, uiGridScrollerConstants) {\n\n\t\t\t/**\n\t\t\t * @ngdoc object\n\t\t\t * @name isAnimating\n\t\t\t * @propertyOf ui.grid.customScroller.service:uiGridScroller\n\t\t\t * @description Keeps track of whether or not the scrolling is animating.\n\t\t\t */\n\t\t\tuiGridScroller.isAnimating = false;\n\n\t\t\t/**\n\t\t\t * @ngdoc object\n\t\t\t * @name initiated\n\t\t\t * @propertyOf ui.grid.customScroller.service:uiGridScroller\n\t\t\t * @description Keeps track of which type of scrolling event has been initiated\n\t\t\t * and sets it to NONE, when no event is being triggered.\n\t\t\t */\n\t\t\tuiGridScroller.initiated = uiGridScrollerConstants.scrollType.NONE;\n\n\t\t\tfunction uiGridScroller(element, scrollHandler) {\n\t\t\t\tvar pointX, pointY, startTime, startX, startY, maxScroll,\n\t\t\t\t\tscroller = element[0].children[0],\n\t\t\t\t\tinitType = {\n\t\t\t\t\t\ttouchstart: uiGridScrollerConstants.scrollType.TOUCHABLE,\n\t\t\t\t\t\ttouchmove: uiGridScrollerConstants.scrollType.TOUCHABLE,\n\t\t\t\t\t\ttouchend: uiGridScrollerConstants.scrollType.TOUCHABLE,\n\t\t\t\t\t\ttouchcancel: uiGridScrollerConstants.scrollType.TOUCHABLE\n\n\t\t\t\t\t\t// TODO: Enhance this scroller to support mouse and pointer events for better performance in slow machines\n\t\t\t\t\t\t// mousedown: uiGridScrollerConstants.scrollType.MOUSE,\n\t\t\t\t\t\t// mousemove: uiGridScrollerConstants.scrollType.MOUSE,\n\t\t\t\t\t\t// mouseup: uiGridScrollerConstants.scrollType.MOUSE,\n\t\t\t\t\t\t//\n\t\t\t\t\t\t// pointerdown: uiGridScrollerConstants.scrollType.POINTER,\n\t\t\t\t\t\t// pointermove: uiGridScrollerConstants.scrollType.POINTER,\n\t\t\t\t\t\t// pointerup: uiGridScrollerConstants.scrollType.POINTER\n\t\t\t\t\t};\n\n\t\t\t\tif ('onmousedown' in $window) {\n\t\t\t\t\telement.on('scroll', scrollHandler);\n\t\t\t\t}\n\n\t\t\t\tif (gridUtil.isTouchEnabled()) {\n\t\t\t\t\telement.on('touchstart', start);\n\t\t\t\t\telement.on('touchmove', move);\n\t\t\t\t\telement.on('touchcancel', end);\n\t\t\t\t\telement.on('touchend', end);\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * @ngdoc function\n\t\t\t\t * @name start\n\t\t\t\t * @methodOf ui.grid.customScroller.service:uiGridScroller\n\t\t\t\t * @description Gets the current coordinates and time, as well as the target coordinate\n\t\t\t\t * and initializes the scrolling event\n\t\t\t\t * @param {object} event The event object\n\t\t\t\t */\n\t\t\t\tfunction start(event) {\n\t\t\t\t\tvar point = event.touches ? event.touches[0] : event;\n\n\t\t\t\t\telement.off('scroll', scrollHandler);\n\n\t\t\t\t\tuiGridScroller.initiated = initType[event.type];\n\n\t\t\t\t\tpointX = point.pageX;\n\t\t\t\t\tpointY = point.pageY;\n\n\t\t\t\t\tstartTime = (new Date()).getTime();\n\t\t\t\t\tstartX = element[0].scrollLeft;\n\t\t\t\t\tstartY = element[0].scrollTop;\n\t\t\t\t\tuiGridScroller.isAnimating = false;\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * @ngdoc function\n\t\t\t\t * @name calcNewMove\n\t\t\t\t * @methodOf ui.grid.customScroller.service:uiGridScroller\n\t\t\t\t * @description Calculates the next position of the element for a particular axis\n\t\t\t\t * based on the delta.\n\t\t\t\t * @param {number} scrollPos The original position of the element.\n\t\t\t\t * @param {number} delta The amount the pointer moved.\n\t\t\t\t * @param {number} axis The original position.\n\t\t\t\t * @returns {number} The next position of the element.\n\t\t\t\t */\n\t\t\t\tfunction calcNewMove(scrollPos, delta, axis) {\n\t\t\t\t\tvar newMove = scrollPos + delta;\n\n\t\t\t\t\tif (newMove < 0 || newMove > getMaxScroll()[axis]) {\n\t\t\t\t\t\tnewMove = newMove < 0 ? 0 : getMaxScroll()[axis];\n\t\t\t\t\t}\n\n\t\t\t\t\treturn newMove;\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * @ngdoc function\n\t\t\t\t * @name move\n\t\t\t\t * @methodOf ui.grid.customScroller.service:uiGridScroller\n\t\t\t\t * @description Calculates what the next move should be and starts the scrolling.\n\t\t\t\t * @param {object} event The event object\n\t\t\t\t */\n\t\t\t\tfunction move(event) {\n\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\tif (initType[event.type] !== uiGridScroller.initiated) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar newX, newY, timestamp = (new Date()).getTime(),\n\t\t\t\t\t\tpoint = event.touches ? event.touches[0] : event,\n\t\t\t\t\t\tdeltaX = pointX - point.pageX,\n\t\t\t\t\t\tdeltaY = pointY - point.pageY;\n\n\t\t\t\t\tpointX = point.pageX;\n\t\t\t\t\tpointY = point.pageY;\n\n\t\t\t\t\tnewX = calcNewMove(element[0].scrollLeft, deltaX, 'x');\n\t\t\t\t\tnewY = calcNewMove(element[0].scrollTop, deltaY, 'y');\n\n\t\t\t\t\tif (timestamp - startTime > 300) {\n\t\t\t\t\t\tstartTime = (new Date()).getTime();\n\t\t\t\t\t\tstartX = newX;\n\t\t\t\t\t\tstartY = newY;\n\t\t\t\t\t}\n\n\t\t\t\t\ttranslate(newX, newY, element);\n\n\t\t\t\t\tscrollHandler.call(null, event);\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * @ngdoc function\n\t\t\t\t * @name end\n\t\t\t\t * @methodOf ui.grid.customScroller.service:uiGridScroller\n\t\t\t\t * @description Finishes the scrolling animation.\n\t\t\t\t * @param {object} event The event object\n\t\t\t\t */\n\t\t\t\tfunction end(event) {\n\t\t\t\t\tif (initType[event.type] !== uiGridScroller.initiated) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar duration = (new Date()).getTime() - startTime,\n\t\t\t\t\t\tmomentumX = momentum(element[0].scrollLeft, startX, duration),\n\t\t\t\t\t\tmomentumY = momentum(element[0].scrollTop, startY, duration),\n\t\t\t\t\t\tnewX = momentumX.destination,\n\t\t\t\t\t\tnewY = momentumY.destination,\n\t\t\t\t\t\ttime = Math.max(momentumX.duration, momentumY.duration);\n\n\t\t\t\t\tanimate(newX, newY, time, element, scrollHandler.bind(null, event));\n\n\t\t\t\t\tuiGridScroller.initiated = uiGridScrollerConstants.scrollType.NONE;\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * @ngdoc function\n\t\t\t\t * @name momentum\n\t\t\t\t * @methodOf ui.grid.customScroller.service:uiGridScroller\n\t\t\t\t * @description Calculates current momentum of the scrolling based on the current position of the element,\n\t\t\t\t * its initial position and the duration of this movement.\n\t\t\t\t * @param {number} curr The current position of the element\n\t\t\t\t * @param {number} start The original position of the element\n\t\t\t\t * @param {number} time The time it has taken for the element to get to its current position.\n\t\t\t\t * @returns {object} An object with the next position for the element and how long\n\t\t\t\t * that animation should take.\n\t\t\t\t */\n\t\t\t\tfunction momentum(curr, start, time) {\n\t\t\t\t\tcurr = Math.abs(curr);\n\t\t\t\t\tstart = Math.abs(start);\n\n\t\t\t\t\tvar distance = curr - start,\n\t\t\t\t\t\tspeed = Math.abs(distance) / time,\n\t\t\t\t\t\tdestination = curr + (speed * speed) / (2 * uiGridScrollerConstants.deceleration) * (distance >= 0 ? 1 : -1),\n\t\t\t\t\t\tduration = speed / uiGridScrollerConstants.deceleration;\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdestination: Math.round(destination),\n\t\t\t\t\t\tduration: duration\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * @ngdoc function\n\t\t\t\t * @name getMaxScroll\n\t\t\t\t * @methodOf ui.grid.customScroller.service:uiGridScroller\n\t\t\t\t * @description Gets the limit of the scrolling for both the x and y positions.\n\t\t\t\t * @returns {object} An object with the x and y scroll limits.\n\t\t\t\t */\n\t\t\t\tfunction getMaxScroll() {\n\t\t\t\t\tif (!maxScroll) {\n\t\t\t\t\t\tmaxScroll = {\n\t\t\t\t\t\t\tx: scroller.offsetWidth - element[0].clientWidth,\n\t\t\t\t\t\t\ty: scroller.offsetHeight - element[0].clientHeight\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\treturn maxScroll;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * @ngdoc function\n\t\t\t * @name translate\n\t\t\t * @methodOf ui.grid.customScroller.service:uiGridScroller\n\t\t\t * @description Updates the element's scroll position.\n\t\t\t * @param {number} x The horizontal position of the element\n\t\t\t * @param {number} y The vertical position of the element\n\t\t\t * @param {object} element The element being updated\n\t\t\t */\n\t\t\tfunction translate(x, y, element) {\n\t\t\t\telement[0].scrollLeft = x;\n\t\t\t\telement[0].scrollTop = y;\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * @ngdoc function\n\t\t\t * @name easeClb\n\t\t\t * @methodOf ui.grid.customScroller.service:uiGridScroller\n\t\t\t * @description Calculates the ease resolution base on the current animation times.\n\t\t\t * @param {number} relPoint The time the animation is taking between frames.\n\t\t\t * @returns {number} The ideal ease time.\n\t\t\t */\n\t\t\tfunction easeClb(relPoint) {\n\t\t\t\treturn relPoint * ( 2 - relPoint );\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * @ngdoc function\n\t\t\t * @name calcNewPos\n\t\t\t * @methodOf ui.grid.customScroller.service:uiGridScroller\n\t\t\t * @description Calculates the new position of the element based on where it started, the animation time\n\t\t\t * and where it is ultimately supposed to end up.\n\t\t\t * @param {number} destPos The destination.\n\t\t\t * @param {number} easeRes The ideal ease time.\n\t\t\t * @param {number} startPos The original position.\n\t\t\t * @returns {number} The next position of the element.\n\t\t\t */\n\t\t\tfunction calcNewPos(destPos, easeRes, startPos) {\n\t\t\t\treturn ( destPos - Math.abs(startPos) ) * easeRes + Math.abs(startPos);\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * @ngdoc function\n\t\t\t * @name animate\n\t\t\t * @methodOf ui.grid.customScroller.service:uiGridScroller\n\t\t\t * @description Calculates the ease resolution base on the current animation times.\n\t\t\t * @param {number} destX The coordinate of the x axis that the scrolling needs to animate to.\n\t\t\t * @param {number} destY The coordinate of the y axis that the scrolling needs to animate to.\n\t\t\t * @param {number} duration The animation duration\n\t\t\t * @param {object} element The element being updated\n\t\t\t * @param {function} callback Function that needs to be called when the animation is done.\n\t\t\t */\n\t\t\tfunction animate(destX, destY, duration, element, callback) {\n\t\t\t\tvar startTime = (new Date()).getTime(),\n\t\t\t\t\tstartX = element[0].scrollLeft,\n\t\t\t\t\tstartY = element[0].scrollTop,\n\t\t\t\t\tdestTime = startTime + duration;\n\n\t\t\t\tuiGridScroller.isAnimating = true;\n\n\t\t\t\tnext();\n\n\t\t\t\tfunction next() {\n\t\t\t\t\tvar now = (new Date()).getTime(),\n\t\t\t\t\t\trelPoint, easeRes, newX, newY;\n\n\t\t\t\t\tif (now >= destTime) {\n\t\t\t\t\t\tuiGridScroller.isAnimating = false;\n\t\t\t\t\t\ttranslate(destX, destY, element);\n\t\t\t\t\t\telement.on('scroll', callback);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\trelPoint = (now - startTime) / duration;\n\n\t\t\t\t\teaseRes = easeClb(relPoint);\n\n\t\t\t\t\tnewX = calcNewPos(destX, easeRes, startX);\n\t\t\t\t\tnewY = calcNewPos(destY, easeRes, startY);\n\n\t\t\t\t\ttranslate(newX, newY, element);\n\n\t\t\t\t\tcallback.call();\n\n\t\t\t\t\tif (uiGridScroller.isAnimating && angular.isFunction(window.requestAnimationFrame)) {\n\t\t\t\t\t\twindow.requestAnimationFrame(next);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telement.on('scroll', callback);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn uiGridScroller;\n\t\t}]);\n","/**\n * @ngdoc directive\n * @name ui.grid.customScroller.directive:uiGridCustomScroller\n * @element div\n * @restrict A\n *\n * @description Updates the grid to use the gridScroller instead of the jquery scroll event\n *\n * @example\n \n \n var app = angular.module('app', ['ngTouch', 'ui.grid', 'ui.grid.pinning', 'ui.grid.customScroller']);\n app.controller('MainCtrl', ['$scope', '$log', function ($scope, $log) {\n $scope.gridOptions = {};\n $scope.gridOptions.columnDefs = [\n { name:'id', width: 50, enablePinning:false },\n { name:'name', width: 100, pinnedLeft:true },\n { name:'age', width: 100, pinnedRight:true },\n { name:'address.street', width: 150 },\n { name:'address.city', width: 150 },\n { name:'address.state', width: 50 },\n { name:'address.zip', width: 50 },\n { name:'company', width: 100 },\n { name:'email', width: 100 },\n { name:'phone', width: 200 },\n { name:'about', width: 300 },\n { name:'friends[0].name', displayName:'1st friend', width: 150 },\n { name:'friends[1].name', displayName:'2nd friend', width: 150 },\n { name:'friends[2].name', displayName:'3rd friend', width: 150 },\n ];\n $scope.gridOptions.data = generateData(500);\n\n function generateData(total) {\n \tvar data = [];\n\n \tfor(var i = 0; i < total; i++) {\n \t\tdata.push({\n \t\t\tid: i+1,\n \t\t\tname: 'John Doe',\n \t\t\tage: Math.floor(Math.random() * 70) + 1,\n \t\t\taddress: {\n \t\t\t\tstreet: i + 1 + ' Newbury St.',\n \t\t\t\tcity: 'Boston',\n \t\t\t\tstate: 'MA',\n \t\t\t\tzip: '02115'\n \t\t\t},\n \t\t\tcompany: 'Newbury Comics',\n \t\t\temail: 'john.doe@newbury.com',\n \t\t\tabout: 'John has many doppelgangers',\n \t\t\tfriends: [\n \t\t\t\t{name: 'Jane Doe'},\n \t\t\t\t{name: 'Joe Doe'},\n \t\t\t\t{name: 'Jake Doe'}\n \t\t\t]\n \t\t});\n \t}\n\n \treturn data;\n }\n }]);\n \n \n

\n
\n
\n \n \n */\nangular\n\t.module('ui.grid.customScroller')\n\t.directive('uiGridCustomScroller', ['uiGridScroller',\n\t\tfunction(uiGridScroller) {\n\t\t\treturn {\n\t\t\t\trestrict: 'A',\n\t\t\t\trequire: 'uiGrid',\n\t\t\t\tscope: false,\n\t\t\t\tcompile: function() {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tpre: function($scope, $elm, $attrs, uiGridCtrl) {\n\t\t\t\t\t\t\t// initializes custom scroller to be the gridScroller when options exist\n\t\t\t\t\t\t\tif (uiGridCtrl.grid && uiGridCtrl.grid.options) {\n\t\t\t\t\t\t\t\tuiGridCtrl.grid.options.customScroller = uiGridScroller;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpost: angular.noop\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t};\n\t\t}]);\n","/**\n * @ngdoc object\n * @name ui.grid.customScroller.constant:uiGridScrollerConstants\n *\n * @description Constants for use with the uiGridScroller\n */\nangular\n\t.module('ui.grid.customScroller')\n\t.constant('uiGridScrollerConstants', {\n\t\t/**\n\t\t * @ngdoc object\n\t\t * @name deceleration\n\t\t * @propertyOf ui.grid.customScroller.constant:uiGridScrollerConstants\n\t\t * @description Used in {@link ui.grid.customScroller.service:uiGridScroller#momentum uiGridScroller.momentum}\n\t\t * to calculates current momentum of the scrolling.\n\t\t */\n\t\tdeceleration: 0.0007,\n\n\t\t/**\n\t\t * @ngdoc object\n\t\t * @name scrollType\n\t\t * @propertyOf ui.grid.customScroller.constant:uiGridScrollerConstants\n\t\t * @description Used in {@link ui.grid.customScroller.service:uiGridScroller uiGridScroller},\n\t\t * to the type of scroll event currently in progress\n\t\t *\n\t\t * Available options are:\n\t\t * - `uiGridScrollerConstants.scrollEvent.NONE` - set when no scroll events are being triggered\n\t\t * - `uiGridScrollerConstants.scrollEvent.TOUCHABLE` - set when touchstart, touchmove or touchend are triggered\n\t\t * - `uiGridScrollerConstants.scrollEvent.MOUSE` - set when mousedown, mousemove or mouseup are triggered\n\t\t * - `uiGridScrollerConstants.scrollEvent.POINTER` - set when pointerdown, pointermove or pointerup are triggered\n\t\t */\n\t\tscrollType: {\n\t\t\tNONE: 0,\n\t\t\tTOUCHABLE: 1,\n\t\t\tMOUSE: 2,\n\t\t\tPOINTER: 3\n\t\t}\n\t});\n","(function(window, angular, undefined) {\n\t'use strict';\n\n\t/**\n\t * @classdesc\n\t * ```html\n\t * \n\t *\t\n\t * \n\t * ```\n\t * @ngdoc directive\n\t * @class app-sidebar-nav\n\t * @memberOf module:app.sidebar\n\t * @restrict EA\n\t * @requires module:app.sidebar.app-sidebar\n\t * @param {object} nav - The navigation object.\n\t * @param {number} [depth=0] - The depth of the nav. This sets the background color of the UL. Default = 0.\n\t */\n\tangular.module('app.sidebar.nav',[\n\t\t'app.sidebar.nav.item'\n\t])\n\t\t.config( [ '$mdThemingProvider', function( $mdThemingProvider ) {\n\t\t\t$mdThemingProvider.registerStyles('' +\n\t\t\t\t// Sidebar\n\t\t\t\t'.md-THEME_NAME-theme app-sidebar .md-sidenav-left, .md-THEME_NAME-theme app-sidebar[location=\"left\"] .min-max-toggle button, ' +\n\t\t\t\t'.md-THEME_NAME-theme app-sidebar[location=\"left\"] .min-max-toggle .md-icon-button:hover ' +\n\t\t\t\t'.md-THEME_NAME-theme app-sidebar[location=\"left\"] .min-max-toggle .md-icon-button:focus ' +\n\t\t\t\t'{ background-color: \\'{{primary-800}}\\' !important; }' +\n\t\t\t\t'.md-THEME_NAME-theme app-sidebar .md-sidenav-left app-sidebar-nav app-sidbar-nav md-list { background: \\'{{primary-700}}\\'; }' +\n\t\t\t\t'.md-THEME_NAME-theme app-sidebar .md-sidenav-right, .md-THEME_NAME-theme app-sidebar[location=\"right\"] .min-max-toggle button, ' +\n\t\t\t\t'.md-THEME_NAME-theme app-sidebar[location=\"right\"] .min-max-toggle .md-icon-button:hover ' +\n\t\t\t\t'.md-THEME_NAME-theme app-sidebar[location=\"right\"] .min-max-toggle .md-icon-button:focus ' +\n\t\t\t\t'{ background-color: \\'{{primary-400}}\\' !important; }' +\n\n\t\t\t\t'');\n\t\t} ])\n\t\t.component( 'appSidebarNav', appSidebarNav() );\n\n\tfunction appSidebarNav() {\n\n\t\tfunction appSidebarNavController( $log, $state, vlsUser ){\n\t\t\tvar ctrl = this;\n\n\t\t\tctrl.$onInit = function() {\n\t\t\t\t// $log.log('appSidebarNav', ctrl );\n\t\t\t\tctrl.depth = ctrl.depth || 0;\n\t\t\t};\n\n\t\t\tctrl.canAccess = function( navItem ) {\n\t\t\t\treturn vlsUser.isAuthorized( $state.get( navItem.state ) ) ;\n\t\t\t}\n\n\t\t}\n\n\t\treturn {\n\t\t\tbindings: {\n\t\t\t\tnav: '<',\n\t\t\t\tdepth: '<'\n\t\t\t},\n\t\t\trequire: {\n\t\t\t\tappSidebar: '^^appSidebar',\n\t\t\t},\n\t\t\tcontroller: [ '$log', '$state', 'vls.user', appSidebarNavController ],\n\t\t\tcontrollerAs: 'ctrl',\n\t\t\t//template: \"
\",\n\t\t\ttemplateUrl: '/templates/app/sidebar/nav/nav.tpl.html'\n\t\t};\n\t}\n\n\n})(window, window.angular);\n","(function(window, angular, undefined) {\n\t'use strict';\n\t\n\t\n\t/**\n\t * @classdesc\n\t * ```html\n\t * \n\t *\t\n\t * \n\t * ```\n\t * @ngdoc directive\n\t * @class app-sidebar-data\n\t * @memberOf module:app.sidebar\n\t * @restrict EA\n\t * @requires module:app.sidebar.app-sidebar\n\t * @param {object} data - The data object.\n\t */\n\tangular.module('app.sidebar.data',[\n\t\t'app.sidebar.data.section'\n\t])\n .component( 'appSidebarData', appSidebarData() );\n\n\tfunction appSidebarData() {\n\n\t\tfunction appSidebarDataController( $scope, $log ){\n\t\t\tvar ctrl = this;\n\t\t\tctrl._data;\n\t\t\t\n\t\t\tctrl.$onInit = function() {\n\t\t\t\t// $scope.$watch( function(){ return ctrl.data; }, function( newVal, oldVal ) {\n\t\t\t\t// console.log( \"DATA WATCH\", newVal, oldVal );\n\t\t\t\t// });\n\t\t\t\t// $log.log('appSidebarData 1', ctrl );\n\t\t\t\tctrl._data = angular.merge( {}, ctrl.data );\n\t\t\t};\n\t\t\tctrl.$onChanges = function() {\n\t\t\t\tctrl._data = angular.merge( {}, ctrl.data );\n\t\t\t}\n\n\t\t}\n\n\t\treturn {\n\t\t\tbindings: {\n\t\t\t\tdata: '<'\n\t\t\t},\n\t\t\tcontroller: [ '$scope', '$log', appSidebarDataController ],\n\t\t\tcontrollerAs: 'ctrl',\n //template: \"
\",\n\t\t\ttemplateUrl: '/templates/app/sidebar/data/data.tpl.html'\n\t\t};\n\t}\n\n\n})(window, window.angular);\n","/**\n * Created by briankelley on 8/8/17.\n */\n\n(function( window, angular, undefined) {\n\t'use strict';\n\tangular.module( 'app.controllers.management.playlistVideosController', [] )\n\t\t.config([ '$stateProvider', 'USER_ROLES', function( $stateProvider, USER_ROLES ) {\n\t\t\t$stateProvider\n\t\t\t\t/*.state('app.management.playlists.new',{\n\t\t\t\t\turl: '/new',\n\t\t\t\t\ttemplateUrl: '/templates/management/playlists/playlistVideos/playlistVideos.tpl.html',\n\t\t\t\t\tcontroller: 'playlistVideosController',\n\t\t\t\t\tcontrollerAs: 'ctrl',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tauthorizedRoles: [USER_ROLES.admin],\n\t\t\t\t\t\tdisplayLoader: false\n\t\t\t\t\t},\n\t\t\t\t\tresolve: {\n\t\t\t\t\t\tplaylist: function() { return true; },\n\t\t\t\t\t\tplaylistVideosData: function() { return true; }\n\t\t\t\t\t}\n\t\t\t\t})*/\n\t\t\t\t.state('app.management.playlists.playlistVideos',{\n\t\t\t\t\turl: '/:playlistId',\n\t\t\t\t\ttemplateUrl: '/templates/management/playlists/playlistVideos/playlistVideos.tpl.html',\n\t\t\t\t\tcontroller: 'playlistVideosController',\n\t\t\t\t\tcontrollerAs: 'ctrl',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tauthorizedRoles: [USER_ROLES.admin],\n\t\t\t\t\t\tdisplayLoader: false\n\t\t\t\t\t},\n\t\t\t\t\tresolve: {\n\t\t\t\t\t\tplaylist: [ '$q', '$stateParams', 'playlists.api', function( $q, $stateParams, playlistsApi ) {\n\t\t\t\t\t\t\treturn playlistsApi.getPlaylist( $stateParams.playlistId );\n\t\t\t\t\t\t} ],\n\t\t\t\t\t\tplaylistVideosData: [ '$q', 'vls.api', 'playlist', function( $q, vlsApi, playlist ) {\n\t\t\t\t\t\t\tvar defer = $q.defer();\n\t\t\t\t\t\t\tvar playlistVideosData = {};\n\t\t\t\t\t\t\tif ( playlist.PlaylistVideos.length ) {\n\t\t\t\t\t\t\t\tvlsApi.getListings( {\n\t\t\t\t\t\t\t\t\tcolumns: 'id,videolistingid,videocode,productname,listingcode,companyname',\n\t\t\t\t\t\t\t\t\tsortcolumn: 'videocode'\n\t\t\t\t\t\t\t\t}, {\n\t\t\t\t\t\t\t\t\tvideolistingidfn: playlist.PlaylistVideos.map( function ( item ) {\n\t\t\t\t\t\t\t\t\t\treturn item.VideoListingId;\n\t\t\t\t\t\t\t\t\t} ),\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t.then( function ( response ) {\n\t\t\t\t\t\t\t\t\t\tangular.forEach( response.data.items, function ( item ) {\n\t\t\t\t\t\t\t\t\t\t\tplaylistVideosData[ item.id ] = item;\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tdefer.resolve( playlistVideosData );\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tdefer.resolve( [] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\treturn defer.promise;\n\t\t\t\t\t\t} ]\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t;\n\t\t} ])\n\t\t.controller( 'playlistVideosController', [ '$rootScope', '$timeout', '$stateParams', '$q', '$mdDialog', 'playlists.api', 'vls.api', 'playlist', 'playlistVideosData', function( $rootScope, $timeout, $stateParams, $q, $mdDialog, playlistsApi, vlsApi, playlist, playlistVideosData ) {\n\t\t\tconsole.log( 'ABCDEFG 1', $stateParams.playlistId );\n\t\t\t\n\t\t\tif ( !$stateParams.playlistId ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar ctrl = this;\n\t\t\tctrl.playlist = playlist;\n\t\t\tctrl.playlistVideosData = playlistVideosData;\n\t\t\tctrl.playlistHasChanged = false;\n\t\t\n\t\t\t$timeout( function(){\n\t\t\t\tctrl.playlistHasChanged = !ctrl.playlist.LastPublishedAt;\n\t\t\t}, 100);\n\t\t\t\n\t\t\tconsole.log( 'ABCDEFG', ctrl.playlist.LastPublishedAt, ctrl.playlist.LastPublishedAt === null, ctrl.playlistHasChanged );\n\t\t\t\n\t\t\tassignIndexAsPosition( ctrl.playlist.PlaylistVideos );\n\t\t\t\n\t\t\tctrl.sortableOptions = {\n\t\t\t\torderChanged: function() {\n\t\t\t\t\tassignIndexAsPosition( ctrl.playlist.PlaylistVideos );\n\t\t\t\t\tctrl.savePlaylist( ctrl.playlist ) ;\n\t\t\t\t}\n\t\t\t};\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\tctrl.editVideo = function( $event, video ) {\n\t\t\t\tif ( video ) {\n\t\t\t\t\t$mdDialog.show( {\n\t\t\t\t\t\tcontrollerAs: 'ctrl',\n\t\t\t\t\t\tbindToController: true,\n\t\t\t\t\t\tlocals: {\n\t\t\t\t\t\t\tvideo: video\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcontroller: function () {\n\t\t\t\t\t\t\tconsole.log( 'EDIT PLAYLIST MODAl', this );\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttemplateUrl: '/templates/management/playlists/playlistVideos/editPlaylistVideo.tpl.html',\n\t\t\t\t\t\ttargetEvent: $event,\n\t\t\t\t\t\tclickOutsideToClose: true\n\t\t\t\t\t} )\n\t\t\t\t\t.then( function ( answer ) {\n\t\t\t\t\t\n\t\t\t\t\t}, function () {\n\t\t\t\t\t\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t};\n\t\t\t\n\t\t\tctrl.removeVideo = function( $event, videoId ) {\n\t\t\t\tvar removeIndex = getArrayIndex( ctrl.playlist.PlaylistVideos, 'Id', videoId );\n\t\t\t\t// var removedVideo = ctrl.playlist.PlaylistVideos.splice( removeIndex, 1 );\n\t\t\t\t\n\t\t\t\tvar newPlaylist = angular.merge( ctrl.playlist );\n\t\t\t\tnewPlaylist.PlaylistVideos[removeIndex].MarkAsDeleted = true;\n\t\t\t\t\n\t\t\t\tplaylistsApi.savePlaylist( newPlaylist ).then( function() {\n\t\t\t\t\tgetPlaylist( newPlaylist.Id );\n\t\t\t\t\t\n\t\t\t\t\t$rootScope.$emit( 'alert', {\n\t\t\t\t\t\ttype: 'success',\n\t\t\t\t\t\ttitle: 'Video Removed!',\n\t\t\t\t\t\tmsg: 'The video has been removed!',\n\t\t\t\t\t\ttimeout: 15000,\n\t\t\t\t\t\taction: {\n\t\t\t\t\t\t\tfn: function( data ){\n\t\t\t\t\t\t\t\tconsole.log( 'Undo Delete Video', data.index, data.playlistId );\n\t\t\t\t\t\t\t\tvar playlist = ctrl.playlists[ getArrayIndex( ctrl.playlists, 'Id', data.playlistId ) ];\n\t\t\t\t\t\t\t\tplaylist.PlaylistVideos.splice( data.video.Position, 0, data.video );\n\t\t\t\t\t\t\t\tassignIndexAsPosition( playlist.PlaylistVideos );\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\tvideo: removedVideo[0],\n\t\t\t\t\t\t\t\tplaylistId: ctrl.playlist.Id\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tlink: 'Undo'\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tassignIndexAsPosition( ctrl.playlist.PlaylistVideos );\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t};\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\tctrl.savePlaylist = function( playlist ) {\n\t\t\t\treturn playlistsApi.savePlaylist( playlist ).then( function( response ) {\n\t\t\t\t\tconsole.log( 'SAVED' );\n\t\t\t\t\tctrl.playlistHasChanged = true;\n\t\t\t\t});\n\t\t\t};\n\t\t\t\n\t\t\tctrl.publishPlaylist = function( playlistId ) {\n\t\t\t\treturn playlistsApi.publishPlaylist( playlistId );\n\t\t\t};\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\tctrl.toggleView = function() {\n\t\t\t\tctrl.detailedView = !ctrl.detailedView;\n\t\t\t\t\n\t\t\t};\n\t\t\t\n\t\t\t\n\t\t\t// Search Functions and Variables\n\t\t\t//////////////////////////////////////////\n\t\t\tctrl.addListings = {};\n\t\t\tctrl.addListings.transformChip = function (chip) {\n\t\t\t\tconsole.log( 'CHIP ', chip );\n\t\t\t\treturn chip;\n\t\t\t};\n\t\t\t\n\t\t\tctrl.addListings.queryStr = '';\n\t\t\tctrl.addListings.selectedListing = null;\n\t\t\tctrl.addListings.selectedListings = [];\n\t\t\t\n\t\t\tctrl.addListings.queryFn = function( str ) {\n\t\t\t\tconsole.log( 'QUERY FN ', arguments );\n\t\t\t\tif ( str && str.length > 3 ) {\n\t\t\t\t\treturn vlsApi.getListings( {\n\t\t\t\t\t\tcolumns: 'id,videolistingid,videocode,productname,listingcode,companyname,partnerid,clientid',\n\t\t\t\t\t\tsortcolumn: 'videocode'\n\t\t\t\t\t}, {\n\t\t\t\t\t\tpartnercodefn: [ctrl.playlist.PartnerCode],\n\t\t\t\t\t\t\t// videolistingidfn: playlistToLoad.PlaylistVideos.map( function( item ) { return item.VideoListingId; }),\n\t\t\t\t\t\ttextfn: str\n\t\t\t\t\t} )\n\t\t\t\t\t\t.then( function ( response ) {\n\t\t\t\t\t\t\tresponse.data.items.map( function( item ) {\n\t\t\t\t\t\t\t\titem.value = '['+ item.videocode + '] ' + item.companyname + ' - ' + item.productname;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\treturn response.data.items;\n\t\t\t\t\t\t} );\n\t\t\t\t} else {\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\t\t\t};\n\t\t\t\n\t\t\tctrl.addListings.addVideosToPlaylist = function( videos ) {\n\t\t\t\tconsole.log('ADD LISTINGS ', videos );\n\t\t\t\tif ( !videos || !videos.length ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvar newPlaylist = angular.merge( {}, ctrl.playlist );\n\t\t\t\tangular.forEach( videos, function( video ) {\n\t\t\t\t\tconsole.log( 'ADDING LISTING', video );\n\t\t\t\t\tif ( newPlaylist.PlaylistVideos.findIndex( function( playlistItem ) { return video.id === playlistItem.VideoListingId; } ) === -1) {\n\t\t\t\t\t\tnewPlaylist.PlaylistVideos.push( {\n\t\t\t\t\t\t\tPlaylistId: ctrl.playlist.Id,\n\t\t\t\t\t\t\tClientId: video.clientid,\n\t\t\t\t\t\t\tVideoListingId: video.id,\n\t\t\t\t\t\t\tposition: newPlaylist.PlaylistVideos.length\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tctrl.savePlaylist( newPlaylist ).then( function() {\n\t\t\t\t\tctrl.addListings.selectedListings = [];\n\t\t\t\t\tgetPlaylist( newPlaylist.Id );\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t}, function( response ) {\n\t\t\t\t\t$rootScope.$emit('alert',{\n\t\t\t\t\t\ttype: 'danger',\n\t\t\t\t\t\ttitle: 'Error',\n\t\t\t\t\t\tmsg: response.data\n\t\t\t\t\t});\n\t\t\t\t} );\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t};\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\tfunction getArrayIndex( arr, field, match ) {\n\t\t\t\tconsole.log( 'getArrayIndex', arr, field, match );\n\t\t\t\treturn arr.findIndex( function( item, i ) { return item[field] === match; });\n\t\t\t}\n\t\t\t\n\t\t\tfunction assignIndexAsPosition( playlist ) {\n\t\t\t\tconsole.log( 'ASSIGNING INDEX AS POSITION', playlist );\n\t\t\t\tangular.forEach( playlist, function( item, i ) {\n\t\t\t\t\titem.Position = i;\n\t\t\t\t});\n\t\t\t}\n\t\t\t\n\t\t\tfunction updatePlaylistVideosData() {\n\t\t\t\tconsole.log*('UPDATED VIDEOS start') ;\n\t\t\t\t\n\t\t\t\t// var defer = $q.defer();\n\t\t\t\tvar playlistVideosData = {};\n\t\t\t\treturn vlsApi.getListings({\n\t\t\t\t\tcolumns: 'id,videolistingid,videocode,productname,listingcode,companyname',\n\t\t\t\t\tsortcolumn: 'videocode'\n\t\t\t\t},{\n\t\t\t\t\tvideolistingidfn: ctrl.playlist.PlaylistVideos.map( function( item ) { return item.VideoListingId; }),\n\t\t\t\t}).then( function( response ) {\n\t\t\t\t\tangular.forEach( response.data.items, function( item ) {\n\t\t\t\t\t\tplaylistVideosData[item.id] = item;\n\t\t\t\t\t});\n\t\t\t\t\tconsole.log('UPDATED VIDEOS ', playlistVideosData) ;\n\t\t\t\t\treturn playlistVideosData;\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\t// return defer.promise;\n\t\t\t}\n\t\t\tfunction getPlaylist( id ) {\n\t\t\t\tplaylistsApi.getPlaylist( id ).then( function( response ) {\n\t\t\t\t\tctrl.playlist = playlist = response;\n\t\t\t\t\tupdatePlaylistVideosData().then( function( response ) {\n\t\t\t\t\t\tctrl.playlistVideosData = response;\n\t\t\t\t\t\t// assignIndexAsPosition( ctrl.playlist );\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t} ]);\n\t\n})( window, window.angular );\n","(function( window, angular, undefined) {\n\t'use strict';\n\t\n\tangular.module( 'app.controllers.management.pages.pageController', [] )\n\t\t.config([ '$stateProvider', 'USER_ROLES', function( $stateProvider, USER_ROLES ) {\n\t\t\t$stateProvider\n\t\t\t\t.state('app.management.pages.page',{\n\t\t\t\t\turl: '/:pageId',\n\t\t\t\t\ttemplateUrl: '/templates/management/pages/page/page.tpl.html',\n\t\t\t\t\tcontroller: 'pageController',\n\t\t\t\t\tcontrollerAs: 'ctrl',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tauthorizedRoles: [USER_ROLES.admin],\n\t\t\t\t\t\tdisplayLoader: false\n\t\t\t\t\t},\n\t\t\t\t\tresolve: {\n\t\t\t\t\t\tplaylists: [ 'playlists.api', function( playlistsApi ) {\n\t\t\t\t\t\t\treturn playlistsApi.playlists();\n\t\t\t\t\t\t} ],\n\t\t\t\t\t\tpage: [ '$stateParams', 'playlists.api', function( $stateParams, playlistsApi ) {\n\t\t\t\t\t\t\treturn playlistsApi.getPage( $stateParams.pageId );\n\t\t\t\t\t\t} ]\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t});\n\t\t} ])\n\t\t.controller('pageController',[ '$scope', '$mdColors', '$timeout', 'playlists.api', 'playlists', 'page', function( $scope, $mdColors, $timeout, playlistsApi, playlists, page ) {\n\t\t\tvar ctrl = this;\n\t\t\t\n\t\t\tctrl.selectPlaylist = function( playlist ) {\n\t\t\t\tconsole.log( playlist, ctrl.playlists );\n\t\t\t\tif ( typeof playlist === 'string' ) {\n\t\t\t\t\tctrl.selectPlaylist( ctrl.playlists.find(function( item ) {\n\t\t\t\t\t\treturn item.Id === playlist;\n\t\t\t\t\t}));\n\t\t\t\t} else {\n\t\t\t\t\tif ( ctrl.isPlaylistSelected( playlist ) ) {\n\t\t\t\t\t\tctrl.activePlaylist = undefined;\n\t\t\t\t\t\tctrl.pageOptions.grid.url = '';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tctrl.activePlaylist = playlist;\n\t\t\t\t\t\tctrl.pageOptions.grid.url = playlistsApi.getPlaylistUrl( playlist );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t\t\n\t\t\tctrl.savePage = function( data ) {\n\t\t\t\tvar saveObj = Object.assign( {}, ctrl.page );\n\t\t\t\t\n\t\t\t\tsaveObj.PlaylistId = ctrl.activePlaylist.Id;\n\t\t\t\tsaveObj.Columns = ctrl.pageOptions.grid.columns;\n\t\t\t\tsaveObj.DisplayType = ctrl.pageOptions.grid.position;\n\t\t\t\tplaylistsApi.savePage( saveObj );\n\t\t\t};\n\t\t\t\n\t\t\tctrl.isPlaylistSelected = function( playlist ) {\n\t\t\t\treturn ctrl.activePlaylist && ctrl.activePlaylist.Id === playlist.Id;\n\t\t\t};\n\t\t\t\n\t\t\tctrl.getItemStyle = function( active ) {\n\t\t\t\treturn active ? { backgroundColor: ctrl.selectedColor } : false;\n\t\t\t};\n\t\t\t\n\t\t\t$scope.$watch( 'ctrl.pageOptions.grid', function( newVal ) {\n\t\t\t\tctrl.player.plugins = { playlistGrid: Object.assign( { container: '#gridContainer' }, newVal ) };\n\t\t\t}, true);\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t/* Init */\n\t\t\t\n\t\t\tctrl.selectedColor = $mdColors.getThemeColor( $scope.$root.getThemeBackgroundColor( 'background', [ 2,8 ] , 1 ) );\n\t\t\t\n\t\t\tctrl.playlists = playlists;\n\t\t\tctrl.page = page.data;\n\t\t\tctrl.player = {};\n\t\t\tctrl.player.plugins = { };\n\t\t\t\n\t\t\tctrl.filters = {\n\t\t\t\tplaylists: '',\n\t\t\t\tpages: ''\n\t\t\t};\n\t\t\t\n\t\t\tctrl.pageOptions = {\n\t\t\t\tgrid: {\n\t\t\t\t\tcolumns: ctrl.page.Columns || 1,\n\t\t\t\t\tposition: ctrl.page.DisplayType || 'top',\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t};\n\t\t\t$timeout( function() {\n\t\t\t\tctrl.selectPlaylist( ctrl.page.PlaylistId );\n\t\t\t});\n\t\t\t// ctrl.activePlaylist = ctrl.playlists.length && ctrl.playlists[0].Id;\n\t\t\t\n\t\t\t\n\t\t\t// playlistsApi.getPage( page.Id ).then( function( pageResult ) {\n\t\t\t\t// $appLoading.show( false );\n\t\t\t\t\n\t\t\t\t// var pageObj = pageResult.data;\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t// }, function() {\n\t\t\t// \t// $appLoading.show( false );\n\t\t\t// \t$scope.$root.$emit( 'alert', {\n\t\t\t// \t\ttype: 'error',\n\t\t\t// \t\ttitle: 'Page Load Failed!',\n\t\t\t// \t\t// msg: '\"' + removedPlaylist.Name + '\" has been removed!',\n\t\t\t// \t\ttimeout: 10000,\n\t\t\t//\n\t\t\t// \t});\n\t\t\t// });\n\t\t\t//\n\t\t\t\n\t\t\t\n\t\t} ]);\n\t\t\n})( window, window.angular );\n","( function( window, angular, undefined ) {\n\t'use strict';\n\n\tangular.module('app.controllers.campaign.listing.scriptController',[])\n\t\t.config([ '$stateProvider', '$mdThemingProvider', function( $stateProvider, $mdThemingProvider ) {\n\t\t\t$stateProvider\n\t\t\t\t.state( 'app.campaign.listings.listing.script', {\n\t\t\t\t\turl: '/script',\n\t\t\t\t\ttemplateUrl: '/templates/campaign/listing/script/script.tpl.html',\n\t\t\t\t\tcontroller: 'ListingScriptController',\n\t\t\t\t} );\n\n\n\t\t\t$mdThemingProvider.registerStyles('' +\n\t\t\t\t'.md-THEME_NAME-theme .script-list md-list-item.selected { background: \\'{{accent-100}}\\'; border-bottom-color: \\'{{accent-500}}\\'; }' +\n\n\t\t\t\t'');\n\t\t} ])\n .controller('ListingScriptController', [ '$rootScope', '$scope', '$translate', '$q', 'vls.api', 'USER_ROLES', 'campaignId', 'campaigndata', 'partnerdata', 'listingId', 'listingdata',\n\t\t\t\t\t\t\t\t\tfunction( $rootScope, $scope, $translate, $q, vlsApi, USER_ROLES, campaignId, campaigndata, partnerdata, listingId, listingdata ) {\n\t\t$scope.script = {};\n\t\t$scope.methods = {};\n\t\t$scope.model = {\n\t\t\tprocessing: true\n\t\t};\n\n //trix-contenteditable=\"!model.processing && !readonly\" disabled=\"{{readonly}}\">\n\t\tvar trixEditor;\n\t\tvar prevValue = \"\";\n\t\t$scope.readonly = $rootScope.user.isAuthorized([USER_ROLES.accountExecutive], partnerdata.get('partnerCode') );\n\t\t$scope.methods.trixInitialize = function(e, editor) {\n\t\t\ttrixEditor = editor;\n\t\t\tangular.element( trixEditor.element ).attr('contenteditable', !$scope.readonly );\n\n\n\t\t};\n\n\t\t$scope.getWordCount = function() {\n\t\t\tif ( trixEditor ) {\n\t\t\t\tvar cont = trixEditor.element.value;\n\t\t\t\tvar n = 0;\n\t\t\t\tif (cont) {\n\t\t\t\t\tcont = cont.replace(/<[^>]*>/g, \" \");\n\t\t\t\t\tcont = cont.replace(/ \\;/g, ' ');\n\n\t\t\t\t\tcont = cont.replace(/\\s+/g, ' ');\n\t\t\t\t\tcont = cont.replace(/^\\s+|\\s+$/g, '');\n\t\t\t\t\tn = cont.split(\" \").length\n\t\t\t\t\t// log(\"GET COUNT\", n, cont);\n\t\t\t\t}\n\t\t\t\treturn n;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\n\t\t$scope.methods.loadScript = function( scriptId ) {\n\t\t\t$scope.model.processing = true;\n\n\t\t\tlistingdata.script.get( scriptId ).then(function( response ) {\n\t\t\t\t$scope.script = response.data;\n\t\t\t\t$scope.model.processing = false;\n\t\t\t\tconsole.log( $scope.script );\n\t\t\t\ttry {\n\t\t\t\t\tprevValue = $scope.script.scripttext = decodeURIComponent($scope.script.scripttext || '');\n\t\t\t\t} catch ( e ) {\n\t\t\t\t\tprevValue = $scope.script.scripttext = ($scope.script.scripttext || '');\n\t\t\t\t}\n\t\t\t\t// $scope.script.notestext = $scope.script.notestext\n\t\t\t});\n\t\t};\n\n\t\t$scope.methods.saveScript = function() {\n\t\t\t$scope.model.processing = true;\n\t\t\tvar scriptText = prevValue !== $scope.script.scripttext ? encodeURI( $scope.script.scripttext ) : undefined;\n\t\t\tlistingdata.script.set( $scope.script.id, scriptText, $scope.script.notestext ).then( function() {\n\t\t\t\t$scope.methods.loadScript();\n\t\t\t});\n\t\t};\n\n\t\t$scope.methods.loadScript();\n\n\t\t$scope.$watch( 'model.processing', function( newVal ) {\n\t\t\tif ( trixEditor ) {\n\t\t\t\tangular.element( trixEditor.element ).attr('contenteditable', !( newVal || $scope.readonly ) );\n\t\t\t}\n\n\t\t});\n\n\n\t} ]);\n})( window, window.angular );\n","'use strict';\n(function (window, angular, moment, undefined) {\n\tangular.module('app.controllers.campaign.listing.productionController', [])\n\t\t.controller('ListingProductionController',\n\t\t\t['$rootScope', '$scope', '$translate', '$q', '$mdDialog', 'vls.api', 'vls.search.api', 'security.api', 'clientForms', 'USER_ROLES', 'campaignId', 'campaigndata', 'partnerdata', 'listingId', 'listingdata',\n\t\t\t\tfunction ($rootScope, $scope, $translate, $q, $mdDialog, vlsApi, vlsSearchApi, securityApi, clientForms, USER_ROLES, campaignId, campaigndata, partnerdata, listingId, listingdata) {\n\t\t\t// TODO: Add validation for the form\n\t\t\tvar propertyMap = {\n\t\t\t\t'info.videoCode': 'videocode',\n\t\t\t\t'info.productType': 'partnerproducttypeid',\n\t\t\t\t'info.dueDate': 'duedate',\n\t\t\t\t'revision.count': 'revisionCount',\n\t\t\t\t'revision.type': 'revisionTypeId',\n\t\t\t\t'revision.refresh': 'enableRefresh',\n\t\t\t\t'info.youtube': 'youtubeurl',\n\t\t\t\t'info.assetsReady': 'assetsready',\n\t\t\t\t'info.productionCoordinator': 'productioncoordinatorid',\n\t\t\t\t'info.isAd': 'isad',\n\t\t\t\t'info.isInPlaylist': 'isinplaylist',\n\t\t\t\t'vo.gender': 'genderpreferenceid',\n\t\t\t\t'vo.talent': 'votalentid',\n\t\t\t\t'vo.rush': 'vorush',\n\t\t\t\t'shoot.date': 'shootdatetime',\n\t\t\t\t'shoot.time': 'shootdatetime',\n\t\t\t\t'shoot.shooter': 'shooterid',\n\t\t\t\t'video.shootLength': 'shootlength',\n\t\t\t\t'video.videoLength': 'videolength',\n\t\t\t\t'intent.intent': 'focus',\n\t\t\t\t'intent.details': 'focusdetails',\n\t\t\t\t'unpublish.date': 'unpublishdate'\n\t\t\t};\n\t\t\tvar genderMap = {\n\t\t\t\t'Male': '1',\n\t\t\t\t'Female': '2',\n\t\t\t\t'Any': '3'\n\t\t\t};\n\n\t\t\t$rootScope.$on('app.campaign.update', function (e, campaigndata) {\n\n\t\t\t\tlistingdata = campaigndata.listings.get(listingId);\n\n\t\t\t\tsetModelData();\n\n\n\t\t\t});\n\n\t\t\t$scope.addShooterFn = function ($event) {\n\t\t\t\t$mdDialog.show($mdDialog.newShooter(), {\n\t\t\t\t\ttargetEvent: $event,\n\t\t\t\t\tclickOutsideToClose: false,\n\t\t\t\t\tfullscreen: false\n\t\t\t\t})\n\t\t\t\t\t.then(function (shooterData) {\n\t\t\t\t\t\t$scope.setShooter( shooterData.id );\n\n\t\t\t\t\t});\n\t\t\t};\n\t\t\t$scope.production = {\n\t\t\t\tschema: {},\n\t\t\t\tform: {},\n\t\t\t\tmodel: {},\n\t\t\t\tsubmit: function (form) {\n\t\t\t\t\tconsole.log( 'SUBMIT', form );\n\t\t\t\t\t// $scope.$broadcast('schemaFormValidate');\n\n\t\t\t\t\t// Then we check if the form is valid\n\t\t\t\t\t// if (form.$valid) {\n\t\t\t\t\t\tvar newListingData = {};\n\t\t\t\t\t\t// Map model values to api model\n\t\t\t\t\t\tangular.forEach($scope.production.model, function (section, sectionName) {\n\t\t\t\t\t\t\tif (typeof section === 'object') {\n\t\t\t\t\t\t\t\tangular.forEach(section, function (field, key) {\n\t\t\t\t\t\t\t\t\tconsole.log(field, key, sectionName, propertyMap[sectionName + '.' + key]);\n\t\t\t\t\t\t\t\t\tvar prop = propertyMap[sectionName + '.' + key];\n\t\t\t\t\t\t\t\t\tif (!prop) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tvar val, hour, hours;\n\n\t\t\t\t\t\t\t\t\t// Need to compare with == because we're looking for 0 as a string or number. We are trying to filter out truely \"empty\" fields.\n\t\t\t\t\t\t\t\t\tif (field || field === false || field == 0) { // jshint ignore:line\n\t\t\t\t\t\t\t\t\t\tswitch (sectionName + '.' + key) {\n\t\t\t\t\t\t\t\t\t\t\tcase 'shoot.date':\n\t\t\t\t\t\t\t\t\t\t\t\tval = field;\n\t\t\t\t\t\t\t\t\t\t\t\tvar dateStr = (val.getMonth() + 1) + '/' + val.getDate() + '/' + val.getFullYear();\n\t\t\t\t\t\t\t\t\t\t\t\tif (!newListingData[prop]) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewListingData[prop] = dateStr;\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewListingData[prop] = dateStr + ' ' + newListingData[prop];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\tcase 'shoot.time':\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log('time save', field);\n\t\t\t\t\t\t\t\t\t\t\t\tvar timeStr\n\t\t\t\t\t\t\t\t\t\t\t\tif (field) {\n\t\t\t\t\t\t\t\t\t\t\t\t\ttimeStr = moment(field).format('h:mm a');\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\ttimeStr = '';\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tif (newListingData[prop]) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewListingData[prop] += ' ' + timeStr;\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewListingData[prop] = timeStr;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log('time save', newListingData[prop]);\n\n\t\t\t\t\t\t\t\t\t\t\t\t// var timeStr = '';\n\t\t\t\t\t\t\t\t\t\t\t\t// if ( field ) {\n\t\t\t\t\t\t\t\t\t\t\t\t// \tvar pm = field.search(/pm/i) != -1; // Is this pm? ie > 12\n\t\t\t\t\t\t\t\t\t\t\t\t// \tvar timeSplit = field.split(':');\n\t\t\t\t\t\t\t\t\t\t\t\t// \tvar adjust = pm ? timeSplit[0] < 12 ? 12 : 0 : timeSplit[0] == 12 ? -12 : 0; // Adjust the time to be in 24hr notation - 12am = 0\n\t\t\t\t\t\t\t\t\t\t\t\t//\n\t\t\t\t\t\t\t\t\t\t\t\t//\n\t\t\t\t\t\t\t\t\t\t\t\t// \tval = new Date();\n\t\t\t\t\t\t\t\t\t\t\t\t// \tval.setHours(Number(timeSplit[0]) + adjust); // add the adjustment\n\t\t\t\t\t\t\t\t\t\t\t\t// \tval.setMinutes(timeSplit[1].replace(/[\\sapm]/gi, ''));\n\t\t\t\t\t\t\t\t\t\t\t\t//\n\t\t\t\t\t\t\t\t\t\t\t\t// \tconsole.log('time', pm, timeSplit, adjust, val);\n\t\t\t\t\t\t\t\t\t\t\t\t//\n\t\t\t\t\t\t\t\t\t\t\t\t//\n\t\t\t\t\t\t\t\t\t\t\t\t// \thour = val.getHours();\n\t\t\t\t\t\t\t\t\t\t\t\t// \thours = hour <= 12 ? hour > 0 ? hour : 12 : hour - 12;\n\t\t\t\t\t\t\t\t\t\t\t\t//\n\t\t\t\t\t\t\t\t\t\t\t\t// \tvar ampm = hour < 12 ? 'AM' : 'PM';\n\t\t\t\t\t\t\t\t\t\t\t\t//\n\t\t\t\t\t\t\t\t\t\t\t\t// \ttimeStr = hours + ':' + val.getMinutes() + ':00 ' + ampm;\n\t\t\t\t\t\t\t\t\t\t\t\t// }\n\t\t\t\t\t\t\t\t\t\t\t\t// if ( newListingData[prop] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t// \tnewListingData[prop] += ' ' + timeStr;\n\t\t\t\t\t\t\t\t\t\t\t\t// } else {\n\t\t\t\t\t\t\t\t\t\t\t\t// \tnewListingData[prop] = timeStr;\n\t\t\t\t\t\t\t\t\t\t\t\t// }\n\n\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\t\t\tcase 'info.dueDate':\n\t\t\t\t\t\t\t\t\t\t\tcase 'unpublish.date':\n\t\t\t\t\t\t\t\t\t\t\t\tnewListingData[prop] = (field.getMonth() + 1) + '/' + field.getDate() + '/' + field.getFullYear();\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\t\tif (typeof field === 'object') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (typeof field.value === 'object') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewListingData[prop] = Number(field.value.id || field.value.userId);\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewListingData[prop] = field.value;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewListingData[prop] = field;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tswitch (sectionName + '.' + key) {\n\t\t\t\t\t\t\t\t\t\t\tcase 'unpublish.date':\n\t\t\t\t\t\t\t\t\t\t\t\tif (listingdata[prop]) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewListingData[prop] = 'NULL';\n\t\t\t\t\t\t\t\t\t\t\t\t} // else { don't add the undpublishdate }\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\tcase 'shoot.shooter':\n\t\t\t\t\t\t\t\t\t\t\t\tnewListingData[prop] = '-1';\n\t\t\t\t\t\t\t\t\t\t\tcase 'shoot.time':\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\t\tnewListingData[prop] = '';\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, this);\n\n\t\t\t\t\t\tconsole.log(newListingData);\n\n\t\t\t\t\t\tif (!/\\d{1,2}?\\/\\d{1,2}\\/\\d{2,4}\\s\\d{1,2}:\\d{2}\\s[a|p]m/gi.test(newListingData['shootdatetime'])) {\n\t\t\t\t\t\t\tnewListingData['shootdatetime'] = '';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t$scope.production.model.processing = true;\n\t\t\t\t\t\tcampaigndata.listings.set(listingId, newListingData).then(function (resp) {\n\t\t\t\t\t\t\tconsole.log(resp);\n\t\t\t\t\t\t\t$scope.production.model.processing = false;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t// }\n\t\t\t};\n\n\t\t\tfunction setModelData() {\n\t\t\t\tlistingdata = campaigndata.listings.get(listingId);\n\n\t\t\t\tconsole.log('Listing Data', JSON.parse(JSON.stringify(listingdata)));\n\t\t\t\t$scope.production.model = {\n\t\t\t\t\tinfo: {\n\t\t\t\t\t\tvideoCode: listingdata.videocode,\n\t\t\t\t\t\ttitle: listingdata.title,\n\t\t\t\t\t\tproductType: listingdata.partnerproducttypeid.toString(),\n\t\t\t\t\t\tdueDate: listingdata.duedate ? new Date(listingdata.duedate) : undefined,\n\t\t\t\t\t\tyoutube: listingdata.youtubeurl,\n\t\t\t\t\t\tassetsReady: listingdata.assetsready,\n\t\t\t\t\t\tisAd: listingdata.isad,\n\t\t\t\t\t\tisInPlaylist: listingdata.isinplaylist\n\t\t\t\t\t},\n\t\t\t\t\trevision: {\n\t\t\t\t\t\tcount: listingdata.revisioncount,\n\t\t\t\t\t\ttype: listingdata.revisiontypeid ? listingdata.revisiontypeid.toString() : '0',\n\t\t\t\t\t\trefresh: listingdata.enablerefresh\n\t\t\t\t\t},\n\t\t\t\t\tvo: {\n\t\t\t\t\t\tgender: genderMap[listingdata.genderpreferencedisplay],\n\t\t\t\t\t\ttalent: listingdata.votalentid,\n\t\t\t\t\t\trush: listingdata.vorush\n\t\t\t\t\t},\n\t\t\t\t\tshoot: {\n\t\t\t\t\t\tdate: listingdata.shootdate ? new Date(listingdata.shootdate) : undefined,\n\t\t\t\t\t\ttime: listingdata.shootdate ? new Date(listingdata.shootdate) : undefined,\n\t\t\t\t\t},\n\t\t\t\t\tvideo: {\n\t\t\t\t\t\tshootLength: listingdata.shootlength,\n\t\t\t\t\t\tvideoLength: listingdata.videolength,\n\t\t\t\t\t},\n\t\t\t\t\tintent: {\n\t\t\t\t\t\tintent: listingdata.focus,\n\t\t\t\t\t\tdetails: listingdata.focusdetails\n\t\t\t\t\t},\n\t\t\t\t\tunpublish: {\n\t\t\t\t\t\tdate: listingdata.unpublishdate ? new Date(listingdata.unpublishdate) : undefined\n\t\t\t\t\t},\n\t\t\t\t\tkeywords: {\n\t\t\t\t\t\tkeywords: listingdata.keywords\n\t\t\t\t\t},\n\t\t\t\t\tprocessing: false\n\t\t\t\t};\n\n\t\t\t\t$scope.setShooter( listingdata.shooterid );\n\t\t\t\t$scope.setVOTalent( listingdata.voiceovertalentfullname );\n\t\t\t\t$scope.setPC( listingdata.productioncoordinatorid );\n\t\t\t\t// initForm();\n\t\t\t}\n\n\t\t\t// setModelData();\n\n\t\t\t// Temp holder for shootdatetime on submit.\n\t\t\tvar shootDateTime;\n\n\t\t\tvar saveBtn = {\n\t\t\t\ttype: 'card',\n\t\t\t\tinline: true,\n\t\t\t\tnotitle: true,\n\t\t\t\titems: [\n\t\t\t\t\t'revision.count',\n\t\t\t\t\t'revision.type',\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'submit',\n\t\t\t\t\t\ttitle: 'Save',\n\t\t\t\t\t\tstyle: 'md-accent'\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t};\n\n\t\t\tvar init = {\n\t\t\t\tform: {}\n\t\t\t};\n\n\n\t\t\tvar productTypeObj = partnerdata.getProductType();\n\t\t\tvar productTypeTitleMap = clientForms.util.getOptionsArray(productTypeObj, function (item) {\n\t\t\t\treturn item.id.toString();\n\t\t\t}, function (item) {\n\t\t\t\treturn item.productName + ' (' + item.productType.name + ')';\n\t\t\t});\n\t\t\tvar productTypeEnum = clientForms.util.getEnumArray(productTypeObj, 'id');\n\n\t\t\tconsole.log('PRODUCT TYPES: ', productTypeObj, productTypeTitleMap);\n\n\n\t\t\tvar currentVOTalent;\n\t\t\tvar currentShooter;\n\t\t\tvar currentPC;\n\n\t\t\tvar shootersObj;\n\t\t\tvar shooters = [];\n\t\t\tvar voTalentObj;\n\t\t\tvar voTalent = [];\n\t\t\tvar coordinatorsObj;\n\t\t\tvar coordinators = [];\n\n\t\t\t// function compileVOTalentLists() {\n\t\t\t// \tvar voTalentRequest = vlsApi.getUsersByRole( 18 ); // 18 = VO Talent\n\t\t\t// \tvoTalentRequest.then( function( response ) {\n\t\t\t// \t\t// voTalentTitleMap = clientForms.util.getOptionsArray( clientForms.util.uniqueArray( response.data.items, 'id' ), function( item ) { return item.id.toString(); }, 'fullname' );\n\t\t\t// \t\t// voTalentEnum = clientForms.util.getEnumArray( voTalent.data.items, 'id' );\n\t\t\t//\n\t\t\t// \t\tvoTalentObj = clientForms.util.uniqueArray( response.data.items, 'id' );\n\t\t\t// \t\tvoTalent = clientForms.util.getOptionsArray( voTalentObj, function( item ) { return item; }, 'fullname' );\n\t\t\t// \t\tvoTalent.sort( clientForms.util.alphaSort() );\n\t\t\t//\n\t\t\t// \t\t// Create the filter function with the new VO Talent\n\t\t\t// \t\t$scope.voTalentOptions = clientForms.util.createOptionsFilterFunction( voTalent );\n\t\t\t//\n\t\t\t// \t\tcurrentVOTalent = clientForms.util.getValueForAutoComplete( voTalent, listingdata.voiceovertalentfullname );\n\t\t\t//\n\t\t\t// \t\t$scope.production.model.vo.talent = currentVOTalent ? currentVOTalent : undefined ;\n\t\t\t// \t});\n\t\t\t//\n\t\t\t// }\n\n\t\t\t$scope.voTalentOptions = function (query) {\n\t\t\t\tvar calls = [];\n\t\t\t\tvar split = query.split(' ');\n\t\t\t\tif (split.length > 1) {\n\t\t\t\t\tcalls.push(vlsSearchApi.users({\n\t\t\t\t\t\tfirstname: '~' + split[0],\n\t\t\t\t\t\tlastname: '~' + split[1],\n\t\t\t\t\t\troleIds: USER_ROLES.voiceOverTalent\n\t\t\t\t\t}));\n\t\t\t\t} else {\n\t\t\t\t\tcalls.push(vlsSearchApi.users({firstname: '~' + query, roleIds: USER_ROLES.voiceOverTalent}));\n\t\t\t\t\tcalls.push(vlsSearchApi.users({lastname: '~' + query, roleIds: USER_ROLES.voiceOverTalent}));\n\t\t\t\t}\n\t\t\t\treturn $q.all(calls).then(function (result) {\n\t\t\t\t\tconsole.log(calls);\n\t\t\t\t\tvar returnArray = [];\n\t\t\t\t\tresult.forEach(function (res) {\n\t\t\t\t\t\tif (res.data) {\n\t\t\t\t\t\t\tres.data.forEach(function (user) {\n\t\t\t\t\t\t\t\treturnArray.push({\n\t\t\t\t\t\t\t\t\tvalue: user,\n\t\t\t\t\t\t\t\t\tname: user.firstName + ' ' + user.lastName\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tconsole.log(returnArray);\n\t\t\t\t\treturn returnArray;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t$scope.setVOTalent = function( selected ) {\n\t\t\t\tif ( !selected ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvar split = selected.split(' ');\n\t\t\t\tvlsSearchApi.users( { firstName: split[0], lastName: split[1] } ).then(function (result) {\n\t\t\t\t\tcurrentVOTalent = { name: result.data[0].firstName + ' ' + result.data[0].lastName, value: result.data[0] };//result.data[0].id || result.data[0].userId\n\n\t\t\t\t\t$scope.production.model.vo.talent = currentVOTalent ? currentVOTalent : undefined ;\n\t\t\t\t\treturn result[0];\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// function compileShooterLists( selected ) {\n\t\t\t// \tconsole.log( 'COMPILE SHOOTER', selected );\n\t\t\t// \tvar shooterRequest = vlsApi.getUsersByRole( 9, true ); // 9 = Shooter\n\t\t\t// \tshooterRequest.then( function( response ) {\n\t\t\t//\n\t\t\t// \t\tshootersObj = clientForms.util.uniqueArray( response.data.items, 'id' );\n\t\t\t// \t\tshooters = clientForms.util.getOptionsArray( shootersObj, function( item ) { return item; }, 'fullname' );\n\t\t\t// \t\tshooters.sort( clientForms.util.alphaSort() );\n\t\t\t//\n\t\t\t// \t\t// Create the filter function with the new Shooters\n\t\t\t// \t\t$scope.shootersOptions = clientForms.util.createOptionsFilterFunction( shooters );\n\t\t\t//\n\t\t\t// \t\tselected = selected || listingdata.shooterid;\n\t\t\t//\n\t\t\t// \t\tcurrentShooter = clientForms.util.getValueForAutoComplete( shooters, { id: selected } );\n\t\t\t// \t\tconsole.log( 'COMPILE SHOOTER SELECTED', currentShooter );\n\t\t\t// \t\t$scope.production.model.shoot.shooter = currentShooter ? currentShooter : undefined;\n\t\t\t//\n\t\t\t// \t});\n\t\t\t//\n\t\t\t// \treturn shooterRequest;\n\t\t\t// }\n\n\t\t\t$scope.shootersOptions = function (query) {\n\t\t\t\tvar calls = [];\n\t\t\t\tvar split = query.split(' ');\n\t\t\t\tif (split.length > 1) {\n\t\t\t\t\tcalls.push(vlsSearchApi.users({\n\t\t\t\t\t\tfirstname: '~' + split[0],\n\t\t\t\t\t\tlastname: '~' + split[1],\n\t\t\t\t\t\troleIds: USER_ROLES.shooter\n\t\t\t\t\t}));\n\t\t\t\t} else {\n\t\t\t\t\tcalls.push(vlsSearchApi.users({firstname: '~' + query, roleIds: USER_ROLES.shooter}));\n\t\t\t\t\tcalls.push(vlsSearchApi.users({lastname: '~' + query, roleIds: USER_ROLES.shooter}));\n\t\t\t\t}\n\t\t\t\treturn $q.all(calls).then(function (result) {\n\t\t\t\t\tconsole.log(calls);\n\t\t\t\t\tvar returnArray = [];\n\t\t\t\t\tresult.forEach(function (res) {\n\t\t\t\t\t\tif (res.data) {\n\t\t\t\t\t\t\tres.data.forEach(function (user) {\n\t\t\t\t\t\t\t\treturnArray.push({\n\t\t\t\t\t\t\t\t\tvalue: user,\n\t\t\t\t\t\t\t\t\tname: user.firstName + ' ' + user.lastName\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tconsole.log(returnArray);\n\t\t\t\t\treturn returnArray;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t$scope.setShooter = function( selected ) {\n\t\t\t\tif ( !selected ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tsecurityApi.getUserBasics( { ids: selected } ).then(function (result) {\n\t\t\t\t\tcurrentShooter = { name: result.data[0].firstName + ' ' + result.data[0].lastName, value: result.data[0] }; //result.data[0].id || result.data[0].userId\n\n\t\t\t\t\t$scope.production.model.shoot.shooter = currentShooter ? currentShooter : undefined ;\n\t\t\t\t\treturn result[0];\n\t\t\t\t});\n\t\t\t}\n\n\n\t\t\t// function compileCoordinatorsList( selected ) {\n\t\t\t// \tvar coordinatorsRequest = vlsApi.getUsersByRole( 5 ); // 5 = PC\n\t\t\t// \tcoordinatorsRequest.then( function( response ) {\n\t\t\t//\n\t\t\t// \t\tcoordinatorsObj = clientForms.util.uniqueArray( response.data.items, 'id' );\n\t\t\t// \t\tcoordinators = clientForms.util.getOptionsArray( coordinatorsObj, function( item ) { return item; }, 'fullname' );\n\t\t\t// \t\tcoordinators.sort( clientForms.util.alphaSort() );\n\t\t\t//\n\t\t\t// \t\t// Create the filter function with the new Shooters\n\t\t\t// \t\t$scope.pcOptions = clientForms.util.createOptionsFilterFunction( coordinators );\n\t\t\t//\n\t\t\t// \t\tselected = selected || listingdata.productioncoordinatorid;\n\t\t\t//\n\t\t\t// \t\tcurrentPC = clientForms.util.getValueForAutoComplete( coordinators, { id: selected } );\n\t\t\t//\n\t\t\t// \t\tconsole.log( 'COMPILE PC SELECTED', currentPC );\n\t\t\t//\n\t\t\t//\n\t\t\t// \t\t$scope.production.model.info.productionCoordinator = currentPC ? currentPC : undefined;\n\t\t\t//\n\t\t\t// \t});\n\t\t\t//\n\t\t\t// \treturn coordinatorsRequest;\n\t\t\t// }\n\n\n\t\t\t$scope.pcOptions = function (query) {\n\t\t\t\tvar calls = [];\n\t\t\t\tvar split = query.split(' ');\n\t\t\t\tif (split.length > 1) {\n\t\t\t\t\tcalls.push(vlsSearchApi.users({\n\t\t\t\t\t\tfirstname: '~' + split[0],\n\t\t\t\t\t\tlastname: '~' + split[1],\n\t\t\t\t\t\troleIds: USER_ROLES.productionCoordinator\n\t\t\t\t\t}));\n\t\t\t\t} else {\n\t\t\t\t\tcalls.push(vlsSearchApi.users({firstname: '~' + query, roleIds: USER_ROLES.productionCoordinator}));\n\t\t\t\t\tcalls.push(vlsSearchApi.users({lastname: '~' + query, roleIds: USER_ROLES.productionCoordinator}));\n\t\t\t\t}\n\t\t\t\treturn $q.all(calls).then(function (result) {\n\t\t\t\t\tconsole.log(calls);\n\t\t\t\t\tvar returnArray = [];\n\t\t\t\t\tresult.forEach(function (res) {\n\t\t\t\t\t\tif (res.data) {\n\t\t\t\t\t\t\tres.data.forEach(function (user) {\n\t\t\t\t\t\t\t\treturnArray.push({\n\t\t\t\t\t\t\t\t\tvalue: user,\n\t\t\t\t\t\t\t\t\tname: user.firstName + ' ' + user.lastName\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tconsole.log(returnArray);\n\t\t\t\t\treturn returnArray;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t$scope.setPC = function( selected ) {\n\t\t\t\tif ( !selected ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tsecurityApi.getUserBasics( { ids: selected } ).then(function (result) {\n\t\t\t\t\tcurrentPC = { name: result.data[0].firstName + ' ' + result.data[0].lastName, value: result.data[0] }; //result.data[0].id || result.data[0].userId\n\n\t\t\t\t\t$scope.production.model.info.productionCoordinator = currentPC ? currentPC : undefined;\n\t\t\t\t\treturn result[0];\n\t\t\t\t});\n\t\t\t}\n\n\n\t\t\tfunction initForm() {\n\t\t\t\tsetModelData();\n\n\t\t\t\tvar partnerForm = partnerdata.forms.get('production');\n\t\t\t\t// var voTalentRequest = compileVOTalentLists();\n\t\t\t\t// var shooterRequest = compileShooterLists();\n\t\t\t\t// var coordinatorsRequest = compileCoordinatorsList();\n\n\n\t\t\t\t$scope.setVOTalent( listingdata.voiceovertalentfullname )\n\t\t\t\t$scope.setShooter( listingdata.shooterid )\n\t\t\t\t$scope.setPC( listingdata.productioncoordinatorid )\n\n\t\t\t\treturn $q.all({\n\t\t\t\t\tpartner: partnerForm.loader(),\n\t\t\t\t\t// voTalent: voTalentRequest,\n\t\t\t\t\t// shooter: shooterRequest,\n\t\t\t\t\t// coordinators: coordinatorsRequest\n\t\t\t\t}).then(function (data) {\n\n\t\t\t\t\tinit.form = JSON.parse( JSON.stringify( data.partner ) );\n\t\t\t\t\tconsole.group( \"FORM INIT\" );\n\t\t\t\t\tconsole.log( \"Original Form\", listingdata, init.form );\n\t\t\t\t\tif ( partnerdata.get('id') === 10 && [109,110,111].indexOf( listingdata.get( 'partnerproducttypeid' ) ) !== -1 ) {\n\t\t\t\t\t\tinit.form.info.push({\n\t\t\t\t\t\t\t\"key\": \"video\",\n\t\t\t\t\t\t\t\"inline\": true,\n\t\t\t\t\t\t\t\"type\": \"card\"\n\t\t\t\t\t\t})\n\t\t\t\t\t\tconsole.log( \"Altered Form\", init.form );\n\t\t\t\t\t}\n\t\t\t\t\tconsole.groupEnd();\n\t\t\t\t\tbuildFormsWithTranslations();\n\t\t\t\t});\n\n\t\t\t}\n\n\t\t\tinitForm();\n\n\n\t\t\tfunction buildFormsWithTranslations() {\n\t\t\t\tvar partnerKey = '';\n\t\t\t\tvar testTranslation = 'campaign.video.production.' + partnerdata.get('partnerCode') + '.PRODUCTION_DETAILS';\n\t\t\t\tif ($translate.instant(testTranslation) !== testTranslation) { // $translate returns the key if it doesn't exist\n\t\t\t\t\tpartnerKey = partnerdata.get('partnerCode') + '.';\n\t\t\t\t}\n\n\t\t\t\t$scope.production.schema = {\n\t\t\t\t\treadonly: $rootScope.user.isAuthorized([USER_ROLES.accountExecutive, USER_ROLES.videoProductionAssistant], partnerdata.get('partnerCode')),\n\t\t\t\t\ttype: 'object',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tinfo: {\n\t\t\t\t\t\t\ttitle: $translate.instant('campaign.video.production.' + partnerKey + 'PRODUCTION_DETAILS'),\n\t\t\t\t\t\t\ttype: 'object',\n\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\tvideoCode: {\n\t\t\t\t\t\t\t\t\ttitle: $translate.instant('campaign.video.production.' + partnerKey + 'VIDEO_CODE'),\n\t\t\t\t\t\t\t\t\ttype: 'string'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\ttitle: {\n\t\t\t\t\t\t\t\t\ttitle: $translate.instant('campaign.video.production.' + partnerKey + 'TITLE'),\n\t\t\t\t\t\t\t\t\ttype: 'string'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tyoutube: {\n\t\t\t\t\t\t\t\t\ttitle: $translate.instant('campaign.video.production.' + partnerKey + 'YOUTUBE'),\n\t\t\t\t\t\t\t\t\ttype: 'string'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tproductType: {\n\t\t\t\t\t\t\t\t\ttitle: $translate.instant('campaign.video.production.' + partnerKey + 'PRODUCT_TYPE'),\n\t\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\t\tenum: productTypeEnum,\n\t\t\t\t\t\t\t\t\t'x-schema-form': {\n\t\t\t\t\t\t\t\t\t\toptionData: 'productTypeTitleMap',\n\t\t\t\t\t\t\t\t\t\ttype: 'select',\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tdueDate: {\n\t\t\t\t\t\t\t\t\ttitle: $translate.instant('campaign.video.production.' + partnerKey + 'DUE_DATE'),\n\t\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\t\tformat: 'date',\n\t\t\t\t\t\t\t\t\t'x-schema-form': {\n\t\t\t\t\t\t\t\t\t\t//\"mdHideIcons\": \"calendar\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\tassetsReady: {\n\t\t\t\t\t\t\t\t\ttitle: $translate.instant('campaign.video.production.' + partnerKey + 'ASSETS_READY'),\n\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t\t'x-schema-form': {\n\t\t\t\t\t\t\t\t\t\t'type': 'switch',\n\t\t\t\t\t\t\t\t\t\t'htmlClass': 'flex-100'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tisAd: {\n\t\t\t\t\t\t\t\t\ttitle: $translate.instant('campaign.video.production.' + partnerKey + 'IS_AD'),\n\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t\t'x-schema-form': {\n\t\t\t\t\t\t\t\t\t\t'type': 'switch',\n\t\t\t\t\t\t\t\t\t\t'htmlClass': 'flex-100'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tisInPlaylist: {\n\t\t\t\t\t\t\t\t\ttitle: $translate.instant('campaign.video.production.' + partnerKey + 'IS_IN_PLAYLIST'),\n\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t\t'x-schema-form': {\n\t\t\t\t\t\t\t\t\t\t'type': 'switch',\n\t\t\t\t\t\t\t\t\t\t'htmlClass': 'flex-100'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tproductionCoordinator: {\n\t\t\t\t\t\t\t\t\ttitle: $translate.instant('campaign.video.production.' + partnerKey + 'PRODUCTION_COORDINATOR'),\n\t\t\t\t\t\t\t\t\ttype: 'object',\n\t\t\t\t\t\t\t\t\trequireMatch: true,\n\t\t\t\t\t\t\t\t\t'x-schema-form': {\n\t\t\t\t\t\t\t\t\t\ttype: 'autocomplete',\n\t\t\t\t\t\t\t\t\t\toptionFilter: 'pcOptions',\n\t\t\t\t\t\t\t\t\t\tminLength: 0\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\trevision: {\n\t\t\t\t\t\t\ttitle: '',\n\t\t\t\t\t\t\ttype: 'object',\n\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\tcount: {\n\t\t\t\t\t\t\t\t\ttitle: $translate.instant('campaign.video.production.' + partnerKey + 'REVISION_COUNT'),\n\t\t\t\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\t\t\t\tdefault: 0,\n\t\t\t\t\t\t\t\t\t'x-schema-form': {\n\t\t\t\t\t\t\t\t\t\t'htmlClass': 'flex md-no-errors no-bottom-margin'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\ttype: {\n\t\t\t\t\t\t\t\t\ttitle: $translate.instant('campaign.video.production.REVISION_TYPE'),\n\t\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\t\tenum: ['0', '1', '2', '3', '4', '5'],\n\t\t\t\t\t\t\t\t\tdefault: null,\n\t\t\t\t\t\t\t\t\t'x-schema-form': {\n\t\t\t\t\t\t\t\t\t\thtmlClass: 'flex md-no-errors no-bottom-margin',\n\t\t\t\t\t\t\t\t\t\ttype: 'select',\n\t\t\t\t\t\t\t\t\t\ttitleMap: [\n\t\t\t\t\t\t\t\t\t\t\t{name: 'None', value: '0'},\n\t\t\t\t\t\t\t\t\t\t\t{name: 'New', value: '1'},\n\t\t\t\t\t\t\t\t\t\t\t{name: 'Revision', value: '2'},\n\t\t\t\t\t\t\t\t\t\t\t{name: 'Fix', value: '3'},\n\t\t\t\t\t\t\t\t\t\t\t{name: 'Refresh', value: '4'},\n\t\t\t\t\t\t\t\t\t\t\t{name: 'Reinstate', value: '5'}\n\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\trefresh: {\n\t\t\t\t\t\t\t\t\ttitle: $translate.instant('campaign.video.production.' + partnerKey + 'ENABLE_REFRESH'),\n\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t\t'x-schema-form': {\n\t\t\t\t\t\t\t\t\t\t'type': 'switch',\n\t\t\t\t\t\t\t\t\t\t'htmlClass': 'flex-100'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tvo: {\n\t\t\t\t\t\t\ttitle: $translate.instant('video.production.VO'),\n\t\t\t\t\t\t\ttype: 'object',\n\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\tgender: {\n\t\t\t\t\t\t\t\t\ttitle: $translate.instant('video.production.GENDER_PREFERENCE'),\n\t\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\t\tenum: ['3', '1', '2'],\n\t\t\t\t\t\t\t\t\t'x-schema-form': {\n\t\t\t\t\t\t\t\t\t\ttype: 'radios-inline',\n\t\t\t\t\t\t\t\t\t\ttitleMap: [{name: 'Any', value: '3'}, {\n\t\t\t\t\t\t\t\t\t\t\tname: 'Male',\n\t\t\t\t\t\t\t\t\t\t\tvalue: '1'\n\t\t\t\t\t\t\t\t\t\t}, {name: 'Female', value: '2'}]\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\ttalent: {\n\t\t\t\t\t\t\t\t\ttitle: $translate.instant('video.production.TALENT'),\n\t\t\t\t\t\t\t\t\ttype: 'object',\n\t\t\t\t\t\t\t\t\t// enum: voTalentEnum,\n\t\t\t\t\t\t\t\t\trequireMatch: true,\n\t\t\t\t\t\t\t\t\t'x-schema-form': {\n\t\t\t\t\t\t\t\t\t\ttype: 'autocomplete',\n\t\t\t\t\t\t\t\t\t\t// optionData: 'voTalentTitleMap'\n\t\t\t\t\t\t\t\t\t\toptionFilter: 'voTalentOptions',\n\t\t\t\t\t\t\t\t\t\tminLength: 0\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\trush: {\n\t\t\t\t\t\t\t\t\ttitle: $translate.instant('video.production.VO') + ' ' + $translate.instant('campaign.video.production.' + partnerKey + 'RUSH'),\n\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t\t'x-schema-form': {\n\t\t\t\t\t\t\t\t\t\t'type': 'switch',\n\t\t\t\t\t\t\t\t\t\t'htmlClass': 'flex-100'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tshoot: {\n\t\t\t\t\t\t\ttitle: $translate.instant('video.production.shoot.SHOOT') + ' ' + $translate.instant('video.production.shoot.SCHEDULE'),\n\t\t\t\t\t\t\ttype: 'object',\n\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\tdate: {\n\t\t\t\t\t\t\t\t\ttitle: $translate.instant('video.production.shoot.SHOOT_DATE'),\n\t\t\t\t\t\t\t\t\ttype: 'object',\n\t\t\t\t\t\t\t\t\tformat: 'date'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\ttime: {\n\t\t\t\t\t\t\t\t\ttitle: $translate.instant('video.production.shoot.SHOOT_TIME'),\n\t\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\t\tformat: 'time',\n\t\t\t\t\t\t\t\t\t'x-schema-form': {\n\t\t\t\t\t\t\t\t\t\tstep: '15'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tshooter: {\n\t\t\t\t\t\t\t\t\ttitle: $translate.instant('video.production.shoot.SHOOTER'),\n\t\t\t\t\t\t\t\t\ttype: 'object',\n\t\t\t\t\t\t\t\t\t// enum: shooterEnum,\n\t\t\t\t\t\t\t\t\trequireMatch: true,\n\t\t\t\t\t\t\t\t\t'x-schema-form': {\n\t\t\t\t\t\t\t\t\t\ttype: 'autocomplete',\n\t\t\t\t\t\t\t\t\t\t// optionData: 'shooterTitleMap',\n\t\t\t\t\t\t\t\t\t\t'optionFilter': 'shootersOptions',\n\t\t\t\t\t\t\t\t\t\thtmlClass: 'flex-auto',\n\t\t\t\t\t\t\t\t\t\t'minLength': 0\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\taddShooter: {\n\t\t\t\t\t\t\t\t\tnotitle: true,\n\t\t\t\t\t\t\t\t\ttype: 'object',\n\t\t\t\t\t\t\t\t\t'x-schema-form': {\n\t\t\t\t\t\t\t\t\t\ttype: 'button',\n\t\t\t\t\t\t\t\t\t\ttitle: 'Add Shooter',\n\t\t\t\t\t\t\t\t\t\tonClick: 'addShooterFn()',\n\t\t\t\t\t\t\t\t\t\thtmlClass: 'md-mini',\n\t\t\t\t\t\t\t\t\t\ticon: 'add'\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tvideo: {\n\t\t\t\t\t\t\ttitle: $translate.instant('campaign.video.production.'+ partnerKey + 'VIDEO_DETAILS'),\n\t\t\t\t\t\t\ttype: 'object',\n\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\tshootLength: {\n\t\t\t\t\t\t\t\t\ttitle: $translate.instant('campaign.video.production.'+ partnerKey + 'SHOOT_LENGTH'),\n\t\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tvideoLength: {\n\t\t\t\t\t\t\t\t\ttitle: $translate.instant('campaign.video.production.'+ partnerKey + 'VIDEO_LENGTH'),\n\t\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tintent: {\n\t\t\t\t\t\t\ttitle: $translate.instant('campaign.video.production.' + partnerKey + 'INTENT'),\n\t\t\t\t\t\t\ttype: 'object',\n\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\tintent: {\n\t\t\t\t\t\t\t\t\ttitle: $translate.instant('campaign.video.production.' + partnerKey + 'INTENT'),\n\t\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\t\t// enum: ['Business Profile', 'Product/Service Highlight', 'Testimonial', 'Promotional/Seasonal Special', 'Advertisement (Specific call to action)', 'FAQ', 'Event', 'Other']\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tdetails: {\n\t\t\t\t\t\t\t\t\ttitle: $translate.instant('campaign.video.production.' + partnerKey + 'INTENT_DETAILS'),\n\t\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\t\t'x-schema-form': {\n\t\t\t\t\t\t\t\t\t\t'type': 'textarea'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tunpublish: {\n\t\t\t\t\t\t\ttitle: $translate.instant('campaign.video.production.' + partnerKey + 'UNPUBLISH'),\n\t\t\t\t\t\t\ttype: 'object',\n\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\tdate: {\n\t\t\t\t\t\t\t\t\ttitle: $translate.instant('campaign.video.production.' + partnerKey + 'UNPUBLISH'),\n\t\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\t\tformat: 'date'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tkeywords: {\n\t\t\t\t\t\t\ttitle: $translate.instant('campaign.video.production.' + partnerKey + 'KEYWORDS'),\n\t\t\t\t\t\t\ttype: 'object',\n\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\tkeywords: {\n\t\t\t\t\t\t\t\t\ttitle: $translate.instant('campaign.video.production.' + partnerKey + 'KEYWORDS'),\n\t\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\t\t'x-schema-form': {\n\t\t\t\t\t\t\t\t\t\ttype: 'textarea'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tsaveBtn.title = $translate.instant('common.actions.SAVE');\n\n\t\t\t\tvar tempForm = {};\n\t\t\t\tangular.copy(init.form, tempForm);\n\n\t\t\t\tif (!$scope.production.schema.readonly) {\n\n\t\t\t\t\tvar keys = Object.keys(tempForm);\n\t\t\t\t\tvar keys2 = Object.keys(tempForm[keys[keys.length - 1]]);\n\t\t\t\t\tvar lastFieldset = tempForm[keys[keys.length - 1]][keys2[keys2.length - 1]];\n\t\t\t\t\tvar lastObj = lastFieldset;//lastFieldset[lastFieldset.length-1];\n\t\t\t\t\ttempForm[keys[keys.length - 1]].push(saveBtn);\n\t\t\t\t}\n\n\t\t\t\t$scope.production.form = tempForm;\n\n\t\t\t\t// These need to be directly on scope for the form to access them.\n\t\t\t\t$scope.productTypeTitleMap = productTypeTitleMap;\n\t\t\t\t// $scope.voTalentTitleMap = voTalentTitleMap;\n\t\t\t\t// $scope.shooterTitleMap = shooterTitleMap;\n\t\t\t\t// $scope.voTalentOptions = clientForms.util.createOptionsFilterFunction( voTalent );\n\t\t\t\t// $scope.shootersOptions = clientForms.util.createOptionsFilterFunction( shooters );\n\t\t\t\t// $scope.shootersOptions = clientForms.util.createOptionsFilterFunction( shooters );\n\n\n\t\t\t\tconsole.log('PROD MODEL', $scope.production.model);\n\n\n\t\t\t}\n\n\n\t\t}]);\n\n})(window, window.angular, moment);\n","\n( function( window, angular, undefined ) {\n\t'use strict';\n\n\tangular.module('app.controllers.campaign.listing.previewController',['videojs'])\n .controller('ListingPreviewController', [ '$rootScope', '$scope', '$translate', '$q', 'vls.api', 'vls.event.types', '$dashboard', 'campaignId', 'campaigndata', 'partnerdata', 'listingId', 'listingdata',\n\tfunction( $rootScope, $scope, $translate, $q, vlsApi, EVENT_TYPES, $dashboard, campaignId, campaigndata, partnerdata, listingId, listingdata ) {\n\t\t\t// Let the widgets use this\n\t\tconsole.log('PREVIEW CONTROLLER', campaigndata, listingdata );\n\t\t$scope.campaignData = campaigndata;\n\t\t$scope.partnerData = partnerdata;\n\t\t$scope.listingData = listingdata;\n\t\t$scope.listingId = listingId;\n\n\t\t$scope.entitytype = EVENT_TYPES.VIDEOS;\n\t\t$scope.entityid = $scope.listingId;\n\n\n\t\tvar campaign = campaigndata.get();\n\t\tvar listing = campaigndata.listings.get( listingId );\n\n\n\t/* var dashboard = $dashboard.get('listing.' + );\n\t\t\tdashboard.loader().then( function( data ) {\n\t\t\t\t$scope.dashWidgets = dashboard.items;\n\t\t\t\t$scope.dashSettings = dashboard.settings;\n\t\t\t} );\n\n\t\t\t$scope.dashboard = dashboard;\n\t*/\n\t\t$scope.$on('$destroy', function iVeBeenDismissed() {\n\n\t\t});\n\n\n\n\n\n\n\t\t$scope.$on('app.campaign.update', function() {\n\t\t\t\t//campaigndata = campaign.get();\n\t\t\t$scope.listingData = listingdata = campaigndata.listings.get( listingId );\n\n\t\t\t\t// cleanSidebars();\n\t\t\t\t// buildSidebars();\n\t\t});\n\n\t} ]);\n})( window, window.angular );\n","\n( function( window, angular, undefined ) {\n\t'use strict';\n\tangular.module('app.controllers.campaign.listing.advertisingController',[])\n .controller('ListingAdvertisingController', [ '$rootScope', '$scope', '$translate', '$q', 'vls.api', 'vls.event.types', 'campaignId', 'campaigndata',\n\tfunction( $rootScope, $scope, $translate, $q, vlsApi, EVENT_TYPES, campaignId, campaigndata ) {\n // Let the widgets use this\n\t\t$scope.campaignData = campaigndata;\n\n\n\n\t\t// var dashboard = $dashboard.get('advertising.' + campaigndata.partner.get('code'));\n // dashboard.loader().then( function( data ) {\n // $scope.dashWidgets = dashboard.items;\n // $scope.dashSettings = dashboard.settings;\n // } );\n\t\t//\n // $scope.dashboard = dashboard;\n\t\t//\n // $scope.$on('$destroy', function iVeBeenDismissed() {\n // dashboard.save();\n // });\n\n\n\n\n\n\n\t\t$scope.$on('app.campaign.update', function() {\n //campaigndata = campaign.get();\n\t\t\t$scope.listingData = campaigndata.listings.get();\n\n // cleanSidebars();\n // buildSidebars();\n\t\t});\n\n\t} ]);\n})( window, window.angular );\n","(function( window, angular, moment, undefined) {\n\t'use strict';\n\tangular.module('app.controllers.campaign.shoot.scheduleController', [\n\t\t'app.locale',\n\t\t'util',\n\t])\n\t\t.config([ '$stateProvider', 'USER_ROLES', function( $stateProvider, USER_ROLES ) {\n\t\t\t$stateProvider\n\t\t\t\t.state('app.campaign.shoots.shoot.schedule',{\n\t\t\t\t\turl: '/schedule',\n\t\t\t\t\ttemplateUrl: '/templates/campaign/shoot/schedule/schedule.tpl.html',\n\t\t\t\t\tcontroller: 'shootScheduleController',\n\t\t\t\t\tcontrollerAs: 'ctrl',\n\t\t\t\t\tresolve: {\n\t\t\t\t\t\t// shooter: [ 'security.api', 'shootData', function( securityApi, shootData ) {\n\t\t\t\t\t\t// \tif ( shootData.shooter ) {\n\t\t\t\t\t\t// \t\treturn securityApi.getUserBasics({ids: 15}).then(function (result) {\n\t\t\t\t\t\t// \t\t\treturn result[0];\n\t\t\t\t\t\t// \t\t});\n\t\t\t\t\t\t// \t} else {\n\t\t\t\t\t\t// \t\treturn undefined;\n\t\t\t\t\t\t// \t}\n\t\t\t\t\t\t// }],\n\t\t\t\t\t\tlocations: [ 'shoot', function( shoot ) {\n\t\t\t\t\t\t\treturn shoot.getLocations();\n\t\t\t\t\t\t} ],\n\t\t\t\t\t\tcountries: [ '$http', function( $http ) {\n\t\t\t\t\t\t\treturn $http.get('/data/Countries.json').then( function( result ) {\n\t\t\t\t\t\t\t\treturn result.data;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}],\n\t\t\t\t\t\tregions: [ '$http', function( $http ) {\n\t\t\t\t\t\t\treturn $http.get('/data/Regions.json').then( function( result ) {\n\t\t\t\t\t\t\t\treturn result.data;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}]\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t} ])\n\t\t.controller('shootScheduleController', [ '$scope', '$http', '$state', 'LocaleService', '$rootScope', '$mdDialog', '$timeout', '$q', 'shoot.api', 'vls.user', 'vls.api', 'vls.search.api', 'security.api', 'USER_ROLES', 'util', 'clientForms', 'campaignId', 'campaigndata', 'partnerdata', 'shoot', 'shootData', 'workflowActions', 'locations', 'countries', 'regions', function( $scope, $http, $state, LocaleService, $rootScope, $mdDialog, $timeout, $q, shootApi, vlsUser, vlsApi, vlsSearchApi, securityApi, USER_ROLES, util, clientForms, campaignId, campaigndata, partnerdata, shoot, shootData, workflowActions, locations, countries, regions ) {\n\t\t\tvar ctrl = this;\n\n\t\t\tvar locale = LocaleService.getLocale() || 'en';\n\t\t\tvar m = moment().locale( locale );\n\n\t\t\t// var shootersObj;\n\t\t\t// var shootersOptions;\n\t\t\tvar currentShooter;\n\n\t\t\tvar coordinatorsObj;\n\t\t\tvar coordinatorOptions;\n\t\t\tvar currentCoordinator;\n\n\t\t\tvar campaignPartnerCode = partnerdata.get('partnerCode');\n\t\t\tvar geo = new google.maps.Geocoder;\n\t\t\tvar address;\n\t\t\tvar shootGeo;\n\t\t\tvar coords;\n\t\t\tvar guessedTZ = 'America/Chicago';\n\n\t\t\tctrl.countries = countries;\n\n\t\t\tctrl.timeZones = [\n\t\t\t\t{ name: 'Eastern Time', zone: 'America/New_York' },\n\t\t\t\t{ name: 'Central Time', zone: 'America/Chicago' },\n\t\t\t\t{ name: 'Mountain Time', zone: 'America/Denver' },\n\t\t\t\t{ name: 'Mountain Time (no DST)', zone: 'America/Phoenix' },\n\t\t\t\t{ name: 'Pacific Time', zone: 'America/Los_Angeles' },\n\t\t\t\t{ name: 'Alaska Time', zone: 'America/Anchorage' },\n\t\t\t\t{ name: 'Hawaii-Aleutian', zone: 'America/Adak' },\n\t\t\t\t{ name: 'Hawaii-Aleutian Time (no DST)', zone: 'Pacific/Honolulu' }\n\t\t\t];\n\n\t\t\tvar tzMap = {\n\t\t\t\t'EDT': 'America/New_York',\n\t\t\t\t'EST': 'America/New_York',\n\n\t\t\t\t'CDT': 'America/Chicago',\n\t\t\t\t'CST': 'America/Chicago',\n\n\t\t\t\t'MDT': 'America/Denver',\n\t\t\t\t'MST': 'America/Denver',\n\n\t\t\t\t'PDT': 'America/Los_Angeles',\n\t\t\t\t'PST': 'America/Los_Angeles',\n\n\t\t\t\t'AKDT': 'America/Anchorage',\n\t\t\t\t'AKST': 'America/Anchorage',\n\n\t\t\t\t'HDT': 'America/Adak',\n\t\t\t\t'HST': 'America/Adak'\n\t\t\t}\n\n\t\t\tctrl.dateLoaders = [];\n\t\t\tctrl.dueDateLoaders = [];\n\t\t\tctrl.timeLoaders = [];\n\n\n\t\t\tfunction init() {\n\t\t\t\t// ctrl.STATES = STATES;\n\n\t\t\t\tctrl.REGIONS = regions['US']; // Todo: make this all dynamic\n\t\t\t\tconsole.log( 'COMPILE SHOOTER', locations, partnerdata.get('partnerCode') );\n\t\t\t\tconsole.log( 'SHOOT ACTIONS', shoot.actions );\n\n\t\t\t\tctrl.shootData = Object.assign( {}, shoot.data );\n\t\t\t\tctrl.shootData.ShootDate = shoot.data.ShootDate ? new Date( shoot.data.ShootDate ) : null;\n\t\t\t\tctrl.setShooterValue( shoot.data.Shooter );\n\t\t\t\tctrl.setCoordinatorValue( shoot.data.ProductionCoordinatorId );\n\n\t\t\t\tctrl.copyBusinessAddress = [];\n\n\t\t\t\tif ( locations && locations.length ) {\n\t\t\t\t\tctrl.locations = locations;\n\t\t\t\t\tctrl.hasNewLocation = false;\n\t\t\t\t} else {\n\t\t\t\t\tctrl.locations = [];\n\t\t\t\t\tctrl.addLocation();\n\t\t\t\t}\n\t\t\t\tconsole.log( \"SHOOT DATA\", ctrl.shootData );\n\n\t\t\t\tctrl.workflowActions = shoot.actions;\n\n\t\t\t\tctrl.canEdit = ctrl.eventComment = vlsUser.isAuthorized([\n\t\t\t\t\tUSER_ROLES.admin,\n\t\t\t\t\tUSER_ROLES.masterAdmin,\n\t\t\t\t\t// USER_ROLES.customerService,\n\t\t\t\t\tUSER_ROLES.productionCoordinator,\n\t\t\t\t\t// USER_ROLES.productionManager,\n\t\t\t\t\tUSER_ROLES.productionScheduler,\n\t\t\t\t\t// USER_ROLES.videoEditor,\n\t\t\t\t\t// USER_ROLES.accountExecutive,\n\t\t\t\t\t// USER_ROLES.videoProductionAssistant\n\t\t\t\t], campaignPartnerCode );\n\n\t\t\t\tctrl.canSeeShooterData = !( !ctrl.canEdit && vlsUser.isAuthorized( [\n\t\t\t\t\tUSER_ROLES.videoProductionAssistant,\n\t\t\t\t\tUSER_ROLES.accountExecutive,\n\t\t\t\t\tUSER_ROLES.apiCredentials\n\t\t\t\t], campaignPartnerCode ) );\n\n\n\t\t\t\tif ( locations.length ) {\n\t\t\t\t\taddress = locations[ 0 ].Addr1 + ' ' + locations[ 0 ].Addr2 + ' ' + locations[ 0 ].City + ' ' + locations[ 0 ].State + ' ' + locations[ 0 ].PostalCode;\n\t\t\t\t} else {\n\t\t\t\t\tvar campaignData = campaigndata.get();\n\t\t\t\t\taddress = campaignData.addressline1 + ' ' + ( campaignData.addressline2 || '' ) + ' ' + campaignData.city + ' ' + campaignData.state + ' ' + campaignData.postalcode;\n\t\t\t\t}\n\t\t\t\tif ( !ctrl.shootData.ShootDateTimeZone ) {\n\t\t\t\t\tconsole.log( '[ GET TIMEZONE ]', ctrl.shootData.ShootDateTimeZone, geo, address );\n\n\t\t\t\t\tgeo.geocode( {\n\t\t\t\t\t\taddress: address\n\t\t\t\t\t}, function ( result, status ) {\n\t\t\t\t\t\tconsole.log( '[ GET TIMEZONE ] GEOCODER', result, status );\n\t\t\t\t\t\tif ( status === 'OK' ) {\n\t\t\t\t\t\t\tshootGeo = result;\n\t\t\t\t\t\t\tcoords = shootGeo[ 0 ].geometry.location.toUrlValue();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// https://maps.googleapis.com/maps/api/timezone/json?location=39.6034810,-119.6822510×tamp=1331766000&key=YOUR_API_KEY\n\t\t\t\t\t\t// key=AIzaSyDY5zr38rfPRoHn6PzwM8FVXclghcYxQJU\n\t\t\t\t\t\tvar timestamp;\n\t\t\t\t\t\tif ( ctrl.shootData.ShootDate && ctrl.shootData.ShootDate.constructor.name === 'Date' ) {\n\t\t\t\t\t\t\ttimestamp = ctrl.shootData.ShootDate.getTime() / 1000;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttimestamp = Date.now() / 1000;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconsole.log( '[ GET TIMEZONE ] coords', coords, 'https://maps.googleapis.com/maps/api/timezone/json?location=' + coords + '×tamp=' + timestamp + '&key=AIzaSyDY5zr38rfPRoHn6PzwM8FVXclghcYxQJU' );\n\n\t\t\t\t\t\t$http.get( 'https://maps.googleapis.com/maps/api/timezone/json?location=' + coords + '×tamp=' + timestamp + '&key=AIzaSyDY5zr38rfPRoHn6PzwM8FVXclghcYxQJU', { withCredentials: false } )\n\t\t\t\t\t\t\t.then( function ( result ) {\n\t\t\t\t\t\t\t\tconsole.log( '[ GET TIMEZONE ] result', result );\n\n\t\t\t\t\t\t\t\tresult.data.timeZoneId;\n\n\t\t\t\t\t\t\t\tvar tzMatch = ctrl.timeZones.find( function( tz ) { return tz.zone === result.data.timeZoneId; } );\n\t\t\t\t\t\t\t\tconsole.log( '[ GET TIMEZONE ] match', tzMatch );\n\t\t\t\t\t\t\t\tif ( tzMatch ) {\n\t\t\t\t\t\t\t\t\tguessedTZ = tzMatch.zone;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tguessedTZ = tzMap[ moment.tz( result.data.timeZoneId ).format('zz') ];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tconsole.log( '[ GET TIMEZONE ] after match', guessedTZ );\n\n\t\t\t\t\t\t\t\tctrl.shootData.ShootDateTimeZone = guessedTZ\n\t\t\t\t\t\t\t\tm.tz( ctrl.shootData.ShootDateTimeZone );\n\t\t\t\t\t\t\t}, function( err ) {\n\t\t\t\t\t\t\t\tconsole.log( '[ GET TIMEZONE ] err', err );\n\t\t\t\t\t\t\t} )\n\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t\tvar shootUpdateListener = $rootScope.$on('shoot.update', function() {\n\t\t\t\t\tctrl.shootData = Object.assign( {}, shoot.data );\n\n\t\t\t\t\tctrl.setShooterValue( ctrl.shootData.Shooter );\n\t\t\t\t\tctrl.setCoordinatorValue( ctrl.shootData.ProductionCoordinatorId );\n\n\t\t\t\t\tctrl.shootData.ShootDateTimeZone = ctrl.shootData.ShootDateTimeZone || guessedTZ;\n\n\t\t\t\t\tshoot.getActions().then(function (actions) {\n\t\t\t\t\t\tctrl.workflowActions = actions;\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\tvar $translateListener = $rootScope.$on('$translateChangeSuccess', function( $event, data ) {\n\t\t\t\t\tconsole.log( 'LANG CHANGE', arguments );\n\t\t\t\t\tlocale = data.language.toLowerCase().replace( '_', '-' );\n\t\t\t\t\tm.locale( locale );\n\t\t\t\t});\n\n\t\t\t\t$scope.$on('$destroy', function() {\n\t\t\t\t\t$translateListener();\n\t\t\t\t\tshootUpdateListener();\n\t\t\t\t});\n\t\t\t}\n\n\n\t\t\tctrl.coordinatorOptions = function( query ) {\n\t\t\t\tvar calls = [];\n\t\t\t\tvar split = query.split( ' ' );\n\t\t\t\tif ( split.length > 1 ) {\n\t\t\t\t\tcalls.push( vlsSearchApi.users( { firstname: '~' + split[0], lastname: '~' + split[1], roleIds: USER_ROLES.productionCoordinator } ) );\n\t\t\t\t} else {\n\t\t\t\t\tcalls.push( vlsSearchApi.users( { firstname: '~' + query, roleIds: USER_ROLES.productionCoordinator } ) );\n\t\t\t\t\tcalls.push( vlsSearchApi.users( { lastname: '~' + query, roleIds: USER_ROLES.productionCoordinator } ) );\n\t\t\t\t}\n\t\t\t\treturn $q.all( calls ).then( function( result ) {\n\t\t\t\t\tconsole.log( calls );\n\t\t\t\t\tvar returnArray = [];\n\t\t\t\t\tresult.forEach( function( res ) {\n\t\t\t\t\t\tif ( res.data ) {\n\t\t\t\t\t\t\tres.data.forEach( function( user ) {\n\t\t\t\t\t\t\t\treturnArray.push( {\n\t\t\t\t\t\t\t\t\tvalue: user,\n\t\t\t\t\t\t\t\t\tname: user.firstName + ' ' + user.lastName\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tconsole.log( returnArray );\n\t\t\t\t\treturn returnArray;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tctrl.shootersOptions = function( query ) {\n\t\t\t\tvar calls = [];\n\t\t\t\tvar split = query.split( ' ' );\n\t\t\t\tif ( split.length > 1 ) {\n\t\t\t\t\tcalls.push( vlsSearchApi.users( { firstname: '~' + split[0], lastname: '~' + split[1], roleIds: USER_ROLES.shooter } ) );\n\t\t\t\t} else {\n\t\t\t\t\tcalls.push( vlsSearchApi.users( { firstname: '~' + query, roleIds: USER_ROLES.shooter } ) );\n\t\t\t\t\tcalls.push( vlsSearchApi.users( { lastname: '~' + query, roleIds: USER_ROLES.shooter } ) );\n\t\t\t\t}\n\t\t\t\treturn $q.all( calls ).then( function( result ) {\n\t\t\t\t\tconsole.log( calls );\n\t\t\t\t\tvar returnArray = [];\n\t\t\t\t\tresult.forEach( function( res ) {\n\t\t\t\t\t\tif ( res.data ) {\n\t\t\t\t\t\t\tres.data.forEach( function( user ) {\n\t\t\t\t\t\t\t\treturnArray.push( {\n\t\t\t\t\t\t\t\t\tvalue: user,\n\t\t\t\t\t\t\t\t\tname: user.firstName + ' ' + user.lastName\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tconsole.log( returnArray );\n\t\t\t\t\treturn returnArray;\n\t\t\t\t});\n\t\t\t}\n\n\n\n\n\t\t\tctrl.setCoordinatorValue = function( selected ) {\n\t\t\t\tif ( !selected ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tsecurityApi.getUserBasics({ids: selected } ).then(function (result) {\n\t\t\t\t\tcurrentCoordinator = { name: result.data[0].firstName + ' ' + result.data[0].lastName, value: result.data[0] };//result.data[0].id || result.data[0].userId\n\n\t\t\t\t\tctrl.coordinatorSearchTxt = currentCoordinator ? currentCoordinator.name : '';\n\t\t\t\t\tctrl.shootData.ProductionCoordinatorValue = currentCoordinator ? currentCoordinator : undefined;\n\t\t\t\t\treturn result[0];\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tctrl.setShooterValue = function( selected ) {\n\t\t\t\tif ( !selected ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tsecurityApi.getUserBasics({ids: selected }).then(function (result) {\n\t\t\t\t\tcurrentShooter = { name: result.data[0].firstName + ' ' + result.data[0].lastName, value: result.data[0] };//result.data[0].id || result.data[0].userId\n\n\t\t\t\t\tctrl.shooterSearchTxt = currentShooter ? currentShooter.name : '';\n\t\t\t\t\tctrl.shootData.ShooterValue = currentShooter ? currentShooter : undefined;\n\t\t\t\t\treturn result[0];\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tctrl.openNewShooter = function( $event ) {\n\t\t\t\t$mdDialog.show( $mdDialog.newShooter(), {\n\t\t\t\t\ttargetEvent: $event,\n\t\t\t\t\tclickOutsideToClose: false,\n\t\t\t\t\tfullscreen: false\n\t\t\t\t} ).then( function( shooterData ) {\n\t\t\t\t\t// vlsApi.getUsersByRole( USER_ROLES.shooter, true ).then( function( response ) {\n\t\t\t\t\t// \tconsole.log( \"GOT NEW SHOOTERS\", response, shooterData );\n\t\t\t\t\t// \tshooters = response.data.items;\n\t\t\t\t\t// \tcompileShooterLists( parseInt( shooterData.id ) );\n\t\t\t\t\t//\n\n\t\t\t\t\t\t$timeout( function() {\n\t\t\t\t\t\t\tctrl.saveShootData( null, 'Shooter', true ).then( function( response2 ) {\n\t\t\t\t\t\t\t\tconsole.log( \"SAVED SHOOT DATA\", response2 );\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\n\t\t\t\t\t} );\n\t\t\t}\n\t\t\t// var markers = [];\n\t\t\t// var icon = {\n\t\t\t// \tpath: 'M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z,M0 0h24v24H0z',\n\t\t\t// \tfillColor: '#ff8b00'\n\t\t\t// };\n\n\t\t\t// angular.forEach( shooters, function( shooter, i ) {\n\t\t\t// \tmarkers.push({\n\t\t\t// \t\tposition: shooter.addess1\n\t\t\t// \t});\n\t\t\t// });\n\n\n\n\n\n\t\t\tctrl.saveShootData = function( $event, field, bypass ) {\n\t\t\t\tconsole.log( 'DID BLUR', arguments );\n\t\t\t\tvar el = $event && angular.element( $event.target );\n\t\t\t\t// console.log( 'IS ' + field + ' DIRTY? ', util.isFormFieldDirty( el ) );\n\t\t\t\t// console.log( el );\n\t\t\t\tif ( bypass || util.isFormFieldDirty( el ) ) {\n\t\t\t\t\tif ( bypass && bypass !== true ) {\n\t\t\t\t\t\tctrl[ bypass + 'Loaders' ][0] = 1;\n\t\t\t\t\t}\n\n\n\t\t\t\t\treturn shoot.setData( ctrl.shootData, field ).then( function() {\n\t\t\t\t\t\tif ( bypass && bypass !== true ) {\n\t\t\t\t\t\t\tctrl[ bypass + 'Loaders' ][0] = true;\n\t\t\t\t\t\t} else if ( !bypass ) {\n\t\t\t\t\t\t\tutil.setFormFieldPristine( el );\n\t\t\t\t\t\t}\n\t\t\t\t\t}, function() {\n\t\t\t\t\t\tif ( bypass && bypass !== true ) {\n\t\t\t\t\t\t\tctrl[ bypass + 'Loaders' ][0] = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t};\n\n\t\t\tvar tmpLocation = [];\n\t\t\tctrl.copyBusinessAddress = [];\n\n\t\t\tctrl.toggleBusinessAddress = function( locationIndex ) {\n\t\t\t\tif ( !ctrl.copyBusinessAddress[locationIndex] ) {\n\t\t\t\t\tctrl.copyBusinessAddress[locationIndex] = true;\n\t\t\t\t\ttmpLocation[locationIndex] = Object.assign( {}, ctrl.locations[ locationIndex ] );\n\t\t\t\t\tvar campaign = campaigndata.get();\n\t\t\t\t\tctrl.locations[ locationIndex ].Addr1 = campaign.addressline1;\n\t\t\t\t\tctrl.locations[ locationIndex ].Addr2 = campaign.addressline2;\n\t\t\t\t\tctrl.locations[ locationIndex ].City = campaign.city;\n\t\t\t\t\tctrl.locations[ locationIndex ].State = campaign.state;\n\t\t\t\t\tctrl.locations[ locationIndex ].PostalCode = campaign.postalcode;\n\n\t\t\t\t} else {\n\t\t\t\t\tctrl.copyBusinessAddress[locationIndex] = false;\n\t\t\t\t\tif ( tmpLocation[locationIndex] ) {\n\t\t\t\t\t\tctrl.locations[ locationIndex ] = tmpLocation[locationIndex];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.saveLocation( false, locationIndex );\n\t\t\t};\n\n\t\t\tctrl.addLocation = function() {\n\t\t\t\tctrl.locations.push({\n\t\t\t\t\tShootId: shootData.Id\n\t\t\t\t});\n\t\t\t\tctrl.hasNewLocation = true;\n\t\t\t};\n\n\t\t\tctrl.saveLocation = function( $event, locationIndex, field ) {\n\t\t\t\t// if ( $event ) {\n\t\t\t\t\tvar el = $event && angular.element( $event.target );\n\t\t\t\t\tvar location = ctrl.locations[ locationIndex ];\n\n\t\t\t\t\tif ( !$event || util.isFormFieldDirty( el ) ) {\n\t\t\t\t\t\tvar tmpLocation = location;\n\n\t\t\t\t\t\tif ( (!tmpLocation || !tmpLocation.Id) || ctrl.hasNewShot ) {\n\t\t\t\t\t\t\treturn shootApi.location.create( shootData.Id, tmpLocation )\n\t\t\t\t\t\t\t\t.then( function ( result ) {\n\t\t\t\t\t\t\t\t\tconsole.log( 'RESULT', result );\n\t\t\t\t\t\t\t\t\tObject.assign( tmpLocation, result.data );\n\t\t\t\t\t\t\t\t\tctrl.hasNewLocation = false;\n\n\t\t\t\t\t\t\t\t\tel && util.setFormFieldPristine( el );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn shootApi.location.update( shootData.Id, tmpLocation.Id, tmpLocation )\n\t\t\t\t\t\t\t\t.then( function () {\n\t\t\t\t\t\t\t\t\tel && util.setFormFieldPristine( el );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t/*} else {\n\t\t\t\t\tvar location = ctrl.locations[ locationIndex ];\n\t\t\t\t\tvar tmpLocation = location;\n\n\t\t\t\t\tif ( (!tmpLocation || !tmpLocation.Id) || ctrl.hasNewShot ) {\n\t\t\t\t\t\treturn shootApi.location.create( shootData.Id, tmpLocation )\n\t\t\t\t\t\t\t.then( function ( result ) {\n\t\t\t\t\t\t\t\tconsole.log( 'RESULT', result );\n\t\t\t\t\t\t\t\tObject.assign( tmpLocation, result.data );\n\t\t\t\t\t\t\t\tctrl.hasNewLocation = false;\n\n\t\t\t\t\t\t\t\tutil.setFormFieldPristine( el );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn shootApi.location.update( shootData.Id, tmpLocation.Id, tmpLocation )\n\t\t\t\t\t\t\t.then( function () {\n\t\t\t\t\t\t\t\tutil.setFormFieldPristine( el );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t}*/\n\t\t\t};\n\n\t\t\tctrl.removeLocation = function( $event, locationIndex ) {\n\t\t\t\tif ( ctrl.locations[ locationIndex ].Id ) {\n\t\t\t\t\treturn shootApi.location.remove( shootData.Id, ctrl.locations[ locationIndex ].Id ).then( function () {\n\t\t\t\t\t\tctrl.locations.splice( locationIndex, 1 );\n\t\t\t\t\t\tctrl.copyBusinessAddress.splice( locationIndex, 1 );\n\t\t\t\t\t});\n\t\t\t\t} else { // This was a new location, no api call since it doesn't exist on the server;\n\t\t\t\t\tctrl.locations.splice( locationIndex, 1 );\n\t\t\t\t\tctrl.copyBusinessAddress.splice( locationIndex, 1 );\n\t\t\t\t\tctrl.hasNewLocation = false;\n\t\t\t\t}\n\n\t\t\t};\n\n\t\t\tctrl.viewLocation = function( $event, $index ) {\n\t\t\t\tvar location = ctrl.locations[ $index ];\n\t\t\t\t$mdDialog.show(\n\t\t\t\t\t$mdDialog.ngMapDialog({\n\t\t\t\t\t\tlocals: {\n\t\t\t\t\t\t\taddress1: location.Addr1,\n\t\t\t\t\t\t\taddress2: location.Addr2,\n\t\t\t\t\t\t\tcity: location.City,\n\t\t\t\t\t\t\tstate: location.State,\n\t\t\t\t\t\t\tpostalcode: location.PostalCode,\n\t\t\t\t\t\t\ttitle: location.Name\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t};\n\n\n\n\n\n\t\t\tctrl.stopEvent = function( $event ) { $event.stopPropagation(); }\n\n\n\t\t\tinit();\n\n\t\t} ])\n\n\t;\n})( window, window.angular, window.moment );\n","(function( window, angular, undefined) {\n\t'use strict';\n\tangular.module('app.controllers.campaign.shoot.footageReviewController', [\n\n\t])\n\t\t.config(['$stateProvider', 'USER_ROLES', function ($stateProvider, USER_ROLES) {\n\t\t\t$stateProvider\n\t\t\t\t.state('app.campaign.shoots.shoot.footageReview', {\n\t\t\t\t\turl: '/shoot/footageReview',\n\t\t\t\t\ttemplateUrl: '/templates/campaign/shoot/footageReview/footageReview.tpl.html',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tauthorizedRoles: [\n\t\t\t\t\t\t\tUSER_ROLES.admin,\n\t\t\t\t\t\t\tUSER_ROLES.masterAdmin,\n\t\t\t\t\t\t\tUSER_ROLES.videoQC\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\tresolve: {\n\t\t\t\t\t\tfeedback: ['shoot', function( shoot ) {\n\t\t\t\t\t\t\treturn shoot.getFeedback();\n\t\t\t\t\t\t}]\n\t\t\t\t\t},\n\t\t\t\t\tcontroller: 'footageReviewController',\n\t\t\t\t\tcontrollerAs: 'ctrl'\n\t\t\t\t})\n\t\t}])\n\t\t.controller( 'footageReviewController', [ '$filter', 'vls.search.api', 'NgTableParams', 'shoot', 'shootData', 'feedback', '$timeout', function( $filter, searchApi, NgTableParams, shoot, shootData, feedback, $timeout ) {\n\n\t\t\tvar ctrl = this;\n\t\t\tctrl.shootData = shootData;\n\t\t\tctrl.paginationOptions = {\n\t\t\t\tpageNumber: 1,\n\t\t\t\tpageSize: 10,\n\t\t\t\ttotalPages: 1,\n\t\t\t\ttotalItems: 0\n\t\t\t}\n\n\t\t\tconsole.log( 'SHOOT DATA !', shootData );\n\t\t\tctrl.feedback = {\n\t\t\t\tautoFocusSettings: [],\n\t\t\t\tlens: [],\n\t\t\t\tframeRates: []\n\t\t\t};\n\t\t\tctrl.previousFeedback = feedback;\n\n\t\t\tfunction feedbackInit( feedback ) {\n\t\t\t\tctrl.feedback = {};\n\t\t\t\tObject.entries( feedback ).forEach( function( entry ) {\n\t\t\t\t\tswitch( entry[0] ) {\n\t\t\t\t\t\tcase 'autoFocusSettings':\n\t\t\t\t\t\tcase 'lens':\n\t\t\t\t\t\tcase 'frameRates':\n\t\t\t\t\t\t\tctrl.feedback[entry[0]] = entry[1].split(',');\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tctrl.feedback[entry[0]] = entry[1];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t//feedbackInit( feedback );\n\n\n\t\t\tctrl.checkboxToggle = function( value, item, idx ) {\n\t\t\t\tconsole.log( value, item, idx );\n\t\t\t\titem[idx] = item[idx] ? undefined : value;\n\t\t\t}\n\n\t\t\tctrl.saveFeedback = function( ) {\n\t\t\t\tshoot.saveFeedback( ctrl.feedback ).then( function() {\n\t\t\t\t\tctrl.feedbackParams.reload();\n\t\t\t\t});\n\t\t\t}\n\t\t\tctrl.clearFeedback = function() {\n\t\t\t\tctrl.feedback = {\n\t\t\t\t\tautoFocusSettings: [],\n\t\t\t\t\tlens: [],\n\t\t\t\t\tframeRates: []\n\t\t\t\t};\n\t\t\t}\n\n\n\t\t\tctrl.footageParams = new NgTableParams({\n\t\t\t\tpage: 1, // show first page\n\t\t\t\t// count: ctrl.paginationOptions.totalItems, // hides pager\n\t\t\t\tcount: 10, // count per pages\n\n\t\t\t\tsorting: {\n\t\t\t\t\tcreatedById: 'desc' // initial sorting\n\t\t\t\t},\n\t\t\t\tdebugMode: true\n\t\t\t}, {\n\t\t\t\ttotal: 0, // length of data\n\t\t\t\tgetData: function( params ) {\n\t\t\t\t\tvar sorting = params.sorting();\n\t\t\t\t\tvar column = Object.keys( sorting )[ 0 ];\n\n\t\t\t\t\tvar call = searchApi.assets( {\n\t\t\t\t\t\ttags: 10,\n\t\t\t\t\t\tbundles: shootData.bundleId || shootData.BundleId,\n\t\t\t\t\t\t_headers: {\n\t\t\t\t\t\t\tpagination: params.page() + ',' + params.count()\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsort: column + ' ' + sorting[ column ].toUpperCase()\n\n\t\t\t\t\t});\n\t\t\t\t\treturn call.then( function( result ) {\n\t\t\t\t\t\tconsole.log( \"GOT FOOTAGE\", result );\n\t\t\t\t\t\tctrl.footage = result.data;\n\t\t\t\t\t\tvar pagination = JSON.parse(result.headers().pagination);\n\t\t\t\t\t\tif (pagination) {\n\t\t\t\t\t\t\tparams.total( pagination.TotalItems );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconsole.log( \"GOT FOOTAGE\", ctrl.footage );\n\n\n\t\t\t\t\t\treturn ctrl.footage;\n\t\t\t\t\t});\n\n\t\t\t\t\t// return call;\n\t\t\t\t},\n\t\t\t\t$scope: {$data: []},\n\t\t\t\tcounts: []\n\n\t\t\t});\n\t\t\tctrl.footageParams.reload()\n\n\n\t\t\tctrl.feedbackParams = new NgTableParams({\n\t\t\t\tpage: 1, // show first page\n\t\t\t\t// count: ctrl.paginationOptions.totalItems, // hides pager\n\t\t\t\tcount: 10, // count per pages\n\n\t\t\t\tsorting: {\n\t\t\t\t\tcreatedById: 'desc' // initial sorting\n\t\t\t\t},\n\t\t\t\tdebugMode: true\n\t\t\t}, {\n\t\t\t\ttotal: 0, // length of data\n\t\t\t\tgetData: function( params ) {\n\t\t\t\t\tvar call = shoot.getFeedback();\n\t\t\t\t\treturn call;\n\t\t\t\t},\n\t\t\t\t$scope: {$data: []},\n\t\t\t\tcounts: []\n\n\t\t\t});\n\t\t\tctrl.feedbackParams.reload()\n\n\t\t\tctrl.onFeedbackRowClick = function( $event, row ) {\n\t\t\t\tfeedbackInit( row );\n\t\t\t}\n\n\t\t\tctrl.videoSrcObject;\n\n\t\t\tctrl.isVideo = function (asset) {\n\t\t\t\treturn !!ctrl.videoSrcObject;\n\t\t\t};\n\t\t\tctrl.isImage = function (asset) {\n\t\t\t\tif (!asset || !asset.originalFile || !asset.originalFile.contentType) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tvar imageContentTypes = ['image/png', 'image/jpg', 'image/jpeg', 'image/gif'];\n\t\t\t\treturn imageContentTypes.indexOf(asset.originalFile.contentType) !== -1;\n\t\t\t};\n\n\t\t\tctrl.onFootageRowClick = function ($event, asset ) {\n\n\t\t\t\tctrl.videoSrcObject = false;\n\t\t\t\tctrl.asset = {};\n\t\t\t\tctrl.details = undefined;\n\n\t\t\t\tctrl.asset = asset\n\t\t\t\tctrl.asset.originalFile = ctrl.getOriginalFile( asset );\n\t\t\t\tctrl.videoSrcObject = ctrl.getVideoSrc(ctrl.asset);\n\t\t\t};\n\n\t\t\t// ctrl.videoSrcObject = ctrl.getVideoSrcFn(ctrl.asset);\n\n\t\t\tctrl.getOriginalFile = function( asset ) {\n\t\t\t\treturn asset.currentVersion && asset.currentVersion.files ? asset.currentVersion.files.find(function (item, i) {\n\t\t\t\t\treturn item.isOriginal\n\t\t\t\t}) : {};\n\t\t\t}\n\n\t\t\tctrl.getVideoSrc = function (asset) {\n\t\t\t\tconsole.log('[Assets] GET VIDEO SRC', asset)\n\t\t\t\tvar mp4s = ctrl.getFilteredFiles(asset, 'video/mp4');\n\t\t\t\tif (mp4s && mp4s.length) {\n\t\t\t\t\treturn {src: mp4s[0].importUrl, type: mp4s[0].contentType};\n\t\t\t\t} else {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tctrl.getPosterUrl = function (asset) {\n\t\t\t\tvar mp4s = ctrl.getFilteredFiles(asset, 'image/jpeg');\n\t\t\t\tif (mp4s && mp4s.length) {\n\t\t\t\t\treturn mp4s[0].importUrl;\n\t\t\t\t} else {\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tctrl.getFilteredFiles = function (asset, mime) {\n\t\t\t\treturn asset.currentVersion.files.filter(function (file) {\n\t\t\t\t\treturn file.contentType === mime\n\t\t\t\t}).sort(function (a, b) {\n\t\t\t\t\treturn a.height - b.height\n\t\t\t\t});\n\t\t\t}\n\n\n\t\t\t$timeout( function() {\n\t\t\t\tvar container = window.document.querySelector('#main-content');\n\t\t\t\tvar form = window.document.querySelector('.footage-review-form');\n\n\t\t\t\tconsole.log(container.getBoundingClientRect());\n\n\t\t\t\tform.style.height = (container.getBoundingClientRect().height - 64) + 'px';\n\t\t\t});\n\n\t\t}]);\n\n})( window, window.angular );\n","(function( window, angular, moment, undefined) {\n\t'use strict';\n\tangular.module('app.controllers.campaign.shoot.eventsController', [\n\t\t])\n\t\t.config([ '$stateProvider', 'USER_ROLES', function( $stateProvider, USER_ROLES ) {\n\t\t\t$stateProvider\n\t\t\t\t.state('app.campaign.shoots.shoot.events',{\n\t\t\t\t\turl: '/events',\n\t\t\t\t\ttemplateUrl: '/templates/campaign/shoot/events/events.tpl.html',\n\t\t\t\t\tcontroller: 'shootEventsController',\n\t\t\t\t\tcontrollerAs: 'ctrl',\n\t\t\t\t\tresolve: {\n\t\t\t\t\t\teventsData: [ 'shoot', function( shoot ) {\n\t\t\t\t\t\t\treturn shoot.getEvents(); //getEventsData( shootApi, securityApi, $stateParams, $q );\n\t\t\t\t\t\t}]\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t} ])\n\t\t.controller('shootEventsController', [ '$rootScope', '$scope', '$filter', '$q', '$stateParams', '$keyboardShortcuts', 'security.api', 'shoot.api', 'vls.api', 'vls.user', 'USER_ROLES', 'campaigndata', 'partnerdata', 'shoot', 'shootData', 'eventsData', function( $rootScope, $scope, $filter, $q, $stateParams, $keyboardShortcuts, securityApi, shootApi, vlsApi, vlsUser, USER_ROLES, campaigndata, partnerdata, shoot, shootData, eventsData ) {\n\t\t\tvar ctrl = this;\n\t\t\tvar partnerCode = partnerdata.get('partnerCode');\n\t\t\tconsole.log( 'EVENTS DATA', partnerdata.get('partnerCode'), vlsUser, vlsUser.isAuthorized([\n\t\t\t\tUSER_ROLES.admin,\n\t\t\t\tUSER_ROLES.masterAdmin,\n\t\t\t\tUSER_ROLES.customerService,\n\t\t\t\tUSER_ROLES.productionCoordinator,\n\t\t\t\tUSER_ROLES.productionManager,\n\t\t\t\tUSER_ROLES.productionScheduler,\n\t\t\t\tUSER_ROLES.videoEditor,\n\t\t\t\tUSER_ROLES.accountExecutive,\n\t\t\t\tUSER_ROLES.videoProductionAssistant\n\t\t\t], partnerCode ));\n\t\t\tconsole.log( shootData );\n\t\t\tctrl.eventComment = vlsUser.isAuthorized([\n\t\t\t\tUSER_ROLES.admin,\n\t\t\t\tUSER_ROLES.masterAdmin,\n\t\t\t\tUSER_ROLES.customerService,\n\t\t\t\tUSER_ROLES.productionCoordinator,\n\t\t\t\tUSER_ROLES.productionManager,\n\t\t\t\tUSER_ROLES.productionScheduler,\n\t\t\t\tUSER_ROLES.videoEditor,\n\t\t\t\tUSER_ROLES.accountExecutive,\n\t\t\t\tUSER_ROLES.videoProductionAssistant\n\t\t\t], partnerCode );\n\n\t\t\tctrl.isVPA = vlsUser.isAuthorized([USER_ROLES.videoProductionAssistant], partnerCode );\n\n\t\t\tctrl.eventsData = shoot.events;\n\t\t\tctrl.shootData = shoot.data;\n\n\t\t\tvar shootUpdateListener = $scope.$on('shoot.update', function() {\n\t\t\t\tconsole.log( 'GETTING EVENT DATA' );\n\t\t\t\tshoot.getEvents().then( function( result ) {\n\t\t\t\t\tconsole.log( 'GOT EVENT DATA', result );\n\t\t\t\t\tctrl.eventsData = result;\n\t\t\t\t})\n\t\t\t})\n\n\t\t\tctrl.shortcuts = $keyboardShortcuts([{\n\t\t\t\tkey: 'Escape',\n\t\t\t\taction: function( evt ) {\n\t\t\t\t\tctrl.showCommentForm = false;\n\t\t\t\t}\n\t\t\t}]);\n\t\t\tctrl.shortcuts.pause();\n\n\n\n\t\t\t$scope.$watch( 'ctrl.showCommentForm', function( newVal, oldVal ) {\n\t\t\t\tif ( newVal !== oldVal ) {\n\t\t\t\t\tif (newVal) {\n\t\t\t\t\t\tctrl.shortcuts.resume();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tctrl.shortcuts.pause();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tctrl.contacts = [\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Production Coordinator',\n\t\t\t\t\temail: 'videoshoot@bettervideo.com'\n\t\t\t\t},{\n\t\t\t\t\tlabel: 'CCN Dept.',\n\t\t\t\t\temail: 'Shooters@bettervideo.com'\n\t\t\t\t},/*{\n\t\t\t\t\tlabel: 'Account Manager',\n\t\t\t\t\temail: 'ChannelAM@spectrio.com'\n\t\t\t\t},*/{\n\t\t\t\t\tlabel: 'Billing Dept.',\n\t\t\t\t\temail: 'admin@spectrio.com'\n\t\t\t\t}\n\t\t\t];\n\n\n\t\t\tctrl.partnerContacts = {\n\t\t\t\t950: [ /*{\n\t\t\t\t\tlabel: 'CCN Dept.',\n\t\t\t\t\temail: 'Shooters@bettervideo.com'\n\t\t\t\t},*/{\n\t\t\t\t\tlabel: 'Production Coordinator',\n\t\t\t\t\temail: 'scheduling@thryvvideo.com'\n\t\t\t\t},{\n\t\t\t\t\tlabel: 'VideoCOQ',\n\t\t\t\t\temail: 'VideoCOQ@thryv.com'\n\t\t\t\t},{\n\t\t\t\t\tlabel: 'Account Manager',\n\t\t\t\t\temail: 'ChannelAM@spectrio.com'\n\t\t\t\t}/*,{\n\t\t\t\t\tlabel: 'Billing Dept.',\n\t\t\t\t\temail: 'shootcharges@spectrio.com'\n\t\t\t\t}*/],\n\t\t\t\t740: [/*{\n\t\t\t\t\tlabel: 'Production Coordinator',\n\t\t\t\t\temail: 'videoshoot@bettervideo.com'\n\t\t\t\t},*/{\n\t\t\t\t\tlabel: 'ADV Video Support',\n\t\t\t\t\temail: 'videosupport@adihelp.net'\n\t\t\t\t}/*,{\n\t\t\t\t\tlabel: 'CCN Dept.',\n\t\t\t\t\temail: 'shooters@bettervideo.com'\n\t\t\t\t}*//*,{\n\t\t\t\t\tlabel: 'Billing',\n\t\t\t\t\temail: 'shootcharges@spectrio.com'\n\t\t\t\t}*/]\n\t\t\t};\n\n\t\t\tctrl.getContacts = function( pc ) {\n\t\t\t\tvar contacts = angular.copy( ctrl.contacts );\n\t\t\t\tvar pcContacts = ctrl.partnerContacts[pc];\n\n\t\t\t\tangular.forEach( pcContacts, function( pcCon, idx2 ) {\n\t\t\t\t\tvar inPartner;\n\n\t\t\t\t\tangular.forEach( contacts, function( val, idx ) {\n\t\t\t\t\t\tif ( pcCon.label === val.label ) {\n\t\t\t\t\t\t\tinPartner = idx;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tif ( inPartner !== undefined ) {\n\t\t\t\t\t\tcontacts[ inPartner ].email = pcCon.email;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontacts.push(pcCon);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn contacts;\n\t\t\t}\n\n\n\t\t\tvar preferredDayEnum = [\n\t\t\t\t\"None\",\n\t\t\t\t'Morning',\n\t\t\t\t'Afternoon',\n\t\t\t\t'All Day'\n\t\t\t];\n\n\t\t\tvar callResultEnum = [\n\t\t\t\t'Scheduled',\n\t\t\t\t'Completed',\n\t\t\t\t'No Answer',\n\t\t\t\t'Client Unprepared',\n\t\t\t\t'Follow Up',\n\t\t\t\t'Cancelled',\n\t\t\t]\n\n\n\n\t\t\tctrl.isDateTime = function( val ) {\n\t\t\t\treturn /^\\d{4}\\-[0-1]\\d\\-[0-3]\\dT[0-2]\\d\\:[0-5]\\d\\:[0-5]\\dZ/.test( val );\n\t\t\t};\n\n\t\t\tctrl.auditValue = function( audit, value, auditLog ) {\n\n\n\t\t\t\tif( audit.ColumnName.indexOf( 'PreferredDay' ) !== -1 ) {\n\t\t\t\t\treturn preferredDayEnum[ parseInt( audit[value]) ]\n\t\t\t\t} else {\n\t\t\t\t\tswitch ( audit.ColumnName ) {\n\t\t\t\t\t\tcase 'Date':\n\t\t\t\t\t\tcase 'DueDate':\n\t\t\t\t\t\tcase 'ShootDate':\n\t\t\t\t\t\t\tvar tzSearch = auditLog.find( function( tmpAudit ) {\n\t\t\t\t\t\t\t\treturn tmpAudit.ColumnName.indexOf( audit.ColumnName + 'TimeZone') !== -1;\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tif ( tzSearch ) {\n\t\t\t\t\t\t\t\ttz = tzSearch.OriginalValue;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttz = shootData[audit.ColumnName + 'TimeZone'] || 'America/Chicago';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn $filter('date')( audit[value], 'short', moment.tz( tz ).format('Z')) + ' ' + moment.tz( tz ).format('z'); break;\n\t\t\t\t\t\tcase 'WorkflowStateId':\n\t\t\t\t\t\t\treturn $filter('workflowState')( audit[value] ); break;\n\t\t\t\t\t\tcase 'ProductionCoordinatorId':\n\t\t\t\t\t\tcase 'Shooter':\n\t\t\t\t\t\t\treturn $filter( 'user' )( audit[value] );\n\t\t\t\t\t\tcase 'CallResult':\n\t\t\t\t\t\t\treturn callResultEnum[audit[value]];\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tvar tz = shootData[audit.ColumnName + 'TimeZone'] || 'America/Chicago';\n\n\t\t\t\t\t\t\treturn ctrl.isDateTime( audit[value] ) ? $filter('date')( audit[value], 'short', moment.tz( tz ).format('Z')) + ' ' + moment.tz( tz ).format('z') : audit[value];\n\t\t\t\t\t\t\t;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tctrl.filter = {\n\t\t\t\tcoordination: false,\n\t\t\t\tcomment: true,\n\t\t\t\tstatus: true\n\t\t\t};\n\n\t\t\tctrl.getHTML = function( str ) {\n\t\t\t\treturn str.replace(/\\n+/g, '
' );\n\t\t\t}\n\n\t\t\tctrl.sendEmail = false;\n\n\t\t\t$scope.$watch( 'ctrl.sendEmail', function( newVal ) {\n\t\t\t\tif ( newVal ) {\n\t\t\t\t\tctrl.message.ToAddresses = [];\n\t\t\t\t\tctrl.message.ReplyTo = vlsUser.getUserData().demographic.emailAddress\n\n\t\t\t\t} else {\n\t\t\t\t\tctrl.message.ToAddresses = undefined;\n\t\t\t\t\tctrl.message.ReplyTo = undefined;\n\t\t\t\t}\n\t\t\t})\n\n\n\t\t\tvar defaultMessage = {\n\t\t\t\tComment: '',\n\t\t\t\tExternal: true\n\t\t\t}\n\t\t\tctrl.otherEmails = '';\n\n\t\t\tctrl.message = angular.merge( {}, defaultMessage );\n\n\t\t\tctrl.addComment = function() {\n\t\t\t\tif ( !ctrl.message.Comment || ctrl.message.Comment == '' ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( ctrl.sendEmail && ctrl.otherEmails != '' ) {\n\t\t\t\t\tvar split = ctrl.otherEmails.split( ',' );\n\t\t\t\t\tangular.forEach( split, function( val, idx ) {\n\t\t\t\t\t\tsplit[idx] = val.replace( /\\s/ig, '' );\n\t\t\t\t\t});\n\t\t\t\t\tctrl.message.ToAddresses = ctrl.message.ToAddresses.concat( split );\n\t\t\t\t}\n\n\t\t\t\tshoot.addComment( ctrl.message ).then( function() {\n\t\t\t\t\tctrl.message = angular.merge( {}, defaultMessage );\n\t\t\t\t\tctrl.sendEmail = false;\n\t\t\t\t\tctrl.otherEmails = '';\n\t\t\t\t\tctrl.showCommentForm = false;\n\t\t\t\t});\n\n\n\t\t\t};\n\n\n\t\t\t$scope.$on('$destroy', function() {\n\t\t\t\tconsole.log( 'DESTROY!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ');\n\t\t\t\tconsole.log( '================================================= ');\n\t\t\t\tshootUpdateListener();\n\t\t\t\tctrl.shortcuts.remove();\n\t\t\t});\n\t\t} ])\n\n\n\t;\n\n\n\n\n\tfunction getEventsData( shootApi, securityApi, $stateParams, $q ) {\n\t\tvar eventData = [];\n\t\tvar defer = $q.defer();\n\t\tconsole.log( 'SHOOT EVENTS get' );\n\n\t\tvar eventApiCall = shootApi.events.get( $stateParams.shootId );\n\t\tvar commentApiCall = shootApi.comments.get( $stateParams.shootId );\n\t\t// var stateChangeApiCall = shootApi.workflow.changes.get()\n\t\tconsole.log( 'SHOOT EVENTS get' );\n\n\t\tfunction parseDetails( data ) {\n\t\t\tvar returnData;\n\t\t\ttry {\n\t\t\t\treturnData = JSON.parse( data );\n\t\t\t} catch ( e ) {\n\t\t\t\treturnData = data;\n\t\t\t}\n\t\t\treturn returnData;\n\t\t}\n\n\t\t$q.all( {\n\t\t\t\tevents: eventApiCall,\n\t\t\t\tcomments: commentApiCall\n\t\t\t} )\n\t\t\t.then( function ( result ) {\n\t\t\t\tvar users = [];\n\t\t\t\tangular.forEach( result, function ( call ) {\n\t\t\t\t\tangular.forEach( call.data, function ( event ) {\n\t\t\t\t\t\tusers.push( event.user );\n\t\t\t\t\t} )\n\n\t\t\t\t\tusers = users.filter( function ( val, idx, arr ) {\n\t\t\t\t\t\treturn arr.indexOf( val ) === idx;\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t\tsecurityApi.getUserBasics( { usernames: users.join( ',' ) } )\n\t\t\t\t\t.then( function ( userResults ) {\n\t\t\t\t\t\tangular.forEach( result.events.data, function ( event ) {\n\t\t\t\t\t\t\teventData.push( event );\n\t\t\t\t\t\t\tevent.UserFullName = userResults.data.find( function ( item, i ) {\n\t\t\t\t\t\t\t\treturn item.userName === event.user;\n\t\t\t\t\t\t\t} ).fullName;\n\t\t\t\t\t\t\tevent.detail = parseDetails( event.eventDetail );\n\t\t\t\t\t\t\tif ( event.detail.AuditLogs[ 0 ].ColumnName === 'WorkflowStateId' ) {\n\t\t\t\t\t\t\t\tevent.className = 'status';\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tevent.className = 'coordination';\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} )\n\n\t\t\t\t\t\tangular.forEach( result.comments.data, function ( event ) {\n\t\t\t\t\t\t\teventData.push( event );\n\t\t\t\t\t\t\tevent.className = 'comment';\n\t\t\t\t\t\t\tevent.UserFullName = userResults.data.find( function ( item, i ) {\n\t\t\t\t\t\t\t\treturn item.userName === event.user;\n\t\t\t\t\t\t\t} ).fullName;\n\t\t\t\t\t\t\tevent.detail = parseDetails( event.eventDetail );\n\t\t\t\t\t\t} )\n\n\t\t\t\t\t\teventData = eventData.sort( function ( a, b ) {\n\t\t\t\t\t\t\tvar dateA = (new Date( a.detail.CreatedDate || a.createdDate )).getTime();\n\t\t\t\t\t\t\tvar dateB = (new Date( b.detail.CreatedDate || b.createdDate )).getTime();\n\n\t\t\t\t\t\t\tif ( dateA < dateB ) {\n\t\t\t\t\t\t\t\treturn 1;\n\t\t\t\t\t\t\t} else if ( dateA > dateB ) {\n\t\t\t\t\t\t\t\treturn -1;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t\tdefer.resolve( eventData )\n\t\t\t\t\t} )\n\t\t\t} );\n\n\t\treturn defer.promise;\n\t};\n})( window, window.angular, window.moment );\n","(function( window, angular, moment, undefined) {\n\t'use strict';\n\tangular.module('app.controllers.campaign.shoot.callController', [\n\t\t'app.locale',\n\t\t'app.campaign.shoots.shoot.call.detailsController',\n\t])\n\t\t.config([ '$stateProvider', 'USER_ROLES', function( $stateProvider, USER_ROLES ) {\n\t\t\t$stateProvider\n\t\t\t\t.state('app.campaign.shoots.shoot.call',{\n\t\t\t\t\turl: '/call',\n\t\t\t\t\ttemplateUrl: '/templates/campaign/shoot/call/call.tpl.html',\n\t\t\t\t\tcontroller: 'shootCallController',\n\t\t\t\t\tcontrollerAs: 'ctrl',\n\t\t\t\t\tresolve: {\n\t\t\t\t\t\tcalls: [ 'shoot', function ( shoot ) {\n\t\t\t\t\t\t\treturn shoot.getCalls();\n\t\t\t\t\t\t}]\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t} ])\n\t\t.controller('shootCallController', [ '$rootScope', '$scope', '$http', '$state', '$stateParams', '$interpolate', '$timeout', '$mdDialog', '$mdDateLocale', '$translate', 'LocaleService', 'assets.asset', 'shoot.api', 'vls.api', 'vls.user', 'util', 'campaigndata', 'partnerdata', 'shoot', 'shootData', '$window', 'USER_ROLES', 'calls', function( $rootScope, $scope, $http, $state, $stateParams, $interpolate, $timeout, $mdDialog, $mdDateLocale, $translate, LocaleService, assetService, shootApi, vlsApi, vlsUser, util, campaigndata, partnerdata, shoot, shootData, $window, USER_ROLES, calls ) {\n\t\t\tvar ctrl = this;\n\t\t\tctrl.$window = $window;\n\t\t\tctrl.USER_ROLES = USER_ROLES;\n\n\t\t\tctrl.shotList = shoot.data.ShotList;\n\t\t\tctrl.shootData = shoot.data;\n\n\n\t\t\tctrl.callHistory = shoot.calls;\n\n\t\t\tctrl.processing = false;\n\t\t\tctrl.listingsForShoot = [];\n\t\t\tctrl.promises = {};\n\n\t\t\tctrl.dateLoaders = [];\n\t\t\tctrl.timeLoaders = [];\n\t\t\tctrl.timezoneLoaders = [];\n\n\t\t\tctrl.canEdit = ctrl.eventComment = vlsUser.isAuthorized([\n\t\t\t\tUSER_ROLES.admin,\n\t\t\t\tUSER_ROLES.masterAdmin,\n\t\t\t\t// USER_ROLES.customerService,\n\t\t\t\tUSER_ROLES.productionCoordinator,\n\t\t\t\t// USER_ROLES.productionManager,\n\t\t\t\tUSER_ROLES.productionScheduler,\n\t\t\t\t// USER_ROLES.videoEditor,\n\t\t\t\t// USER_ROLES.accountExecutive,\n\t\t\t\tUSER_ROLES.videoProductionAssistant\n\t\t\t], partnerdata.get('partnerCode') );\n\n\t\t\tctrl.hasNewShot = false;\n\n\n\t\t\tctrl.callResultEnum = [\n\t\t\t\t{ label: 'Scheduled', value: 0 },\n\t\t\t\t{ label: 'Completed', value: 1 },\n\t\t\t\t{ label: 'No Answer', value: 2 },\n\t\t\t\t{ label: 'Client Unprepared', value: 3 },\n\t\t\t\t{ label: 'Follow Up', value: 4 },\n\t\t\t\t{ label: 'Cancelled', value: 5 },\n\t\t\t]\n\n\t\t\tvar geo = new google.maps.Geocoder;\n\t\t\tvar address;\n\t\t\tvar shootGeo;\n\t\t\tvar coords;\n\n\t\t\tctrl.timeZones = [\n\t\t\t\t{ name: 'Eastern Time', zone: 'America/New_York' },\n\t\t\t\t{ name: 'Central Time', zone: 'America/Chicago' },\n\t\t\t\t{ name: 'Mountain Time', zone: 'America/Denver' },\n\t\t\t\t{ name: 'Mountain Time (no DST)', zone: 'America/Phoenix' },\n\t\t\t\t{ name: 'Pacific Time', zone: 'America/Los_Angeles' },\n\t\t\t\t{ name: 'Alaska Time', zone: 'America/Anchorage' },\n\t\t\t\t{ name: 'Hawaii-Aleutian', zone: 'America/Adak' },\n\t\t\t\t{ name: 'Hawaii-Aleutian Time (no DST)', zone: 'Pacific/Honolulu' }\n\t\t\t];\n\t\t\tctrl.guessedTz = 'America/Chicago';\n\t\t\tctrl.m = moment();\n\t\t\tvar m;\n\t\t\tvar locale;\n\n\n\n\t\t\tinit();\n\n\t\t\t// Initialize\n\t\t\t//////////////////////////\n\t\t\tfunction init() {\n\t\t\t\t// Init\n\t\t\t\tconsole.log( 'SHOOT DETAILS INIT', JSON.parse( JSON.stringify( shoot.data ) ), JSON.parse( JSON.stringify( shootData ) ) ) ;\n\t\t\t\tlocale = LocaleService.getLocale() || 'en';\n\t\t\t\tm = moment().locale( locale );\n\n\t\t\t\t// Get Timezone for user\n\t\t\t\t//////////////////////////\n\t\t\t\tvar campaignData = ctrl.campaign =campaigndata.get();\n\n\n\t\t\t\tvar address = campaignData.addressline1 + ' ' + ( campaignData.addressline2 || '' ) + ' ' + campaignData.city + ' ' + campaignData.state + ' ' + campaignData.postalcode;\n\n\n\t\t\t\tgeo.geocode( {\n\t\t\t\t\taddress: address\n\t\t\t\t}, function ( result, status ) {\n\t\t\t\t\tconsole.log( '[ GET TIMEZONE ] GEOCODER', result, status );\n\t\t\t\t\tif ( status === 'OK' ) {\n\t\t\t\t\t\tshootGeo = result;\n\t\t\t\t\t\tcoords = shootGeo[ 0 ].geometry.location.toUrlValue();\n\t\t\t\t\t}\n\n\t\t\t\t\t// https://maps.googleapis.com/maps/api/timezone/json?location=39.6034810,-119.6822510×tamp=1331766000&key=YOUR_API_KEY\n\t\t\t\t\t// key=AIzaSyDY5zr38rfPRoHn6PzwM8FVXclghcYxQJU\n\t\t\t\t\tvar timestamp;\n\t\t\t\t\tif ( ctrl.shootData.ShootDate && ctrl.shootData.ShootDate.constructor.name === 'Date' ) {\n\t\t\t\t\t\ttimestamp = ctrl.shootData.ShootDate.getTime() / 1000;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttimestamp = Date.now() / 1000;\n\t\t\t\t\t}\n\t\t\t\t\tconsole.log( '[ GET TIMEZONE ] coords', coords, 'https://maps.googleapis.com/maps/api/timezone/json?location=' + coords + '×tamp=' + timestamp + '&key=AIzaSyDY5zr38rfPRoHn6PzwM8FVXclghcYxQJU' );\n\n\t\t\t\t\t$http.get( 'https://maps.googleapis.com/maps/api/timezone/json?location=' + coords + '×tamp=' + timestamp + '&key=AIzaSyDY5zr38rfPRoHn6PzwM8FVXclghcYxQJU', { withCredentials: false } )\n\t\t\t\t\t\t.then( function ( result ) {\n\t\t\t\t\t\t\tconsole.log( '[ GET TIMEZONE ] result', result, result.data.timeZoneName.toLowerCase().replace( /\\s(?:standard|daylight)\\stime/gi, '') );\n\t\t\t\t\t\t\t// ctrl.shootData.ShootDateTimeZone = result.data.timeZoneId;\n\t\t\t\t\t\t\t// m.tz( ctrl.shootData.ShootDateTimeZone );\n\n\t\t\t\t\t\t\tswitch( result.data.timeZoneName.toLowerCase().replace( /\\s(?:standard|daylight)\\stime/gi, '') ) {\n\t\t\t\t\t\t\t\tcase 'eastern':\n\t\t\t\t\t\t\t\t\tctrl.guessedTz = 'America/New_York';\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase 'central':\n\t\t\t\t\t\t\t\t\tctrl.guessedTz = 'America/Chicago';\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase 'mountain':\n\t\t\t\t\t\t\t\t\tif (result.data.timeZoneId === 'America/Phoenix') {\n\t\t\t\t\t\t\t\t\t\tctrl.guessedTz = 'America/Phoenix';\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tctrl.guessedTz = 'America/Denver';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase 'pacific':\n\t\t\t\t\t\t\t\t\tctrl.guessedTz = 'America/Los_Angeles';\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase 'alaska':\n\t\t\t\t\t\t\t\t\tctrl.guessedTz = 'America/Anchorage';\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase 'hawaii-aleutian':\n\t\t\t\t\t\t\t\t\tif (result.data.timeZoneId === 'Pacific/Honolulu') {\n\t\t\t\t\t\t\t\t\t\tctrl.guessedTz = 'Pacific/Honolulu';\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tctrl.guessedTz = 'America/Adak';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\tctrl.guessedTz = result.data.timeZoneId;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\n\n\n\t\t\t\t\t\t\tinitShootDates();\n\n\t\t\t\t\t\t}, function( err ) {\n\t\t\t\t\t\t\tconsole.log( '[ GET TIMEZONE ] err', err );\n\t\t\t\t\t\t} )\n\n\t\t\t\t} );\n\n\n\n\n\t\t\t\t// Set up day checkboxes and values\n\t\t\t\t/////////////////////////////////////\n\t\t\t\tctrl.shootDetails = {\n\t\t\t\t\tmornings: [],\n\t\t\t\t\tevenings: []\n\t\t\t\t};\n\n\n\t\t\t\t// Days\n\t\t\t\tfunction setupDayArray() {\n\t\t\t\t\tctrl.days = [ 0, 1, 2, 3, 4, 5, 6 ].map( function ( dayNum ) {\n\t\t\t\t\t\treturn m.day( dayNum ).format( 'ddd' );\n\t\t\t\t\t} );\n\n\n\t\t\t\t}\n\n\t\t\t\tvar $translateListener = $rootScope.$on( '$translateChangeSuccess', function ( $event, data ) {\n\t\t\t\t\tconsole.log( 'LANG CHANGE', arguments );\n\t\t\t\t\tlocale = data.language.toLowerCase()\n\t\t\t\t\t\t.replace( '_', '-' );\n\t\t\t\t\tm.locale( locale );\n\t\t\t\t\tsetupDayArray();\n\t\t\t\t} );\n\n\n\t\t\t\tsetupDayArray();\n\n\t\t\t\t// Check the days\n\t\t\t\tangular.forEach( ctrl.days, function ( dayNameLocale, day ) {\n\t\t\t\t\tvar dayName = moment()\n\t\t\t\t\t\t.day( day )\n\t\t\t\t\t\t.format( 'dddd' );\n\n\t\t\t\t\tswitch ( shootData[ 'PreferredDay' + dayName ] ) {\n\t\t\t\t\t\tcase 3:\n\t\t\t\t\t\t\tctrl.shootDetails.mornings.push( day );\n\t\t\t\t\t\t\tctrl.shootDetails.evenings.push( day );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 2:\n\t\t\t\t\t\t\tctrl.shootDetails.evenings.push( day );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\tctrl.shootDetails.mornings.push( day );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t// Do nothing;\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\n\n\t\t\t\t// Get the listings in this bundle\n\t\t\t\t/////////////////////////////////////\n\t\t\t\tctrl.listingsForShoot = campaigndata.listings.get()\n\t\t\t\t\t.filter( function ( listing ) {\n\t\t\t\t\t\tvar listingBundleId = listing.customAttributes.get( 900 );\n\t\t\t\t\t\tif ( !listingBundleId ) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn shootData.BundleId === listingBundleId.attributevalue;\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\n\n\n\n\n\t\t\t\t// Watch stuff\n\t\t\t\tvar $stateChangeListener = $rootScope.$on('$stateChangeStart',function(event, toState, toParams, fromState, fromParams){\n\t\t\t\t\tif ( toState.name === 'app.campaign.shoots.shoot.call.details' && toParams.fromNew ) {\n\t\t\t\t\t\tshootApi.call.all( $stateParams.shootId ).then( function( result ) {\n\t\t\t\t\t\t\tctrl.callHistory = calls = result.data;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t})\n\n\n\n\t\t\t\tvar shootUpdateListener = $rootScope.$on('shoot.update', function() {\n\t\t\t\t\tconsole.log( 'SHOOT UPDATE', shoot.data, shoot.calls );\n\t\t\t\t\tctrl.shootData = shoot.data;\n\t\t\t\t\t// ctrl.shootData.ShootDates = [];\n\t\t\t\t\t// angular.forEach( shoot.data.ShootDates, function( val ) {\n\t\t\t\t\t// \tconsole.log( \"SHOOT DATES\", val );\n\t\t\t\t\t// \tif ( val.Date ) {\n\t\t\t\t\t// \t\tctrl.shootData.ShootDates.push( {\n\t\t\t\t\t// \t\t\tDate: val.Date.toJSON(),\n\t\t\t\t\t// \t\t\tDateTimeZone: val.DateTimeZone\n\t\t\t\t\t// \t\t} );\n\t\t\t\t\t// \t} else {\n\t\t\t\t\t// \t\tctrl.shootData.ShootDates.push( {\n\t\t\t\t\t// \t\t\tDate: undefined,\n\t\t\t\t\t// \t\t\tDateTimeZone: ctrl.guessedTz\n\t\t\t\t\t// \t\t})\n\t\t\t\t\t// \t}\n\t\t\t\t\t// });\n\t\t\t\t\t//\n\t\t\t\t\tctrl.callHistory = shoot.calls;\n\t\t\t\t\t//\n\t\t\t\t\tinitShootDates();\n\t\t\t\t})\n\n\t\t\t\t$scope.$on('$destroy', function() {\n\t\t\t\t\t$translateListener();\n\t\t\t\t\t$stateChangeListener();\n\t\t\t\t\tshootUpdateListener();\n\n\t\t\t\t});\n\t\t\t} // End Init\n\n\n\t\t\tfunction initShootDates() {\n\t\t\t\tconsole.log( \"SHOOT DETAILS SHOOT DATES\", JSON.parse( JSON.stringify( ctrl.shootData ) ), JSON.parse( JSON.stringify( ctrl.shootData.ShootDates ) ) );\n\t\t\t\tangular.forEach( ctrl.shootData.ShootDates, function( val ) {\n\t\t\t\t\tconsole.log( \"SHOOT DETAILS SHOOT DATES\", JSON.parse( JSON.stringify( val ) ) );\n\t\t\t\t\tval.DateTimeZone = val.DateTimeZone || ctrl.guessedTz\n\t\t\t\t});\n\t\t\t}\n\n\n\n\t\t\t// Functions\n\n\n\t\t\tctrl.getDayName = function( dayNum ) {\n\t\t\t\treturn m.day( dayNum ).format( 'dddd' );\n\t\t\t};\n\n\t\t\tctrl.toggleDayCheckbox = function( dayNum, pos ) {\n\t\t\t\t$rootScope.toggleCheck( dayNum, ctrl.shootDetails[ pos ] );\n\t\t\t\tctrl.savePreferredShootDays();\n\t\t\t};\n\n\t\t\tctrl.checkDay = function( dayNum ) {\n\t\t\t\tif ( ctrl.shootDetails.mornings.includes( dayNum ) === ctrl.shootDetails.evenings.includes( dayNum ) ) {\n\t\t\t\t\t$rootScope.toggleCheck( dayNum, ctrl.shootDetails.mornings );\n\t\t\t\t\t$rootScope.toggleCheck( dayNum, ctrl.shootDetails.evenings );\n\t\t\t\t} else {\n\t\t\t\t\tif ( !ctrl.shootDetails.mornings.includes( dayNum ) ) {\n\t\t\t\t\t\t$rootScope.toggleCheck( dayNum, ctrl.shootDetails.mornings );\n\t\t\t\t\t}\n\t\t\t\t\tif ( !ctrl.shootDetails.evenings.includes( dayNum ) ) {\n\t\t\t\t\t\t$rootScope.toggleCheck( dayNum, ctrl.shootDetails.evenings );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tctrl.savePreferredShootDays();\n\t\t\t};\n\n\t\t\tctrl.checkMornings = function() {\n\t\t\t\tif ( ctrl.shootDetails.mornings.length < 7 ) {\n\t\t\t\t\tctrl.shootDetails.mornings = [ 0,1,2,3,4,5,6 ];\n\t\t\t\t} else {\n\t\t\t\t\tctrl.shootDetails.mornings = [];\n\t\t\t\t}\n\n\t\t\t\tctrl.savePreferredShootDays();\n\t\t\t};\n\n\t\t\tctrl.checkEvenings = function() {\n\t\t\t\tif ( ctrl.shootDetails.evenings.length < 7 ) {\n\t\t\t\t\tctrl.shootDetails.evenings = [ 0,1,2,3,4,5,6 ];\n\t\t\t\t} else {\n\t\t\t\t\tctrl.shootDetails.evenings = [];\n\t\t\t\t}\n\t\t\t\tctrl.savePreferredShootDays();\n\t\t\t};\n\n\t\t\tctrl.getTimezone = function( zone ) {\n\t\t\t\tif ( zone ) {\n\t\t\t\t\t//console.log( \"GET TIMEZONE\", ctrl.m.tz( zone ).format('Z') );\n\t\t\t\t\treturn ctrl.m.tz(zone).format('ZZ');\n\t\t\t\t} else {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t};\n\n\n\n\n\t\t\t// Shot List Asset\n\t\t\t////////////////////////\n\t\t\tctrl.uploadShotList = function( file_input ) {\n\t\t\t\tassetService.create( shoot.data.PartnerId, file_input ).then( function( result ) {\n\t\t\t\t\tconsole.log( \"SHOT LIST UPLOAD\", result );\n\t\t\t\t\tvar asset_id = result[0][0].data.id;\n\t\t\t\t\tshootData.ShotlistAssetId = asset_id;\n\t\t\t\t\tshoot.setData( shootData, 'ShotlistAssetId' ).then( function( getCall ) {\n\t\t\t\t\t\tgetCall.then( function( shooGetData ) {\n\t\t\t\t\t\t\tctrl.shootData = shoot.data;\n\t\t\t\t\t\t\tctrl.shotList = shoot.data.shotList\n\t\t\t\t\t\t})\n\t\t\t\t\t});\n\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tctrl.uploadShotListRevision = function( file_input ) {\n\t\t\t\tassetService.revise( shootData.PartnerId, shootData.ShotlistAssetId, file_input ).then( function( result ) {\n\t\t\t\t\tconsole.log( \"SHOT LIST UPLOAD\", result );\n\t\t\t\t\tvar asset_id = result.id;\n\t\t\t\t\tshootData.ShotlistAssetId = asset_id;\n\t\t\t\t\tshoot.setData( shootData, 'ShotlistAssetId' );\n\t\t\t\t\t// .then( function( getCall ) {\n\t\t\t\t\t// \tgetCall.then( function( shooGetData ) {\n\t\t\t\t\t// \t\tctrl.shootData = shoot.data;\n\t\t\t\t\t// \t\tctrl.shotList = shoot.data.shotList\n\t\t\t\t\t// \t})\n\t\t\t\t\t// });\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tctrl.deleteShotList = function() {\n\t\t\t\tassetService.delete( shootData.PartnerId, shootData.ShotlistAssetId ).then( function( result ) {\n\t\t\t\t\tshootData.ShotlistAssetId = null;\n\t\t\t\t\t// console.log( 'UPLOAD SHOT LIST', result[0][0].data.Id, asset_id, shootData );\n\t\t\t\t\tshoot.setData( shootData, 'ShotlistAssetId' ).then( function( getCall ) {\n\t\t\t\t\t\tgetCall.then( function( shooGetData ) {\n\t\t\t\t\t\t\tctrl.shootData = shoot.data;\n\t\t\t\t\t\t\tctrl.shotList = shoot.data.shotList\n\t\t\t\t\t\t})\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\n\n\n\n\t\t\t// Listing Data\n\t\t\t////////////////////////\n\t\t\tctrl.saveListing = function( $event, listing, field ) {\n\t\t\t\tconsole.log( 'SAVE LISTING FIELD [' + field + '] ', listing, $event );\n\t\t\t\tvar data = {};\n\t\t\t\tdata[field] = listing[field];\n\t\t\t\tvar el = angular.element( $event.target );\n\t\t\t\tconsole.log( 'SAVE LISTING FIELD [' + field + '] ', el, data );\n\t\t\t\tconsole.log( 'SAVE LISTING FIELD [' + field + '] ', el.hasClass('ng-dirty') && el.hasClass('ng-valid') );\n\t\t\t\tif ( el.hasClass('ng-dirty') && el.hasClass('ng-valid') ) {\n\t\t\t\t\treturn listing.save( data ).then( function() {\n\t\t\t\t\t\tutil.setFormFieldPristine( el );\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t};\n\n\n\n\n\t\t\t// Call Data\n\t\t\t///////////////////////\n\t\t\tctrl.saveCallData = function( $event, callData, field, bypass ) {\n\t\t\t\tvar el = $event && angular.element( $event.target );\n\n\t\t\t\tif ( bypass || util.isFormFieldDirty( el ) ) {\n\n\t\t\t\t\treturn shoot.setCallData( callData, field ).then( function () {\n\t\t\t\t\t\tswitch ( field ) {\n\t\t\t\t\t\t\tcase 'Date':\n\t\t\t\t\t\t\tcase 'Time':\n\t\t\t\t\t\t\t\tctrl[ 'call' + field + 'Loader' ] = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tutil.setFormFieldPristine( el );\n\t\t\t\t\t}, function () {\n\t\t\t\t\t\tswitch ( field ) {\n\t\t\t\t\t\t\tcase 'Date':\n\t\t\t\t\t\t\tcase 'Time':\n\t\t\t\t\t\t\t\tctrl[ 'call' + field + 'Loader' ] = false;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tctrl.getCallDateTime = function( callData ) {\n\t\t\t\treturn moment( callData.Date ).tz( callData.DateTimeZone ).toJSON();\n\t\t\t}\n\n\t\t\tctrl.loaders = {};\n\t\t\t// Shoot Data\n\t\t\t//////////////////////\n\t\t\tctrl.saveShootData = function( $event, field, bypass ) {\n\t\t\t\tctrl.processing = true;\n\t\t\t\tconsole.log( 'SAVE', field, bypass, $event, JSON.parse( JSON.stringify( ctrl.shootData )) );\n\n\t\t\t\tvar el = $event && angular.element( $event.target );\n\n\t\t\t\tif ( bypass || util.isFormFieldDirty( el ) ) {\n\t\t\t\t\tvar tmpData = Object.assign( ctrl.shootData, {\n\t\t\t\t\t\tpreferredMornings: ctrl.shootDetails.mornings,\n\t\t\t\t\t\tpreferredEvenings: ctrl.shootDetails.evenings\n\t\t\t\t\t} );\n\n\t\t\t\t\tif ( bypass && bypass !== true ) {\n\t\t\t\t\t\tctrl.loaders[ bypass ] = 1;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn shoot.setData( tmpData, field )\n\t\t\t\t\t\t.then( function () {\n\t\t\t\t\t\t\tif ( bypass && bypass !== true ) {\n\t\t\t\t\t\t\t\tctrl.loaders[ bypass ] = true;\n\t\t\t\t\t\t\t} else if ( !bypass ) {\n\t\t\t\t\t\t\t\tutil.setFormFieldPristine( el );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, function() {\n\t\t\t\t\t\t\tif ( bypass && bypass !== true ) {\n\t\t\t\t\t\t\t\tctrl.loaders[ bypass ] = false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t}\n\n\n\t\t\t};\n\n\t\t\tctrl.saveShootDates = function( $event, data, bypass ) {\n\t\t\t\tctrl.processing = true;\n\t\t\t\tvar el = $event && angular.element( $event.target );\n\n\t\t\t\tif ( bypass && bypass !== true ) {\n\t\t\t\t\tctrl.loaders[ bypass ] = 1;\n\t\t\t\t}\n\n\t\t\t\tif ( data.Date ) {\n\n\t\t\t\t\treturn shoot.setPreferredShootDate(data)\n\t\t\t\t\t\t.then(function () {\n\t\t\t\t\t\t\tif (bypass && bypass !== true) {\n\t\t\t\t\t\t\t\tctrl.loaders[bypass] = true;\n\t\t\t\t\t\t\t} else if (!bypass) {\n\t\t\t\t\t\t\t\tutil.setFormFieldPristine(el);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, function () {\n\t\t\t\t\t\t\tif (bypass && bypass !== true) {\n\t\t\t\t\t\t\t\tctrl.loaders[bypass] = false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturn shoot.removePreferredShootDate(data)\n\t\t\t\t\t\t.then(function () {\n\t\t\t\t\t\t\tif (bypass && bypass !== true) {\n\t\t\t\t\t\t\t\tctrl.loaders[bypass] = true;\n\t\t\t\t\t\t\t} else if (!bypass) {\n\t\t\t\t\t\t\t\tutil.setFormFieldPristine(el);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, function () {\n\t\t\t\t\t\t\tif (bypass && bypass !== true) {\n\t\t\t\t\t\t\t\tctrl.loaders[bypass] = false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\n\t\t\tctrl.savePreferredShootDays = function( $event ) {\n\t\t\t\tctrl.saveShootData( $event, 'PreferredDay', 'preferredShootDays' );\n\t\t\t}\n\n\n\n\n\t\t\t// Shots\n\t\t\t////////////////////\n\t\t\tctrl.addShot = function() {\n\t\t\t\tctrl.shotList.push({\n\t\t\t\t\tShootId: shootData.Id,\n\t\t\t\t\tVideoListings: [],\n\t\t\t\t\tTitle: '',\n\t\t\t\t\tTopic: ''\n\t\t\t\t});\n\n\t\t\t\tctrl.hasNewShot = true;\n\t\t\t};\n\n\t\t\tctrl.saveShot = function( $event, shot, field, bypass ) {\n\t\t\t\t// shot.Topic = 'BLALAHLAHLAJAL'; return;\n\t\t\t\tvar el = angular.element( $event.target );\n\t\t\t\tconsole.log( 'IS ' + field + ' DIRTY? ', shot, el.hasClass('ng-dirty') && el.hasClass('ng-valid') );\n\n\t\t\t\tvar tmpShot = Object.assign( {}, shot );\n\t\t\t\tdelete tmpShot.$$hashKey;\n\n\t\t\t\tif ( ( el.hasClass('ng-dirty') && el.hasClass('ng-valid') ) || bypass ) {\n\t\t\t\t\tif ( !shot.Id || ctrl.hasNewShot ) {\n\n\n\t\t\t\t\t\treturn shootApi.shotList.create( shootData.Id, tmpShot )\n\t\t\t\t\t\t\t.then( function ( result ) {\n\t\t\t\t\t\t\t\tconsole.log( 'RESULT', result );\n\t\t\t\t\t\t\t\tObject.assign( shot, result.data );\n\t\t\t\t\t\t\t\tctrl.hasNewShot = false;\n\n\t\t\t\t\t\t\t\tutil.setFormFieldPristine( el );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn shootApi.shotList.update( shootData.Id, tmpShot.Id, tmpShot ).then( function() {\n\t\t\t\t\t\t\tutil.setFormFieldPristine( el );\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tctrl.removeShot = function( $event, shot ) {\n\t\t\t\tif ( !shot.Id ) {\n\t\t\t\t\tctrl.shotList.pop();\n\t\t\t\t\tctrl.hasNewShot = false;\n\t\t\t\t} else {\n\t\t\t\t\tconsole.log( 'remove shot', shot, $translate.instant( 'campaign.shoot.details.REMOVE_SHOT' ) );\n\t\t\t\t\tvar confirm = $mdDialog.confirm( {\n\t\t\t\t\t\ttitle: $translate.instant( 'common.actions.REMOVE' ),\n\t\t\t\t\t\ttextContent: $translate.instant( 'campaign.shoot.details.REMOVE_SHOT', shot ),\n\n\t\t\t\t\t} )\n\t\t\t\t\t\t.ok('Confirm')\n\t\t\t\t\t\t.cancel('Cancel');\n\n\t\t\t\t\t$mdDialog.show( confirm )\n\t\t\t\t\t\t.then( function () {\n\t\t\t\t\t\t\tshootApi.shotList.remove( shootData.Id, shot.Id )\n\t\t\t\t\t\t\t\t.then( function () {\n\t\t\t\t\t\t\t\t\tshootApi.shotList.all( shootData.Id )\n\t\t\t\t\t\t\t\t\t\t.then( function ( result ) {\n\t\t\t\t\t\t\t\t\t\t\tctrl.shotList = shootData.ShotList = result.data;\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t};\n\n\n\n\n\n\n\t\t} ])\n\n\t;\n})( window, window.angular, window.moment );\n","(function (window, angular, undefined) {\n\t'use strict';\n\tangular.module('app.controllers.campaign.advertising.edit', ['ngMaterial'])\n\t\t.config(['$stateProvider', function ($stateProvider) {\n\t\t\t$stateProvider\n\t\t\t\t.state('app.campaign.advertising.edit', {\n\t\t\t\t\turl: '/:adid',\n\t\t\t\t\tcontroller: 'editAdvertisingController',\n\t\t\t\t\tcontrollerAs: 'ctrl',\n\t\t\t\t\ttemplateUrl: '/templates/campaign/advertising/editAdvertising/editAdvertising.tpl.html',\n\t\t\t\t\t// resolve the data before the ui-view loads in\n\t\t\t\t\tresolve: {\n\t\t\t\t\t\tadData: ['$stateParams', 'advertising.api', 'campaigndata', function ($stateParams, advertisingApi, campaignData) {\n\t\t\t\t\t\t\treturn advertisingApi.getAdByCampaign($stateParams.adid, campaignData.get('partnerid'))\n\t\t\t\t\t\t\t\t.then(function (result) {\n\t\t\t\t\t\t\t\t\t// skip the http result info, just give the data.\n\t\t\t\t\t\t\t\t\treturn result.data;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}],\n\t\t\t\t\t\tgeoData: ['$stateParams', 'advertising.api', 'campaigndata', function ($stateParams, advertisingApi, campaignData) {\n\t\t\t\t\t\t\treturn advertisingApi.getGeoTargeting($stateParams.adid, campaignData.get('partnerid'))\n\t\t\t\t\t\t\t\t.then(function (result) {\n\t\t\t\t\t\t\t\t\treturn result.data;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}],\n\n\t\t\t\t\t\tadProducts: ['$stateParams', 'advertising.api', 'campaigndata', function ($stateParams, advertisingApi, campaignData) {\n\t\t\t\t\t\t\treturn advertisingApi.getProducts($stateParams.adid, campaignData.get('partnerid'))\n\t\t\t\t\t\t\t\t.then(function (result) {\n\t\t\t\t\t\t\t\t\t// assigns result to data\n\t\t\t\t\t\t\t\t\treturn result.data;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}],\n\t\t\t\t\t\tvideoListing: ['$stateParams', 'advertising.api', 'campaigndata', function ($stateParams, advertisingApi, campaignData) {\n\t\t\t\t\t\t\treturn advertisingApi.getVideoListing(campaignData.get('id'), campaignData.get('partnerid'))\n\t\t\t\t\t\t\t\t.then(function (result) {\n\t\t\t\t\t\t\t\t\t// assigns result to data\n\t\t\t\t\t\t\t\t\treturn result.data;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}],\n\t\t\t\t\t\tpartnerProducts: ['$stateParams', 'advertising.api', 'campaigndata', function ($stateParams, advertisingApi, campaignData) {\n\t\t\t\t\t\t\treturn advertisingApi.getPartnerProducts(campaignData.get('partnerid'))\n\t\t\t\t\t\t\t\t.then(function (result) {\n\t\t\t\t\t\t\t\t\t// assigns result to data\n\t\t\t\t\t\t\t\t\treturn result.data;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}],\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t}])\n\t\t.controller('editAdvertisingController', [\n\t\t\t'$scope',\n\t\t\t'$timeout',\n\t\t\t'$stateParams',\n\t\t\t'campaigndata',\n\t\t\t'adListing',\n\t\t\t'adData',\n\t\t\t'geoData',\n\t\t\t'adProducts',\n\t\t\t'$translate',\n\t\t\t'advertising.api',\n\t\t\t'$mdDialog',\n\t\t\t'videoListing',\n\t\t\t'util',\n\t\t\t'partnerProducts', function ($scope, $timeout, $stateParams, campaignData, adListing, adData, geoData, adProducts, $translate, advertisingApi, $mdDialog, videoListing, util, partnerProducts) {\n\n\t\t\t\t$scope.adData = adData;\n\t\t\t\t$scope.partnerProducts = partnerProducts;\n\t\t\t\t$scope.data = adListing[0];\n\t\t\t\t$scope.geoData = geoData;\n\t\t\t\t$scope.productData = adProducts;\n\t\t\t\t$scope.videoListing = videoListing;\n\t\t\t\t$scope.unAddedVideoList = [];\n\t\t\t\t$scope.status = ' ';\n\t\t\t\t$scope.customFullscreen = false;\n\t\t\t\t$scope.temp = false;\n\n\t\t\t\t$scope.selectedVideoListing = [];\n\n\t\t\t\t// setting up dates to determine whether you should change video listing start dates\n\t\t\t\t$scope.endDateSelect = [];\n\t\t\t\t$scope.today = new Date().getTime();\n\t\t\t\t$scope.started = Date.parse($scope.data.startOn);\n\t\t\t\t$scope.ended = Date.parse($scope.data.endOn);\n\t\t\t\t$scope.startDateComparison = $scope.started <= $scope.today;\n\t\t\t\t$scope.endDateComparison = $scope.ended <= $scope.today;\n\t\t\t\t$scope.currentDay = String(new Date()).substring(4, 15);\n\n\t\t\t\t//\n\t\t\t\t$scope.targetingData = {\n\t\t\t\t\tzipCode: '',\n\t\t\t\t\tradius: undefined,\n\t\t\t\t\tadvertisingCampaignId: $stateParams.adid\n\t\t\t\t};\n\n\t\t\t\t$scope.getCheckedStatus = function (data) {\n\t\t\t\t\tswitch (data.status) {\n\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\tcase 2048:\n\t\t\t\t\t\t\t$scope.data.status = 1;\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\tcase 4096:\n\t\t\t\t\t\t\t$scope.data.status = 0;\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn true\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\t// if the video list as an id that is null you will need to create a separate object that is pushed those objects\n\t\t\t\t// these will be a part of the list when adding video listings\n\t\t\t\t$scope.createUnaddedVideoListing = function () {\n\t\t\t\t\t$scope.endDateSelect = [];\n\t\t\t\t\t$scope.unAddedVideoList = [];\n\t\t\t\t\tfor (var i = 0; i < $scope.videoListing.length; i++) {\n\t\t\t\t\t\tif ($scope.videoListing[i].adId === null) {\n\t\t\t\t\t\t\t$scope.unAddedVideoList.push($scope.videoListing[i]);\n\n\t\t\t\t\t\t\t// I am pushing a new date based on the number of videos that can be added\n\t\t\t\t\t\t\t// this is really wonky how the md date picker works\n\t\t\t\t\t\t\t$scope.endDateSelect.push($scope.data.endOn);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\t$scope.createUnaddedVideoListing();\n\n\t\t\t\t// Listen to editAdvertising.update. if it changes, update the adData\n\t\t\t\t$scope.$on('editAdvertising.update', function () {\n\t\t\t\t\t$scope.adData = Object.assign({}, advertising.data);\n\t\t\t\t});\n\n\t\t\t\t/* These functions control the geo trafficking portion */\n\t\t\t\t$scope.addZipCode = function (body) {\n\t\t\t\t\t$scope.targetingData = {\n\t\t\t\t\t\tzipCode: undefined,\n\t\t\t\t\t\tradius: undefined\n\t\t\t\t\t};\n\t\t\t\t\treturn advertisingApi.saveGeoTargetingCampaign(body, campaignData.get('partnerid'))\n\t\t\t\t\t\t.then(function (result) {\n\t\t\t\t\t\t\t$scope.geoData.push($scope.targetingData);\n\t\t\t\t\t\t\tif (parseInt(result.status) / 100 === 2) {\n\t\t\t\t\t\t\t\treturn advertisingApi.getGeoTargeting($stateParams.adid, campaignData.get('partnerid'))\n\t\t\t\t\t\t\t\t\t.then(function (result) {\n\t\t\t\t\t\t\t\t\t\t$scope.geoData = result.data;\n\t\t\t\t\t\t\t\t\t\t$scope.targetingData = {\n\t\t\t\t\t\t\t\t\t\t\tzipCode: null,\n\t\t\t\t\t\t\t\t\t\t\tradius: 50,\n\t\t\t\t\t\t\t\t\t\t\tadvertisingCampaignId: $stateParams.adid\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\treturn $scope.geoData;\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// assigns result to data\n\t\t\t\t\t\t\treturn result.data;\n\t\t\t\t\t\t});\n\t\t\t\t};\n\n\t\t\t\t$scope.deleteZipCode = function ($event, id) {\n\t\t\t\t\treturn advertisingApi.deleteGeoTargetingCampaign($stateParams.adid, id, campaignData.get('partnerid'))\n\t\t\t\t\t\t.then(function (result) {\n\t\t\t\t\t\t\tconsole.log(result);\n\t\t\t\t\t\t\t// assigns result to data\n\t\t\t\t\t\t\treturn advertisingApi.getGeoTargeting($stateParams.adid, campaignData.get('partnerid'))\n\t\t\t\t\t\t\t\t.then(function (result) {\n\t\t\t\t\t\t\t\t\t$scope.geoData = result.data;\n\t\t\t\t\t\t\t\t\t$scope.targetingData = {\n\t\t\t\t\t\t\t\t\t\tzipCode: null,\n\t\t\t\t\t\t\t\t\t\tradius: 50,\n\t\t\t\t\t\t\t\t\t\tadvertisingCampaignId: $stateParams.adid\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn $scope.geoData;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t\t/*************************************************************/\n\n\t\t\t\t/* These functions will save data that has been edited */\n\t\t\t\t$scope.saveAdCampaign = function (body) {\n\t\t\t\t\treturn advertisingApi.saveAdCampaign(body)\n\t\t\t\t\t\t.then(function (result) {\n\t\t\t\t\t\t\t// assigns result to data\n\t\t\t\t\t\t\treturn result.data;\n\t\t\t\t\t\t});\n\t\t\t\t};\n\n\t\t\t\t/* After Blur invokes this, the data is change */\n\t\t\t\t$scope.updateAdData = function (body, data) {\n\t\t\t\t\t// I have to re-edit the date so it can be sent to the back end\n\t\t\t\t\tvar temp = Object.assign({}, body);\n\t\t\t\t\tdelete temp.videoCode;\n\t\t\t\t\ttemp.ad = {\"videoCode\": body.videoCode};\n\t\t\t\t\t// make api put call to send the edited body\n\t\t\t\t\treturn advertisingApi.saveAdListing(data.advertisingCampaignId, data.partnerId, body.adId, temp)\n\t\t\t\t\t\t.then(function (result) {\n\t\t\t\t\t\t\tif (parseInt(result.status) / 100 === 2) {\n\t\t\t\t\t\t\t\treturn advertisingApi.getAdByCampaign($stateParams.adid, campaignData.get('partnerid'))\n\t\t\t\t\t\t\t\t\t.then(function (result) {\n\t\t\t\t\t\t\t\t\t\t// skip the http result info, just give the data.\n\t\t\t\t\t\t\t\t\t\t$scope.adData = result.data;\n\t\t\t\t\t\t\t\t\t\treturn $scope.adData\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn result.data;\n\t\t\t\t\t\t});\n\t\t\t\t};\n\n\t\t\t\t$scope.updateCampaignData = function ($event, body) {\n\t\t\t\t\tvar el = $event && angular.element($event.target);\n\t\t\t\t\tconsole.log( arguments );\n\t\t\t\t\tif ( el && util.forms.isFormFieldDirty(el) || !el ) {\n\t\t\t\t\t\treturn advertisingApi.saveCampaign(body)\n\t\t\t\t\t\t\t.then(function (result) {\n\t\t\t\t\t\t\t\tif (parseInt(result.status) / 100 === 2) {\n\t\t\t\t\t\t\t\t\tadvertisingApi.getById(campaignData.get('id'), campaignData.get('partnerid'))\n\t\t\t\t\t\t\t\t\t\t.then(function (result) {\n\t\t\t\t\t\t\t\t\t\t\t// assigns result to data\n\t\t\t\t\t\t\t\t\t\t\tconsole.log('data', result.data[0]);\n\t\t\t\t\t\t\t\t\t\t\t$scope.data = result.data[0];\n\t\t\t\t\t\t\t\t\t\t\t$scope.started = Date.parse($scope.data.startOn);\n\t\t\t\t\t\t\t\t\t\t\t$scope.ended = Date.parse($scope.data.endOn);\n\n\t\t\t\t\t\t\t\t\t\t\t// Need to retrieve the Video Listing again because a dependent date may have been changed\n\t\t\t\t\t\t\t\t\t\t\tadvertisingApi.getVideoListing(campaignData.get('id'), campaignData.get('partnerid'))\n\t\t\t\t\t\t\t\t\t\t\t\t.then(function (result) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t// assigns result to data\n\t\t\t\t\t\t\t\t\t\t\t\t\t$scope.videoListing = result.data;\n\t\t\t\t\t\t\t\t\t\t\t\t\t$scope.createUnaddedVideoListing();\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn $scope.videoListing\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\treturn $scope.data;\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// assigns result to data\n\t\t\t\t\t\t\t\treturn result.data;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\t/*************************************************************/\n\n\n\t\t\t\t/* This section keeps track of the Ad Status and prompts the user with a dialog box */\n\t\t\t\t$scope.toggleAdStatus = function (status, $event, element) {\n\t\t\t\t\tif (status) {\n\t\t\t\t\t\t$scope.showAdConfirm($event, 0, element)\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$scope.showAdConfirm($event, 1, element)\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\t$scope.showAdConfirm = function (ev, status, element) {\n\t\t\t\t\tif (!status) {\n\t\t\t\t\t\tvar confirm = $mdDialog.confirm()\n\t\t\t\t\t\t\t.title('This will stop the campaign. Are you sure?')\n\t\t\t\t\t\t\t.targetEvent(ev)\n\t\t\t\t\t\t\t.ok('Yes')\n\t\t\t\t\t\t\t.cancel('No');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconfirm = $mdDialog.confirm()\n\t\t\t\t\t\t\t.title('This will start the campaign. Are you sure?')\n\t\t\t\t\t\t\t.targetEvent(ev)\n\t\t\t\t\t\t\t.ok('Yes')\n\t\t\t\t\t\t\t.cancel('No');\n\t\t\t\t\t}\n\n\t\t\t\t\t$mdDialog.show(confirm).then(function () {\n\t\t\t\t\t\telement.status ? element.status = 4096 : element.status = 2048;\n\t\t\t\t\t\t$scope.updateCampaignData(element)\n\t\t\t\t\t}, function () {\n\t\t\t\t\t\t// !element.status ? element.status = 4096 : element.status = 2048;\n\t\t\t\t\t\t// $scope.updateCampaignData(element)\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t\t/*************************************************************/\n\n\n\t\t\t\t/* This section keeps track of the Listing Status and prompts the user with a dialog box */\n\t\t\t\t$scope.toggleListingStatus = function (status, $event, element, data) {\n\t\t\t\t\tif (status) {\n\t\t\t\t\t\t$scope.showListingConfirm($event, 0, element, data)\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$scope.showListingConfirm($event, 1, element, data)\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\t$scope.showListingConfirm = function (ev, status, element, data) {\n\t\t\t\t\tif (!status) {\n\t\t\t\t\t\tvar confirm = $mdDialog.confirm()\n\t\t\t\t\t\t\t.title('This will stop the video listing. Are you sure?')\n\t\t\t\t\t\t\t.targetEvent(ev)\n\t\t\t\t\t\t\t.ok('Yes')\n\t\t\t\t\t\t\t.cancel('No');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconfirm = $mdDialog.confirm()\n\t\t\t\t\t\t\t.title('This will start the video listing. Are you sure?')\n\t\t\t\t\t\t\t.targetEvent(ev)\n\t\t\t\t\t\t\t.ok('Yes')\n\t\t\t\t\t\t\t.cancel('No');\n\t\t\t\t\t}\n\n\t\t\t\t\t$mdDialog.show(confirm).then(function () {\n\t\t\t\t\t\telement.enabled ? element.enabled = false : element.enabled = true;\n\t\t\t\t\t\t$scope.updateAdData(element, data);\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t\t/*************************************************************/\n\n\t\t\t\t/* This section will control the addition of a product to campaign */\n\n\t\t\t\t$scope.toggleProductStatus = function ($event, productTableValues) {\n\t\t\t\t\t$scope.showConfirm($event, productTableValues);\n\t\t\t\t};\n\n\t\t\t\t$scope.showConfirm = function (ev, productTableValues) {\n\t\t\t\t\tvar confirm = $mdDialog.confirm()\n\t\t\t\t\t\t.title('Are you sure you want to add this product?')\n\t\t\t\t\t\t.targetEvent(ev)\n\t\t\t\t\t\t.ok('Yes')\n\t\t\t\t\t\t.cancel('No');\n\n\t\t\t\t\t$mdDialog.show(confirm).then(function () {\n\t\t\t\t\t\t$scope.addNewProductToCampaign(productTableValues)\n\t\t\t\t\t});\n\t\t\t\t};\n\n\t\t\t\t/*************************************************************/\n\n\n\t\t\t\t/* toggle video dialog box so the user can multi select from the list and add it to the current video list */\n\n\t\t\t\t/* This section keeps track of the Listing Status and prompts the user with a dialog box */\n\t\t\t\t$scope.toggleVideoList = function (ev) {\n\t\t\t\t\t$mdDialog.show({\n\t\t\t\t\t\tcontentElement: '#myDialog',\n\t\t\t\t\t\tparent: angular.element(document.body),\n\t\t\t\t\t\ttargetEvent: ev,\n\t\t\t\t\t\tclickOutsideToClose: true\n\t\t\t\t\t})\n\t\t\t\t};\n\n\t\t\t\t/*************************************************************/\n\n\t\t\t\t/* Add to Video Listing */\n\n\t\t\t\t$scope.addVideoToList = function (element, endDate, startDate, today, index) {\n\t\t\t\t\tif ($scope.selectedVideoListing[index]) {\n\t\t\t\t\t\t$scope.selectedVideoListing[index] = null\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$scope.selectedVideoListing[index] = {\n\t\t\t\t\t\t\t\"ad\": {\n\t\t\t\t\t\t\t\t\"videoCode\": element.videoCode\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"startOn\": startDate > today ? startDate : new Date().toISOString().substring(0, 10),\n\t\t\t\t\t\t\t\"endOn\": new Date(endDate).toISOString().substring(0, 10),\n\t\t\t\t\t\t\t\"clickUrl\": element.websiteUrl\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\t$scope.updateDate = function (endDate, index) {\n\t\t\t\t\t$scope.endDateSelect[index] = endDate\n\t\t\t\t};\n\n\t\t\t\t$scope.submitVideoListing = function () {\n\t\t\t\t\t$mdDialog.hide();\n\t\t\t\t\tfor (var i = 0; i < $scope.selectedVideoListing.length; i++) {\n\t\t\t\t\t\tif ($scope.selectedVideoListing[i]) {\n\t\t\t\t\t\t\tadvertisingApi.addVideosToListing($stateParams.adid, campaignData.get('partnerid'), $scope.selectedVideoListing[i])\n\t\t\t\t\t\t\t\t.then(function (result) {\n\t\t\t\t\t\t\t\t\t// grab video listing data after posting content\n\t\t\t\t\t\t\t\t\treturn advertisingApi.getAdByCampaign($stateParams.adid, campaignData.get('partnerid'))\n\t\t\t\t\t\t\t\t\t\t.then(function (result) {\n\t\t\t\t\t\t\t\t\t\t\t// skip the http result info, just give the data.\n\t\t\t\t\t\t\t\t\t\t\t$scope.adData = result.data;\n\t\t\t\t\t\t\t\t\t\t\treturn $scope.adData\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\treturn result.data;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t/* Updating the Product Data Table to allow the user add impressions */\n\t\t\t\t$scope.updatePartnerProductTable = function (product) {\n\t\t\t\t\t$scope.productTableValues = Object.assign({}, product);\n\t\t\t\t};\n\t\t\t\t$scope.addNewProductToCampaign = function (body) {\n\t\t\t\t\t$scope.productBody = {\n\t\t\t\t\t\t\"advertisingProductId\": body.advertisingProductId,\n\t\t\t\t\t\t\"partnerId\": body.partnerId,\n\t\t\t\t\t\t\"name\": body.name,\n\t\t\t\t\t\t\"impressions\": body.impressions,\n\t\t\t\t\t\t\"duration\": body.duration\n\t\t\t\t\t};\n\n\t\t\t\t\t// post new body\n\t\t\t\t\treturn advertisingApi.addPartnerProduct(campaignData.get('partnerid'), $stateParams.adid, $scope.productBody)\n\t\t\t\t\t\t.then(function (result) {\n\t\t\t\t\t\t\tif (parseInt(result.status) / 100 === 2) {\n\t\t\t\t\t\t\t\treturn advertisingApi.getProducts($stateParams.adid, campaignData.get('partnerid'))\n\t\t\t\t\t\t\t\t\t.then(function (result) {\n\t\t\t\t\t\t\t\t\t\t// assigns result to data\n\t\t\t\t\t\t\t\t\t\treturn $scope.productData = result.data;\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn result.data;\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}]);\n\n})(window, window.angular);\n","(function (window, angular, undefined) {\n\t'use strict';\n\n\n\tvar MONTHS = [\n\t\t'Jan.',\n\t\t'Feb.',\n\t\t'Mar.',\n\t\t'Apr.',\n\t\t'May',\n\t\t'Jun.',\n\t\t'Jul.',\n\t\t'Aug.',\n\t\t'Sep.',\n\t\t'Oct.',\n\t\t'Nov.',\n\t\t'Dec.'\n\t];\n\n\tvar CHART_OFFSET = 5;\n\n\n\tfunction getDailyImpressions (impressionData, month) {\n\t\tvar impressions = { labels: [], values: [] };\n\t\tvar threshold = 90;\n\t\tvar startingPoint = 0;\n\t\tvar filtered;\n\n\t\tif (impressionData) {\n\n\t\t\tif ( month ) {\n\t\t\t\tfiltered = impressionData.filter( function( val ) {\n\t\t\t\t\tvar pDate = new Date( val.processDate );\n\t\t\t\t\treturn pDate.getFullYear() === month.getFullYear() && pDate.getMonth() === month.getMonth();\n\t\t\t\t});\n\t\t\t} else if (impressionData.length - threshold > 0) {\n\t\t\t\tfiltered = impressionData.filter( function( val, idx ) {\n\t\t\t\t\treturn idx >= impressionData.length - threshold;\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tfiltered = impressionData;\n\t\t\t}\n\n\t\t\t// extract the impressions as data\n\t\t\tfor (var i = 0; i < filtered.length; i++) {\n\t\t\t\tvar pDate = new Date( filtered[i].processDate );\n\t\t\t\timpressions.values.push(filtered[i].impressions);\n\t\t\t\timpressions.labels.push( ( pDate.getMonth() + 1 ) + '-' + ( pDate.getDate() ) + '-' + ( pDate.getFullYear() ) );\n\n\t\t\t}\n\t\t}\n\t\treturn impressions\n\t}\n\n\tangular.module('app.controllers.campaign.advertisingController', ['app.controllers.campaign.advertising.edit', 'chart.js', 'ngTable'])\n\t\t.config(['$stateProvider', 'USER_ROLES', function ($stateProvider, USER_ROLES) {\n\t\t\t$stateProvider\n\t\t\t\t.state('app.campaign.advertising', {\n\t\t\t\t\turl: '/advertising',\n\t\t\t\t\tcontroller: [function () {\n\t\t\t\t\t}],\n\t\t\t\t\tabstract: true,\n\t\t\t\t\ttemplate: '',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tauthorizedRoles: [\n\t\t\t\t\t\t\tUSER_ROLES.masterAdmin,\n\t\t\t\t\t\t\tUSER_ROLES.productionCoordinator,\n\t\t\t\t\t\t\tUSER_ROLES.productionManager,\n\t\t\t\t\t\t\tUSER_ROLES.productionScheduler,\n\t\t\t\t\t\t\tUSER_ROLES.accountExecutive\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t// resolve the data before the ui-view loads in\n\t\t\t\t\tresolve: {\n\t\t\t\t\t\tadListing: ['advertising.api', 'campaigndata', function (advertisingApi, campaignData) {\n\t\t\t\t\t\t\treturn advertisingApi.getById(campaignData.get('id'), campaignData.get('partnerid'))\n\t\t\t\t\t\t\t\t.then(function (result) {\n\t\t\t\t\t\t\t\t\t// assigns result to data\n\t\t\t\t\t\t\t\t\tvar adListing = result.data;\n\n\t\t\t\t\t\t\t\t\treturn adListing;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}]\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.state('app.campaign.advertising.overview', {\n\t\t\t\t\turl: '',\n\t\t\t\t\tcontroller: 'advertisingController',\n\t\t\t\t\tcontrollerAs: 'ctrl',\n\t\t\t\t\ttemplateUrl: '/templates/campaign/advertising/advertisingListing/advertising.tpl.html',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tauthorizedRoles: [\n\t\t\t\t\t\t\tUSER_ROLES.masterAdmin,\n\t\t\t\t\t\t\tUSER_ROLES.productionCoordinator,\n\t\t\t\t\t\t\tUSER_ROLES.productionManager,\n\t\t\t\t\t\t\tUSER_ROLES.productionScheduler,\n\t\t\t\t\t\t\tUSER_ROLES.accountExecutive,\n\t\t\t\t\t\t\tUSER_ROLES.videoProductionAssistant\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\tresolve: {\n\t\t\t\t\t\tadListing: ['advertising.api', 'campaigndata', function (advertisingApi, campaignData) {\n\t\t\t\t\t\t\treturn advertisingApi.getById(campaignData.get('id'), campaignData.get('partnerid'))\n\t\t\t\t\t\t\t\t.then(function (result) {\n\t\t\t\t\t\t\t\t\t// assigns result to data\n\t\t\t\t\t\t\t\t\tvar adListing = result.data;\n\n\t\t\t\t\t\t\t\t\treturn adListing;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}],\n\n\t\t\t\t\t\timpressionData: ['adListing', 'advertising.api', 'campaigndata', 'partnerdata', function (adListing, advertisingApi, campaignData, partnerdata) {\n\t\t\t\t\t\t\t// take out dates and inject into array\n\t\t\t\t\t\t\tif (adListing) {\n\t\t\t\t\t\t\t\tvar startDate = adListing[0].startOn.substring(0, 10);\n\t\t\t\t\t\t\t\tvar endDate = adListing[0].endOn.substring(0, 10);\n\n\t\t\t\t\t\t\t\treturn advertisingApi.getReports(campaignData._campaignId, partnerdata._clientId, startDate, endDate)\n\t\t\t\t\t\t\t\t\t.then(function (result) {\n\t\t\t\t\t\t\t\t\t\t// assigns result to data\n\t\t\t\t\t\t\t\t\t\t// sets the impression data to the result\n\t\t\t\t\t\t\t\t\t\tvar impressionData = result.data.sort( function( a, b ) {\n\t\t\t\t\t\t\t\t\t\t\treturn new Date( a.processDate ) - new Date( b.processDate );\n\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\treturn impressionData;\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}],\n\t\t\t\t\t\tdailyImpressions: ['impressionData', getDailyImpressions],\n\t\t\t\t\t\tmonthlyImpressions: ['impressionData', function (impressionData) {\n\t\t\t\t\t\t\tvar impressions = {};\n\t\t\t\t\t\t\t// Aggregate the data into year -> month\n\t\t\t\t\t\t\tif (impressionData) {\n\t\t\t\t\t\t\t\tfor (var i = 0; i < impressionData.length; i++) {\n\t\t\t\t\t\t\t\t\tvar processDate = new Date(impressionData[i].processDate);\n\t\t\t\t\t\t\t\t\tvar year = processDate.getFullYear();\n\t\t\t\t\t\t\t\t\tvar month = processDate.getMonth();\n\t\t\t\t\t\t\t\t\tif (impressions[year] === undefined) {\n\t\t\t\t\t\t\t\t\t\timpressions[year] = {};\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (impressions[year][month] === undefined) {\n\t\t\t\t\t\t\t\t\t\timpressions[year][month] = 0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\timpressions[year][month] += impressionData[i].impressions;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\n\n\n\n\t\t\t\t\t\t\tconsole.log(\"MONTH DATA\", impressions);\n\n\t\t\t\t\t\t\t// Flatten years into date strings\n\t\t\t\t\t\t\tvar flatVal = {};\n\t\t\t\t\t\t\tangular.forEach( impressions, function( val, year ) {\n\t\t\t\t\t\t\t\tfor ( var x = 0; x < 12; x++ ) {\n\t\t\t\t\t\t\t\t\tif ( val[x] === undefined ) {\n\t\t\t\t\t\t\t\t\t\tval[x] = 0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tangular.forEach( val, function( imp, month ) {\n\t\t\t\t\t\t\t\t\tflatVal[ MONTHS[month] + ' ' + year ] = imp;\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t// sort dates and then split into label / value\n\t\t\t\t\t\t\tvar firstMonth = true;\n\t\t\t\t\t\t\tvar returnVal = Object.entries( flatVal ).sort( function( a, b ) {\n\t\t\t\t\t\t\t\treturn new Date( a[0] ) - new Date( b[0] );\n\t\t\t\t\t\t\t}).filter( function( val ) {\n\t\t\t\t\t\t\t\tif ( firstMonth && !val[1] ) {\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tfirstMonth = false;\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} ).reduce( function( prev, curr, i ) {\n\t\t\t\t\t\t\t\tprev.labels.push( curr[0] );\n\t\t\t\t\t\t\t\tprev.values.push( parseInt( curr[1] ) );\n\t\t\t\t\t\t\t\treturn prev;\n\t\t\t\t\t\t\t}, {labels: [], values: []});\n\n\t\t\t\t\t\t\treturn returnVal;\n\t\t\t\t\t\t}]\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t}])\n\t\t// Inject the dependencies into your controller from outside sources\n\t\t.controller('advertisingController', [\n\t\t\t'$scope',\n\t\t\t'$timeout',\n\t\t\t'vls.user',\n\t\t\t'USER_ROLES',\n\t\t\t'campaigndata',\n\t\t\t'partnerdata',\n\t\t\t'advertising.api',\n\t\t\t'adListing',\n\t\t\t'impressionData',\n\t\t\t'dailyImpressions',\n\t\t\t'monthlyImpressions',\n\t\t\tfunction ($scope, $timeout, vlsUser, USER_ROLES, campaignData, partnerdata, advertisingApi, adListing, impressionData, dailyImpressions, monthlyImpressions) {\n\t\t\t\tconsole.log( 'impression data', dailyImpressions, monthlyImpressions );\n\t\t\t\t$scope.adListing = adListing;\n\t\t\t\t$scope.data = JSON.stringify(adListing);\n\n\t\t\t\t$scope.canEdit = vlsUser.isAuthorized([\n\t\t\t\t\tUSER_ROLES.masterAdmin,\n\t\t\t\t\tUSER_ROLES.productionCoordinator,\n\t\t\t\t\tUSER_ROLES.productionManager,\n\t\t\t\t\tUSER_ROLES.productionScheduler,\n\t\t\t\t\tUSER_ROLES.accountExecutive,\n\t\t\t\t\t// USER_ROLES.videoProductionAssistant\n\t\t\t\t], partnerdata.get('partnerCode') );\n\n\t\t\t\t// $scope.minValue = minImpressionData;\n\t\t\t\t// $scope.maxValue = maxImpressionData;\n\n\t\t\t\tfunction chartMin(impressions) {\n\t\t\t\t\tif (impressions) {\n\t\t\t\t\t\tvar sortedData = [].concat(impressions).sort(function( a, b ) { return a - b });\n\t\t\t\t\t\tconsole.log( 'impression sorted', sortedData );\n\t\t\t\t\t\tvar min = Math.max( 0, Math.floor((sortedData[0] - CHART_OFFSET) / CHART_OFFSET) * CHART_OFFSET );\n\t\t\t\t\t\treturn min\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfunction chartMax(impressions) {\n\t\t\t\t\tif (impressions) {\n\t\t\t\t\t\tvar sortedData = [].concat(impressions).sort(function( a, b ) { return a - b });\n\t\t\t\t\t\tconsole.log( 'impression sorted', sortedData );\n\t\t\t\t\t\tvar max = Math.ceil((sortedData[sortedData.length - 1] + CHART_OFFSET) / CHART_OFFSET) * CHART_OFFSET;\n\t\t\t\t\t\treturn max\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t$scope.getCampaignProductList = function( products ) {\n\t\t\t\t\treturn products.reduce( function( val, product ) {\n\t\t\t\t\t\treturn ( val === '' ? '' : val + ', ' ) + product.name\n\t\t\t\t\t}, '')\n\t\t\t\t}\n\n\t\t\t\t$scope.getCampaignImpressions = function( products ) {\n\t\t\t\t\treturn products.reduce( function( val, product ) {\n\t\t\t\t\t\treturn val += product.impressions;\n\t\t\t\t\t}, 0)\n\t\t\t\t}\n\n\t\t\t\t// create double array so angular charts can render the color for hovering over data point\n\t\t\t\t$scope.dailyChart = {\n\t\t\t\t\timpressions: [dailyImpressions.values],\n\t\t\t\t\tseries: ['Daily Impressions'],\n\t\t\t\t\tdatasetOverride: [{yAxisID: 'y-axis-1'}],\n\t\t\t\t\tlabels: dailyImpressions.labels,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tresponsive: true,\n\t\t\t\t\t\ttension: 0,\n\t\t\t\t\t\tscales: {\n\t\t\t\t\t\t\tyAxes: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tid: 'y-axis-1',\n\t\t\t\t\t\t\t\t\ttype: 'linear',\n\t\t\t\t\t\t\t\t\tdisplay: true,\n\t\t\t\t\t\t\t\t\tposition: 'left',\n\t\t\t\t\t\t\t\t\ttension: 0,\n\t\t\t\t\t\t\t\t\t// range is plus and minus 5 rounded by 5 of the data set\n\t\t\t\t\t\t\t\t\tticks: {\n\t\t\t\t\t\t\t\t\t\tmin: chartMin(dailyImpressions.values),\n\t\t\t\t\t\t\t\t\t\tmax: chartMax(dailyImpressions.values)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\txAxes: [{\n\t\t\t\t\t\t\t\tticks: {\n\t\t\t\t\t\t\t\t\tautoSkip: true\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}]\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\n\t\t\t\t};\n\n\t\t\t\t$scope.monthlyChart = {\n\t\t\t\t\timpressions: [monthlyImpressions.values],\n\t\t\t\t\tseries: ['Monthly Impressions'],\n\t\t\t\t\tdatasetOverride: [{yAxisID: 'y-axis-1'}],\n\t\t\t\t\tlabels: monthlyImpressions.labels,\n\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tresponsive: true,\n\t\t\t\t\t\ttension: 0,\n\t\t\t\t\t\tscales: {\n\t\t\t\t\t\t\tyAxes: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tid: 'y-axis-1',\n\t\t\t\t\t\t\t\t\ttype: 'linear',\n\t\t\t\t\t\t\t\t\tdisplay: true,\n\t\t\t\t\t\t\t\t\tposition: 'left',\n\t\t\t\t\t\t\t\t\ttension: 0,\n\t\t\t\t\t\t\t\t\t// range is plus and minus 5 rounded by 5 of the data set\n\t\t\t\t\t\t\t\t\tticks: {\n\t\t\t\t\t\t\t\t\t\tmin: chartMin(monthlyImpressions.values),\n\t\t\t\t\t\t\t\t\t\tmax: chartMax(monthlyImpressions.values),\n\t\t\t\t\t\t\t\t\t\tautoSkip: true\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\txAxes: [{\n\t\t\t\t\t\t\t\tticks: {\n\t\t\t\t\t\t\t\t\tautoSkip: true\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}]\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tonClick: function( chart, $event ) {\n\t\t\t\t\t\tchart = chart[0];\n\t\t\t\t\t\tvar month = new Date( $scope.monthlyChart.labels[ chart._index ] );\n\t\t\t\t\t\tvar filtered = getDailyImpressions( impressionData, month );\n\t\t\t\t\t\tconsole.log( chart._index, $scope.monthlyChart[chart._index], month, filtered );\n\t\t\t\t\t\t$scope.dailyChart.impressions = [filtered.values];\n\t\t\t\t\t\t$scope.dailyChart.labels = filtered.labels;\n\t\t\t\t\t\t$scope.dailyChart.options.scales.yAxes[0].ticks.min = chartMin( filtered.values );\n\t\t\t\t\t\t$scope.dailyChart.options.scales.yAxes[0].ticks.max = chartMax( filtered.values );\n\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tconsole.log(\"Chart Data\", $scope.chart);\n\n\t\t\t\t$scope.isChecked = function (status) {\n\t\t\t\t\treturn status;\n\t\t\t\t}\n\n\t\t\t}]);\n\n})(window, window.angular);\n","(function ( window, angular, undefined ) {\n\t'use strict';\n\n\tangular.module( 'app.controllers.users.editController', [] )\n\t\t.controller( 'editUserController', [ '$scope', '$state', '$stateParams', '$mdConstant', '$mdDialog', 'vls.partners', 'vls.api', 'vls.search.api', 'security.api', 'util', 'user', 'USER_ROLES', function ( $scope, $state, $stateParams, $mdConstant, $mdDialog, vlsPartners, vlsApi, vlsSearchApi, securityApi, util, user, USER_ROLES ) {\n\t\t\tconsole.log( 'IN EDIT', $stateParams.vlsUser, user );\n\n\t\t\tif ( !$stateParams.vlsUser && user !== 'new' ) {\n\t\t\t\t$state.go( '^' );\n\t\t\t}\n\n\t\t\tfunction createFilterForPartner( query ) {\n\t\t\t\tvar lowercaseQuery = query.toLowerCase();\n\n\t\t\t\treturn function ( partner ) {\n\t\t\t\t\t// if ( usedPartners[partner.partnerCode] ) {\n\t\t\t\t\t// return false;\n\t\t\t\t\t// }\n\t\t\t\t\tif ( lowercaseQuery ) {\n\t\t\t\t\t\tconsole.log( 'FILTER', partner.partnerCode, partner.name );\n\t\t\t\t\t\treturn partner.partnerCode.toLowerCase()\n\t\t\t\t\t\t\t.indexOf( lowercaseQuery ) === 0 || partner.name.toLowerCase()\n\t\t\t\t\t\t\t.indexOf( lowercaseQuery ) === 0;\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tfunction createFilterForUser( query ) {\n\t\t\t\tvar lowercaseQuery = query.toLowerCase();\n\n\t\t\t\treturn function ( user ) {\n\t\t\t\t\tif ( lowercaseQuery ) {\n\t\t\t\t\t\tconsole.log( user, lowercaseQuery );\n\t\t\t\t\t\treturn user.firstname.toLowerCase()\n\t\t\t\t\t\t\t.indexOf( lowercaseQuery ) === 0 || user.lastname.toLowerCase()\n\t\t\t\t\t\t\t.indexOf( lowercaseQuery ) === 0 || (user.emailaddress && user.emailaddress.toLowerCase()\n\t\t\t\t\t\t\t.indexOf( lowercaseQuery ) !== -1);\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tfunction setUserRoles() {\n\t\t\t\t$scope.userRoles = {};\n\n\t\t\t\t// if ( $scope.newUser ) {\n\t\t\t\t// \treturn;\n\t\t\t\t// }\n\t\t\t\t$scope.userRoles = {};\n\t\t\t\tangular.forEach( $scope.user.userRoles, function ( val, key ) {\n\t\t\t\t\t$scope.userRoles[ val.partnerId ] = $scope.userRoles[ val.partnerId ] || [];\n\t\t\t\t\t$scope.userRoles[ val.partnerId ].push( val.roleId );\n\t\t\t\t} );\n\t\t\t\tsetPartnerSelectOptions();\n\t\t\t}\n\n\t\t\tfunction setPartnerSelectOptions() {\n\t\t\t\tif ( $scope.partnerSelect ) {\n\t\t\t\t\t$scope.partnerSelect.options = [];\n\t\t\t\t}\n\t\t\t\tangular.forEach( $scope.partners, function ( val ) {\n\t\t\t\t\tif ( val.partnerCode === 'CNC' || val.partnerCode === 'BPL' ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif ( $scope.userRoles[ val.id ] && $scope.userRoles[ val.id ].length ) {\n\t\t\t\t\t\tconsole.log( val );\n\t\t\t\t\t\t$scope.partnerArray.push( val );\n\t\t\t\t\t}\n\t\t\t\t\t$scope.partnerSelect.options.push( {\n\t\t\t\t\t\tvalue: val.id,\n\t\t\t\t\t\tlabel: val.partnerCode + ' - ' + val.name\n\t\t\t\t\t} );\n\t\t\t\t\t$scope.partnerSelect.options.sort( util.objectKeyAlphaSort( 'label' ) );\n\t\t\t\t} );\n\t\t\t}\n\n\n\n\t\t\tfunction saveUserData() {\n\n\n\t\t\t\tvar saveObj = {\n\t\t\t\t\tfirstname: $scope.user.demographic.firstName,\n\t\t\t\t\tlastname: $scope.user.demographic.lastName,\n\t\t\t\t\tbusinessphone: $scope.user.demographic.businessPhone,\n\t\t\t\t\temailaddress: $scope.user.demographic.emailAddress,\n\t\t\t\t\taddressline1: $scope.user.demographic.addressLine1,\n\t\t\t\t\taddressline2: $scope.user.demographic.addressLine2,\n\t\t\t\t\tcity: $scope.user.demographic.city,\n\t\t\t\t\tstate: $scope.user.demographic.state,\n\t\t\t\t\tpostalcode: $scope.user.demographic.postalCode,\n\t\t\t\t\troles: [],\n\t\t\t\t\tnewPassword: $scope.user.newpassword,\n\t\t\t\t\tnewPassword2: $scope.user.newpassword2\n\t\t\t\t};\n\n\t\t\t\tif ( $scope.newUser ) {\n\t\t\t\t\tsaveObj.username = $scope.user.userName;\n\t\t\t\t}\n\n\t\t\t\tconsole.log( 'PARTNERS', $scope.partners, $scope.userRoles );\n\t\t\t\tangular.forEach( $scope.userRoles, function ( val, key ) {\n\t\t\t\t\tconsole.log( val, key );\n\t\t\t\t\tif ( key && key != 0 ) {\n\t\t\t\t\t\tvar partner = Object.values( $scope.partners )\n\t\t\t\t\t\t\t.find( function ( partner ) {\n\t\t\t\t\t\t\t\treturn partner.id == key;\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\tconsole.log( 'PARTNER', partner, key );\n\t\t\t\t\t\tif ( partner ) {\n\t\t\t\t\t\t\tsaveObj.roles.push({\n\t\t\t\t\t\t\t\tpartnercode: partner.partnerCode,\n\t\t\t\t\t\t\t\troleids: val\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t\tif ( ! saveObj.roles.length ) {\n\t\t\t\t\t$mdDialog.show( $mdDialog\n\t\t\t\t\t\t.alert()\n\t\t\t\t\t\t.title('User needs at least 1 role.')\n\t\t\t\t\t\t.ok( 'Confirm' )\n\t\t\t\t\t\t.multiple( true ) );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconsole.log( saveObj );\n\n\t\t\t\t// Do Save stuff\n\t\t\t\tsaveObj.roles = JSON.stringify( saveObj.roles );\n\t\t\t\tif ( $scope.newUser ) {\n\t\t\t\t\tsaveObj.method = 'CREATE';\n\t\t\t\t} else {\n\t\t\t\t\tsaveObj.vlsuserid = $scope.user.id;\n\t\t\t\t\tsaveObj.userid = $scope.user.id;\n\t\t\t\t\tsaveObj.id = $scope.user.id;\n\t\t\t\t}\n\t\t\t\tconsole.log( saveObj );\n\t\t\t\tif ( saveObj.newPassword && saveObj.newPassword2 && saveObj.newPassword === saveObj.newPassword2 ) {\n\t\t\t\t\tsaveObj.password = saveObj.newPassword;\n\t\t\t\t}\n\t\t\t\t delete saveObj.newPassword;\n\t\t\t\t delete saveObj.newPassword2;\n\n\t\t\t\tconsole.log( 'SAVE OBJ', $scope.user, saveObj );\n\n\t\t\t\treturn vlsApi.saveUser( saveObj )\n\t\t\t\t\t.then( function ( result ) {\n\t\t\t\t\t\tif ( $scope.newUser && result.data.id ) {\n\t\t\t\t\t\t\treturn result.data.id;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// saveObj.roles = JSON.parse( saveObj.roles );\n\t\t\t\t\t\t// $scope.user = saveObj;\n\t\t\t\t\t} );\n\t\t\t}\n\n\t\t\tconsole.log( $stateParams );\n\t\t\tif ( !user.id ) {\n\t\t\t\t$scope.newUser = true;\n\t\t\t} else {\n\t\t\t\t$scope.newUser = false;\n\t\t\t}\n\n\t\t\t// $scope.userList = users;\n\t\t\t$scope.user = user === 'new' ? {demographic: {}, userRoles: []} : user;\n\t\t\t$scope.vlsUser = $stateParams.vlsUser;\n\t\t\t$scope.userRoles = {};\n\t\t\tconsole.log( 'USER!', $scope.user );\n\t\t\tif ( !$scope.newUser ) {\n\t\t\t\tsetUserRoles();\n\t\t\t}\n\n\n\t\t\t$scope.partnerSelect = {\n\t\t\t\tselected: [],\n\t\t\t\toptions: []\n\t\t\t};\n\t\t\t$scope.states = ('AL AK AZ AR CA CO CT DE FL GA HI ID IL IN IA KS KY LA ME MD MA MI MN MS MO MT NE NV NH NJ NM NY NC ND OH OK OR PA RI SC SD TN TX UT VT VA WA WV WI WY').split( ' ' )\n\t\t\t\t.map( function ( state ) {\n\t\t\t\t\treturn { abbrev: state };\n\t\t\t\t} );\n\t\t\t$scope.roles = {\n\t\t\t\tids: {},\n\t\t\t\tcurrent: {\n\t\t\t\t\t1: false,\n\t\t\t\t\t2: false,\n\t\t\t\t\t3: false,\n\t\t\t\t\t4: false,\n\t\t\t\t\t5: false,\n\t\t\t\t\t6: false,\n\t\t\t\t\t7: false,\n\t\t\t\t\t8: false,\n\t\t\t\t\t9: false,\n\t\t\t\t\t10: false,\n\t\t\t\t\t11: false,\n\t\t\t\t\t12: false,\n\t\t\t\t\t13: false,\n\t\t\t\t\t18: false,\n\t\t\t\t\t19: false,\n\t\t\t\t\t50: false,\n\t\t\t\t\t55: false,\n\t\t\t\t\t60: false,\n\t\t\t\t\t70: false\n\t\t\t\t},\n\n\t\t\t\tlayout: {\n\t\t\t\t\tleft: [\n\t\t\t\t\t\t4, 1, 2, 13, 3, 12, 19, 70\n\t\t\t\t\t],\n\t\t\t\t\tright: [\n\t\t\t\t\t\t50, 5, 6, 7, 60, 10, 55, 11, 18, 8, 9\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\tresetCurrent: function () {\n\t\t\t\t\tangular.forEach( $scope.roles.current, function ( checked, role ) {\n\t\t\t\t\t\t$scope.roles.current[ role ] = false;\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t\tsetChecks: function () {\n\t\t\t\t\tif ( $scope.partnerSelect.selected.length === 0 ) {\n\t\t\t\t\t\t// Reset checkboxes\n\t\t\t\t\t\t$scope.roles.resetCurrent();\n\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconsole.log( 'SET CHECKS ', $scope.userRoles );\n\n\t\t\t\t\tangular.forEach( $scope.roles.current, function ( checked, role ) {\n\n\t\t\t\t\t\trole = parseInt( role );\n\t\t\t\t\t\tvar conditional = !!($scope.userRoles[ $scope.partnerSelect.selected[ 0 ] ] && $scope.userRoles[ $scope.partnerSelect.selected[ 0 ] ].indexOf( role ) !== -1);\n\t\t\t\t\t\tvar same = true;\n\t\t\t\t\t\tangular.forEach( $scope.partnerSelect.selected, function ( val, key ) {\n\n\t\t\t\t\t\t\tvar test = !!($scope.userRoles[ val ] && $scope.userRoles[ val ].indexOf( role ) !== -1);\n\n\t\t\t\t\t\t\tif ( conditional !== test ) {\n\t\t\t\t\t\t\t\tsame = false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t\tif ( !same ) {\n\t\t\t\t\t\t\t$scope.roles.current[ role ] = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$scope.roles.current[ role ] = conditional;\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t\tchange: function ( $event, role ) {\n\t\t\t\t\t$scope.partnerSelect.selected.forEach( function ( val ) {\n\t\t\t\t\t\t$scope.userRoles[ val ] = $scope.userRoles[ val ] || [];\n\t\t\t\t\t\tvar idx = $scope.userRoles[ val ].indexOf( role );\n\t\t\t\t\t\t// Are we adding or removing\n\t\t\t\t\t\tif ( !$scope.roles.current[ role ] ) {\n\t\t\t\t\t\t\t// Only add if it's not already\n\t\t\t\t\t\t\tif ( idx === -1 ) {\n\t\t\t\t\t\t\t\t$scope.userRoles[ val ].push( role );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Only remove if its in the array\n\t\t\t\t\t\t\tif ( idx !== -1 ) {\n\t\t\t\t\t\t\t\t$scope.userRoles[ val ].splice( idx, 1 );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t\t$scope.roles.setChecks();\n\t\t\t\t},\n\t\t\t\tcopyFromPartner: function () {\n\t\t\t\t\tif ( !$scope.partnerAutocomplete.selectedItem ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tvar selected = $scope.partnerAutocomplete.selectedItem.id;\n\n\t\t\t\t\tvar roles = $scope.userRoles[ selected ];\n\t\t\t\t\tconsole.log( $scope.partnerAutocomplete.selectedItem, selected, roles );\n\n\n\t\t\t\t\t// Reset checkboxes\n\t\t\t\t\t$scope.roles.resetCurrent();\n\n\t\t\t\t\tangular.forEach( roles, function ( val, key ) {\n\t\t\t\t\t\tconsole.log( roles[ key ], $scope.roles.current[ val ] );\n\t\t\t\t\t\t$scope.roles.current[ val ] = roles[ key ] || false;\n\n\t\t\t\t\t\t$scope.partnerSelect.selected.forEach( function ( partner ) {\n\t\t\t\t\t\t\t$scope.userRoles[partner] = $scope.userRoles[partner] || [];\n\t\t\t\t\t\t\t$scope.userRoles[partner].push( val || false);\n\t\t\t\t\t\t});\n\t\t\t\t\t} );\n\t\t\t\t\t// setUserRoles();\n\t\t\t\t},\n\t\t\t\tcopyFromUser: function () {\n\t\t\t\t\tvar copyUser = $scope.userAutocomplete.selectedItem;\n\t\t\t\t\tconsole.log( 'SELECTED USER', copyUser );\n\n\t\t\t\t\t$mdDialog.show( $mdDialog.confirm()\n\t\t\t\t\t\t\t.title( 'Confirm Permission Copy' )\n\t\t\t\t\t\t\t.textContent( 'Overwrite ' + $scope.user.demographic.firstName + ' ' + $scope.user.demographic.lastName + '\\'s roles with the roles from \"' + copyUser.firstName + ' ' + copyUser.lastName + '\"' )\n\t\t\t\t\t\t\t.ok( 'Yes' )\n\t\t\t\t\t\t\t.cancel( 'No' )\n\t\t\t\t\t\t\t.multiple( true )\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.then( function () {\n\t\t\t\t\t\t\tsecurityApi.getUser( copyUser.userId )\n\t\t\t\t\t\t\t\t.then( function ( copyUserDetails ) {\n\t\t\t\t\t\t\t\t\t$scope.user.userRoles = [];\n\t\t\t\t\t\t\t\t\tangular.forEach( copyUserDetails.data.userRoles, function ( role ) {\n\t\t\t\t\t\t\t\t\t\tvar newRoleObj = {\n\t\t\t\t\t\t\t\t\t\t\troleId: role.roleId,\n\t\t\t\t\t\t\t\t\t\t\tpartnerId: role.partnerId\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\tif ( $scope.user.id ) {\n\t\t\t\t\t\t\t\t\t\t\tnewRoleObj.userId = $scope.user.id;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t$scope.user.userRoles.push( newRoleObj );\n\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\tsetUserRoles();\n\t\t\t\t\t\t\t\t\t$scope.partnerSelect.selected = Object.keys( $scope.userRoles )\n\t\t\t\t\t\t\t\t\t\t.map( function ( val ) {\n\t\t\t\t\t\t\t\t\t\t\treturn parseInt( val );\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t} );\n\n\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tfor ( var key in USER_ROLES ) {\n\t\t\t\tif ( USER_ROLES.hasOwnProperty( key ) ) {\n\t\t\t\t\t$scope.roles.ids[ USER_ROLES[ key ] ] = key;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Watches\n\t\t\t$scope.$watch( 'partnerSelect.selected.length', function () {\n\t\t\t\t$scope.roles.setChecks();\n\t\t\t} );\n\n\t\t\t$scope.$watch( function () {\n\t\t\t\treturn $scope.user.demographic.firstName + $scope.user.demographic.lastName;\n\t\t\t}, function () {\n\t\t\t\t$scope.user.userName = (( $scope.user.demographic.firstName ? $scope.user.demographic.firstName[ 0 ] : '') + ($scope.user.demographic.lastName || '')).toLowerCase();\n\t\t\t} );\n\n\n\t\t\tvlsSearchApi.partners()\n\t\t\t\t.then( function ( data ) {\n\t\t\t\t\tconsole.log( \"GOT PARTNERS\", data );\n\t\t\t\t\t$scope.partners = data.data;\n\t\t\t\t\t$scope.partnerArray = [];\n\t\t\t\t\t$scope.partnerSelect = {\n\t\t\t\t\t\tselected: [],\n\t\t\t\t\t\toptions: []\n\t\t\t\t\t};\n\n\t\t\t\t\tsetPartnerSelectOptions();\n\n\t\t\t\t\tconsole.log( $scope.partners, $scope.partnerArray );\n\t\t\t\t} );\n\n\n\t\t\t$scope.partnerAutocomplete = {\n\t\t\t\tselectedItem: null,\n\t\t\t\tsearchText: null,\n\t\t\t\tquerySearch: function ( query ) {\n\t\t\t\t\tconsole.log( 'SEARCH', query, $scope.partnerArray );\n\t\t\t\t\tif ( !query ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\treturn $scope.partnerArray.filter( createFilterForPartner( query ) );\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t$scope.userAutocomplete = {\n\t\t\t\tselectedItem: null,\n\t\t\t\tsearchText: null,\n\t\t\t\tquerySearch: function ( query ) {\n\t\t\t\t\tif ( !query ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\t// console.log( $scope.userList );\n\t\t\t\t\t// return $scope.userList.filter(createFilterForUser(query));\n\t\t\t\t\treturn vlsSearchApi.users( { name: query } )\n\t\t\t\t\t\t.then( function ( result ) {\n\t\t\t\t\t\t\treturn result.data;\n\t\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t};\n\n\n\t\t\t$scope.actions = {\n\t\t\t\tclose: function () {\n\t\t\t\t\t//closeByButton = true;\n\t\t\t\t\t$mdDialog.cancel();\n\t\t\t\t},\n\t\t\t\tlockUser: function( e ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\te.stopImmediatePropagation();\n\n\t\t\t\t\tvlsApi.lockUser( { id: $scope.user.id, action: $scope.vlsUser.isLocked ? 'unlock' : 'lock' } ).then( function( result ) {\n\t\t\t\t\t\tif ( result.data.errorcode === 0 ) {\n\t\t\t\t\t\t\t$scope.vlsUser.isLocked = !$scope.vlsUser.isLocked;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn securityApi.getUser( $stateParams.userId ).then( function( user ) {\n\t\t\t\t\t\t\tconsole.log( \"GOT USER\", user );\n\t\t\t\t\t\t\t$scope.user = user.data;\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\n\t\t\t\t},\n\t\t\t\tapply: function () {\n\t\t\t\t\tvar result = saveUserData();\n\t\t\t\t\tif ( result ) {\n\t\t\t\t\t\tresult.then( function ( data ) {\n\t\t\t\t\t\t\tif ( $scope.newUser ) {\n\t\t\t\t\t\t\t\t$state.go( 'app.administration.users.edit', { userId: data } );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tsubmit: function () {\n\t\t\t\t\tsaveUserData();\n\t\t\t\t\t//console.log('SUBMIT NEW');\n\t\t\t\t\t//closeByButton = true;\n\t\t\t\t\t$mdDialog.hide();\n\t\t\t\t},\n\t\t\t\taddToBatch: function () {\n\t\t\t\t\tvar code = $scope.selectedPartner;\n\t\t\t\t\t// console.log( 'Adding to Batch', code, Object.keys( $scope.applyPermissionsTo ), Object.keys( $scope.applyPermissionsTo ).indexOf( code ) );\n\t\t\t\t\tif ( code === '*' ) {\n\t\t\t\t\t\t$scope.applyPermissionsTo = angular.merge( {}, $scope.partners );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$scope.applyPermissionsTo.push( $scope.partners[ code ] );\n\t\t\t\t\t\t//$scope.usedPartners.push( $scope.partners[code] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t} ] );\n\n})( window, window.angular );\n","\n(function( window, angular, undefined) {\n\t'use strict';\n\tangular.module('app.controllers.administration.partners.emailTemplates', ['communicationHub.api', 'app.controllers.administration.partners.emailTemplate.emailTemplate'])\n\t\t.config( [ '$stateProvider', function( $stateProvider ) {\n\t\t\t$stateProvider\n\t\t\t\t.state('app.administration.partners.emailTemplates', {\n\t\t\t\t\turl: '/emailTemplates',\n\n\t\t\t\t\ttemplateUrl: '/templates/administration/partners/emailTemplates/emailTemplates.tpl.html',\n\t\t\t\t\tcontroller: 'emailTemplatesController',\n\t\t\t\t\tcontrollerAs: 'ctrl',\n\t\t\t\t\tresolve: {\n\t\t\t\t\t\ttemplates: [ '$stateParams', 'communicationHub.api', function( $stateParams, comHub ) {\n\t\t\t\t\t\t\treturn comHub.getEmailTemplatesByPartner( $stateParams.partnerId ).then( function( result ) { return result.data; } );\n\t\t\t\t\t\t}]\n\t\t\t\t\t}\n\t\t\t\t})\n\n\t\t\t;\n\t\t}])\n\t\t.controller('emailTemplatesController', [ 'templates', function( templates ) {\n\t\t\tvar ctrl = this;\n\n\t\t\tctrl.templates = templates;\n\t\t}]);\n\n\n})( window, window.angular );\n","(function(window, angular, undefined) {\n\t'use strict';\n\n\tangular.module( 'app.controllers.administration.partners.billingCodesController', [\n\n\t] )\n\t\t.config( [ '$stateProvider', 'USER_ROLES', function ( $stateProvider, USER_ROLES ) {\n\t\t\t$stateProvider\n\n\t\t\t\t.state( 'app.administration.partners.billingCodes', {\n\t\t\t\t\turl: '/billingCodes',\n\t\t\t\t\ttemplateUrl: '/templates/administration/partners/billingCodes/billingCodes.tpl.html',\n\t\t\t\t\tcontroller: 'partnersBillingCodesController',\n\t\t\t\t\tcontrollerAs: 'ctrl'\n\t\t\t\t});\n\t\t} ] )\n\t\t.controller( 'partnersBillingCodesController', [ '$timeout', '$mdDialog', 'vls.partners.billingCodes', 'partnerData' , function ( $timeout, $mdDialog, vlsBillingCodes, partnerData ) {\n\t\t\tvar ctrl = this;\n\n\t\t\tctrl.getBillingCodes = function() {\n\t\t\t\tpartnerData.billingCodes.load( partnerData.get('id') ).then( function( data ) {\n\t\t\t\t\tctrl.billingCodes = data;\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tctrl.removeBillingCode = function( code ) {\n\t\t\t\tctrl.removeInProgress = code;\n\t\t\t\tangular.element( window.document.documentElement ).one('mousedown', function( e ) {\n\t\t\t\t\t$timeout( function() {\n\t\t\t\t\t\tctrl.removeInProgress = undefined;\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tctrl.confirmBillingCodeRemoval = function( evt ) {\n\t\t\t\tevt.stopImmediatePropagation();\n\t\t\t\tpartnerData.billingCodes.remove( ctrl.removeInProgress ).then( function( response ) {\n\t\t\t\t\t$timeout( ctrl.getBillingCodes );\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tctrl.editBillingCode = function( code, $event ) {\n\t\t\t\tconsole.log( 'EDIT', code, partnerData.billingCodes.get( code.billingcode ) );\n\n\t\t\t\t$mdDialog.show( $mdDialog.billingCodeDialog({\n\t\t\t\t\ttargetEvent: $event,\n\t\t\t\t\tlocals: {\n\t\t\t\t\t\tcode: code,\n\t\t\t\t\t\tpartnerData: partnerData\n\t\t\t\t\t}\n\t\t\t\t})).then( ctrl.getBillingCodes );\n\t\t\t};\n\n\t\t\tctrl.addBillingCode = function( $event ) {\n\t\t\t\t$mdDialog.show( $mdDialog.billingCodeDialog( {\n\t\t\t\t\ttargetEvent: $event,\n\t\t\t\t\tlocals: {\n\t\t\t\t\t\tpartnerData: partnerData\n\t\t\t\t\t}\n\t\t\t\t} ) ).then( function() {\n\t\t\t\t\t$timeout( ctrl.getBillingCodes );\n\t\t\t\t} );\n\t\t\t};\n\n\n\t\t\tctrl.getBillingCodes();\n\n\t\t} ] )\n\n\t;\n\n})( window, angular );\n","\n(function( window, angular, undefined) {\n\t'use strict';\n\tangular.module('app.controllers.administration.partners.batchActions', [])\n\t\t.value('administration.batchActions.endpoints', {\n\t\t\t'S3': {\n\t\t\t\t'BUCKET': 'mds-uploads',\n\t\t\t\t'REGION': 'us-east-1',\n\t\t\t\t'IDENTITY_POOL_ID': 'us-east-1:81602e87-7ab6-4fbc-a05d-ec7770838813',\n\t\t\t\t'USE_ACCELERATION': true\n\t\t\t}\n\t\t})\n\t\t.decorator('administration.batchActions.endpoints', ['$delegate', '$injector', function ($delegate, $injector) {\n\t\t\tif ($injector.has('administration.batchActions.endpoints.dev')) {\n\t\t\t\tvar overwrite = $injector.get('administration.batchActions.endpoints.dev');\n\t\t\t\t$delegate = angular.merge($delegate, overwrite);\n\t\t\t} else if (window.document.domain.search(/my\\-test\\./) !== -1) {\n\t\t\t\t$delegate.DOMAIN = 'https://apitest.bettervideo.com';\n\t\t\t\t$delegate.S3 = {\n\t\t\t\t\t'BUCKET': 'mds-uploads-test',\n\t\t\t\t\t'REGION': 'us-east-1',\n\t\t\t\t\t'IDENTITY_POOL_ID': 'us-east-1:81602e87-7ab6-4fbc-a05d-ec7770838813',\n\t\t\t\t\t'USE_ACCELERATION': false\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn $delegate;\n\t\t}])\n\t\t.config( [ '$stateProvider', function( $stateProvider ) {\n\t\t\t$stateProvider\n\t\t\t\t.state('app.administration.partners.batchActions', {\n\t\t\t\t\turl: '/batchActions',\n\n\t\t\t\t\ttemplateUrl: '/templates/administration/partners/batch/batchActions.tpl.html',\n\t\t\t\t\tcontroller: 'batchActionsController',\n\t\t\t\t\tcontrollerAs: 'ctrl',\n\t\t\t\t\tresolve: {\n\n\t\t\t\t\t}\n\t\t\t\t})\n\n\t\t\t;\n\t\t}])\n\t\t.controller('batchActionsController', [ '$q', '$mdDialog', 'assets.s3Util', 'administration.batchActions.endpoints', function( $q, $mdDialog, s3UtilFactory, endpoints ) {\n\t\t\tvar ctrl = this;\n\n\n\t\t\tvar s3Util = new s3UtilFactory( endpoints.S3 );\n\n\t\t\tctrl.upload = function( files, type ) {\n\t\t\t\tvar uploads = [];\n\t\t\t\tvar confirm = $mdDialog.confirm()\n\t\t\t\t\t.title('Confirm upload of ' + type.replace( /\\-/g, ' ' ) + ' file.' )\n\t\t\t\t\t// .textContent('All of the banks have agreed to forgive you your debts.')\n\t\t\t\t\t// .ariaLabel('Lucky day')\n\t\t\t\t\t// .targetEvent(ev)\n\t\t\t\t\t.ok('Yes')\n\t\t\t\t\t.cancel('Cancel');\n\n\t\t\t\t$mdDialog.show(confirm).then(function () {\n\t\t\t\t\tconsole.log( '[BATCH ACTIONS] Yes, Upload!', files, s3Util );\n\t\t\t\t\tfiles.forEach( function( file, i ) {\n\t\t\t\t\t\tconsole.log( '[BATCH ACTIONS] Upload: ', file );\n\t\t\t\t\t\tvar upload = s3Util.uploadFile( file, 'imports/' + type + '/' + file.name );\n\t\t\t\t\t\tconsole.log( upload );\n\t\t\t\t\t\tupload.promise().then( function( result ) {\n\t\t\t\t\t\t\tconsole.log( result );\n\t\t\t\t\t\t})\n\t\t\t\t\t} );\n\n\n\n\t\t\t\t}, function () {\n\t\t\t\t});\n\n\n\t\t\t}\n\n\t\t}]);\n\n\n})( window, window.angular );\n","(function (window, angular, undefined) {\n\t'use strict';\n\n\tangular\n .module ('vls.workflowAction', [])\n .component ('workflowAction', workflowAction() );\n\n\n\tfunction workflowAction() {\n\n\t\tfunction workflowActionController( $rootScope, vlsApi ){\n\t\t\tvar vm = this;\n\n\t\t\t// init();\n\t\t\t\n\t\t\tvm.$onInit = function() {\n\t\t\t\tconsole.log( 'ACTION', vm, vm.action, vm.actionModel );\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tbindings: {\n\t\t\t\taction: '<'\n\t\t\t},\n\t\t\tcontroller: [ '$rootScope', 'vls.api', workflowActionController ],\n\t\t\tcontrollerAs: 'ctrl',\n\t\t\ttemplateUrl: '/templates/vls/workflowAction/workflowAction.tpl.html'\n\t\t};\n\t}\n\n})( window, window.angular );\n","(function( window, angular, undefined) {\n\t'use strict';\n\tangular.module( 'vls.statusSelect', [] )\n\t\t.component( 'vlsStatusSelect', vlsStatusSelect() );\n\n\n\tfunction vlsStatusSelect() {\n\t\treturn {\n\t\t\tbindings: {\n\t\t\t\tpartners: '<',\n\t\t\t\tselected: '=',\n\t\t\t\tshowCount: '=',\n\t\t\t\tchildLayout: '='\n\t\t\t},\n\t\t\ttemplateUrl: '/templates/vls/statusSelect/statusSelect.tpl.html',\n\t\t\tcontrollerAs: 'ctrl',\n\t\t\tcontroller: [ '$rootScope', '$element', '$timeout', 'vls.listingStatus', 'vls.user', 'vls.partners', vlsStatusSelectController ]\n\t\t};\n\n\n\t\tfunction vlsStatusSelectController( $rootScope, $element, $timeout, vlsListingStatus, vlsUser, vlsPartners ) {\n\t\t\tvar ctrl = this;\n\t\t\tvar initialized = false;\n\t\t\tvar prevData = {};\n\n\t\t\tctrl.$onInit = function () {\n\t\t\t\tconsole.log( \"LAYOUT?! 2\", ctrl.childLayout, $element, $element.hasClass( 'layout-column' ), $element.attr('layout') )\n\t\t\t\tctrl.partners = ctrl.partners || [];\n\t\t\t\tctrl.childLayout = ctrl.childLayout || 'row';\n\t\t\t\tctrl.statuses = {\n\t\t\t\t\tnames: vlsListingStatus.getStatuses(),\n\t\t\t\t\tlayout: vlsListingStatus.getLayout(),\n\t\t\t\t\tids: vlsListingStatus.getStatusIds(),\n\t\t\t\t\tcounts: {},\n\t\t\t\t\tdefaults: vlsListingStatus.getDefaults(),\n\t\t\t\t\t// value: ctrl.selected || []\n\t\t\t\t};\n\n\t\t\t\tctrl.statuses.layoutFlat = ctrl.statuses.layout.reduce( function( accum, column ) {\n\t\t\t\t\treturn Object.assign( {}, accum, column );\n\t\t\t\t})\n\n\t\t\t\tctrl.selected = ctrl.selected || [];\n\t\t\t\tctrl.showCount = ctrl.showCount !== undefined ? ctrl.showCount : true;\n\n\t\t\t\tvlsPartners.get().then( function( response ) {\n\t\t\t\t\tconsole.log( \"GETTING PARTNERS\", response );\n\n\t\t\t\t\tctrl.userPartners = response;\n\t\t\t\t\tctrl.partners = ctrl.partners || ctrl.userPartners.map( function ( val ) {\n\t\t\t\t\t\treturn val.code;\n\t\t\t\t\t} );\n\t\t\t\t\tctrl.getCounts()\n\t\t\t\t\tinitialized = true;\n\t\t\t\t});\n\n\n\n\n\n\t\t\t};\n\n\t\t\tctrl.$doCheck = function() {\n\n\t\t\t\tif (prevData.partners && prevData.partners.length !== ctrl.partners.length) {\n\t\t\t\t\tctrl.getCounts();\n\t\t\t\t}\n\t\t\t\tprevData.partners = [].concat(ctrl.partners);\n\t\t\t}\n\n\t\t\tctrl.$onChanges = function( changes ) {\n\t\t\t\tconsole.log( \"CHANGES\", changes );\n\t\t\t\tif ( !initialized ) { return; }\n\t\t\t\tif ( changes.partners ) {\n\t\t\t\t\tconsole.log( \"NEW PARTNERS\", changes.partners.currentValue );\n\t\t\t\t\tctrl.partners = changes.partners.currentValue;\n\t\t\t\t\tctrl.getCounts();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tctrl.updateCounts = function( val ) {\n\t\t\t\tctrl.statuses.counts = val;\n\t\t\t}\n\n\t\t\tctrl.getCounts = function () {\n\t\t\t\tif ( !ctrl.showCount ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvar partnerCodes = ctrl.partners;\n\t\t\t\tconsole.log( \"GETTING STATUS COUNTS\", partnerCodes );\n\t\t\t\tif ( !partnerCodes || partnerCodes.length === 0 ) {\n\t\t\t\t\tpartnerCodes = ctrl.userPartners.map( function ( val ) {\n\t\t\t\t\t\treturn val.code;\n\t\t\t\t\t} );\n\t\t\t\t} else if ( typeof partnerCodes[0] === 'number' ) {\n\t\t\t\t\tpartnerCodes = ctrl.userPartners.filter( function( partner ){\n\t\t\t\t\t\treturn ctrl.partners.indexOf( partner.id ) !== -1;\n\t\t\t\t\t}).map( function ( val ) {\n\t\t\t\t\t\treturn val.code;\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t\tvlsListingStatus.getStatusCount( partnerCodes, true )\n\t\t\t\t\t.then( ctrl.updateCounts, function () {}, ctrl.updateCounts );\n\t\t\t};\n\n\t\t\t// Select All/None\n\t\t\tctrl.clearStatus = function () {\n\t\t\t\tctrl.selected = [];\n\t\t\t};\n\t\t\tctrl.allStatus = function () {\n\t\t\t\tctrl.clearStatus();\n\t\t\t\tvar time = 0;\n\t\t\t\tctrl.selected = [].concat( ctrl.statuses.ids );\n\t\t\t};\n\n\t\t\tctrl.openAccordionsObj = {};\n\t\t\tctrl.toggleAccordion = function( label ) {\n\t\t\t\tvar labelFormatted = label.replace( /\\s/g, '_' );\n\t\t\t\tctrl.openAccordionsObj[ labelFormatted ] = !ctrl.openAccordionsObj[ labelFormatted ];\n\t\t\t}\n\n\t\t\tctrl.openAccordions = function( label ) {\n\t\t\t\tvar labelFormatted = label.replace( /\\s/g, '_' );\n\t\t\t\treturn !!ctrl.openAccordionsObj[ labelFormatted ];\n\t\t\t}\n\n\t\t\tctrl.isParentChecked = function( col, label ) {\n\t\t\t\t// console.log( col, label, ctrl.statuses.layout[col][label] );\n\t\t\t\treturn ctrl.statuses.layout[col][label].every( function( val ) {\n\t\t\t\t\tif ( !ctrl.statuses.names[val] ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn $rootScope.isChecked( val, ctrl.selected );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tctrl.isParentIndeterminate = function( col, label ) {\n\t\t\t\treturn !ctrl.isParentChecked( col, label ) && ctrl.statuses.layout[col][label].some( function( val ) {\n\t\t\t\t\treturn $rootScope.isChecked( val, ctrl.selected );\n\t\t\t\t} ) ;\n\t\t\t}\n\n\t\t\tctrl.toggleAllChildren = function( col, label, $event ) {\n\t\t\t\t$event && $event.stopPropagation();\n\n\t\t\t\tif ( ctrl.isParentChecked( col, label ) ) {\n\t\t\t\t\tctrl.selected = ctrl.selected.filter( function( val ) {\n\t\t\t\t\t\treturn ctrl.statuses.layout[col][label].indexOf( val ) === -1;\n\t\t\t\t\t} )\n\t\t\t\t} else {\n\t\t\t\t\tangular.forEach( ctrl.statuses.layout[col][label], function( val ) {\n\t\t\t\t\t\tif ( ctrl.statuses.names[val] ) {\n\t\t\t\t\t\t\t$rootScope.check(val, ctrl.selected);\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\n\t}\n\n})( window, window.angular );\n","(function( window, angular, undefined) {\n\t'use strict';\n\tangular.module( 'vls.partnerSelect', [] )\n\t\t.component( 'vlsPartnerSelect', vlsPartnerSelect() );\n\n\n\tfunction vlsPartnerSelect() {\n\n\t\treturn {\n\t\t\tbindings: {\n\t\t\t\tpartners: '<',\n\t\t\t\tselected: '=',\n\t\t\t\tshowClients: '<'\n\t\t\t},\n\t\t\ttemplateUrl: '/templates/vls/partnerSelect/partnerSelect.tpl.html',\n\t\t\tcontrollerAs: 'ctrl',\n\t\t\tcontroller: [ '$element', '$scope', 'vls.user', 'vls.partners', vlsPartnerSelectController ]\n\t\t};\n\n\n\t\tfunction vlsPartnerSelectController( $element, $scope, vlsUser, vlsPartners ) {\n\n\t\t\tvar ctrl = this;\n\n\n\t\t\tctrl.$onInit = function() {\n\n\n\t\t\t\tvlsPartners.get().then( function( partners ) {\n\t\t\t\t\tctrl.partners = partners;\n\t\t\t\t\tvlsPartners.getAllClients().then( function ( clients ) {\n\t\t\t\t\t\tctrl.clients = clients;\n\t\t\t\t\t});\n\t\t\t\t\tconsole.log( 'ctrl.clients', ctrl.clients );\n\t\t\t\t\tconsole.log( 'USER PARTNERS', ctrl.partners );\n\t\t\t\t});\n\n\n\t\t\t\t$scope.$watch( 'ctrl.selected.partners', function( newVal ) {\n\t\t\t\t\tif ( typeof newVal !== 'object' ) {\n\t\t\t\t\t\tctrl.selected.partners = [];\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\t$scope.$watch( 'ctrl.selected.clients', function( newVal ) {\n\t\t\t\t\tif ( typeof newVal !== 'object' ) {\n\t\t\t\t\t\tctrl.selected.clients = [];\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\tctrl.$postLink = function() {\n\n\t\t\t\tif ( $element.attr( 'layout' ) === 'row' ) {\n\t\t\t\t\tctrl.isRow = true;\n\t\t\t\t}\n\n\t\t\t\tctrl.showClients = ctrl.showClients !== undefined ? ctrl.showClients : true;\n\n\t\t\t\tctrl.selected = ctrl.selected || {\n\t\t\t\t\tpartners: [],\n\t\t\t\t\tclients: []\n\t\t\t\t};\n\n\t\t\t\tconsole.log( \"$onInit\", ctrl, ctrl.showClients, ctrl.showClients !== undefined )\n\n\t\t\t}\n\n\t\t\tctrl.setPartners = function ($event) {\n\t\t\t\tangular.forEach(ctrl.selected.clients, function (clientid) {\n\t\t\t\t\tangular.forEach(ctrl.clients.filter(function (value) {\n\t\t\t\t\t\treturn value.id === clientid\n\t\t\t\t\t}), function (client) {\n\t\t\t\t\t\tif (ctrl.selected.partners.indexOf(client.partnerId) === -1) {\n\t\t\t\t\t\t\tctrl.selected.partners.push(client.partnerId);\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tctrl.filterClients = function (value, index, arr) {\n\n\t\t\t\tif (!ctrl.selected || ctrl.selected.partners.length === 0) {\n\t\t\t\t\treturn true;\n\t\t\t\t} else {\n\t\t\t\t\treturn ctrl.selected.partners.indexOf(value.partnerId) !== -1;\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t}\n})( window, window.angular );\n","(function( window, angular, undefined) {\n\t'use strict';\n\n\tvar filterModal;\n\n\n\tangular.module( 'vls.filter', [] )\n\t\t.directive( 'vlsFilter', [ '$parse', '$vlsFilter', function ( $parse, $vlsFilter ) {\n\n\n\t\t\treturn {\n\t\t\t\ttemplateUrl: '/templates/vls/filter/vlsFilter.tpl.html',\n\t\t\t\ttransclude: true,\n\t\t\t\t//replace: true,\n\t\t\t\tscope: {\n\t\t\t\t\tonApply: '&',\n\t\t\t\t\tstatusFilter: '=',\n\t\t\t\t\tpartnerFilter: '='\n\t\t\t\t},\n\t\t\t\tcontroller: [ '$scope', '$timeout', '$vlsFilter', 'vls.user', function ( $scope, $timeout, $vlsFilter, vlsUser, vlsListingStatus ) {\n\n\n\n\n\t\t\t\t\t// var partnerData = {};\n\t\t\t\t\t// $scope.$watch( function () {\n\t\t\t\t\t// \treturn vlsUser.getUserPartners();\n\t\t\t\t\t// }, function ( newVal ) {\n\t\t\t\t\t// \tpartnerData = newVal;\n\t\t\t\t\t// \t$scope.partners.values = newVal.map( function ( val ) {\n\t\t\t\t\t// \t\treturn val.code;\n\t\t\t\t\t// \t} );\n\t\t\t\t\t// \t$scope.partners.available = newVal.map( function ( val ) {\n\t\t\t\t\t// \t\treturn {\n\t\t\t\t\t// \t\t\tlabel: val.code + ' - ' + val.name,\n\t\t\t\t\t// \t\t\tvalue: val.code\n\t\t\t\t\t// \t\t};\n\t\t\t\t\t// \t} );\n\t\t\t\t\t// \tconsole.log( 'GET PARTNERS', newVal, $scope.partners.values );\n\t\t\t\t\t//\n\t\t\t\t\t//\n\t\t\t\t\t// \t// angular.forEach( partnerData, function( val, key ) {\n\t\t\t\t\t// \t// $scope.partners.available.push( {label: val.code + ' - ' + val.name, value: val.code } );\n\t\t\t\t\t// \t// });\n\t\t\t\t\t//\n\t\t\t\t\t//\n\t\t\t\t\t// } );\n\n\n\n\t\t\t\t\t$scope.openFilter = function ( event ) {\n\t\t\t\t\t\tconsole.log( 'OPEN VLS FILTER', $scope.partnerFilter );\n\t\t\t\t\t\t// $scope.getCounts();\n\t\t\t\t\t\t// Copy the filters for use in the modal\n\t\t\t\t\t\t// $scope.status.tempFilter = $scope.statusFilter.slice( 0 );\n\t\t\t\t\t\t// $scope.partners.tempFilter = $scope.partnerFilter.slice( 0 );\n\n\t\t\t\t\t\t$vlsFilter.show().finally( function() {\n\t\t\t\t\t\t\tfilterModal = false;\n\t\t\t\t\t\t});\n\t\t\t\t\t\tfilterModal = true;\n\n\n\t\t\t\t\t};\n\n\n\t\t\t\t} ],\n\t\t\t\tlink: function( scope, element, attrs ) {\n\t\t\t\t\telement.on('$destroy', function() {\n\t\t\t\t\t\tconsole.log( 'DESTROY FILTER' );\n\t\t\t\t\t\tif ( filterModal ) {\n\t\t\t\t\t\t\tfilterModal = false;\n\t\t\t\t\t\t\t$vlsFilter.close();\n\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t};\n\n\n\t\t} ] )\n\n\t\t.provider( '$vlsFilter', [function () {\n\n\t\t\tthis.$get = [ '$mdDialog', function( $mdDialog ) {\n\n\t\t\t\tvar _self = this;\n\n\t\t\t\tvar isOpen;\n\n\t\t\t\tvar service = {\n\t\t\t\t\tshow: function( options, event ) {\n\t\t\t\t\t\tisOpen = true;\n\t\t\t\t\t\t_self.filterModal = $mdDialog.show( {\n\t\t\t\t\t\t\tpreserveScope: true,\n\t\t\t\t\t\t\ttargetEvent: event,\n\t\t\t\t\t\t\tcontroller: [ '$mdDialog', function ( $mdDialog ) {\n\t\t\t\t\t\t\t\tvar ctrl = this;\n\n\n\t\t\t\t\t\t\t\t\t//console.log( \"IN HERE\" );\n\t\t\t\t\t\t\t\tctrl.cancel = function () {\n\t\t\t\t\t\t\t\t\t$mdDialog.cancel();\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\tctrl.save = function () {\n\n\n\t\t\t\t\t\t\t\t\t$mdDialog.hide(ctrl.options);\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t} ],\n\t\t\t\t\t\t\tbindToController: true,\n\t\t\t\t\t\t\tcontrollerAs: 'ctrl',\n\t\t\t\t\t\t\tlocals: {\n\t\t\t\t\t\t\t\toptions: options\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\ttemplateUrl: '/templates/vls/filter/vlsFilterModal.tpl.html',\n\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t// .then( function () {\n\t\t\t\t\t\t\t// \tconsole.log( 'HERE!' );\n\t\t\t\t\t\t\t// \t$scope.applyFilter();\n\t\t\t\t\t\t\t// }, function () {\n\t\t\t\t\t\t\t//\n\t\t\t\t\t\t\t// } );\n\n\t\t\t\t\t\treturn _self.filterModal;\n\t\t\t\t\t},\n\t\t\t\t\tclose: function() {\n\t\t\t\t\t\tconsole.log( _self.filterModal );\n\t\t\t\t\t\tisOpen && $mdDialog.cancel( _self.filterModal );\n\t\t\t\t\t\tisOpen = false;\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\treturn service;\n\t\t\t} ];\n\t\t}] );\n\n})( window, window.angular );\n","(function( window, angular, undefined) {\n\t'use strict';\n\t\n\t/**\n\t * @namespace module:vls.events\n\t */\n\tangular.module('vls.events', [\n\t\t'vls.comment',\n\t\t'vls.objects',\n\t\t'vls.events.eventList',\n\t\t'vls.events.event',\n\t\t'vls.events.filter',\n\t\t'vls.events.comment'\n\t\n\t]);\n\n\t\n})( window, window.angular );\n\n\n","(function( window, angular, undefined) {\n\t'use strict';\n\n\n\tangular.module('vls.comment', [])\n\t\t.component('vlsComment', vlsComment() );\n\n\tfunction vlsComment() {\n\n\t\treturn {\n\t\t\tbindings: {\n\t\t\t\tbillingCode: '<',\n\t\t\t\tpartnerCode: '<',\n\t\t\t\tcampaignId: '<',\n\t\t\t\tentitytype: '<',\n\t\t\t\tentityid: '<'\n\t\t\t},\n\t\t\trequire: {\n\t\t\t\tvlsEventList: '?^'\n\t\t\t},\n\t\t\ttemplateUrl: '/templates/vls/comment/comment.tpl.html',\n\t\t\tcontrollerAs: 'ctrl',\n\t\t\tcontroller: [ 'vls.api', 'vls.campaign', 'vls.event.entitycodes', vlsCommentController ]\n\t\t};\n\n\n\n\t\tfunction vlsCommentController( vlsApi, vlsCampaign, ENTITY_CODES ) {\n\t\t\tvar ctrl = this;\n\t\t\tvar campaignData;\n\n\n\t\t\tfunction getBillingCodeEmail () {\n\t\t\t\treturn ctrl.billingCode && ctrl.billingCode.email;\n\t\t\t}\n\t\t\tctrl.$onInit = function() {\n\t\t\t\tconsole.log( 'GET COMMENT FORM', ctrl );\n\n\t\t\t\tvlsCampaign( ctrl.campaignId ).then(function( response ) {\n\t\t\t\t\tcampaignData = response;\n\t\t\t\t});\n\n\n\n\t\t\t\tctrl.config = {\n\t\t\t\t\tsendNotification: false,\n\t\t\t\t\tpartnerAddresses: {\n\t\t\t\t\t\tDOM: [{\n\t\t\t\t\t\t\tlabel: 'ForRent Video',\n\t\t\t\t\t\t\tmodel: 'notificationemailaddress',\n\t\t\t\t\t\t\tvalue: 'frvideo@forrent.com',\n\t\t\t\t\t\t\tsend: false\n\t\t\t\t\t\t}, {\n\t\t\t\t\t\t\tlabel: 'VPA',\n\t\t\t\t\t\t\tmodel: 'ccvpa',\n\t\t\t\t\t\t\tsend: false\n\t\t\t\t\t\t}],\n\t\t\t\t\t\tWHI: [{\n\t\t\t\t\t\t\tlabel: 'LocalEdge Contacts',\n\t\t\t\t\t\t\tmodel: 'notificationemailaddress',\n\t\t\t\t\t\t\tvalue: getBillingCodeEmail()\n\t\t\t\t\t\t}],\n\t\t\t\t\t\tGAN: ['VPA'],\n\t\t\t\t\t\tTMG: ['VPA'],\n\t\t\t\t\t\tPRO: ['MIS'],\n\t\t\t\t\t\tADV: [{\n\t\t\t\t\t\t\tlabel: 'ADV Video Support',\n\t\t\t\t\t\t\tmodel: 'notificationemailaddress',\n\t\t\t\t\t\t\tvalue: 'videosupport@adihelp.net'\n\t\t\t\t\t\t},{\n\t\t\t\t\t\t\tlabel: 'Billing',\n\t\t\t\t\t\t\tmodel: 'notificationemailaddress',\n\t\t\t\t\t\t\tvalue: 'admin@spectrio.com'\n\t\t\t\t\t\t}]\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tctrl.packet = {\n\t\t\t\t\tcampaignid: ctrl.campaignId,\n\t\t\t\t\tcomment: '',\n\t\t\t\t\tentityid: ctrl.entityid,\n\t\t\t\t\tentitytype: ENTITY_CODES[ ctrl.entitytype ],\n\t\t\t\t\tccbvprod: false\n\t\t\t\t};\n\t\t\t\tconsole.log( 'COMMENT INIT', ctrl.packet );\n\n\n\t\t\t};\n\n\n\n\n\t\t\tctrl.form = {\n\t\t\t\totherEmail: [],\n\t\t\t\tnotificationemailaddress: [],\n\t\t\t\tdisabled: false,\n\n\t\t\t\tsave: function () {\n\t\t\t\t\tconsole.log('COMMENT PACKET', angular.merge( {}, ctrl.packet ) );\n\t\t\t\t\tif ( ctrl.config.sendNotification ) {\n\t\t\t\t\t\tif ( this.notificationemailaddress.length || this.otherEmail ) {\n\t\t\t\t\t\t\tctrl.packet.notificationemailaddress = this.notificationemailaddress.join( ',' );\n\n\t\t\t\t\t\t\tif ( ctrl.form.otherEmail ) {\n\t\t\t\t\t\t\t\tif ( ctrl.packet.notificationemailaddress !== '' ) {\n\t\t\t\t\t\t\t\t\tctrl.packet.notificationemailaddress += ',';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tctrl.packet.notificationemailaddress += ctrl.form.otherEmail.join(',');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdelete ctrl.packet.notificationemailaddress;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else { // Delete notifications\n\t\t\t\t\t\t//\tdelete ctrl.packet.ccbvprod;\n\t\t\t\t\t\tdelete ctrl.packet.ccvpa;\n\t\t\t\t\t\t// delete ctrl.packet.ccvpa;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Delete \"false\" properties - the backend requires this.\n\t\t\t\t\tfor ( var x in ctrl.packet ) {\n\t\t\t\t\t\tif ( ctrl.packet.hasOwnProperty( x ) && !ctrl.packet[ x ] && x != 'ccbvprod' ) {\n\t\t\t\t\t\t\tdelete ctrl.packet[ x ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\n\t\t\t\t\t//console.log( ctrl.packet );\n\t\t\t\t\tctrl.form.disabled = true;\n\t\t\t\t\tconsole.log('COMMENT PACKET', ctrl.packet );\n\t\t\t\t\tvlsApi.saveComment( ctrl.packet )\n\t\t\t\t\t\t.then( function ( data ) {\n\t\t\t\t\t\t\tcampaignData.load( true );\n\n\t\t\t\t\t\t\tctrl.form.disabled = false;\n\n\t\t\t\t\t\t\t// Reset comment\n\t\t\t\t\t\t\tctrl.packet.comment = '';\n\t\t\t\t\t\t\tctrl.packet.ccbvprod = false;\n\t\t\t\t\t\t\tctrl.config.sendNotification = false;\n\n\t\t\t\t\t\t\tif ( ctrl.vlsEventList ) {\n\t\t\t\t\t\t\t\tctrl.vlsEventList.showCommentForm = false;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}, function ( data ) {\n\n\t\t\t\t\t\t\tctrl.form.disabled = false;\n\t\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t};\n\n\n\n\t\t}\n\n\t}\n})( window, window.angular );\n","(function( window, angular, undefined ) {\n\t'use strict';\n\n\t/**\n\t * @ngdoc directive\n\t * @class campaign-drawer\n\t * @memberof module:vls\n\t * @restrict EA\n\t * @param {module:vls.campaign} campaign - The campaign object that contians the listings you wish to show.\n\t */\n\tangular.module( 'vls.campaignDrawer', [] )\n\t\t.config([ '$mdThemingProvider', function( $mdThemingProvider ) {\n\t\t\t$mdThemingProvider.registerStyles('' +\n\t\t\t\t'.md-THEME_NAME-theme campaign-drawer { background: \\'{{background-hue-3}}\\'; }' +\n\t\t\t\t'.md-THEME_NAME-theme campaign-drawer .tray > div{ background: \\'{{background-hue-1}}\\'; }' +\n\t\t\t\t'');\n\t\t} ])\n\t\t.component( 'campaignDrawer', {\n\t\t\ttemplateUrl: '/templates/vls/campaignDrawer/campaignDrawer.tpl.html',\n\t\t\tbindings: {\n\t\t\t\tdata: '<'\n\t\t\t},\n\t\t\tcontrollerAs: 'ctrl',\n\t\t\tcontroller: [ '$scope', '$element', '$state', '$filter', '$keyboardShortcuts', 'NgTableParams', function( $scope, $element, $state, $filter, $keyboardShortcuts, NgTableParams ) {\n\n\n\n\t\t\t\tvar ctrl = this;\n\n\t\t\t\t/**\n\t\t\t\t * Initial variables, sets up the lisitng table, creates a `$stateChangeSuccess` event listener to close the drawer, refresh the table, and update the navigation items.\n\t\t\t\t * @method module:vls.campaign-drawer~$onInit\n\t\t\t\t * @private\n\t\t\t\t */\n\t\t\t\tctrl.$onInit = function() {\n\t\t\t\t\tconsole.log( 'CAMPAIGN DRAWER TYPE', JSON.parse( JSON.stringify( ctrl.data ) ) );\n\n\t\t\t\t\tctrl.$state = $state;\n\t\t\t\t\tctrl.currentItemId = $state.params.listingId || $state.params.shootId;\n\n\t\t\t\t\tctrl.displayListingTable = false;\n\n\t\t\t\t\tctrl.tableParams = new NgTableParams({\n\t\t\t\t\t\tpage: 1, // show first page\n\t\t\t\t\t\tcount: 10000,//$scope.listingResults[ $scope.filterByBundle ? 'none' : 'all' ].length, // hides pager\n\n\t\t\t\t\t\tsorting: {\n\t\t\t\t\t\t\tproductname: 'desc' // initial sorting\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdebugMode: true\n\t\t\t\t\t}, {\n\t\t\t\t\t\ttotal: 0, // length of data\n\t\t\t\t\t\tgetData: function( params) {\n\n\t\t\t\t\t\t\tvar result = ctrl.data.data;\n\t\t\t\t\t\t\tvar data = [];\n\t\t\t\t\t\t\t// Filter on sorting\n\t\t\t\t\t\t\tif ( result ) {\n\t\t\t\t\t\t\t\t// var orderedData = params.sorting() ? $filter( 'orderBy' )( result, params.orderBy() ) : result;\n\t\t\t\t\t\t\t\tdata = ctrl.data.data.slice( (params.page() - 1) * params.count(), params.page() * params.count() );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn data;\n\t\t\t\t\t\t},\n\t\t\t\t\t\t$scope: { $data: {} },\n\t\t\t\t\t\tcounts:[]\n\n\t\t\t\t\t});\n\n\n\t\t\t\t\tsetUpListeners();\n\n\n\t\t\t\t};\n\n\t\t\t\tctrl.$onChanges = function( changes ) {\n\t\t\t\t\tconsole.log( 'changes', changes )\n\t\t\t\t\tif ( changes.currentValue ) {\n\t\t\t\t\t\tctrl.data = changes.data.currentValue;\n\t\t\t\t\t\t// $scope.$on('app.campaign.update', function() {\n\t\t\t\t\t\tctrl.tableParams.reload();\n\t\t\t\t\t\t// })\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfunction setUpListeners() {\n\n\t\t\t\t\t$scope.$root.$on('$stateChangeSuccess', function (event, next, toParams, from, fromParams) {\n\t\t\t\t\t\tcloseDrawer();\n\t\t\t\t\t\tctrl.tableParams.reload();\n\t\t\t\t\t\tsetUpNav();\n\t\t\t\t\t});\n\n\n\n\n\t\t\t\t\t$scope.$watch( 'ctrl.currentItem', function( newVal ) {\n\t\t\t\t\t\tctrl.currentItemData = ctrl.getItemData( newVal );\n\t\t\t\t\t});\n\n\t\t\t\t\t$scope.$watch( 'ctrl.data', function() {\n\t\t\t\t\t\tsetUpNav();\n\t\t\t\t\t\tctrl.tableParams.reload();\n\n\t\t\t\t\t}, true);\n\n\n\n\t\t\t\t\t$element.on('click', function( e ) {\n\t\t\t\t\t\te.stopImmediatePropagation();\n\t\t\t\t\t});\n\n\t\t\t\t\tvar keyboardShortcuts = $keyboardShortcuts([\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tkey: 'ArrowRight',\n\t\t\t\t\t\t\tmodifiers: [[ 'meta', 'shift' ], [ 'ctrl', 'shift' ]],\n\t\t\t\t\t\t\taction: ctrl.gotoNextItem\n\t\t\t\t\t\t},{\n\t\t\t\t\t\t\tkey: 'ArrowLeft',\n\t\t\t\t\t\t\tmodifiers: [[ 'meta', 'shift' ], [ 'ctrl', 'shift' ]],\n\t\t\t\t\t\t\taction: ctrl.gotoPrevItem\n\t\t\t\t\t\t}\n\t\t\t\t\t]);\n\n\t\t\t\t}\n\n\n\n\n\n\t\t\t\tctrl.getItemData = function( searchId ) {\n\t\t\t\t\treturn ctrl.data && ctrl.data.data && ctrl.data.data.find( function( item ) {\n\t\t\t\t\t\treturn item.id === searchId || item.Id === searchId;\n\t\t\t\t\t});\n\t\t\t\t};\n\n\n\n\n\t\t\t\t/**\n\t\t\t\t * @var module:vls.campaign-drawer#itemNav\n\t\t\t\t * @property {number} prev - The index of the previous item.\n\t\t\t\t * @property {number} current - The index of the current item.\n\t\t\t\t * @property {number} next - The index of the next item.\n\t\t\t\t * @type {{prev: number, next: number, current: number}}\n\t\t\t\t */\n\t\t\t\tctrl.itemNav = {\n\t\t\t\t\tprev: 0,\n\t\t\t\t\tnext: 0,\n\t\t\t\t\tcurrent: 0\n\t\t\t\t};\n\n\t\t\t\t/**\n\t\t\t\t * Goes to the previous item based on the {@link module:vls.campaign#listings} array.\n\t\t\t\t * @method module:vls.campaign-drawer#gotoPrevItem\n\t\t\t\t */\n\t\t\t\tctrl.gotoPrevItem = function() {\n\t\t\t\t\tif ( ctrl.itemNav.prev >= 0 ) {\n\t\t\t\t\t\tgotoItem( ctrl.data.data[ ctrl.itemNav.prev ].id || ctrl.data.data[ ctrl.itemNav.prev ].Id );\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\t/**\n\t\t\t\t * Goes to the next item based on the {@link module:vls.campaign#listings} array and {@link module.vls.campaign-drawer#listingNav.current} index.\n\t\t\t\t * @method module:vls.campaign-drawer#gotoNextItem\n\t\t\t\t */\n\t\t\t\tctrl.gotoNextItem = function() {\n\t\t\t\t\tif ( ctrl.itemNav.next < ctrl.data.data.length ) {\n\t\t\t\t\t\tgotoItem( ctrl.data.data[ctrl.itemNav.next].id || ctrl.data.data[ ctrl.itemNav.next ].Id );\n\t\t\t\t\t}\n\n\t\t\t\t};\n\t\t\t\t/**\n\t\t\t\t * Gets the current stats name/path for use in an `ui-sref` to ensure switching items doesn't change the view.\n\t\t\t\t * @method module:vls.campaign-drawer#getItemTableSref\n\t\t\t\t */\n\t\t\t\tctrl.getItemSref = function( stateData ) {\n\n\t\t\t\t\t// stateData = stateData || {};\n\t\t\t\t\tvar params = '';\n\t\t\t\t\tif ( stateData ) {\n\t\t\t\t\t\tparams = '(' + JSON.stringify( stateData ) + ')';\n\t\t\t\t\t}\n\t\t\t\t\tif ( $state.includes('app.campaign.videos') ) {\n\t\t\t\t\t\tif ( $state.includes( 'app.campaign.videos.video' ) ) {\n\t\t\t\t\t\t\treturn $state.current.name + params;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn 'app.campaign.videos.video.events' + params;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if ( $state.includes('app.campaign.shoots') ) {\n\t\t\t\t\t\tif ( $state.includes('app.campaign.shoots.shoot') ) {\n\t\t\t\t\t\t\treturn $state.current.name + params;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn 'app.campaign.shoots.shoot.events' + params;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\n\n\n\t\t\t\t};\n\t\t\t\t/**\n\t\t\t\t * Toggles the open state of the drawer.\n\t\t\t\t * @method module:vls.campaign-drawer#toggleDrawer\n\t\t\t\t */\n\t\t\t\tctrl.toggleDrawer = function() {\n\t\t\t\t\t// console.log('TOGGLE');\n\t\t\t\t\tif ( !ctrl.displayItemTable ) {\n\t\t\t\t\t\topenDrawer();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcloseDrawer();\n\t\t\t\t\t}\n\t\t\t\t};\n\n\n\t\t\t\t/**\n\t\t\t\t * @method module:vls.campaign-drawer~onCloseDrawer\n\t\t\t\t * @param {mouseEvent|keyboardEvent} e - Click or keypress event.\n\t\t\t\t * @private\n\t\t\t\t */\n\t\t\t\tfunction onCloseDrawer( e ) {\n\t\t\t\t\t// console.log('CLOSE DRAWER', e);\n\t\t\t\t\tif ( e.key == 'Escape' || e.type == 'click' ) {\n\t\t\t\t\t\t$scope.$apply( function () {\n\t\t\t\t\t\t\tcloseDrawer(e);\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Opens the drawer and sets up event listeners for `click` and `esc` key press.\n\t\t\t\t * @method module:vls.campaign-drawer~openDrawer\n\t\t\t\t * @private\n\t\t\t\t */\n\t\t\t\tfunction openDrawer() {\n\t\t\t\t\tctrl.displayItemTable = true;\n\t\t\t\t\tangular.element(window.document.documentElement).on('click', onCloseDrawer );\n\t\t\t\t\tangular.element(window.document.documentElement).on('keydown', onCloseDrawer );\n\n\t\t\t\t}\n\t\t\t\t/**\n\t\t\t\t * Closes the drawer and removes event listeners for `click` and `esc` key press.\n\t\t\t\t * @method module:vls.campaign-drawer~toggleDrawer\n\t\t\t\t * @private\n\t\t\t\t */\n\t\t\t\tfunction closeDrawer() {\n\t\t\t\t\tctrl.displayItemTable = false;\n\t\t\t\t\tangular.element(window.document.documentElement).off('click', onCloseDrawer );\n\t\t\t\t\tangular.element(window.document.documentElement).off('keydown', onCloseDrawer );\n\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Sets up the navigation indices based on the current item.\n\t\t\t\t * @method module:vls.campaign-drawer~setUpNav\n\t\t\t\t * @private\n\t\t\t\t */\n\t\t\t\tfunction setUpNav () {\n\t\t\t\t\tif ( $state.params.listingId || $state.params.shootId ) {\n\t\t\t\t\t\tctrl.currentItem = $state.params.listingId || $state.params.shootId;\n\t\t\t\t\t\tsetUpNavObject( ctrl.currentItem );\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tctrl.currentItem = undefined;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfunction setUpNavObject( id ) {\n\n\t\t\t\t\tctrl.itemNav.current = ctrl.data.data.findIndex( function ( item, i ) {\n\t\t\t\t\t\t// console.log( 'SET UP NAV', item.id, id );\n\t\t\t\t\t\treturn item.id === id || item.Id === id;\n\t\t\t\t\t});\n\t\t\t\t\tctrl.itemNav.prev = ctrl.itemNav.current - 1;\n\t\t\t\t\tctrl.itemNav.next = ctrl.itemNav.current + 1;\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Transitions the app to the given item.\n\t\t\t\t * @method module:vls.campaign-drawer~gotoItem\n\t\t\t\t * @private\n\t\t\t\t * @param {number} itemId - The id of the item that should be transitioned to.\n\t\t\t\t */\n\t\t\t\tfunction gotoItem( itemId ) {\n\t\t\t\t\tif ( !itemId ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tsetUpNavObject( itemId );\n\n\t\t\t\t\t$state.go( ctrl.getItemSref() , {\n\t\t\t\t\t\tcampaignId: $state.params.campaignId,\n\t\t\t\t\t\tlistingId: itemId,\n\t\t\t\t\t\tshootId: itemId\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\n\n\t\t\t\t$scope.$watch( 'ctrl.currentItem', gotoItem );\n\t\t\t} ]\n\t\t});\n})( window, window.angular );\n","(function( window, angular, undefined ) {\n\t'use strict';\n\tangular.module( 'dragAndDrop', [] )\n\t\t.directive( 'preventFileDrop', function () {\n\t\t\treturn {\n\t\t\t\t'scope': false,\n\t\t\t\t'link': function ( scope, element, attrs ) {\n\t\t\t\t\telement.bind( 'drop dragover', function ( event ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t};\n\t\t} )\n\t\t.directive( 'onDragEnter', [ '$timeout', function ( $timeout ) {\n\t\t\treturn {\n\t\t\t\t'scope': false,\n\t\t\t\t'link': function ( scope, element, attrs ) {\n\t\t\t\t\tvar promise;\n\t\t\t\t\tvar enter = false;\n\t\t\t\t\telement.bind( 'dragover', function ( event ) {\n\t\t\t\t\t\tif ( !isFileDrag( event ) ) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( !enter ) {\n\t\t\t\t\t\t\tscope.$apply( attrs.onDragEnter );\n\t\t\t\t\t\t\tenter = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$timeout.cancel( promise );\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\n\t\t\t\t\t\telement.one( 'dragleave drop dragend', function ( event ) {\n\t\t\t\t\t\t\t$timeout.cancel( promise );\n\t\t\t\t\t\t\tpromise = $timeout( function () {\n\t\t\t\t\t\t\t\tscope.$eval( attrs.onDragEnter );\n\t\t\t\t\t\t\t\tpromise = null;\n\t\t\t\t\t\t\t\tenter = false;\n\t\t\t\t\t\t\t}, 100 );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t\t\n\t\t\t\t\tfunction isFileDrag( dragEvent ) {\n\t\t\t\t\t\tconsole.log( 'IS FILE', dragEvent );\n\t\t\t\t\t\tvar fileDrag = false;\n\t\t\t\t\t\tvar dataTransfer = dragEvent.dataTransfer || dragEvent.originalEvent.dataTransfer;\n\t\t\t\t\t\tangular.forEach( dataTransfer && dataTransfer.types, function ( val ) {\n\t\t\t\t\t\t\tif ( val === 'Files' ) {\n\t\t\t\t\t\t\t\tfileDrag = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tconsole.log( 'IS FILE', fileDrag );\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn fileDrag;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t} ] )\n\t\t.directive( 'stopDropPropagation', function () {\n\t\t\treturn {\n\t\t\t\t'scope': false,\n\t\t\t\t'controller': [ '$scope', '$element', function ( $scope, $element ) {\n\t\t\t\t\t$scope.$watch( function () {\n\t\t\t\t\t\treturn $element;\n\t\t\t\t\t}, function () {\n\t\t\t\t\t\tconsole.log( 'APPLY STOP' );\n\t\t\t\t\t\t$element.bind( 'drop', function ( event ) {\n\t\t\t\t\t\t\tconsole.log( 'STOP' );\n\t\t\t\t\t\t\t// event.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\tvar fakeDropEvent = new DragEvent( 'drop', { bubbles: true } );\n\t\t\t\t\t\t\t// fakeDropEvent.bubbles = true;\n\t\t\t\t\t\t\tconsole.log( 'FAKE DROP', fakeDropEvent );\n\t\t\t\t\t\t\t$element[ 0 ].dispatchEvent( fakeDropEvent );\n\t\t\t\t\t\t\tvar fakeLeaveEvent = new DragEvent( 'dragleave', { bubbles: true } );\n\t\t\t\t\t\t\t// fakeLeaveEvent.bubbles = true;\n\t\t\t\t\t\t\t$element[ 0 ].dispatchEvent( fakeLeaveEvent );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t} ]\n\t\t\t};\n\t\t} );\n})(window, window.angular );","\n(function ( window, angular, undefined ) {\n\t'use strict';\n\n\tvar module = angular.module('util.bindHtmlTemplate', []);\n\t/**\n * @classdesc Binds a data object to a new scope and then re-compiles the innerHTML of the element with this new scope. This is helpful for dynamic templates, or storing template strings on the server.\n *\n * ### A simplified example:\n * #### Inside the controller.\n * ```js\n * // Get data from XHR\n * $scope.dataObj = {\n * foo: 'bar'\n * };\n *\n * // Get template from XHR, json, or another source\n * $scope.templateStr = '{{ foo }}';\n * ```\n * #### The html template.\n * ```html\n *
{{ templateStr }}
\n * ```\n * #### This will result in a template that would look the same as:\n * ```html\n *
{{ dataObj.foo }}
\n * ```\n * @ngdoc directive\n * @class bind-html-template\n * @memberof module:util\n * @param {object} bind-html-template - The data object to use as the new scope data.\n * @restrict A\n\t */\n\tmodule.directive('bindHtmlTemplate', [ '$compile', '$sce', '$filter', '$timeout', function ($compile, $sce, $filter, $timeout) {\n\t\treturn {\n\t\t\trestrict: 'A',\n\t\t\tscope: {\n\t\t\t\tdata: '=bindHtmlTemplate'\n\t\t\t},\n\t\t\tlink: function (scope, element, attrs) {\n\t\t\t\tvar newScope = scope.$new(true);\n\t\t\t\tvar originalHtml;\n\t\t\t\tfunction onChange() {\n\t\t\t\t\tangular.merge( newScope, scope.data );\n\n\t\t\t\t\tvar removeWatch = scope.$watch(function () {\n\t\t\t\t\t\treturn element.html();\n\t\t\t\t\t}, function (value) {\n\t\t\t\t\t\t// console.log( \"BIND HTML TEMPLATE\", element.html(), scope.data );\n\n\t\t\t\t\t\tif (!value) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\toriginalHtml = '' + value + '';\n\t\t\t\t\t\tnewScope.tmp = $compile(originalHtml)(newScope);\n\n\t\t\t\t\t\tremoveWatch();\n\n\t\t\t\t\t});\n\n\n\n\t\t\t\t}\n\t\t\t\tonChange();\n\n\t\t\t\tnewScope.$watch( 'tmp[0].innerHTML', function( newVal, oldVal ) {\n\t\t\t\t\tif ( !newVal || typeof newVal !== 'string' ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tscope.htmlValue = $sce.trustAsHtml( newVal.replace(/\\</g, '<').replace(/\\>/g, '>').replace( /\\{\\{.*?\\}\\}/g, '') );\n\t\t\t\t\t// console.log( 'HTMLVALUE', newVal );\n\t\t\t\t\telement.html( '' + scope.htmlValue + '' );\n\t\t\t\t\t//thisEl.html( tmp.html().replace(/\\</, '<').replace(/\\>/, '>') );\n\t\t\t\t\t$compile( element.contents() )(scope);\n\t\t\t\t});\n\n\t\t\t\tscope.$watch( function() {\n\n\t\t\t\t\treturn scope.data;\n\t\t\t\t}, function( newVal, oldVal ) {\n\t\t\t\t\tangular.merge( newScope, scope.data );\n\n\t\t\t\t\tnewScope.tmp = $compile(originalHtml)(newScope);\n\t\t\t\t}, true );\n\n\t\t\t}\n\t\t};\n\t} ]);\n})( window, window.angular );\n","(function (window, angular, undefined) {\n\t'use strict';\n\n\n\tangular.module('ui.monaco', [])\n\t\t.directive('uiMonacoeditor', ['$timeout', 'uiMonacoeditorConfig', uiMonacoeditorDirective])\n\t\t.constant('uiMonacoeditorConfig', {})\n\t\t.constant('monaco', window.monaco)\n\tfunction uiMonacoeditorDirective($timeout, uiMonacoeditorConfig) {\n\t\treturn {\n\t\t\trestrict: 'EA',\n\t\t\trequire: '?ngModel',\n\t\t\tcompile: function compile() {\n\t\t\t\t// Omit checking \"Require MonacoEditor\"\n\t\t\t\treturn postLink;\n\t\t\t}\n\t\t};\n\n\t\tfunction postLink(scope, iElement, iAttrs, ngModel) {\n\t\t\t// require([\"vs/editor/editor.main\"], function () {\n\t\t\tvar monacoeditorOptions = angular.extend(\n\t\t\t\t{value: iElement.text()},\n\t\t\t\tuiMonacoeditorConfig.monacoeditor || {},\n\t\t\t\tscope.$eval(iAttrs.uiMonacoeditor),\n\t\t\t\tscope.$eval(iAttrs.uiMonacoeditorOpts)\n\t\t\t)\n\n\t\t\t// iElement[0].style.display = \"block\";\n\t\t\t// iElement[0].style.height = \"100%\";\n\n\t\t\tvar monacoeditor = newMonacoeditorEditor(iElement, monacoeditorOptions);\n\n\t\t\tconfigOptionsWatcher(\n\t\t\t\tmonacoeditor,\n\t\t\t\tiAttrs.uiMonacoeditor || iAttrs.uiMonacoeditorOpts,\n\t\t\t\tscope\n\t\t\t)\n\n\t\t\tconfigNgModelLink(monacoeditor, ngModel, scope);\n\n\t\t\t// {to do}: add configUiRefreshAttribute\n\t\t\t// {to do}: add broadcasted event\n\n\t\t\t// onLoad callback\n\t\t\tif (angular.isFunction(monacoeditorOptions.onLoad)) {\n\t\t\t\tmonacoeditorOptions.onLoad(monacoeditor)\n\t\t\t}\n\t\t\t// })\n\t\t}\n\n\t\t// {to do}: write the case of textarea like ui-codemirror\n\t\t// {to do}: should use monacoeditorOptions\n\t\tfunction newMonacoeditorEditor(iElement, monacoeditorOptions) {\n\t\t\tvar editor = monaco.editor.create(iElement[0], {\n\t\t\t\tlanguage: monacoeditorOptions.language,\n\t\t\t\tlineNumbers: monacoeditorOptions.lineNumbers,\n\t\t\t\tminimap: {enabled: false},\n\t\t\t\tautomaticLayout: true,\n\t\t\t\tscrollBeyondLastLine: false,\n\t\t\t\twordWrap: \"on\"\n\t\t\t});\n\t\t\treturn editor\n\t\t}\n\n\t\tfunction configOptionsWatcher(monacoeditor, uiMonacoeditorAttr, scope) {\n\t\t\tif (!uiMonacoeditorAttr) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// var monacoeditorDefaultsKeys = Object.keys(window.MonacoEditor.defaults);\n\t\t\t// {to do}: https://microsoft.github.io/monaco-editor/api/interfaces/monaco.editor.ieditorconstructionoptions.html\n\t\t\tvar monacoeditorDefaultsKeys = [\"language\", \"lineNumbers\"]\n\t\t\tscope.$watch(uiMonacoeditorAttr, updateOptions, true)\n\n\t\t\tfunction updateOptions(newValues, oldValues) {\n\t\t\t\t// console.log(\"$watch, uiMonacoeditorAttr, oldValues: \" + JSON.stringify(oldValues));\n\t\t\t\t// console.log(\"$watch, uiMonacoeditorAttr, newValues: \" + JSON.stringify(newValues));\n\t\t\t\tif (!angular.isObject(newValues)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tmonacoeditorDefaultsKeys.forEach(function (key) {\n\t\t\t\t\tif (newValues.hasOwnProperty(key)) {\n\t\t\t\t\t\tif (oldValues && newValues[key] === oldValues[key]) {\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// console.log(key + \" \" + newValues[key])\n\t\t\t\t\t\t// {to do}: should write something more general; monacoeditor.updateOptions(key, newValues[key])\n\t\t\t\t\t\tswitch (key) {\n\t\t\t\t\t\t\tcase \"lineNumbers\":\n\t\t\t\t\t\t\t\tmonacoeditor.updateOptions({\"lineNumbers\": newValues[key]});\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"language\":\n\t\t\t\t\t\t\t\tmonaco.editor.setModelLanguage(monacoeditor.getModel(), newValues[key])\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\tfunction configNgModelLink(monacoeditor, ngModel, scope) {\n\t\t\t// console.log(\"configNgModelLink\")\n\t\t\tif (!ngModel) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Monaco Editor expects a string, so make sure it gets one.\n\t\t\t// This does not change the model.\n\t\t\tngModel.$formatters.push(function (value) {\n\t\t\t\t// console.log(\"ngModel.$formatters\")\n\t\t\t\tif (angular.isUndefined(value) || value === null)\n\t\t\t\t\treturn '';\n\t\t\t\telse if (angular.isObject(value) || angular.isArray(value))\n\t\t\t\t\tthrow new Error('ui-monacoeditor cannot use an object or an array as a model');\n\t\t\t\treturn value\n\t\t\t});\n\n\t\t\t// Override the ngModelController $render method, which is what gets called when the model is updated.\n\t\t\t// This takes care of the synchronizing the monacoEditor element with the underlying model, in the case that it is changed by something else.\n\t\t\tngModel.$render = function () {\n\t\t\t\t// console.log(\"ngModel.$render\");\n\t\t\t\t// Monaco Editor expects a string so make sure it gets one\n\t\t\t\t// Although the formatter has already done this, it can be possible that another formatter returns undefined (for example the required directive)\n\t\t\t\tvar safeViewValue = ngModel.$viewValue || '';\n\t\t\t\tmonacoeditor.setValue(safeViewValue);\n\t\t\t};\n\n\t\t\t// Keep the ngModel in sync with changes from MonacoEditor\n\t\t\tmonacoeditor.onDidChangeModelContent(function (e) {\n\t\t\t\tvar newValue = monacoeditor.getValue();\n\t\t\t\t// console.log(\"onDidChangeModelContent \" + newValue)\n\t\t\t\tif (newValue !== ngModel.$viewValue) {\n\t\t\t\t\tscope.$evalAsync(function () {\n\t\t\t\t\t\tngModel.$setViewValue(newValue)\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\n})(window, window.angular);\n","(function( window, angular, PerfectScrollbar, undefined ) {\n\t'use strict';\n\tvar init;\n\n\t// Get the widht of a scroll bar.\n\tvar scrollDiv = angular.element( '
' );\n\tscrollDiv.css( {\n\t\twidth: '100px',\n\t\theight: '100px',\n\t\toverflow: 'scroll',\n\t\tposition: 'absolute',\n\t\ttop: '-9999px'\n\t} );\n\tdocument.body.appendChild( scrollDiv[ 0 ] );\n\tvar scrollbarWidth = 0;\n\n\tfunction getScrollbarSize() {\n\t\tscrollbarWidth = scrollDiv[ 0 ].offsetWidth - scrollDiv[ 0 ].clientWidth;\n\t\tif ( scrollbarWidth === 0 ) {\n\t\t\tsetTimeout( getScrollbarSize, 100 );\n\t\t} else {\n\t\t\tdocument.body.removeChild( scrollDiv[ 0 ] );\n\t\t\tinit && init();\n\t\t}\n\t}\n\tgetScrollbarSize();\n\n\n\t/**\n\t * @classdesc Hides the browser scrollbars and replaces them with a stylable thinner version. Similar to the autohiding Mac OSX scroll bars.\n\t * @ngdoc directive\n\t * @class slimscroll\n\t * @memberof module:ui\n\t * @param {object|boolean} slimscroll - Options object. If false, disables the directive.\n\t * @param {boolean} slimscroll.container - Should the directive add an input container element that enables the element to scroll. Useful for\n\t * @param {boolean} slimscroll.wrap - Does this element wrap the element that should be scrolled.\n\t * @param {boolean} slimscroll.track - Display a track for the scrollbar.\n\t */\n\tangular.module( 'ui.slimscroll', [] )\n\t\t.directive( 'slimscroll', [ '$timeout', '$mdUtil', function ( $timeout, $mdUtil ) {\n\n\t\t\treturn {\n\t\t\t\trestrict: 'A',\n\t\t\t\tlink: function( scope, element, attrs ) {\n\t\t\t\t\tvar ps;\n\n\t\t\t\t\t$timeout( function() {\n\t\t\t\t\t\tps = new PerfectScrollbar( element[ 0 ], { wheelPropagation: true } );\n\n\t\t\t\t\t\t// Force scope.$watch to monitor the sizes when the window is resized\n\t\t\t\t\t\tangular.element( window )\n\t\t\t\t\t\t\t.on( 'resize', function () {\n\t\t\t\t\t\t\t\t$timeout( function () {\n\t\t\t\t\t\t\t\t\tps && ps.update && ps.update();\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t}, 50 );\n\t\t\t\t\t// scope.$watch( scope.checkSize, $mdUtil.debounce( function ( newValue, oldValue ) {\n\t\t\t\t\t// \t\tps && ps.update && ps.update();\n\t\t\t\t\t// \t// } );\n\t\t\t\t\t// } ), true );\n\n\t\t\t\t\tscope.checkSize = function () {\n\t\t\t\t\t\t// Hide the scroll track to ensure we get the height of the content, not an old track.\n\t\t\t\t\t\t// scrollTrack.css( { height: 0 } );\n\n\t\t\t\t\t\t// Assign the sizes\n\t\t\t\t\t\tvar returnObj = {\n\t\t\t\t\t\t\t//el: baseElement[0].tagName,\n\t\t\t\t\t\t\tcontainerHeight: element[ 0 ].offsetHeight,\n\t\t\t\t\t\t\tscrollHeight: element[ 0 ].scrollHeight,\n\t\t\t\t\t\t\twindowHeight: window.innerHeight\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t// Set the scroll track back to the correct height\n\t\t\t\t\t\t// scrollTrack.css( { height: baseElement[ 0 ].scrollHeight + 'px' } );\n\t\t\t\t\t\treturn returnObj;\n\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t} ] );\n})( window, window.angular, window.PerfectScrollbar );\n\n// // Get the scrollbar width\n\t\t\t//\n\t\t\t// // Delete the DIV\n\t\t\t//\n\t\t\t// return {\n\t\t\t// \trestrict: 'A',\n\t\t\t// \tscope: {\n\t\t\t// \t\toptions: '=slimscroll'\n\t\t\t// \t},\n\t\t\t// \tlink: function ( scope, element, attrs ) {\n\t\t\t//\n\t\t\t// \t\tinit = function() {\n\t\t\t// \t\t\t//console.log( \"SLIM SCROLL: \", scope.$eval( attrs.slimscroll) );\n\t\t\t// \t\t\tif ( scope.$eval( attrs.slimscroll ) === false ) {\n\t\t\t// \t\t\t\treturn;\n\t\t\t// \t\t\t}\n\t\t\t//\n\t\t\t// \t\t\t/*****************\n\t\t\t// \t\t\t * OPTIONS *\n\t\t\t// \t\t\t ******************/\n\t\t\t// \t\t\tvar scroll = {\n\t\t\t// \t\t\t\tcontainerHeight: 0,\n\t\t\t// \t\t\t\tscrollHeight: 0,\n\t\t\t// \t\t\t\tscrollMax: 0,\n\t\t\t// \t\t\t\ttrackHeight: 0,\n\t\t\t// \t\t\t\toptions: JSON.parse( attrs.slimscroll || '{ \"track\": false }' )\n\t\t\t// \t\t\t};\n\t\t\t// \t\t\tif ( scroll.options.wrap === undefined ) {\n\t\t\t// \t\t\t\t//\tscroll.options.wrap = true;\n\t\t\t// \t\t\t}\n\t\t\t//\n\t\t\t// \t\t\t/******************************************\n\t\t\t// \t\t\t * Add the scroll bar classes and elements *\n\t\t\t// \t\t\t *******************************************/\n\t\t\t//\n\t\t\t// \t\t\tvar attrsToCopy = [\n\t\t\t// \t\t\t\t/flex/gi,\n\t\t\t// \t\t\t\t/layout.*/gi\n\t\t\t// \t\t\t];\n\t\t\t//\n\t\t\t// \t\t\tvar baseElement;\n\t\t\t// \t\t\tif ( scroll.options.container === true ) {\n\t\t\t// \t\t\t\tbaseElement = angular.element( '
' );\n\t\t\t// \t\t\t\tvar container = angular.element( '
' );\n\t\t\t//\n\t\t\t// \t\t\t\tcontainer.append( baseElement );\n\t\t\t// \t\t\t\telement.parent()\n\t\t\t// \t\t\t\t\t.append( container );\n\t\t\t//\n\t\t\t// \t\t\t\tbaseElement.append( element );\n\t\t\t//\n\t\t\t// \t\t\t\t//baseElement.css({'maxHeight': '100%'});\n\t\t\t// \t\t\t\t//element = baseElement;\n\t\t\t// \t\t\t} else if ( scroll.options.wrap ) {\n\t\t\t// \t\t\t\telement.wrap( '
' );\n\t\t\t// \t\t\t\tbaseElement = element.parent();\n\t\t\t// \t\t\t\t//\telement.css({'minHeight': '100%' });\n\t\t\t//\n\t\t\t//\n\t\t\t// \t\t\t\tvar elAttrs = element[ 0 ].attributes;\n\t\t\t//\n\t\t\t// \t\t\t\tangular.forEach( elAttrs, function ( att ) {\n\t\t\t// \t\t\t\t\t//console.log( \"ATTRIBUTE:\", att.name, att.value );\n\t\t\t// \t\t\t\t\tfor ( var x = 0; x < attrsToCopy.length; x++ ) {\n\t\t\t// \t\t\t\t\t\tif ( attrsToCopy[ x ].test( att.name ) ) {\n\t\t\t// \t\t\t\t\t\t\tbaseElement.addClass( att.name + ( att.value ? '-' + att.value.replace( ' ', '-' ) : '') );\n\t\t\t// \t\t\t\t\t\t}\n\t\t\t// \t\t\t\t\t}\n\t\t\t// \t\t\t\t} );\n\t\t\t//\n\t\t\t//\n\t\t\t// \t\t\t\t// element.parent().append( baseElement );\n\t\t\t// \t\t\t\t// baseElement.append( element );\n\t\t\t// \t\t\t} else {\n\t\t\t// \t\t\t\tbaseElement = element;\n\t\t\t// \t\t\t}\n\t\t\t//\n\t\t\t//\n\t\t\t// \t\t\tbaseElement.addClass( 'slim-scroll' );\n\t\t\t// \t\t\tbaseElement.css( {\n\t\t\t// \t\t\t\t'marginRight': '-' + ( scrollbarWidth ) + 'px',\n\t\t\t// \t\t\t\t'height': '100%'\n\t\t\t// \t\t\t} );\n\t\t\t//\n\t\t\t//\n\t\t\t// \t\t\tvar scrollIndicator = angular.element( '
' );\n\t\t\t// \t\t\tscrollIndicator.css( { 'top': '3px' } );\n\t\t\t//\n\t\t\t// \t\t\tvar scrollTrack = angular.element( '
' );\n\t\t\t// \t\t\t////console.log( scroll.options, attrs );\n\t\t\t// \t\t\tif ( scroll.options.track ) {\n\t\t\t// \t\t\t\tbaseElement.append( scrollTrack );\n\t\t\t// \t\t\t}\n\t\t\t// \t\t\tbaseElement.append( scrollIndicator );\n\t\t\t//\n\t\t\t//\n\t\t\t// \t\t\t/*************************************\n\t\t\t// \t\t\t * The scrolling functions and events *\n\t\t\t// \t\t\t **************************************/\n\t\t\t//\n\t\t\t// \t\t\tvar mouseMoveListner = function ( e ) {\n\t\t\t// \t\t\t\te.stopImmediatePropagation();\n\t\t\t// \t\t\t\te.preventDefault();\n\t\t\t//\n\t\t\t// \t\t\t\tvar diff = {\n\t\t\t// \t\t\t\t\tx: e.screenX - lastMousePos.x,\n\t\t\t// \t\t\t\t\ty: e.screenY - lastMousePos.y\n\t\t\t// \t\t\t\t};\n\t\t\t//\n\t\t\t// \t\t\t\tvar top = Math.max( 3, Math.min( scroll.scrollMax, parseFloat( scrollIndicator.css( 'top' ) ) - baseElement[ 0 ].scrollTop + diff.y ) );\n\t\t\t// \t\t\t\tvar percent = (top - 3) / (scroll.scrollMax - 3);\n\t\t\t// \t\t\t\tvar scrollTop = ( scroll.scrollHeight - scroll.containerHeight ) * percent;\n\t\t\t//\n\t\t\t// \t\t\t\twindow.requestAnimationFrame( function () {\n\t\t\t// \t\t\t\t\tscrollIndicator.css( {\n\t\t\t// \t\t\t\t\t\ttop: top + scrollTop + 'px'\n\t\t\t// \t\t\t\t\t} );\n\t\t\t// \t\t\t\t\tbaseElement[ 0 ].scrollTop = scrollTop;\n\t\t\t//\n\t\t\t// \t\t\t\t} );\n\t\t\t//\n\t\t\t// \t\t\t\t//console.log(e, diff.y, top, percent, scrollTop, top + scrollTop + 'px' );\n\t\t\t//\n\t\t\t// \t\t\t\tlastMousePos.x = e.screenX;\n\t\t\t// \t\t\t\tlastMousePos.y = e.screenY;\n\t\t\t// \t\t\t};\n\t\t\t//\n\t\t\t//\n\t\t\t// \t\t\tvar lastMousePos = {\n\t\t\t// \t\t\t\tx: false,\n\t\t\t// \t\t\t\ty: false\n\t\t\t// \t\t\t};\n\t\t\t//\n\t\t\t// \t\t\tvar isMouseDragging = false;\n\t\t\t// \t\t\tscrollIndicator.on( 'mousedown', function ( e ) {\n\t\t\t// \t\t\t\tisMouseDragging = true;\n\t\t\t// \t\t\t\te.stopImmediatePropagation();\n\t\t\t// \t\t\t\te.preventDefault();\n\t\t\t//\n\t\t\t// \t\t\t\tlastMousePos.x = e.screenX;\n\t\t\t// \t\t\t\tlastMousePos.y = e.screenY;\n\t\t\t//\n\t\t\t// \t\t\t\tvar bodyEl = angular.element( document.getElementsByTagName( 'html' )[ 0 ] );\n\t\t\t//\n\t\t\t// \t\t\t\tbodyEl.on( 'mousemove', mouseMoveListner );\n\t\t\t// \t\t\t\tbodyEl.one( 'mouseup mouseenter', function ( e ) {\n\t\t\t// \t\t\t\t\t//console.log( 'MOUSE UP / MOUSE ENTER: ', e);\n\t\t\t// \t\t\t\t\tisMouseDragging = false;\n\t\t\t// \t\t\t\t\tbodyEl.off( 'mousemove', mouseMoveListner );\n\t\t\t// \t\t\t\t} );\n\t\t\t// \t\t\t} );\n\t\t\t//\n\t\t\t//\n\t\t\t// \t\t\tbaseElement.on( 'scroll', function ( e ) {\n\t\t\t// \t\t\t\tif ( isMouseDragging ) return;\n\t\t\t// \t\t\t\tvar percent = baseElement[ 0 ].scrollTop / ( scroll.scrollHeight - scroll.containerHeight );\n\t\t\t// \t\t\t\tvar position = scroll.scrollMax * percent + baseElement[ 0 ].scrollTop + 3;\n\t\t\t//\n\t\t\t// \t\t\t\t////console.log( percent, max, scrollIndicator[0].offsetHeight, position );\n\t\t\t// \t\t\t\twindow.requestAnimationFrame( function () {\n\t\t\t// \t\t\t\t\tscrollIndicator.css( {\n\t\t\t// \t\t\t\t\t\t'top': position + 'px'\n\t\t\t// \t\t\t\t\t} );\n\t\t\t// \t\t\t\t} );\n\t\t\t//\n\t\t\t// \t\t\t} );\n\t\t\t//\n\t\t\t//\n\t\t\t// \t\t\t/*************************\n\t\t\t// \t\t\t * Timeouts, watches, etc *\n\t\t\t// \t\t\t **************************/\n\t\t\t//\n\t\t\t// \t\t\t// I think when this is applied in the css, it causes conflicts with the flex display resulting in a strange 1/2 width column flicker.\n\t\t\t// \t\t\t// Once everything is sized and in place, we can then apply the sytle.\n\t\t\t// \t\t\t$timeout( function () {\n\t\t\t// \t\t\t\tbaseElement.css( { 'transition': 'padding-right .4s' } );\n\t\t\t// \t\t\t}, 1000 );\n\t\t\t//\n\t\t\t//\n\t\t\t// \t\t\tscope.checkSize = function () {\n\t\t\t// \t\t\t\t// Hide the scroll track to ensure we get the height of the content, not an old track.\n\t\t\t// \t\t\t\tscrollTrack.css( { height: 0 } );\n\t\t\t//\n\t\t\t// \t\t\t\t// Assign the sizes\n\t\t\t// \t\t\t\tvar returnObj = {\n\t\t\t// \t\t\t\t\t//el: baseElement[0].tagName,\n\t\t\t// \t\t\t\t\tcontainerHeight: baseElement[ 0 ].offsetHeight,\n\t\t\t// \t\t\t\t\tscrollHeight: baseElement[ 0 ].scrollHeight,\n\t\t\t// \t\t\t\t\twindowHeight: $window.innerHeight\n\t\t\t// \t\t\t\t};\n\t\t\t//\n\t\t\t// \t\t\t\t// Set the scroll track back to the correct height\n\t\t\t// \t\t\t\tscrollTrack.css( { height: baseElement[ 0 ].scrollHeight + 'px' } );\n\t\t\t// \t\t\t\treturn returnObj;\n\t\t\t//\n\t\t\t// \t\t\t};\n\t\t\t//\n\t\t\t// \t\t\t// Force scope.$watch to monitor the sizes when the window is resized\n\t\t\t// \t\t\tangular.element( $window )\n\t\t\t// \t\t\t\t.on( 'resize', function () {\n\t\t\t// \t\t\t\t\t$timeout( function () {\n\t\t\t// \t\t\t\t\t\tscope.$apply();\n\t\t\t// \t\t\t\t\t} );\n\t\t\t// \t\t\t\t} );\n\t\t\t//\n\t\t\t// \t\t\tscope.$watch( scope.checkSize, $mdUtil.debounce( function ( newValue, oldValue ) {\n\t\t\t// \t\t\t\tscope.$apply( function () {\n\t\t\t// \t\t\t\t\t// console.log( \"SCROLL\", newValue );\n\t\t\t// \t\t\t\t\t// Assign the heights for later use by the scrolling functions\n\t\t\t// \t\t\t\t\tscroll.containerHeight = newValue.containerHeight;\n\t\t\t// \t\t\t\t\tscroll.scrollHeight = newValue.scrollHeight;\n\t\t\t//\n\t\t\t// \t\t\t\t\t// Set the indicator size\n\t\t\t// \t\t\t\t\tvar indicatorHeight = scroll.containerHeight - ( scroll.scrollHeight - scroll.containerHeight );\n\t\t\t//\n\t\t\t// \t\t\t\t\t// Hide the scroll if it's not needed.\n\t\t\t// \t\t\t\t\tif ( scroll.scrollHeight <= scroll.containerHeight ) {\n\t\t\t// \t\t\t\t\t\tbaseElement.removeClass( 'scroll-indicator-visible' );\n\t\t\t// \t\t\t\t\t} else {\n\t\t\t// \t\t\t\t\t\t// Apply the correct size to the indicator\n\t\t\t// \t\t\t\t\t\tif ( indicatorHeight < 100 ) {\n\t\t\t// \t\t\t\t\t\t\tindicatorHeight = scroll.containerHeight <= 100 ? scroll.containerHeight / 2 : 100;\n\t\t\t// \t\t\t\t\t\t}\n\t\t\t// \t\t\t\t\t\t// else {\n\t\t\t// \t\t\t\t\t\tindicatorHeight = indicatorHeight + 'px';\n\t\t\t// \t\t\t\t\t\t//}\n\t\t\t//\n\t\t\t// \t\t\t\t\t\tbaseElement.addClass( 'scroll-indicator-visible' );\n\t\t\t// \t\t\t\t\t\tscrollIndicator.css( {\n\t\t\t// \t\t\t\t\t\t\t'height': indicatorHeight\n\t\t\t// \t\t\t\t\t\t} );\n\t\t\t// \t\t\t\t\t}\n\t\t\t//\n\t\t\t// \t\t\t\t\tscroll.scrollMax = ( scroll.containerHeight - scrollIndicator[ 0 ].offsetHeight ) - 6;\n\t\t\t//\n\t\t\t//\n\t\t\t// \t\t\t\t} );\n\t\t\t// \t\t\t} ), true );\n\t\t\t//\n\t\t\t//\n\t\t\t// \t\t\tscope.$on( '$stateChangeStart', function ( event, next, toParams ) {\n\t\t\t// \t\t\t\tbaseElement[ 0 ].scrollTop = 0;\n\t\t\t// \t\t\t} );\n\t\t\t// \t\t};\n\t\t\t//\n\t\t\t// \t\tif ( scrollbarWidth ) {\n\t\t\t// \t\t\tinit();\n\t\t\t// \t\t}\n\t\t\t// \t}\n\t\t\t// };\n// \t\t} ] );\n// })( window, window.angular );\n","(function( window, angular, undefined ) {\n\t'use strict';\n\t\n\t/**\n\t * @ngdoc directive\n\t * @class md-select-multiple\n\t * @memberof module:ui\n\t */\n\tangular.module( 'ui.mdSelectMultiple', [] )\n\t\t.directive( 'mdSelectMultiple', [function () {\n\t\t\t\n\t\t\treturn {\n\t\t\t\ttemplateUrl: '/templates/ui/mdSelectMultiple/mdSelectMultiple.tpl.html',\n\t\t\t\tscope: {\n\t\t\t\t\tvalue: '=',\n\t\t\t\t\toptions: '=',\n\t\t\t\t\tlabel: '@',\n\t\t\t\t\tactions: '=',\n\t\t\t\t\theight: '@',\n\t\t\t\t\thideCheckboxes: '=',\n\t\t\t\t\tnotes: '@'\n\t\t\t\t},\n\t\t\t\tcontroller: [ '$scope', function ( $scope ) {\n\t\t\t\t\t//console.log( \"FILTER HEIGHT: \", $scope.height || '100%' );\n\t\t\t\t\t$scope.value = angular.isArray( $scope.value ) ? $scope.value : [];\n\t\t\t\t\t$scope.height = $scope.height || '100%';\n\t\t\t\t\t\n\t\t\t\t\t//console.log( $scope );\n\t\t\t\t\tvar lastClickedItem = false;\n\t\t\t\t\t\n\t\t\t\t\t$scope.toggleCheck = function ( $event, $index ) {\n\t\t\t\t\t\t////console.log( $event.shiftKey, $index, lastClickedItem );\n\t\t\t\t\t\t\n\t\t\t\t\t\tvar idx;\n\t\t\t\t\t\t\n\t\t\t\t\t\tif ( $event && $event.shiftKey && ( lastClickedItem !== false && lastClickedItem != $index ) ) { // Select all in between last clicked and this click;\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tvar start, finish;\n\t\t\t\t\t\t\tif ( lastClickedItem > $index ) {\n\t\t\t\t\t\t\t\tstart = $index;\n\t\t\t\t\t\t\t\tfinish = lastClickedItem;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tstart = lastClickedItem;\n\t\t\t\t\t\t\t\tfinish = $index;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tidx = $scope.value.indexOf( $scope.options[ lastClickedItem ].value );\n\t\t\t\t\t\t\tvar toChecked = true;\n\t\t\t\t\t\t\tif ( idx == -1 ) {\n\t\t\t\t\t\t\t\ttoChecked = false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t//console.log( 'multi select', start, finish );\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfor ( var x = start; x <= finish; x++ ) {\n\t\t\t\t\t\t\t\tif ( !toChecked ) {\n\t\t\t\t\t\t\t\t\t$scope.value.splice( $scope.value.indexOf( $scope.options[ x ].value ), 1 );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$scope.value.push( $scope.options[ x ].value );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tidx = $scope.value.indexOf( $scope.options[ $index ].value );\n\t\t\t\t\t\t\t// is currently selected\n\t\t\t\t\t\t\tif ( idx > -1 ) {\n\t\t\t\t\t\t\t\t$scope.value.splice( idx, 1 );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t// is newly selected\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t$scope.value.push( $scope.options[ $index ].value );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlastClickedItem = $index;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t};\n\t\t\t\t\t\n\t\t\t\t\t$scope.selectAll = function () {\n\t\t\t\t\t\t$scope.value = $scope.options.map( function ( item ) {\n\t\t\t\t\t\t\treturn item.value;\n\t\t\t\t\t\t} );\n\t\t\t\t\t};\n\t\t\t\t\t\n\t\t\t\t\t$scope.selectNone = function () {\n\t\t\t\t\t\t$scope.value = [];\n\t\t\t\t\t};\n\t\t\t\t\t\n\t\t\t\t} ]\n\t\t\t}\n\t\t\t;\n\t\t}] );\n})( window, window.angular );","(function( window, angular, undefined) {\n\t'use strict';\n\tangular.module( 'ui.mdInputContainerExtended', [] )\n\t\t.directive('mdAutocomplete', [ '$timeout', '$parse', function( $timeout, $parse ) {\n\t\t\treturn {\n\t\t\t\t// priority: 1000,\n\t\t\t\tcompile: function( el, attrs ) {\n\t\t\t\t\tvar blurFn = $parse( attrs['mdBlur'] );\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\tvar inputContainer = el.find('md-input-container');\n\t\t\t\t\tif ( attrs['mdBlur'] ) {\n\t\t\t\t\t\tinputContainer.attr( 'md-blur', '$mdAutocompleteCtrl.__mdBlurEvent( $event )');\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\treturn {\n\t\t\t\t\t\tpre: function( scope, el, attrs ) {\n\t\t\t\t\t\t\tvar ctrl = el.controller('md-autocomplete');\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tctrl.__mdBlurEvent = function( event ) {\n\t\t\t\t\t\t\t\treturn blurFn( scope, { $event: event } );\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t// return {\n\t\t\t\t\t// \tpost: function( scope, el, attrs ) {\n\t\t\t\t\t// \t\tconsole.log( 'MD INPUT CONTAINER', el );\n\t\t\t\t\t// \t}\n\t\t\t\t\t//\n\t\t\t\t\t//\n\t\t\t\t\t// }\n\t\t\t\t}\n\t\t\t};\n\t\t} ])\n\t\t.directive('mdInputContainer', [ '$rootScope', '$compile', '$parse', '$timeout', function( $rootScope, $compile, $parse, $timeout ) {\n\t\t\treturn {\n\t\t\t\trestrict: 'E',\n\t\t\t\tscope: true,\n\t\t\t\tcompile: function( el, attrs ) {\n\t\t\t\t\t\n\t\t\t\t\tvar blurFn = $parse( attrs['mdBlur'] );\n\t\t\t\t\tvar changeFn = $parse( attrs['mdChange'] );\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\treturn {\n\t\t\t\t\t\tpost: function( scope, el, attrs ) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif ( blurFn == angular.noop && changeFn == angular.noop && attrs.mdShowLoading === undefined && attrs.mdShowSuccess === undefined && attrs.mdShowFailure === undefined ) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t// scope.mdShowLoading = $parse( attrs.mdShowLoading )(scope);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t// attrs.$observe( 'mdShowLoading', function( newVal ) {\n\t\t\t\t\t\t\t// \tconsole.log( 'MD SHOWING CHANGE', newVal, $parse( attrs.mdShowLoading )(scope) );\n\t\t\t\t\t\t\t// });\n\t\t\t\t\t\t\t// attrs.$observe( 'mdShowSuccess', function( newVal ) {\n\t\t\t\t\t\t\t// \tscope.mdShowSuccess = $parse( attrs.mdShowSuccess )(scope);\n\t\t\t\t\t\t\t// });\n\t\t\t\t\t\t\t// attrs.$observe( 'mdShowFailure', function( newVal ) {\n\t\t\t\t\t\t\t// \tscope.mdShowFailure = $parse( attrs.mdShowFailure )(scope);\n\t\t\t\t\t\t\t// });\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tscope.$watch( attrs.mdShowLoading, function( newVal ) {\n\t\t\t\t\t\t\t\tscope.mdShowLoading = newVal;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tscope.$watch( attrs.mdShowSuccess, function( newVal ) {\n\t\t\t\t\t\t\t\tif ( newVal ) {\n\t\t\t\t\t\t\t\t\tshowLoadingToSuccess();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tscope.$watch( attrs.mdShowFailure, function( newVal ) {\n\t\t\t\t\t\t\t\tscope.mdShowFailure = newVal;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconsole.log( 'EXTENDED INPUT CONTAINER', el, scope, attrs );\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tvar ctrl = el.controller( 'mdInputContainer' );\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tctrl.loadingIndicator = $compile( angular.element( '' ) )( scope );\n\t\t\t\t\t\t\tctrl.successIndicator = $compile( angular.element( 'check_circle' ) )( scope );\n\t\t\t\t\t\t\tctrl.errorIndicator = $compile( angular.element( 'error' ) )( scope );\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tel.append( ctrl.loadingIndicator );\n\t\t\t\t\t\t\tel.append( ctrl.successIndicator );\n\t\t\t\t\t\t\tel.append( ctrl.errorIndicator );\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif ( ctrl.input ) {\n\t\t\t\t\t\t\t\tif ( blurFn !== angular.noop ) {\n\t\t\t\t\t\t\t\t\tctrl.input.on( 'blur', updateFn );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif ( changeFn !== angular.noop ) {\n\t\t\t\t\t\t\t\t\tctrl.input.on( 'change', updateFn );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t// Todo: Add support for right icons, probably will need to re-style the icons used here.\n\t\t\t\t\t\t\t// Taken from md-input-container\n\t\t\t\t\t\t\t/*var INPUT_TAGS = ['INPUT', 'TEXTAREA', 'SELECT', 'MD-SELECT'];\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tvar RIGHT_SELECTORS = INPUT_TAGS.reduce(function(selectors, isel) {\n\t\t\t\t\t\t\t\treturn selectors.concat([isel + ' ~ md-icon', isel + ' ~ .md-icon']);\n\t\t\t\t\t\t\t}, []).join(\",\");\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tvar rightIcon = el[0].querySelector(RIGHT_SELECTORS);\n\n\t\t\t\t\t\t\t*/\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t/*scope.$watch( function() {\n\t\t\t\t\t\t\t\treturn scope.mdShowLoading || scope.mdShowFailure || scope.mdShowSuccess;\n\t\t\t\t\t\t\t}, function( newVal ) {\n\t\t\t\t\t\t\t\tif ( newVal ) {\n\t\t\t\t\t\t\t\t\tctrl.element.addClass('md-icon-right')\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t!rightIcon && ctrl.element.removeClass('md-icon-right')\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})*/\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfunction showLoadingToSuccess() {\n\t\t\t\t\t\t\t\t$timeout( function() {\n\t\t\t\t\t\t\t\t\tscope.mdShowLoading = false;\n\t\t\t\t\t\t\t\t\tscope.mdShowSuccess = true;\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t$timeout( function() {\n\t\t\t\t\t\t\t\t\t\tscope.mdShowSuccess = false;\n\t\t\t\t\t\t\t\t\t}, 3000 );\n\t\t\t\t\t\t\t\t}, 500);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfunction updateFn( event ) {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tvar callback = function () {\n\t\t\t\t\t\t\t\t\tvar retVal;\n\t\t\t\t\t\t\t\t\tconsole.log( 'RETURN VAL', event );\n\t\t\t\t\t\t\t\t\tif ( event.type === 'blur' ) {\n\t\t\t\t\t\t\t\t\t\tretVal = blurFn( scope, { $event: event } );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( event.type === 'change' ) {\n\t\t\t\t\t\t\t\t\t\tretVal = changeFn( scope, { $event: event } );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tconsole.log( 'RETURN VAL', retVal );\n\t\t\t\t\t\t\t\t\tif ( retVal && retVal.$$state && retVal.then ) { // && retVal.constructor.name === 'Promise', Due to compression we can't do this. We have to check to see if the $$state attr is on the object\n\t\t\t\t\t\t\t\t\t\tscope.mdShowLoading = true;\n\t\t\t\t\t\t\t\t\t\tscope.mdShowFailure = false;\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tretVal.then( function() {\n\t\t\t\t\t\t\t\t\t\t\tshowLoadingToSuccess();\n\t\t\t\t\t\t\t\t\t\t}, function() {\n\t\t\t\t\t\t\t\t\t\t\tscope.mdShowLoading = false;\n\t\t\t\t\t\t\t\t\t\t\tscope.mdShowFailure = true;\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif ( $rootScope.$$phase ) {\n\t\t\t\t\t\t\t\t\tscope.$evalAsync( callback );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tscope.$apply( callback );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t};\n\t\t} ]);\n\t\n\t\n})( window, window.angular );\n","(function( window, angular, undefined) {\n\t'use strict';\n\tangular.module( 'ui.keyNavGrid', [] )\n\t\t/**\n\t\t * This directive is dependent on a set sizes of its child elements and it's width. If you change the size of it's container then you must call trigger a resize event on the window.\n\t\t * This directive is also dependent on an array of items being displayed in a row that wraps. As such a 25 element array with 6 items on each row will need to be displayed as:\n\t\t * ```\n\t\t * 0 1 2 3 4 5\n\t\t * 6 7 8 9 10 11\n\t\t * 12 13 14 15 16 17\n\t\t * 18 19 20 21 22 23\n\t\t * 24\n\t\t * ```\n\t\t *\n\t\t * ### Supported key combinations are:\n\t\t * Key | Action\n\t\t * --------------------------------------------- | ------\n\t\t * Left / Right / Up / Down | Moves focus left, right, up, and down\n\t\t * Home / End | Moves focus to the first or last column.\n\t\t * CTRL + Home / End | Moves focus to the first or last row.\n\t\t * Shift + Left / Right / Up / Down / Home / End | Selects items inside a box of [x1, y1], [x2,y2] and adds their indicies to the selected array.\n\t\t *\n\t\t *\n\t\t * @classdesc Enables keyboard navigation via arrow keys inside a `layout=\"row\" layout-wrap` element. Each item must be the same size.\n\t\t * @class key-nav-grid\n\t\t * @memberof module:ui\n\t\t * @ngdoc directive\n\t\t * @restrict A\n\t\t * @param {array} kng-items - The array of items that is displayed.\n\t\t * @param {array} kng-selected - An array representing the items that are currently selected.\n\t\t */\n\t\t.directive( 'keyNavGrid', [function() {\n\t\t\treturn {\n\t\t\t\tscope: {\n\t\t\t\t\titems: '=kngItems',\n\t\t\t\t\tselected: '=kngSelected',\n\t\t\t\t},\n\t\t\t\trestrict: 'A',\n\t\t\t\tcontroller: [ '$scope', '$element', '$attrs', '$window', '$timeout', '$interval', '$keyboardShortcuts', function( $scope, $element, $attrs, $window, $timeout, $interval, $keyboardShortcuts ) {\n\n\t\t\t\t\t$scope.$watch( 'items', function() {\n\t\t\t\t\t\tif ( $element[0].firstElementChild ) {\n\t\t\t\t\t\t\t$timeout( init, 500, true, $scope, $element, $attrs );\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\t$scope.$watch( function() { return $element[0].offsetWidth; }, function( newValue, oldValue ) {\n\t\t\t\t\t\tconsole.log( 'keyNavGrid Size Change', newValue, oldValue );\n\t\t\t\t\t\tif ( newValue != oldValue ) {\n\t\t\t\t\t\t\tif ($element[0].firstElementChild) {\n\t\t\t\t\t\t\t\t$timeout(init, 500, true, $scope, $element, $attrs);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tvar resizeBuffer;\n\t\t\t\t\tangular.element( $window ).on( 'resize', function() {\n\t\t\t\t\t\tif ( resizeBuffer ) {\n\t\t\t\t\t\t\t$timeout.cancel( resizeBuffer );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresizeBuffer = $timeout( init, 500, true, $scope, $element, $attrs );\n\t\t\t\t\t} );\n\n\n\t\t\t\t\tvar columns;\n\t\t\t\t\tvar rows;\n\t\t\t\t\tvar cursor = [ -1,-1 ];\n\t\t\t\t\tvar grid = [];\n\t\t\t\t\tvar selectionBegin = false;\n\t\t\t\t\tvar selectionBeginCursor = false;\n\n\n\t\t\t\t\tvar SHORTCUTS = [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tkey: 'ArrowUp',\n\t\t\t\t\t\t\t// modifiers: [['meta', 'ctrl'], ['ctrl', 'alt']],\n\t\t\t\t\t\t\taction: function( evt ) {\n\t\t\t\t\t\t\t\t// evt.preventDefault();\n\t\t\t\t\t\t\t\tsetCursorLocation( cursor[0], cursor[1]-1 );\n\t\t\t\t\t\t\t\tif ( evt.shiftKey ) {\n\t\t\t\t\t\t\t\t\tsetSelection();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tstopEvent: true\n\t\t\t\t\t\t},{\n\t\t\t\t\t\t\tkey: 'ArrowDown',\n\t\t\t\t\t\t\t// modifiers: [['meta', 'ctrl'], ['ctrl', 'alt']],\n\t\t\t\t\t\t\taction: function( evt ) {\n\t\t\t\t\t\t\t\t//evt.preventDefault();\n\t\t\t\t\t\t\t\tsetCursorLocation( cursor[0], cursor[1]+1 );\n\t\t\t\t\t\t\t\tif ( evt.shiftKey ) {\n\t\t\t\t\t\t\t\t\tsetSelection();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tstopEvent: true\n\t\t\t\t\t\t},{\n\t\t\t\t\t\t\tkey: 'ArrowLeft',\n\t\t\t\t\t\t\t// modifiers: [['meta', 'ctrl'], ['ctrl', 'alt']],\n\t\t\t\t\t\t\taction: function( evt ) {\n\t\t\t\t\t\t\t\tsetCursorLocation( cursor[0]-1, cursor[1] );\n\t\t\t\t\t\t\t\tif ( evt.shiftKey ) {\n\t\t\t\t\t\t\t\t\tsetSelection();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},{\n\t\t\t\t\t\t\tkey: 'ArrowRight',\n\t\t\t\t\t\t\t// modifiers: [['meta', 'ctrl'], ['ctrl', 'alt']],\n\t\t\t\t\t\t\taction: function( evt ) {\n\t\t\t\t\t\t\t\tsetCursorLocation( cursor[0]+1, cursor[1] );\n\t\t\t\t\t\t\t\tif ( evt.shiftKey ) {\n\t\t\t\t\t\t\t\t\tsetSelection();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},{\n\t\t\t\t\t\t\tkey: 'Shift',\n\t\t\t\t\t\t\taction: function() {\n\t\t\t\t\t\t\t\tselectionBeginCursor = [].concat( cursor );\n\t\t\t\t\t\t\t\tselectionBegin = [].concat( $scope.selected );\n\t\t\t\t\t\t\t\t// console.log( \"KEY SHIFT DOWN\", selectionBeginCursor );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},/*{\n\t\t\t\t\t\t\tkey: 'ArrowUp',\n\t\t\t\t\t\t\tmodifiers: ['shift'],\n\t\t\t\t\t\t\taction: function() {\n\t\t\t\t\t\t\t\t$timeout( setSelection, 0, true );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},{\n\t\t\t\t\t\t\tkey: 'ArrowDown',\n\t\t\t\t\t\t\tmodifiers: ['shift'],\n\t\t\t\t\t\t\taction: function() {\n\t\t\t\t\t\t\t\t$timeout( setSelection, 0, true );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},{\n\t\t\t\t\t\t\tkey: 'ArrowLeft',\n\t\t\t\t\t\t\tmodifiers: ['shift'],\n\t\t\t\t\t\t\taction: function() {\n\t\t\t\t\t\t\t\t$timeout( setSelection, 0, true );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},{\n\t\t\t\t\t\t\tkey: 'ArrowRight',\n\t\t\t\t\t\t\tmodifiers: ['shift'],\n\t\t\t\t\t\t\taction: function() {\n\t\t\t\t\t\t\t\t$timeout( setSelection, 0, true );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},*/{\n\t\t\t\t\t\t\tkey: 'ArrowLeft',\n\t\t\t\t\t\t\tmodifiers: ['meta'],\n\t\t\t\t\t\t\taction: angular.noop(),\n\t\t\t\t\t\t\tstopEvent: true\n\t\t\t\t\t\t},{\n\t\t\t\t\t\t\tkey: 'ArrowRight',\n\t\t\t\t\t\t\tmodifiers: ['meta'],\n\t\t\t\t\t\t\taction: angular.noop(),\n\t\t\t\t\t\t\tstopEvent: true\n\t\t\t\t\t\t},{\n\t\t\t\t\t\t\tkey: 'Home',\n\t\t\t\t\t\t\tmodifiers: { ctrl: false, meta: false },\n\t\t\t\t\t\t\taction: function( evt ) {\n\t\t\t\t\t\t\t\t// Goto first column\n\t\t\t\t\t\t\t\tsetCursorLocation( 0, cursor[1] );\n\t\t\t\t\t\t\t\tif ( evt.shiftKey ) {\n\t\t\t\t\t\t\t\t\t$timeout( setSelection, 0, true );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tstopEvent: true\n\t\t\t\t\t\t},{\n\t\t\t\t\t\t\tkey: 'End',\n\t\t\t\t\t\t\tmodifiers: { ctrl: false, meta: false },\n\t\t\t\t\t\t\taction: function( evt ) {\n\t\t\t\t\t\t\t\tconsole.log( 'END PRESS' );\n\t\t\t\t\t\t\t\t// Goto last column\n\t\t\t\t\t\t\t\tsetCursorLocation( columns, cursor[1] );\n\t\t\t\t\t\t\t\tif ( evt.shiftKey ) {\n\t\t\t\t\t\t\t\t\t$timeout( setSelection, 0, true );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tstopEvent: true\n\t\t\t\t\t\t},{\n\t\t\t\t\t\t\tkey: 'Home',\n\t\t\t\t\t\t\tmodifiers: [['meta'], ['ctrl']],\n\t\t\t\t\t\t\taction: function( evt ) {\n\t\t\t\t\t\t\t\t// Goto first row\n\t\t\t\t\t\t\t\tsetCursorLocation( cursor[0], 0 );\n\t\t\t\t\t\t\t\tif ( evt.shiftKey ) {\n\t\t\t\t\t\t\t\t\t$timeout( setSelection, 0, true );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tstopEvent: true\n\t\t\t\t\t\t},{\n\t\t\t\t\t\t\tkey: 'End',\n\t\t\t\t\t\t\tmodifiers: [['meta'], ['ctrl']],\n\t\t\t\t\t\t\taction: function( evt ) {\n\t\t\t\t\t\t\t\t// Goto last row\n\t\t\t\t\t\t\t\tsetCursorLocation( cursor[0], rows );\n\t\t\t\t\t\t\t\tif ( evt.shiftKey ) {\n\t\t\t\t\t\t\t\t\t$timeout( setSelection, 0, true );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tstopEvent: true\n\t\t\t\t\t\t}\n\t\t\t\t\t];\n\n\t\t\t\t\tvar keyboardShortcuts = $keyboardShortcuts( SHORTCUTS );\n\n\n\t\t\t\t\tvar shortcuts = $keyboardShortcuts([\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tkey: 'ArrowUp',\n\t\t\t\t\t\t\tmodifiers: 'ctrl+shfit',\n\t\t\t\t\t\t\taction: function( evt ) { },\n\t\t\t\t\t\t\tstopEvent: true\n\t\t\t\t\t\t},{\n\t\t\t\t\t\t\tkey: 'ArrowUp',\n\t\t\t\t\t\t\tmodifiers: [ 'ctrl','shift' ],\n\t\t\t\t\t\t\taction: function( evt ) { },\n\t\t\t\t\t\t\tstopEvent: true\n\t\t\t\t\t\t},{\n\t\t\t\t\t\t\tkey: 'ArrowUp',\n\t\t\t\t\t\t\tmodifiers: [[ 'ctrl','shift' ],[ 'meta','shift' ]],\n\t\t\t\t\t\t\taction: function( evt ) { },\n\t\t\t\t\t\t\tstopEvent: true\n\t\t\t\t\t\t},{\n\t\t\t\t\t\t\tkey: 'ArrowUp',\n\t\t\t\t\t\t\tmodifiers: { ctrl: true, shift: true },\n\t\t\t\t\t\t\taction: function( evt ) { },\n\t\t\t\t\t\t\tstopEvent: true\n\t\t\t\t\t\t},{\n\t\t\t\t\t\t\tkey: 'ArrowUp',\n\t\t\t\t\t\t\tmodifiers: false,\n\t\t\t\t\t\t\taction: function( evt ) { },\n\t\t\t\t\t\t\tstopEvent: true\n\t\t\t\t\t\t},{\n\t\t\t\t\t\t\tkey: 'ArrowUp',\n\t\t\t\t\t\t\taction: function( evt ) { },\n\t\t\t\t\t\t\tstopEvent: true\n\t\t\t\t\t\t},\n\n\t\t\t\t\t]);\n\t\t\t\t\tconsole.log( shortcuts );\n\n\n\t\t\t\t\t$scope.$on('$destroy', function() {\n\t\t\t\t\t\tkeyboardShortcuts.remove();\n\t\t\t\t\t});\n\n\n\n\t\t\t\t\t// $interval( function() { console.log( 'keyNavGrid init', $element[0].offsetWidth ); }, 250 );\n\n\t\t\t\t\tfunction init( $scope, $element, $attrs ) {\n\t\t\t\t\t\t// console.log( 'keyNavGrid init', $element[0].offsetWidth );\n\t\t\t\t\t\tvar maxWidth = $element[ 0 ].offsetWidth;\n\t\t\t\t\t\tvar exampleItem = $element[ 0 ].firstElementChild;//.cloneNode( true );\n\t\t\t\t\t\tvar compExampleStyle = window.getComputedStyle( exampleItem );\n\t\t\t\t\t\tvar itemWidth = exampleItem.offsetWidth + parseInt(compExampleStyle.marginLeft) + parseInt(compExampleStyle.marginRight);\n\t\t\t\t\t\tcolumns = Math.floor( maxWidth / itemWidth );\n\t\t\t\t\t\trows = Math.ceil( $scope.items.length / columns );\n\n\n\t\t\t\t\t\tfor ( var y = 0, total = 0; y < rows && total < $scope.items.length; y++ ) {\n\t\t\t\t\t\t\tgrid[ y ] = [];\n\n\t\t\t\t\t\t\tfor ( var x = 0; x < columns && total < $scope.items.length; x++, total++ ) {\n\t\t\t\t\t\t\t\t// console.log( 'KEY NAV GRID - GRID INIT', x, ',', y);\n\t\t\t\t\t\t\t\tgrid[ y ][ x ] = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\tangular.forEach( $element.children(), function( el ) {\n\t\t\t\t\t\t\tangular.element( el ).on('focusin', setCursorLocationByEvent );\n\t\t\t\t\t\t});\n\n\t\t\t\t\t}\n\n\n\t\t\t\t\tfunction setCursorLocation( x, y, withFocus ) {\n\t\t\t\t\t\twithFocus = withFocus === false ? false : true;\n\n\t\t\t\t\t\tif ( x < 0 ) {\n\t\t\t\t\t\t\tx = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( y < 0 ) {\n\t\t\t\t\t\t\ty = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( x >= columns ) {\n\t\t\t\t\t\t\tx = columns - 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( y >= rows ) {\n\t\t\t\t\t\t\ty = rows - 1;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( x >= grid[y].length ) {\n\t\t\t\t\t\t\tx = grid[y].length - 1;\n\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\tcursor = [ x, y ];\n\n\t\t\t\t\t\tif ( withFocus ) {\n\t\t\t\t\t\t\tfocusOnCursor();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\t\t\t\t\tfunction setCursorLocationByEvent( evt ) {\n\t\t\t\t\t\tvar activeElement = evt.target;\n\n\t\t\t\t\t\tif ( activeElement ) {\n\t\t\t\t\t\t\tsetCursorLocationByElement( activeElement );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction setCursorLocationByElement( el ) {\n\t\t\t\t\t\tif ( el ) {\n\t\t\t\t\t\t\tvar itemIndex = Array.prototype.slice.call( $element.children() ).findIndex( function( item, i ) {\n\t\t\t\t\t\t\t\treturn item === el;\n\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\tif ( itemIndex !== -1 ) {\n\t\t\t\t\t\t\t\tsetCursorLocationByIndex( itemIndex );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction setCursorLocationByIndex( index ) {\n\t\t\t\t\t\tvar y = Math.floor( index / columns );\n\t\t\t\t\t\tvar x = index % columns;\n\t\t\t\t\t\tcursor = [ x,y ];\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction focusOnCursor() {\n\t\t\t\t\t\tvar itemIndex = ( cursor[1] * columns ) + cursor[0] ;\n\n\t\t\t\t\t\tvar children = $element.children();\n\t\t\t\t\t\tif ( itemIndex >= children.length ) {\n\t\t\t\t\t\t\titemIndex = children.length - 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tchildren[itemIndex].focus();\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction setSelection() {\n\t\t\t\t\t\tvar newSelectionIndecies = [];\n\t\t\t\t\t\tvar startX;\n\t\t\t\t\t\tvar startY;\n\t\t\t\t\t\tvar endX;\n\t\t\t\t\t\tvar endY;\n\n\t\t\t\t\t\tif ( selectionBeginCursor[0] > cursor[0] ) {\n\t\t\t\t\t\t\tstartX = cursor[0];\n\t\t\t\t\t\t\tendX = selectionBeginCursor[0];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( selectionBeginCursor[0] <= cursor[0] ) {\n\t\t\t\t\t\t\tstartX = selectionBeginCursor[0];\n\t\t\t\t\t\t\tendX = cursor[0];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( selectionBeginCursor[1] > cursor[1] ) {\n\t\t\t\t\t\t\tstartY = cursor[1];\n\t\t\t\t\t\t\tendY = selectionBeginCursor[1];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( selectionBeginCursor[1] <= cursor[1] ) {\n\t\t\t\t\t\t\tstartY = selectionBeginCursor[1];\n\t\t\t\t\t\t\tendY = cursor[1];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar itemIndex;\n\t\t\t\t\t\tfor( var y = startY; y <= endY; y++ ) {\n\t\t\t\t\t\t\tfor( var x = startX; x <= endX; x++ ) {\n\t\t\t\t\t\t\t\titemIndex = ( y * columns ) + x ;\n\t\t\t\t\t\t\t\tnewSelectionIndecies.push( itemIndex );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t$scope.selected = selectionBegin.concat( newSelectionIndecies ).filter( function( val, index, self ) {\n\t\t\t\t\t\t\treturn self.indexOf( val ) === index;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t}\n\t\t\t\t} ]\n\t\t\t};\n\t\t}]);\n})( window, window.angular );\n","(function (window, angular, undefined) {\n\t'use strict';\n\n\n\tangular.module('ui.fullcalendar', [])\n\t\t.constant( )\n\t\t.directive('uiFullcalendar', ['$timeout', uiFullcalendarDirective]);\n\n\n\tfunction uiFullcalendarDirective() {\n\t\tvar calendar;\n\t\tvar attrConfig;\n\n\t\tvar defaultConfig = {\n\t\t\tinitialView: 'dayGridMonth',\n\t\t\t// initialDate: '2020-11-07',\n\t\t\theaderToolbar: {\n\t\t\t\tleft: 'prev,next today',\n\t\t\t\tcenter: 'title',\n\t\t\t\tright: 'dayGridMonth,timeGridWeek,timeGridDay'\n\t\t\t},\n\t\t\tdateClick: function(arg) {\n\t\t\t\tcalendar.changeView('timeGridDay', arg.date );\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\trestrict: 'EA',\n\t\t\t// require: '?ngModel',\n\t\t\tcompile: function compile() {\n\n\t\t\t\treturn postLink;\n\t\t\t}\n\t\t};\n\n\t\tfunction postLink(scope, iElement, iAttrs, ngModel) {\n\n\t\t\tattrConfig = angular.merge(\n\t\t\t\t{},\n\t\t\t\tdefaultConfig,\n\t\t\t\tscope.$eval(iAttrs.uiFullcalendar),\n\t\t\t\tscope.$eval(iAttrs.uiFullcalendarOpts)\n\t\t\t);\n\n\n\t\t\t// if ( ! calendar ) {\n\t\t\t\tcalendar = new FullCalendar.Calendar(iElement[0], attrConfig);\n\t\t\t\tcalendar.render();\n\n\n\t\t\t// }\n\n\t\t}\n\t}\n})( window, angular );\n","/**\n * Created by briankelley on 9/6/17.\n */\n\n\n/**\n * @typedef contextMenuItem\n * @memberof module:ui.context-menu\n * @property {string} label - Label displayed in the menu.\n * @property {string=} [icon] - Material Font Icon displayed to the left of the label.\n * @property {string=} [svgIcon] - SVG Icon displayed to the left of the label.\n * @property {function=} [action] - Action to preform when clicked.\n * @property {function|boolean=} [disabled] - Will disable the item in the menu\n * @property {string} [shortcut] - Will display a shortcut based on {@link module:ui.shortcutFilter shortcutFilter}\n */\n\n\n/**\n * @classdesc Replaces the default right click menu with one you can pass an object of menu options.\n * @ngdoc directive\n * @class context-menu\n * @memberof module:ui\n * @restrict A\n * @param {(module:ui.context-menu.contextMenuItem[]|boolean)} context-menu - An array containing the menu item objects to display. If `false`, no menu will be shown.\n */\n\n/*\n{\n\tlabel: \"Preview\",\n\ticon: \"pageview\",\n\taction: function( evt ) {\n\t\tvar el = document.elementFromPoint( evt.pageX, evt.pageY );\n\t\tconsole.log( evt, el );\n\t},\n\tdisabled: function() {\n\t\treturn $scope.selection.current.length > 1;\n\t},\n\tshortcut: 'Space'\n}\n*/\n(function( window, angular, undefined) {\n\t'use strict';\n\n\n\tangular.module('ui.contextMenu',[])\n\t\t.config( [ '$mdThemingProvider', function( $mdThemingProvider ) {\n\n\t\t\t$mdThemingProvider.registerStyles('' +\n\t\t\t\t'.md-THEME_NAME-theme .context-menu { background: \\'{{background-50}}\\'; color: rgba(0,0,0,0.87); }' +\n\t\t\t\t'.md-THEME_NAME-theme .context-menu md-icon { color: rgba(0,0,0,0.54); }' +\n\t\t\t\t'.md-THEME_NAME-theme .md-button.md-THEME_NAME-theme[disabled] { color: rgba(0,0,0,0.54); }' +\n\t\t\t\t'');\n\n\t\t} ])\n\t\t.directive('ngRightClick', ['$parse', function($parse) {\n\t\t\treturn function(scope, element, attrs) {\n\t\t\t\tvar fn = $parse(attrs.ngRightClick);\n\t\t\t\telement.bind('contextmenu', function(event) {\n\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\tscope.$apply(function() {\n\t\t\t\t\t\tfn(scope, {$event:event});\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t};\n\t\t}])\n\t\t.directive( 'contextMenu', [ '$mdPanel', '$timeout', 'getAncestor', function( $mdPanel, $timeout, getAncestor ) {\n\t\t\treturn {\n\t\t\t\trestrict: 'EA',\n\t\t\t\tlink: function ( scope, element, attrs ) {\n\n\t\t\t\t\tvar contextMenuItems = false;\n\t\t\t\t\tvar contextMenuPanel;\n\n\t\t\t\t\tconsole.log( 'CONTEXT MENU', attrs );\n\n\n\t\t\t\t\tscope.$watch( attrs.contextMenu, function ( menu ) {\n\t\t\t\t\t\tconsole.log( 'NEW MENU VALUE', menu );\n\t\t\t\t\t\tif ( menu ) {\n\t\t\t\t\t\t\tcontextMenuItems = menu;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontextMenuItems = false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconsole.log( contextMenuItems );\n\t\t\t\t\t} );\n\n\n\t\t\t\t\telement.on( 'contextmenu', function( evt ) {\n\t\t\t\t\t\tscope.showContextMenu( contextMenuItems, evt, 'root' );\n\t\t\t\t\t});\n\t\t\t\t\telement.on( 'mousedown', function( evt ) {\n\t\t\t\t\t\tif ( evt.which === 3 ) {\n\t\t\t\t\t\t\tevt.stopImmediatePropagation();\n\t\t\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconsole.log( 'AFTER CONTEXT CLICK', evt );\n\t\t\t\t\t});\n\n\t\t\t\t\t// if ( contextMenuItems ) {\n\t\t\t\t\t// \telement.on( 'contextmenu', showContextMenu );\n\t\t\t\t\t// }\n\n\t\t\t\t\tvar panelGroup = $mdPanel.newPanelGroup( 'contextMenu', { maxOpen: 1 } );\n\t\t\t\t\tvar subPanelGroup = $mdPanel.newPanelGroup( 'contextSubMenu', { maxOpen: 1 } );\n\t\t\t\t\tconsole.log( 'PANEL GROUP', panelGroup );\n\n\n\n\t\t\t\t\tscope.showContextMenu = function( items, evt, menuName, parentEl ) {\n\t\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\t\tevt.stopImmediatePropagation();\n\n\t\t\t\t\t\tconsole.log( 'SHOW CONTEXT MENU', items, evt, parentEl );\n\t\t\t\t\t\tvar position;\n\t\t\t\t\t\tvar groupName = ['contextMenu'];\n\n\n\t\t\t\t\t\tif ( !items ) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( parentEl ) {\n\t\t\t\t\t\t\tangular.forEach( subPanelGroup.openPanels, function( panel ) {\n\t\t\t\t\t\t\t\t// panel.close();\n\t\t\t\t\t\t\t\t//$timeout.cancel( closeTimeout );\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tvar parentPosition = parentEl[0].getBoundingClientRect();\n\n\t\t\t\t\t\t\tposition = $mdPanel.newPanelPosition()\n\t\t\t\t\t\t\t\t// .relativeTo( parentEl )\n\t\t\t\t\t\t\t\t// .addPanelPosition( $mdPanel.xPosition.OFFSET_END, $mdPanel.yPosition.ALIGN_TOPS );\n\t\t\t\t\t\t\t\t.absolute()\n\t\t\t\t\t\t\t\t.withOffsetX( parentPosition.right + 'px' )\n\t\t\t\t\t\t\t\t.withOffsetY( parentPosition.top + 'px' );\n\t\t\t\t\t\t\tgroupName = ['contextSubMenu'];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tposition = $mdPanel.newPanelPosition()\n\t\t\t\t\t\t\t\t// .relativeTo( evt.target )\n\t\t\t\t\t\t\t\t// .addPanelPosition( $mdPanel.xPosition.OFFSET_END, $mdPanel.yPosition.BELOW );\n\t\t\t\t\t\t\t\t.absolute()\n\t\t\t\t\t\t\t\t.withOffsetX( evt.pageX + 'px' )\n\t\t\t\t\t\t\t\t.withOffsetY( evt.pageY + 'px' );\n\t\t\t\t\t\t}\n\n\n\n\t\t\t\t\t\tvar panelConfig = {\n\t\t\t\t\t\t\tid: 'contextMenu_' + menuName,\n\t\t\t\t\t\t\tattachTo: angular.element( document.body ),\n\t\t\t\t\t\t\tcontroller: [ '$timeout', 'mdPanelRef', '$element', function ( $timeout, mdPanelRef, $element ) {\n\t\t\t\t\t\t\t\tvar ctrl = this;\n\t\t\t\t\t\t\t\tvar closeTimeout;\n\n\t\t\t\t\t\t\t\tfunction closeSubmenu( evt ) {\n\t\t\t\t\t\t\t\t\tconsole.log( 'Close Submenu!', evt );\n\t\t\t\t\t\t\t\t\tcloseTimeout = $timeout(function() {\n\t\t\t\t\t\t\t\t\t\tmdPanelRef.close();\n\t\t\t\t\t\t\t\t\t\tangular.element( parentEl ).off( 'mouseleave', closeSubmenu );\n\n\t\t\t\t\t\t\t\t\t}, 500);\n\n\t\t\t\t\t\t\t\t\tangular.element( parentEl ).one( 'mouseover', cancelClose );\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tfunction cancelClose( evt ) {\n\t\t\t\t\t\t\t\t\tconsole.log( 'Cancel Close Submenu!', evt );\n\t\t\t\t\t\t\t\t\tif ( closeTimeout ) {\n\t\t\t\t\t\t\t\t\t\t$timeout.cancel( closeTimeout );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t$timeout(function(){\n\t\t\t\t\t\t\t\t\tvar preventFn = function( evt ) {\n\t\t\t\t\t\t\t\t\t\tconsole.log('SHOW CONTEXT CLICK');\n\t\t\t\t\t\t\t\t\t\tevt.stopImmediatePropagation();\n\t\t\t\t\t\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\tmdPanelRef.panelContainer.one( 'mouseup', preventFn );\n\n\t\t\t\t\t\t\t\t\t$timeout( function() {\n\t\t\t\t\t\t\t\t\t\tmdPanelRef.panelContainer.off( 'mouseup', preventFn );\n\t\t\t\t\t\t\t\t\t}, 750 );\n\t\t\t\t\t\t\t\t});\n\n\n\t\t\t\t\t\t\t\tctrl.doAction = function ( item, $event ) {\n\n\t\t\t\t\t\t\t\t\tmdPanelRef.close();\n\t\t\t\t\t\t\t\t\tangular.forEach( panelGroup.openPanels, function( panel ) {\n\t\t\t\t\t\t\t\t\t\tpanel.close();\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tangular.forEach( subPanelGroup.openPanels, function( panel ) {\n\t\t\t\t\t\t\t\t\t\tpanel.close();\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tif ( item.stopEvent ) {\n\t\t\t\t\t\t\t\t\t\t$event.preventDefault();\n\t\t\t\t\t\t\t\t\t\t$event.stopImmediatePropagation();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t$timeout( item.action, 0, true, evt );\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\tctrl.showContextMenu = function( items, evt, name ) {\n\t\t\t\t\t\t\t\t\tconsole.log( evt.target.parentElement, evt.target.parentElement.parentElement );\n\t\t\t\t\t\t\t\t\tscope.showContextMenu( items, evt, name.replace(/\\s/g, ''), getAncestor( evt.target, 'button') );\n\t\t\t\t\t\t\t\t};\n\n\n\n\t\t\t\t\t\t\t\tif ( parentEl ) {\n\n\t\t\t\t\t\t\t\t\t$timeout(function() {\n\n\t\t\t\t\t\t\t\t\t\t// Close the submenu ... IF:\n\n\t\t\t\t\t\t\t\t\t\t// Mouse leaves the parent element.\n\t\t\t\t\t\t\t\t\t\tangular.element( parentEl ).on( 'mouseleave', closeSubmenu );\n\n\t\t\t\t\t\t\t\t\t\t// We leave the submenu.\n\t\t\t\t\t\t\t\t\t\tmdPanelRef.panelEl.on('mouseleave', closeSubmenu );\n\n\t\t\t\t\t\t\t\t\t\t// Don't close if we're moving to the submenu.\n\t\t\t\t\t\t\t\t\t\t$element.on( 'mouseenter', cancelClose );\n\t\t\t\t\t\t\t\t\t});\n\n\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} ],\n\t\t\t\t\t\t\tlocals: {\n\t\t\t\t\t\t\t\tcontextMenuItems: items\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tcontrollerAs: 'ctrl',\n\t\t\t\t\t\t\tposition: position,\n\t\t\t\t\t\t\tpanelClass: 'md-whiteframe-4dp context-menu',\n\t\t\t\t\t\t\topenFrom: evt,\n\t\t\t\t\t\t\ttargetEvent: evt,\n\t\t\t\t\t\t\ttemplateUrl: '/templates/ui/contextMenu/contextMenu.tpl.html',\n\t\t\t\t\t\t\tclickOutsideToClose: true,\n\t\t\t\t\t\t\tescapeToClose: true,\n\t\t\t\t\t\t\t// trapFocus: parentEl ? false : true,\n\t\t\t\t\t\t\tpropagateContainerEvents: true,\n\t\t\t\t\t\t\tfocusOnOpen: false,\n\t\t\t\t\t\t\tgroupName: groupName\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t$timeout( function() {\n\t\t\t\t\t\t\t$mdPanel.open( panelConfig );\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\t//panel.open();\n\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t};\n\n\t\t} ]);\n\n})( window, window.angular );\n","(function(window, angular, undefined) {\n\t'use strict';\n\t\n\t/**\n\t * @classdesc Directive to show a `X` to remove an item. Once clicked, a {@link https://material.angularjs.org/latest/api/service/$mdDialog $mdDialog.confirm} appears to confirm the action.\n\t * @class confirm-menu\n\t * @ngdoc directive\n\t * @restrict EA\n\t * @memberof module:ui\n\t * @param {string=} [message='Confirm'] The message to display.\n\t * @param {string=} [yes='Yes'] The text for the \"yes\" button.\n\t * @param {string=} [no='No'] The text for the \"no\" button.\n\t * @param {function} action The action to perform on confirmation.\n\t */\n\tangular.module('ui.confirmMenu',[])\n .directive('confirmMenu', function() {\n\treturn {\n\t\ttemplate: 'clear',\n\t\tscope: {\n\t\t\tmessage: '@?',\n\t\t\tyes: '@?',\n\t\t\tno: '@?',\n\t\t\taction: '&'\n\t\t},\n\t\trestrict: 'EA',\n\t\tcontrollerAs: 'ctrl',\n\t\tcontroller: [ '$scope', '$attrs', '$element', '$mdPanel', function( $scope, $attrs, $element, $mdPanel ) {\n\t\t\tconsole.log( $scope );\n\t\t\t$scope.message = $scope.message || 'Confirm';\n\t\t\t$scope.yes = $scope.yes || 'Yes';\n\t\t\t$scope.no = $scope.no || 'No';\n\n\t\t\tthis.showMenu = function( $event ) {\n\t\t\t\tvar position = $mdPanel.newPanelPosition()\n .relativeTo($element)\n .addPanelPosition($mdPanel.xPosition.CENTER, $mdPanel.yPosition.BELOW);\n\n\t\t\t\tvar config = {\n\t\t\t\t\tattachTo: angular.element(window.document.body),\n\t\t\t\t\tcontroller: [ '$scope', 'mdPanelRef', function( $scope, mdPanelRef ) {\n\t\t\t\t\t\tconsole.log( $scope );\n\t\t\t\t\t\tthis.cancel = function( $event ) {\n\t\t\t\t\t\t\tmdPanelRef.close();\n\t\t\t\t\t\t};\n\t\t\t\t\t\tthis.confirm = function( $event ) {\n\t\t\t\t\t\t\tif ( $scope.action ) {\n\t\t\t\t\t\t\t\t$scope.$eval( $scope.action, { '$event': $event } );\n\t\t\t\t\t\t\t\tmdPanelRef.close();\n\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t} ],\n\t\t\t\t\tcontrollerAs: 'confirmCtrl',\n\t\t\t\t\ttemplateUrl: '/templates/ui/confirmMenu/confirmMenu.tpl.html',\n\t\t\t\t\tpanelClass: 'confirm-menu md-whiteframe-3dp',\n\t\t\t\t\tposition: position,\n\t\t\t\t\topenFrom: $event,\n\t\t\t\t\tclickOutsideToClose: true,\n\t\t\t\t\tescapeToClose: true,\n\t\t\t\t\tfocusOnOpen: false,\n\t\t\t\t\tzIndex: 2,\n\t\t\t\t\tscope: $scope\n\t\t\t\t};\n\n\t\t\t\t$mdPanel.open(config);\n\t\t\t};\n\n\t\t} ]\n\t};\n});\n\n})(window, window.angular);\n","(function( window, angular, undefined) {\n\t'use strict';\n\t/**\n\t * @classdesc Displays and `edit` and `remove` icon. When clicking on the `remove` icon, a secondary \"confirm\" button will slide in on top of the icons to confirm removal.\n\t * @class edit-remove\n\t * @ngdoc directive\n\t * @restrict E\n\t * @memberof module:ui\n\t * @param {function=} [editFn] - The function to call when `edit` is clicked.\n\t * @param {function=} [removeFn] - The fuction to call when the `confirm` secondary button is clicked.\n\t * @param {string} [identifier] - An identifying string that will be passed to the editFn and removeFn.\n\t *\n\t */\n\tangular.module('ui.editRemove', [] )\n\t\t.component('editRemove', {\n\t\t\tbindings: {\n\t\t\t\teditFn: '=',\n\t\t\t\tremoveFn: '=',\n\t\t\t\tidentifier: '<'\n\t\t\t},\n\t\t\ttemplateUrl: '/templates/ui/editRemove/editRemove.tpl.html',\n\t\t\tcontrollerAs: 'ctrl',\n\t\t\tcontroller: [ '$scope','$element', '$timeout', '$keyboardShortcuts', function( $scope, $element, $timeout, $keyboardShortcuts ){\n\t\t\t\tvar ctrl = this;\n\t\t\t\tvar shortcuts;\n\t\t\t\tvar documentEl;\n\t\t\t\tctrl.$onInit = function() {\n\t\t\t\t\tdocumentEl = angular.element( document );\n\t\t\t\t\tshortcuts = $keyboardShortcuts([{\n\t\t\t\t\t\tkey: 'Escape',\n\t\t\t\t\t\taction: ctrl.cancelConfirm\n\t\t\t\t\t}]);\n\t\t\t\t\tshortcuts.pause();\n\n\t\t\t\t};\n\n\t\t\t\tctrl.confirmFn = function( $event ) {\n\t\t\t\t\tctrl.confirm = true;\n\t\t\t\t\tshortcuts.resume();\n\t\t\t\t\t$timeout(function() {\n\t\t\t\t\t\tdocumentEl.on( 'click', ctrl.cancelConfirm );\n\t\t\t\t\t});\n\t\t\t\t};\n\n\t\t\t\tctrl.cancelConfirm = function () {\n\t\t\t\t\tctrl.confirm = false;\n\t\t\t\t\tshortcuts.pause();\n\t\t\t\t\t$scope.$apply();\n\t\t\t\t\tdocumentEl.off( 'click', ctrl.cancelConfirm );\n\t\t\t\t};\n\n\n\t\t\t} ]\n\n\t\t});\n\n})( window, window.angular );\n","(function(window, angular, undefined) {\n\t'use strict';\n\t\n\tangular.module('ui.animatedCheckmark',[])\n\t\t.directive('animatedCheckmark', function() {\n\t\t\treturn {\n\t\t\t\ttemplate: '

{{ message }}

',\n\t\t\t\tscope: {\n\t\t\t\t\tmessage: '=?'\n\t\t\t\t}\n\t\t\t};\n\t\t});\n\t\n})(window, window.angular);\n","(function (window, angular, undefined) {\n\t'use strict';\n\t/**\n\t * @ngdoc object\n\t * @namespace module:app.userSelect\n\t * @description\n\t * Adds a `md-select` or `md-chips` components populated with the users of a given role.\n\t *\n\t * @see {@link module:app.userSelect.user-select}\n\t */\n\tangular.module('app.userSelect', [])\n\n\t\t/**\n\t\t * @ngdoc directive\n\t\t * @class user-select\n\t\t * @memberof module:app.userSelect\n\t\t * @description Adds a `md-select` or `md-chips` components populated with the users of a given role.\n\t\t * @restrict E\n\t\t *\n\t\t * @param {string} label - Label to display in the component\n\t\t * @param {string|number} role - The role id to populate the list with\n\t\t * @param {object} model - The model to be assigned to the select `ng-model`\n\t\t * @param {string|number} [selected] The default selected value\n\t\t * @param {boolean} [disabled=false] Should the component be disabled\n\t\t * @param {function} [blur] - Function to call on blur of the component\n\t\t * @param {boolean} [multiple=false] - Allow multiple selections\n\t\t **/\n\t\t.component('userSelect', userSelect());\n\n\t\t/**\n\t\t * @typedef userSelectValue\n\t\t * @memberOf module:app.userSelect.user-select\n\t\t * @property {string} [emailaddress] - Users email address\n\t\t * @property {string} fullname - Users full name, a combination of first and last name values from the database.\n\t\t * @property {number} id - Users Id\n\t\t * @property {string} [phonenumber] - Users phone number\n\t\t */\n\n\n\t\t function userSelect() {\n\t\tfunction userSelectController($element, $translate, $q, vlsSearchApi, securityApi) {\n\t\t\tvar ctrl = this;\n\n\t\t\tvar userObj;\n\t\t\tvar userOptions;\n\t\t\tvar currentUser;\n\t\t\tvar userListReady;\n\n\t\t\tctrl.$onInit = function () {\n\t\t\t\tconsole.log(\"USER SELECT\", ctrl);\n\n\t\t\t\tctrl.typeAName = $translate.instant( 'directives.app.userSelect.TYPE_A_NAME' );\n\t\t\t};\n\t\t\tctrl.$postLink = function() {\n\t\t\t\tif ( ctrl.model === undefined && ctrl.multiple ) {\n\t\t\t\t\tctrl.model = [];\n\t\t\t\t}\n\t\t\t\tif ( ctrl.selected === undefined && ctrl.multiple ) {\n\t\t\t\t\tctrl.selected = [];\n\t\t\t\t}\n\n\t\t\t\tctrl.usersLoaded = true;\n\t\t\t\tuserListReady = true;\n\t\t\t}\n\n\t\t\tctrl.$onChanges = function (changesObj) {\n\t\t\t\tconsole.log( \"USER SELECT CHANGES\", changesObj );\n\t\t\t\tif (changesObj.disabled) {\n\t\t\t\t\tctrl.disabled = changesObj.disabled.currentValue;\n\t\t\t\t}\n\t\t\t\tif ( changesObj.selected && userListReady ) {\n\t\t\t\t\tctrl.setUserValue(changesObj.selected.currentValue);\n\t\t\t\t}\n\t\t\t\t// if ( changesObj.model && userListReady ) {\n\t\t\t\t// \tif ( changesObj.model.currentValue === undefined ) {\n\t\t\t\t// \t\tif ( ctrl.multiple ) {\n\t\t\t\t// \t\t\tctrl.model = [];\n\t\t\t\t// \t\t} else {\n\t\t\t\t// \t\t\tctrl.model = {};\n\t\t\t\t// \t\t}\n\t\t\t\t// \t}\n\t\t\t\t// \tctrl.setUserValue(changesObj.model.currentValue);\n\t\t\t\t// }\n\n\t\t\t\tif ( changesObj.role && changesObj.role.currentValue ) {\n\t\t\t\t\tctrl.role = changesObj.role.currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tctrl.userOptions = function( query ) {\n\t\t\t\tvar calls = [];\n\t\t\t\tvar split = query.split( ' ' );\n\t\t\t\tif ( split.length > 1 ) {\n\t\t\t\t\tcalls.push( vlsSearchApi.users( { firstname: '~' + split[0], lastname: '~' + split[1], roleIds: ctrl.role } ) );\n\t\t\t\t} else {\n\t\t\t\t\tcalls.push( vlsSearchApi.users( { firstname: '~' + query, roleIds: ctrl.role } ) );\n\t\t\t\t\tcalls.push( vlsSearchApi.users( { lastname: '~' + query, roleIds: ctrl.role } ) );\n\t\t\t\t}\n\t\t\t\treturn $q.all( calls ).then( function( result ) {\n\t\t\t\t\tconsole.log( calls );\n\t\t\t\t\tvar returnArray = [];\n\t\t\t\t\tresult.forEach( function( res ) {\n\t\t\t\t\t\tif ( res.data ) {\n\t\t\t\t\t\t\tres.data.forEach( function( user ) {\n\t\t\t\t\t\t\t\tvar tempUser = user;\n\t\t\t\t\t\t\t\ttempUser.fullname = user.firstName + ' ' + user.lastName;\n\t\t\t\t\t\t\t\ttempUser.id = user.userId;\n\n\t\t\t\t\t\t\t\treturnArray.push( {\n\t\t\t\t\t\t\t\t\tvalue: tempUser,\n\t\t\t\t\t\t\t\t\tname: user.firstName + ' ' + user.lastName\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tconsole.log( returnArray );\n\t\t\t\t\treturn returnArray;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tctrl.setUserValue = function (selected) {\n\t\t\t\tconsole.log( 'CURRENT USER SELECTED', selected );\n\t\t\t\tif (!selected) {\n\t\t\t\t\tcurrentUser = undefined;\n\t\t\t\t\tctrl.userSearchTxt = undefined;\n\t\t\t\t\tctrl.model = ctrl.multiple ? [] : undefined;\n\t\t\t\t\tctrl.selected = ctrl.multiple ? [] : undefined;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tsecurityApi.getUserBasics({ids: selected } ).then(function (result) {\n\t\t\t\t\tcurrentUser = { name: result.data[0].firstName + ' ' + result.data[0].lastName, value: result.data[0] };//result.data[0].id || result.data[0].userId\n\n\t\t\t\t\tctrl.model = currentUser ? currentUser : undefined;\n\t\t\t\t\treturn result[0];\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tctrl.onBlur = function ($event) {\n\t\t\t\tctrl.blur && ctrl.blur($event, ctrl.model);\n\t\t\t}\n\n\t\t\tctrl.transformChip = function (chip) {\n\t\t\t\treturn chip.value;\n\t\t\t}\n\t\t}\n\n\n\t\treturn {\n\t\t\tbindings: {\n\t\t\t\trole: '<',\n\t\t\t\tmodel: '=',\n\t\t\t\tselected: ' 2 ) {\n\t\t\t\t\tctrl.collapsedState = 0;\n\t\t\t\t}\n\n\t\t\t\tif ( ctrl.canCollapse === false && ctrl.collapsedState == 0 ) {\n\t\t\t\t\tctrl.collapsedState = 1;\n\t\t\t\t}\n\t\t\t\tif ( ctrl.canExpand === false && ctrl.collapsedState >= 2 ) {\n\t\t\t\t\tctrl.collapsedState = 0;\n\t\t\t\t}\n\n\n\t\t\t\tlocalStorageService.set('appSidebar.' + ctrl.location + '.collapsedState', ctrl.collapsedState );\n\t\t\t\tctrl.setCollapseStateClass();\n\t\t\t\tconsole.log( 'Collapse Sidebar', ctrl.canCollapse, ctrl.canExpand, ctrl.collapsedState );\n\t\t\t}\n\n\t\t\tctrl.setCollapseStateClass = function() {\n\t\t\t\t$element.removeClass('collapsed');\n\t\t\t\t$element.removeClass('default');\n\t\t\t\t$element.removeClass('expanded');\n\n\t\t\t\tvar $body = angular.element( document.body );\n\t\t\t\t$body.removeClass( 'app-sidebar-' + ctrl.location + '-collapsed');\n\t\t\t\t$body.removeClass( 'app-sidebar-' + ctrl.location + '-expanded' );\n\n\t\t\t\tswitch( ctrl.collapsedState ) {\n\t\t\t\t\tcase 0:\n\t\t\t\t\t\t$element.addClass('collapsed');\n\t\t\t\t\t\t$body.addClass( 'app-sidebar-' + ctrl.location + '-collapsed' );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 1: $element.addClass('default'); break;\n\t\t\t\t\tcase 2:\n\t\t\t\t\t\t$element.addClass('expanded');\n\t\t\t\t\t\t$body.addClass( 'app-sidebar-' + ctrl.location + '-expanded' );\n\t\t\t\t\t\tbreak;\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tctrl.getCollapsedStateIcon = function() {\n\t\t\t\tvar icon;\n\t\t\t\tvar icons = {\n\t\t\t\t\ttoCollapsed: {\n\t\t\t\t\t\tleft: 'first_page',\n\t\t\t\t\t\tright: 'last_page'\n\t\t\t\t\t},\n\t\t\t\t\ttoExpanded: {\n\t\t\t\t\t\tleft: 'last_page',\n\t\t\t\t\t\tright: 'first_page'\n\t\t\t\t\t},\n\t\t\t\t\tchevron: {\n\t\t\t\t\t\tleft: 'chevron_left',\n\t\t\t\t\t\tright: 'chevron_right'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tswitch( ctrl.collapsedState ) {\n\t\t\t\t\tcase 0: // Moving from collapsed to default\n\t\t\t\t\t\ticon = icons.chevron[ ctrl.location === 'left' ? 'right' : 'left' ];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 1:\n\t\t\t\t\t\tif ( ctrl.canExpand === false ) { // Moving from default to collapsed (2 states only)\n\t\t\t\t\t\t\ticon = icons.chevron[ ctrl.location === 'left' ? 'left' : 'right' ];\n\t\t\t\t\t\t} else if ( ctrl.canCollapse === false ) { // Moving from default to expanded (2 states only)\n\t\t\t\t\t\t\ticon = icons.chevron[ ctrl.location === 'left' ? 'right' : 'left' ];\n\t\t\t\t\t\t} else { // moving to expanded\n\t\t\t\t\t\t\ticon = icons.toExpanded[ ctrl.location ];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 2:\n\t\t\t\t\t\tif ( ctrl.canCollapse === false ) {\n\t\t\t\t\t\t\ticon = icons.chevron[ ctrl.location === 'left' ? 'left' : 'right' ];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ticon = icons.toCollapsed[ ctrl.location ];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\treturn icon;\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Clears the sidebar of all data, nav, etc.\n\t\t\t * @method clearSidebar\n\t\t\t * @memberof module:app.sidebar.app-sidebar#\n\t\t\t */\n\t\t\tctrl.clearSidebar = function () {\n\t\t\t\tctrl.sidebar = {\n\t\t\t\t\tnav: [],\n\t\t\t\t\tdata: [],\n\t\t\t\t\tupload: [],\n\t\t\t\t\t__data: {}\n\t\t\t\t};\n\t\t\t};\n\n\t\t\t/**\n\t\t\t * Creates the sidebar data structures.\n\t\t\t * @method render\n\t\t\t * @memberof module:app.sidebar.app-sidebar#\n\t\t\t * @param {string=} [renderUID] - A sidebar UID that should be updated.\n\t\t\t * @returns {{nav: Array, data: Array, upload: Array, __data: {}}}\n\t\t\t */\n\t\t\tctrl.render = function ( renderUID ) {\n\t\t\t\tconsole.log( 'RENDERING', ctrl.location );\n\n\t\t\t\tif ( !ctrl.cache ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar sidebar = {\n\t\t\t\t\tnav: [],\n\t\t\t\t\tdata: [],\n\t\t\t\t\tupload: [],\n\t\t\t\t\t__data: {}\n\t\t\t\t};\n\n\n\t\t\t\tangular.forEach( ctrl.cache.order, function ( uid ) {\n\t\t\t\t\tif ( ctrl.cache.layout[ uid ] && ctrl.cache.layout[ uid ][ ctrl.location ] ) {\n\t\t\t\t\t\tvar layout = ctrl.cache.layout[ uid ][ ctrl.location ];\n\n\t\t\t\t\t\tif ( layout.nav ) {\n\t\t\t\t\t\t\tsidebar.nav = sidebar.nav.concat( layout.nav ); // Straight append the nav items.\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( layout.upload ) {\n\t\t\t\t\t\t\tvar section = layout.upload;\n\n\t\t\t\t\t\t\tvar newSection = getSection( section, uid, 'upload' );\n\t\t\t\t\t\t\tnewSection.data = section.data;\n\t\t\t\t\t\t\tnewSection.order = section.order;\n\t\t\t\t\t\t\tsidebar.upload.push( newSection );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( layout.data ) {\n\n\n\t\t\t\t\t\t\t// $log.log( 'appSidebar data', layout.data );\n\t\t\t\t\t\t\tangular.forEach( layout.data, function ( section ) {\n\n\t\t\t\t\t\t\t\tvar newSection;\n\t\t\t\t\t\t\t\tvar existing = findSection( section, uid, 'data' );\n\t\t\t\t\t\t\t\tif ( ( renderUID && renderUID === uid ) || !renderUID || !existing ) {\n\t\t\t\t\t\t\t\t\tif ( renderUID &&\n\t\t\t\t\t\t\t\t\t\texisting &&\n\t\t\t\t\t\t\t\t\t\tctrl.cache.items[ uid ] &&\n\t\t\t\t\t\t\t\t\t\tctrl.cache.items[ uid ].data &&\n\t\t\t\t\t\t\t\t\t\tctrl.sidebar.__data[ uid ] &&\n\t\t\t\t\t\t\t\t\t\tctrl.sidebar.__data[ uid ].data &&\n\t\t\t\t\t\t\t\t\t\tangular.equals( ctrl.cache.items[ uid ].data, ctrl.sidebar.__data[ uid ].data )\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\tnewSection = existing;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tnewSection = createSection( section, uid, 'data' );\n\t\t\t\t\t\t\t\t\t\tnewSection.data = getFields( section.data, uid );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewSection = existing;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// $log.log( 'appSidebar data', newSection.data );\n\n\t\t\t\t\t\t\t\tsidebar.data.push( newSection );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\t$timeout( function () {\n\t\t\t\t\tangular.forEach( ctrl.cache.order, function ( uid ) {\n\t\t\t\t\t\tsidebar.__data[ uid ] = angular.merge( {}, ctrl.cache.items[ uid ] );\n\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\n\t\t\t\tangular.forEach( sidebar, function ( val, type ) {\n\t\t\t\t\tctrl[ 'show' + type.charAt( 0 ).toUpperCase() + type.substr( 1 ) ] = buildShowFn( type );\n\t\t\t\t} );\n\n\t\t\t\t/**\n\t\t\t\t * Method that checks wether or not to show the sidebar. If there are no items in the sidebar, we hide it.\n\t\t\t\t * This funciton is automatically created for all sidebar sections and is called by the templates. If all\n\t\t\t\t * sections return false, then this function returns false. If one section returns true, then this function\n\t\t\t\t * returns true.\n\t\t\t\t * @method show\n\t\t\t\t * @memberof module:app.sidebar.app-sidebar#\n\t\t\t\t * @returns {boolean}\n\t\t\t\t */\n\t\t\t\tctrl.show = (function ( keys ) {\n\t\t\t\t\treturn function () {\n\t\t\t\t\t\tvar showVal = keys.some( function ( key ) {\n\t\t\t\t\t\t\tvar tmp = ctrl[ 'show' + key.charAt( 0 ).toUpperCase() + key.substr( 1 ) ]();\n\t\t\t\t\t\t\treturn tmp;\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tvar $body = angular.element( document.body );\n\t\t\t\t\t\tif ( showVal ) {\n\t\t\t\t\t\t\t$body.addClass('app-sidebar-' + ctrl.location + '-visible');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$body.removeClass('app-sidebar-' + ctrl.location + '-visible');\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn showVal;\n\t\t\t\t\t};\n\t\t\t\t})( Object.keys( sidebar ) );\n\n\t\t\t\tfunction buildShowFn( type ) {\n\t\t\t\t\treturn function () {\n\t\t\t\t\t\treturn ctrl.sidebar && ctrl.sidebar[ type ] && ctrl.sidebar[ type ].length;\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn sidebar;\n\t\t\t};\n\n\t\t\t/**\n\t\t\t * Attempts to match a given data object to one already in the current sidebar. Match is based on UID, Title, and Icon.\n\t\t\t * @method findSection\n\t\t\t * @memberof module:app.sidebar.app-sidebar~\n\t\t\t * @private\n\t\t\t * @param section\n\t\t\t * @param uid\n\t\t\t * @param type\n\t\t\t * @returns {boolean|{nav: Array, data: Array, upload: Array, __data: {}}} Object consisting of the related section already in the sidebar.\n\t\t\t */\n\t\t\tfunction findSection( section, uid, type ) {\n\t\t\t\tvar currentSection = ctrl.sidebar && ctrl.sidebar[ type ].find( function ( item, i, arr ) {\n\t\t\t\t\tif (\n\t\t\t\t\t\t\titem.uid === uid &&\n\t\t\t\t\t\t\titem.title === section.title &&\n\t\t\t\t\t\t\titem.icon === section.icon\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t// console.log( ' - - getting FOUND SECTION' );\n\t\t\t\t\t\tif ( ctrl.cache.items[ uid ] && ctrl.cache.items[ uid ].data ) {\n\t\t\t\t\t\t\treturn item;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn false;\n\t\t\t\t} );\n\t\t\t\treturn currentSection;\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Tries to find the section in the current sidebar, if it can not then it will {@link module:app.sidebar.app-sidebar~createSection create it}\n\t\t\t * @method getSection\n\t\t\t * @memberOf module:app.sidebar.app-sidebar~\n\t\t\t * @private\n\t\t\t * @param {object} section - The object that contains the section data.\n\t\t\t * @param {string} uid - UID associated with the sidebar\n\t\t\t * @param {string} type - The type of the sidebar\n\t\t\t * @returns {{}} - Object consisting of the related section already in the sidebar or newly created.\n\t\t\t */\n\t\t\tfunction getSection( section, uid, type ) {\n\t\t\t\tvar currentSection = findSection( section, uid, type );\n\t\t\t\tif ( currentSection ) {\n\t\t\t\t\treturn currentSection;\n\t\t\t\t} else {\n\t\t\t\t\treturn createSection( section, uid );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Creates a section for the sidebar data object.\n\t\t\t * @method createSection\n\t\t\t * @memberOf module:app.sidebar.app-sidebar~\n\t\t\t * @private\n\t\t\t * @param {object} section - The section object that contains the nav, data or other details\n\t\t\t * @param {string} uid - The UID assigned to the sidebar section\n\t\t\t * @returns {{uid: *, title, icon, object, type: string}}\n\t\t\t */\n\t\t\tfunction createSection( section, uid ) {\n\t\t\t\tvar newSection = {\n\t\t\t\t\tuid: uid,\n\t\t\t\t\ttitle: section.title,\n\t\t\t\t\ticon: section.icon,\n\t\t\t\t\tobject: section.object,\n\t\t\t\t\ttype: section.type || 'data'\n\t\t\t\t};\n\t\t\t\t// $log.log( 'appSidebar section', section );\n\t\t\t\treturn newSection;\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Retrieves or creates the field template for data sections\n\t\t\t * @method getFields\n\t\t\t * @memberOf module:app.sidebar.app-sidebar~\n\t\t\t * @private\n\t\t\t * @param {object} data - The object to be processed\n\t\t\t * @param {string} uid - The UID for the sidebar section\n\t\t\t * @returns {Array} Array consisting of the data section rows ready for output.\n\t\t\t */\n\t\t\tfunction getFields( data, uid ) {\n\t\t\t\tvar fields = [];\n\t\t\t\tif ( angular.isArray( data ) ) {\n\t\t\t\t\tangular.forEach( data, function ( field ) {\n\n\t\t\t\t\t\tvar fieldName;\n\t\t\t\t\t\tvar fieldLabel;\n\n\t\t\t\t\t\t// If it's an object it has it's own label, if not, use the field name as the label\n\t\t\t\t\t\tif ( typeof field === 'string' ) {\n\t\t\t\t\t\t\tfieldName = field;\n\t\t\t\t\t\t\tfieldLabel = field;\n\n\t\t\t\t\t\t} else if ( typeof field === 'object' ) {\n\t\t\t\t\t\t\tfieldName = field.field;\n\t\t\t\t\t\t\tfieldLabel = field.label;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// console.log( \"GET FIELDS\", uid, fieldName, ctrl.cache.items[ uid ].category, ctrl.cache.items[ uid ].data )\n\t\t\t\t\t\tfields.push( {\n\t\t\t\t\t\t\tlabel: fieldLabel,\n\t\t\t\t\t\t\tdata: $appSidebar.getField( fieldName, ctrl.cache.items[ uid ].category, ctrl.cache.items[ uid ].data )\n\n\t\t\t\t\t\t} );\n\t\t\t\t\t\t// console.log( \"GET FIELDS\", fields )\n\n\t\t\t\t\t} );\n\t\t\t\t} else if ( typeof data === 'object' ) {\n\t\t\t\t\tangular.forEach( data, function ( fieldLabel, fieldData ) {\n\t\t\t\t\t\tfields.push( {\n\t\t\t\t\t\t\tlabel: fieldLabel,\n\t\t\t\t\t\t\tdata: fieldData\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t\treturn fields;\n\t\t\t}\n\n\n\t\t}\n\n\t\treturn {\n\t\t\tbindings: {\n\t\t\t\tlocation: '@',\n\t\t\t\titems: '<',\n\t\t\t\tlayout: '<',\n\t\t\t\tlockSize: '@',\n\t\t\t\tcolor: '@',\n\t\t\t\tcanCollapse: '=',\n\t\t\t\tcanExpand: '='\n\t\t\t},\n\t\t\tcontroller: [ '$scope', '$element', '$animate', '$timeout', '$appSidebar', '$log', '$mdSidenav', 'localStorageService', appSidebarController ],\n\t\t\tcontrollerAs: 'ctrl',\n\t\t\t//template: \"
\",\n\t\t\ttemplateUrl: '/templates/app/sidebar/appSidebar.tpl.html'\n\t\t};\n\t}\n\n\n})( window, window.angular );\n","(function( window, angular, undefined) {\n\t'use strict';\n\t/**\n\t * @ngdoc object\n\t * @namespace module:app.search\n\t * @description\n\t * Module to handle searching app wide.\n\t */\n\tangular.module( 'app.search', [] )\n\t\t.config( ['$mdThemingProvider', function( $mdThemingProvider ) {\n\t\t\t$mdThemingProvider.registerStyles('' +\n\t\t\t\t'.md-THEME_NAME-theme app-search {' +\n\t\t\t\t'\tbackground-color: \\'{{background-hue-3}}\\'; ' +\n\t\t\t\t// '\tcolor: \\'{{background-hue-2-contrast}}\\';' +\n\t\t\t\t'}' +\n\n\t\t\t\t'.md-THEME_NAME-theme app-search .md-button,' +\n\t\t\t\t'.md-THEME_NAME-theme app-search .md-button md-icon {' +\n\t\t\t\t// '\tcolor: \\'{{background-hue-2-contrast}}\\';' +\n\t\t\t\t// '\tfill: \\'{{background-hue-2-contrast}}\\';' +\n\t\t\t\t'}'\n\t\t\t);\n\t\t} ] )\n\t\t.component ('appSearch', appSearch() );\n\n\n\tfunction appSearch() {\n\t\tvar log = new Log( 'Search' );\n\n\n\t\tfunction appSearchController( $state, $element, $timeout, $stateParams, $mdPanel, $keyboardShortcuts ){\n\t\t\tvar ctrl = this;\n\t\t\tctrl.icon = 'search';\n\t\t\tctrl.tooltip = 'directives.app.search.SEARCH';\n\t\t\tctrl.shouldCollapse = true;\n\n\t\t\t$mdPanel.newPanelGroup('advancedSearch', { maxOpen: 1 } );\n\n\t\t\tvar SHORTCUTS = [\n\t\t\t\t{\n\t\t\t\t\tkey: 'Escape',\n\t\t\t\t\t// modifiers: [[ 'meta', 'ctrl' ], [ 'ctrl', 'alt' ]],\n\t\t\t\t\taction: collapse\n\t\t\t\t}, {\n\t\t\t\t\tkey: 'Enter',\n\t\t\t\t\taction: function() {\n\t\t\t\t\t\tctrl.inputEl[0].blur();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t];\n\t\t\tvar keyboardShortcuts;\n\n\t\t\tctrl.$onInit = function() {\n\t\t\t\tlog.log( '$onInit' );\n\n\n\t\t\t\tctrl.inputEl = $element.find( 'input' );\n\t\t\t\tctrl.inputEl.on( 'focus', function( event ) {\n\t\t\t\t\tctrl.shouldCollapse = true; // Reset this.\n\t\t\t\t\tctrl.focused = true;\n\t\t\t\t\tctrl.inputEl.one( 'blur', onBlur );\n\t\t\t\t} );\n\n\t\t\t\tkeyboardShortcuts = $keyboardShortcuts( SHORTCUTS, ctrl.inputEl );\n\t\t\t\tkeyboardShortcuts.pause();\n\n\t\t\t\t// if ( $state.params.q && ctrl.searchTerm !== $state.params.q ) {\n\t\t\t\t// \tctrl.searchTerm = $state.params.q;\n\t\t\t\t// \tlog.log( 'Search Term', ctrl.searchTerm, $state.params.q );\n\t\t\t\t// \texpand( false );\n\t\t\t\t// }\n\t\t\t}\n\n\t\t\tctrl.$doCheck = function() {\n\t\t\t\tif ( !ctrl.focused && $state.params.q && ctrl.searchTerm !== $state.params.q ) {\n\t\t\t\t\tctrl.searchTerm = $state.params.q;\n\t\t\t\t\tlog.log( 'Search Term', ctrl.searchTerm, $state.params.q );\n\t\t\t\t\texpand( false );\n\t\t\t\t}\n\t\t\t};\n\n\n\t\t\tctrl.$onDestroy = function() {\n\t\t\t\tkeyboardShortcuts.remove();\n\t\t\t}\n\n\t\t\t// ctrl.$doCheck = function() {\n\t\t\t//\n\t\t\t// }\n\n\t\t\tfunction onBlur( event ) {\n\t\t\t\tlog.log(\"BLUR\", ctrl.searchTerm );\n\t\t\t\t$timeout( function () {\n\t\t\t\t\tctrl.focused = false;\n\t\t\t\t\tif ( event.target.value === '' && ctrl.shouldCollapse ) {\n\t\t\t\t\t\tcollapse()\n\t\t\t\t\t} else if ( event.target.value !== '' ) {\n\t\t\t\t\t\t$state.go('app.videos', { q: ctrl.searchTerm, p: 1 }, { reload: true } );\n\t\t\t\t\t}\n\t\t\t\t}, 250 );\n\t\t\t}\n\n\t\t\tfunction expand( focus ) {\n\t\t\t\tctrl.expanded = true;\n\t\t\t\tctrl.shouldCollapse = true; // Reset this.\n\t\t\t\tctrl.icon = 'close';\n\t\t\t\tctrl.tooltip = 'directives.app.search.CLOSE'\n\n\t\t\t\t$element.addClass( 'expanded' );\n\n\t\t\t\tif ( focus !== false ) {\n\t\t\t\t\t$timeout(function () {\n\t\t\t\t\t\t$element.find('input').focus();\n\t\t\t\t\t\tkeyboardShortcuts.resume();\n\t\t\t\t\t}, 100);\n\t\t\t\t} else {\n\t\t\t\t\t$timeout(function () {\n\t\t\t\t\t\tkeyboardShortcuts.resume();\n\t\t\t\t\t}, 100);\n\t\t\t\t}\n\n\n\t\t\t}\n\t\t\tfunction collapse() {\n\t\t\t\tctrl.expanded = false;\n\t\t\t\tctrl.icon = 'search';\n\t\t\t\tctrl.tooltip = 'directives.app.search.SEARCH';\n\t\t\t\tkeyboardShortcuts.pause();\n\t\t\t\tctrl.searchTerm = '';\n\n\t\t\t\tvar tmpParams = $state.params;\n\t\t\t\tdelete tmpParams.q;\n\n\t\t\t\t$state.transitionTo( $state.current.name, tmpParams );\n\n\t\t\t\t$element.removeClass( 'expanded' );\n\n\t\t\t\tctrl.inputEl.off( 'blur', onBlur );\n\t\t\t}\n\t\t\tctrl.toggle = function() {\n\t\t\t\tif ( ctrl.expanded ) {\n\t\t\t\t\tcollapse();\n\t\t\t\t} else {\n\t\t\t\t\texpand();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar advancedSearchRef;\n\n\t\t\tctrl.toggleAdvanced = function( $event ) {\n\t\t\t\tconsole.log( advancedSearchRef );\n\t\t\t\tif ( advancedSearchRef ) {\n\t\t\t\t\tadvancedSearchRef.close();\n\t\t\t\t\tadvancedSearchRef = false;\n\t\t\t\t} else {\n\t\t\t\t\tctrl.shouldCollapse = false;\n\t\t\t\t\tctrl.showAdvancedSearch($event);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tctrl.showAdvancedSearch = function( $event ) {\n\t\t\t\tlog.log( $event );\n\t\t\t\tvar panelPosition = $mdPanel.newPanelPosition()\n\t\t\t\t\t.relativeTo( $event.currentTarget )\n\t\t\t\t\t.addPanelPosition(\n\t\t\t\t\t\t$mdPanel.xPosition.ALIGN_END,\n\t\t\t\t\t\t$mdPanel.yPosition.BELOW\n\t\t\t\t\t);\n\n\t\t\t\t// var panelAnimation = $mdPanel.newPanelAnimation()\n\t\t\t\t// \t.targetEvent($event)\n\t\t\t\t// \t.defaultAnimation('md-panel-animate-fly')\n\t\t\t\t// \t.closeTo('.show-button');\n\n\t\t\t\tlog.log( \"OPENING PANEL\" );\n\n\n\t\t\t\t$mdPanel.open( 'advancedSearch', {\n\t\t\t\t\ttargetEvent: $event,\n\t\t\t\t\tposition: panelPosition\n\t\t\t\t}).then(function(result) {\n\t\t\t\t\tadvancedSearchRef = result;\n\t\t\t\t\tlog.log( \"OPEN\" );\n\t\t\t\t});\n\t\t\t}\n\n\t\t}\n\n\t\treturn {\n\t\t\tbindings: {\n\t\t\t\taction: '<'\n\t\t\t},\n\t\t\tcontroller: [ '$state', '$element', '$timeout', '$stateParams', '$mdPanel', '$keyboardShortcuts', appSearchController ],\n\t\t\tcontrollerAs: 'ctrl',\n\t\t\ttemplateUrl: '/templates/app/search/search.tpl.html'\n\t\t};\n\t}\n\n\n\n\n\n})( window, window.angular );\n\n","\n(function( window, angular, undefined ) {\n\t'use strict';\n\n\tvar _$httpProvider;\n\n\t/**\n\t * Application wide loading screen that is displayed if an XHR request is sent durring a state transition.\n\t * @namespace module:app.loading\n\t */\n\tangular.module('app.loading', ['ngAnimate'])\n\t\t.provider('$appLoading', function() {\n\t\t\tvar requests = {\n\t\t\t\ttotal: 0,\n\t\t\t\tcompleted: 0\n\t\t\t};\n\n\t\t\tvar state = {\n\t\t\t\ttracking: false,\n\t\t\t\tlastLoad: 0,\n\t\t\t\tshow: false,\n\t\t\t\topacity: 1\n\t\t\t};\n\n\n\n\n\n\n\t\t\t// function checkComplete () {} // Stub to be replaced;\n\n\t\t\tthis.$get = [ '$rootScope', '$timeout', function( $rootScope, $timeout ) {\n\n\t\t\t\tfunction track() {\n\t\t\t\t\trequests.total = 0;\n\t\t\t\t\trequests.completed = 0;\n\n\t\t\t\t\tstate.tracking = true;\n\t\t\t\t\tstate.lastLoad = Date.now();\n\t\t\t\t\t// console.log( '[appLoading] Starting Load Tracking' );\n\t\t\t\t}\n\n\t\t\t\tfunction release() {\n\t\t\t\t\tstate.tracking = false;\n\t\t\t\t\tcheckComplete( );\n\t\t\t\t\t// console.log( '[appLoading] Releasing Load Tracking' );\n\t\t\t\t}\n\n\t\t\t\tfunction checkComplete ( time ) {\n\t\t\t\t\t// console.group('[appLoading] Check Complete');\n\t\t\t\t\t// // console.log(\"[appLoading] App Loading Check Complete\", \"Reqs Complete: \", requests.completed, \"Reqs Total: \", requests.total, \"State Change Complete: \", state.show, \"Not isTracking: \", !state.tracking, '=', requests.completed >= requests.total && state.show && !state.tracking );\n\t\t\t\t\t// console.log( 'Total Requests: ', requests.total );\n\t\t\t\t\t// console.log( 'Completed Requests: ', requests.completed );\n\t\t\t\t\t// console.log( 'State.Show: ', state.show );\n\t\t\t\t\t// console.log( 'State.Tracking: ', state.tracking );\n\t\t\t\t\t// console.log( 'Is Complete', requests.completed >= requests.total && !state.tracking );\n\t\t\t\t\t// console.groupEnd();\n\t\t\t\t\tif ( requests.completed >= requests.total && !state.tracking ) {\n\n\t\t\t\t\t\t$timeout( function() {\n\t\t\t\t\t\t\t// if ( time === state.lastLoad ) { // Is this the same transition?\n\t\t\t\t\t\t\tstate.show = false;\n\t\t\t\t\t\t\t$rootScope.hasAppLoaded = true;\n\t\t\t\t\t\t\t// }\n\t\t\t\t\t\t}, 0, true );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfunction show( val, opacity ) {\n\t\t\t\t\tif ( val === undefined ) {\n\t\t\t\t\t\t// // console.log( '[appLoading] show? ', state.show );\n\t\t\t\t\t\treturn state.show;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$timeout( function() {\n\t\t\t\t\t\t\tstate.show = val;\n\t\t\t\t\t\t\tstate.opacity = opacity ? '.75' : '1';\n\t\t\t\t\t\t}, 0, true );\n\t\t\t\t\t\treturn state.show;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\n\n\n\n\t\t\t\treturn {\n\t\t\t\t\ttrack: track,\n\t\t\t\t\trelease: release,\n\t\t\t\t\tisTracking: function() {\n\t\t\t\t\t\t// console.log( '[appLoading] Checking Load Tracking' );\n\t\t\t\t\t\treturn state.tracking;\n\t\t\t\t\t},\n\t\t\t\t\tshow: show,\n\t\t\t\t\topacity: function() {\n\t\t\t\t\t\treturn state.opacity;\n\t\t\t\t\t},\n\t\t\t\t\trequests: {\n\t\t\t\t\t\tcomplete: function( ) {\n\t\t\t\t\t\t\trequests.completed++;\n\t\t\t\t\t\t\tcheckComplete( );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tstart: function( ) {\n\t\t\t\t\t\t\trequests.total++;\n\t\t\t\t\t\t\tstate.show = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t} ];\n\t\t})\n\t\t.factory( 'appLoadingInterceptor', [ '$q', 'CacheFactory', '$timeout', '$rootScope', '$log', '$appLoading', '$injector', function( $q, CacheFactory, $timeout, $rootScope, $log, $appLoading, $injector ) {\n\t\t\t/**\n\t\t\t * Determine if the response has already been cached\n\t\t\t * @ngdoc function\n\t\t\t * @method isCached\n\t\t\t * @memberOf module:app.appLoading.appLoadingInterceptor~\n\t\t\t * @private\n\t\t\t * @param {object} config - The config option from the request\n\t\t\t * @return {boolean} returns true if cached, otherwise false\n\t\t\t */\n\t\t\tfunction isCached(config) {\n\t\t\t\tvar cache;\n\t\t\t\tvar defaultCache = CacheFactory.get('$http');\n\t\t\t\tvar defaults = _$httpProvider.defaults;\n\n\t\t\t\t// Choose the proper cache source. Borrowed from angular: $http service\n\t\t\t\tif ((config.cache || defaults.cache) && config.cache !== false &&\n\t\t\t\t\t(config.method === 'GET' || config.method === 'JSONP')) {\n\t\t\t\t\tcache = angular.isObject(config.cache) ? config.cache\n\t\t\t\t\t\t: angular.isObject(defaults.cache) ? defaults.cache\n\t\t\t\t\t\t\t\t: defaultCache;\n\t\t\t\t}\n\t\t\t\tvar urlToTest = buildUrl(config.url, config.paramSerializer( config.params ) );\n\n\t\t\t\tvar cached = cache !== undefined ? cache.get( urlToTest ) !== undefined : false;\n\n\n\t\t\t\tif (config.isCached !== undefined && cached !== config.isCached) {\n\t\t\t\t\t//// console.log('[appLoading] CACHE returning', urlToTest, cached, config.cached );\n\n\t\t\t\t\treturn config.isCached;\n\t\t\t\t}\n\t\t\t\tconfig.isCached = cached;\n\t\t\t\treturn cached;\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Constructs a URL with parameters.\n\t\t\t * @method buildUrl\n\t\t\t * @memberOf module:app.appLoading.appLoadingInterceptor~\n\t\t\t * @private\n\t\t\t * @param {string} url - Base URL.\n\t\t\t * @param {object} serializedParams - Paramaters to serialize and append to the URL.\n\t\t\t * @returns {string} The combined URL.\n\t\t\t */\n\t\t\tfunction buildUrl(url, serializedParams) {\n\t\t\t\tif (serializedParams.length > 0) {\n\t\t\t\t\turl += ((url.indexOf('?') === -1) ? '?' : '&') + serializedParams;\n\t\t\t\t}\n\t\t\t\treturn url;\n\t\t\t}\n\n\t\t\tvar httpInterceptor = {\n\t\t\t\t'request': function(config) {\n\t\t\t\t\t// console.group('[appLoading] request interceptor');\n\t\t\t\t\t// Check to make sure this request hasn't already been cached and that\n\t\t\t\t\t// the requester didn't explicitly ask us to ignore this request:\n\t\t\t\t\tdelete config.isCached;\n\t\t\t\t\t// console.log('[appLoading] request', config );\n\t\t\t\t\t// console.log('[appLoading] Checking ' + config.url + ' is cached ', angular.copy( config.cached ) );\n\t\t\t\t\tif ( $appLoading.isTracking() && !isCached(config) ) {\n\t\t\t\t\t\t// console.log('[appLoading] Adding ' + buildUrl(config.url, config.paramSerializer( config.params ) ) + ' to req tracking' );\n\t\t\t\t\t\t$appLoading.requests.start();\n\t\t\t\t\t}\n\t\t\t\t\t// console.log('[appLoading] request', config );\n\t\t\t\t\t// console.groupEnd();\n\t\t\t\t\treturn config;\n\n\t\t\t\t},\n\t\t\t\t'response': function(response) {\n\t\t\t\t\tif (!response || !response.config) {\n\t\t\t\t\t\t$log.error('[App Loading Interceptor response] Broken interceptor detected: Config object not supplied in response:\\n https://github.com/chieffancypants/angular-loading-bar/pull/50', response);\n\t\t\t\t\t\treturn response;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !isCached(response.config) ) {\n\t\t\t\t\t\t$appLoading.requests.complete();\n\t\t\t\t\t}\n\n\t\t\t\t\treturn response;\n\t\t\t\t},\n\n\t\t\t\t'responseError': function(rejection) {\n\t\t\t\t\tif (!rejection || !rejection.config) {\n\t\t\t\t\t\t$log.warn( '[App Loading Interceptor response error]', rejection );\n\t\t\t\t\t\t$log.error('[App Loading Interceptor response error] Broken interceptor detected: Config object not supplied in rejection:\\n https://github.com/chieffancypants/angular-loading-bar/pull/50', rejection);\n\t\t\t\t\t\treturn $q.reject(rejection);\n\t\t\t\t\t}\n\n\t\t\t\t\t$appLoading.requests.complete();\n\t\t\t\t\treturn $q.reject(rejection);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\treturn httpInterceptor;\n\t\t} ])\n\t\t/**\n\t\t * ```html\n\t\t * \n\t\t * ```\n\t\t * @ngdoc directive\n\t\t * @class app-loading\n\t\t * @memberof module:app.loading\n\t\t * @restrict AEC\n\t\t * @description\n\t\t * Directive used to display applicaiton loading screen when XHR request are fired durring state transitions.\n\t\t *\n\t\t */\n\t\t.directive('appLoading', [ '$timeout', function( $timeout ) {\n\n\t\t\treturn {\n\t\t\t\ttemplate: '
',\n\t\t\t\t// templateUrl: '/templates/appLoading/appLoading.tpl.html',\n\t\t\t\trestrict: 'AEC',\n\t\t\t\ttransclude: true,\n\n\t\t\t\tcontroller: [ '$scope', '$element', '$mdColors', '$appLoading', function( $scope, $element, $mdColors, $appLoading ){\n\t\t\t\t\t$scope.$appLoading = $appLoading;\n\t\t\t\t\t$scope.getLoaderBackground = function() {\n\t\t\t\t\t\tif ( $scope.$root.hasAppLoaded ) {\n\t\t\t\t\t\t\treturn '-primary-100-' + $appLoading.opacity();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn '-accent-400';\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t} ],\n\t\t\t\tlink: function( $scope, $element, $attrs ) {\n\t\t\t\t\t/*$timeout( function() {\n\t\t\t\t\t\tvar styleBlock = $element.children().find('style')[0];\n\t\t\t\t\t\t // console.log( 'STYLE BLOCK', $element, styleBlock[0] );\n\t\t\t\t\t\t styleBlock.remove();\n\t\t\t\t\t}, 10);*/\n\n\n\t\t\t\t}\n\t\t\t};\n\t\t} ])\n\n\t\t.config([ '$httpProvider', '$mdThemingProvider', function ( $httpProvider, $mdThemingProvider ) {\n\t\t\t_$httpProvider = $httpProvider;\n\t\t\t$httpProvider.interceptors.push('appLoadingInterceptor');\n\n\t\t\t$mdThemingProvider.registerStyles('' +\n\t\t\t\t'.md-THEME_NAME-theme .app-loading .loader { background: \\'{{accent-default}}\\'; }' +\n\t\t\t\t'.md-THEME_NAME-theme.appLoaded .app-loading .loader { background: \\'{{primary-hue-3}}\\'; }' +\n\t\t\t\t'');\n\t\t} ])\n\t\t/**\n\t\t * Sets up listners for $state change events. Each state change event tells the service whether or not to listen for XHR requests. If an XHR request is detected during a state change the loading screen is shown.\n\t\t * @method run\n\t\t * @memberof module:app.loading\n\t\t * @listens $stateChangeStart\n\t\t * @listens $stateChangeError\n\t\t * @listens $stateChangeSuccess\n\t\t */\n\t\t.run([ '$rootScope', '$timeout', '$appLoading', function( $rootScope, $timeout, $appLoading ) {\n\t\t\t// $_rootScope = $rootScope;\n\t\t\t//isTracking = true;\n\n\t\t\t// Initial state change\n\n\t\t\t$rootScope.$on('$stateChangeStart', function (event, next, toParams, from) {\n\t\t\t\tconsole.log('[appLoading] stateChangeStart', next, toParams );\n\n\t\t\t\tif ( next.data && typeof next.data.displayLoader !== 'undefined' && next.data.displayLoader === false ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t$appLoading.track();\n\t\t\t\t// $timeout( function() {\n\t\t\t\t// \t$appLoading.release();\n\t\t\t\t//\n\t\t\t\t// },1500);\n\t\t\t});\n\t\t\t$rootScope.$on('stateChangeError', function() {\n\t\t\t\tconsole.log('[appLoading] stateChangeError' );\n\t\t\t\t// stateChangeComplete = true;\n\n\t\t\t\t// checkComplete( $timeout, lastLoad );\n\t\t\t\t$appLoading.release();\n\t\t\t});\n\t\t\t$rootScope.$on('$stateChangeSuccess', function (event, next, toParams) {\n\t\t\t\tconsole.log('[appLoading] stateChangeSuccess', next.name );\n\t\t\t\t// stateChangeComplete = true;\n\n\t\t\t\t// $timeout( function() {\n\t\t\t\t// \tisTracking = false;\n\n\t\t\t\t// }, 500);\n\n\t\t\t\t$appLoading.release();\n\t\t\t});\n\n\t\t\t// $rootScope.$on('$viewContentLoading', function(event, view){\n\t\t\t// console.log( '[appLoading] viewContentLoading', view);\n\t\t\t//\n\t\t\t//\n\t\t\t// });\n\t\t\t// $rootScope.$on('$viewContentLoaded', function(event, view){\n\t\t\t// // console.log( '[appLoading] viewContentLoaded', view);\n\t\t\t//\n\t\t\t// });\n\n\t\t} ])\n\n\n\t// var reqsTotal = 0;\n\t// var reqsCompleted = 0;\n\t// var stateChangeComplete = true;\n\t// var isTracking = true;\n\t// var lastLoad;\n\t// var $_rootScope\n\n\n\n\t/**\n\t * Adds an $httpProvider interceptor to watch for any HTTP request while in a state transition. If one is detected, display the loading screen.\n\t * @method config\n\t * @memberOf module:app.loading\n\t */\n\t// angular.module('app.loadingInterceptor',[])\n\n\t;\n})( window, window.angular );\n","\n(function( angular, window, undefined ) {\n\t'use strict';\n\n\t/**\n\t * @ngdoc object\n\t * @namespace module:app.alerts\n\t * @description\n\t * Module to handle catching and displaying application wide alerts, notifications, and errors.\n\t *\n\t * @see {@link module:app.alerts.$appAlerts}\n\t * @see {@link module:app.alerts.app-alerts}\n\t *\n\t */\n\tangular.module('app.alerts', [])\n\n\t\t/**\n\t\t * @ngdoc directive\n\t\t * @class app-alerts\n\t\t * @memberof module:app.alerts\n\t\t * @description Simple directive to display Application wide alerts, notifications, and errors.\n\t\t * @restrict EA\n\t\t **/\n\t\t.directive('appAlerts', [function() {\n\n\t\t\treturn {\n\t\t\t\ttemplateUrl: '/templates/app/alerts/appAlerts.tpl.html',\n\t\t\t\trestrict: 'AE',\n\t\t\t\tscope: {\n\n\t\t\t\t},\n\t\t\t\tlink: function( scope, element, attrs ) {\n\t\t\t\t\tscope.align = attrs.align || 'top right';\n\t\t\t\t},\n\t\t\t\tcontroller: [ '$scope', '$appAlerts', function( $scope, $appAlerts ){\n\t\t\t\t\t$scope.appAlerts = $appAlerts;\n\t\t\t\t\tangular.element(window.document.documentElement).on('keydown', function(e) {\n\t\t\t\t\t\tif ( e.key == 'Escape' || e.type == 'click' ) {\n\t\t\t\t\t\t\t$scope.$apply( function () {\n\t\t\t\t\t\t\t\t$appAlerts.remove( $appAlerts.items[0] );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t} ]\n\t\t\t};\n\t\t}])\n\n\t\t.directive('appAlertsHistory', [function() {\n\n\t\t\treturn {\n\t\t\t\ttemplateUrl: '/templates/app/alerts/appAlertsHistory.tpl.html',\n\t\t\t\trestrict: 'AE',\n\n\t\t\t\tlink: function( scope, element, attrs ) {\n\t\t\t\t\tscope.align = attrs.align || 'top right';\n\t\t\t\t},\n\t\t\t\tcontroller: [ '$scope', '$appAlerts', '$mdSidenav', function( $scope, $appAlerts, $mdSidenav ){\n\t\t\t\t\t$scope.appAlerts = $appAlerts;\n\n\n\t\t\t\t} ]\n\t\t\t};\n\t\t}])\n\n\t\t/**\n\t\t * Service to add or remove alerts to be displayed by the directive.\n\t\t * @ngdoc service\n\t\t * @class $appAlerts\n\t\t * @memberof module:app.alerts\n\t\t * @see Corresponding directive: {@link module:app.alerts.app-alerts}\n\t\t **/\n\t\t.service('$appAlerts', [ '$rootScope', '$timeout', function( $rootScope, $timeout ) {\n\t\t\tvar timeout = 15000;\n\n\t\t\tthis.items = [];\n\t\t\tthis.history = [];\n\n\t\t\t/**\n\t\t\t * Executes the function that was passed in with the alert.\n\t\t\t * @mgdoc method\n\t\t\t * @method module:app.alerts.$appAlerts#doAction\n\t\t\t * @param {number|object} index - Either the index of the alert or the alert object.\n\t\t\t */\n\t\t\tthis.doAction = function( index, fromHistory ) {\n\t\t\t\tvar alertObj = index;\n\t\t\t\tif ( !angular.isObject( index ) && angular.isNumber( index ) ) {\n\t\t\t\t\talertObj = fromHistory ? this.history[index] : this.items[index];\n\t\t\t\t}\n\n\t\t\t\talertObj.action.fn( alertObj.action.data );\n\t\t\t\talertObj.action.fn = undefined;\n\n\t\t\t\tthis.remove( index );\n\t\t\t};\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @method remove\n\t\t\t * @memberof module:app.alerts.$appAlerts#\n\t\t\t * @description Removes alert from the queue.\n\t\t\t * @param {number} index Index of the alert to remove.\n\t\t\t **/\n\t\t\tthis.remove = function(index) {\n\t\t\t\tvar alertObj = index;\n\t\t\t\tif ( !angular.isObject( index ) && angular.isNumber( index ) ) {\n\t\t\t\t\talertObj = this.items[index];\n\t\t\t\t}\n\n\t\t\t\tif ( angular.isObject( alertObj ) ) {\n\t\t\t\t\t$timeout.cancel(alertObj.promise);\n\n\t\t\t\t\talertObj.remove = true;\n\t\t\t\t\t//alertObj.className = alertObj.className || '';\n\t\t\t\t\t//alertObj.className += ' remove';\n\n\t\t\t\t\t$timeout( angular.bind(this, function() {\n\t\t\t\t\t\tindex = this.items.indexOf( alertObj );\n\t\t\t\t\t\tthis.history = this.history.concat( this.items.splice(index, 1) );\n\n\n\t\t\t\t\t}), 305);\n\t\t\t\t}else {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t};\n\n\t\t\t/**\n\t\t\t * Empties the history stack.\n\t\t\t * @ngdoc method\n\t\t\t * @method module:app.alerts.$appAlerts#clearHistory\n\t\t\t */\n\t\t\tthis.clearHistory = function() {\n\t\t\t\tthis.history = [];\n\t\t\t};\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @method add\n\t\t\t * @memberof module:app.alerts.$appAlerts#\n\t\t\t * @description Adds the alert to the queue\n\t\t\t * @param {event|null} evt The event\n\t\t\t * @param {app.alerts.alert} alert The alert data packet\n\t\t\t * @listens {@link app.alerts.$appAlerts#alert}\n\t\t\t **/\n\t\t\tthis.add = function( evt, alert ) {\n\t\t\t\talert.timestamp = Date.now();\n\t\t\t\t// console.log( 'Add Alert', alert);\n\t\t\t\tif (!alert.promise) {\n\t\t\t\t\talert.promise = $timeout( angular.bind( this, function() {\n\t\t\t\t\t\tthis.remove(alert);\n\t\t\t\t\t} ), alert.timeout || timeout);\n\t\t\t\t}\n\t\t\t\tthis.items.unshift(alert);\n\t\t\t};\n\n\t\t\t$rootScope.$on('alert', angular.bind( this, this.add ) );\n\n\n\t\t} ])\n\t;\n\n\n\n\n\n\n\t// var alertDev = [\n\t// \t{ type: 'success', title: 'Widget Removed!', msg: 'It Gone!', action: { fn: function(){}, data: [], link: 'Undo' }, timeout: 10000 },\n\t// \t{ type: 'success', msg: 'It Gone!', action: { fn: function(){}, data: [], link: 'Undo' } },\n\t// \t{ type: 'info', title: 'Widget Removed!', msg: ' i\\'m in the shizzle dang elit. Go to hizzle gizzle velizzle, fo shizzle volutpat, dizzle shut the shizzle up, gravida boom shackalack, crazy. Pellentesque crunk daahng dawg. Sizzle erizzle. Its fo rizzle fo shizzle my nizzle dolizzle funky fresh black black yo. Mauris boom shackalack nibh et turpizzle. Fizzle izzle tortor. Pellentesque doggy rhoncizzle ghetto. Shiznit hizzle mofo platea dictumst. Tellivizzle dapibizzle. Its fo rizzle i saw beyonces tizzles and my pizzle went crizzle urna, pretizzle brizzle, fo the bizzle, eleifend vitae, nunc. Fo shizzle suscipizzle. Fo shizzle sempizzle tellivizzle sizzle purus'},\n\t// \t{ type: 'warning', title: 'Widget Removed!'},\n\t// \t{ type: 'danger', title: 'Widget Removed!',action: { fn: function(){}, data: [], link: 'Undo' } }\n\t// ];\n\t// for ( var x = 0; x < alertDev.length; x++ ) {\n\t// \t(function( i ) {\n\t//\n\t// \t\t$timeout(function() {\n\t// \t\t $rootScope.$emit('alert', alertDev[i]);\n\t// \t\t}, 2000 + x * 1000);\n\t// \t})( x )\n\t// }\n\n})( angular, window, undefined );\n\n// Stupid JSDoc, events MUST be outside of the class that they belong to.\n///////////////////////////////////\n\n/**\n * ```js\n * $rootScope.$emit('alert', {\n * \ttype: 'warning',\n * \tmsg: 'Widget Removed!',\n * \taction: {\n * \t\tfn: angular.bind(this, this.undoRemove),\n * \t\tdata: [this.lastRemovedWidget[0]],\n * \t\tlink: 'Undo'\n * \t}\n * });\n *```\n * @ngdoc event\n * @event alert\n * @memberof module:app.alerts.$appAlerts\n * @eventof module:app.alerts.$appAlerts\n * @eventType emit on $rootScope\n *\n * @property {('success'|'info'|'warning'|'danger')} type The type of alert.\n * @property {string} title The title of the alert.\n * @property {string} msg The alert message.\n * @property {number} timeout The amount of time before the alert is removed, in ms.\n * @property {object} action An object containing details of an available action to preform.\n * @property {function} action.fn Callback function to call when the action button is clicked.\n * @property {*} action.data Any data needed to be passed to action.fn.\n * @property {string} action.link Link text.\n *\n **/\n","/**\n * Created by briankelley on 7/28/17.\n */\n\n(function( window, angular, undefined) {\n\t'use strict';\n\tangular.module( 'app.controllers.management.playlistsController', [\n\t\t'app.controllers.management.playlistVideosController'\n\t] )\n\t\t.config([ '$stateProvider', 'USER_ROLES', function( $stateProvider, USER_ROLES ) {\n\t\t\t$stateProvider\n\t\t\t\t.state('app.management.playlists',{\n\t\t\t\t\turl: '/playlists',\n\t\t\t\t\ttemplateUrl: '/templates/management/playlists/playlists.tpl.html',\n\t\t\t\t\tcontroller: 'playlistsController',\n\t\t\t\t\tcontrollerAs: 'ctrl',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tauthorizedRoles: [USER_ROLES.admin]\n\t\t\t\t\t},\n\t\t\t\t\tresolve: {\n\t\t\t\t\t\tplaylists: [ '$q', 'playlists.api', function( $q, playlistsApi ) {\n\t\t\t\t\t\t\treturn playlistsApi.playlists();\n\t\t\t\t\t\t} ]\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t} ])\n\t\t.controller( 'playlistsController', [ '$rootScope', '$mdDialog', '$translate', '$appLoading', 'playlists.api', 'vls.api', 'vls.user', 'USER_ROLES', 'playlists', function( $rootScope, $mdDialog, $translate, $appLoading, playlistsApi, vlsApi, vlsUser, USER_ROLES, playlists ) {\n\t\t\tvar ctrl = this;\n\t\t\t\n\t\t\tctrl.playlists = playlists;\n\t\t\tvar userPartners = vlsUser.getUserPartners();\n\t\t\t\n\t\t\t\n\t\t\tfunction getArrayIndex( arr, field, match ) {\n\t\t\t\tconsole.log( 'getArrayIndex', arr, field, match );\n\t\t\t\treturn arr.findIndex( function( item, i ) { return item[field] === match; });\n\t\t\t}\n\t\t\t\n\t\t\tctrl.newPlaylist = function( $event ) {\n\t\t\t\t$mdDialog.show(\n\t\t\t\t\t$mdDialog.nameAndDescription( {\n\t\t\t\t\t\tlocals: {\n\t\t\t\t\t\t\tpartners: userPartners,\n\t\t\t\t\t\t\tisAdmin: vlsUser.isAuthorized( USER_ROLES.admin ),\n\t\t\t\t\t\t\ttitle: $translate.instant('management.playlists.NEW_PLAYLIST')\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t).then(ctrl.savePlaylist);\n\t\t\t};\n\t\t\t\n\t\t\tctrl.editPlaylist = function( $event, playlistId ) {\n\t\t\t\tvar playlistToEdit = ctrl.playlists[ getArrayIndex( ctrl.playlists, 'Id', playlistId ) ];\n\t\t\t\t\n\t\t\t\tif ( playlistToEdit ) {\n\t\t\t\t\t$mdDialog.show(\n\t\t\t\t\t\t$mdDialog.nameAndDescription( {\n\t\t\t\t\t\t\tlocals: {\n\t\t\t\t\t\t\t\tdataObj: playlistToEdit,\n\t\t\t\t\t\t\t\tpartners: userPartners,\n\t\t\t\t\t\t\t\tisAdmin: vlsUser.isAuthorized( USER_ROLES.admin ),\n\t\t\t\t\t\t\t\ttitle: $translate.instant('management.playlists.EDIT_PLAYLIST')\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} )\n\t\t\t\t\t)\n\t\t\t\t\t.then(ctrl.savePlaylist, function() {\n\t\t\t\t\t\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\t\t\t\n\t\t\tctrl.removePlaylist = function( $event, playlistId ) {\n\t\t\t\tplaylistsApi.deletePlaylist( playlistId ).then( function() {\n\t\t\t\t\tvar removeIndex = getArrayIndex( ctrl.playlists, 'Id', playlistId );\n\t\t\t\t\tvar removedPlaylist = ctrl.playlists[removeIndex];\n\t\t\t\t\t$rootScope.$emit( 'alert', {\n\t\t\t\t\t\ttype: 'success',\n\t\t\t\t\t\ttitle: 'Playlist Removed!',\n\t\t\t\t\t\tmsg: '\"' + removedPlaylist.Name + '\" has been removed!',\n\t\t\t\t\t\ttimeout: 15000,\n\t\t\t\t\t\taction: {\n\t\t\t\t\t\t\tfn: function( data ){\n\t\t\t\t\t\t\t\tctrl.reinstatePlaylist( removedPlaylist.Id );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\tindex: removeIndex,\n\t\t\t\t\t\t\t\tplaylist: removedPlaylist\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tlink: 'Undo'\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\t\n\t\t\t\t\tplaylistsApi.playlists().then( function( response ) {\n\t\t\t\t\t\tctrl.playlists = response;\n\t\t\t\t\t});\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t});\n\t\t\t\t\n\t\t\t};\n\t\t\t\n\t\t\tctrl.savePlaylist = function( playlistObj, forceCreate ) {\n\t\t\t\tconsole.log( 'SAVE PLAYLIST', playlistObj );\n\t\t\t\tif ( forceCreate ) {\n\t\t\t\t\tplaylistObj.DeletedAt = '';\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t// $appLoading.show(true, true);\n\t\t\t\tif ( ! playlistObj.Id ) {\n\t\t\t\t\t// This is a new playlist\n\t\t\t\t\tplaylistObj.PlaylistVideos = [];\n\t\t\t\t\tplaylistsApi.createPlaylist( playlistObj ).then( function( response ) {\n\t\t\t\t\t\tupdatePlaylists().then( function() {\n\t\t\t\t\t\t\t// $appLoading.show(false);\n\t\t\t\t\t\t} );\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tplaylistsApi.savePlaylist( playlistObj );\n\t\t\t\t}\n\t\t\t};\n\t\t\t\n\t\t\t\n\t\t\t/*ctrl.savePlaylist = function( playlistObj, forceCreate ) {\n\t\t\t\tif ( forceCreate ) {\n\t\t\t\t\tplaylistObj.DeletedAt = '';\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t// $appLoading.show(true, true);\n\t\t\t\tif ( ! playlistObj.Id ) {\n\t\t\t\t\treturn;\n\t\t\t\t} else {\n\t\t\t\t\tplaylistsApi.reinstatePlaylist( playlistObj.Id );\n\t\t\t\t}\n\t\t\t};*/\n\t\t\t\n\t\t\tctrl.reinstatePlaylist = function( playlistId ) {\n\t\t\t\tplaylistsApi.reinstatePlaylist( playlistId ).then( function() {\n\t\t\t\t\tupdatePlaylists().then( function() {\n\t\t\t\t\t\t// $appLoading.show(false);\n\t\t\t\t\t} );\n\t\t\t\t});\n\t\t\t};\n\t\t\t\n\t\t\tfunction updatePlaylists() {\n\t\t\t\treturn playlistsApi.playlists().then( function( newPlaylists ) {\n\t\t\t\t\tctrl.playlists = playlists = newPlaylists;\n\t\t\t\t});\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t} ])\n\t;\n})( window, window.angular );\n","/**\n * Created by briankelley on 7/28/17.\n */\n\n(function( window, angular, undefined) {\n\t'use strict';\n\tangular.module( 'app.controllers.management.pagesController', [\n\t\t'app.controllers.management.pages.pageController'\n\t] )\n\t\t.config([ '$stateProvider', 'USER_ROLES', function( $stateProvider, USER_ROLES ) {\n\t\t\t$stateProvider\n\t\t\t\t.state('app.management.pages',{\n\t\t\t\t\turl: '/pages',\n\t\t\t\t\ttemplateUrl: '/templates/management/pages/pages.tpl.html',\n\t\t\t\t\tcontroller: 'pagesController',\n\t\t\t\t\tcontrollerAs: 'ctrl',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tauthorizedRoles: [USER_ROLES.admin]\n\t\t\t\t\t},\n\t\t\t\t\tresolve: {\n\t\t\t\t\t\tplaylists: [ 'playlists.api', function( playlistsApi ) {\n\t\t\t\t\t\t\treturn playlistsApi.playlists();\n\t\t\t\t\t\t} ],\n\t\t\t\t\t\tpages: [ 'playlists.api', function( playlistsApi ) {\n\t\t\t\t\t\t\treturn playlistsApi.pages();\n\t\t\t\t\t\t} ]\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t});\n\t\t} ])\n\t\t.controller( 'pagesController', [ '$scope', '$state', '$mdColors', '$mdDialog', '$translate', '$appLoading', 'playlists.api', 'vls.user', 'USER_ROLES', 'playlists', 'pages', function( $scope, $state, $mdColors, $mdDialog, $translate, $appLoading, playlistsApi, vlsUser, USER_ROLES, playlists, pages ) {\n\t\t\tvar ctrl = this;\n\t\t\tvar userPartners = vlsUser.getUserPartners();\n\t\t\t\n\t\t\tconsole.log('PAGES CONTROLLER', $state );\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\tctrl.selectedTab = 0;\n\t\t\t\n\t\t\tctrl.selectedColor = $mdColors.getThemeColor( $scope.$root.getThemeBackgroundColor( 'background', [ 2,8 ] , 1 ) );\n\t\t\t\n\t\t\t\n\t\t\tctrl.pages = pages.data;\n\t\t\t\n\t\t\tctrl.playlists = playlists;\n\t\t\t\n\t\t\tctrl.selectPage = function( page ) {\n\t\t\t\tif ( ctrl.isPageSelected( page ) ) {\n\t\t\t\t\tctrl.activePage = undefined;\n\t\t\t\t} else {\n\t\t\t\t\t//$appLoading.show( true, true );\n\t\t\t\t\tctrl.activePage = page;\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t};\n\t\t\t\n\t\t\tctrl.isPageSelected = function( page ) {\n\t\t\t\treturn ctrl.activePage && ctrl.activePage.Id === page.Id;\n\t\t\t};\n\t\t\t\n\t\t\t\n\t\t\tctrl.newPage = function( $event ) {\n\t\t\t\t$mdDialog.show(\n\t\t\t\t\t$mdDialog.nameAndDescription( {\n\t\t\t\t\t\tlocals: {\n\t\t\t\t\t\t\tpartners: userPartners,\n\t\t\t\t\t\t\tisAdmin: vlsUser.isAuthorized( USER_ROLES.admin ),\n\t\t\t\t\t\t\ttitle: $translate.instant('management.playlistGrid.NEW_PAGE')\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t},\n\t\t\t\t\t} )\n\t\t\t\t).then(ctrl.savePage, function() {\n\t\t\t\t\t\n\t\t\t\t});\n\t\t\t};\n\t\t\t\n\t\t\tctrl.editPage = function( $event, id ) {\n\t\t\t\tvar page = ctrl.pages.find( function( item ) {\n\t\t\t\t\treturn item.Id === id;\n\t\t\t\t} );\n\t\t\t\t\n\t\t\t\tconsole.log( arguments );\n\t\t\t\t$mdDialog.show(\n\t\t\t\t\t$mdDialog.nameAndDescription( {\n\t\t\t\t\t\tlocals: {\n\t\t\t\t\t\t\tpartners: userPartners,\n\t\t\t\t\t\t\tisAdmin: vlsUser.isAuthorized( USER_ROLES.admin ),\n\t\t\t\t\t\t\ttitle: $translate.instant('management.playlistGrid.NEW_PAGE'),\n\t\t\t\t\t\t\tdataObj: {\n\t\t\t\t\t\t\t\tPartnerId: page.PartnerId,\n\t\t\t\t\t\t\t\tName: page.Name,\n\t\t\t\t\t\t\t\tDescription: page.Description\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t},\n\t\t\t\t\t} )\n\t\t\t\t\t)\n\t\t\t\t\t.then(function( result ) {\n\t\t\t\t\t\tctrl.savePage( angular.merge( page, result ) );\n\t\t\t\t\t});\n\t\t\t};\n\t\t\t\n\t\t\tctrl.removePage = function( $event, id ) {\n\t\t\t\tplaylistsApi.deletePage( id ).then(\n\t\t\t\t\tfunction() {\n\t\t\t\t\t\tplaylistsApi.pages().then( function( response ) { \n\t\t\t\t\t\t\tctrl.pages = response.data;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t};\n\t\t\t\n\t\t\tctrl.savePage = function( data ) {\n\t\t\t\tif ( !data.Id ) {\n\t\t\t\t\tconsole.log( 'SAVING PAGE 0', data );\n\t\t\t\t\t\n\t\t\t\t\tvar pageObj = {\n\t\t\t\t\t\tName: data.Name,\n\t\t\t\t\t\tDescription: data.Description,\n\t\t\t\t\t\tPartnerId: data.PartnerId,\n\t\t\t\t\t\tColumns: 3,\n\t\t\t\t\t\tDisplayType: 'top',\n\t\t\t\t\t\t// PlaylistId: \"undefined\"\n\t\t\t\t\t};\n\t\t\t\t\tconsole.log( 'SAVING PAGE 1', pageObj );\n\t\t\t\t\t\n\t\t\t\t\tplaylistsApi.createPage( pageObj );\n\t\t\t\t} else {\n\t\t\t\t\t\n\t\t\t\t\tplaylistsApi.savePage( data );\n\t\t\t\t}\n\t\t\t};\n\t\t\t\n\t\t\tctrl.reinstatePage = function( pageId ) {\n\t\t\t\tplaylistsApi.reinstatePage( pageId ).then( function() {\n\t\t\t\t\tupdatePages();\n\t\t\t\t});\n\t\t\t\t\n\t\t\t};\n\t\t\t\n\t\t\t\n\t\t\tctrl.getItemStyle = function( active ) {\n\t\t\t\treturn active ? { backgroundColor: ctrl.selectedColor } : false;\n\t\t\t};\n\t\t\t\n\t\t\t\n\t\t\tif( $state.params.pageId ) {\n\t\t\t\tconsole.log('SETTING PAGE INIT', $state.params.pageId, ctrl.pages );\n\t\t\t\tctrl.selectPage( ctrl.pages.find( function( page ) {\n\t\t\t\t\treturn page.Id === $state.params.pageId;\n\t\t\t\t} ) );\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\tfunction updatePages() {\n\t\t\t\treturn playlistsApi.pages().then( function( newPages ) {\n\t\t\t\t\tpages = newPages;\n\t\t\t\t\tctrl.pages = pages.data;\n\t\t\t\t});\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t} ])\n\t;\n})( window, window.angular );\n","(function(window, angular, undefined) {\n\t'use strict';\n\n\n\n\tangular.module('app.controllers.campaign.listingsController',[])\n\n\t\t.controller('CampaignListingsController',[ '$scope', '$filter', '$timeout', '$q', 'NgTableParams', 'campaignId', 'campaigndata', 'partnerdata', 'vls.user', 'USER_ROLES', function( $scope, $filter, $timeout, $q, NgTableParams, campaignId, campaigndata, partnerdata, vlsUser, USER_ROLES ) {\n\n\n\t\t\tfunction filterByBundle( listings, bundle ) {\n\t\t\t\tvar listingsReturn = {\n\t\t\t\t\tall: {\n\t\t\t\t\t\tlistings: [],\n\t\t\t\t\t\tclean: [],\n\t\t\t\t\t\tdirty: []\n\t\t\t\t\t},\n\t\t\t\t\tnone: {\n\t\t\t\t\t\tlistings: [],\n\t\t\t\t\t\tclean: [],\n\t\t\t\t\t\tdirty: []\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tangular.forEach( listings, function( listing, key ) {\n\t\t\t\t\tconsole.log( listing );\n\n\t\t\t\t\tlisting.duedate = new Date( listing.duedate ).getTime();\n\n\n\n\t\t\t\t\tif ( listing.bundleid ) {\n\t\t\t\t\t\tlistingsReturn[listing.bundleid] = listingsReturn[listing.bundleid] || {};\n\t\t\t\t\t\tlistingsReturn[listing.bundleid].listings = listingsReturn[listing.bundleid].listings || [];\n\t\t\t\t\t\tlistingsReturn[listing.bundleid].listings.push( listing );\n\n\t\t\t\t\t\tif ( !$scope.filterByBundle ) {\n\t\t\t\t\t\t\t$scope.filterByBundle = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlistingsReturn.none.listings.push( listing );\n\t\t\t\t\t}\n\n\t\t\t\t\tlistingsReturn.all.listings.push( listing );\n\t\t\t\t\tlistingsReturn.all.clean.push( listing );\n\t\t\t\t});\n\n\t\t\t\treturn listingsReturn;\n\t\t\t}\n\n\t\t\tfunction getBundleParams( bundles, NgTableParams ) {\n\t\t\t\tvar bundleParams = {};\n\t\t\t\tangular.forEach( bundles, function( bundle, id ) {\n\t\t\t\t\t(function( bundle, id, bundles, NgTableParams ) {\n\t\t\t\t\t\tconsole.log( \"GET NEW BUNDLE PARAMS\", bundle, id );\n\t\t\t\t\t\tif (id === 'none' || id === 'all') {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbundleParams[id] = new NgTableParams({\n\t\t\t\t\t\t\tpage: 1, // show first page\n\t\t\t\t\t\t\tcount: bundle.listings.length, // hides pager\n\n\t\t\t\t\t\t\tsorting: {\n\t\t\t\t\t\t\t\tduedate: 'desc' // initial sorting\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tdebugMode: true\n\t\t\t\t\t\t}, {\n\t\t\t\t\t\t\ttotal: 0, // length of data\n\t\t\t\t\t\t\tgetData: function ( params) {\n\t\t\t\t\t\t\t\tconsole.log(\"GET BUNDLE DATA 1\", bundle);\n\n\t\t\t\t\t\t\t\tvar result = $scope.listingResults[id].listings;\n\n\t\t\t\t\t\t\t\t// Filter on search term\n\t\t\t\t\t\t\t\t//\tvar searchResult = $scope.searchTerm ? $filter('filter')( result, $scope.searchTerm ) : result;\n\t\t\t\t\t\t\t\tparams.total(result.length);\n\n\t\t\t\t\t\t\t\t// Filter on sorting\n\t\t\t\t\t\t\t\tvar orderedData = params.sorting() ? $filter('orderBy')(result, params.orderBy()) : result;\n\t\t\t\t\t\t\t\tvar data = orderedData.slice(0);\n\n\t\t\t\t\t\t\t\t$scope.listingResults[id].listings = data;\n\t\t\t\t\t\t\t\t$scope.listingResults[id].clean = angular.copy(data.slice(0));\n\n\t\t\t\t\t\t\t\tconsole.log(\"GET BUNDLE DATA 2\", bundle);\n\n\t\t\t\t\t\t\t\treturn data;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t$scope: {$data: {}},\n\t\t\t\t\t\t\tcounts: []\n\n\t\t\t\t\t\t});\n\t\t\t\t\t})(bundle, id, bundles, NgTableParams);\n\t\t\t\t\tconsole.log( bundleParams );\n\t\t\t\t\tbundleParams[id] && bundleParams[id].reload();\n\t\t\t\t});\n\t\t\t\treturn bundleParams;\n\t\t\t}\n\n\n\t\t\t$scope.$on( 'app.campaign.update', function () {\n\t\t\t\tconsole.log( 'REFRESH!' );\n\t\t\t\t$scope.campaignData = campaigndata;\n\n\t\t\t\t$scope.listingResults = filterByBundle( $scope.campaignData.listings.get() );\n\t\t\t\tif( $scope.filterByBundle ) {\n\t\t\t\t\t$scope.bundleParamsObj = getBundleParams( $scope.listingResults, NgTableParams );\n\t\t\t\t}\n\n\t\t\t\t// !apiCalls.length && init();\n\t\t\t\t// console.log( \"INIT\", apiCalls.length)\n\t\t\t} );\n\n\n\t\t\tfunction init() {\n\t\t\t\t$scope.campaignData = campaigndata;\n\n\t\t\t\t$scope.partner = partnerdata;\n\t\t\t\t$scope.partnerCode = $scope.partner.get('partnerCode');\n\n\t\t\t\tvar columnConfig = {\n\t\t\t\t\ttitle: [ 'P1S' ],\n\t\t\t\t\tfocus: [ 'SRD', 'PRO' ],\n\t\t\t\t\tscriptRequirements: [ 'SRD', 'DEX', 'RLO', 'WHI', 'CMG' ]\n\t\t\t\t};\n\n\t\t\t\tvar pc = $scope.partnerCode.toUpperCase();\n\n\t\t\t\t$scope.columns = {\n\t\t\t\t\t'title': columnConfig.title.indexOf( pc ) > -1,\n\t\t\t\t\t'focus': columnConfig.focus.indexOf( pc ) > -1,\n\t\t\t\t\t'scriptRequirements': true //columnConfig.scriptRequirements.indexOf( pc ) > -1\n\t\t\t\t};\n\n\t\t\t\t$scope.listingResults = filterByBundle( $scope.campaignData.listings.get() );\n\n\t\t\t\t$scope.tableParams.reload();\n\t\t\t}\n\t\t\tvar _cleanData;\n\n\n\t\t\t$scope.tableParams = new NgTableParams({\n\t\t\t\tpage: 1, // show first page\n\t\t\t\tcount: 10000,//$scope.listingResults[ $scope.filterByBundle ? 'none' : 'all' ].length, // hides pager\n\n\t\t\t\tsorting: {\n\t\t\t\t\tproductname: 'desc' // initial sorting\n\t\t\t\t},\n\t\t\t\tdebugMode: true\n\t\t\t}, {\n\t\t\t\ttotal: 0, // length of data\n\t\t\t\tgetData: function( params) {\n\t\t\t\t\tvar dataKey = $scope.filterByBundle ? 'none' : 'all';\n\t\t\t\t\tvar result = $scope.listingResults[ dataKey ].listings;\n\n\t\t\t\t\t// Filter on search term\n\t\t\t\t\tvar searchResult = $scope.searchTerm ? $filter('filter')( result, $scope.searchTerm ) : result;\n\t\t\t\t\tparams.total( searchResult.length );\n\t\t\t\t\tconsole.log( params.orderBy() );\n\t\t\t\t\t// Filter on sorting\n\t\t\t\t\tvar orderedData = params.sorting() ? $filter('orderBy')(searchResult, params.orderBy()) : searchResult;\n\t\t\t\t\tvar data = orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count());\n\t\t\t\t\t$scope.listingResults[ dataKey ].listings = data;\n\t\t\t\t\t$scope.listingResults[ dataKey ].clean = angular.copy( data.slice(0) );\n\t\t\t\t\tconsole.log( $scope.listingResults );\n\t\t\t\t\treturn data;\n\t\t\t\t},\n\t\t\t\t$scope: { $data: {} },\n\t\t\t\tcounts:[]\n\n\t\t\t});\n\n\t\t\tvar apiCalls = [];\n\t\t\t$scope.loaders = {};\n\t\t\t$scope.checkboxes = {};\n\t\t\t$scope.batch = {\n\t\t\t\tscriptrequirement: ''\n\t\t\t};\n\t\t\tvar dirtyDebounce;\n\n\t\t\t$scope.batchEdit = function( field ) {\n\t\t\t\tconsole.log( 'Batch Edit', $scope.batch.scriptrequirement, $scope.checkboxes );\n\t\t\t\t$scope.listingResults[\"all\"].dirty = $scope.listingResults[\"all\"].dirty || [];\n\t\t\t\tangular.forEach( $scope.checkboxes, function( val, id ) {\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\t$scope.listingResults[\"all\"].dirty.push( id );\n\t\t\t\t\t\tvar listing = $scope.listingResults[\"all\"].listings.find( function( item ) { return item.id == id } );\n\t\t\t\t\t\tlisting[field] = $scope.batch[field];\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\tbatchSubmit( field, 'batch' );\n\t\t\t}\n\n\t\t\t$scope.checkDirty = function( bundle, idx, row, field ) {\n\t\t\t\t// console.log( 'Check Dirty' );\n\t\t\t\t// var isDirty = false;\n\t\t\t\t//\n\t\t\t\t// // angular.forEach( $scope.listingResults[\"all\"].clean[idx], function( val, key ) {\n\t\t\t\t// \tif ( !isDirty && row[field] !== undefined && !angular.isObject( row[field] ) ) {\n\t\t\t\t// \t\tconsole.log( field, row[field], $scope.listingResults[bundle].listings[idx][field], angular.equals($scope.listingResults[bundle].listings[idx][field], row[field]) );\n\t\t\t\t//\n\t\t\t\t// \t\tisDirty = !angular.equals( val, row[field] );\n\t\t\t\t// \t}\n\t\t\t\t// // } );\n\t\t\t\t$scope.listingResults[\"all\"].dirty = $scope.listingResults[\"all\"].dirty || [];\n\n\t\t\t\t// console.log( isDirty, $scope.listingResults[\"all\"].dirty.indexOf( idx ) );\n\t\t\t\tvar id = $scope.listingResults[bundle].listings[idx].id;\n\t\t\t\tif ( $scope.listingResults[\"all\"].dirty.indexOf( id ) === -1 ) {\n\t\t\t\t\t$scope.listingResults[\"all\"].dirty.push( id );\n\t\t\t\t\t// console.log( 'DIRTY!', $scope.listingResults[\"all\"].dirty, $scope.listingResults[\"all\"].listings[idx].videocode );\n\n\t\t\t\t\tbatchSubmit( field, idx );\n\t\t\t\t}\n\n\t\t\t};\n\n\t\t\tfunction batchSubmit( field, val ) {\n\t\t\t\tif ( dirtyDebounce ) {\n\t\t\t\t\t$timeout.cancel( dirtyDebounce );\n\t\t\t\t}\n\n\t\t\t\tconsole.log(\"Batch Submit\", $scope.listingResults );\n\n\t\t\t\tdirtyDebounce = $timeout(function() {\n\n\n\t\t\t\t\tangular.forEach( $scope.listingResults[\"all\"].dirty, function( listingId, key ) {\n\t\t\t\t\t\tvar listing = $scope.listingResults[\"all\"].listings.find( function( item ) { return item.id == listingId });\n\t\t\t\t\t\tvar newListingData = {\n\t\t\t\t\t\t\tid: listing.id,\n\t\t\t\t\t\t\tvideolistingid: listing.id,\n\t\t\t\t\t\t\tcampaignid: listing.campaignid,\n\t\t\t\t\t\t\ttitle: listing.title,\n\t\t\t\t\t\t\tscriptrequirement: listing.scriptrequirement,\n\t\t\t\t\t\t\tfocus: listing.focus\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tconsole.log( listing, newListingData );\n\n\t\t\t\t\t\t( function( key, val ) {\n\t\t\t\t\t\t\t$scope.loaders[field] = $scope.loaders[field] || {};\n\t\t\t\t\t\t\t$scope.loaders[field][val] = 1;\n\n\t\t\t\t\t\t\tvar apiCall = campaigndata.listings.set(newListingData.id, newListingData);\n\t\t\t\t\t\t\tapiCall.then(function (resp) {\n\t\t\t\t\t\t\t\t$scope.loaders[field][val] = true;\n\n\t\t\t\t\t\t\t\t//\t\t\t\tconsole.log('reload', $scope.bundleParamsObj[bundle]);\n\n\t\t\t\t\t\t\t}, function() {\n\t\t\t\t\t\t\t\t$scope.loaders[field][val] = false;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tapiCalls.push( apiCall )\n\n\n\t\t\t\t\t\t})( key, val );\n\t\t\t\t\t\t$q.all( apiCalls ).then( function( result ) {\n\t\t\t\t\t\t\t// angular.forEach( $scope.bundleParamsObj[bundle], function( bundle ) {\n\t\t\t\t\t\t\t// \tbundle.reload();\n\t\t\t\t\t\t\t// });\n\t\t\t\t\t\t\t$scope.listingResults[\"all\"].dirty = [];\n\t\t\t\t\t\t\t$scope.listingResults[\"all\"].clean = angular.copy($scope.listingResults[\"all\"].listings.slice(0));\n\n\t\t\t\t\t\t\tapiCalls = [];\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\n\t\t\t\t}, 1000 );\n\t\t\t}\n\n\t\t\t$scope.cancelTimeout = function() {\n\t\t\t\tconsole.log( \"MENU OPEN\" );\n\t\t\t\tif ( dirtyDebounce ) {\n\t\t\t\t\t$timeout.cancel( dirtyDebounce );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t$scope.toggleFilterByBundle = function() {\n\t\t\t\t$scope.filterByBundle = !$scope.filterByBundle;\n\t\t\t};\n\n\t\t\t$scope.isAuthorized = function() {\n\t\t\t\treturn !vlsUser.isAuthorized( [\n\t\t\t\t\tUSER_ROLES.admin,\n\t\t\t\t\tUSER_ROLES.editor,\n\t\t\t\t\tUSER_ROLES.customerService,\n\t\t\t USER_ROLES.productionCoordinator,\n\t\t\t\t\tUSER_ROLES.productionManager,\n\t\t\t\t\tUSER_ROLES.productionScheduler,\n\t\t\t\t\tUSER_ROLES.videoEditor\n\t\t\t\t], partnerdata.get('partnerCode') );\n\t\t\t};\n\n\t\t\t$scope.$watch( 'filterByBundle', function( newVal ) {\n\t\t\t\tconsole.log( 'FILTER CHANGE', newVal );\n\t\t\t\t$scope.tableParams.reload();\n\n\t\t\t\tif ( newVal ) {\n\t\t\t\t\t$scope.bundleParamsObj = getBundleParams( $scope.listingResults, NgTableParams );\n\t\t\t\t\tconsole.log( $scope.bundleParamsObj );\n\t\t\t\t}\n\t\t\t} );\n\n\n\n\t\t\tinit();\n\n\t\t} ]);\n\n})(window, window.angular);\n","(function( window, angular, undefined ) {\n\t'use strict';\n\n\tvar sidebars = {};\n\n\tfunction getSidebarData( listings, listingdata ) {\n\t\t// listingdata.workflow_actions = listings.actions.get( listing);\n\n\t\t// return $scope.listingData;\n\t}\n\n\tangular.module( 'app.controllers.campaign.listingController', [\n\t\t'app.controllers.campaign.listing.eventsController',\n\t\t'app.controllers.campaign.listing.advertisingController',\n\t\t'app.controllers.campaign.listing.productionController',\n\t\t'app.controllers.campaign.listing.scriptController',\n\t\t'app.controllers.campaign.listing.previewController'\n\t] )\n\t\t.config( [ '$stateProvider', function ( $stateProvider ) {\n\t\t\t$stateProvider\n\t\t\t\t.state( 'app.campaign.videos', {\n\t\t\t\t\turl: '/videos',\n\t\t\t\t\tcontroller: function() {},\n\t\t\t\t\ttemplate: '',\n\t\t\t\t\tabstract: true\n\t\t\t\t})\n\t\t\t\t.state( 'app.campaign.videos.overview', {\n\t\t\t\t\turl: '',\n\t\t\t\t\ttemplateUrl: '/templates/campaign/videos/listings.tpl.html',\n\t\t\t\t\tcontroller: 'CampaignListingsController',\n\t\t\t\t})\n\t\t\t\t.state( 'app.campaign.videos.video', {\n\t\t\t\t\turl: '/{listingId:int}',\n\t\t\t\t\tabstract: true,\n\t\t\t\t\ttemplate: '',\n\t\t\t\t\tcontroller: 'CampaignListingController',\n\t\t\t\t\tresolve: {\n\n\t\t\t\t\t\tlistingId: [ '$stateParams', function ( $stateParams ) {\n\t\t\t\t\t\t\treturn $stateParams.listingId;\n\t\t\t\t\t\t} ],\n\t\t\t\t\t\tlistingdata: [ '$stateParams', 'campaigndata', function ( $stateParams, campaigndata ) {\n\t\t\t\t\t\t\treturn campaigndata.listings.get( $stateParams.listingId );\n\t\t\t\t\t\t} ]\n\t\t\t\t\t},\n\t\t\t\t\tonEnter: [ '$appSidebar', 'campaigndata', 'partnerdata', 'listingId', 'listingdata', 'vls.user', 'USER_ROLES', function( $appSidebar, campaigndata, partnerdata, listingId, listingdata, vlsUser, USER_ROLES ) {\n\n\n\t\t\t\t\t\tsidebars.listing = $appSidebar.load( 'listing', partnerdata.get( 'partnerCode' ), listingdata );\n\t\t\t\t\t\tif ( vlsUser.isAuthorized( USER_ROLES.admin, campaigndata.get( 'partnerId' ) ) || vlsUser.isAuthorized( USER_ROLES.admin, 1 ) ) {\n\n\t\t\t\t\t\t\tsidebars.adminActions = $appSidebar.add('right', 'data', {\n\t\t\t\t\t\t\t\t\"title\": \"Administration\",\n\t\t\t\t\t\t\t\t\"icon\": \"swap_horiz\",\n\t\t\t\t\t\t\t\t\"type\": \"actions\",\n\t\t\t\t\t\t\t\t\"data\": {\n\t\t\t\t\t\t\t\t\t\"administration_actions\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tlabel: 'Place on Hold',\n\t\t\t\t\t\t\t\t\t\t\tvalue: 'MoveToOnHold',\n\t\t\t\t\t\t\t\t\t\t\tdoAction: angular.bind( listingdata._workflow_actions, listingdata._workflow_actions.do )\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tlabel: 'Cancel Listing',\n\t\t\t\t\t\t\t\t\t\t\tvalue: 'Cancel',\n\t\t\t\t\t\t\t\t\t\t\tdoAction: angular.bind( listingdata._workflow_actions, listingdata._workflow_actions.do )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconsole.log( 'ENTER LISTING', campaigndata, listingdata, sidebars );\n\t\t\t\t\t} ],\n\t\t\t\t\tonExit: [function() {\n\t\t\t\t\t\t\tObject.values( sidebars ).forEach( function( sidebar ) { sidebar.remove(); } );\n\t\t\t\t\t\t\tsidebars = {};\n\t\t\t\t\t}]\n\n\t\t\t\t} )\n\n\t\t\t\t.state( 'app.campaign.videos.video.events', {\n\t\t\t\t\turl: '/events',\n\t\t\t\t\ttemplateUrl: '/templates/campaign/video/events.tpl.html',\n\t\t\t\t\tcontroller: 'ListingEventsController',\n\t\t\t\t} )\n\t\t\t\t// .state( 'app.campaign.videos.video.advertising', {\n\t\t\t\t// \turl: '/advertising',\n\t\t\t\t// \ttemplateUrl: '/templates/campaign/video/advertising/advertising.tpl.html',\n\t\t\t\t// \tcontroller: 'ListingAdvertisingController',\n\t\t\t\t// } )\n\t\t\t\t//\n\t\t\t\t// // New advertising modal\n\t\t\t\t// .state( 'app.campaign.videos.video.advertising.new', {\n\t\t\t\t// \turl: '/new',\n\t\t\t\t// \t// templateUrl: '/templates/campaign/video/advertising/new/new.tpl.html',\n\t\t\t\t// \t// controller: 'AdvertisingNewController',\n\t\t\t\t// \tonEnter: [ '$rootScope', '$log', '$mdDialog', '$state', '$timeout', function ( $rootScope, $log, $mdDialog, $state, $timeout ) {\n\t\t\t\t// \t\tvar closeByButton = false;\n\t\t\t\t// \t\t$mdDialog.show( {\n\t\t\t\t// \t\t\ttemplateUrl: '/templates/campaign/video/advertising/new/new.tpl.html',\n\t\t\t\t// \t\t\thasBackdrop: true,\n\t\t\t\t// \t\t\tcontroller: [ '$scope', '$mdConstant', '$mdDialog', function ( $scope, $mdConstant, $mdDialog ) {\n\t\t\t\t// \t\t\t\tvar semicolon = 186;\n\t\t\t\t// \t\t\t\t$scope.chipsCustomKeys = [ $mdConstant.KEY_CODE.ENTER, $mdConstant.KEY_CODE.COMMA, semicolon ];\n\t\t\t\t// \t\t\t\t$scope.advertising = {\n\t\t\t\t// \t\t\t\t\tnameTxt: null,\n\t\t\t\t// \t\t\t\t\tuse_geo: null,\n\t\t\t\t// \t\t\t\t\tuse_keywords: null,\n\t\t\t\t// \t\t\t\t\tpackage: null,\n\t\t\t\t// \t\t\t\t\tcustomPackageAmount: null,\n\t\t\t\t// \t\t\t\t\tcustomPackageCost: null,\n\t\t\t\t// \t\t\t\t\tcountries: [],\n\t\t\t\t// \t\t\t\t\tstates: [],\n\t\t\t\t// \t\t\t\t\tzips: [],\n\t\t\t\t// \t\t\t\t\tkeywords: []\n\t\t\t\t// \t\t\t\t};\n\t\t\t\t// \t\t\t\t$scope.actions = {\n\t\t\t\t// \t\t\t\t\tclose: function () {\n\t\t\t\t// \t\t\t\t\t\tcloseByButton = true;\n\t\t\t\t// \t\t\t\t\t\t$mdDialog.cancel();\n\t\t\t\t// \t\t\t\t\t},\n\t\t\t\t// \t\t\t\t\tsubmit: function () {\n\t\t\t\t// \t\t\t\t\t\t\t// Do stuff\n\t\t\t\t// \t\t\t\t\t\t$log.debug( 'SUBMIT NEW' );\n\t\t\t\t// \t\t\t\t\t\tcloseByButton = true;\n\t\t\t\t// \t\t\t\t\t\t$mdDialog.hide( $scope.advertising );\n\t\t\t\t// \t\t\t\t\t}\n\t\t\t\t// \t\t\t\t};\n\t\t\t\t// \t\t\t} ]\n\t\t\t\t// \t\t} )\n\t\t\t\t// \t\t\t.then( function ( data ) {\n\t\t\t\t// \t\t\t\t$log.debug( 'SUBMITTING', data );\n\t\t\t\t// \t\t\t\tif ( data ) {\n\t\t\t\t// \t\t\t\t\t$rootScope.$emit( 'app.advertising:new', data );\n\t\t\t\t// \t\t\t\t}\n\t\t\t\t// \t\t\t} )\n\t\t\t\t// \t\t\t.finally( function ( data ) {\n\t\t\t\t//\n\t\t\t\t// \t\t\t\tif ( closeByButton ) {\n\t\t\t\t// \t\t\t\t\t$timeout( $state.go( '^' ) );\n\t\t\t\t// \t\t\t\t}\n\t\t\t\t// \t\t\t} );\n\t\t\t\t// \t} ],\n\t\t\t\t// \tonExit: [ '$mdDialog', function ( $mdDialog ) {\n\t\t\t\t// \t\t$mdDialog.cancel();\n\t\t\t\t// \t} ]\n\t\t\t\t// } )\n\n\t\t\t\t.state( 'app.campaign.videos.video.production', {\n\t\t\t\t\turl: '/production',\n\t\t\t\t\ttemplateUrl: '/templates/campaign/video/production/production.tpl.html',\n\t\t\t\t\tcontroller: 'ListingProductionController',\n\t\t\t\t} )\n\n\t\t\t\t.state( 'app.campaign.videos.video.script', {\n\t\t\t\t\turl: '/script',\n\t\t\t\t\ttemplateUrl: '/templates/campaign/video/script/script.tpl.html',\n\t\t\t\t\tcontroller: 'ListingScriptController',\n\t\t\t\t} )\n\n\t\t\t\t.state( 'app.campaign.videos.video.preview', {\n\t\t\t\t\turl: '/preview',\n\t\t\t\t\ttemplateUrl: '/templates/campaign/video/preview/preview.tpl.html',\n\t\t\t\t\tcontroller: 'ListingPreviewController',\n\t\t\t\t} );\n\t\t} ] )\n\t\t.controller( 'CampaignListingController', [ '$rootScope', '$scope', '$timeout', '$stateParams', 'AppConfig', 'USER_ROLES', 'campaignId', 'campaigndata', 'listingId', 'listingdata', function ( $rootScope, $scope, $timeout, $stateParams, AppConfig, USER_ROLES, campaignId, campaigndata, listingId, listingdata ) {\n\n\n\n\n\t\t\t// if ( !listingId ) {\n\t\t\t// \treturn;\n\t\t\t// }\n\t\t\t$scope.campaignData = campaigndata;\n\t\t\t$scope.listingData = listingdata;\n\n\t\t\t$scope.$on( 'app.campaign.update', function () {\n\n\t\t\t\tvar data = campaigndata.listings.get( listingId );\n\t\t\t\tconsole.log( \"data.assignee\", data );\n\t\t\t\t// $timeout( function() {\n\t\t\t\t\tsidebars.listing.update( data );\n\t\t\t\t// });\n\t\t\t} );\n\n\n\n\t\t} ] );\n})( window, window.angular );\n\n\n\n\n/*\n {\n\t\t\t \"text\": \"Listing\",\n\t\t\t \"icon\": \"local_movies\",\n\t\t\t \"state\": \"app.campaign.listing\",\n\t\t\t \"parent\": \"app.campaign.videos\",\n\t\t\t \"items\": [\n\t\t\t\t {\n\t\t\t\t\t \"text\": \"Events\",\n\t\t\t\t\t \"icon\": \"new_releases\",\n\t\t\t\t\t \"state\": \"app.campaign.listing.events\"\n\t\t\t\t },{\n\t\t\t\t\t \"text\": \"Production\",\n\t\t\t\t\t \"icon\": \"movie\",\n\t\t\t\t\t \"state\": \"app.campaign.listing.production\"\n\t\t\t\t },{\n\t\t\t\t\t \"text\": \"Script\",\n\t\t\t\t\t \"icon\": \"description\",\n\t\t\t\t\t \"state\": \"app.campaign.listing.script\"\n\t\t\t\t },{\n\t\t\t\t\t \"text\": \"Preview\",\n\t\t\t\t\t \"icon\": \"ondemand_video\",\n\t\t\t\t\t \"state\": \"app.campaign.listing.preview\"\n\t\t\t\t },{\n\t\t\t\t\t \"text\": \"Assets\",\n\t\t\t\t\t \"icon\": \"photo\",\n\t\t\t\t\t \"state\": \"app.campaign.listing.assets\"\n\t\t\t\t }\n\t\t\t ]\n\t\t }\n\t\t */\n","(function( window, angular, undefined) {\n\t'use strict';\n\n\tangular.module('app.controllers.campaign.listing.eventsController',[])\n\t.controller('ListingEventsController', [ '$rootScope','$scope', 'vls.event.types', 'campaigndata', 'listingId', 'listingdata', function( $rootScope, $scope, EVENT_TYPES, campaigndata, listingId, listingdata ) {\n\t\tconsole.log( 'EVENTS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!', arguments );\n\n\t\t$scope.campaignData = campaigndata;\n\t\t$scope.listingData = listingdata;\n\n\t\tconsole.log('Lisitng Events Controller: ', campaigndata, $scope.listingData.get('videolistingassets'));\n\n\t\t$scope.EVENTTYPES = EVENT_TYPES;\n\n\t\t$scope.entityType = EVENT_TYPES.VIDEOS;\n\t\t$scope.entityId = listingdata.id;\n\t\t$scope.events = campaigndata.getEvents();\n\t\t$scope.assetsUrls = [];\n\t\t$scope.listingData.get('videolistingassets').sort( function( a, b ) {\n\t\t\tif ( a.mediaorder > b.mediaorder ) {\n\t\t\t\treturn 1;\n\t\t\t} else if ( a.mediaorder < b.mediaorder ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\treturn 0;\n\t\t}).forEach( function( assetUrl ) {\n\t\t\t$scope.assetsUrls.push( assetUrl.mediaorder + '. ' + assetUrl.filename + '' );\n\t\t});\n\n\t\tif ( $scope.assetsUrls.length ) {\n\t\t\t$scope.assetsUrls.unshift( 'Order Asset URLs');\n\t\t}\n\n\t\t$scope.extras = [ $scope.campaignData.get('productionnotes'), $scope.campaignData.get('specialinstructions'), listingdata.productionnotes, $scope.assetsUrls ];\n\t\tconsole.log( $scope.extras );\n\n\n\t\t$scope.$on('app.campaign.update', function() {\n\t\t\t//campaigndata = campaign.get();\n\t\t\t$scope.listingData = listingdata = campaigndata.listings.get( listingId );\n\t\t\tconsole.log('GET NEW EVENTS');\n\t\t\t$scope.events = campaigndata.getEvents();\n\n\t\t\t// cleanSidebars();\n\t\t\t// buildSidebars();\n\t\t});\n\n\t} ]);\n\n\n})( window, window.angular );\n","(function (window, angular, moment, undefined) {\n\t'use strict';\n\n\tvar sidebars;\n\n\tangular.module('app.controllers.campaign.shootController', [\n\t\t'app.controllers.campaign.shoot.eventsController',\n\t\t'app.controllers.campaign.shoot.callController',\n\t\t'app.controllers.campaign.shoot.scheduleController',\n\t\t'app.controllers.campaign.shoot.footageReviewController',\n\t\t'shoot',\n\t\t'workflow',\n\t\t'app.filters',\n\t])\n\t\t.config(['$stateProvider', 'USER_ROLES', function ($stateProvider, USER_ROLES) {\n\t\t\t$stateProvider\n\t\t\t\t.state('app.campaign.shoots', {\n\t\t\t\t\turl: '/shoot',\n\t\t\t\t\t// templateUrl: '/templates/campaign/shoot/shoot.tpl.html',\n\t\t\t\t\ttemplate: ' ',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tauthorizedRoles: [\n\t\t\t\t\t\t\tUSER_ROLES.admin,\n\t\t\t\t\t\t\tUSER_ROLES.masterAdmin,\n\t\t\t\t\t\t\tUSER_ROLES.customerService,\n\t\t\t\t\t\t\tUSER_ROLES.productionCoordinator,\n\t\t\t\t\t\t\tUSER_ROLES.productionManager,\n\t\t\t\t\t\t\tUSER_ROLES.productionScheduler,\n\t\t\t\t\t\t\tUSER_ROLES.videoEditor,\n\t\t\t\t\t\t\tUSER_ROLES.accountExecutive,\n\t\t\t\t\t\t\tUSER_ROLES.videoProductionAssistant\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\tabstract: true,\n\t\t\t\t\tonExit: function () {\n\t\t\t\t\t\tif (sidebars) {\n\t\t\t\t\t\t\tsidebars.remove();\n\t\t\t\t\t\t\tsidebars = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.state('app.campaign.shoots.overview', {\n\t\t\t\t\turl: '',\n\t\t\t\t\ttemplateUrl: '/templates/campaign/shoot/shoot.tpl.html',\n\t\t\t\t\tcontroller: 'shootOverviewController',\n\t\t\t\t\tcontrollerAs: 'ctrl',\n\t\t\t\t\tresolve: {\n\t\t\t\t\t\tshootsData: ['campaignId', 'shoot.api', function (campaignId, shootApi) {\n\t\t\t\t\t\t\treturn shootApi.campaign(campaignId).then(function (data) {\n\t\t\t\t\t\t\t\treturn data.data;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}]\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.state('app.campaign.shoots.shoot', {\n\t\t\t\t\turl: '/{shootId:int}',\n\t\t\t\t\tabstract: true,\n\t\t\t\t\tcontroller: ['$scope', '$state', '$stateParams', '$q', '$appSidebar', 'shoot.api', 'assets.asset', 'campaigndata', 'workflow.service', 'shoot', function ($scope, $state, $stateParams, $q, $appSidebar, shootApi, assetService, campaigndata, workflowService, shoot) {\n\t\t\t\t\t\tconsole.log(\"BUNDLE PARAMS\", workflowService);\n\n\t\t\t\t\t\tvar shootUpdateListener = $scope.$on('shoot.update', function () {\n\t\t\t\t\t\t\t//$state.reload();\n\t\t\t\t\t\t\tshoot.getActions().then(function (actions) {\n\t\t\t\t\t\t\t\tvar sidebarData = Object.assign({}, shoot.data);\n\t\t\t\t\t\t\t\tconsole.log(\"SIDEBAR DATA!!!!!!!!\", sidebarData);\n\t\t\t\t\t\t\t\tsidebarData['workflow_actions'] = actions;\n\n\t\t\t\t\t\t\t\tsidebars.update(sidebarData);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\t$scope.$on('$destroy', function () {\n\t\t\t\t\t\t\t// $translateListener();\n\t\t\t\t\t\t\t// $stateChangeListener();\n\t\t\t\t\t\t\tshootUpdateListener();\n\n\t\t\t\t\t\t});\n\t\t\t\t\t\t// $scope.$watch( function() { return workflowService.actions }, function( newVal, oldVal ) {\n\t\t\t\t\t\t// \tconsole.log( \"NEW ACTIONS\", newVal );\n\t\t\t\t\t\t// \tif ( newVal && newVal != [] && !angular.equals( newVal, oldVal ) ) {\n\t\t\t\t\t\t// \t\t// getShootData( $q, $stateParams, shootApi, assetService ).then( function( response ) {\n\t\t\t\t\t\t// \t\t//\n\t\t\t\t\t\t// \t\t// \tvar sidebarData = Object.assign( {}, response );\n\t\t\t\t\t\t// \t\t// \tsidebarData['workflow_actions'] = parseShootActions( newVal, workflow );\n\t\t\t\t\t\t// \t\t//\n\t\t\t\t\t\t// \t\t// \tsidebars.update( sidebarData );\n\t\t\t\t\t\t// \t\t// })\n\t\t\t\t\t\t// \t\t// sidebars.remove();\n\t\t\t\t\t\t// \t}\n\t\t\t\t\t\t//\n\t\t\t\t\t\t// } );\n\t\t\t\t\t}],\n\t\t\t\t\ttemplate: ' ',\n\t\t\t\t\tresolve: {\n\t\t\t\t\t\tshoot: ['$stateParams', 'shoot.service', function ($stateParams, shootService) {\n\t\t\t\t\t\t\tconsole.log(\"GET SHOOT DATA\");\n\t\t\t\t\t\t\tvar newShoot = new shootService($stateParams.shootId);\n\t\t\t\t\t\t\tconsole.log('GET SHOOT DATA RETURN', newShoot);\n\t\t\t\t\t\t\treturn newShoot;\n\t\t\t\t\t\t}],\n\t\t\t\t\t\tshootData: ['shoot', function (shoot) {\n\t\t\t\t\t\t\treturn shoot.data;\n\t\t\t\t\t\t}],\n\t\t\t\t\t\tworkflowActions: ['shoot', function (shoot) {\n\t\t\t\t\t\t\t// Jira WP-61: Moved this call to a resolve to ensure that other views had this data.\n\t\t\t\t\t\t\treturn shoot.getActions();\n\t\t\t\t\t\t}]\n\t\t\t\t\t},\n\t\t\t\t\tonEnter: ['$appSidebar', 'campaigndata', 'partnerdata', 'workflowActions', 'shootData', function ($appSidebar, campaigndata, partnerdata, workflowActions, shootData) {\n\t\t\t\t\t\tvar sidebarData = Object.assign({}, shootData);\n\t\t\t\t\t\t// shoot.getActions().then(function (actions) {\n\t\t\t\t\t\tsidebarData['workflow_actions'] = workflowActions;\n\t\t\t\t\t\tconsole.log(\"SHOOT ACTIONS\", sidebarData);\n\t\t\t\t\t\tsidebars = $appSidebar.load('shoot', partnerdata.get('partnerCode'), sidebarData);\n\t\t\t\t\t\t// });\n\n\n\t\t\t\t\t}],\n\t\t\t\t\tonExit: function () {\n\t\t\t\t\t\tif (sidebars) {\n\t\t\t\t\t\t\tsidebars.remove();\n\t\t\t\t\t\t\tsidebars = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t}])\n\t\t.controller('shootOverviewController', ['$rootScope', '$scope', '$appSidebar', '$state', '$filter', 'shoot.api', 'NgTableParams', 'campaignId', 'campaigndata', 'shootsData', 'USER_ROLES', function ($rootScope, $scope, $appSidebar, $state, $filter, shootApi, NgTableParams, campaignId, campaigndata, shootsData, USER_ROLES) {\n\t\t\tvar ctrl = this;\n\t\t\tctrl.USER_ROLES = USER_ROLES;\n\t\t\t//\n\t\t\t// shootApi.all( campaignId ).then( function( result ) {\n\t\t\t// \tctrl.shoots = result.data;\n\t\t\t// });\n\t\t\tctrl.campaign = campaigndata;\n\t\t\tctrl.shoots = shootsData;\n\n\n\t\t\tctrl.bundleIds = getBundles(campaigndata.listings.get());\n\t\t\tctrl.bundleParamsObj = getBundleParams(ctrl.bundleIds, shootsData, NgTableParams);\n\n\n\t\t\tfunction getBundles(listings) {\n\t\t\t\tvar bundles = [];\n\t\t\t\tangular.forEach(listings, function (listing, key) {\n\t\t\t\t\tconsole.log('Getting bundles from', bundles);\n\t\t\t\t\tif (listing.bundleid && bundles.indexOf(listing.bundleid || listing.BundleId) === -1) {\n\t\t\t\t\t\tbundles.push(listing.bundleid)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tconsole.log('Getting bundles from', bundles);\n\t\t\t\treturn bundles;\n\t\t\t}\n\n\t\t\tfunction getBundleParams(bundles, shoots, NgTableParams) {\n\t\t\t\tvar bundleParams = {};\n\t\t\t\tvar shootsByBundle = {};\n\n\t\t\t\tconsole.log('GET BUNDLE PARAMS', bundles, shoots);\n\n\t\t\t\tif (bundles.length) {\n\n\t\t\t\t\tangular.forEach(bundles, function (bundle) {\n\n\t\t\t\t\t\tconsole.log('FILTER FOR', bundle, shoots);\n\n\t\t\t\t\t\tshootsByBundle[bundle] = shoots.filter(function (val) {\n\t\t\t\t\t\t\tconsole.log('FILTER FOR', val.BundleId, bundle, val.BundleId === bundle);\n\t\t\t\t\t\t\treturn val.BundleId === bundle;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tconsole.log(\"FILTER FOR FINAL\", shootsByBundle);\n\n\n\t\t\t\t\t\tbundleParams[bundle] = new NgTableParams({\n\t\t\t\t\t\t\tpage: 1, // show first page\n\t\t\t\t\t\t\tcount: shootsByBundle[bundle].length, // hides pager\n\n\t\t\t\t\t\t\tsorting: {\n\t\t\t\t\t\t\t\tduedate: 'desc' // initial sorting\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tdebugMode: true\n\t\t\t\t\t\t}, {\n\t\t\t\t\t\t\ttotal: 0, // length of data\n\t\t\t\t\t\t\tgetData: function (params) {\n\t\t\t\t\t\t\t\tvar result = shootsByBundle[bundle];\n\n\t\t\t\t\t\t\t\t// Filter on search term\n\t\t\t\t\t\t\t\t//\tvar searchResult = $scope.searchTerm ? $filter('filter')( result, $scope.searchTerm ) : result;\n\t\t\t\t\t\t\t\tparams.total(result.length);\n\n\t\t\t\t\t\t\t\t// Filter on sorting\n\t\t\t\t\t\t\t\tvar orderedData = params.sorting() ? $filter('orderBy')(result, params.orderBy()) : result;\n\t\t\t\t\t\t\t\tvar data = orderedData.slice(0);\n\n\t\t\t\t\t\t\t\t// bundle.listings = data;\n\t\t\t\t\t\t\t\t// bundle.clean = angular.copy( data.slice(0) );\n\n\t\t\t\t\t\t\t\treturn data;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t$scope: {$data: {}},\n\t\t\t\t\t\t\tcounts: []\n\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbundleParams[bundle].reload();\n\t\t\t\t\t});\n\t\t\t\t} else {\n\n\t\t\t\t\tvar bundle = '';\n\t\t\t\t\tbundleParams[bundle] = new NgTableParams({\n\t\t\t\t\t\tpage: 1, // show first page\n\t\t\t\t\t\tcount: shoots.length, // hides pager\n\n\t\t\t\t\t\tsorting: {\n\t\t\t\t\t\t\tduedate: 'desc' // initial sorting\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdebugMode: true\n\t\t\t\t\t}, {\n\t\t\t\t\t\ttotal: 0, // length of data\n\t\t\t\t\t\tgetData: function (params) {\n\t\t\t\t\t\t\tvar result = shoots;\n\n\t\t\t\t\t\t\t// Filter on search term\n\t\t\t\t\t\t\t//\tvar searchResult = $scope.searchTerm ? $filter('filter')( result, $scope.searchTerm ) : result;\n\t\t\t\t\t\t\tparams.total(result.length);\n\n\t\t\t\t\t\t\t// Filter on sorting\n\t\t\t\t\t\t\tvar orderedData = params.sorting() ? $filter('orderBy')(result, params.orderBy()) : result;\n\t\t\t\t\t\t\tvar data = orderedData.slice(0);\n\n\t\t\t\t\t\t\t// bundle.listings = data;\n\t\t\t\t\t\t\t// bundle.clean = angular.copy( data.slice(0) );\n\n\t\t\t\t\t\t\treturn data;\n\t\t\t\t\t\t},\n\t\t\t\t\t\t$scope: {$data: {}},\n\t\t\t\t\t\tcounts: []\n\n\t\t\t\t\t});\n\t\t\t\t\tbundleParams[bundle].reload();\n\t\t\t\t}\n\t\t\t\treturn bundleParams;\n\t\t\t}\n\n\t\t\tctrl.timeZones = [\n\t\t\t\t{name: 'Eastern Time', zone: 'America/New_York'},\n\t\t\t\t{name: 'Central Time', zone: 'America/Chicago'},\n\t\t\t\t{name: 'Mountain Time', zone: 'America/Denver'},\n\t\t\t\t{name: 'Mountain Time (no DST)', zone: 'America/Phoenix'},\n\t\t\t\t{name: 'Pacific Time', zone: 'America/Los_Angeles'},\n\t\t\t\t{name: 'Alaska Time', zone: 'America/Anchorage'},\n\t\t\t\t{name: 'Hawaii-Aleutian', zone: 'America/Adak'},\n\t\t\t\t{name: 'Hawaii-Aleutian Time (no DST)', zone: 'Pacific/Honolulu'}\n\t\t\t];\n\n\t\t\tctrl.getTimeZoneOffset = function (tz) {\n\t\t\t\treturn moment.tz(tz).format('Z');\n\t\t\t}\n\n\t\t\tctrl.getTimeZoneName = function (tz) {\n\t\t\t\treturn ctrl.timeZones.find(function (val) {\n\t\t\t\t\treturn val.zone === tz;\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tctrl.addShoot = function ($event, bundle) {\n\t\t\t\tvar shootFromBundle = ctrl.shoots.find(function (item) {\n\t\t\t\t\treturn item.BundleId === bundle;\n\t\t\t\t});\n\t\t\t\tvar tmpData;\n\t\t\t\tif (!shootFromBundle) {\n\t\t\t\t\t// $rootScope.$broadcast('alert', {\n\t\t\t\t\t// \ttype: 'warning',\n\t\t\t\t\t// \ttitle: 'Bundle Not Found',\n\t\t\t\t\t// \tmsg: 'Bundle ' + bundle + ' could not be found on this campaign.',\n\t\t\t\t\t// \ttimeout: 10000\n\t\t\t\t\t// });\n\t\t\t\t\t// return;\n\t\t\t\t\ttmpData = {\n\t\t\t\t\t\t\"PartnerId\": campaigndata.get('partnerid'),\n\t\t\t\t\t\t\"ClientId\": campaigndata.get('clientid'),\n\t\t\t\t\t\t\"AdvertiserId\": campaigndata.get('id'),\n\t\t\t\t\t\t\"BundleId\": bundle,\n\t\t\t\t\t\t\"ShootDate\": null,\n\t\t\t\t\t\t\"DueDate\": null,\n\t\t\t\t\t\t\"ListingCode\": bundle.replace(/_\\d\\d$/, '' ),\n\t\t\t\t\t\t\"WorkflowId\": 3,\n\t\t\t\t\t\t\"ShootTypeId\": 1,\n\t\t\t\t\t\t\"WorkflowStateId\": 28,\n\t\t\t\t\t\t\"Length\": 2,\n\t\t\t\t\t\t\"ShootDates\": []\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\ttmpData = {\n\t\t\t\t\t\tPartnerId: shootFromBundle.PartnerId,\n\t\t\t\t\t\tClientId: shootFromBundle.ClientId,\n\t\t\t\t\t\tAdvertiserId: shootFromBundle.AdvertiserId,\n\t\t\t\t\t\tBundleId: shootFromBundle.BundleId,\n\t\t\t\t\t\tListingCode: shootFromBundle.ListingCode,\n\t\t\t\t\t\tShootDate: null,\n\t\t\t\t\t\tShootType: shootFromBundle.ShootTypeId,\n\t\t\t\t\t\tDueDate: shootFromBundle.DueDate,\n\t\t\t\t\t\tWorkflowId: shootFromBundle.WorkflowId,\n\t\t\t\t\t\tShootTypeId: shootFromBundle.ShootTypeId || 1,\n\t\t\t\t\t\t// WorkflowStateId: shootFromBundle.WorkflowStateId\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tshootApi.create(tmpData).then(function (result) {\n\t\t\t\t\tvar data = result.data;\n\n\t\t\t\t\t$state.go('app.campaign.shoots.shoot.schedule', {campaignId: campaignId, shootId: data.Id});\n\t\t\t\t});\n\t\t\t};\n\n\n\t\t}])\n\n\t;\n})(window, window.angular, window.moment);\n","(function(window, angular, undefined) {\n\t'use strict';\n\n\tangular.module('app.controllers.campaign.propertyController',[])\n .controller('PropertyController',[ '$rootScope', '$scope', '$translate', 'vls.api', 'campaignId', 'campaigndata', 'partnerdata', function( $rootScope, $scope, $translate, vlsApi, campaignId, campaigndata, partnerdata ) {\n\tvlsApi.getProfileData( partnerdata.get('partnerCode'), campaignId ).then( function( response ) {\n\t\t$scope.propertyData = response.data;\n\t});\n} ]);\n\n\n})( window, window.angular );\n","( function( window, angular, undefined ) {\n\t'use strict';\n\n\tangular.module('app.controllers.campaign.profileController',[])\n\t.controller('ProfileController', [ '$rootScope', '$scope', '$translate', '$resource', '$http', '$timeout', '$templateCache', '$q', 'assets.api.endpoints', 'campaignId', 'campaigndata',\n\t\tfunction( $rootScope, $scope, $translate, $resource, $http, $timeout, $templateCache, $q, API_ENDPOINTS, campaignId, campaigndata ) {\n\t\t\t// Let the widgets use this\n\t\t\t$scope.campaignData = campaigndata;\n\n\t\t\tvar campaign = campaigndata.get();\n\t\t\t// TODO: Break this out into an API file\n\t\t\tvar AdvertiserProfile = $resource( API_ENDPOINTS.DOMAIN+ '/AdvertiserProfile/v1/AdvertiserData/ListingCode/:listingCode', { listingCode: campaign.listingcode } );\n\t\t\tvar AdvertiserData = $resource( API_ENDPOINTS.DOMAIN + '/AdvertiserProfile/v1/Advertiser/:advertiserId' );\n\t\t\tvar AdvertiserSocialMedia;\n\n\t\t\tAdvertiserProfile.query( function( profileData ) {\n\n\t\t\t\t$scope.profileData = profileData[0] || {};\n\n\t\t\t\t$scope.hours = [];\n\t\t\t\t$scope.media = {\n\t\t\t\t\tvideo: [],\n\t\t\t\t\timage: []\n\t\t\t\t};\n\n\t\t\t\t// setFeedbackForDev();\n\n\t\t\t\tif ( !$scope.profileData ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif ( $scope.profileData.advertiserBusinessHours ) {\n\t\t\t\t\tangular.forEach( $scope.profileData.advertiserBusinessHours, function( val ) {\n\t\t\t\t\t\t$scope.hours[val.day] = { open: val.openTime, close: val.closeTime };\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\tif ( $scope.profileData.advertiserMedias ) {\n\t\t\t\t\tangular.forEach( $scope.profileData.advertiserMedias, function( val ) {\n\t\t\t\t\t\tconsole.log(val.mediaType.mediaTypeName.toLowerCase());\n\t\t\t\t\t\t$scope.media[val.mediaType.mediaTypeName.toLowerCase()].push( { url: val.url, notes: val.notes } );\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t$scope.profileData.advertiserDataBusinessCategories.sort( function ( a, b ) {\n\t\t\t\t\treturn a.businessDataName < b.businessDataName ? -1 : 1;\n\t\t\t\t});\n\n\n\t\t\t\tAdvertiserSocialMedia = $resource( API_ENDPOINTS.DOMAIN + '/AdvertiserProfile/v1/Advertiser/:advertiserId/SocialMedia/:id', { advertiserId: $scope.profileData.advertiserId, id: '@id' }, { 'update': { method: 'PUT' } } );\n\t\t\t\t$scope.social.fn.get();\n\n\t\t\t});\n\n\n\t\t\t// AdvertiserData.get({ advertiserId: $scope.profileData.advertiserId }, function( advertiserData ) {\n\t\t\t// \t$scope.advertiserData = advertiserData;\n\t\t\t// });\n\t\t\t// console.log( $scope.profileData.advertiserSocialMedias, $scope.socialsInUse );\n\t\t\t$scope.socialSaving = {};\n\t\t\t$scope.$watch( 'social.data', function( newVal, oldVal ) {\n\t\t\t\tangular.forEach( newVal, function( value, idx ) {\n\t\t\t\t\tif ( oldVal[idx] && value.url !== oldVal[idx].url ) {\n\t\t\t\t\t\t$scope.social.fn.save( value.socialMediaId, value.url );\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}, true );\n\n\t\t\t$scope.social = {\n\t\t\t\tshowNew: false,\n\t\t\t\tinUse: [],\n\t\t\t\tavailable: [{\n\t\t\t\t\tsocialMediaId: 1,\n\t\t\t\t\tsocialMediaName: 'facebook'\n\t\t\t\t},{\n\t\t\t\t\tsocialMediaId: 2,\n\t\t\t\t\tsocialMediaName: 'twitter'\n\t\t\t\t},{\n\t\t\t\t\tsocialMediaId: 3,\n\t\t\t\t\tsocialMediaName: 'googleplus'\n\t\t\t\t}],\n\t\t\t\tdata: [],\n\t\t\t\tsaving: {},\n\t\t\t\tnew: {\n\t\t\t\t\tnetwork: -1,\n\t\t\t\t\turl: ''\n\t\t\t\t},\n\t\t\t\tfn: {\n\t\t\t\t\tadd: function( evt ) {\n\t\t\t\t\t\t$scope.social.showNew = true;\n\t\t\t\t\t\t$scope.social.watch = $scope.$watch( 'social.new', function( newVal, oldVal ) {\n\t\t\t\t\t\t\tconsole.log( 'ADDING NEW NETWORK', newVal, oldVal );\n\t\t\t\t\t\t\tif ( newVal.url !== oldVal.url && newVal.url !== '' ) {\n\t\t\t\t\t\t\t\t$scope.social.fn.save( newVal.network, newVal.url, true ).$promise.then( function() {\n\t\t\t\t\t\t\t\t\t$scope.social.new.network = -1;\n\t\t\t\t\t\t\t\t\t$scope.social.new.url = '';\n\n\t\t\t\t\t\t\t\t\tif ( $scope.social.inUse.length === $scope.social.available ) {\n\t\t\t\t\t\t\t\t\t\t$scope.social.showNew = false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, true );\n\t\t\t\t\t},\n\t\t\t\t\tdelete: function( id ) {\n\t\t\t\t\t\t$scope.social.saving[id] = true;\n\t\t\t\t\t\tAdvertiserSocialMedia.delete({\n\t\t\t\t\t\t\t'id': id\n\t\t\t\t\t\t}, function() {\n\t\t\t\t\t\t\t$scope.social.fn.get().$promise.then( function() {\n\t\t\t\t\t\t\t\t$timeout( function() { $scope.social.saving[id] = false; }, 350 );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tsave: function( id, url, isNew ) {\n\t\t\t\t\t\t$scope.social.saving[id] = true;\n\t\t\t\t\t\tvar method = isNew ? 'save' : 'update';\n\t\t\t\t\t\tvar data = {\n\t\t\t\t\t\t\t'socialMediaId': id,\n\t\t\t\t\t\t\t'url': url\n\t\t\t\t\t\t};\n\t\t\t\t\t\tif ( !isNew ) {\n\t\t\t\t\t\t\tdata.id = id;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn AdvertiserSocialMedia[method]( data, function() {\n\t\t\t\t\t\t\t$scope.social.fn.get().$promise.then( function() {\n\t\t\t\t\t\t\t\t$timeout( function() { $scope.social.saving[id] = false; }, 350 );\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t\t// var endpoint = API_ENDPOINTS.DOMAIN + '/AdvertiserProfile/v1/advertiser/' + $scope.profileData.advertiserId + '/SocialMedia/' + ( isNew ? '' : id );\n\t\t\t\t\t\t// $http[method]( endpoint, {\n\t\t\t\t\t\t// 'socialMediaId': id,\n\t\t\t\t\t\t// 'url': url\n\t\t\t\t\t\t// }).then(function() {\n\t\t\t\t\t\t// $scope.social.fn.get().then( function() {\n\t\t\t\t\t\t// $scope.social.saving[id] = false;\n\t\t\t\t\t\t// } );\n\t\t\t\t\t\t// });\n\t\t\t\t\t},\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\tconsole.log( 'social 2 ', $scope.social.inUse, $scope.social.available );\n\n\t\t\t\t\t\treturn AdvertiserSocialMedia.query( { advertiserId: $scope.profileData.advertiserId, id: null }, function( socialData ) {\n\t\t\t\t\t\t\t$scope.social.data = socialData;\n\t\t\t\t\t\t\t$scope.social.inUse = $scope.social.data.map( function( val ) { return val.socialMediaId; } );\n\t\t\t\t\t\t\tconsole.log( 'social 3 ', $scope.social.inUse, $scope.social.available );\n\t\t\t\t\t\t\t// resolve( $scope.profileData.advertiserSocialMedias );\n\t\t\t\t\t\t});\n\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t\tconsole.log( 'social 1 ', $scope.social.inUse, $scope.social.available );\n\n\n\t\t\t//\n\n\t\t\tfunction setFeedbackForDev() {\n\t\t\t\t$scope.profileData.feedbacks = [\n\t\t\t\t\t{\n\t\t\t\t\t\t'feedbackId': 147,\n\t\t\t\t\t\t'advertiserDataId': 64,\n\t\t\t\t\t\t'rating': 0,\n\t\t\t\t\t\t'title': 'CC-21 from New York, NY',\n\t\t\t\t\t\t'text': 'I had been suffering with severe neck pain for many years and had various tests and therapy but the pain always seemed to return. My latest Doctor told me that I needed further Therapy and I should see MRPT Physical Therapy since he regarded them as the best in the City. So I booked an appointment. \\nWow what a difference! They didn\\'t just look at my neck pain but concentrated on my entire body, it semms the problem with my neck was caused from me having bad posture especially at work and weak core muscles (and I thought I just had a neck problem) 3 months later after a series of treatments, sticking to their detailed home exercise and strengthening program and changing how my desk is organzed at work I have never been so pain free. Thank you to Marianne and her staff for all your help and guidance.',\n\t\t\t\t\t\t'userName': 'UID1139417929-j5-24209412-035'\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t'feedbackId': 148,\n\t\t\t\t\t\t'advertiserDataId': 64,\n\t\t\t\t\t\t'rating': 1,\n\t\t\t\t\t\t'title': 'by Paul B at Insider Pages',\n\t\t\t\t\t\t'text': 'My new dentist recommended I saw Marianne at MRPT Physical Therapy for my TMJ and headache problem, she is really helping me with my constant battle against pain. 10 visits so far and I am starting to feel much better. I live and work downtown so its a bit inconvenient for me to travel to midtown for my treatment but it is well worth it. \\\\r I just wish I had seen Marianne a long time ago rather going to a local Physical Therapist. The treatment is so different, I am in a private treatment room (not on a table in the corner of a gym like the other Physical Therapy practice) and I only see her for the entire 45 minutes. She only treats 1 patient at a time. Thanks Marianne you are helping me so much',\n\t\t\t\t\t\t'userName': 'by Paul B at Insider Pages'\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t'feedbackId': 149,\n\t\t\t\t\t\t'advertiserDataId': 64,\n\t\t\t\t\t\t'rating': 2,\n\t\t\t\t\t\t'title': 'by Mary P at Insider Pages',\n\t\t\t\t\t\t'text': 'I am finally free of headaches after suffering for 5 years. It turns out that I had pain from one of my muscles inside my mouth and my therapist, Marianne, was able to massage it away and get rid of my pain in 2 visits!!!! That is after seeing 12 other people such as doctors, therapists, accupunturists, massage people over a 5 year period. I am looking forward to the pilates strengthening program my therapist will teach me.',\n\t\t\t\t\t\t'userName': 'by Mary P at Insider Pages'\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t'feedbackId': 150,\n\t\t\t\t\t\t'advertiserDataId': 64,\n\t\t\t\t\t\t'rating': 2.5,\n\t\t\t\t\t\t'title': 'Guest46685',\n\t\t\t\t\t\t'text': 'I was referred by my dentist to MRPT Physical Therapy for treatment of my TMJ problem. \\nGreat office, convenient location and excellent treatment \\nHighly recommended ',\n\t\t\t\t\t\t'userName': 'anonymous'\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t'feedbackId': 151,\n\t\t\t\t\t\t'advertiserDataId': 64,\n\t\t\t\t\t\t'rating': 3,\n\t\t\t\t\t\t'title': 'by Kellysh at Citysearch',\n\t\t\t\t\t\t'text': 'I just want to share my comments about a great Physical Therapist I have been going to. This is my first pregnancy and I had been suffering with severe back pain for over 2 months, my Midwife eventually referred me to MRPT Physical Therapy for treatment.- After my 3rd treatment I am already feeling 90% better, and I\\'m looking forward to continuing with my weekly visits until my delivery in 3 months time. Also my insurance covers my treatments!!.',\n\t\t\t\t\t\t'userName': 'by Kellysh at Citysearch'\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t'feedbackId': 152,\n\t\t\t\t\t\t'advertiserDataId': 64,\n\t\t\t\t\t\t'rating': 4,\n\t\t\t\t\t\t'title': 'by charliehpc at Citysearch',\n\t\t\t\t\t\t'text': 'I had been suffering with severe neck pain for many years and had various tests and therapy but the pain always seemed to return. My latest Doctor told me that I needed further Therapy and I should see MRPT Physical Therapy since he regarded them as the best in the City. So I booked an appointment. Wow what a difference! They didn\\'t just look at my neck pain but concentrated on my entire body, it semms the problem with my neck was caused from me having bad posture especially at work and weak core muscles (and I thought I just had a neck problem) 3 months later after a series of treatments, sticking to their detailed home exercise and strengthening program and changing how my desk is organzed at work I have never been so pain free. Thank you to Marianne and her staff for all your help and guidance.',\n\t\t\t\t\t\t'userName': 'by charliehpc at Citysearch'\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t'feedbackId': 153,\n\t\t\t\t\t\t'advertiserDataId': 64,\n\t\t\t\t\t\t'rating': 5,\n\t\t\t\t\t\t'title': 'by mattgursky at Citysearch',\n\t\t\t\t\t\t'text': 'Liked The people who worked at the facility. Everyone was extremely friendly. I was very impressed with the amount of knowledge that the employees here had. I have been in the fitness industry for about 10 years and I was amazed that these people were on the same page as I was in other areas of phsycial well being and not only thier specific field. I personally have a hard time when it comes to admitting that I need help and the staff at MRPT were very comforting and made it easy for me to express the problems I was having. I have a knee injury. I would like to thank the staff for all thier help! I would reccomend them to family and friends!',\n\t\t\t\t\t\t'userName': 'by mattgursky at Citysearch'\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t'feedbackId': 154,\n\t\t\t\t\t\t'advertiserDataId': 64,\n\t\t\t\t\t\t'rating': 4.5,\n\t\t\t\t\t\t'title': 'by stevek0528 at Citysearch',\n\t\t\t\t\t\t'text': 'I injured my shoulder playing tennis in November and my doctor prescribed Physical Therapy. Since there was a PT in my local New York Sports Club I decided to go to them for treatment. It was convenient since I thought I could do my work outs and get some treatment at the same time. After a month of treatment I felt no better and I didn\\'t think they really knew what they were doing since all I ever seem to do was exercises, there was limited hands on treatment One of my co-workers said that she had been going to MRPT Physical Therapy for treatment and was very happy so I thought I would give them a try. It was like night and day I saw Marianne (who is the owner of MRPT) and after the very first session, which lasted about an hour, felt so much better and I could move my shoulder so much easier. She acomplished more in that first session that the other therpist had done in 10 sessions. I\\'m now just over 3 weeks into my treatment and am feeling stonger and stronger and hopefully will be playing tennis again farly shortly I thought all Physical Therapists did the same thing but they do not. Thanks Marianne you are really helping me',\n\t\t\t\t\t\t'userName': 'by stevek0528 at Citysearch'\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t'feedbackId': 155,\n\t\t\t\t\t\t'advertiserDataId': 64,\n\t\t\t\t\t\t'rating': 0.5,\n\t\t\t\t\t\t'title': 'by Juliemurray at Citysearch',\n\t\t\t\t\t\t'text': 'I have been seeing Marianne for the last 3 weeks since I badly hurt my knee playing Volleyball. I could hardly walk. I am due to resume playing volleyball next week Great office, superb treatment, thanks Marianne Highly recommended',\n\t\t\t\t\t\t'userName': 'by Juliemurray at Citysearch'\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t'feedbackId': 156,\n\t\t\t\t\t\t'advertiserDataId': 64,\n\t\t\t\t\t\t'rating': 3.5,\n\t\t\t\t\t\t'title': 'TEXAS',\n\t\t\t\t\t\t'text': 'Test texas',\n\t\t\t\t\t\t'userName': 'Ginesh'\n\t\t\t\t\t}\n\t\t\t\t];\n\t\t\t}\n\n\t\t}\n\t]);\n})( window, window.angular );\n","(function(window, angular, undefined) {\n\t'use strict';\n\n\n\n\tangular.module('app.controllers.campaign.playlistController',[])\n\t\t.config([ '$stateProvider', function( $stateProvider ) {\n\t\t\t$stateProvider\n\t\t\t\t.state( 'app.campaign.playlist', {\n\t\t\t\t\turl: '/playlist',\n\t\t\t\t\ttemplateUrl: '/templates/campaign/playlist/playlist.tpl.html',\n\t\t\t\t\tcontroller: 'CampaignPlaylistController',\n\t\t\t\t\tcontrollerAs: 'ctrl',\n\t\t\t\t\tresolve: {\n\t\t\t\t\t\tplaylist: [ 'videoListing.api', 'partnerId', 'clientId', 'campaignId', function ( videoListingApi, partnerId, clientId, campaignId ) {\n\t\t\t\t\t\t\tvar call = videoListingApi.playlist.get( {partnerId: partnerId, clientId: clientId, advertiserId: campaignId });\n\t\t\t\t\t\t\tconsole.log(call);\n\t\t\t\t\t\t\treturn call.$promise;\n\t\t\t\t\t\t}]\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t} ])\n\t\t.controller('CampaignPlaylistController',[ 'videoListing.api', 'partnerId', 'clientId', 'campaignId', 'campaigndata', 'partnerdata', 'playlist', 'vls.user', 'USER_ROLES', function( videoListingApi, partnerId, clientId, campaignId, campaigndata, partnerdata, playlist, vlsUser, USER_ROLES ) {\n\t\t\tvar ctrl = this;\n\n\t\t\tctrl.playlist = playlist;\n\t\t\tctrl.partnerId = partnerId\n\n\t\t\tctrl.sortableOptions = {\n\t\t\t\torderChanged: function() {\n\t\t\t\t\t// assignIndexAsPosition( ctrl.playlist.PlaylistVideos );\n\t\t\t\t\tctrl.savePlaylist( ctrl.playlist ) ;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tctrl.savePlaylist = function() {\n\t\t\t\tvar saveData = ctrl.playlist.reduce( function( prev, val, i ) {\n\t\t\t\t\tprev[val.id] = i;\n\t\t\t\t\treturn prev;\n\t\t\t\t}, {})\n\t\t\t\tvideoListingApi.playlist.save( { clientId: clientId, partnerId: partnerId, advertiserId: campaignId }, saveData );\n\t\t\t}\n\n\n\n\n\n\t\t} ]);\n\n})(window, window.angular);\n","'use strict';\n\nangular.module('app.controllers.campaign.eventsController',[])\n\t.controller('CampaignEventsController', [ '$rootScope','$scope', 'vls.api', 'vls.event.types', 'campaignId', 'campaigndata', 'partnerdata', function( $rootScope, $scope, vlsApiProvider, EVENT_TYPES, campaignId, campaigndata, partnerdata ) {\n\t\tconsole.log( \"EVENTS\", arguments );\n\n\t\t$scope.campaignData = campaigndata;\n\t\t$scope.partnerData = partnerdata;\n\t\t//console.log('Campaign Events Controller: ', campaigndata);\n\t\t//$scope.campaignData.vpalist = vpalist.data.items;\n\t\t$scope.EVENTTYPES = EVENT_TYPES;\n\n\t\t$scope.entityType = EVENT_TYPES.CAMPAIGNS;\n\t\t$scope.entityId = campaignId;\n\t\t$scope.events = campaigndata.getEvents();\n\t\t$scope.extras = [ $scope.campaignData.get('productionnotes'), $scope.campaignData.get('specialinstructions') ];\n\n\n\t\t$scope.$on('app.campaign.update', function() {\n\t\t\t// campaigndata = campaign.get();\n\t\t\t$scope.events = campaigndata.getEvents();\n\t\t});\n\n\t\t//console.log( $scope.campaignData );\n\n\t} ]);\n","'use strict';\n(function (window, angular, undefined) {\n\n var campaignSidebar;\n var assetsNavItem;\n\n function filterByBundle(listings) {\n var listingsReturn = {\n all: {\n listings: []\n },\n none: {\n listings: []\n }\n };\n console.log('[Campaign Assets State] sorting listings', listings);\n\n angular.forEach(listings, function (listing, key) {\n console.log('[Campaign Assets State] sorting listing', listing);\n\n listing.duedate = new Date(listing.duedate).getTime();\n\n\n if (listing.bundleid) {\n listingsReturn[listing.bundleid] = listingsReturn[listing.bundleid] || {};\n listingsReturn[listing.bundleid].listings = listingsReturn[listing.bundleid].listings || [];\n listingsReturn[listing.bundleid].listings.push(listing);\n } else {\n listingsReturn.none.listings.push(listing);\n }\n\n listingsReturn.all.listings.push(listing);\n });\n\n return listingsReturn;\n }\n\n angular.module('app.controllers.campaign.assetsController', ['app.controllers.assetsController'])\n\n .config(['$stateProvider', function ($stateProvider) {\n $stateProvider.state('app.campaign.assets', {\n url: '/assets?p',\n templateUrl: '/templates/assets/assets.tpl.html',\n controller: 'AssetsController',\n controllerAs: 'ctrl',\n resolve: {\n partnerId: ['$stateParams', 'campaigndata', function ($stateParams, campaigndata) {\n console.log( '[ Campaign Assets Partner ID', campaigndata.get('partnerid') );\n return campaigndata.get('partnerid');\n }],\n clientId: ['$stateParams', 'campaigndata', function ($stateParams, campaigndata) {\n return campaigndata.get('clientid');\n }],\n global: ['$stateParams', function ($stateParams) {\n return 0;\n }],\n userPartners: ['vls.partners', function (vlsPartners) {\n return vlsPartners.get();\n }],\n userClients: ['vls.partners', function (vlsPartners) {\n return vlsPartners.getAllClients();\n }],\n listingId: [function () {\n return undefined;\n }],\n tags: [function () {\n return undefined;\n }],\n fileTypes: ['assets.api', function (assetsApi) {\n return assetsApi.getFileTypes();\n // .then( function( result ) {\n // \treturn result.map( function( fileType ) {\n // \t\treturn fileType.extension + ', ' + fileType.contentType;\n // \t}).join( ', ');\n // });\n }]\n },\n onEnter: ['$appSidebar', 'campaignId', 'campaigndata', function ($appSidebar, campaignId, campaigndata) {\n $appSidebar.getLayout('campaign').then(function (sidebar) {\n campaignSidebar = sidebar;\n console.log('[Campaign Assets State] onEnter', campaignSidebar);\n var bundles = filterByBundle(campaigndata.listings.get());\n\n console.log('[Campaign Assets State] onEnter bundles', bundles);\n var newNavItems = []\n var newBundleNavItems = [];\n\n angular.forEach(bundles, function (item, key) {\n switch (key) {\n case 'all':// do nothing\n break;\n case 'none':\n angular.forEach(item.listings, function (listing) {\n newNavItems.push({\n \"text\": listing.videocode,\n \"icon\": \"insert_drive_file\",\n \"state\": \"app.campaign.assets.listing({listingId: \" + listing.id + \"})\"\n });\n })\n\n break;\n default: {\n var bundleItems = item.listings.map(function (listing) {\n return {\n \"text\": listing.videocode,\n \"icon\": \"subdirectory_arrow_right\",\n \"state\": \"app.campaign.assets.bundle.listing({listingId: \" + listing.id + \"})\"\n };\n })\n newBundleNavItems.push({\n \"text\": key,\n \"icon\": \"folder\",\n \"state\": \"app.campaign.assets.bundle({bundleId: \\\"\" + key + \"\\\"})\",\n \"condition\": \"$state.includes( 'app.campaign.assets.bundle' ) && $state.params.bundleId === '\" + key + \"'\",\n \"items\": bundleItems\n });\n\n\n break;\n }\n }\n });\n\n assetsNavItem = campaignSidebar.left.nav[0].items.find(function (item) {\n return item.text === 'Assets';\n });\n console.log('[Campaign Assets State] onEnter new bundle items', newBundleNavItems, assetsNavItem );\n assetsNavItem.items = assetsNavItem.items || [];\n assetsNavItem.items = assetsNavItem.items.concat(newBundleNavItems);\n assetsNavItem.items = assetsNavItem.items.concat(newNavItems);\n\n\n });\n\n }],\n onExit: ['$timeout', function($timeout) {\n $timeout( function() {\n assetsNavItem.items = [];\n }, 500 );\n }]\n })\n .state('app.campaign.assets.bundle', {\n url: '/bundle/:bundleId',\n templateUrl: '/templates/assets/assets.tpl.html',\n controller: 'AssetsController',\n controllerAs: 'ctrl',\n resolve: {\n listingId: [function () {\n return undefined;\n }],\n }\n })\n .state('app.campaign.assets.bundle.listing', {\n url: '/listing/:listingId',\n templateUrl: '/templates/assets/assets.tpl.html',\n controller: 'AssetsController',\n controllerAs: 'ctrl',\n resolve: {\n listingId: ['$state', function ($state) {\n return $state.params.listingId;\n }],\n }\n })\n .state('app.campaign.assets.listing', {\n url: '/listing/:listingId',\n templateUrl: '/templates/assets/assets.tpl.html',\n controller: 'AssetsController',\n controllerAs: 'ctrl',\n resolve: {\n listingId: ['$state', function ($state) {\n return $state.params.listingId;\n }],\n }\n });\n\n }]);\n\n})(window, window.angular);\n","(function (window, angular, undefined) {\n\t'use strict';\n\n\tangular.module('app.controllers.campaign.advertiserDetailsController', [])\n\t\t.controller('AdvertiserDetailsController', ['$rootScope', '$scope', '$translate', 'vls.api', 'campaignId', 'campaigndata', function ($rootScope, $scope, $translate, vlsApi, campaignId, campaigndata) {\n\n\t\t\t$scope.campaign = campaigndata.get();\n\t\t\tconsole.log( $scope.campaign );\n\n\t\t}]);\n\n\n})(window, window.angular);\n","(function (window, angular, undefined) {\n\t'use strict';\n\tvar $translations;\n\n\tangular.module('app.controllers.campaign.advertiserController', ['pascalprecht.translate'])\n\t\t.config(['$translateProvider', function ($translateProvider) {\n\t\t\t$translations = $translateProvider.translations;\n\t\t}])\n\t\t.controller('AdvertiserController', ['$rootScope', '$scope', '$translate', '$timeout', '$filter', 'clientForms', 'vls.api', 'batchTranslate', 'USER_ROLES', 'campaignId', 'campaigndata', 'partnerdata', 'aeData', 'vpaData', 'billingCodeData', 'ccData', 'currentAE', 'currentVPA', 'currentCC', 'currentBillingCode', function ($rootScope, $scope, $translate, $timeout, $filter, clientForms, vlsApi, batchTranslate, USER_ROLES, campaignId, campaigndata, partnerdata, aeData, vpaData, billingCodeData, ccData, currentAE, currentVPA, currentCC, currentBillingCode ) {\n\n\t\t\tconsole.log('advertiserController', campaignId, campaigndata);\n\n\t\t\tconsole.group(\"Advertiser Controller Data\" );\n\t\t\tconsole.log( 'aeData', aeData );\n\t\t\tconsole.log( 'vpaData', vpaData );\n\t\t\tconsole.log( 'ccData', ccData );\n\t\t\tconsole.log( 'billingCodeData', billingCodeData );\n\t\t\tconsole.log( 'currentAE', currentAE );\n\t\t\tconsole.log( 'currentVPA', currentVPA );\n\t\t\tconsole.log( 'currentCC', currentCC );\n\t\t\tconsole.log( 'currentBillingCode', currentBillingCode );\n\t\t\tconsole.groupEnd();\n\n\t\t\tvar campaign = campaigndata.get();\n\t\t\tvar salesRep = {\n\t\t\t\tname: '',\n\t\t\t\temail: ''\n\t\t\t};\n\n\t\t\t// var currentAE = campaigndata.getAE();\n\t\t\t// var currentBillingCode = campaigndata.getBillingCode();\n\t\t\t// var currentVPA = campaigndata.getVPA();\n\t\t\t// var currentCC = campaigndata.getCC();\n\t\t\tif ( angular.isArray( currentCC ) ) {\n\t\t\t\tcurrentCC = undefined;\n\t\t\t}\n\n\t\t\tvar propertyMap = {\n\t\t\t\t'info.listingCode': 'listingcode',\n\t\t\t\t'info.advertiserName': 'companyname',\n\t\t\t\t'info.businessPhone': 'businessphone',\n\t\t\t\t'info.website': 'websiteurl',\n\t\t\t\t'info.billingCode': 'billingcode',\n\t\t\t\t'address.address': 'addressline1',\n\t\t\t\t'address.address2': 'addressline2',\n\t\t\t\t'address.city': 'city',\n\t\t\t\t'address.state': 'state',\n\t\t\t\t'address.stateAU': 'state',\n\t\t\t\t'address.zip': 'postalcode',\n\t\t\t\t'advertiserContact.firstName': 'firstname',\n\t\t\t\t'advertiserContact.lastName': 'lastname',\n\t\t\t\t'advertiserContact.phone': 'contactphone',\n\t\t\t\t'advertiserContact.email': 'emailaddress',\n\t\t\t\t'businessContact.salesRepName': 'salesrepname',\n\t\t\t\t'businessContact.salesRepEmail': 'salesrepemail',\n\t\t\t\t'businessContact.salesRepPhone': 'salesrepphone',\n\t\t\t\t'businessContact.salesRep2Name': 'salesrep2name',\n\t\t\t\t'businessContact.salesRep2Email': 'salesrep2email',\n\t\t\t\t'businessContact.salesRep2Phone': 'salesrep2phone',\n\t\t\t\t'businessContact.ae': 'aeid',\n\t\t\t\t'businessContact.cc': 'ccid',\n\t\t\t\t'businessContact.vpa': 'vpaid'\n\t\t\t};\n\n\t\t\t$scope.advertiser = {\n\t\t\t\tschema: {},\n\t\t\t\tform: {},\n\t\t\t\tmodel: {\n\t\t\t\t\tinfo: {\n\t\t\t\t\t\tlistingCode: campaign.listingcode,\n\t\t\t\t\t\teid: campaign.eid,\n\t\t\t\t\t\tadvertiserName: campaign.companyname,\n\t\t\t\t\t\tbusinessPhone: campaign.businessphone,\n\t\t\t\t\t\twebsite: campaign.websiteurl\n\t\t\t\t\t},\n\t\t\t\t\taddress: {\n\t\t\t\t\t\taddress: campaign.addressline1,\n\t\t\t\t\t\taddress2: campaign.addressline2,\n\t\t\t\t\t\tcity: campaign.city,\n\t\t\t\t\t\tstate: campaign.state,\n\t\t\t\t\t\tstateAU: campaign.state,\n\t\t\t\t\t\tzip: campaign.postalcode\n\t\t\t\t\t},\n\t\t\t\t\tadvertiserContact: {\n\t\t\t\t\t\tfirstName: campaign.firstname,\n\t\t\t\t\t\tlastName: campaign.lastname,\n\t\t\t\t\t\tphone: campaign.contactphone,\n\t\t\t\t\t\temail: campaign.emailaddress\n\t\t\t\t\t},\n\t\t\t\t\tbusinessContact: {\n\t\t\t\t\t\tsalesRepName: campaign.salesrepname,\n\t\t\t\t\t\tsalesRepEmail: campaign.salesrepemail,\n\t\t\t\t\t\tsalesRepPhone: campaign.salesrepphone,\n\t\t\t\t\t\tsalesRep2Name: campaign.salesrep2name,\n\t\t\t\t\t\tsalesRep2Email: campaign.salesrep2email,\n\t\t\t\t\t\tsalesRep2Phone: campaign.salesrep2phone\n\t\t\t\t\t},\n\t\t\t\t\tprocessing: false\n\t\t\t\t},\n\t\t\t\tsubmit: function (form) {\n\t\t\t\t\t$scope.$broadcast('schemaFormValidate');\n\n\t\t\t\t\t// Then we check if the form is valid\n\t\t\t\t\tif (form.$valid) {\n\n\t\t\t\t\t\tconsole.log(form, $scope.advertisert);\n\t\t\t\t\t\tvar newCampaignData = {}; //angular.copy( campaign );\n\n\t\t\t\t\t\t// Map model values to api model\n\t\t\t\t\t\tangular.forEach($scope.advertiser.model, function (section, sectionName) {\n\t\t\t\t\t\t\tif (typeof section === 'object') {\n\t\t\t\t\t\t\t\tangular.forEach(section, function (field, key) {\n\t\t\t\t\t\t\t\t\tvar prop = propertyMap[sectionName + '.' + key];\n\n\t\t\t\t\t\t\t\t\tconsole.log(key, field, prop);\n\t\t\t\t\t\t\t\t\tif (prop && field || field === false || field == 0) { // jshint ignore:line\n\t\t\t\t\t\t\t\t\t\tswitch (sectionName + '.' + key) {\n\t\t\t\t\t\t\t\t\t\t\tcase 'info.billingCode':\n\t\t\t\t\t\t\t\t\t\t\tcase 'businessContact.vpa':\n\t\t\t\t\t\t\t\t\t\t\tcase 'businessContact.ae':\n\t\t\t\t\t\t\t\t\t\t\tcase 'businessContact.cc':\n\t\t\t\t\t\t\t\t\t\t\t\tif (typeof field.value === 'object') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (field.value.id) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewCampaignData[prop] = field.value.id || '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewCampaignData[prop] = field.value || '';\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\tcase 'address.state':\n\t\t\t\t\t\t\t\t\t\t\tcase 'address.stateAU':\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(sectionName + '.' + key, form[sectionName + key.replace(/(^.)/gi, function (match, p1) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn p1.toUpperCase()\n\t\t\t\t\t\t\t\t\t\t\t\t})])\n\n\t\t\t\t\t\t\t\t\t\t\t\tif (form[sectionName + key.replace(/(^.)/gi, function (match, p1) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn p1.toUpperCase()\n\t\t\t\t\t\t\t\t\t\t\t\t})]) { // If this field is in the form.\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewCampaignData[prop] = field;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\t\tif (typeof field === 'object') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (typeof field.value === 'object') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewCampaignData[prop] = Number(field.value.id);\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewCampaignData[prop] = field.value;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewCampaignData[prop] = field;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tswitch (sectionName + '.' + key) {\n\t\t\t\t\t\t\t\t\t\t\tcase 'info.billingCode':\n\t\t\t\t\t\t\t\t\t\t\tcase 'businessContact.vpa':\n\t\t\t\t\t\t\t\t\t\t\tcase 'businessContact.ae':\n\t\t\t\t\t\t\t\t\t\t\tcase 'businessContact.cc':\n\t\t\t\t\t\t\t\t\t\t\t\tnewCampaignData[prop] = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\t\tif (campaign[prop]) { // If the campaign had a value for this field, set it to \"\" if not, then ignore it.\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewCampaignData[prop] = '';\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, this);\n\n\t\t\t\t\t\tconsole.log(newCampaignData);\n\n\t\t\t\t\t\tnewCampaignData['fullname'] = newCampaignData['firstname'] + ' ' + newCampaignData['lastname'];\n\n\t\t\t\t\t\t$scope.advertiser.model.processing = true;\n\t\t\t\t\t\tcampaigndata.set(newCampaignData).then(function (resp) {\n\t\t\t\t\t\t\tconsole.log(resp);\n\t\t\t\t\t\t\t$scope.advertiser.model.processing = false;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t// Defaults for dropdowns and shiz\n\n\t\t\tif (currentVPA) {\n\t\t\t\t$scope.advertiser.model.businessContact.vpa = {\n\t\t\t\t\tname: currentVPA.fullname || '',\n\t\t\t\t\tvalue: currentVPA || ''\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (currentAE) {\n\t\t\t\t$scope.advertiser.model.businessContact.ae = {\n\t\t\t\t\tvalue: currentAE || '',\n\t\t\t\t\tname: currentAE.firstname + ' ' + currentAE.lastname\n\t\t\t\t};\n\t\t\t\t$scope.advertiser.model.businessContact.aeEmail = currentAE.emailaddress;\n\t\t\t\t$scope.advertiser.model.businessContact.aePhone = currentAE.phone;\n\t\t\t}\n\n\t\t\tconsole.log('Current CC', currentCC);\n\t\t\tif (currentCC) {\n\t\t\t\t$scope.advertiser.model.businessContact.cc = {\n\t\t\t\t\tvalue: currentCC || '',\n\t\t\t\t\tname: currentCC.fullname\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (currentBillingCode) {\n\t\t\t\t$scope.advertiser.model.info.billingCode = {\n\t\t\t\t\tvalue: campaign.billingcode || '',\n\t\t\t\t\tname: (currentBillingCode ? currentBillingCode.billingCode + ' - ' + currentBillingCode.name : '')\n\t\t\t\t};\n\t\t\t}\n\n\n\t\t\tvar saveBtn = {\n\t\t\t\ttype: 'card',\n\t\t\t\tinline: true,\n\t\t\t\tnotitle: true,\n\t\t\t\titems: [{\n\t\t\t\t\ttype: 'submit',\n\t\t\t\t\ttitle: 'Save',\n\t\t\t\t\tstyle: 'md-accent md-' + $rootScope.appConfig.theme + '-theme'\n\t\t\t\t}]\n\t\t\t};\n\n\t\t\tvar init = {\n\t\t\t\tform: {}\n\t\t\t};\n\n\t\t\tvar partnerForm = partnerdata.forms.get('advertiser');\n\n\t\t\tpartnerForm.loader().then(function (data) {\n\t\t\t\tinit.form = data;\n\t\t\t\tbuildFormsWithTranslations();\n\t\t\t});\n\n\n\t\t\t/*\n\t\t\t* Get options objects\n\t\t\t*/\n\t\t\tvar billingCodesObj = billingCodeData\n\t\t\tvar billingCodes = clientForms.util.getOptionsArray(billingCodesObj, 'billingCode', function (item) {\n\t\t\t\treturn item.billingCode + ' - ' + item.name;\n\t\t\t});\n\n\t\t\tvar aesObj = clientForms.util.uniqueArray(aeData, 'id');\n\t\t\tvar aes = clientForms.util.getOptionsArray(aesObj, function (item) {\n\t\t\t\treturn item;\n\t\t\t}, function (item) {\n\t\t\t\treturn $filter('ucWords')(item.firstname + ' ' + item.lastname);\n\t\t\t});\n\n\t\t\tvar ccsObj = clientForms.util.uniqueArray(ccData, 'id');\n\t\t\tvar ccs = clientForms.util.getOptionsArray(ccsObj, function (item) {\n\t\t\t\treturn item;\n\t\t\t}, function (item) {\n\t\t\t\treturn $filter('ucWords')(item.fullname);\n\t\t\t});\n\n\t\t\tvar vpasObj = clientForms.util.uniqueArray(vpaData, 'id');\n\t\t\tvar vpas = clientForms.util.getOptionsArray(vpasObj, function (item) {\n\t\t\t\treturn item;\n\t\t\t}, 'fullname');\n\n\t\t\taes.sort(clientForms.util.alphaSort());\n\t\t\tvpas.sort(clientForms.util.alphaSort());\n\t\t\tccs.sort(clientForms.util.alphaSort());\n\n\t\t\tconsole.log(vpas, aes, ccs, billingCodes);\n\n\n\t\t\tfunction aeOnChange(modelValue, form) {\n\t\t\t\tif (modelValue) {\n\t\t\t\t\t$scope.advertiser.model.businessContact.aeEmail = modelValue.value.emailaddress;\n\t\t\t\t\t$scope.advertiser.model.businessContact.aePhone = modelValue.value.phone;\n\t\t\t\t} else {\n\t\t\t\t\t$scope.advertiser.model.businessContact.aeEmail = '';\n\t\t\t\t\t$scope.advertiser.model.businessContact.aePhone = '';\n\t\t\t\t}\n\t\t\t}\n\n\n\t\t\t$rootScope.$on('$translateChangeSuccess', function () {\n\t\t\t\tbuildFormsWithTranslations();\n\t\t\t});\n\n\t\t\tvar partnerCode = partnerdata.get('partnerCode');\n\n\t\t\tfunction buildFormsWithTranslations() {\n\t\t\t\tvar partnerKey = '';\n\t\t\t\tvar testTranslation = 'campaign.advertiser.' + partnerCode + '.ADVERTISER_INFO';\n\t\t\t\tif ($translate.instant(testTranslation) !== testTranslation) { // $translate returns the key if it doesn't exist\n\t\t\t\t\tpartnerKey = partnerCode + '.';\n\t\t\t\t}\n\n\t\t\t\tfunction getTranslation(key, fallbackBase) {\n\t\t\t\t\tvar translationTable = $translations($translate.use());\n\t\t\t\t\tvar testKey = 'campaign.advertiser.' + partnerCode + '.' + key;\n\t\t\t\t\tvar fallbackBaseNormalized = fallbackBase || 'campaign.advertiser';\n\t\t\t\t\tvar fallbackKey = fallbackBaseNormalized.replace(/\\.$/gi, '') + '.' + key;\n\n\t\t\t\t\tvar testResult = $translate.instant(testKey);\n\n\t\t\t\t\tif (testResult === testKey) {\n\t\t\t\t\t\tif ( fallbackBase === false ) {\n\t\t\t\t\t\t\treturn '';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar fallbackTest = $translate.instant(fallbackKey)\n\t\t\t\t\t\tif ( fallbackTest === fallbackKey ) {\n\t\t\t\t\t\t\treturn key.replace( /_/gi, ' ' ).replace( /([A-Z0-9]+)/gi, function( match ) {\n\t\t\t\t\t\t\t\treturn match[0] + match.substr( 1 ).toLowerCase();\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn $translate.instant(fallbackKey);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn testResult;\n\t\t\t\t\t}\n\t\t\t\t\t// return $translate.instant( 'campaign.advertiser.' + partnerCode + '.' + key ) || $translate.instant( 'campaign.advertiser.' + key );\n\t\t\t\t}\n\n\t\t\t\tconsole.log(' TRANS', $translate.useMissingTranslationHandler);\n\n\t\t\t\t// TODO: Move form attributes to 'x-schema-form' to consolidate everything.\n\t\t\t\t$scope.advertiser.schema = {\n\t\t\t\t\treadonly: $rootScope.user.isAuthorized([USER_ROLES.accountExecutive], partnerCode),\n\t\t\t\t\ttype: 'object',\n\t\t\t\t\trequired: [\n\t\t\t\t\t\t'info.businessPhone',\n\t\t\t\t\t\t'businessContact.vpa',\n\t\t\t\t\t\t'businessContact.ae'\n\t\t\t\t\t],\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tinfo: {\n\t\t\t\t\t\t\ttitle: getTranslation('ADVERTISER_INFO'),\n\t\t\t\t\t\t\ttype: 'object',\n\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\tlistingCode: {\n\t\t\t\t\t\t\t\t\ttitle: getTranslation('ORDER_ID'),\n\t\t\t\t\t\t\t\t\ttype: 'string'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\teid: {\n\t\t\t\t\t\t\t\t\ttitle: getTranslation('EID'),\n\t\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\t\treadonly: true\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tadvertiserName: {\n\t\t\t\t\t\t\t\t\ttitle: getTranslation('ADVERTISER_NAME'),\n\t\t\t\t\t\t\t\t\ttype: 'string'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tbusinessPhone: {\n\t\t\t\t\t\t\t\t\ttitle: getTranslation('BUSINESS_PHONE', 'common.contact'),\n\t\t\t\t\t\t\t\t\ttype: 'string'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\twebsite: {\n\t\t\t\t\t\t\t\t\ttitle: getTranslation('WEBSITE', 'common.contact'),\n\t\t\t\t\t\t\t\t\ttype: 'string'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tbillingCode: {\n\t\t\t\t\t\t\t\t\ttitle: getTranslation('BILLING_CODE'),\n\t\t\t\t\t\t\t\t\ttype: 'object',\n\t\t\t\t\t\t\t\t\t'x-schema-form': {\n\t\t\t\t\t\t\t\t\t\t'type': 'autocomplete',\n\t\t\t\t\t\t\t\t\t\t'optionFilter': 'billingCodeOptions',\n\t\t\t\t\t\t\t\t\t\t'minLength': 0\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\taddress: {\n\t\t\t\t\t\t\ttype: 'object',\n\t\t\t\t\t\t\ttitle: getTranslation('ADDRESS_TITLE'),\n\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\taddress: {\n\t\t\t\t\t\t\t\t\ttitle: getTranslation('ADDRESS', 'common.contact'),\n\t\t\t\t\t\t\t\t\ttype: 'string'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\taddress2: {\n\t\t\t\t\t\t\t\t\ttitle: getTranslation('ADDRESS_CONT', 'common.contact'),\n\t\t\t\t\t\t\t\t\ttype: 'string'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tcity: {\n\t\t\t\t\t\t\t\t\ttitle: getTranslation('CITY', 'common.contact'),\n\t\t\t\t\t\t\t\t\ttype: 'string'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tstate: {\n\t\t\t\t\t\t\t\t\ttitle: getTranslation('STATE', 'common.contact'),\n\t\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\t\tenum: ['AL', 'AK', 'AS', 'AZ', 'AR', 'CA', 'CO', 'CT', 'DE', 'DC', 'FM', 'FL', 'GA', 'GU', 'HI', 'ID', 'IL', 'IN', 'IA', 'KS', 'KY', 'LA', 'ME', 'MH', 'MD', 'MA', 'MI', 'MN', 'MS', 'MO', 'MT', 'NE', 'NV', 'NH', 'NJ', 'NM', 'NY', 'NC', 'ND', 'MP', 'OH', 'OK', 'OR', 'PW', 'PA', 'PR', 'RI', 'SC', 'SD', 'TN', 'TX', 'UT', 'VT', 'VI', 'VA', 'WA', 'WV', 'WI', 'WY'],\n\t\t\t\t\t\t\t\t\t'x-schema-form': {\n\t\t\t\t\t\t\t\t\t\t'htmlClass': 'flex-20'\n\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tstateAU: {\n\t\t\t\t\t\t\t\t\ttitle: getTranslation('STATE', 'common.contact'),\n\t\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\t\tenum: ['ACI', 'AAT', 'ACT', 'CI', 'KI', 'CSI', 'HIMI', 'JB', 'NSW', 'NI', 'NT', 'QLD', 'SA', 'TAS', 'VIC', 'WA'],\n\t\t\t\t\t\t\t\t\t'x-schema-form': {\n\t\t\t\t\t\t\t\t\t\t'htmlClass': 'flex-20'\n\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tzip: {\n\t\t\t\t\t\t\t\t\ttitle: getTranslation('ZIPCODE', 'common.contact'),\n\t\t\t\t\t\t\t\t\ttype: 'string'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tadvertiserContact: {\n\t\t\t\t\t\t\ttype: 'object',\n\t\t\t\t\t\t\ttitle: getTranslation('ADVERTISER_CONTACT'),\n\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\tfirstName: {\n\t\t\t\t\t\t\t\t\ttitle: getTranslation('FIRST_NAME', 'common.user'),\n\t\t\t\t\t\t\t\t\ttype: 'string'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tlastName: {\n\t\t\t\t\t\t\t\t\ttitle: getTranslation('LAST_NAME', 'common.user'),\n\t\t\t\t\t\t\t\t\ttype: 'string'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tphone: {\n\t\t\t\t\t\t\t\t\ttitle: getTranslation('PHONE', 'common.contact'),\n\t\t\t\t\t\t\t\t\ttype: 'string'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\temail: {\n\t\t\t\t\t\t\t\t\ttitle: getTranslation('EMAIL_ADDRESS', 'common.contact'),\n\t\t\t\t\t\t\t\t\ttype: 'string'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbusinessContact: {\n\t\t\t\t\t\t\ttype: 'object',\n\t\t\t\t\t\t\ttitle: getTranslation('COMPANY_CONTACT'),\n\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\tsalesRepName: {\n\t\t\t\t\t\t\t\t\ttitle: getTranslation('SALES_REP', false) + ' ' + getTranslation('FULL_NAME', 'common.user'),\n\t\t\t\t\t\t\t\t\ttype: 'string'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tsalesRepEmail: {\n\t\t\t\t\t\t\t\t\ttitle: getTranslation('SALES_REP', false) + ' ' + getTranslation('EMAIL_ADDRESS', 'common.contact'),\n\t\t\t\t\t\t\t\t\ttype: 'string'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tsalesRepPhone: {\n\t\t\t\t\t\t\t\t\ttitle: getTranslation('SALES_REP', false) + ' ' + getTranslation('PHONE', 'common.contact'),\n\t\t\t\t\t\t\t\t\ttype: 'string'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tsalesRep2Name: {\n\t\t\t\t\t\t\t\t\ttitle: getTranslation('SALES_REP', false) + ' ' + getTranslation('FULL_NAME', 'common.user'),\n\t\t\t\t\t\t\t\t\ttype: 'string'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tsalesRep2Email: {\n\t\t\t\t\t\t\t\t\ttitle: getTranslation('SALES_REP', false) + ' ' + getTranslation('EMAIL_ADDRESS', 'common.contact'),\n\t\t\t\t\t\t\t\t\ttype: 'string'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tsalesRep2Phone: {\n\t\t\t\t\t\t\t\t\ttitle: getTranslation('SALES_REP', false) + ' ' + getTranslation('PHONE', 'common.contact'),\n\t\t\t\t\t\t\t\t\ttype: 'string'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tae: {\n\t\t\t\t\t\t\t\t\ttitle: getTranslation('AE'),\n\t\t\t\t\t\t\t\t\ttype: 'object',\n\t\t\t\t\t\t\t\t\trequireMatch: true,\n\t\t\t\t\t\t\t\t\t'x-schema-form': {\n\t\t\t\t\t\t\t\t\t\t'type': 'autocomplete',\n\t\t\t\t\t\t\t\t\t\t'optionFilter': 'aeOptions',\n\t\t\t\t\t\t\t\t\t\t'minLength': 0\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tcc: {\n\t\t\t\t\t\t\t\t\ttitle: getTranslation('CC'),\n\t\t\t\t\t\t\t\t\ttype: 'object',\n\t\t\t\t\t\t\t\t\trequireMatch: true,\n\t\t\t\t\t\t\t\t\t'x-schema-form': {\n\t\t\t\t\t\t\t\t\t\t'type': 'autocomplete',\n\t\t\t\t\t\t\t\t\t\t'optionFilter': 'ccOptions',\n\t\t\t\t\t\t\t\t\t\t'minLength': 0\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\taeEmail: {\n\t\t\t\t\t\t\t\t\ttitle: getTranslation('AE_EMAIL'),\n\t\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\t\treadonly: true\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\taePhone: {\n\t\t\t\t\t\t\t\t\ttitle: getTranslation('AE_PHONE'),\n\t\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\t\treadonly: true\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tvpa: {\n\t\t\t\t\t\t\t\t\ttitle: getTranslation('VPA'),\n\t\t\t\t\t\t\t\t\ttype: 'object',\n\t\t\t\t\t\t\t\t\trequireMatch: true,\n\t\t\t\t\t\t\t\t\t'x-schema-form': {\n\t\t\t\t\t\t\t\t\t\t'type': 'autocomplete',\n\t\t\t\t\t\t\t\t\t\t'optionFilter': 'vpaOptions',\n\t\t\t\t\t\t\t\t\t\t'minLength': 0\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tsaveBtn.title = getTranslation('SAVE', 'common.actions');\n\n\t\t\t\tvar tempForm = {};\n\t\t\t\tangular.copy(init.form, tempForm);\n\n\t\t\t\tif (!$scope.advertiser.schema.readonly) {\n\t\t\t\t\tvar keys = Object.keys(tempForm);\n\t\t\t\t\ttempForm[keys[keys.length - 1]].push(saveBtn);\n\n\t\t\t\t}\n\t\t\t\t$scope.advertiser.form = tempForm;\n\n\t\t\t}\n\n\n\t\t\t$scope.billingCodeOptions = clientForms.util.createOptionsFilterFunction(billingCodes, true);\n\t\t\t$scope.vpaOptions = clientForms.util.createOptionsFilterFunction(vpas);\n\t\t\t$scope.aeOptions = clientForms.util.createOptionsFilterFunction(aes);\n\t\t\t$scope.ccOptions = clientForms.util.createOptionsFilterFunction(ccs);\n\t\t\t$scope.aeOnChange = aeOnChange;\n\n\n\t\t}])\n\t;\n\n})(window, window.angular);\n","(function(window, angular, undefined) {\n\t'use strict';\n\tvar isOpen;\n\tangular.module('app.controllers.usersController',[])\n\t\t.config([ '$stateProvider', 'USER_ROLES', function( $stateProvider, USER_ROLES ) {\n\t\t\t$stateProvider\n\t\t\t\t// THIS HAS BEEN MOVED TO ADMINISTRATION\n\t\t\t\t// ----------------------------------------\n\t\t\t\t// .state('app.administration.users', {\n\t\t\t\t// \turl: '/users',\n\t\t\t\t// \ttemplateUrl: '/templates/administration/users/users.tpl.html',\n\t\t\t\t// \tcontroller: 'usersController',\n\t\t\t\t//\n\t\t\t\t// })\n\t\t\t\t// ----------------------------------------\n\t\t\t\t.state('app.administration.users.edit', {\n\t\t\t\t\turl: '/edit/{userId:int}',\n\t\t\t\t\tcontroller: 'editUserController',\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tvlsUser: null\n\t\t\t\t\t},\n\t\t\t\t\tresolve: {\n\t\t\t\t\t\tuser: ['security.api', '$stateParams', function( securityApi, $stateParams ) {\n\t\t\t\t\t\t\tif ( !$stateParams.userId ) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconsole.log( 'GET USER', $stateParams.userId );\n\t\t\t\t\t\t\treturn securityApi.getUser( $stateParams.userId ).then( function( user ) {\n\t\t\t\t\t\t\t\tconsole.log( \"GOT USER\", user );\n\t\t\t\t\t\t\t\treturn user.data;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} ]\n\t\t\t\t\t},\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tdisplayLoader: false\n\t\t\t\t\t},\n\t\t\t\t\treloadOnSearch: false,\n\t\t\t\t\tonEnter: [ '$rootScope', '$mdDialog', '$state', '$timeout', 'user', function( $rootScope, $mdDialog, $state, $timeout, user ) {\n\t\t\t\t\t\tif ( isOpen ) { return; }\n\t\t\t\t\t\tisOpen = true;\n\t\t\t\t\t\tvar closeByExit = false;\n\t\t\t\t\t\t$mdDialog.show({\n\t\t\t\t\t\t\ttemplateUrl: '/templates/administration/users/edit/edit.tpl.html',\n\t\t\t\t\t\t\t//template: '',\n\t\t\t\t\t\t\thasBackdrop: true,\n\t\t\t\t\t\t\tcontroller: 'editUserController',\n\t\t\t\t\t\t\tlocals: {\n\t\t\t\t\t\t\t\tuser: user,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tmultiple: true\n\t\t\t\t\t\t}).then( function( data ) {\n\t\t\t\t\t\t\tconsole.log( 'state change success');\n\t\t\t\t\t\t\tif ( data ) {\n\t\t\t\t\t\t\t\t//$rootScope.$emit('app.advertising:new', data );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, function( data ) {\n\t\t\t\t\t\t\tconsole.log( 'state change reject');\n\t\t\t\t\t\t\tconsole.trace( 'state change reject trace');\n\t\t\t\t\t\t\tif ( data && data.closeByExit ) {\n\t\t\t\t\t\t\t\tcloseByExit = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} ).finally( function( data ) {\n\t\t\t\t\t\t\tconsole.log( 'state change finally');\n\t\t\t\t\t\t\tisOpen = false;\n\t\t\t\t\t\t\tif ( !closeByExit ) {\n\t\t\t\t\t\t\t\t $timeout($state.go('^'));\n\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} ],\n\t\t\t\t\tonExit: [ '$mdDialog', function( $mdDialog ) {\n\t\t\t\t\t\t$mdDialog.cancel( { closeByExit: true } );\n\t\t\t\t\t} ]\n\t\t\t\t})\n\t\t\t\t.state('app.administration.users.new', {\n\t\t\t\t\turl: '/new',\n\t\t\t\t\tparams: { user: null, users: null },\n\t\t\t\t\tcontroller: 'editUserController',\n\t\t\t\t\tresolve: {\n\t\t\t\t\t\tuser: function() { return 'new'; }\n\t\t\t\t\t},\n\t\t\t\t\tonEnter: [ '$rootScope', '$mdDialog', '$state', '$timeout', 'user', function( $rootScope, $mdDialog, $state, $timeout, user ) {\n\t\t\t\t\t\tvar closeByExit = false;\n\t\t\t\t\t\t$mdDialog.show({\n\t\t\t\t\t\t\ttemplateUrl: '/templates/administration/users/edit/edit.tpl.html',\n\t\t\t\t\t\t\t//template: '',\n\t\t\t\t\t\t\thasBackdrop: true,\n\t\t\t\t\t\t\tcontroller: 'editUserController',\n\t\t\t\t\t\t\tlocals: {\n\t\t\t\t\t\t\t\tnewUser: true,\n\t\t\t\t\t\t\t\tuser: user\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then( function( data ) {\n\t\t\t\t\t\t\tif ( data ) {\n\t\t\t\t\t\t\t\t//$rootScope.$emit('app.advertising:new', data );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, function( data ) {\n\t\t\t\t\t\t\tif ( data && data.closeByExit ) {\n\t\t\t\t\t\t\t\tcloseByExit = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} ).finally( function( data ) {\n\t\t\t\t\t\t\tif ( !closeByExit ) {\n\t\t\t\t\t\t\t\t$timeout($state.go('^'));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} ],\n\t\t\t\t\tonExit: [ '$mdDialog', function( $mdDialog ) {\n\t\t\t\t\t\t$mdDialog.cancel( { closeByExit: true } );\n\t\t\t\t\t} ]\n\t\t\t\t});\n\t\t} ])\n\t\t.controller('usersController', [ '$scope', '$q', '$state', '$filter', '$timeout', '$mdDialog', 'vls.api', 'vls.search.api', 'NgTableParams', function( $scope, $q, $state, $filter, $timeout, $mdDialog, vlsApi, searchApi, NgTableParams ) {\n\t\t\tconsole.log( \"USER CONTROLLER START\" );\n\t\t\t$scope.search = {\n\t\t\t\tisLoginUsers: true,\n\t\t\t\tisLocked: false\n\t\t\t};\n\t\t\tvar pageCounts = [ 25,50,100 ];\n\n\n\t\t\t$scope.states = ('AL AK AZ AR CA CO CT DE FL GA HI ID IL IN IA KS KY LA ME MD MA MI MN MS MO MT NE NV NH NJ NM NY NC ND OH OK OR PA RI SC SD TN TX UT VT VA WA WV WI WY').split(' ').map(function (state) { return { abbrev: state }; });\n\n\t\t\t$scope.actions = {\n\n\t\t\t\tlockUser: function( e, user ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\te.stopImmediatePropagation();\n\t\t\t\t\tconsole.log( user );\n\n\t\t\t\t\tvlsApi.lockUser( { id: user.userId, action: user.isLocked ? 'unlock' : 'lock' } ).then( function() {\n\t\t\t\t\t\t$scope.tableParams.reload();\n\t\t\t\t\t});\n\n\t\t\t\t},\n\t\t\t\tdeleteUser: function( e, user ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\te.stopImmediatePropagation();\n\n\t\t\t\t\tvar confirmModal =$mdDialog.confirm({\n\t\t\t\t\t\ttitle: 'Confirm Deletion',\n\t\t\t\t\t\ttextContent: 'Delete user \"' + user.firstname + ' ' + user.lastname + '\"',\n\t\t\t\t\t\tok: 'Yes',\n\t\t\t\t\t\tcancel: 'No'\n\t\t\t\t\t});\n\n\n\t\t\t\t\t$mdDialog.show(confirmModal).then(\n\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\tconsole.log('DELETE ' + user.firstname + ' ' + user.lastname);\n\t\t\t\t\t\t\tvlsApi.deactivateUser( { id: user.id } ).then( function() {\n\t\t\t\t\t\t\t\tconsole.log('Deletion Complete');\n\t\t\t\t\t\t\t\t$timeout( function() {\n\t\t\t\t\t\t\t\t\tconsole.log('tableParams Refresh Table');\n\t\t\t\t\t\t\t\t\t$scope.tableParams.reload();\n\t\t\t\t\t\t\t\t}, 0, true );\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\tconsole.log('DON\\'T DELETE ' + user.firstname + ' ' + user.lastname);\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tclearFilter: function() {\n\t\t\t\t\t$scope.search = {\n\t\t\t\t\t\tisLoginUsers: true,\n\t\t\t\t\t\tisLocked: false\n\t\t\t\t\t};\n\n\t\t\t\t\t$scope.tableParams.reload();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t$scope.$watch( 'search.name', function( newVal, oldVal ) {\n\t\t\t\tif ( newVal !== oldVal ) {\n\t\t\t\t\tconsole.log( \"tableParams RELOAD\" );\n\t\t\t\t\t$scope.tableParams.reload();\n\t\t\t\t}\n\t\t\t});\n\t\t\tconsole.log( 'tableParams', $state.params.p && parseInt( $state.params.p ) ? parseInt( $state.params.p ) : 1 );\n\t\t\tvar buffer;\n\t\t\tvar prevData = [];\n\t\t\t$scope.tableParams = new NgTableParams({\n\t\t\t\tpage: $state.params.p && parseInt( $state.params.p ) ? parseInt( $state.params.p ) : 1, // show first page\n\t\t\t\tcount: pageCounts[0], // count per pages\n\t\t\t\tsorting: {\n\t\t\t\t\tlastname: 'asc' // initial sorting\n\t\t\t\t},\n\t\t\t\tdebugMode: true\n\t\t\t}, {\n\t\t\t\ttotal: 0, // length of data\n\t\t\t\tgetData: function( params ) {\n\t\t\t\t\tconsole.log( 'tableParams GET DATA: ', buffer );\n\t\t\t\t\t// console.trace( 'tableParams ');\n\t\t\t\t\tvar loadDefer = $q.defer();\n\t\t\t\t\tvar prevCall;\n\t\t\t\t\tif ( buffer ) {\n\t\t\t\t\t\tbuffer.resolve( prevData );\n\t\t\t\t\t\tbuffer = undefined;\n\t\t\t\t\t}\n\t\t\t\t\tgetPage();\n\t\t\t\t\tbuffer = loadDefer;\n\n\t\t\t\t\tfunction getPage() {\n\t\t\t\t\t\tvar sorting = params.sorting();\n\t\t\t\t\t\tvar column = Object.keys( sorting )[ 0 ];\n\t\t\t\t\t\tvar options = Object.assign( {}, {\n\t\t\t\t\t\t\tisLoginUsers: true\n\t\t\t\t\t\t}, $scope.search );\n\n\t\t\t\t\t\tif ( options.firstname ) {\n\t\t\t\t\t\t\toptions.firstname = '~' + options.firstname;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( options.lastname ) {\n\t\t\t\t\t\t\toptions.lastname = '~' + options.lastname;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( options.businessphone ) {\n\t\t\t\t\t\t\toptions.businessphone = '~' + options.businessphone;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( options.email ) {\n\t\t\t\t\t\t\toptions.email = '~' + options.email;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( options.city ) {\n\t\t\t\t\t\t\toptions.city = '~' + options.city;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( options.name ) {\n\t\t\t\t\t\t\tvar nameSplit = options.name.split( ' ' );\n\t\t\t\t\t\t\tif ( nameSplit.length > 1 ) {\n\t\t\t\t\t\t\t\toptions.firstname = '~' + nameSplit[ 0 ];\n\t\t\t\t\t\t\t\toptions.lastname = '~' + nameSplit[ 1 ];\n\t\t\t\t\t\t\t\toptions.name = undefined;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar page = params.page();\n\t\t\t\t\t\tconsole.log( \"tableParams GET DATA: inner \", $state.params.p, page )\n\n\t\t\t\t\t\toptions._headers = {\n\t\t\t\t\t\t\tpagination: page + ',' + params.count()\n\t\t\t\t\t\t};\n\t\t\t\t\t\tif ( $state.params.p !== page ) {\n\t\t\t\t\t\t\t$state.transitionTo( $state.current.name, { p: page }, {\n\t\t\t\t\t\t\t\tnotify: false,\n\t\t\t\t\t\t\t\treload: false,\n\t\t\t\t\t\t\t\tlocation: 'replace'\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( column ) {\n\t\t\t\t\t\t\toptions.sort = column + ' ' + sorting[ column ].toUpperCase();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar call = searchApi.users( options )\n\t\t\t\t\t\t\t.then( function ( result ) {\n\t\t\t\t\t\t\t\tvar pagination = result.headers().pagination;\n\n\t\t\t\t\t\t\t\tif ( pagination ) {\n\t\t\t\t\t\t\t\t\tpagination = JSON.parse( pagination );\n\t\t\t\t\t\t\t\t\t$scope.tableParams.total( pagination.TotalItems );\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tprevData = result.data;\n\t\t\t\t\t\t\t\tloadDefer.resolve( result.data );\n\t\t\t\t\t\t\t\tbuffer = undefined;\n\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\n\t\t\t\t\treturn loadDefer.promise;\n\t\t\t\t},\n\t\t\t\tcounts: pageCounts\n\t\t\t});\n\n\t\t\tif ( $state.params.p !== undefined ) {\n\t\t\t\tconsole.log( 'tableParams PAGE ', $state.params.p, parseInt( $state.params.p ) );\n\n\t\t\t\tvar page = $state.params.p && parseInt( $state.params.p ) ? parseInt( $state.params.p ) : 1;\n\t\t\t\tif ( $state.params.p && isNaN( $state.params.p ) ) {\n\t\t\t\t\tconsole.log( \"tableParams TRANSITION\" );\n\t\t\t\t\t$state.transitionTo($state.current.name, { p: page }, {notify: false, reload: false, location: 'replace'});\n\t\t\t\t}\n\t\t\t\tif ( page > 1 ) {\n\t\t\t\t\t// $scope.tableParams.page( page );\n\t\t\t\t}\n\t\t\t}\n\n\n\n\t\t} ]);\n\n})(window, window.angular);\n","(function(window, angular, undefined) {\n\t'use strict';\n\n\n\n\tangular.module( 'app.controllers.administration.partnersController', [\n\t\t'app.controllers.administration.partners.billingCodesController',\n\t\t'app.controllers.administration.partners.emailTemplates',\n\t\t'app.controllers.administration.partners.batchActions'\n\t] )\n\n\t\t.controller( 'administrationPartnersController', [ '$scope', '$stateParams', '$appSidebar', 'vls.partner', 'partnerData', function ( $scope, $stateParams, $appSidebar, VLSPartner, partnerData ) {\n\t\t\tvar ctrl = this;\n\t\t\tif ( $stateParams.partnerId ) {\n\t\t\t\tvar partnerObj = partnerData;\n\t\t\t\tctrl.partner = partnerObj.get();\n\t\t\t}\n\t\t\t// new VLSPartner( { id: $stateParams.partnerId } ).then( function( res ) {\n\t\t\t// \tconsole.log(\"LOADED PARTNER\", res);\n\t\t\t// \tpartnerObj = res;\n\t\t\t// \tctrl.partner = res.get();\n\t\t\t// } );\n\n\n\n\n\n\n\t\t\tvar rightNav = [{\n\t\t\t\ttext: 'Billing Codes',\n\t\t\t\ticon: 'account_balance',\n\t\t\t\tstate: 'app.administration.partners.billingCodes',\n\t\t\t\titems: []\n\t\t\t},/*{\n\t\t\t\ttext: 'Forms',\n\t\t\t\ticon: 'assignment',\n\t\t\t\tstate: false,\n\t\t\t\titems: []\n\t\t\t},*/{\n\t\t\t\ttext: 'Email Templates',\n\t\t\t\ticon: 'email',\n\t\t\t\tstate: 'app.administration.partners.emailTemplates',\n\t\t\t\titems: []\n\t\t\t},{\n\t\t\t\ttext: 'Products',\n\t\t\t\ticon: 'local_offer',\n\t\t\t\tstate: false,\n\t\t\t\titems: []\n\t\t\t},{\n\t\t\t\ttext: 'Batch Actions',\n\t\t\t\ticon: 'batch_prediction',\n\t\t\t\tstate: 'app.administration.partners.batchActions',\n\t\t\t\titems: []\n\t\t\t}];\n\n\t\t\tvar rightNavBar = $appSidebar.add('right', 'nav', rightNav );\n\n\t\t\tfunction cleanSidebars() {\n\t\t\t\trightNavBar.remove();\n\t\t\t}\n\n\n\t\t\t$scope.$on('$destroy',cleanSidebars);\n\t\t} ] )\n\n\t;\n\n})( window, angular );\n","(function (window, angular, undefined) {\n\t'use strict';\n\n\tvar partnerList;\n\tvar partnerListPromise;\n\tvar productTypes = {};\n\tvar partners = [];\n\tvar productTypePromises = [];\n\n\tfunction getPartnerList($q, vlsApi) {\n\t\tpartnerListPromise = $q.defer();\n\t\tpartnerList = partnerListPromise.promise;\n\t\tvlsApi.getPartners()\n\t\t\t.then(function (data) {\n\t\t\t\tif (data.data.errorcode) {\n\t\t\t\t\tpartnerListPromise.reject();\n\t\t\t\t\tpartnerList = undefined;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tpartners = data.data;\n\t\t\t\tangular.forEach(partners, function (val, i) {\n\t\t\t\t\tif (i.indexOf('XX') !== -1) {\n\t\t\t\t\t\tdelete partners[i];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t// console.log( '[PARTNERS] List: ', partners );\n\n\t\t\t\t// angular.forEach( partners, function( partner ) {\n\t\t\t\t// \t// console.log( 'PARTNER PRODUCT TYPES', partner );\n\t\t\t\t//\n\t\t\t\t// \tproductTypePromises.push( vlsApi.getPartnerProductTypes( partner.code ).then( function( response ) {\n\t\t\t\t// \t\t// console.log( 'PARTNER PRODUCT TYPES', response.data );\n\t\t\t\t// \t\tpartner.productTypes = response.data.partnerproducttypes;\n\t\t\t\t// \t\t// partners.push( partner );\n\t\t\t\t// \t\treturn partner.productTypes;\n\t\t\t\t// \t}) );\n\t\t\t\t// });\n\n\t\t\t\t// $q.all( productTypePromises ).then( function() {\n\t\t\t\t// \tconsole.log( \"GOT EM ALL\" );\n\t\t\t\t// console.trace();\n\t\t\t\tpartnerListPromise.resolve(partners);\n\t\t\t\t// });\n\n\t\t\t\t// partnerListPromise.resolve( partners );\n\t\t\t\treturn partners;\n\t\t\t});\n\t\treturn partnerList;\n\t}\n\n\tangular.module('vls.partners', ['vls.partners.api'])\n\t\t.service('vls.partners', ['$q', 'vls.api', 'vls.search.api', 'vls.partners.api', function ($q, vlsApi, vlsSearch, vlsPartnersApi ) {\n\n\t\t\tvar service = this;\n\t\t\tvar _cache = {};\n\t\t\tvar _callCache = {};\n\t\t\tvar partnerList;\n\n\t\t\tfunction findPartner(key, value) {\n\t\t\t\treturn function (partner) {\n\t\t\t\t\tvar tmpVal = typeof partner[key] === 'string' ? partner[key].replace(/ /g, '').toLowerCase() : partner[key];\n\t\t\t\t\treturn tmpVal === value;\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tfunction getPartner(key, value) {\n\t\t\t\t// remove spaces and lowercase for consistency sake.\n\t\t\t\tvalue = typeof value === 'string' ? value.replace(/ /g, '').toLowerCase() : value;\n\n\t\t\t\t// Check cache first\n\t\t\t\tvar foundPartner;\n\t\t\t\tfoundPartner = Object.values(_cache).find(findPartner(key, value));\n\t\t\t\tif (foundPartner) {\n\t\t\t\t\treturn $q.resolve(foundPartner);\n\t\t\t\t}\n\n\t\t\t\t// If we're still in here, we didn't find the partner in the cache.\n\t\t\t\t// Fetch partner data from server.\n\t\t\t\tvar defer = $q.defer();\n\t\t\t\tservice.get().then( function() {\n\t\t\t\t\t// First check if the user has access to the partner.\n\t\t\t\t\tvar partner = partnerList.find(findPartner(key, value));\n\n\t\t\t\t\t// User has access to the partner.\n\t\t\t\t\tif (partner) {\n\t\t\t\t\t\t// loadPartnerExtras(partner).then(function (partnerResult) {\n\t\t\t\t\t\t// \t_cache[partnerResult.id] = partnerResult;\n\t\t\t\t\t\t\tdefer.resolve(partner);\n\t\t\t\t\t\t// });\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// User doesn't have access to the partner.\n\t\t\t\t\t\tdefer.reject('Partner Not Found');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn defer.promise;\n\n\t\t\t}\n\n\t\t\tfunction loadPartnerExtras(partner) {\n\n\t\t\t\tvar defer = $q.defer();\n\n\t\t\t\tvar productsCall = service.getPartnerProductTypes(partner.partnerCode);\n\t\t\t\tvar clientsCall = service.getClientsForPartner(partner.id);\n\n\t\t\t\t$q.all({products: productsCall, clients: clientsCall}).then(function (results) {\n\n\t\t\t\t\tpartner.productTypes = results.products;\n\t\t\t\t\tpartner.clients = results.clients;\n\t\t\t\t\tconsole.log('Partner Extra', results);\n\t\t\t\t\tdefer.resolve(partner);\n\t\t\t\t});\n\n\t\t\t\treturn defer.promise;\n\t\t\t}\n\n\n\t\t\tthis.getById = function (id) {\n\t\t\t\treturn getPartner('id', id);\n\t\t\t};\n\n\t\t\tthis.getByCode = function (code) {\n\t\t\t\treturn getPartner('partnerCode', code);\n\t\t\t};\n\n\t\t\tthis.getByName = function (name) {\n\t\t\t\treturn getPartner('name', name);\n\n\t\t\t};\n\n\t\t\t// this.getPartnerProductTypes = function (code) {\n\t\t\t// \treturn vlsApi.getPartnerProductTypes(code).then(function (response) {\n\t\t\t// \t\treturn response.data.partnerproducttypes;\n\t\t\t// \t});\n\t\t\t// }\n\n\t\t\tthis.getClientsForPartner = function (id) {\n\t\t\t\treturn vlsSearch.clients(id).then(function (clientData) {\n\t\t\t\t\tconsole.log('GOT CLIENTS', clientData);\n\t\t\t\t\treturn clientData.data;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.getAllClients = function () {\n\t\t\t\treturn this.get().then(function (partners) {\n\t\t\t\t\treturn partners.reduce(function (prev, partner) {\n\t\t\t\t\t\tvar partnerClients = partner.clients.map(function (client) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tid: client.id,\n\t\t\t\t\t\t\t\tdisplayName: partner.partnerCode + ' - ' + client.name,\n\t\t\t\t\t\t\t\tpartnerId: partner.id,\n\t\t\t\t\t\t\t\tname: client.name\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t});\n\t\t\t\t\t\tconsole.log('reducing', partnerClients);\n\t\t\t\t\t\treturn prev.concat(partnerClients);\n\t\t\t\t\t}, []);\n\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tthis.get = function () {\n\n\t\t\t// \tif ( !_callCache.allPartners ) {\n\t\t\t// \t\tconsole.log( \"SETTING CALL CACHE\" );\n\t\t\t// \t\t_callCache.allPartners = $q.defer();\n\t\t\t//\n\t\t\t// \t\tvlsUser.isLoaded().then(angular.bind(this, function () {\n\t\t\t// \t\t\tvar partnerList = vlsUser.getUserPartners();\n\t\t\t// \t\t\tconsole.log('GET PARTNERS start', partnerList);\n\t\t\t//\n\t\t\t// \t\t\tvlsApi.getPartners().then(angular.bind(this, function (response) {\n\t\t\t// \t\t\t\tvar partnerLoad = [];\n\t\t\t// \t\t\t\tvar vlsPartners = response.data;\n\t\t\t//\n\t\t\t// \t\t\t\tangular.forEach(partnerList, angular.bind(this, function (partner) {\n\t\t\t// \t\t\t\t\tconsole.log('GET PARTNERS', partner, vlsPartners);\n\t\t\t// \t\t\t\t\tvar partnerCall;\n\t\t\t// \t\t\t\t\tif (_cache[partner.id]) {\n\t\t\t// \t\t\t\t\t\tpartnerCall = $q.resolve(_cache[partner.id]);\n\t\t\t// \t\t\t\t\t} else {\n\t\t\t// \t\t\t\t\t\tpartner.clients = vlsPartners[partner.partnerCode].clients;\n\t\t\t// \t\t\t\t\t\tpartnerCall = this.getPartnerProductTypes(partner.partnerCode).then(function (products) {\n\t\t\t// \t\t\t\t\t\t\tpartner.productTypes = products;\n\t\t\t// \t\t\t\t\t\t\treturn partner;\n\t\t\t// \t\t\t\t\t\t});\n\t\t\t//\n\t\t\t// \t\t\t\t\t}\n\t\t\t// \t\t\t\t\tpartnerLoad.push(partnerCall);\n\t\t\t// \t\t\t\t}));\n\t\t\t//\n\t\t\t// \t\t\t\t$q.all(partnerLoad).then(function (partners) {\n\t\t\t// \t\t\t\t\tconsole.log(\"GET PARTNERS end\", partners);\n\t\t\t// \t\t\t\t\t_cache = partners.reduce(function (prev, partner) {\n\t\t\t// \t\t\t\t\t\tprev[partner.id] = partner;\n\t\t\t// \t\t\t\t\t\treturn prev;\n\t\t\t// \t\t\t\t\t}, {});\n\t\t\t// \t\t\t\t\tconsole.log(\"GET PARTNERS end\", _callCache );\n\t\t\t//\n\t\t\t// \t\t\t\t\t_callCache.allPartners.resolve(partners);\n\t\t\t// \t\t\t\t});\n\t\t\t// \t\t\t}));\n\t\t\t// \t\t}));\n\t\t\t// \t}\n\t\t\t// \tconsole.log( 'PARTNERS CALL PROMISE', _callCache.allPartners );\n\t\t\t// \treturn _callCache.allPartners.promise;\n\n\t\t\t\tif ( !_callCache.allPartners ) {\n\t\t\t\t\t_callCache.allPartners = $q.defer();\n\n\t\t\t\t\tvlsPartnersApi.getPartners( true, true ).then(function (data) {\n\t\t\t\t\t\tpartnerList = data.data;\n\t\t\t\t\t\tpartnerList.forEach( function( val, key ) {\n\t\t\t\t\t\t\tval.productTypes = val.partnerProductType;\n\t\t\t\t\t\t\tval.clients = val.client;\n\t\t\t\t\t\t})\n\t\t\t\t\t\t_callCache.allPartners.resolve(partnerList);\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\treturn _callCache.allPartners.promise;\n\t\t\t};\n\n\n\n\t\t}]);\n\n\n})(window, window.angular);\n","(function( window, angular, undefined ) {\n\n\t'use strict';\n\t/**\n\t * Library for loading and interacting with\n\t * @ngdoc module\n\t * @module vls.partner\n\t * @memberof vls\n\t */\n\tangular.module('vls.partner',['app.clientForms', 'vls.aes'])\n\t\t.factory('vls.partner',[ '$q', '$log', 'vls.api', 'vls.aes', 'vls.vpaList', 'vls.ccs', 'vls.partners.billingCodes', 'vls.partners', 'clientForms', function( $q, $log, vlsApi, vlsAES, vlsVPAList, vlsCCS, vlsBillingCodes, vlsPartners, clientForms ) {\n\n\t\t\tvar availablePartners;\n\n\t\t\t/**\n\t\t\t * Library for loading and interacting with\n\t\t\t * @ngdoc factory\n\t\t\t * @class vls.partner\n\t\t\t *\n\t\t\t * @param {string} name The partner name.\n\t\t\t * @param {string} client Specific client.\n\t\t\t * @return {object} Returns itself.\n\t\t\t */\n\t\t\tfunction Partner( name, client ) {\n\n\t\t\t\tthis.forms._parent = this;\n\t\t\t\t/**\n\t\t\t\t * Currently requested partner's name\n\t\t\t\t * @private\n\t\t\t\t */\n\t\t\t\tif ( angular.isObject( name ) ) {\n\t\t\t\t\tif ( name.code ) {\n\t\t\t\t\t\tthis._partnerCode = name.code;\n\t\t\t\t\t} else if ( name.name ) {\n\t\t\t\t\t\tthis._partnerName = name.name;\n\t\t\t\t\t} else if ( name.id ) {\n\t\t\t\t\t\tthis._partnerId = name.id;\n\t\t\t\t\t}\n\t\t\t\t} else if ( typeof name === 'number' ) {\n\t\t\t\t\tthis._partnerId = name;\n\t\t\t\t} else {\n\t\t\t\t\tthis._partnerName = name;\n\t\t\t\t}\n\n\t\t\t\tthis._clientId = client;\n\n\t\t\t\t/**\n\t\t\t\t * $q.defer() to signal partner and associated data is loaded\n\t\t\t\t * @private\n\t\t\t\t */\n\t\t\t\tthis._defer = $q.defer();\n\n\n\t\t\t\tthis._aeList = [];\n\n\t\t\t\tthis._vpaList = [];\n\t\t\t\tthis._ccList = [];\n\n\t\t\t\tthis._productTypes = [];\n\n\t\t\t\t// this._billingCodes = [];\n\n\t\t\t\tthis.billingCodes = vlsBillingCodes;\n\n\n\n\n\t\t\t\t// Init\n\t\t\t\t//////////////////////////////\n\n\n\t\t\t\tthis._apiCounters = {\n\t\t\t\t\t/**\n\t\t\t\t\t * Total currently active API calls.\n\t\t\t\t\t * @private\n\t\t\t\t\t */\n\t\t\t\t\ttotalApiCalls: 0,\n\n\t\t\t\t\t/**\n\t\t\t\t\t * Total amount of retries if a call fails\n\t\t\t\t\t * @private\n\t\t\t\t\t */\n\t\t\t\t\tmaxApiAttempts: 3,\n\n\t\t\t\t\tpartnersAttempts: 0,\n\t\t\t\t\taeAttempts: 0,\n\t\t\t\t\tproductTypesAttempts: 0,\n\t\t\t\t\tbillingCodesAttempts: 0\n\t\t\t\t};\n\n\n\n\t\t\t\tthis._partnersLoadStart();\n\n\t\t\t\t// The defer is notified on every API call completion and resolves once they are all complete.\n\t\t\t\tthis._defer.promise.then( angular.noop, angular.noop, angular.bind( this, this._parseApiNotification ));\n\n\t\t\t\treturn this._defer.promise;\n\n\t\t\t}\n\n\t\t\tPartner.prototype._parseApiNotification = function( response ) {\n\t\t\t\tthis._apiCounters.totalApiCalls--;\n\n\t\t\t\t$log.log( 'PARTNER API Response Parsing: ', response.type, this._apiCounters.totalApiCalls, response.data );\n\n\t\t\t\tswitch( response.type ) {\n\t\t\t\t\tcase 'partner':\n\t\t\t\t\t\tconsole.log( 'PARTNER DATA', response );\n\t\t\t\t\t\tthis._partnerData = response.data;\n\t\t\t\t\t\tthis._partnerCode = response.data.partnerCode;\n\t\t\t\t\t\tthis._partnerName = response.data.name;\n\t\t\t\t\t\tthis._partnerId = response.data.id;\n\n\t\t\t\t\t\tthis._productTypes = response.data.productTypes;\n\t\t\t\t\t\tif ( !this._clientId ) {\n\t\t\t\t\t\t\tthis._clientId = response.data.clients[0].id;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// this._aeLoadStart();\n\t\t\t\t\t\t// this._ccLoadStart();\n\t\t\t\t\t\t// this._productTypesLoadStart();\n\t\t\t\t\t\t// this._billingCodesLoadStart();\n\t\t\t\t\t\t// if ( this._clientId ) {\n\t\t\t\t\t\t// \tthis._vpaLoadStart();\n\t\t\t\t\t\t// }\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'aeList':\n\t\t\t\t\t\tthis._aeList = response.data.aes;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'vpaList':\n\t\t\t\t\t\tthis._vpaList = response.data;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'ccList':\n\t\t\t\t\t\tthis._ccList = response.data;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'productTypes':\n\t\t\t\t\t\tthis._productTypes = response.data.partnerproducttypes;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'billingCodes':\n\t\t\t\t\t\tconsole.log( 'BILLING CODE DATA', response.data.partnerbillingcodes );\n\n\t\t\t\t\t\tthis._billingCodes = response.data.partnerbillingcodes;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t}\n\n\t\t\t\t// All API calls have been completed, return reference to the Campaign Object.\n\t\t\t\tif ( this._apiCounters.totalApiCalls <= 0 ) {\n\t\t\t\t\tthis._defer.resolve( this );\n\t\t\t\t}\n\t\t\t};\n\n\n\t\t\t// Partners Loading Functions\n\t\t\t//\n\t\t\tPartner.prototype._partnersLoadStart = function() {\n\t\t\t\tthis._apiCounters.totalApiCalls++;\n\t\t\t\tthis._apiCounters.partnersAttempts++;\n\t\t\t\tconsole.log( 'GETTING PARTNER' );\n\t\t\t\tvar req;\n\t\t\t\tif ( this._partnerCode ) {\n\t\t\t\t\tconsole.log( 'GETTING PARTNER BY CODE' );\n\t\t\t\t\treq = vlsPartners.getByCode( this._partnerCode );\n\t\t\t\t} else if ( this._partnerId ) {\n\t\t\t\t\tconsole.log( 'GETTING PARTNER BY ID' );\n\t\t\t\t\treq = vlsPartners.getById( this._partnerId );\n\t\t\t\t} else if ( this._partnerName ) {\n\t\t\t\t\tconsole.log( 'GETTING PARTNER BY NAME' );\n\t\t\t\t\treq = vlsPartners.getByName( this._partnerName );\n\t\t\t\t}\n\n\t\t\t\treq.then( angular.bind( this, this._partnersLoadSuccess ), angular.bind( this, this._partnersLoadError ) );\n\t\t\t};\n\n\t\t\tPartner.prototype._partnersLoadSuccess = function( data ) {\n\t\t\t\tconsole.log( 'GOT PARTNER', this._partnerName, data );\n\t\t\t\t// console.log( this );\n\t\t\t\t// var availablePartners = data.data;\n\t\t\t\t// var found = false;\n\n\t\t\t\t// for ( var code in availablePartners ) {\n\t\t\t\t// \tif ( availablePartners.hasOwnProperty(code) ) {\n\t\t\t\t// \t\tconsole.log( \"PARTNER TEST\", this._partnerName.replace(/ /g, '').toLowerCase(), availablePartners[code].name.replace(/ /g,'').toLowerCase() );\n\t\t\t\t// \t\tif ( this._partnerName.replace(/ /g, '').toLowerCase() == availablePartners[code].name.replace(/ /g,'').toLowerCase() || this._partnerName == availablePartners[code].name.replace(\" \", \"\")) {\n\t\t\t\t// \t\t\t// console.log( \"PARTNER FOUND\", this._partnerName, code, availablePartners[code].name );\n\t\t\t\t//\n\t\t\t\t// \t\t\tfound = true;\n\t\t\t\t// \t\t\tbreak;\n\t\t\t\t// \t\t}\n\t\t\t\t// \t}\n\t\t\t\t// }\n\n\t\t\t\tif ( !data ) {\n\t\t\t\t\tthis._defer.reject('No matching partner found.');\n\t\t\t\t} else {\n\t\t\t\t\tthis._defer.notify( { type: 'partner', data: data, code: data.partnerCode } );\n\t\t\t\t}\n\n\t\t\t};\n\n\t\t\tPartner.prototype._partnersLoadError = function() {\n\t\t\t\tthis._apiCounters.totalApiCalls--;\n\n\t\t\t\tif ( this._apiCounters.partnersAttempts < this._apiCounters.maxApiAttempts ) {\n\t\t\t\t\tthis._partnersLoadStart();\n\t\t\t\t} else {\n\t\t\t\t\tthis._defer.reject('Partner failed to load for ', this._partnerId, this._partnerCode, this._partnerName );\n\t\t\t\t}\n\t\t\t};\n\n\n\t\t\t// Account Executives Loading Functions\n\t\t\t//\n\t\t\tPartner.prototype._aeLoadStart = function() {\n\t\t\t\tthis._apiCounters.totalApiCalls++;\n\t\t\t\tthis._apiCounters.aeAttempts++;\n\t\t\t\treturn vlsAES.load( this._partnerCode ).then( angular.bind( this, this._aeLoadSuccess ), angular.bind( this, this._aeLoadError ) );\n\t\t\t};\n\n\t\t\tPartner.prototype._aeLoadSuccess = function( data ) {\n\t\t\t\tthis._defer.notify( { type: 'aeList', data: data.data } );\n\t\t\t\treturn data;\n\t\t\t};\n\n\t\t\tPartner.prototype._aeLoadError = function() {\n\t\t\t\tthis._apiCounters.totalApiCalls--;\n\t\t\t\tif ( this._apiCounters.aeAttempts < this._apiCounters.maxApiAttempts ) {\n\t\t\t\t\tthis._aeLoadStart();\n\t\t\t\t} else {\n\t\t\t\t\tthis._defer.reject('Partner account executives failed to load for ' + this._partnerName );\n\t\t\t\t}\n\t\t\t};\n\n\n\t\t\t// Product Types Loading Functions\n\t\t\t//\n\t\t\tPartner.prototype._productTypesLoadStart = function() {\n\t\t\t\tthis._apiCounters.totalApiCalls++;\n\t\t\t\tthis._productsTypeAttempts++;\n\t\t\t\treturn vlsApi.getPartnerProductTypes( this._partnerCode ).then( angular.bind( this, this._productTypesLoadSuccess ), angular.bind( this, this._productTypesLoadError ) );\n\t\t\t};\n\n\t\t\tPartner.prototype._productTypesLoadSuccess = function( data ) {\n\t\t\t\tthis._defer.notify( { type: 'productTypes', data: data.data } );\n\t\t\t\treturn data;\n\t\t\t};\n\n\t\t\tPartner.prototype._productTypesLoadError = function() {\n\t\t\t\tthis._apiCounters.totalApiCalls--;\n\t\t\t\tif ( this._apiCounters.productTypesAttempts < this._apiCounters.maxApiAttempts ) {\n\t\t\t\t\tthis._productTypesLoadStart();\n\t\t\t\t} else {\n\t\t\t\t\tthis._defer.reject( 'Failed to load product types for ' + this._partnerName );\n\t\t\t\t}\n\t\t\t};\n\n\n\t\t\t// Billing Codes Loading Functions\n\t\t\t//\n\t\t\tPartner.prototype._billingCodesLoadStart = function() {\n\t\t\t\t// $log.log('GETTING BILLING CODES FROM CLASS', this.billingCodes );\n\t\t\t\tthis._apiCounters.totalApiCalls++;\n\t\t\t\tthis._apiCounters.billingCodesAttempts++;\n\t\t\t\treturn this.billingCodes.load( this._partnerCode ).then( angular.bind( this, this._billingCodesLoadSuccess ), angular.bind( this, this._billingCodesLoadError ) );\n\t\t\t};\n\n\t\t\tPartner.prototype._billingCodesLoadSuccess = function( data ) {\n\t\t\t\tthis._defer.notify( { type: 'billingCodes', data: data.data } );\n\t\t\t\treturn data;\n\t\t\t};\n\n\t\t\tPartner.prototype._billingCodesLoadError = function() {\n\t\t\t\tthis._apiCounters.totalApiCalls--;\n\t\t\t\tif ( this._apiCounters.billingCodesAttempts < this._apiCounters.maxApiAttempts ) {\n\t\t\t\t\tthis._productTypesLoadStart();\n\t\t\t\t} else {\n\t\t\t\t\tthis._defer.reject( 'Failed to load billing codes for ' + this._partnerName );\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t// VPAs Loading Functions\n\t\t\t//\n\t\t\tPartner.prototype._vpaLoadStart = function() {\n\t\t\t\t// console.trace( 'PARTNER VPA LOAD' );\n\t\t\t\tthis._apiCounters.totalApiCalls++;\n\t\t\t\tthis._apiCounters.vpaAttempts++;\n\t\t\t\treturn vlsVPAList.load( { clientid: this._clientId } ).then( angular.bind( this, this._vpaLoadSuccess ), angular.bind( this, this._vpaLoadError ) );\n\t\t\t};\n\n\t\t\tPartner.prototype._vpaLoadSuccess = function( data ) {\n\t\t\t\tthis._defer.notify( { type: 'vpaList', data: data.data.items } );\n\t\t\t\treturn data;\n\t\t\t};\n\n\t\t\tPartner.prototype._vpaLoadError = function() {\n\t\t\t\tthis._apiCounters.totalApiCalls--;\n\t\t\t\tif ( this._apiCounters.vpaAttempts < this._apiCounters.maxApiAttempts ) {\n\t\t\t\t\tthis._vpaLoadStart();\n\t\t\t\t} else {\n\t\t\t\t\tthis._defer.reject( 'Failed to load vpa\\'s for ' + this._partnerName );\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t// VPAs Loading Functions\n\t\t\t//\n\t\t\tPartner.prototype._ccLoadStart = function() {\n\t\t\t\t// console.trace( 'PARTNER VPA LOAD' );\n\t\t\t\tthis._apiCounters.totalApiCalls++;\n\t\t\t\tthis._apiCounters.vpaAttempts++;\n\t\t\t\treturn vlsCCS.load( this._partnerCode ).then( angular.bind( this, this._ccLoadSuccess ), angular.bind( this, this._ccLoadError ) );\n\t\t\t};\n\n\t\t\tPartner.prototype._ccLoadSuccess = function( data ) {\n\t\t\t\tthis._defer.notify( { type: 'ccList', data: data.data.items } );\n\t\t\t\treturn data;\n\t\t\t};\n\n\t\t\tPartner.prototype._ccLoadError = function() {\n\t\t\t\tthis._apiCounters.totalApiCalls--;\n\t\t\t\tif ( this._apiCounters.ccAttempts < this._apiCounters.maxApiAttempts ) {\n\t\t\t\t\tthis._vpaLoadStart();\n\t\t\t\t} else {\n\t\t\t\t\tthis._defer.reject( 'Failed to load cc\\'s for ' + this._partnerName );\n\t\t\t\t}\n\t\t\t};\n\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @method vls.partner.get\n\t\t\t *\n\t\t\t * @param {string} [key] Key of an item on the partner object, if none is specified, all will be returned.\n\t\t\t * @return {*} Returns a single item or the entire partner object.\n\t\t\t */\n\t\t\tPartner.prototype.get = function( key ) {\n\t\t\t\tif ( key === undefined ) {\n\t\t\t\t\treturn this._partnerData;\n\t\t\t\t} else {\n\t\t\t\t\treturn this._partnerData[key];\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t/**\n\t\t\t * @ngdoc method\n\t\t\t * @method vls.partner.getBillingCode\n\t\t\t * @param {string} [code] The billing code requested.\n\t\t\t * @deprecated Use Partner.billingCodes.get() instead\n\t\t\t * @return {object|array} An array containing all billing codes or an object of the billing code requested.\n\t\t\t */\n\t\t\tPartner.prototype.getBillingCode = function( code ) {\n\t\t\t\tconsole.warn('DEPRECATED: Partner.getBillingCode() is deprecated. Use Partner.billingCodes.get() instead.');\n\t\t\t\treturn this.billingCodes.get( code );\n\t\t\t};\n\n\t\t\t/**\n\t\t\t * Get a single or the entire list of account executives.\n\t\t\t *\n\t\t\t * @ngdoc method\n\t\t\t * @function vls.partner.getAE\n\t\t\t * @param {number} [id] Account executive ID\n\t\t\t *\n\t\t\t * @return {object|array} The account executive object or an array of AEs.\n\t\t\t * */\n\t\t\tPartner.prototype.getAE = function( id ) {\n\t\t\t\t// $log.log('Partner GET AE', id );\n\n\t\t\t\tvar defer = $q.defer();\n\n\t\t\t\tif ( this._aeList && this._aeList.length ) {\n\t\t\t\t\tdefer.resolve( this._aeList );\n\t\t\t\t} else {\n\t\t\t\t\tthis._aeLoadStart().then( function( data ) { defer.resolve( data.data.aes ); });\n\t\t\t\t}\n\n\n\t\t\t\treturn defer.promise.then( function( data ) {\n\t\t\t\t\tconsole.log( 'Got AEs' );\n\t\t\t\t\treturn getDataFromSet( data, id );\n\t\t\t\t});\n\n\n\t\t\t};\n\n\t\t\t/**\n\t\t\t * Get a single or the entire list of Creative Consultant.\n\t\t\t *\n\t\t\t * @ngdoc method\n\t\t\t * @function vls.partner.getCC\n\t\t\t * @param {number} [id] Creative Consultant ID\n\t\t\t *\n\t\t\t * @return {object|array} The creative consultant object or an array of CCs.\n\t\t\t * */\n\t\t\tPartner.prototype.getCC = function( id ) {\n\n\t\t\t\tvar defer = $q.defer();\n\n\t\t\t\tif ( this._ccList && this._ccList.length ) {\n\t\t\t\t\tdefer.resolve( this._ccList );\n\t\t\t\t} else {\n\t\t\t\t\tthis._ccLoadStart().then( function( data ) { defer.resolve( data.data.items ); });\n\t\t\t\t}\n\n\n\t\t\t\treturn defer.promise.then( function( data ) {\n\t\t\t\t\tconsole.log( 'Got CCs' );\n\t\t\t\t\treturn getDataFromSet( data, id );\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t\t/**\n\t\t\t * Get a single or the entire list of video production assistants\n\t\t\t *\n\t\t\t * @ngdoc method\n\t\t\t * @function vls.partner.getVPA\n\t\t\t * @param {number} [id] Video Production Assistant ID\n\t\t\t *\n\t\t\t * @return {object|array} The video prdocution assistant object or an array of VPAs.\n\t\t\t * */\n\t\t\tPartner.prototype.getVPA = function( id ) {\n\n\t\t\t\tvar defer = $q.defer();\n\n\t\t\t\tif ( this._vpaList && this._vpaList.length ) {\n\t\t\t\t\tdefer.resolve( this._vpaList );\n\t\t\t\t} else {\n\t\t\t\t\tthis._vpaLoadStart().then( function( data ) { defer.resolve( data.data.items ); });\n\t\t\t\t}\n\n\n\t\t\t\treturn defer.promise.then( function( data ) {\n\t\t\t\t\tconsole.log( 'Got VPAs' );\n\t\t\t\t\treturn getDataFromSet( data, id );\n\t\t\t\t});\n\n\n\t\t\t};\n\n\t\t\t/**\n\t\t\t * Get a single or the entire list of partner product types\n\t\t\t *\n\t\t\t * @ngdoc method\n\t\t\t * @function vls.partner.getProductType\n\t\t\t * @param {number} [id] Product Type ID\n\t\t\t *\n\t\t\t * @return {object|array} The product type object or an array of product types.\n\t\t\t * */\n\t\t\tPartner.prototype.getProductType = function( id ) {\n\t\t\t\t// $log.log('Partner GET Product Type', id );\n\t\t\t\tvar productType;\n\n\t\t\t\tif ( id === undefined ) {\n\t\t\t\t\tproductType = this._productTypes;\n\t\t\t\t} else {\n\t\t\t\t\tfor ( var x = 0; x < this._productTypes.length; x++ ) {\n\t\t\t\t\t\t//$log.log( this._aeList[x].id, id );\n\t\t\t\t\t\tif ( this._productTypes[x].id == id ) {\n\t\t\t\t\t\t\tproductType = this._productTypes[x];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn productType;\n\n\t\t\t};\n\n\t\t\tPartner.prototype.forms = {\n\t\t\t\t_parent: undefined,\n\t\t\t\t_forms: clientForms,\n\t\t\t\tget: function( formName ) {\n\t\t\t\t\treturn this._forms.get( formName, this._parent._partnerCode );\n\t\t\t\t}\n\t\t\t};\n\n\n\t\t\tfunction getDataFromSet( data, id ) {\n\t\t\t\tconsole.log( 'Get Data from Set', data, id );\n\t\t\t\tvar returnVal;\n\n\t\t\t\tif (id === undefined) {\n\t\t\t\t\treturnVal = data;\n\t\t\t\t} else {\n\t\t\t\t\tfor (var x = 0; x < data.length; x++) {\n\t\t\t\t\t\tif (data[x].id == id) {\n\t\t\t\t\t\t\treturnVal = data[x];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn returnVal;\n\t\t\t}\n\n\t\t\tvar cacheTTL = 900000;\n\t\t\tvar cache = {};\n\n\t\t\tfunction getPartner( name, client ) {\n\t\t\t\tvar nameKey = name + ':' + ( client || '*' );\n\n\t\t\t\tconsole.group('getPartner', nameKey, cache[nameKey], Date.now(), cache[nameKey] && Number( cache[nameKey].time ) + Number( cacheTTL ) > Date.now() );\n\t\t\t\tvar retPartner;\n\t\t\t\tif ( cache[nameKey] && cache[nameKey].time + cacheTTL > Date.now() ) {\n\t\t\t\t\tretPartner = cache[nameKey].partner;\n\t\t\t\t} else {\n\t\t\t\t\tcache[nameKey] = {\n\t\t\t\t\t\tpartner: new Partner( name, client ),\n\t\t\t\t\t\ttime: Date.now()\n\t\t\t\t\t};\n\n\t\t\t\t\tretPartner = cache[nameKey].partner;\n\t\t\t\t}\n\t\t\t\tconsole.groupEnd();\n\t\t\t\treturn retPartner;\n\t\t\t}\n\n\n\n\t\t\treturn getPartner;\n\n\t\t\t// return Partner;\n\t\t} ]);\n})( window, window.angular );\n","(function( window, angular, undefined) {\n\t'use strict';\n\n\n\tangular.module('vls.partners.billingCodes',[])\n\t\t.service('vls.partners.billingCodes',[ '$q', '$log', 'vls.partners.api', function($q, $log, vlsPartnersApi) {\n\t\t\tvar service = this;\n\t\t\tthis.campaignid = false;\n\t\t\tthis.partnerId;\n\t\t\tservice._billingCodes = [];\n\n\n\t\t\tthis.load = function( partnerId ) {\n\t\t\t\t// // console.log( 'GET BILLING CODES', partnerCode );\n\t\t\t\t// service.partnerCode = partnerCode;\n\t\t\t\t// var apiCall = vlsApi.getBillingCodes(partnerCode);\n\t\t\t\t//\n\t\t\t\t// apiCall.then(function (data) {\n\t\t\t\t// \t// console.log( 'GOT BILLING CODES', data );\n\t\t\t\t// \tservice._billingCodes = data.data.partnerbillingcodes || [];\n\t\t\t\t// \tservice._billingCodes.sort(function(a, b) {\n\t\t\t\t//\n\t\t\t\t// \t\tif ( a.billingcode < b.billingcode) {\n\t\t\t\t// \t\t\treturn -1;\n\t\t\t\t// \t\t} else if ( a.billingcode > b.billingcode ) {\n\t\t\t\t// \t\t\treturn 1;\n\t\t\t\t// \t\t}\n\t\t\t\t// \t\treturn 0;\n\t\t\t\t// \t});\n\t\t\t\t// });\n\t\t\t\t//\n\t\t\t\t// return apiCall;\n\t\t\t\tservice.partnerId = partnerId;\n\n\t\t\t\treturn vlsPartnersApi.billingCodes.get( partnerId ).then( function( data ) {\n\t\t\t\t\tservice._billingCodes = data.data || [];\n\t\t\t\t\tservice._billingCodes.sort(function(a, b) {\n\n\t\t\t\t\t\tif (a.billingCode < b.billingCode) {\n\t\t\t\t\t\t\treturn -1;\n\t\t\t\t\t\t} else if (a.billingCode > b.billingCode) {\n\t\t\t\t\t\t\treturn 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn 0;\n\t\t\t\t\t});\n\t\t\t\t\treturn service._billingCodes;\n\t\t\t\t})\n\t\t\t};\n\n\t\t\tthis.getBillingCodes = function() {\n\t\t\t\treturn service._billingCodes;\n\t\t\t};\n\n\t\t\tthis.get = function( code ) {\n\t\t\t\t// $log.log( 'GET BILLING CODE', code );\n\t\t\t\tvar billingCode;\n\t\t\t\tif ( typeof code === 'number' ) {\n\t\t\t\t\tcode = code.toString();\n\t\t\t\t}\n\n\t\t\t\tif ( code === undefined ) {\n\t\t\t\t\tbillingCode = service._billingCodes;\n\t\t\t\t} else {\n\t\t\t\t\tfor ( var x = 0; x < service._billingCodes.length; x++ ) {\n\t\t\t\t\t\tif ( service._billingCodes[x].billingCode == code ) {\n\t\t\t\t\t\t\tbillingCode = service._billingCodes[x];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// $log.log( 'GET BILLING CODE', code, billingCode );\n\n\t\t\t\treturn billingCode;\n\t\t\t};\n\t\t\tthis.add = function( billingcode ) {\n\t\t\t\t// var defer = $q.defer();\n\t\t\t\t// var params = angular.merge( {}, billingcode, { partnercode: service.partnerCode } );\n\t\t\t\t// var apiCall = vlsApi.createBillingCode( params );\n\t\t\t\t// // $log.log('EDITING BILLING CODE', billingcode, service.partnerCode );\n\t\t\t\t// apiCall.then( function( response ) {\n\t\t\t\t// \t// $log.log('REMOVED BILLING CODE');\n\t\t\t\t// \tvar apiCall2 = service.load( service.partnerCode );\n\t\t\t\t// \tapiCall2.then( function( codes ) {\n\t\t\t\t// \t\t//service._billingCodes = codes;\n\t\t\t\t// \t\tdefer.resolve( service._billingCodes );\n\t\t\t\t// \t});\n\t\t\t\t// }, defer.reject );\n\t\t\t\t//\n\t\t\t\t// return defer.promise;\n\t\t\t\tbillingcode.partnerId = service.partnerId;\n\t\t\t\treturn vlsPartnersApi.billingCodes.add( service.partnerId, billingcode )\n\t\t\t};\n\t\t\tthis.edit = function( billingcode ) {\n\t\t\t\t// var defer = $q.defer();\n\t\t\t\t// var params = angular.merge( {}, billingcode, { partnercode: service.partnerCode } );\n\t\t\t\t// var apiCall = vlsApi.updateBillingCode( params );\n\t\t\t\t// // $log.log('EDITING BILLING CODE', billingcode, service.partnerCode );\n\t\t\t\t// apiCall.then( function( response ) {\n\t\t\t\t// \t// $log.log('REMOVED BILLING CODE');\n\t\t\t\t// \tvar apiCall2 = service.load( service.partnerCode );\n\t\t\t\t// \tapiCall2.then( function( codes ) {\n\t\t\t\t// \t\t//service._billingCodes = codes;\n\t\t\t\t// \t\tdefer.resolve( service._billingCodes );\n\t\t\t\t// \t} );\n\t\t\t\t// }, defer.reject );\n\t\t\t\t//\n\t\t\t\t// return defer.promise;\n\t\t\t\treturn vlsPartnersApi.billingCodes.edit( service.partnerId, billingcode );\n\t\t\t};\n\t\t\tthis.remove = function( billingcode, partnercode ) {\n\t\t\t\t// var defer = $q.defer();\n\t\t\t\t// var apiCall = vlsApi.removeBillingCode( billingcode, service.partnerCode );\n\t\t\t\t// // $log.log('REMOVING BILLING CODE', billingcode, service.partnerCode );\n\t\t\t\t// apiCall.then( function( response ) {\n\t\t\t\t// \t// $log.log('REMOVED BILLING CODE');\n\t\t\t\t// \tvar apiCall2 = service.load( service.partnerCode );\n\t\t\t\t// \tapiCall2.then( function( codes ) {\n\t\t\t\t// \t\t//service._billingCodes = codes;\n\t\t\t\t// \t\tdefer.resolve( service._billingCodes );\n\t\t\t\t// \t});\n\t\t\t\t// }, defer.reject );\n\t\t\t\t//\n\t\t\t\t// return defer.promise;\n\t\t\t\treturn vlsPartnersApi.billingCodes.remove( service.partnerId, billingcode );\n\n\t\t\t};\n\t\t} ]);\n\n})( window, window.angular );\n","\n\nangular.module( 'vls.partners.api', [] )\n\t.value('vls.partners.api.endpoints', {\n\t\t'DOMAIN': 'https://api.bettervideo.com',\n\t\t'BASE': '/VideoListing/V1',\n\t\t'PARTNERS': '/Partners',\n\t\t'BILLING_CODES': '/BillingCodes',\n\t\t'CLIENTS': '/Clients',\n\t\t'PRODUCT_TYPES': '/ProductTypes'\n\n\t})\n\t.decorator('vls.partners.api.endpoints', ['$delegate', '$injector', function ($delegate, $injector) {\n\t\tif ($injector.has('vls.partners.api.endpoints.dev')) {\n\t\t\tvar overwrite = $injector.get('vls.partners.api.endpoints.dev');\n\t\t\t$delegate = angular.merge($delegate, overwrite);\n\t\t} else if (window.document.domain.search(/my\\-test\\./) !== -1) {\n\t\t\t$delegate.DOMAIN = 'https://apitest.bettervideo.com';\n\t\t}\n\n\t\treturn $delegate;\n\t}])\n\t.provider( 'vls.partners.api', function() {\n\t\tvar _self = this;\n\n\t\tthis.$get = ['$http', 'apiCore', 'vls.partners.api.endpoints', function ($http, apiCore, endpoints) {\n\n\t\t\t_self.apiProvider = {\n\t\t\t\tgetPartners: getPartners,\n\t\t\t\tgetPartner: getPartner,\n\t\t\t\tbillingCodes: {\n\t\t\t\t\tget: getBillingCodes,\n\t\t\t\t\tadd: addBillingCode,\n\t\t\t\t\tedit: editBillingCode,\n\t\t\t\t\tremove: removeBillingCode\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction getPartners( productTypes, clients ) {\n\t\t\t\treturn apiCore.performApiCall( endpoints.DOMAIN + endpoints.BASE + endpoints.PARTNERS, 'GET', { includeProducts: productTypes, includeClients: clients });\n\t\t\t}\n\n\t\t\tfunction getPartner( nameIdCode ) {\n\t\t\t\tif ( typeof nameIdCode === 'number' ) {\n\t\t\t\t\treturn apiCore.performApiCall( endpoints.DOMAIN + endpoints.BASE + endpoints.PARTNERS + '/' + nameIdCode );\n\t\t\t\t} else {\n\t\t\t\t\tif ( nameIdCode.length === 3 ) {\n\t\t\t\t\t\treturn apiCore.performApiCall( endpoints.DOMAIN + endpoints.BASE + endpoints.PARTNERS, 'GET', { partnerCode: nameIdCode });\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn apiCore.performApiCall(endpoints.DOMAIN + endpoints.BASE + endpoints.PARTNERS, 'GET', {name: nameIdCode});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\n\t\t\tfunction getBillingCodes( partnerId ) {\n\t\t\t\treturn apiCore.performRawApiCall( endpoints.DOMAIN + endpoints.BASE + endpoints.PARTNERS + '/' + partnerId + endpoints.BILLING_CODES, 'GET', undefined, true );\n\t\t\t}\n\t\t\tfunction addBillingCode( partnerId, billingCode ) {\n\t\t\t\treturn apiCore.performRawApiCall( endpoints.DOMAIN + endpoints.BASE + endpoints.PARTNERS + '/' + partnerId + endpoints.BILLING_CODES , 'POST', billingCode );\n\t\t\t}\n\t\t\tfunction editBillingCode( partnerId, billingCode ) {\n\t\t\t\treturn apiCore.performRawApiCall( endpoints.DOMAIN + endpoints.BASE + endpoints.PARTNERS + '/' + partnerId + endpoints.BILLING_CODES + '/' + billingCode.id, 'PUT', billingCode );\n\t\t\t}\n\t\t\tfunction removeBillingCode( partnerId, billingCode ) {\n\t\t\t\treturn apiCore.performRawApiCall( endpoints.DOMAIN + endpoints.BASE + endpoints.PARTNERS + '/' + partnerId + endpoints.BILLING_CODES + '/' + billingCode.billingCode, 'DELETE' );\n\t\t\t}\n\n\n\t\t\treturn _self.apiProvider;\n\n\t\t}];\n\t})\n","'use strict';\n\nangular.module('widgets', [\n // Core\n\t'widgets.base',\n // 'widgets.widgetPaneOptions',\n // Common\n\t'widgets.clock',\n\t'widgets.calendar',\n\t'widgets.notes',\n\n // Dashboard\n\t'widgets.upcomingGraph',\n\t'widgets.dueDateText',\n\t// 'widgets.listingGrid',\n\t'widgets.listingStatus',\n\t// 'widgets.videos',\n\t'widgets.videoGrid',\n // 'widgets.predefinedSearchOptions',\n\n // Listings\n\t'widgets.video',\n\t'widgets.listingEvents',\n\t'widgets.script',\n\t'widgets.links',\n\t'widgets.comment',\n\n // Campaign\n\t'widgets.campaignEvents',\n\t'widgets.listings',\n\t'widgets.advertiserMap',\n\n // Advertising\n\t'widgets.advertising.impressions'\n\n]);\n","'use strict';\n\n\nvar baseWidgetService = function() {};\n//baseWidgetService.prototype.test = \"TESTING\";\n// TODO: Move methods to an object to avoid $scope clutter!\n//\nangular.module('widgets.base',[])\n\t.factory('widgets.base', [ 'vls.user', function( vlsUser ) {\n\t\tangular.extend( this, baseWidgetService );\n\n\t\tthis.loadingIndicator = angular.element('
');\n\n\t\t/**\n\t\t * Handles the basic setup and tear down of the loading indicator\n\t\t **/\n\t\tthis.getData = function( $element, apiCall ) {\n\n\t\t\tthis.setupLoading($element);\n\n\t\t\tapiCall.then(function( data ) {\n\t\t\t\tthis.tearDownLoading( $element );\n\t\t\t}.bind(this));\n\t\t};\n\n\t\tthis.setupLoading = function( $element ) {\n\t\t\t$element.append( this.loadingIndicator.clone() );\n\t\t};\n\n\t\tthis.tearDownLoading = function( $element ) {\n\t\t\t$element[0].querySelector('.loading-overlay').remove();\n\t\t};\n\n\t\tthis.getOptionConfig = function( $scope, config, debug ) {\n\t\t\t//var returnArr = [];\n\n\n\t\t\tangular.forEach( config, function( value, key ) {\n\t\t\t\t//var optionObj = angular.extend({}, value);\n//\t\t\t\toptionObj.key = key;\n\t\t\t\tif ( value.options && typeof value.options === 'string' ) {\n\t\t\t\t\tvalue.options = value.optionsFn( $scope[value.options] );\n\t\t\t\t}\n\t\t\t\t//returnArr.push(optionObj);\n\t\t\t});\n\t\t\t//return returnArr;\n\n\t\t\tif ( config ) {\n\t\t\t\tconfig.layout = config.layout || [Object.keys(config)];\n\t\t\t}\n\t\t\treturn config;\n\t\t};\n\n\t\tthis.getPartnersOption = function() {\n\t\t\treturn {\n\t\t\t\tlabel: 'Partner',\n\t\t\t\ttype: 'select',\n\t\t\t\tmultiple: true,\n\t\t\t\tvalue: [],\n\t\t\t\toptions: 'userPartners',\n\t\t\t\toptionsFn: function( options ) {\n\t\t\t\t\tvar returnArr = [];\n\t\t\t\t\tangular.forEach( options, function( value, key ) {\n\t\t\t\t\t\treturnArr.push( { value: value.code, label: value.name } );\n\t\t\t\t\t});\n\t\t\t\t\treturn returnArr;\n\t\t\t\t},\n\t\t\t\torder: 10, // Silly angular sorting of the object keys\n\t\t\t\tnotes: 'If no partners are selected all will be used.'\n\t\t\t};\n\t\t};\n\n\n\t\treturn this;\n\n\t} ]);\n","/*! wavesurfer.js 1.0.58 (Sun, 28 Feb 2016 19:39:50 GMT)\n* https://github.com/katspaugh/wavesurfer.js\n* @license CC-BY-3.0 */\n!function(a,b){'function'==typeof define&&define.amd?define('wavesurfer',[],function(){return a.WaveSurfer=b();}):'object'==typeof exports?module.exports=b():a.WaveSurfer=b();}(this,function(){'use strict';var a={ defaultParams:{ height:128,waveColor:'#999',progressColor:'#555',cursorColor:'#333',cursorWidth:1,skipLength:2,minPxPerSec:20,pixelRatio:window.devicePixelRatio||screen.deviceXDPI/screen.logicalXDPI,fillParent:!0,scrollParent:!1,hideScrollbar:!1,normalize:!1,audioContext:null,container:null,dragSelection:!0,loopSelection:!0,audioRate:1,interact:!0,splitChannels:!1,mediaContainer:null,mediaControls:!1,renderer:'Canvas',backend:'WebAudio',mediaType:'audio',autoCenter:!0 },init:function(b){if(this.params=a.util.extend({},this.defaultParams,b),this.container='string'==typeof b.container?document.querySelector(this.params.container):this.params.container,!this.container)throw new Error('Container element not found');if(null==this.params.mediaContainer?this.mediaContainer=this.container:'string'==typeof this.params.mediaContainer?this.mediaContainer=document.querySelector(this.params.mediaContainer):this.mediaContainer=this.params.mediaContainer,!this.mediaContainer)throw new Error('Media Container element not found');this.savedVolume=0,this.isMuted=!1,this.tmpEvents=[],this.createDrawer(),this.createBackend();},createDrawer:function(){var b=this;this.drawer=Object.create(a.Drawer[this.params.renderer]),this.drawer.init(this.container,this.params),this.drawer.on('redraw',function(){b.drawBuffer(),b.drawer.progress(b.backend.getPlayedPercents());}),this.drawer.on('click',function(a,c){setTimeout(function(){b.seekTo(c);},0);}),this.drawer.on('scroll',function(a){b.fireEvent('scroll',a);});},createBackend:function(){var b=this;this.backend&&this.backend.destroy(),'AudioElement'==this.params.backend&&(this.params.backend='MediaElement'),'WebAudio'!=this.params.backend||a.WebAudio.supportsWebAudio()||(this.params.backend='MediaElement'),this.backend=Object.create(a[this.params.backend]),this.backend.init(this.params),this.backend.on('finish',function(){b.fireEvent('finish');}),this.backend.on('play',function(){b.fireEvent('play');}),this.backend.on('pause',function(){b.fireEvent('pause');}),this.backend.on('audioprocess',function(a){b.fireEvent('audioprocess',a);});},startAnimationLoop:function(){var a=this,b=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame,c=function(){if(!a.backend.isPaused()){var d=a.backend.getPlayedPercents();a.drawer.progress(d),a.fireEvent('audioprocess',a.getCurrentTime()),b(c);}};c();},getDuration:function(){return this.backend.getDuration();},getCurrentTime:function(){return this.backend.getCurrentTime();},play:function(a,b){this.backend.play(a,b),this.startAnimationLoop();},pause:function(){this.backend.pause();},playPause:function(){this.backend.isPaused()?this.play():this.pause();},isPlaying:function(){return!this.backend.isPaused();},skipBackward:function(a){this.skip(-a||-this.params.skipLength);},skipForward:function(a){this.skip(a||this.params.skipLength);},skip:function(a){var b=this.getCurrentTime()||0,c=this.getDuration()||1;b=Math.max(0,Math.min(c,b+(a||0))),this.seekAndCenter(b/c);},seekAndCenter:function(a){this.seekTo(a),this.drawer.recenter(a);},seekTo:function(a){var b=this.backend.isPaused(),c=this.params.scrollParent;b&&(this.params.scrollParent=!1),this.backend.seekTo(a*this.getDuration()),this.drawer.progress(this.backend.getPlayedPercents()),b||(this.backend.pause(),this.backend.play()),this.params.scrollParent=c,this.fireEvent('seek',a);},stop:function(){this.pause(),this.seekTo(0),this.drawer.progress(0);},setVolume:function(a){this.backend.setVolume(a);},setPlaybackRate:function(a){this.backend.setPlaybackRate(a);},toggleMute:function(){this.isMuted?(this.backend.setVolume(this.savedVolume),this.isMuted=!1):(this.savedVolume=this.backend.getVolume(),this.backend.setVolume(0),this.isMuted=!0);},toggleScroll:function(){this.params.scrollParent=!this.params.scrollParent,this.drawBuffer();},toggleInteraction:function(){this.params.interact=!this.params.interact;},drawBuffer:function(){var a=Math.round(this.getDuration()*this.params.minPxPerSec*this.params.pixelRatio),b=this.drawer.getWidth(),c=a;this.params.fillParent&&(!this.params.scrollParent||b>a)&&(c=b);var d=this.backend.getPeaks(c);this.drawer.drawPeaks(d,c),this.fireEvent('redraw',d,c);},zoom:function(a){this.params.minPxPerSec=a,this.params.scrollParent=!0,this.drawBuffer(),this.seekAndCenter(this.getCurrentTime()/this.getDuration()),this.fireEvent('zoom',a);},loadArrayBuffer:function(a){this.decodeArrayBuffer(a,function(a){this.loadDecodedBuffer(a);}.bind(this));},loadDecodedBuffer:function(a){this.backend.load(a),this.drawBuffer(),this.fireEvent('ready');},loadBlob:function(a){var b=this,c=new FileReader;c.addEventListener('progress',function(a){b.onProgress(a);}),c.addEventListener('load',function(a){b.loadArrayBuffer(a.target.result);}),c.addEventListener('error',function(){b.fireEvent('error','Error reading file');}),c.readAsArrayBuffer(a),this.empty();},load:function(a,b){switch(this.params.backend){case'WebAudio':return this.loadBuffer(a);case'MediaElement':return this.loadMediaElement(a,b);}},loadBuffer:function(a){return this.empty(),this.getArrayBuffer(a,this.loadArrayBuffer.bind(this));},loadMediaElement:function(a,b){this.empty(),this.backend.load(a,this.mediaContainer,b),this.tmpEvents.push(this.backend.once('canplay',function(){this.drawBuffer(),this.fireEvent('ready');}.bind(this)),this.backend.once('error',function(a){this.fireEvent('error',a);}.bind(this))),!b&&this.backend.supportsWebAudio()&&this.getArrayBuffer(a,function(a){this.decodeArrayBuffer(a,function(a){this.backend.buffer=a,this.drawBuffer();}.bind(this));}.bind(this));},decodeArrayBuffer:function(a,b){this.backend.decodeArrayBuffer(a,this.fireEvent.bind(this,'decoded'),this.fireEvent.bind(this,'error','Error decoding audiobuffer')),this.tmpEvents.push(this.once('decoded',b));},getArrayBuffer:function(b,c){var d=this,e=a.util.ajax({ url:b,responseType:'arraybuffer' });return this.tmpEvents.push(e.on('progress',function(a){d.onProgress(a);}),e.on('success',c),e.on('error',function(a){d.fireEvent('error','XHR error: '+a.target.statusText);})),e;},onProgress:function(a){if(a.lengthComputable)var b=a.loaded/a.total;else b=a.loaded/(a.loaded+1e6);this.fireEvent('loading',Math.round(100*b),a.target);},exportPCM:function(a,b,c){a=a||1024,b=b||1e4,c=c||!1;var d=this.backend.getPeaks(a,b),e=[].map.call(d,function(a){return Math.round(a*b)/b;}),f=JSON.stringify(e);return c||window.open('data:application/json;charset=utf-8,'+encodeURIComponent(f)),f;},clearTmpEvents:function(){this.tmpEvents.forEach(function(a){a.un();});},empty:function(){this.backend.isPaused()||(this.stop(),this.backend.disconnectSource()),this.clearTmpEvents(),this.drawer.progress(0),this.drawer.setWidth(0),this.drawer.drawPeaks({ length:this.drawer.getWidth() },0);},destroy:function(){this.fireEvent('destroy'),this.clearTmpEvents(),this.unAll(),this.backend.destroy(),this.drawer.destroy();} };return a.create=function(b){var c=Object.create(a);return c.init(b),c;},a.util={ extend:function(a){var b=Array.prototype.slice.call(arguments,1);return b.forEach(function(b){Object.keys(b).forEach(function(c){a[c]=b[c];});}),a;},getId:function(){return'wavesurfer_'+Math.random().toString(32).substring(2);},ajax:function(b){var c=Object.create(a.Observer),d=new XMLHttpRequest,e=!1;return d.open(b.method||'GET',b.url,!0),d.responseType=b.responseType||'json',d.addEventListener('progress',function(a){c.fireEvent('progress',a),a.lengthComputable&&a.loaded==a.total&&(e=!0);}),d.addEventListener('load',function(a){e||c.fireEvent('progress',a),c.fireEvent('load',a),200==d.status||206==d.status?c.fireEvent('success',d.response,a):c.fireEvent('error',a);}),d.addEventListener('error',function(a){c.fireEvent('error',a);}),d.send(),c.xhr=d,c;} },a.Observer={ on:function(a,b){this.handlers||(this.handlers={});var c=this.handlers[a];return c||(c=this.handlers[a]=[]),c.push(b),{ name:a,callback:b,un:this.un.bind(this,a,b) };},un:function(a,b){if(this.handlers){var c=this.handlers[a];if(c)if(b)for(var d=c.length-1;d>=0;d--)c[d]==b&&c.splice(d,1);else c.length=0;}},unAll:function(){this.handlers=null;},once:function(a,b){var c=this,d=function(){b.apply(this,arguments),setTimeout(function(){c.un(a,d);},0);};return this.on(a,d);},fireEvent:function(a){if(this.handlers){var b=this.handlers[a],c=Array.prototype.slice.call(arguments,1);b&&b.forEach(function(a){a.apply(null,c);});}} },a.util.extend(a,a.Observer),a.WebAudio={ scriptBufferSize:256,PLAYING_STATE:0,PAUSED_STATE:1,FINISHED_STATE:2,supportsWebAudio:function(){return!(!window.AudioContext&&!window.webkitAudioContext);},getAudioContext:function(){return a.WebAudio.audioContext||(a.WebAudio.audioContext=new(window.AudioContext||window.webkitAudioContext)),a.WebAudio.audioContext;},getOfflineAudioContext:function(b){return a.WebAudio.offlineAudioContext||(a.WebAudio.offlineAudioContext=new(window.OfflineAudioContext||window.webkitOfflineAudioContext)(1,2,b)),a.WebAudio.offlineAudioContext;},init:function(b){this.params=b,this.ac=b.audioContext||this.getAudioContext(),this.lastPlay=this.ac.currentTime,this.startPosition=0,this.scheduledPause=null,this.states=[ Object.create(a.WebAudio.state.playing),Object.create(a.WebAudio.state.paused),Object.create(a.WebAudio.state.finished) ],this.createVolumeNode(),this.createScriptNode(),this.createAnalyserNode(),this.setState(this.PAUSED_STATE),this.setPlaybackRate(this.params.audioRate);},disconnectFilters:function(){this.filters&&(this.filters.forEach(function(a){a&&a.disconnect();}),this.filters=null,this.analyser.connect(this.gainNode));},setState:function(a){this.state!==this.states[a]&&(this.state=this.states[a],this.state.init.call(this));},setFilter:function(){this.setFilters([].slice.call(arguments));},setFilters:function(a){this.disconnectFilters(),a&&a.length&&(this.filters=a,this.analyser.disconnect(),a.reduce(function(a,b){return a.connect(b),b;},this.analyser).connect(this.gainNode));},createScriptNode:function(){this.ac.createScriptProcessor?this.scriptNode=this.ac.createScriptProcessor(this.scriptBufferSize):this.scriptNode=this.ac.createJavaScriptNode(this.scriptBufferSize),this.scriptNode.connect(this.ac.destination);},addOnAudioProcess:function(){var a=this;this.scriptNode.onaudioprocess=function(){var b=a.getCurrentTime();b>=a.getDuration()?(a.setState(a.FINISHED_STATE),a.fireEvent('pause')):b>=a.scheduledPause?(a.setState(a.PAUSED_STATE),a.fireEvent('pause')):a.state===a.states[a.PLAYING_STATE]&&a.fireEvent('audioprocess',b);};},removeOnAudioProcess:function(){this.scriptNode.onaudioprocess=null;},createAnalyserNode:function(){this.analyser=this.ac.createAnalyser(),this.analyser.connect(this.gainNode);},createVolumeNode:function(){this.ac.createGain?this.gainNode=this.ac.createGain():this.gainNode=this.ac.createGainNode(),this.gainNode.connect(this.ac.destination);},setVolume:function(a){this.gainNode.gain.value=a;},getVolume:function(){return this.gainNode.gain.value;},decodeArrayBuffer:function(a,b,c){this.offlineAc||(this.offlineAc=this.getOfflineAudioContext(this.ac?this.ac.sampleRate:44100)),this.offlineAc.decodeAudioData(a,function(a){b(a);}.bind(this),c);},getPeaks:function(a){for(var b=this.buffer.length/a,c=~~(b/10)||1,d=this.buffer.numberOfChannels,e=[],f=[],g=0;d>g;g++)for(var h=e[g]=[],i=this.buffer.getChannelData(g),j=0;a>j;j++){for(var k=~~(j*b),l=~~(k+b),m=i[0],n=i[0],o=k;l>o;o+=c){var p=i[o];p>n&&(n=p),m>p&&(m=p);}h[2*j]=n,h[2*j+1]=m,(0==g||n>f[2*j])&&(f[2*j]=n),(0==g||m=this.getDuration()&&(a=0)),null==b&&(b=this.getDuration()),this.startPosition=a,this.lastPlay=this.ac.currentTime,this.state===this.states[this.FINISHED_STATE]&&this.setState(this.PAUSED_STATE),{ start:a,end:b };},getPlayedTime:function(){return(this.ac.currentTime-this.lastPlay)*this.playbackRate;},play:function(a,b){this.createSource();var c=this.seekTo(a,b);a=c.start,b=c.end,this.scheduledPause=b,this.source.start(0,a,b-a),this.setState(this.PLAYING_STATE),this.fireEvent('play');},pause:function(){this.scheduledPause=null,this.startPosition+=this.getPlayedTime(),this.source&&this.source.stop(0),this.setState(this.PAUSED_STATE),this.fireEvent('pause');},getCurrentTime:function(){return this.state.getCurrentTime.call(this);},setPlaybackRate:function(a){a=a||1,this.isPaused()?this.playbackRate=a:(this.pause(),this.playbackRate=a,this.play());} },a.WebAudio.state={},a.WebAudio.state.playing={ init:function(){this.addOnAudioProcess();},getPlayedPercents:function(){var a=this.getDuration();return this.getCurrentTime()/a||0;},getCurrentTime:function(){return this.startPosition+this.getPlayedTime();} },a.WebAudio.state.paused={ init:function(){this.removeOnAudioProcess();},getPlayedPercents:function(){var a=this.getDuration();return this.getCurrentTime()/a||0;},getCurrentTime:function(){return this.startPosition;} },a.WebAudio.state.finished={ init:function(){this.removeOnAudioProcess(),this.fireEvent('finish');},getPlayedPercents:function(){return 1;},getCurrentTime:function(){return this.getDuration();} },a.util.extend(a.WebAudio,a.Observer),a.MediaElement=Object.create(a.WebAudio),a.util.extend(a.MediaElement,{ init:function(a){this.params=a,this.media={ currentTime:0,duration:0,paused:!0,playbackRate:1,play:function(){},pause:function(){} },this.mediaType=a.mediaType.toLowerCase(),this.elementPosition=a.elementPosition,this.setPlaybackRate(this.params.audioRate);},load:function(a,b,c){var d=this,e=document.createElement(this.mediaType);e.controls=this.params.mediaControls,e.autoplay=this.params.autoplay||!1,e.preload='auto',e.src=a,e.style.width='100%',e.addEventListener('error',function(){d.fireEvent('error','Error loading media element');}),e.addEventListener('canplay',function(){d.fireEvent('canplay');}),e.addEventListener('ended',function(){d.fireEvent('finish');}),e.addEventListener('timeupdate',function(){d.fireEvent('audioprocess',d.getCurrentTime());});var f=b.querySelector(this.mediaType);f&&b.removeChild(f),b.appendChild(e),this.media=e,this.peaks=c,this.onPlayEnd=null,this.buffer=null,this.setPlaybackRate(this.playbackRate);},isPaused:function(){return!this.media||this.media.paused;},getDuration:function(){var a=this.media.duration;return a>=1/0&&(a=this.media.seekable.end()),a;},getCurrentTime:function(){return this.media&&this.media.currentTime;},getPlayedPercents:function(){return this.getCurrentTime()/this.getDuration()||0;},setPlaybackRate:function(a){this.playbackRate=a||1,this.media.playbackRate=this.playbackRate;},seekTo:function(a){null!=a&&(this.media.currentTime=a),this.clearPlayEnd();},play:function(a,b){this.seekTo(a),this.media.play(),b&&this.setPlayEnd(b),this.fireEvent('play');},pause:function(){this.media&&this.media.pause(),this.clearPlayEnd(),this.fireEvent('pause');},setPlayEnd:function(a){var b=this;this.onPlayEnd=function(c){c>=a&&(b.pause(),b.seekTo(a));},this.on('audioprocess',this.onPlayEnd);},clearPlayEnd:function(){this.onPlayEnd&&(this.un('audioprocess',this.onPlayEnd),this.onPlayEnd=null);},getPeaks:function(b){return this.buffer?a.WebAudio.getPeaks.call(this,b):this.peaks||[];},getVolume:function(){return this.media.volume;},setVolume:function(a){this.media.volume=a;},destroy:function(){this.pause(),this.unAll(),this.media&&this.media.parentNode&&this.media.parentNode.removeChild(this.media),this.media=null;} }),a.AudioElement=a.MediaElement,a.Drawer={ init:function(a,b){this.container=a,this.params=b,this.width=0,this.height=b.height*this.params.pixelRatio,this.lastPos=0,this.createWrapper(),this.createElements();},createWrapper:function(){this.wrapper=this.container.appendChild(document.createElement('wave')),this.style(this.wrapper,{ display:'block',position:'relative',userSelect:'none',webkitUserSelect:'none',height:this.params.height+'px' }),(this.params.fillParent||this.params.scrollParent)&&this.style(this.wrapper,{ width:'100%',overflowX:this.params.hideScrollbar?'hidden':'auto',overflowY:'hidden' }),this.setupWrapperEvents();},handleEvent:function(a){a.preventDefault();var b=this.wrapper.getBoundingClientRect();return(a.clientX-b.left+this.wrapper.scrollLeft)/this.wrapper.scrollWidth||0;},setupWrapperEvents:function(){var a=this;this.wrapper.addEventListener('click',function(b){var c=a.wrapper.offsetHeight-a.wrapper.clientHeight;if(0!=c){var d=a.wrapper.getBoundingClientRect();if(b.clientY>=d.bottom-c)return;}a.params.interact&&a.fireEvent('click',b,a.handleEvent(b));}),this.wrapper.addEventListener('scroll',function(b){a.fireEvent('scroll',b);});},drawPeaks:function(a,b){this.resetScroll(),this.setWidth(b),this.params.barWidth?this.drawBars(a):this.drawWave(a);},style:function(a,b){return Object.keys(b).forEach(function(c){a.style[c]!==b[c]&&(a.style[c]=b[c]);}),a;},resetScroll:function(){null!==this.wrapper&&(this.wrapper.scrollLeft=0);},recenter:function(a){var b=this.wrapper.scrollWidth*a;this.recenterOnPosition(b,!0);},recenterOnPosition:function(a,b){var c=this.wrapper.scrollLeft,d=~~(this.wrapper.clientWidth/2),e=a-d,f=e-c,g=this.wrapper.scrollWidth-this.wrapper.clientWidth;if(0!=g){if(!b&&f>=-d&&d>f){var h=5;f=Math.max(-h,Math.min(h,f)),e=c+f;}e=Math.max(0,Math.min(g,e)),e!=c&&(this.wrapper.scrollLeft=e);}},getWidth:function(){return Math.round(this.container.clientWidth*this.params.pixelRatio);},setWidth:function(a){a!=this.width&&(this.width=a,this.params.fillParent||this.params.scrollParent?this.style(this.wrapper,{ width:'' }):this.style(this.wrapper,{ width:~~(this.width/this.params.pixelRatio)+'px' }),this.updateSize());},setHeight:function(a){a!=this.height&&(this.height=a,this.style(this.wrapper,{ height:~~(this.height/this.params.pixelRatio)+'px' }),this.updateSize());},progress:function(a){var b=1/this.params.pixelRatio,c=Math.round(a*this.width)*b;if(c=b){if(this.lastPos=c,this.params.scrollParent&&this.params.autoCenter){var d=~~(this.wrapper.scrollWidth*a);this.recenterOnPosition(d);}this.updateProgress(a);}},destroy:function(){this.unAll(),this.wrapper&&(this.container.removeChild(this.wrapper),this.wrapper=null);},createElements:function(){},updateSize:function(){},drawWave:function(a,b){},clearWave:function(){},updateProgress:function(a){} },a.util.extend(a.Drawer,a.Observer),a.Drawer.Canvas=Object.create(a.Drawer),a.util.extend(a.Drawer.Canvas,{ createElements:function(){var a=this.wrapper.appendChild(this.style(document.createElement('canvas'),{ position:'absolute',zIndex:1,left:0,top:0,bottom:0 }));if(this.waveCc=a.getContext('2d'),this.progressWave=this.wrapper.appendChild(this.style(document.createElement('wave'),{ position:'absolute',zIndex:2,left:0,top:0,bottom:0,overflow:'hidden',width:'0',display:'none',boxSizing:'border-box',borderRightStyle:'solid',borderRightWidth:this.params.cursorWidth+'px',borderRightColor:this.params.cursorColor })),this.params.waveColor!=this.params.progressColor){var b=this.progressWave.appendChild(document.createElement('canvas'));this.progressCc=b.getContext('2d');}},updateSize:function(){var a=Math.round(this.width/this.params.pixelRatio);this.waveCc.canvas.width=this.width,this.waveCc.canvas.height=this.height,this.style(this.waveCc.canvas,{ width:a+'px' }),this.style(this.progressWave,{ display:'block' }),this.progressCc&&(this.progressCc.canvas.width=this.width,this.progressCc.canvas.height=this.height,this.style(this.progressCc.canvas,{ width:a+'px' })),this.clearWave();},clearWave:function(){this.waveCc.clearRect(0,0,this.width,this.height),this.progressCc&&this.progressCc.clearRect(0,0,this.width,this.height);},drawBars:function(a,b){if(a[0]instanceof Array){var c=a;if(this.params.splitChannels)return this.setHeight(c.length*this.params.height*this.params.pixelRatio),void c.forEach(this.drawBars,this);a=c[0];}var d=[].some.call(a,function(a){return 0>a;});d&&(a=[].filter.call(a,function(a,b){return b%2==0;}));var e=.5/this.params.pixelRatio,f=this.width,g=this.params.height*this.params.pixelRatio,h=g*b||0,i=g/2,j=a.length,k=this.params.barWidth*this.params.pixelRatio,l=Math.max(this.params.pixelRatio,~~(k/2)),m=k+l,n=1;this.params.normalize&&(n=Math.max.apply(Math,a));var o=j/f;this.waveCc.fillStyle=this.params.waveColor,this.progressCc&&(this.progressCc.fillStyle=this.params.progressColor),[ this.waveCc,this.progressCc ].forEach(function(b){if(b)for(var c=0;f>c;c+=m){var d=Math.round(a[Math.floor(c*o)]/n*i);b.fillRect(c+e,i-d+h,k+e,2*d);}},this);},drawWave:function(a,b){if(a[0]instanceof Array){var c=a;if(this.params.splitChannels)return this.setHeight(c.length*this.params.height*this.params.pixelRatio),void c.forEach(this.drawWave,this);a=c[0];}var d=[].some.call(a,function(a){return 0>a;});if(!d){for(var e=[],f=0,g=a.length;g>f;f++)e[2*f]=a[f],e[2*f+1]=-a[f];a=e;}var h=.5/this.params.pixelRatio,i=this.params.height*this.params.pixelRatio,j=i*b||0,k=i/2,l=~~(a.length/2),m=1;this.params.fillParent&&this.width!=l&&(m=this.width/l);var n=1;if(this.params.normalize){var o=Math.max.apply(Math,a),p=Math.min.apply(Math,a);n=-p>o?-p:o;}this.waveCc.fillStyle=this.params.waveColor,this.progressCc&&(this.progressCc.fillStyle=this.params.progressColor),[ this.waveCc,this.progressCc ].forEach(function(b){if(b){b.beginPath(),b.moveTo(h,k+j);for(var c=0;l>c;c++){var d=Math.round(a[2*c]/n*k);b.lineTo(c*m+h,k-d+j);}for(var c=l-1;c>=0;c--){var d=Math.round(a[2*c+1]/n*k);b.lineTo(c*m+h,k-d+j);}b.closePath(),b.fill(),b.fillRect(0,k+j-h,this.width,h);}},this);},updateProgress:function(a){var b=Math.round(this.width*a)/this.params.pixelRatio;this.style(this.progressWave,{ width:b+'px' });} }),function(){var b=function(){var b=document.querySelectorAll('wavesurfer');Array.prototype.forEach.call(b,function(b){var c=a.util.extend({ container:b,backend:'MediaElement',mediaControls:!0 },b.dataset);b.style.display='block';var d=a.create(c);if(b.dataset.peaks)var e=JSON.parse(b.dataset.peaks);d.load(b.dataset.url,e);});};'complete'===document.readyState?b():window.addEventListener('load',b);}(),a;});\n//# sourceMappingURL=wavesurfer.min.js.map\n","/**\n * Created by intelWorx on 19/11/2015.\n */\n(function (window, angular, undefined ) {\n\t'use strict';\n\n /**\n * Main module, your application should depend on this\n * @module mdWavesurfer\n */\n\tvar app = angular.module('mdWavesurfer', ['ngMaterial']);\n\n /**\n * @ngdoc service\n * @name mdWavesurfer.$mdWavesurferUtils\n * @description\n *\n * Utility service for this directive, exposes method:\n * - getLength(url), which returns a promise for the length of the audio specified by URL\n *\n * ```js\n * app.directive('myFancyDirective', function(mdWavesurferUtils) {\n * return {\n * restrict: 'e',\n * link: function(scope, el, attrs) {\n * mdWavesurferUtils(attrs.url)\n * .then(function(l){\n * scope.length = l;\n * }, function(){\n * someErrorhandler()\n * })\n * ;\n * }\n * };\n * });\n * ```\n */\n\tapp.factory('mdWavesurferUtils', [ '$q', '$document', '$timeout',\n\t\tfunction ($q, $document, $timeout) {\n\t\t\treturn {\n\t\t\t\tgetLength: function (object) {\n\t\t\t\t\tvar deferred = $q.defer();\n\t\t\t\t\tvar estimateLength = function (url) {\n\t\t\t\t\t\tvar audio = $document[0].createElement('audio');\n\t\t\t\t\t\taudio.src = url;\n\t\t\t\t\t\taudio.addEventListener('loadeddata', function listener() {\n\t\t\t\t\t\t\tdeferred.resolve(this.duration);\n\t\t\t\t\t\t\taudio.removeEventListener('loadeddata', listener);\n\t\t\t\t\t\t\taudio.src = 'data:audio/mpeg,0';//destroy loading.\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\taudio.addEventListener('error', function (e) {\n\t\t\t\t\t\t\tdeferred.resolve(e.target.error);\n\t\t\t\t\t\t});\n\t\t\t\t\t};\n\n\t\t\t\t\tif (typeof object === 'string') {\n //this is a URL\n\t\t\t\t\t\testimateLength(object);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$timeout(function () {\n\t\t\t\t\t\t\tdeferred.reject(new DOMError('NotSupportedError', 'Specified argument is not supported'));\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\treturn deferred.promise;\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t]);\n\n /**\n * @ngdoc filter\n * @name mdWavesurfer.mdWavesurferTimeFormat\n * @description\n * Simple filter to convert value in seconds to MM:SS format\n *\n * @param {Number} duration in seconds\n */\n\tapp.filter('mdWavesurferTimeFormat', function () {\n\t\treturn function (input) {\n\t\t\tif (!input) {\n\t\t\t\treturn '00:00';\n\t\t\t}\n\n\t\t\tvar minutes = Math.floor(input / 60);\n\t\t\tvar seconds = Math.ceil(input) % 60;\n\n\t\t\treturn (minutes < 10 ? '0' : '') + minutes + ':' + (seconds < 10 ? '0' : '') + seconds;\n\t\t};\n\t});\n\n\n\tapp.controller('mdWavesurferAudioController', [ '$scope','$attrs', '$element',\n\t\tfunction ($scope, attributes, $element) {\n\t\t\tvar audio = this;\n\n\t\t\taudio.tracks = [];\n\t\t\taudio.selectedIndex = audio.selectedIndex || 0;\n\t\t\taudio.currentTrack = null;\n\n //adds to an audio track\n\t\t\taudio.addTrack = function (trackScope) {\n\t\t\t\tif (audio.tracks.indexOf(trackScope) < 0) {\n\t\t\t\t\taudio.tracks.push(trackScope);\n\t\t\t\t}\n\n\t\t\t\tif (!audio.currentTrack) {\n\t\t\t\t\taudio.currentTrack = audio.tracks[audio.selectedIndex];\n\t\t\t\t}\n\t\t\t};\n\n //remove audio track\n\t\t\taudio.removeTrack = function (trackScope) {\n\t\t\t\tvar idx = audio.tracks.indexOf(trackScope);\n\t\t\t\tif (idx >= 0) {\n\t\t\t\t\taudio.tracks.splice(idx, 1);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\taudio.playerProperties = {};\n\t\t\tvar nKey;\n\t\t\tfor (var attr in attributes) {\n\t\t\t\tif (attr.match(/^player/)) {\n\t\t\t\t\tnKey = attr.replace(/^player([A-Z])/, function (m, $1) {\n\t\t\t\t\t\treturn $1.toLowerCase();\n\t\t\t\t\t});\n\t\t\t\t\taudio.playerProperties[nKey] = attributes[attr].toLowerCase() === 'true' || attributes[attr].toLowerCase() === 'false' ? $scope.$eval( attributes[attr] ) : attributes[attr];\n\t\t\t\t}\n\t\t\t}\n\t console.log('AUDIO PLAYER PROPERTIES', audio.playerProperties );\n\t\t\tvar getPlayer = function(){\n\t\t\t\treturn $element.find('md-wavesurfer-player').controller('mdWavesurferPlayer');\n\t\t\t};\n\t\t\tvar setAutoPlay = function (forcePlay) {\n\t\t\t\tvar controller = getPlayer();\n\t\t\t\tif (controller && (forcePlay || controller.surfer.isPlaying())) {\n\t\t\t\t\tcontroller.autoPlay = true;\n\t\t\t\t}\n\t\t\t};\n\t\t\taudio.setTrack = function (idx, forcePlay) {\n\t\t\t\tif (audio.tracks.length > idx) {\n\t\t\t\t\tif (audio.selectedIndex === idx) {\n\t\t\t\t\t\tvar ctrl = getPlayer();\n\t\t\t\t\t\tctrl.surfer.playPause();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetAutoPlay(forcePlay);\n\t\t\t\t\t\taudio.currentTrack = audio.tracks[idx];\n\t\t\t\t\t\taudio.selectedIndex = idx;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\taudio.extraButtons = [{\n\t\t\t\ticon: 'skip_previous',\n\t\t\t\ttitle: 'Previous',\n\t\t\t\taction: function ($event) {\n\t\t\t\t\tif (audio.selectedIndex > 0) {\n\t\t\t\t\t\taudio.setTrack(audio.selectedIndex - 1);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tclass: ''\n\t\t\t}, {\n\t\t\t\ticon: 'skip_next',\n\t\t\t\ttitle: 'Next',\n\t\t\t\taction: function ($event) {\n\t\t\t\t\tif (audio.selectedIndex < audio.tracks.length - 1) {\n\t\t\t\t\t\taudio.setTrack(audio.selectedIndex + 1);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tclass: ''\n\t\t\t}];\n\n\n\t\t}\n\t]);\n\n /**\n * @ngdoc directive\n * @name mdWavesurfer.md-wavesurfer-audio\n *\n * @description\n * Directive for playing a set of audio files. This directive is analogous to `