{"version":3,"sources":["/source/build/js/admin-attendee-import.html","/source/build/js/admin-attendee.html","/source/build/js/admin-customer.html","/source/build/js/admin-customers.html","/source/build/js/admin-exhibitor.html","/source/build/js/admin-session-import.html","/source/build/js/admin-session.html","/source/build/js/admin-show.html","/source/build/js/admin-survey-email.html","/source/build/js/admin-survey.html","/source/build/js/admin-user.html","/source/build/js/admin-users.html","/source/build/js/api-scan-settings-modal.html","/source/build/js/attendance-export-modal.html","/source/build/js/choose-show.html","/source/build/js/confirmation.html","/source/build/js/console-attendee-edit-modal.html","/source/build/js/console-attendee-search-attendance-modal.html","/source/build/js/console-attendee-search-certificate-modal.html","/source/build/js/console-attendeesearch.html","/source/build/js/console-dashboard.html","/source/build/js/console-nav.html","/source/build/js/console-report.html","/source/build/js/console-venue-room-attendance-modal.html","/source/build/js/console-venue.html","/source/build/js/console.html","/source/build/js/day-selector.html","/source/build/js/exhibitor-import-modal.html","/source/build/js/floorplan-display.html","/source/build/js/floorplan.html","/source/build/js/login.html","/source/build/js/reg-import-settings-modal.html","/source/build/js/region.html","/source/build/js/regions.html","/source/build/js/selected-day-view.html","/source/build/js/widget.html","/source/build/js/reports/ampm.html","/source/build/js/reports/attendance-by-time.html","/source/build/js/reports/attendee-types.html","/source/build/js/reports/event-summary.html","/source/build/js/reports/noshow.html","/source/build/js/reports/registration-pricing-report.html","/source/build/js/reports/session-attendance-by-category.html","/source/build/js/reports/session-attendance-by-track.html","/source/build/js/reports/session-threshold.html","/source/build/js/reports/track-category-attendance.html","/source/build/js/widgets/attendance-by-category.html","/source/build/js/widgets/attendance-by-day.html","/source/build/js/widgets/attendance-by-time.html","/source/build/js/widgets/attendance-over-time.html","/source/build/js/widgets/top-sessions-by-category.html","src/js/services.js","src/js/controllers.js","src/js/directives.js","src/js/routes.js","src/js/app.js"],"names":["module","angular","err","run","$templateCache","put","$","convertQueryResult","query","result","DATA","forEach","row","item","i","COLUMNS","length","toLowerCase","push","factory","CacheBustingService","bust","uri","separator","indexOf","Date","getTime","_user","CurrentUserService","set","user","get","isAdmin","role","id","isSuperAdmin","clear","undefined","isLoggedIn","$rootScope","_show","CurrentShowService","show","$broadcast","$http","$location","currentUserService","LoginService","login","username","password","cb","noop","url","method","data","param","headers","Content-Type","then","fromJson","loginCheck","Upload","ShowService","saveDates","dates","eventid","begintimes","map","begintime","toISOString","join","endtimes","endtime","save","eventname","name","customerid","smtpport","smtpfrom","smtpserver","smtpusername","smtppassword","dem1label","dem2label","dem3label","dem4label","dem5label","dem6label","dem7label","dem8label","dem9label","dem10label","dem11label","dem12label","bUseDem1","bUseDem2","bUseDem3","bUseDem4","bUseDem5","bUseDem6","bUseDem7","bUseDem8","bUseDem9","bUseDem10","bUseDem11","bUseDem12","apishowid","apicontractorid","apisecretkey","apiusername","apipassword","tzoffset","apiuseapidata","exhibitorcustomcss","trackingftpserver","trackingftpport","trackingftpusername","trackingftppassword","trackingftppath","trackingftpfilename","isNew","cache","getCreditCalcMethods","saveCertInfo","certInfo","uploadLogo","upload","filedata","newlogo","getNextSchedImportDate","res","saveDataImportSettings","trackingenabled","trackingdatafileurl","trackingusername","trackingpassword","dataloadinterval","setScheduledTask","triggerForceImport","AttendeeService","list","showid","page","pagesize","attendee","firstname","lastname","designation","salutation","suffix","middlename","attendeetypeid","title","loginid","email","attendeenumber","credentials","companyname","dem1","dem2","dem3","dem4","dem5","dem6","dem7","dem8","dem9","dem10","dem11","dem12","attendeeid","success","listTypes","delete","fileObj","getXLSColHeaders","import","mappings","deleteAttendeeType","type","saveAttendeeType","search","params","sessionlist","sessions","company","city","state","demographic1","demographic2","demographic3","demographic4","demographic5","demographic6","demographic7","demographic8","demographic9","demographic10","demographic11","demographic12","export","sessionid","output","listtype","getAttendance","exportAttendance","format","toUpperCase","toJson","sendCertificates","config","lAttendeeIDs","attendees","eventId","bIncludeLoginInfo","successful","ASUCCESSFUL","REASON","unsuccesful","AUNSUCCESSFUL","ExhibitorService","exhibitor","code","defaultlink","exhibitorid","regenerateLoginToken","getExhibitorImportStatus","scheduleExhibitorImport","emailExhibitor","emailAllExhibitors","console","log","importExhibitors","attendeeService","SessionService","listCategories","session","maxattendance","sessionnumber","presenter","sessiontypeid","sessioncategoryid","mintimeforcredit","creditamt","useapidata","surveyurl","iframeheight","regprice1","regprice2","roomid","deleteSessionType","saveSessionType","deleteSessionCategory","cat","saveSessionCategory","getAttendanceForShow","getRandomAttendee","BSUCCESS","ID","VenueService","getRooms","venue","locationid","getAttendanceForRoom","room","RoomService","venueid","getFloorPlans","saveFloorPlan","rooms","venueId","floorPlanJpg","floorplanjpg","numSuccess","numError","checkComplete","x","y","width","height","rotation","uploadFloorPlan","filename","LocationService","location","isnew","address1","address2","zipcode","zip","country","isprimary","addressid","currentShowService","_config","ConfigService","isLoaded","load","reload","update","searchparams","reportfields","widgettlid","widgettrid","widgetbrid","widgetblid","configService","UserService","roleid","events","event","errors","response","CustomerService","customer","companyName","address","zipCode","phone","fax","companyid","$timeout","AlertService","alerts","getAll","remove","idx","splice","add","alert","timeout","$modal","ConfirmService","instance","showConfirmation","confirmation","open","controller","templateUrl","resolve","msg","ok","cancel","SurveyService","saveShowData","surveywelcome","surveycompletemsg","surveyincludenoshows","surveysendsessionemails","surveysessionsendtime","surveydefaultfrom","surveydefaultsubject","surveydefaultmessage","surveyid","survey","seq","getEmail","emailid","saveEmail","fromaddress","subject","message","timetosend","sent","deleteEmail","ChartService","getAttendanceByCategory","getAttendanceByDay","getAttendanceByTime","$filter","ReportService","noShowReport","date","dateStr","amPmReport","formatDate","amstart","amend","pmstart","pmend","sessionAttByTrackReport","trackid","startdate","enddate","sessionAttByCategoryReport","categoryid","eventSummaryReport","groupby","sessionThresholdReport","getAllDemographicOptions","attendeeTypeDistributionReport","catTrackAttReport","attendanceByTimeReport","dateranges","start","end","label","sessionids","jQuery","_","$scope","$on","newUrl","mode","nav","collapse","toggleCollapse","updateLoginStatus","logout","loginService","process","shows","selected","admin","adminshow","consoleshow","newShow","$window","alertService","scrollTo","closeAlert","$modalInstance","close","dismiss","currentNav","setCurrentNav","re","matches","exec","$routeParams","showService","loadShow","selectedDates","select","datePair","pair","selectedDate","isDate","refresh","venueService","sessionService","attendanceData","getAttendanceData","filter","datesForComparison","getFullYear","getMonth","getDate","getAttendanceDataForRoom","size","attendance","getAttendeeData","modalInstance","fullname","toggleMode","results","editAttendee","showAttendance","file","emailCertificate","loading","sendLoginInfo","send","includeLoginInfo","exportData","action","bSessionInfo","bInOutTimes","bCreditsEarned","bTabs","reports","html","sort","a","b","selectedReport","reportService","settings","dateisopen","mindate","maxdate","dateopts","formatYear","initialDate","opendate","loadData","reportName","reportArgs","bIncludeChart","chartType","ambegintimeisopen","amendtimeisopen","pmbegintimeisopen","pmendtimeisopen","showbegintime","attendeetype","ambegintime","amendtime","pmbegintime","pmendtime","onSetAMBeginTime","onSetAMEndTime","onSetPMBeginTime","onSetPMEndTime","charttype","chart","labels","series","opts","getTotalAttendees","total","numAttendees","sessionName","value","download","creditsrequired","includedem1","includedem2","includedem3","includedem4","includedem5","includedem6","includedem7","includedem8","includedem9","includedem10","includedem11","includedem12","formats","types","key","attendeeType","trackCategory","startdatetime","enddatetime","startisopen","endisopen","onSetStart","onSetEnd","addDateRange","removeDateRange","timeRange","dateFormat","range","locationService","confirmService","surveyService","roomService","exhibitorService","creditcalcmethods","rte","certemailmessage","viewcode","certificatehtml","mobileintro","dashboard","customers","widgets","loadConfig","reloadConfig","nextSchedDate","loadNextSchedDate","refreshNextSchedRunTime","tabs","heading","active","selectedtab","tab","onSetBeginTime","oldTime","newTime","beginisopen","onSetEndTime","deleteDate","addDate","editLocation","selectedLocation","cancelEditLocation","saveLocation","deleteLocation","newLocation","locations","handleWidgetDrop","position","$data","saveConsole","topleft","topright","bottomright","bottomleft","saveDetails","cont","saveCertificates","certmoduleenabled","creditcalcmethod","transcriptdisclaimer","issuecertificate","issuezerocreditcertificates","usemultipagecert","certificatelayout","certificatepagewidth","certificatepageheight","certificatecss","certemailundeliverable","certemailfromaddress","certemailsubject","usemobile","mobileshowmaxcredit","mobileshowcreditedtime","itunesappid","surveys","surveyemails","loadSurveyData","emails","deleteSurvey","deleteSurveyEmail","saveSurveyData","openApiScanSettingsModal","openRegImportSettingsModal","dataLoadIntervalOptions","saveDataImport","exhibitors","loadExhibitors","deleteExhibitor","exhibitorImportScheduled","triggerForceExhibitorImport","showExhibitorImportModal","attendeeTabs","activateAttendeeTab","onManageAttendeesSelected","setTimeout","loadAttendees","attendeePagination","pageSize","totalCount","pageCount","pages","nextPage","Number","prevPage","pagination","Math","ceil","deleteAttendee","attendeeUpload","uploadAttendees","xlsfile","addAttendeeType","attendeetypes","sessionTabs","activateSessionTab","sessiontypes","sessioncategories","loadSessions","categories","deleteSession","sessionUpload","uploadSessions","addSessionType","addSessionCategory","saveVenue","deleteVenue","addVenue","venues","saveRoom","deleteRoom","addRoom","uploadData","uploadFile","num","concat","firstName","lastName","sessiontype","sessioncategory","creditAmt","userService","users","setConfig","edit","isNewUser","roles","userid","customerService","loadSurvey","backToShow","isopen","onSetTimeToSend","loadEmail","backToList","logintoken","sessioncats","cats","begintimeisopen","endtimeisopen","regions","loadFloorPlans","plans","floorplans","onSelectVenue","selectedVenue","$emit","uploadNewFloorplan","newfloorplan","directive","restrict","scope","$watch","showAttendanceForRoom","venueRooms","gridOptions","enableSorting","enableColResize","columnDefs","headerName","field","cellRenderer","buildRoomList","roomInVenue","sessionInDates","getData","hasOwnProperty","api","setRowData","chartService","widget","category","_currentDate","chartData","dayName","sessionsForThisDay","sessionAvg","tempTime","thisTime","getHours","getMinutes","Object","keys","day","uniq","labelMapping","seriesData","Array","fill","time","before","after","selectedPair","newVal","oldVal","replace","transclude","image","link","element","render","css","background-image","top","left","transform","parseInt","require","attrs","ngModel","$parsers","val","$formatters","$routeProvider","$httpProvider","convertDateStringsToDates","input","match","regexIso8601","milliseconds","parse","isNaN","when","defaults","transformResponse","responseData"],"mappings":"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","file":"js/app-54e58486c4.js","sourcesContent":["

Loading headers...

\n

No headers found in file

\n\n
\n\n\t

Import Attendees

\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t\n\t Cancel\n\n
","
\n\n\t

EditAdd Attendee

\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\n\t\t\n\t\t\tFirst Name is required\n\t\t\n\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\n\t\t\n\t\t\tLast Name is required\n\t\t\n\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\n\t\t\n\t\t\tAttendee ID is required\n\t\t\n\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\n\t\t\n\t\t\tEmail should be a valid email address\n\t\t\n\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t\n\t\n\n
","

Edit Customer

\n\n
\n\n\t
\n\t\t\n\t\t\n\t\t\n\t\t\tName is required\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t\t\n\t\t\tAddress 1 is required\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t\t\n\t\t\tAddress 2 is required\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t\t\n\t\t\tCity is required\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t\t\n\t\t\tState is required\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t\t\n\t\t\tZip Code is required\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t\t\n\t\t\tCountry is required\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t\t\n\t\t\tPhone is required\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t\t\n\t\t\tFax is required\n\t\t\n\t
\n\n\t\n\t Cancel\n\n
","

Customers

\n\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n
ActionsIDName
\n\t\t\t\t\n\t\t\t\t\n\t\t\t{{ customer.id }}{{ customer.name }}
\n\n

New

","
\n\n\t

EditAdd Exhibitor

\n\n\t
\n\t\t\n\t\t\n\t\t\n\t\t\tName is required\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t\t\n\t\t\tCode is required\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t\n\t\n\n
","

Loading headers...

\n

No headers found in file

\n\n
\n\n\t

Import Sessions

\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t\n\t Cancel\n\n
","
\n\n\t

EditAdd Session

\n\n\t
\n\t\t\n\t\t\n\n\t\t\n\t\t\tSession Number is required\n\t\t\n\n\t
\n\n\t
\n\t\t\n\t\t\n\n\t\t\n\t\t\tSession title is required\n\t\t\n\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\n\t\t\n\t\t\tMax Attendance must be a number\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t
\n\n\t
\n\t\t\n\n\t\t
\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t

{{ session.begintime | date:'MM/dd/yyyy hh:mm a' }}

\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\n\n\t\t\n\t\t\tBegin Time is required\n\t\t\n\n\t
\n\n\t
\n\t\t\n\n\t\t
\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t

{{ session.endtime | date:'MM/dd/yyyy hh:mm a' }}

\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\n\n\t\t\n\t\t\tEnd Time is required\n\t\t\n\n\t
\n\n\t
\n\t\t\n\t\t\n\n\t\t\n\t\t\tMin. Time to receive credit must be a number\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\n\t\t\n\t\t\tCredit Amt. must be a number\n\t\t\n\t
\n\n\t
\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\n\t\t\n\t\t\tReg Price 1 must be a number\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\n\t\t\n\t\t\tReg Price 2 must be a number\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\n\t\t\n\t\t\tSurvey URL must be a url\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\n\t\t\n\t\t\tiFrame Height must be a number\n\t\t\n\t
\n\n\t\n\t\n\n
","

{{ show.name }}

\n\n\n\n\t\n\t\n\n\t\t
\n\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Event Details

\n\t\t\t\t\t\t\t
\n\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\t\t\n\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\t\tCustomer is required\n\t\t\t\t\t\t\t\t\t\n\n\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\t\t\n\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\t\tEvent name is required\n\t\t\t\t\t\t\t\t\t\n\n\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\t\t\n\n\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\t\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\t
\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\tLeave empty to keep existing logo\n\n\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\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tNOTE: Files should be placed in /ExpoConsole/action/exhibitor/css/\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\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Dates

\n\t\t\t\t\t\t\t
\n\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\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\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\t\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\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
Begin TimeEnd Time
\n\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\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t

{{ date.begintime | date:'MM/dd/yyyy hh:mm a' }}

\n\t\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\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
\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
\n\t\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\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\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t

{{ date.endtime | date:'MM/dd/yyyy hh:mm a' }}

\n\t\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\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
\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
\n\t\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\t\n\t\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\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Demographic Field Labels

\n\t\t\t\t\t\t\t
\n\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\t\t
\n\n\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\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\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\n\t\t\t\t\t\t\t\t\t\t\t
\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\t
\n\n\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\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\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\n\t\t\t\t\t\t\t\t\t\t\t
\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\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\t
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

SMTP Server

\n\t\t\t\t\t\t\t
\n\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\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tUsed as the from address for exhibitor portal login emails.\n\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\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\t
\n\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\t\n\t\t\t\t\t\t\t\t\t\tSMTP Port is required\n\t\t\t\t\t\t\t\t\t\tSMTP Port must be a number\n\t\t\t\t\t\t\t\t\t\n\n\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\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\t
\n\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
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Lead API

\n\t\t\t\t\t\t\t
\n\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\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\t
\n\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\t
\n\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\t
\n\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\t
\n\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\t
\n\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\t\n\t\t\t\t\t\t\t\t\t\tTimezone Offset is required\n\t\t\t\t\t\t\t\t\t\tTimezone Offset must be a number\n\t\t\t\t\t\t\t\t\t\n\n\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\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
\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t\n\n\t\t
\n\n\t
\n\n\t\n\t\n\n\t\n\t\n\n\t\t
\n\n\t\t\t

Locations

\n\n\t\t\t\n\t\t\t\t\n\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\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\t\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\t\t\t\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\t\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\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
ActionsIs Primary?NameAddressCityState/ProvinceZip/PostalCountry
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{{ location.name }}{{ location.address1 }}
{{ location.address2 }}
{{ location.city }}{{ location.state }}{{ location.zip }}{{ location.country }}
\n\n\t\t\t\n\n\t\t
\n\n\t\t
\n\t\t\t
\n\t\t\t\t

Edit Location

\n\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\n\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
\n\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
\n\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
\n\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
\n\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
\n\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
\n\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
\n\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\n\t\t\t\t\t\n\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\n\t
\n\n\t\n\t\n\n\t\t
\n\n\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

Search Params

\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\n\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\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

Report Fields

\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\n\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\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

Dashboard Widgets

\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\n\n\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
\n\t\t\t\t\t\t\t\t\t\t
Top Left
\n\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\t\t{{ show.dashboard.topleft.name }}\n\t\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
\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\t
\n\t\t\t\t\t\t\t\t\t\t
Top Right
\n\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\t\t{{ show.dashboard.topright.name }}\n\t\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
\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\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
Bottom Left
\n\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\t\t{{ show.dashboard.bottomleft.name }}\n\t\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
\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\t
\n\t\t\t\t\t\t\t\t\t\t
Bottom Right
\n\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\t\t{{ show.dashboard.bottomright.name }}\n\t\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
\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

Available Widgets

\n\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\n\t\t\t\t\t\t\t\t\t{{ widget.name }}\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
\n\t\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t\n\n\t\t
\n\n\t
\n\n\t\n\t\n\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t{{ tabs[4].heading }} \n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\n\t\t\t\t

Manage Sessions

\n\n\t\t\t\t\n\t\t\t\t\t\n\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\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\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\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\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
ActionsTypeRoomDate/TimeTitlePresenter
\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{{ sessiontypes[session.sessiontypeid] }}{{ rooms[session.roomid] }}{{ session.begintime | date:'shortDate' }} {{ session.begintime | date:'shortTime' }} - {{ session.endtime | date: 'shortTime' }}{{ session.name }}{{ session.presenter }}
New Session
\n\n\t\t\t
\n\t\t\t\n\t\t\t\t
\n\n\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\n\t\t\t\t\t\t\tXLS File is required\n\t\t\t\t\t\t\n\n\t\t\t\t\t
\n\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\t

Session Venues

\n\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\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\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
\n\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\t
\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\t\n\t\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
\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\t\n\t\t\t
\n\t\t\t\n\t\t\t\t

Session Rooms

\n\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\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\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
\n\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\t
\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\t\n\t\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
\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\t\n\t\t\t
\n\t\t\t\n\t\t\t\t

Session Types

\n\n\t\t\t\t
\n\t\t\t\t\t
\n\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\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\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\t

Session Categories

\n\n\t\t\t\t
\n\t\t\t\t\t
\n\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\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\n\t\t\t\t\n\t\t\t
\n\t\t
\n\n\t
\n\n\t\n\t\n\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t{{ tabs[5].heading }} \n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\n\t\t\t\t

Manage Attendees

\n\n\t\t\t\t

Showing Page {{ attendeePagination.page }} of {{ attendeePagination.pageCount }}

\n\n\t\t\t\t
\n\t\t\t\t\t\n\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\t\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\t\n\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\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\n\t\t\t\t\t\n\t\t\t\t\t\n\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\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\n\t\t\t\t\t\n\t\t\t\t\t\n\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
ActionsIDFirst NameLast NameTitleEmailCompany
\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{{ attendee.attendeenumber }}{{ attendee.firstname }}{{ attendee.lastname }}{{ attendee.title }}{{ attendee.email }}{{ attendee.companyname }}
New Attendee
\n\n\t\t\t
\n\t\t\t\n\n\t\t\t\t
\n\n\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\n\t\t\t\t\t\t\tXLS File is required\n\t\t\t\t\t\t\n\n\t\t\t\t\t
\n\n\t\t\t\t\t\n\t\t\t\t
\n\n\t\t\t
\n\t\t\t\n\n\t\t\t\t

Attendee Types

\n\n\t\t\t\t
\n\t\t\t\t\t
\n\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\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\n\t\t\t\t\n\n\t\t\t
\n\t\t
\n\n\t
\n\n\t\n\t\n\n\t\t
\n\n\t
\n\n\t\n\t\n\n\t\t
\n\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Certificate Module

\n\t\t\t\t\t\t\t
\n\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\t\t\n\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t\t

Open Certificate Module

\n\n\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\n\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\t\t\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\t
\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\t
\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\t
\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\t
\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
\n\n\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\n\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\t\t\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\t
\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
\n\n\t\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\t\n\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
\n\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\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Email

\n\t\t\t\t\t\t\t
\n\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\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\t
\n\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\t
\n\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\t
\n\n\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\t\n\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\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Mobile Site

\n\t\t\t\t\t\t\t
\n\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\t\t\n\t\t\t\t\t\t\t\t
\n\n\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\t\t\n\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\tMobile Site\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\t
\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\t
\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\t
\n\n\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\t\n\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\t
\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
\n\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
\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t\n\n\t\t
\n\n\t\t\n\n\t
\n\n\t\n\t\n\n\t\t
\n\n\t\t\t
\n\n\t\t\t\t
\n\n\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Surveys

\n\t\t\t\t\t\t\t
\n\n\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\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\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\n\t\t\t\t\t\t\t\t\t\n\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\n\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\t\n\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\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
ActionsNameOrder
\n\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{{ survey.name }}{{ survey.seq }}
\n\t\t\t\t\t\t\t\t\t\t\t Add Survey\n\t\t\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\n\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\t\n\n\t\t\t\t\t\t\t\t
\n\n\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\t\n\n\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Emails

\n\t\t\t\t\t\t\t
\n\n\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\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\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\n\t\t\t\t\t\t\t\t\t\n\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\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\n\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\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
ActionsSubjectTime to SendSent?
\n\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{{ email.subject }}{{ email.timetosend | date:'medium' }}
\n\t\t\t\t\t\t\t\t\t\t\t Add Email\n\t\t\t\t\t\t\t\t\t\t
\n\n\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\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\t
\n\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\t
\n\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\t
\n\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\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\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\n\t\t\t\t\t\t
\n\n\t\t\t\t\t
\n\n\t\t\t\t
\n\n\t\t\t
\n\n\t\t\t\n\n\t\t
\n\n\t
\n\n\t\n\t\n\n\t\t
\n\n\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Tracking

\n\t\t\t\t\t\t\t
\n\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\t\t\n\t\t\t\t\t\t\t\t
\n\n\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\t\t\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\tMust be a valid URL (no spaces, no invalid characters, etc)\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\t
\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
\n\n\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\n\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\t\t\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\t
\n\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t

{{ nextSchedDate }}

\n\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\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
\n\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\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

FTP

\n\t\t\t\t\t\t\t
\n\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\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\t
\n\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\t
\n\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\t
\n\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\t
\n\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\t
\n\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\t\n\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\t
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

API Scan Setup

\n\t\t\t\t\t\t\t
\n\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\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Registration Import

\n\t\t\t\t\t\t\t
\n\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\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Force Import

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

You can schedule a forced import that will run 5 minutes from now.

\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\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Exhibitor Import

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t

Is Exhibitor Import Scheduled? Yes No

\n\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t

You can schedule a forced import of exhibitor data that will run 5 minutes from now.

\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\n\t\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t
\n\n\t\t
\n\n\t
\n\n\t\n\t\n\n\t\t

Manage Exhibitors

\n\n\t\t

No exhibitors found. New Exhibitor

\n\n\t\t\n\n\t\t\n\n\t\t
\n\n\t\t\n\t\t\t\n\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\n\t\t\t\t\n\t\t\t\n\t\t\t\n\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\n\t\t\t\t\n\t\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
ActionsIDNameExhibitor Portal Login Link
\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\t\n\t\t\t\t\t{{ exhibitor.id }}{{ exhibitor.name }}Link
New Exhibitor
\n\n\t
\n\n
","
\n\n\t

Edit Survey Email

\n\n\t\n\n\t
\n\t\t\n\t\t\n\n\t\t\n\t\t\tFrom Address is required\n\t\t\tMust be a valid email address\n\t\t\n\n\t
\n\n\t
\n\t\t\n\t\t\n\n\t\t\n\t\t\tSubject is required\n\t\t\n\n\t
\n\n\t
\n\t\t\n\t\t\n\n\t\t\n\t\t\tMessage is required\n\t\t\n\n\t
\n\n\t
\n\t\t\n\n\t\t
\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t

{{ email.timetosend | date:'MM/dd/yyyy hh:mm a' }}

\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\n\n\t\t\n\t\t\tTime to Send is required\n\t\t\n\n\t
\n\n\t
\n\t\t\n\t
\n\n\t\n\t\n\n
","
\n\n\t

Edit Survey

\n\n\t
\n\t\t\n\t\t\n\n\t\t\n\t\t\tName is required\n\t\t\n\n\t
\n\n\t
\n\t\t\n\t\t\n\n\t\t\n\t\t\tSurvey URL is required\n\t\t\tSurvey URL must be a valid URL\n\t\t\n\n\t
\n\n\t
\n\t\t\n\t\t\n\n\t\t\n\t\t\tiFrame Height is required\n\t\t\tMust be a valid number\n\t\t\n\n\t
\n\n\t
\n\t\t\n\t\t\n\n\t\t\n\t\t\tOrder is required\n\t\t\tMust be a valid number\n\t\t\n\n\t
\n\n\t\n\t\n\n
","

Edit User

\n\n
\n\n\t
\n\t\t\n\t\t\n\t\t\n\t\t\tRole is required\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t\t\n\t\t\tFirst Name is required\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t\t\n\t\t\tLast Name is required\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t\t\n\t\t\tEmail is required\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t\t\n\t\t\tUsername is required\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t\tLeave blank to keep existing password\n\t\t\n\t\t\tPassword is required\n\t\t\n\t
\n\n\t
\n\t\t\n\t\t\n\t\tHold CTRL or SHIFT to select mutliple\n\t
\n\n\t\n\t Cancel\n\n
","

Users

\n\n\t\n\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\t\n\t\t\n\t\n\t\n\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\t\n\t\t\n\t\n
ActionsIDFirst NameLast NameUsernameEmailRole
\n\t\t\t\t\n\t\t\t\t\n\t\t\t{{ user.id }}{{ user.firstname }}{{ user.lastname }}{{ user.username }}{{ user.email }}{{ user.role.name }}
\n\n

New

","
\n\t

API Scan Settings

\n
\n
\n\t
\n\t\t\n\t
\n
\n
\n\t\n
","
","
","\n\t{{ dates[0].begintime | date:'fullDate' }}\n\n 1\" class=\"selected-day-view\">\n\t{{ dates[0].begintime | date:'EEEE' }} -\n\t{{ dates[dates.length - 1].begintime | date:'EEEE' }},\n\t{{ dates[0].begintime | date:'MMMM d' }}\n\t\n\t{{ dates[0].begintime | date:'YYYY' }}\n\t\n\t-\n\t\n\t{{ dates[dates.length - 1].begintime | date:'MMMM' }}\n\t\n\t{{ dates[dates.length - 1].begintime | date:'d' }},\n\t{{ dates[dates.length - 1].begintime | date:'yyyy' }}\n\n","
\n\t
\n\t\t

{{ widget.name }}

\n\t
\n\t
\n\t\t
\n\t\t
\n\t\t
\n\t\t
\n\t\t
\n\t
\n
","
\n\t
\n\t\t

AM/PM Report

\n\t
\n\t
\n\t\t
\n\n\t\t\t
\n\t\t\t\t\n\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

{{ params.ambegintime | date:'MM/dd/yyyy hh:mm a' }}

\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\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t
\n\t\t\t\t\n\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

{{ params.amendtime | date:'MM/dd/yyyy hh:mm a' }}

\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\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t
\n\t\t\t\t\n\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

{{ params.pmbegintime | date:'MM/dd/yyyy hh:mm a' }}

\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\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t
\n\t\t\t\t\n\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

{{ params.pmendtime | date:'MM/dd/yyyy hh:mm a' }}

\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\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\n\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
\n\t
\n\t\n\t\t\n\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\t\n\t\t\t\n\t\t\n\t\t\n\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\t\n\t\t\t\n\t\t\n\t
SalutationFirst NameLast NameSuffixDesignation
{{ attendee.salutation }}{{ attendee.firstname }}{{ attendee.lastname }}{{ attendee.suffix }}{{ attendee.designation }}
\n
\n","\n\n\n
\n\t
\n\t\t

Attendance By Time

\n\t
\n\t
\n\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t\t
\n\n\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
\n\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\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
\n\t\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Attendance

\n\t\t\t\t\t\t\t
\n\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\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\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\n\t
\n
","
\n\t
\n\t\t

Attendee Types

\n\t
\n\t
\n\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\n\n\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
\n\n\t\t\t\t\t\t
\n\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\n\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
\n\n\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
\n\n\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
\n\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\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\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\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\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\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\n\t\t\t\t\t\t\n\t\t\t\t\t
Attendee TypeNum Attendees
{{ item.attendeeType }}{{ item.numAttendees }}
Total{{ getTotalAttendees() }}
\n\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t\t
\n\n\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
\n\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Attendee Types

\n\t\t\t\t\t\t\t
\n\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\n\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\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\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\n\t
\n
","
\n\t
\n\t\t

Event Summary Report

\n\t
\n\t
\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t
\n\t
\n
","
\n\t
\n\t\t

No Show Report

\n\t
\n\t
\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\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\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t
\n\t\n\t\t\n\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\t\n\t\t\t\n\t\t\n\t\t\n\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\t\n\t\t\t\n\t\t\n\t
SalutationFirst NameLast NameSuffixDesignation
{{ attendee.salutation }}{{ attendee.firstname }}{{ attendee.lastname }}{{ attendee.suffix }}{{ attendee.designation }}
\n
\n","
\n\t
\n\t\t

Registration Pricing Report

\n\t
\n\t
\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t
\n\t
\n
","
\n\t
\n\t\t

Session Attendance by Category Report

\n\t
\n\t
\n\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\n\n\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
\n\n\t\t\t\t\t\t
\n\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\n\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
\n\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\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\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\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\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\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\n\t\t\t\t\t\t\n\t\t\t\t\t
Session NameNum Attendees
{{ item.sessionName }}{{ item.numAttendees }}
Total{{ getTotalAttendees() }}
\n\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t\t
\n\n\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
\n\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Session Attendance

\n\t\t\t\t\t\t\t
\n\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\n\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\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\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\n\t
\n
","
\n\t
\n\t\t

Session Attendance by Track Report

\n\t
\n\t
\n\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\n\n\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
\n\n\t\t\t\t\t\t
\n\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\n\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
\n\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\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\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\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\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\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\n\t\t\t\t\t\t\n\t\t\t\t\t
Session NameNum Attendees
{{ item.sessionName }}{{ item.numAttendees }}
Total{{ getTotalAttendees() }}
\n\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t\t
\n\n\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
\n\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Session Attendance

\n\t\t\t\t\t\t\t
\n\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\n\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\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\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\n\t
\n
","
\n\t
\n\t\t

Session Threshold Report

\n\t
\n\t
\n\t\t
\n\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\n\t\t\t\n\t\t
\n\t
\n
","
\n\t
\n\t\t

Track/Category Attendance

\n\t
\n\t
\n\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\n\n\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
\n\n\t\t\t\t\t\t
\n\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\n\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
\n\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\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\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\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\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\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\n\t\t\t\t\t\t\n\t\t\t\t\t
{{ params.groupby }}Num Attendees
{{ item.trackCategory }}{{ item.numAttendees }}
Total{{ getTotalAttendees() }}
\n\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t\t
\n\n\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
\n\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

{{ params.groupby }} Attendance

\n\t\t\t\t\t\t\t
\n\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\n\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\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\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\n\t
\n
","\n","\n","\n","\n","
\n\t
\n\t\t\n\t\t{{ venue.name }}\n\t
\n
\n
","/* global angular, jQuery */\n(function(angular, $){\n\n\t\"use strict\";\n\n\tvar convertQueryResult = function(query) {\n\n\t\tvar result = [];\n\n\t\tquery.DATA.forEach(function(row){\n\n\t\t\tvar item = {};\n\n\t\t\tfor(var i = 0; i < query.COLUMNS.length; i++) {\n\t\t\t\titem[query.COLUMNS[i].toLowerCase()] = row[i];\n\t\t\t}\n\n\t\t\tresult.push(item);\n\n\t\t});\n\n\t\treturn result;\n\n\t};\n\n\tangular.module(\"ExpoConsoleServices\", [])\n\t\t.factory(\"CacheBustingService\", [ function(){\n\n\t\t\tvar CacheBustingService = function() {\n\n\t\t\t\treturn {\n\t\t\t\t\tbust: function(uri) {\n\n\t\t\t\t\t\tvar separator = \"?\";\n\n\t\t\t\t\t\tif (uri.indexOf('?') > -1) {\n\t\t\t\t\t\t\tseparator = \"&\";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn uri + separator + \"_v=\" + (new Date()).getTime();\n\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t};\n\n\t\t\treturn new CacheBustingService();\n\n\t\t}])\n\t\t.factory(\"CurrentUserService\", [ function(){\n\n\t\t\tvar _user;\n\n\t\t\tvar CurrentUserService = function() {\n\n\t\t\t\treturn {\n\n\t\t\t\t\tset: function(user) {\n\t\t\t\t\t\t_user = user;\n\t\t\t\t\t},\n\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn _user;\n\t\t\t\t\t},\n\n\t\t\t\t\tisAdmin: function() {\n\t\t\t\t\t\treturn (_user && _user.role && (_user.role.id === 2 || _user.role.id === 3));\n\t\t\t\t\t},\n\n\t\t\t\t\tisSuperAdmin: function() {\n\t\t\t\t\t\treturn (_user && _user.role && _user.role.id === 3);\n\t\t\t\t\t},\n\n\t\t\t\t\tclear: function() {\n\t\t\t\t\t\t_user = undefined;\n\t\t\t\t\t},\n\n\t\t\t\t\tisLoggedIn: function() {\n\t\t\t\t\t\treturn (_user && _user.role && _user.role.id !== 0);\n\t\t\t\t\t}\n\n\t\t\t\t};\n\n\t\t\t};\n\n\t\t\treturn new CurrentUserService();\n\n\t\t}])\n\t\t.factory(\"CurrentShowService\", [ \"$rootScope\", function($rootScope){\n\n\t\t\tvar _show;\n\n\t\t\tvar CurrentShowService = function() {\n\n\t\t\t\treturn {\n\n\t\t\t\t\tset: function(show) {\n\t\t\t\t\t\t_show = show;\n\t\t\t\t\t\t$rootScope.$broadcast(\"CurrentShowChanged\");\n\t\t\t\t\t},\n\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\treturn _show;\n\t\t\t\t\t},\n\n\t\t\t\t\tclear: function() {\n\t\t\t\t\t\t_show = undefined;\n\t\t\t\t\t\t$rootScope.$broadcast(\"CurrentShowChanged\");\n\t\t\t\t\t}\n\n\t\t\t\t};\n\n\t\t\t};\n\n\t\t\treturn new CurrentShowService();\n\n\t\t}])\n\t\t.factory(\"LoginService\", [\"$http\", \"$location\", \"CurrentUserService\", function($http, $location, currentUserService){\n\n\t\t\tvar LoginService = function() {\n\n\t\t\t\treturn {\n\n\t\t\t\t\tlogin: function(username, password, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/user/get.cfm?format=json\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param({\n\t\t\t\t\t\t\t\tusername: username,\n\t\t\t\t\t\t\t\tpassword: password\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(result){\n\n\t\t\t\t\t\t\tcb(angular.fromJson(result.data));\n\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\n\t\t\t\t\tloginCheck: function() {\n\n\t\t\t\t\t\tif (!currentUserService.isLoggedIn()) {\n\t\t\t\t\t\t\t$location.url(\"/\");\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn true;\n\n\t\t\t\t\t}\n\n\t\t\t\t};\n\n\t\t\t};\n\n\t\t\treturn new LoginService();\n\n\t\t}])\n\t\t.factory(\"ShowService\", [ \"$http\", \"Upload\", function($http, Upload){\n\n\t\t\tvar ShowService = function() {\n\n\t\t\t\tvar saveDates = function(id, dates, cb) {\n\n\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\tvar data = {\n\t\t\t\t\t\teventid: id,\n\t\t\t\t\t\tbegintimes: dates.map(function(item){\n\t\t\t\t\t\t\treturn item.begintime.toISOString();\n\t\t\t\t\t\t}).join(\",\"),\n\t\t\t\t\t\tendtimes: dates.map(function(item){\n\t\t\t\t\t\t\treturn item.endtime.toISOString();\n\t\t\t\t\t\t}).join(\",\")\n\t\t\t\t\t};\n\n\t\t\t\t\t$http({\n\t\t\t\t\t\turl: \"/ExpoConsole/action/eventdates/remote.cfc?method=save\",\n\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\tdata: $.param(data),\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}).then(function(){\n\n\t\t\t\t\t\tcb(id);\n\n\t\t\t\t\t});\n\n\t\t\t\t};\n\n\t\t\t\treturn {\n\n\t\t\t\t\tsave: function(show, cb){\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\tvar data = {\n\t\t\t\t\t\t\teventname: show.name,\n\t\t\t\t\t\t\tcustomerid: show.customerid,\n\t\t\t\t\t\t\tsmtpport: show.smtpport,\n\t\t\t\t\t\t\tsmtpfrom: show.smtpfrom,\n\t\t\t\t\t\t\tsmtpserver: show.smtpserver,\n\t\t\t\t\t\t\tsmtpusername: show.smtpusername,\n\t\t\t\t\t\t\tsmtppassword: show.smtppassword,\n\t\t\t\t\t\t\tdem1label: show.dem1label,\n\t\t\t\t\t\t\tdem2label: show.dem2label,\n\t\t\t\t\t\t\tdem3label: show.dem3label,\n\t\t\t\t\t\t\tdem4label: show.dem4label,\n\t\t\t\t\t\t\tdem5label: show.dem5label,\n\t\t\t\t\t\t\tdem6label: show.dem6label,\n\t\t\t\t\t\t\tdem7label: show.dem7label,\n\t\t\t\t\t\t\tdem8label: show.dem8label,\n\t\t\t\t\t\t\tdem9label: show.dem9label,\n\t\t\t\t\t\t\tdem10label: show.dem10label,\n\t\t\t\t\t\t\tdem11label: show.dem11label,\n\t\t\t\t\t\t\tdem12label: show.dem12label,\n\t\t\t\t\t\t\tbUseDem1: show.bUseDem1,\n\t\t\t\t\t\t\tbUseDem2: show.bUseDem2,\n\t\t\t\t\t\t\tbUseDem3: show.bUseDem3,\n\t\t\t\t\t\t\tbUseDem4: show.bUseDem4,\n\t\t\t\t\t\t\tbUseDem5: show.bUseDem5,\n\t\t\t\t\t\t\tbUseDem6: show.bUseDem6,\n\t\t\t\t\t\t\tbUseDem7: show.bUseDem7,\n\t\t\t\t\t\t\tbUseDem8: show.bUseDem8,\n\t\t\t\t\t\t\tbUseDem9: show.bUseDem9,\n\t\t\t\t\t\t\tbUseDem10: show.bUseDem10,\n\t\t\t\t\t\t\tbUseDem11: show.bUseDem11,\n\t\t\t\t\t\t\tbUseDem12: show.bUseDem12,\n\t\t\t\t\t\t\tapishowid: show.apishowid,\n\t\t\t\t\t\t\tapicontractorid: show.apicontractorid,\n\t\t\t\t\t\t\tapisecretkey: show.apisecretkey,\n\t\t\t\t\t\t\tapiusername: show.apiusername,\n\t\t\t\t\t\t\tapipassword: show.apipassword,\n\t\t\t\t\t\t\ttzoffset: show.tzoffset,\n\t\t\t\t\t\t\tapiuseapidata: show.apiuseapidata,\n\t\t\t\t\t\t\texhibitorcustomcss: show.exhibitorcustomcss,\n\t\t\t\t\t\t\ttrackingftpserver: show.trackingftpserver,\n\t\t\t\t\t\t\ttrackingftpport: show.trackingftpport,\n\t\t\t\t\t\t\ttrackingftpusername: show.trackingftpusername,\n\t\t\t\t\t\t\ttrackingftppassword: show.trackingftppassword,\n\t\t\t\t\t\t\ttrackingftppath: show.trackingftppath,\n\t\t\t\t\t\t\ttrackingftpfilename: show.trackingftpfilename\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tvar isNew = true;\n\t\t\t\t\t\tif (show.id) {\n\t\t\t\t\t\t\tdata.eventid = show.id;\n\t\t\t\t\t\t\tisNew = false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/event/\" + ((isNew) ? \"create\" : \"update\") + \".cfm?format=json\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param(data),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(result){\n\n\t\t\t\t\t\t\tsaveDates(result.data.eventid, show.dates, cb);\n\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\n\t\t\t\t\tget: function(id, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/event/get.cfm?format=json&id=\" + id,\n\t\t\t\t\t\t\tmethod: \"get\",\n\t\t\t\t\t\t\tcache: false\n\t\t\t\t\t\t}).then(function(result){\n\n\t\t\t\t\t\t\tcb(result.data);\n\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\n\t\t\t\t\tgetCreditCalcMethods: function(cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http.get(\"/ExpoConsole/action/remote.cfc?method=getCreditCalcMethods\")\n\t\t\t\t\t\t\t.then(function(result){\n\t\t\t\t\t\t\t\tcb(result.data);\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\n\t\t\t\t\tsaveCertInfo: function(certInfo, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/event/remote.cfc?method=savecertinfo\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param(certInfo),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(result){\n\t\t\t\t\t\t\tcb(result.data);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\n\t\t\t\t\tuploadLogo: function(show, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\tUpload.upload({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/upload/logo.cfm?format=json\",\n\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\tfiledata: show.newlogo,\n\t\t\t\t\t\t\t\teventid: show.id\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function () {\n\t\t\t\t\t\t\tcb(true);\n\t\t\t\t\t\t}, function () {\n\t\t\t\t\t\t\tcb(false);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\n\t\t\t\t\tgetNextSchedImportDate: function(show, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/autoupload/autoupload.cfc?method=getNextScheduledDate&returnformat=json&eventid=\" + show.id,\n\t\t\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\t\t\tcache: false\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\n\t\t\t\t\tsaveDataImportSettings: function(show, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/event/update.cfm?format=json\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param({\n\t\t\t\t\t\t\t\teventid: show.id,\n\t\t\t\t\t\t\t\ttrackingenabled: show.trackingenabled,\n\t\t\t\t\t\t\t\ttrackingdatafileurl: show.trackingdatafileurl,\n\t\t\t\t\t\t\t\ttrackingusername: show.trackingusername,\n\t\t\t\t\t\t\t\ttrackingpassword: show.trackingpassword,\n\t\t\t\t\t\t\t\tdataloadinterval: show.dataloadinterval,\n\t\t\t\t\t\t\t\ttrackingftpserver: show.trackingftpserver,\n\t\t\t\t\t\t\t\ttrackingftpport: show.trackingftpport,\n\t\t\t\t\t\t\t\ttrackingftpusername: show.trackingftpusername,\n\t\t\t\t\t\t\t\ttrackingftppassword: show.trackingftppassword,\n\t\t\t\t\t\t\t\ttrackingftppath: show.trackingftppath,\n\t\t\t\t\t\t\t\ttrackingftpfilename: show.trackingftpfilename\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\n\t\t\t\t\tsetScheduledTask: function(show, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/autoupload/schedule.cfm\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param({\n\t\t\t\t\t\t\t\teventid: show.id\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(){\n\t\t\t\t\t\t\tcb(true);\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\n\t\t\t\t\ttriggerForceImport: function(show, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/autoupload/scheduleOneTime.cfm\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param({\n\t\t\t\t\t\t\t\teventid: show.id\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(){\n\t\t\t\t\t\t\tcb(true);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t};\n\n\t\t\t};\n\n\t\t\treturn new ShowService();\n\n\t\t}])\n\t\t.factory(\"AttendeeService\", [ \"$http\", \"Upload\", function($http, Upload){\n\n\t\t\tvar AttendeeService = function() {\n\t\t\t\treturn {\n\t\t\t\t\tlist: function(showid, page, pagesize, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/attendee/list.cfm?format=json&eventid=\" + showid + \"&page=\" + page + \"&pagesize=\" + pagesize,\n\t\t\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\t\t\tcache: false\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tget: function(id, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/attendee/attendee.cfc?method=get&id=\" + id,\n\t\t\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\t\t\tcache: false\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tsave: function(attendee, showid, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\tvar data = {\n\t\t\t\t\t\t\tusername: attendee.username,\n\t\t\t\t\t\t\tfirstname: attendee.firstname,\n\t\t\t\t\t\t\tlastname: attendee.lastname,\n\t\t\t\t\t\t\tpassword: attendee.password,\n\t\t\t\t\t\t\tdesignation: attendee.designation,\n\t\t\t\t\t\t\tsalutation: attendee.salutation,\n\t\t\t\t\t\t\tsuffix: attendee.suffix,\n\t\t\t\t\t\t\tmiddlename: attendee.middlename,\n\t\t\t\t\t\t\teventid: showid,\n\t\t\t\t\t\t\tattendeetypeid: attendee.attendeetypeid,\n\t\t\t\t\t\t\ttitle: attendee.title,\n\t\t\t\t\t\t\tloginid: attendee.email,\n\t\t\t\t\t\t\tattendeenumber: attendee.attendeenumber,\n\t\t\t\t\t\t\tcredentials: attendee.credentials,\n\t\t\t\t\t\t\tcompanyname: attendee.companyname,\n\t\t\t\t\t\t\tdem1: attendee.dem1,\n\t\t\t\t\t\t\tdem2: attendee.dem2,\n\t\t\t\t\t\t\tdem3: attendee.dem3,\n\t\t\t\t\t\t\tdem4: attendee.dem4,\n\t\t\t\t\t\t\tdem5: attendee.dem5,\n\t\t\t\t\t\t\tdem6: attendee.dem6,\n\t\t\t\t\t\t\tdem7: attendee.dem7,\n\t\t\t\t\t\t\tdem8: attendee.dem8,\n\t\t\t\t\t\t\tdem9: attendee.dem9,\n\t\t\t\t\t\t\tdem10: attendee.dem10,\n\t\t\t\t\t\t\tdem11: attendee.dem11,\n\t\t\t\t\t\t\tdem12: attendee.dem12\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (attendee.id) {\n\t\t\t\t\t\t\tdata.attendeeid = attendee.id;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/attendee/\" + ((attendee.id) ? \"update\" : \"create\") + \".cfm?format=json\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param(data),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t}, function(){\n\t\t\t\t\t\t\tcb({ success: false, attendeeid: 0 });\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tlistTypes: function(showid, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/attendeetype/list.cfm?format=json&eventid=\" + showid,\n\t\t\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\t\t\tcache: false\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tdelete: function(attendee, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/attendee/delete.cfm\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param({\n\t\t\t\t\t\t\t\tattendeeid: attendee.id\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(){\n\t\t\t\t\t\t\tcb(true);\n\t\t\t\t\t\t}, function(){\n\t\t\t\t\t\t\tcb(false);\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tupload: function(fileObj, show, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\tUpload.upload({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/upload/attendee.cfm\",\n\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\tfiledata: fileObj,\n\t\t\t\t\t\t\t\teventid: show.id\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function () {\n\t\t\t\t\t\t\tcb(true);\n\t\t\t\t\t\t}, function () {\n\t\t\t\t\t\t\tcb(false);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\t\t\t\t\tgetXLSColHeaders: function(showid, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/upload/getAttendeeColumnHeaders.cfm?format=json&eventid=\" + showid,\n\t\t\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\t\t\tcache: false\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t}, function(){\n\t\t\t\t\t\t\tcb([]);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\t\t\t\t\timport: function(showid, mappings, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/upload/importAttendees.cfm?eventid=\" + showid,\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param(mappings),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(){\n\t\t\t\t\t\t\tcb(true);\n\t\t\t\t\t\t}, function(){\n\t\t\t\t\t\t\tcb(false);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\t\t\t\t\tdeleteAttendeeType: function(type, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/attendeetype/delete.cfm\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param({\n\t\t\t\t\t\t\t\tid: type.id\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(){\n\t\t\t\t\t\t\tcb(true);\n\t\t\t\t\t\t}, function(){\n\t\t\t\t\t\t\tcb(false);\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tsaveAttendeeType: function(showid, type, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\ttype.eventid = showid;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/attendeetype/save.cfm\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param(type),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(){\n\t\t\t\t\t\t\tcb(true);\n\t\t\t\t\t\t}, function(){\n\t\t\t\t\t\t\tcb(false);\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tsearch: function(type, params, showid, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\tvar data;\n\n\t\t\t\t\t\tif (type === \"simple\") {\n\t\t\t\t\t\t\tdata = {\n\t\t\t\t\t\t\t\teventid: showid,\n\t\t\t\t\t\t\t\tname: params.name\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdata = {\n\t\t\t\t\t\t\t\teventid: showid,\n\t\t\t\t\t\t\t\tsessionlist: ((params.sessions && params.sessions.length) ? params.sessions.join(\",\") : \"\"),\n\t\t\t\t\t\t\t\tattendeetypeid: params.attendeetypeid,\n\t\t\t\t\t\t\t\tattendeenumber: params.attendeenumber,\n\t\t\t\t\t\t\t\tfirstname: params.firstname,\n\t\t\t\t\t\t\t\tlastname: params.lastname,\n\t\t\t\t\t\t\t\ttitle: params.title,\n\t\t\t\t\t\t\t\tcompany: params.company,\n\t\t\t\t\t\t\t\tcity: params.city,\n\t\t\t\t\t\t\t\tstate: params.state,\n\t\t\t\t\t\t\t\tdem1: params.demographic1,\n\t\t\t\t\t\t\t\tdem2: params.demographic2,\n\t\t\t\t\t\t\t\tdem3: params.demographic3,\n\t\t\t\t\t\t\t\tdem4: params.demographic4,\n\t\t\t\t\t\t\t\tdem5: params.demographic5,\n\t\t\t\t\t\t\t\tdem6: params.demographic6,\n\t\t\t\t\t\t\t\tdem7: params.demographic7,\n\t\t\t\t\t\t\t\tdem8: params.demographic8,\n\t\t\t\t\t\t\t\tdem9: params.demographic9,\n\t\t\t\t\t\t\t\tdem10: params.demographic10,\n\t\t\t\t\t\t\t\tdem11: params.demographic11,\n\t\t\t\t\t\t\t\tdem12: params.demographic12\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/search/search.cfc?method=getAttendees&returnformat=json\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param(data),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(res){\n\n\t\t\t\t\t\t\tcb(convertQueryResult(res.data));\n\t\t\t\t\t\t}, function(){\n\t\t\t\t\t\t\tcb([]);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\t\t\t\t\texport: function(params, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\tvar url = \"/ExpoConsole/action/attendance/exportall.cfm?format=json\";\n\n\t\t\t\t\t\tif (params.sessionid) {\n\t\t\t\t\t\t\tparams.output = \"csv\";\n\t\t\t\t\t\t\tparams.listtype = \"session\";\n\t\t\t\t\t\t\turl = \"/ExpoConsole/action/attendance/list.cfm?format=json\";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: url,\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param(params),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t}, function(){\n\t\t\t\t\t\t\tcb(false);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\t\t\t\t\tgetAttendance: function(showid, attendeeid, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/attendance/sessionsbyattendee.cfm?format=json&eventid=\" + showid + \"&attendeeid=\" + attendeeid,\n\t\t\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\t\t\tcache: false\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\t\t\t\t\texportAttendance: function(attendeeid, showid, format, data, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/search/exportAttendance.cfm\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param({\n\t\t\t\t\t\t\t\tattendeeid: attendeeid,\n\t\t\t\t\t\t\t\teventid: showid,\n\t\t\t\t\t\t\t\tformat: format.toUpperCase(),\n\t\t\t\t\t\t\t\tdata: angular.toJson(data)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\t\t\t\t\tsendCertificates: function(config, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/certs/remote/remoteAttendeeService.cfc?method=emailCertificateToAttendees&returnformat=json\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param({\n\t\t\t\t\t\t\t\tlAttendeeIDs: config.attendees.join(\",\"),\n\t\t\t\t\t\t\t\teventId: config.showid,\n\t\t\t\t\t\t\t\tbIncludeLoginInfo: ((config.includeLoginInfo) ? true : false)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(res){\n\n\t\t\t\t\t\t\tvar result = {\n\t\t\t\t\t\t\t\tsuccessful: res.data.ASUCCESSFUL.map(function(item){\n\t\t\t\t\t\t\t\t\treturn item.REASON;\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\tunsuccesful: res.data.AUNSUCCESSFUL.map(function(item){\n\t\t\t\t\t\t\t\t\treturn item.REASON;\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\tcb(result);\n\n\t\t\t\t\t\t}, function(){\n\t\t\t\t\t\t\tcb(false);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t\treturn new AttendeeService();\n\n\t\t}])\n\t\t.factory(\"ExhibitorService\", [ \"$http\", \"Upload\", function($http, Upload){\n\n\t\t\tvar ExhibitorService = function() {\n\t\t\t\treturn {\n\t\t\t\t\tlist: function(showid, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/exhibitor/exhibitor.cfc?method=list&returnformat=json&showid=\" + showid,\n\t\t\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\t\t\tcache: false\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tget: function(id, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/exhibitor/exhibitor.cfc?method=get&returnformat=json&id=\" + id,\n\t\t\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\t\t\tcache: false\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tsave: function(exhibitor, showid, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\tvar data = {\n\t\t\t\t\t\t\tname: exhibitor.name,\n\t\t\t\t\t\t\tcode: exhibitor.code,\n\t\t\t\t\t\t\tdefaultlink: exhibitor.defaultlink,\n\t\t\t\t\t\t\temail: exhibitor.email,\n\t\t\t\t\t\t\tshowid: showid\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (exhibitor.id) {\n\t\t\t\t\t\t\tdata.id = exhibitor.id;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/exhibitor/exhibitor.cfc?method=\" + ((exhibitor.id) ? \"update\" : \"create\") + \"&returnformat=json\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param(data),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t}, function(){\n\t\t\t\t\t\t\tcb({ success: false, exhibitorid: 0 });\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tdelete: function(exhibitor, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/exhibitor/exhibitor.cfc?method=delete&returnformat=json\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param({\n\t\t\t\t\t\t\t\tid: exhibitor.id\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(){\n\t\t\t\t\t\t\tcb(true);\n\t\t\t\t\t\t}, function(){\n\t\t\t\t\t\t\tcb(false);\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tregenerateLoginToken: function(exhibitor, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/exhibitor/exhibitor.cfc?method=resetLoginToken&returnformat=json\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param({\n\t\t\t\t\t\t\t\tid: exhibitor.id\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(){\n\t\t\t\t\t\t\tcb(true);\n\t\t\t\t\t\t}, function(){\n\t\t\t\t\t\t\tcb(false);\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\ttriggerForceImport: function(show, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/exhibitor/scheduleOneTime.cfm\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param({\n\t\t\t\t\t\t\t\teventid: show.id\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(){\n\t\t\t\t\t\t\tcb(true);\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tgetExhibitorImportStatus: function(show, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/exhibitor/exhibitor.cfc?method=getimportstatus\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param({\n\t\t\t\t\t\t\t\teventid: show.id\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data === \"true\");\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tscheduleExhibitorImport: function(show, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/exhibitor/exhibitor.cfc?method=scheduleExhibitorImport\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param({\n\t\t\t\t\t\t\t\teventid: show.id\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data === \"true\");\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\temailExhibitor: function(show, exhibitor, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/exhibitor/exhibitor.cfc?method=emailExhibitor\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param({\n\t\t\t\t\t\t\t\teventid: show.id,\n\t\t\t\t\t\t\t\texhibitorid: exhibitor.id\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(){\n\t\t\t\t\t\t\tcb(true);\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\temailAllExhibitors: function(show, cb) {\n\t\t\t\t\t\tconsole.log(\"email all exhibitors service function invoked\");\n\t\t\t\t\t\tcb = cb || angular.noop;\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/exhibitor/exhibitor.cfc?method=emailAllExhibitors\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param({\n\t\t\t\t\t\t\t\teventid: show.id\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(){\n\t\t\t\t\t\t\tcb(true);\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\timportExhibitors: function(fileObj, show, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\tUpload.upload({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/upload/exhibitor.cfm\",\n\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\tfiledata: fileObj,\n\t\t\t\t\t\t\t\teventid: show.id\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function () {\n\t\t\t\t\t\t\tcb(true);\n\t\t\t\t\t\t}, function () {\n\t\t\t\t\t\t\tcb(false);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\n\t\t\t\t};\n\t\t\t};\n\n\t\t\treturn new ExhibitorService();\n\n\t\t}])\n\t\t.factory(\"SessionService\", [ \"$http\", \"Upload\", \"AttendeeService\", function($http, Upload, attendeeService){\n\n\t\t\tvar SessionService = function() {\n\t\t\t\treturn {\n\t\t\t\t\tlist: function(showid, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/session/list.cfm?format=json&eventid=\" + showid,\n\t\t\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\t\t\tcache: false\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tlistTypes: function(showid, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/sessiontype/list.cfm?format=json&eventid=\" + showid,\n\t\t\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\t\t\tcache: false\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t}, function(){\n\t\t\t\t\t\t\tcb([]);\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tlistCategories: function(showid, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/sessioncategory/list.cfm?format=json&eventid=\" + showid,\n\t\t\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\t\t\tcache: false\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t}, function(){\n\t\t\t\t\t\t\tcb([]);\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tget: function(sessionid, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/session/session.cfc?method=get&id=\" + sessionid,\n\t\t\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\t\t\tcache: false\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t}, function(){\n\t\t\t\t\t\t\tcb({});\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tsave: function(session, showid, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\tvar data = {\n\t\t\t\t\t\t\tname: session.name,\n\t\t\t\t\t\t\tmaxattendance: session.maxattendance,\n\t\t\t\t\t\t\tsessionnumber: session.sessionnumber,\n\t\t\t\t\t\t\tpresenter: session.presenter,\n\t\t\t\t\t\t\tsessiontypeid: session.sessiontypeid,\n\t\t\t\t\t\t\tsessioncategoryid: session.sessioncategoryid,\n\t\t\t\t\t\t\tmintimeforcredit: session.mintimeforcredit,\n\t\t\t\t\t\t\tcreditamt: session.creditamt,\n\t\t\t\t\t\t\tbegintime: session.begintime,\n\t\t\t\t\t\t\tendtime: session.endtime,\n\t\t\t\t\t\t\tuseapidata: session.useapidata,\n\t\t\t\t\t\t\tsurveyurl: session.surveyurl,\n\t\t\t\t\t\t\tiframeheight: session.iframeheight,\n\t\t\t\t\t\t\tregprice1: session.regprice1,\n\t\t\t\t\t\t\tregprice2: session.regprice2,\n\t\t\t\t\t\t\troomid: session.roomid,\n\t\t\t\t\t\t\teventid: showid\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (session.id) {\n\t\t\t\t\t\t\tdata.sessionid = session.id;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/session/\" + ((session.id) ? \"update\" : \"create\") + \".cfm?format=json\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param(data),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(){\n\t\t\t\t\t\t\tcb({ success: true });\n\t\t\t\t\t\t}, function(){\n\t\t\t\t\t\t\tcb({ success: false });\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\t\t\t\t\tdelete: function(session, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/session/delete.cfm\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param({\n\t\t\t\t\t\t\t\tid: session.id\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(){\n\t\t\t\t\t\t\tcb(true);\n\t\t\t\t\t\t}, function(){\n\t\t\t\t\t\t\tcb(false);\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tupload: function(fileObj, show, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\tUpload.upload({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/upload/session.cfm\",\n\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\tfiledata: fileObj,\n\t\t\t\t\t\t\t\teventid: show.id\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function () {\n\t\t\t\t\t\t\tcb(true);\n\t\t\t\t\t\t}, function () {\n\t\t\t\t\t\t\tcb(false);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\t\t\t\t\tgetXLSColHeaders: function(showid, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/upload/getSessionColumnHeaders.cfm?format=json&eventid=\" + showid,\n\t\t\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\t\t\tcache: false\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t}, function(){\n\t\t\t\t\t\t\tcb([]);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\t\t\t\t\timport: function(showid, mappings, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/upload/importSessions.cfm?eventid=\" + showid,\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param(mappings),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(){\n\t\t\t\t\t\t\tcb(true);\n\t\t\t\t\t\t}, function(){\n\t\t\t\t\t\t\tcb(false);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\t\t\t\t\tdeleteSessionType: function(type, showid, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/sessiontype/delete.cfm\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param({\n\t\t\t\t\t\t\t\tsessiontypeid: type.id,\n\t\t\t\t\t\t\t\teventid: showid\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(){\n\t\t\t\t\t\t\tcb(true);\n\t\t\t\t\t\t}, function(){\n\t\t\t\t\t\t\tcb(false);\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tsaveSessionType: function(showid, type, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\ttype.eventid = showid;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/sessiontype/save.cfm\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param(type),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(){\n\t\t\t\t\t\t\tcb(true);\n\t\t\t\t\t\t}, function(){\n\t\t\t\t\t\t\tcb(false);\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tdeleteSessionCategory: function(cat, showid, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/sessioncategory/delete.cfm\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param({\n\t\t\t\t\t\t\t\tsessioncategoryid: cat.id,\n\t\t\t\t\t\t\t\teventid: showid\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(){\n\t\t\t\t\t\t\tcb(true);\n\t\t\t\t\t\t}, function(){\n\t\t\t\t\t\t\tcb(false);\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tsaveSessionCategory: function(showid, cat, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\tcat.eventid = showid;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/sessioncategory/save.cfm\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param(cat),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(){\n\t\t\t\t\t\t\tcb(true);\n\t\t\t\t\t\t}, function(){\n\t\t\t\t\t\t\tcb(false);\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tgetAttendanceForShow: function(showid, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/attendance/summary.cfm?eventid=\" + showid + \"&format=json\",\n\t\t\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\t\t\tcache: false\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\t\t\t\t\tgetRandomAttendee: function(sessionid, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/attendee/getrandomattendee.cfm?sesid=\" + sessionid,\n\t\t\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\t\t\tcache: false\n\t\t\t\t\t\t}).then(function(res){\n\n\t\t\t\t\t\t\tvar result = res.data;\n\n\t\t\t\t\t\t\tif (result.BSUCCESS) {\n\t\t\t\t\t\t\t\tattendeeService.get(result.ID, cb);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcb(false);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}, function(){\n\t\t\t\t\t\t\tcb(false);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t\treturn new SessionService();\n\n\t\t}])\n\t\t.factory(\"VenueService\", [ \"$http\", function($http){\n\n\t\t\tvar VenueService = function() {\n\t\t\t\treturn {\n\t\t\t\t\tget: function(id, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/venue/venue.cfc?method=get&returnformat=json&id=\" + id,\n\t\t\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\t\t\tcache: false\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\t\t\t\t\tgetRooms: function(id, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/room/room.cfc?method=getRoomsByVenue&returnformat=json&id=\" + id,\n\t\t\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\t\t\tcache: false\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\t\t\t\t\tsave: function(venue, showid, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\tvar data = {\n\t\t\t\t\t\t\tname: venue.name,\n\t\t\t\t\t\t\tlocationid: venue.locationid\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (venue.id) {\n\t\t\t\t\t\t\tdata.id = venue.id;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/venue/\" + ((venue.id) ? 'update' : 'create') + \".cfm?format=json\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param(data),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(){\n\t\t\t\t\t\t\tcb(true);\n\t\t\t\t\t\t}, function(){\n\t\t\t\t\t\t\tcb(false);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\t\t\t\t\tdelete: function(venue, showid, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/venue/delete.cfm?format=json\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param({\n\t\t\t\t\t\t\t\tid: venue.id\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(){\n\t\t\t\t\t\t\tcb(true);\n\t\t\t\t\t\t}, function(){\n\t\t\t\t\t\t\tcb(false);\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tgetAttendance: function(venue, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/attendance/attendance.cfc?method=getVenueAttendance&returnformat=json&id=\" + venue.id,\n\t\t\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\t\t\tcache: false\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tgetAttendanceForRoom: function(room, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/attendance/attendance.cfc?method=getRoomAttendance&returnformat=json&id=\" + room.id,\n\t\t\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\t\t\tcache: false\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\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\treturn new VenueService();\n\n\t\t}])\n\t\t.factory(\"RoomService\", [ \"$http\", \"Upload\", function($http, Upload){\n\n\t\t\tvar RoomService = function() {\n\t\t\t\treturn {\n\t\t\t\t\tlist: function(showid, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/room/list.cfm?format=json&eventid=\" + showid,\n\t\t\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\t\t\tcache: false\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t}, function(){\n\t\t\t\t\t\t\tcb([]);\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tsave: function(room, showid, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\tvar data = {\n\t\t\t\t\t\t\tname: room.name,\n\t\t\t\t\t\t\tvenueid: room.venueid\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (room.id) {\n\t\t\t\t\t\t\tdata.id = room.id;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/room/\" + ((room.id) ? 'update' : 'create') + \".cfm?format=json\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param(data),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(){\n\t\t\t\t\t\t\tcb(true);\n\t\t\t\t\t\t}, function(){\n\t\t\t\t\t\t\tcb(false);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\t\t\t\t\tdelete: function(room, showid, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/room/delete.cfm?format=json\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param({\n\t\t\t\t\t\t\t\tid: room.id\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(){\n\t\t\t\t\t\t\tcb(true);\n\t\t\t\t\t\t}, function(){\n\t\t\t\t\t\t\tcb(false);\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tgetFloorPlans: function(cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/room/room.cfc?method=getFloorPlans&returnformat=json\",\n\t\t\t\t\t\t\tmethod: \"GET\"\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t}, function(){\n\t\t\t\t\t\t\tcb([]);\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tsaveFloorPlan: function(venue, rooms, show, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/room/room.cfc?method=saveFloorPlan&returnformat=json\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param({\n\t\t\t\t\t\t\t\tvenueId: venue.id,\n\t\t\t\t\t\t\t\tfloorPlanJpg: venue.floorplanjpg\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(){\n\n\t\t\t\t\t\t\tvar numSuccess = 0;\n\t\t\t\t\t\t\tvar numError = 0;\n\n\t\t\t\t\t\t\tvar checkComplete = function() {\n\t\t\t\t\t\t\t\tif (numSuccess + numError === rooms.length) {\n\t\t\t\t\t\t\t\t\tcb(numError === 0);\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\trooms.forEach(function(room){\n\n\t\t\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\t\t\turl: \"/ExpoConsole/action/room/room.cfc?method=saveRegionInfo&returnformat=json\",\n\t\t\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\t\t\tdata: $.param({\n\t\t\t\t\t\t\t\t\t\tid: room.id,\n\t\t\t\t\t\t\t\t\t\tx: room.x,\n\t\t\t\t\t\t\t\t\t\ty: room.y,\n\t\t\t\t\t\t\t\t\t\twidth: room.width,\n\t\t\t\t\t\t\t\t\t\theight: room.height,\n\t\t\t\t\t\t\t\t\t\trotation: room.rotation\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}).then(function(){\n\n\t\t\t\t\t\t\t\t\tnumSuccess++;\n\n\t\t\t\t\t\t\t\t\tcheckComplete();\n\n\t\t\t\t\t\t\t\t}, function(){\n\n\t\t\t\t\t\t\t\t\tnumError++;\n\n\t\t\t\t\t\t\t\t\tcheckComplete();\n\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t}, function(){\n\t\t\t\t\t\t\tcb(false);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\t\t\t\t\tuploadFloorPlan: function(fileObj, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\tUpload.upload({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/upload/uploadFloorPlan.cfm?format=json\",\n\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\tfiledata: fileObj\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function (res) {\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t}, function () {\n\t\t\t\t\t\t\tcb({ success: false, filename: \"\" });\n\t\t\t\t\t\t});\n\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t\treturn new RoomService();\n\n\t\t}])\n\t\t.factory(\"LocationService\", [ \"$http\", function($http){\n\n\t\t\tvar LocationService = function(){\n\t\t\t\treturn {\n\n\t\t\t\t\tdelete: function(location, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/location/delete.cfm\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param({\n\t\t\t\t\t\t\t\tlocationid: location.id\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(result){\n\t\t\t\t\t\t\tcb(result.data);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\n\t\t\t\t\tsave: function(location, showid, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\tvar isnew = ((location.id) ? false : true);\n\n\t\t\t\t\t\tvar data = {\n\t\t\t\t\t\t\taddress1: location.address1,\n\t\t\t\t\t\t\taddress2: location.address2,\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\tzipcode: location.zip,\n\t\t\t\t\t\t\tcountry: location.country,\n\t\t\t\t\t\t\tname: location.name,\n\t\t\t\t\t\t\teventid: showid,\n\t\t\t\t\t\t\tisprimary: location.isprimary\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isnew) {\n\t\t\t\t\t\t\tdata.addressid = location.addressid;\n\t\t\t\t\t\t\tdata.locationid = location.id;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/location/\" + ((isnew) ? 'create' : 'update') + \".cfm?format=json\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param(data),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(result){\n\t\t\t\t\t\t\tcb(result.data);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t}\n\n\t\t\t\t};\n\t\t\t};\n\n\t\t\treturn new LocationService();\n\n\t\t}])\n\t\t.factory(\"ConfigService\", [ \"$http\", \"CurrentUserService\", \"CurrentShowService\", function($http, currentUserService, currentShowService){\n\n\t\t\tvar _config;\n\n\t\t\tvar ConfigService = function() {\n\n\t\t\t\tvar isLoaded = function() {\n\t\t\t\t\tif (!_config) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t};\n\n\t\t\t\tvar set = function(config) {\n\t\t\t\t\t_config = config;\n\t\t\t\t};\n\n\t\t\t\tvar clear = function() {\n\t\t\t\t\tset(undefined);\n\t\t\t\t};\n\n\t\t\t\tvar load = function(cb) {\n\n\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\tvar user = currentUserService.get();\n\n\t\t\t\t\t$http({\n\t\t\t\t\t\turl: \"/ExpoConsole/action/config/get.cfm?format=json&userid=\" + user.id,\n\t\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\t\tcache: false\n\t\t\t\t\t}).then(function(result){\n\n\t\t\t\t\t\tvar config = angular.fromJson(result.data);\n\n\t\t\t\t\t\tset(config);\n\n\t\t\t\t\t\tcb(config);\n\n\t\t\t\t\t});\n\n\t\t\t\t};\n\n\t\t\t\tvar reload = function(cb) {\n\t\t\t\t\tclear();\n\t\t\t\t\tload(cb);\n\t\t\t\t};\n\n\t\t\t\treturn {\n\n\t\t\t\t\tget: function(cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\t\t\t\t\t\tif (isLoaded()) {\n\t\t\t\t\t\t\tcb(_config);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tload(cb);\n\t\t\t\t\t},\n\n\t\t\t\t\tload: load,\n\n\t\t\t\t\tclear: clear,\n\n\t\t\t\t\treload: reload,\n\n\t\t\t\t\tset: set,\n\n\t\t\t\t\tisLoaded: isLoaded,\n\n\t\t\t\t\tupdate: function(data, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\tvar show = currentShowService.get();\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/config/set.cfm?format=json&\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param({\n\t\t\t\t\t\t\t\teventid: show.id,\n\t\t\t\t\t\t\t\tsearchparams: data.searchparams.map(function(item){\n\t\t\t\t\t\t\t\t\treturn item.id;\n\t\t\t\t\t\t\t\t}).join(\",\"),\n\t\t\t\t\t\t\t\treportfields: data.reportfields.map(function(item){\n\t\t\t\t\t\t\t\t\treturn item.id;\n\t\t\t\t\t\t\t\t}).join(\",\"),\n\t\t\t\t\t\t\t\twidgettlid: data.widgettlid,\n\t\t\t\t\t\t\t\twidgettrid: data.widgettrid,\n\t\t\t\t\t\t\t\twidgetbrid: data.widgetbrid,\n\t\t\t\t\t\t\t\twidgetblid: data.widgetblid\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(result){\n\n\t\t\t\t\t\t\tif (result.data) {\n\t\t\t\t\t\t\t\treload(cb);\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tcb(false);\n\n\t\t\t\t\t\t});\n\n\t\t\t\t\t}\n\n\t\t\t\t};\n\n\t\t\t};\n\n\t\t\treturn new ConfigService();\n\n\t\t}])\n\t\t.factory(\"UserService\", [\"$http\", \"ConfigService\", function($http, configService){\n\n\t\t\tvar UserService = function() {\n\n\t\t\t\treturn {\n\n\t\t\t\t\tdelete: function(user, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/user/delete.cfm?format=json\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param({\n\t\t\t\t\t\t\t\tid: user.id\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(){\n\n\t\t\t\t\t\t\tcb(true);\n\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\n\t\t\t\t\tget: function(id, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http.get(\"/ExpoConsole/action/user/get.cfm?format=json&userid=\" + id)\n\t\t\t\t\t\t\t.then(function(result){\n\t\t\t\t\t\t\t\tcb(angular.fromJson(result.data));\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\n\t\t\t\t\tsave: function(user, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\tvar data = {};\n\n\t\t\t\t\t\tdata.firstname = user.firstname;\n\t\t\t\t\t\tdata.lastname = user.lastname;\n\t\t\t\t\t\tdata.email = user.email;\n\t\t\t\t\t\tdata.username = user.username;\n\t\t\t\t\t\tdata.roleid = user.role.id;\n\n\t\t\t\t\t\tif (user.role.id !== 3) {\n\t\t\t\t\t\t\tdata.events = user.events.map(function(event){\n\t\t\t\t\t\t\t\treturn event.id;\n\t\t\t\t\t\t\t}).join(\",\");\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (user.id) {\n\t\t\t\t\t\t\tdata.id = user.id;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (user.password && user.password.length) {\n\t\t\t\t\t\t\tdata.password = user.password;\n\t\t\t\t\t\t} else if (!user.id) {\n\t\t\t\t\t\t\tcb({\n\t\t\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\t\t\terrors: [ \"Password is required for new users\" ]\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/user/\" + ((data.id) ? 'update' : 'create') + \".cfm?format=json\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param(data),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(response){\n\n\t\t\t\t\t\t\tvar user = angular.fromJson(response.data);\n\n\t\t\t\t\t\t\t// reload the config\n\t\t\t\t\t\t\tconfigService.reload();\n\n\t\t\t\t\t\t\tvar result = {\n\t\t\t\t\t\t\t\tsuccess: ((user.id) ? true : false),\n\t\t\t\t\t\t\t\terrors: []\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tif (!result.success) {\n\t\t\t\t\t\t\t\tresult.errors.push(\"There was a problem saving the user\");\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tcb(result);\n\n\t\t\t\t\t\t}, function(){\n\t\t\t\t\t\t\tcb({\n\t\t\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\t\t\terrors: [ \"There was a problem saving the user\" ]\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};\n\n\t\t\t};\n\n\t\t\treturn new UserService();\n\n\t\t}])\n\t\t.factory(\"CustomerService\", [\"$http\", \"ConfigService\", function($http, configService){\n\n\t\t\tvar CustomerService = function() {\n\n\t\t\t\treturn {\n\n\t\t\t\t\tdelete: function(customer, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/customer/delete.cfm?format=json\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param({\n\t\t\t\t\t\t\t\tid: customer.id\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(){\n\n\t\t\t\t\t\t\tcb(true);\n\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\n\t\t\t\t\tget: function(id, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http.get(\"/ExpoConsole/action/customer/get.cfm?format=json&customerid=\" + id)\n\t\t\t\t\t\t\t.then(function(result){\n\t\t\t\t\t\t\t\tcb(angular.fromJson(result.data));\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\n\t\t\t\t\tsave: function(customer, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\tvar data = {};\n\n\t\t\t\t\t\tdata.companyName = customer.company.name;\n\t\t\t\t\t\tdata.address1 = customer.company.address.address1;\n\t\t\t\t\t\tdata.address2 = customer.company.address.address2;\n\t\t\t\t\t\tdata.city = customer.company.address.city;\n\t\t\t\t\t\tdata.country = customer.company.address.country;\n\t\t\t\t\t\tdata.state = customer.company.address.state;\n\t\t\t\t\t\tdata.zipCode = customer.company.address.zipcode;\n\t\t\t\t\t\tdata.phone = customer.company.address.phone;\n\t\t\t\t\t\tdata.fax = customer.company.address.fax;\n\n\t\t\t\t\t\tif (customer.company.address.id) {\n\t\t\t\t\t\t\tdata.addressid = customer.company.address.id;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (customer.company.id) {\n\t\t\t\t\t\t\tdata.companyid = customer.company.id;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (customer.id) {\n\t\t\t\t\t\t\tdata.id = customer.id;\n\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/customer/\" + ((data.id) ? 'update' : 'create') + \".cfm?format=json\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param(data),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(response){\n\n\t\t\t\t\t\t\tvar customer = angular.fromJson(response.data);\n\n\t\t\t\t\t\t\t// reload the config\n\t\t\t\t\t\t\tconfigService.reload();\n\n\t\t\t\t\t\t\tvar result = {\n\t\t\t\t\t\t\t\tsuccess: ((customer.id) ? true : false),\n\t\t\t\t\t\t\t\terrors: []\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tif (!result.success) {\n\t\t\t\t\t\t\t\tresult.errors.push(\"There was a problem saving the customer\");\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tcb(result);\n\n\t\t\t\t\t\t}, function(){\n\t\t\t\t\t\t\tcb({\n\t\t\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\t\t\terrors: [ \"There was a problem saving the customer\" ]\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};\n\n\t\t\t};\n\n\t\t\treturn new CustomerService();\n\n\t\t}])\n\t\t.factory(\"AlertService\", [ \"$rootScope\", \"$timeout\", function($rootScope, $timeout){\n\n\t\t\tvar AlertService = function(){\n\n\t\t\t\tvar alerts = [];\n\n\t\t\t\treturn {\n\n\t\t\t\t\tgetAll: function() {\n\t\t\t\t\t\treturn alerts;\n\t\t\t\t\t},\n\n\t\t\t\t\tremove: function(idx) {\n\t\t\t\t\t\talerts.splice(idx, 1);\n\t\t\t\t\t\t$rootScope.$broadcast(\"AlertRemoved\");\n\t\t\t\t\t},\n\n\t\t\t\t\tadd: function(alert) {\n\n\t\t\t\t\t\talert.timeout = alert.timeout || 5000;\n\n\t\t\t\t\t\talerts.push(alert);\n\n\t\t\t\t\t\t$timeout(function(){\n\t\t\t\t\t\t\talerts.splice(alerts.indexOf(alert), 1);\n\t\t\t\t\t\t\t$rootScope.$broadcast(\"AlertRemoved\");\n\t\t\t\t\t\t}, alert.timeout);\n\n\t\t\t\t\t\t$rootScope.$broadcast(\"AlertAdded\");\n\t\t\t\t\t},\n\n\t\t\t\t\tclear: function() {\n\t\t\t\t\t\talerts = [];\n\t\t\t\t\t\t$rootScope.$broadcast(\"AlertsCleared\");\n\t\t\t\t\t}\n\n\t\t\t\t};\n\n\t\t\t};\n\n\t\t\treturn new AlertService();\n\n\t\t}])\n\t\t.factory(\"ConfirmService\", [ \"$modal\", function($modal){\n\n\t\t\tvar ConfirmService = function(){\n\n\t\t\t\tvar instance;\n\n\t\t\t\tvar showConfirmation = function(confirmation) {\n\n\t\t\t\t\tinstance = $modal.open({\n\t\t\t\t\t\tcontroller: \"ConfirmInstanceController\",\n\t\t\t\t\t\ttemplateUrl: \"src/html/confirmation.html\",\n\t\t\t\t\t\tresolve: {\n\t\t\t\t\t\t\tmsg: function() {\n\t\t\t\t\t\t\t\treturn confirmation.msg;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\ttitle: function() {\n\t\t\t\t\t\t\t\treturn confirmation.title;\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\tconfirmation.ok = confirmation.ok || angular.noop;\n\t\t\t\t\tconfirmation.cancel = confirmation.cancel || angular.noop;\n\n\t\t\t\t\tinstance.result.then(confirmation.ok, confirmation.cancel);\n\n\t\t\t\t};\n\n\t\t\t\treturn {\n\t\t\t\t\tshow: function(title, msg, ok, cancel){\n\t\t\t\t\t\tshowConfirmation({\n\t\t\t\t\t\t\ttitle: title,\n\t\t\t\t\t\t\tmsg: msg,\n\t\t\t\t\t\t\tok: ok,\n\t\t\t\t\t\t\tcancel: cancel\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\treturn new ConfirmService();\n\n\t\t}])\n\t\t.factory(\"SurveyService\", [ \"$http\", function($http){\n\n\t\t\tvar SurveyService = function() {\n\t\t\t\treturn {\n\t\t\t\t\tlist: function(showid, cb){\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/survey/list.cfm?format=json&eventid=\" + showid,\n\t\t\t\t\t\t\tmethod: \"get\",\n\t\t\t\t\t\t\tcache: false\n\t\t\t\t\t\t}).then(function(result){\n\n\t\t\t\t\t\t\tcb(result.data);\n\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\t\t\t\t\tsaveShowData: function(show, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/survey/updateevent.cfm\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param({\n\t\t\t\t\t\t\t\teventid: show.id,\n\t\t\t\t\t\t\t\tsurveywelcome: show.surveywelcome,\n\t\t\t\t\t\t\t\tsurveycompletemsg: show.surveycompletemsg,\n\t\t\t\t\t\t\t\tsurveyincludenoshows: show.surveyincludenoshows,\n\t\t\t\t\t\t\t\tsurveysendsessionemails: show.surveysendsessionemails,\n\t\t\t\t\t\t\t\tsurveysessionsendtime: show.surveysessionsendtime,\n\t\t\t\t\t\t\t\tsurveydefaultfrom: show.surveydefaultfrom,\n\t\t\t\t\t\t\t\tsurveydefaultsubject: show.surveydefaultsubject,\n\t\t\t\t\t\t\t\tsurveydefaultmessage: show.surveydefaultmessage\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(){\n\n\t\t\t\t\t\t\tcb(true);\n\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\t\t\t\t\tget: function(surveyid, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/survey/get.cfm?surveyid=\" + surveyid,\n\t\t\t\t\t\t\tmethod: \"get\",\n\t\t\t\t\t\t\tcache: false\n\t\t\t\t\t\t}).then(function(result){\n\t\t\t\t\t\t\tcb(result.data);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\t\t\t\t\tsave: function(survey, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\tvar data = {\n\t\t\t\t\t\t\tname: survey.name,\n\t\t\t\t\t\t\tsurveyurl: survey.surveyurl,\n\t\t\t\t\t\t\teventid: survey.eventid,\n\t\t\t\t\t\t\tseq: survey.seq,\n\t\t\t\t\t\t\tiframeheight: survey.iframeheight\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (survey.id) {\n\t\t\t\t\t\t\tdata.surveyid = survey.id;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/survey/save.cfm?format=json\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param(data),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(result){\n\t\t\t\t\t\t\tcb(result.data);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\n\t\t\t\t\tdelete: function(survey, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/survey/delete.cfm\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param({\n\t\t\t\t\t\t\t\tid: survey.id\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(){\n\t\t\t\t\t\t\tcb(survey);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\n\t\t\t\t\tgetEmail: function(emailid, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/surveyemail/get.cfm?emailid=\" + emailid,\n\t\t\t\t\t\t\tmethod: \"get\",\n\t\t\t\t\t\t\tcache: false\n\t\t\t\t\t\t}).then(function(result){\n\t\t\t\t\t\t\tcb(result.data);\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\n\t\t\t\t\tsaveEmail: function(email, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\tvar data = {\n\t\t\t\t\t\t\tfromaddress: email.fromaddress,\n\t\t\t\t\t\t\tsubject: email.subject,\n\t\t\t\t\t\t\tmessage: email.message,\n\t\t\t\t\t\t\ttimetosend: email.timetosend.toISOString(),\n\t\t\t\t\t\t\tsent: email.sent,\n\t\t\t\t\t\t\teventid: email.eventid\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (email.id) {\n\t\t\t\t\t\t\tdata.emailid = email.id;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/surveyemail/save.cfm?format=json\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param(data),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(result){\n\t\t\t\t\t\t\tcb(result.data);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\n\t\t\t\t\tdeleteEmail: function(email, cb) {\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/surveyemail/delete.cfm\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param({\n\t\t\t\t\t\t\t\tid: email.id\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(){\n\t\t\t\t\t\t\tcb(email);\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\treturn new SurveyService();\n\n\t\t}])\n\t\t.factory(\"ChartService\", [ \"$http\", function($http){\n\n\t\t\tvar ChartService = function() {\n\n\t\t\t\treturn {\n\t\t\t\t\tgetAttendanceByCategory: function(show, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/charts/charts.cfc?method=getAttendanceByCategory&returnformat=json&eventid=\" + show.id,\n\t\t\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\t\t\tcache: false\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\t\t\t\t\tgetAttendanceByDay: function(show, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/charts/charts.cfc?method=getAttendanceByDay&returnformat=json&eventid=\" + show.id,\n\t\t\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\t\t\tcache: false\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\t\t\t\t\tgetAttendanceByTime: function(show, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/charts/charts.cfc?method=getAttendanceByTime&returnformat=json&eventid=\" + show.id,\n\t\t\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\t\t\tcache: false\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t};\n\n\t\t\treturn new ChartService();\n\n\t\t}])\n\t\t.factory(\"ReportService\", [ \"$http\", \"$filter\", function($http, $filter){\n\n\t\t\tvar ReportService = function() {\n\t\t\t\treturn {\n\t\t\t\t\tnoShowReport: function(showid, date, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\tvar dateStr = \"\";\n\n\t\t\t\t\t\tif (date) {\n\t\t\t\t\t\t\tdateStr = $filter('date')(date, 'M/d/yyyy');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/reports/report.cfc?method=noShowReport&returnformat=json&eventid=\" + showid + \"&date=\" + dateStr,\n\t\t\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\t\t\tcache: false\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\t\t\t\t\tamPmReport: function(params, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\tvar formatDate = function(date) {\n\t\t\t\t\t\t\treturn $filter('date')(date, 'yyyy-MM-dd HH:mm');\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t// format dates\n\t\t\t\t\t\tparams.amstart = formatDate(params.amstart);\n\t\t\t\t\t\tparams.amend = formatDate(params.amend);\n\t\t\t\t\t\tparams.pmstart = formatDate(params.pmstart);\n\t\t\t\t\t\tparams.pmend = formatDate(params.pmend);\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/reports/report.cfc?method=ampmreport&returnformat=json\",\n\t\t\t\t\t\t\tdata: $.param(params),\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\t\t\t\t\tsessionAttByTrackReport: function(showid, trackid, startdate, enddate, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\tvar formatDate = function(date) {\n\t\t\t\t\t\t\treturn $filter('date')(date, 'yyyy-MM-dd');\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tvar params = {\n\t\t\t\t\t\t\teventid: showid,\n\t\t\t\t\t\t\ttrackid: trackid,\n\t\t\t\t\t\t\tstartdate: formatDate(startdate),\n\t\t\t\t\t\t\tenddate: formatDate(enddate)\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/reports/report.cfc?method=trackAttendanceDistributionReport&returnformat=json\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param(params),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\t\t\t\t\tsessionAttByCategoryReport: function(showid, categoryid, startdate, enddate, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\tvar formatDate = function(date) {\n\t\t\t\t\t\t\treturn $filter('date')(date, 'yyyy-MM-dd');\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tvar params = {\n\t\t\t\t\t\t\teventid: showid,\n\t\t\t\t\t\t\tcategoryid: categoryid,\n\t\t\t\t\t\t\tstartdate: formatDate(startdate),\n\t\t\t\t\t\t\tenddate: formatDate(enddate)\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/reports/report.cfc?method=categoryAttendanceDistributionReport&returnformat=json\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param(params),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\t\t\t\t\teventSummaryReport: function(showid, groupby, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/reports/report.cfc?method=eventSummaryReport&returnformat=json\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param({\n\t\t\t\t\t\t\t\teventid: showid,\n\t\t\t\t\t\t\t\tgroupby: groupby\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\t\t\t\t\tsessionThresholdReport: function(showid, params, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\tparams.eventid = showid;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/reports/report.cfc?method=sessionThresholdReport&returnformat=json\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param(params),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\t\t\t\t\tgetAllDemographicOptions: function(showid, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/reports/report.cfc?method=getAllDemographicOptions&returnformat=json\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param({\n\t\t\t\t\t\t\t\teventid: showid\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\t\t\t\t\tattendeeTypeDistributionReport: function(showid, sessions, trackid, categoryid, startdate, enddate, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\tvar formatDate = function(date) {\n\t\t\t\t\t\t\treturn $filter('date')(date, 'yyyy-MM-dd');\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tvar params = {\n\t\t\t\t\t\t\teventid: showid,\n\t\t\t\t\t\t\tsessionid: angular.toJson(sessions),\n\t\t\t\t\t\t\tstartdate: formatDate(startdate),\n\t\t\t\t\t\t\tenddate: formatDate(enddate)\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (trackid) {\n\t\t\t\t\t\t\tparams.trackid = trackid;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (categoryid) {\n\t\t\t\t\t\t\tparams.categoryid = categoryid;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/reports/report.cfc?method=attendeeTypeDistributionReport&returnformat=json\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param(params),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\t\t\t\t\tcatTrackAttReport: function(showid, groupby, startdate, enddate, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\tvar formatDate = function(date) {\n\t\t\t\t\t\t\treturn $filter('date')(date, 'yyyy-MM-dd');\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tvar params = {\n\t\t\t\t\t\t\teventid: showid,\n\t\t\t\t\t\t\ttype: groupby,\n\t\t\t\t\t\t\tstartdate: formatDate(startdate),\n\t\t\t\t\t\t\tenddate: formatDate(enddate)\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/reports/report.cfc?method=catTrackAttReport&returnformat=json\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param(params),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\t\t\t\t\tattendanceByTimeReport: function(showid, dates, sessions, cb) {\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\tvar formatDate = function(date, format) {\n\t\t\t\t\t\t\tformat = format || 'yyyy-MM-dd h:mm a';\n\t\t\t\t\t\t\treturn $filter('date')(date, format);\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tvar params = {\n\t\t\t\t\t\t\teventid: showid,\n\t\t\t\t\t\t\tdateranges: angular.toJson(dates.map(function(date){\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\tstartdate: formatDate(date.start),\n\t\t\t\t\t\t\t\t\tenddate: formatDate(date.end),\n\t\t\t\t\t\t\t\t\tlabel: formatDate(date.start, 'MM/dd/yyyy h:mm a') + \" - \" + formatDate(date.end, 'MM/dd/yyyy h:mm a')\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\n\t\t\t\t\t\tif (sessions.length) {\n\t\t\t\t\t\t\tparams.sessionids = angular.toJson(sessions);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/reports/report.cfc?method=attendanceByTimeReport&returnformat=json\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param(params),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t},\n\t\t\t\t\texport: function(params, cb) {\n\n\t\t\t\t\t\t/*\n\n\t\t\t\t\t\tparams:\n\t\t\t\t\t\t\treportName\n\t\t\t\t\t\t\treportArgs\n\t\t\t\t\t\t\teventId\n\t\t\t\t\t\t\tformat\n\t\t\t\t\t\t\tbIncludeChart\n\t\t\t\t\t\t\tchartType\n\n\t\t\t\t\t\t*/\n\n\t\t\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\t\t\t$http({\n\t\t\t\t\t\t\turl: \"/ExpoConsole/action/reports/report.cfc?method=exportReport&returnformat=json\",\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t\tdata: $.param(params),\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).then(function(res){\n\t\t\t\t\t\t\tcb(res.data);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t\treturn new ReportService();\n\n\t\t}]);\n\n})(angular, jQuery);\n","/* global angular, _ */\n(function(angular, _){\n\n\t\"use strict\";\n\n\tangular.module(\"ExpoConsoleControllers\", [])\n\n\t\t// common controllers\n\n\t\t.controller(\"BaseController\", [ \"$scope\", function($scope){\n\n\t\t\t$scope.$on(\"$locationChangeSuccess\", function(event, newUrl){\n\t\t\t\t$scope.mode = \"\";\n\t\t\t\tif (newUrl.indexOf(\"/console\") > -1) {\n\t\t\t\t\t$scope.mode = \"console\";\n\t\t\t\t} else if (newUrl.indexOf(\"/admin\") > -1) {\n\t\t\t\t\t$scope.mode = \"admin\";\n\t\t\t\t}\n\t\t\t});\n\n\t\t}])\n\t\t.controller(\"NavController\", [ \"$scope\", \"$rootScope\", \"$location\", \"CurrentUserService\", \"CurrentShowService\", \"ConfigService\", function($scope, $rootScope, $location, currentUserService, currentShowService, configService){\n\n\t\t\t$scope.nav = {\n\t\t\t\tcollapse: true\n\t\t\t};\n\n\t\t\t$scope.toggleCollapse = function(){\n\t\t\t\t$scope.nav.collapse=!$scope.nav.collapse;\n\t\t\t};\n\n\t\t\tvar updateLoginStatus = function() {\n\t\t\t\t$scope.isLoggedIn = currentUserService.isLoggedIn();\n\t\t\t\t$scope.isAdmin = currentUserService.isAdmin();\n\t\t\t\t$scope.isSuperAdmin = currentUserService.isSuperAdmin();\n\t\t\t};\n\n\t\t\t$scope.$on(\"LoginSuccess\", function(){\n\t\t\t\tupdateLoginStatus();\n\t\t\t});\n\n\t\t\t$scope.$on(\"LoginFailure\", function(){\n\t\t\t\tupdateLoginStatus();\n\t\t\t});\n\n\t\t\t$scope.$on(\"Logout\", function(){\n\t\t\t\tupdateLoginStatus();\n\t\t\t});\n\n\t\t\t$scope.logout = function() {\n\t\t\t\tcurrentUserService.clear();\n\t\t\t\tcurrentShowService.clear();\n\t\t\t\tconfigService.clear();\n\t\t\t\tupdateLoginStatus();\n\t\t\t\t$rootScope.$broadcast(\"Logout\");\n\t\t\t\t$location.url(\"/\");\n\t\t\t};\n\n\t\t}])\n\t\t.controller(\"LoginController\", [ \"$scope\", \"$rootScope\", \"$location\", \"LoginService\", \"CurrentUserService\", function($scope, $rootScope, $location, loginService, currentUserService){\n\n\t\t\t$scope.login = {\n\t\t\t\tusername: \"\",\n\t\t\t\tpassword: \"\"\n\t\t\t};\n\n\t\t\t$scope.errors = [];\n\n\t\t\t$scope.$on(\"LoginFailure\", function(){\n\t\t\t\t$scope.errors.push(\"Invalid username/password.\");\n\t\t\t});\n\n\t\t\t$scope.process = function() {\n\n\t\t\t\tloginService.login($scope.login.username, $scope.login.password, function(user){\n\n\t\t\t\t\tif (user.id !== 0) {\n\t\t\t\t\t\t// GOOD\n\t\t\t\t\t\tcurrentUserService.set(user);\n\t\t\t\t\t\t$location.url(\"/chooseshow\");\n\t\t\t\t\t\t$rootScope.$broadcast(\"LoginSuccess\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// BAD\n\t\t\t\t\t\tcurrentUserService.clear();\n\t\t\t\t\t\t$rootScope.$broadcast(\"LoginFailure\");\n\t\t\t\t\t}\n\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t}])\n\t\t.controller(\"ChooseShowController\", [ \"$scope\", \"$location\", \"CurrentUserService\", \"ConfigService\", \"LoginService\", function($scope, $location, currentUserService, configService, loginService){\n\n\t\t\tif (!loginService.loginCheck()) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar user = currentUserService.get();\n\n\t\t\t$scope.user = user;\n\t\t\t$scope.isSuperAdmin = currentUserService.isSuperAdmin();\n\n\t\t\t$scope.shows = $scope.user.events;\n\n\t\t\t$scope.selected = {};\n\n\t\t\t// start loading the config\n\t\t\tif ($scope.isSuperAdmin) {\n\t\t\t\tconfigService.load();\n\t\t\t}\n\n\t\t\t$scope.admin = function() {\n\n\t\t\t\t$location.url(\"/admin/\" + $scope.selected.adminshow);\n\n\t\t\t};\n\n\t\t\t$scope.console = function() {\n\n\t\t\t\t$location.url(\"/console/\" + $scope.selected.consoleshow);\n\n\t\t\t};\n\n\t\t\t$scope.newShow = function() {\n\n\t\t\t\t$location.url(\"/admin\");\n\n\t\t\t};\n\n\t\t}])\n\t\t.controller(\"AlertsController\", [ \"$scope\", \"$window\", \"AlertService\", function($scope, $window, alertService){\n\n\t\t\t$scope.alerts = alertService.getAll();\n\n\t\t\t$scope.$on(\"AlertAdded\", function(){\n\t\t\t\t$scope.alerts = alertService.getAll();\n\t\t\t\t$window.scrollTo(0, 0);\n\t\t\t});\n\n\t\t\t$scope.$on(\"AlertRemoved\", function(){\n\t\t\t\t$scope.alerts = alertService.getAll();\n\t\t\t});\n\n\t\t\t$scope.$on(\"AlertsCleared\", function(){\n\t\t\t\t$scope.alerts = alertService.getAll();\n\t\t\t});\n\n\t\t\t$scope.closeAlert = function(idx) {\n\t\t\t\talertService.remove(idx);\n\t\t\t};\n\n\t\t}])\n\t\t.controller(\"ConfirmInstanceController\", [ \"$scope\", \"$modalInstance\", \"msg\", \"title\", function($scope, $modalInstance, msg, title){\n\n\t\t\t$scope.title = title;\n\t\t\t$scope.msg = msg;\n\n\t\t\t$scope.ok = function(){\n\t\t\t\t$modalInstance.close(true);\n\t\t\t};\n\n\t\t\t$scope.cancel = function(){\n\t\t\t\t$modalInstance.dismiss(false);\n\t\t\t};\n\n\t\t} ])\n\n\t\t// console controllers\n\n\t\t.controller(\"ConsoleNavController\", [ \"$scope\", \"$location\", \"CurrentShowService\", function($scope, $location, currentShowService){\n\n\t\t\t$scope.nav = {\n\t\t\t\tcurrentNav: \"home\",\n\t\t\t\tshow: currentShowService.get()\n\t\t\t};\n\n\t\t\t$scope.$on(\"CurrentShowChanged\", function(){\n\t\t\t\t$scope.nav.show = currentShowService.get();\n\t\t\t});\n\n\t\t\tvar setCurrentNav = function(url) {\n\t\t\t\tif (url.indexOf(\"/home\") > -1) {\n\t\t\t\t\t$scope.nav.currentNav = \"home\";\n\t\t\t\t} else if (url.indexOf(\"/dashboard\") > -1) {\n\t\t\t\t\t$scope.nav.currentNav = \"dashboard\";\n\t\t\t\t} else if (url.indexOf(\"/attendeesearch\") > -1) {\n\t\t\t\t\t$scope.nav.currentNav = \"attendeesearch\";\n\t\t\t\t} else if (url.indexOf(\"/reports\") > -1) {\n\t\t\t\t\t$scope.nav.currentNav = \"reports\";\n\t\t\t\t} else if (url.indexOf(\"/venue/\") > -1) {\n\t\t\t\t\tvar re = /\\/venue\\/([\\d]{1,})/gi;\n\t\t\t\t\tvar matches = re.exec(url);\n\t\t\t\t\tif (matches.length === 2) {\n\t\t\t\t\t\t$scope.nav.currentNav = \"venue\" + matches[1];\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$scope.nav.currentNav = \"home\";\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t$scope.$on(\"$locationChangeSuccess\", function(event, newUrl){\n\n\t\t\t\tsetCurrentNav(newUrl);\n\n\t\t\t});\n\n\t\t\tsetCurrentNav($location.url());\n\n\t\t}])\n\t\t.controller(\"ConsoleController\", [ \"$scope\", \"$routeParams\", \"$location\", \"CurrentUserService\", \"CurrentShowService\", \"ShowService\", function($scope, $routeParams, $location, currentUserService, currentShowService, showService){\n\n\t\t\tif (!currentUserService.isLoggedIn()) {\n\t\t\t\t$location.url(\"/\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$scope.show = currentShowService.get();\n\n\t\t\tvar loadShow = function(showid, cb) {\n\t\t\t\tcb = cb || angular.noop;\n\t\t\t\tshowService.get(showid, function(show){\n\t\t\t\t\t$scope.show = show;\n\t\t\t\t\tcurrentShowService.set(show);\n\t\t\t\t\tcb(show);\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tif (!$scope.show || $scope.show.id !== $routeParams.showid) {\n\t\t\t\tloadShow($routeParams.showid);\n\t\t\t}\n\n\t\t}])\n\t\t.controller(\"ConsoleDashboardController\", [ \"$scope\", \"$rootScope\", \"$routeParams\", \"$location\", \"CurrentUserService\", \"CurrentShowService\", \"ShowService\", function($scope, $rootScope, $routeParams, $location, currentUserService, currentShowService, showService){\n\n\t\t\tif (!currentUserService.isLoggedIn()) {\n\t\t\t\t$location.url(\"/\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar loadShow = function(showid, cb) {\n\t\t\t\tcb = cb || angular.noop;\n\t\t\t\tshowService.get(showid, function(show){\n\t\t\t\t\t$scope.show = show;\n\t\t\t\t\tcurrentShowService.set(show);\n\t\t\t\t\tcb(show);\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t$scope.data = {\n\t\t\t\tselectedDates: null\n\t\t\t};\n\n\t\t\t$scope.show = currentShowService.get();\n\n\t\t\tif (!$scope.show) {\n\t\t\t\tloadShow($routeParams.showid, function(show){\n\t\t\t\t\t$scope.data.selectedDates = show.dates;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t$scope.data.selectedDates = $scope.show.dates;\n\t\t\t}\n\n\t\t\t$scope.select = function(datePair) {\n\n\t\t\t\tif (datePair === null) {\n\n\t\t\t\t\t$scope.data.selectedDates = $scope.show.dates;\n\n\t\t\t\t\tfor (var pair in $scope.data.selectedDate) {\n\t\t\t\t\t\tif (!_.isDate(pair.begintime)) {\n\t\t\t\t\t\t\tpair.begintime = new Date(pair.begintime);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!_.isDate(pair.endtime)) {\n\t\t\t\t\t\t\tpair.endtime = new Date(pair.endtime);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif (!_.isDate(datePair.begintime)) {\n\t\t\t\t\t\tdatePair.begintime = new Date(datePair.begintime);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!_.isDate(datePair.endtime)) {\n\t\t\t\t\t\tdatePair.endtime = new Date(datePair.endtime);\n\t\t\t\t\t}\n\n\t\t\t\t\t$scope.data.selectedDates = [ datePair ];\n\n\t\t\t\t}\n\n\t\t\t};\n\n\t\t\t$scope.refresh = function() {\n\n\t\t\t\t$rootScope.$broadcast(\"WidgetRefresh\");\n\n\t\t\t};\n\n\t\t}])\n\t\t.controller(\"ConsoleVenueController\", [ \"$scope\", \"$location\", \"$window\", \"$routeParams\", \"$modal\", \"CurrentShowService\", \"CurrentUserService\", \"ShowService\", \"VenueService\", \"SessionService\", \"AlertService\", function($scope, $location, $window, $routeParams, $modal, currentShowService, currentUserService, showService, venueService, sessionService, alertService){\n\n\t\t\tif (!currentUserService.isLoggedIn()) {\n\t\t\t\t$location.url(\"/\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar loadShow = function(showid, cb) {\n\t\t\t\tcb = cb || angular.noop;\n\t\t\t\tshowService.get(showid, function(show){\n\t\t\t\t\t$scope.show = show;\n\t\t\t\t\tcurrentShowService.set(show);\n\t\t\t\t\tcb(show);\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t$scope.data = {\n\t\t\t\tselectedDates: null,\n\t\t\t\tvenue: null,\n\t\t\t\tattendanceData: []\n\t\t\t};\n\n\t\t\t$scope.show = currentShowService.get();\n\n\t\t\tif (!$scope.show) {\n\t\t\t\tloadShow($routeParams.showid, function(show){\n\t\t\t\t\t$scope.data.selectedDates = show.dates;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t$scope.data.selectedDates = $scope.show.dates;\n\t\t\t}\n\n\t\t\tvar getAttendanceData = function() {\n\n\t\t\t\tif ($scope.data.venue) {\n\n\t\t\t\t\tvenueService.getAttendance($scope.data.venue, function(attendanceData){\n\n\t\t\t\t\t\t$scope.data.attendanceData = attendanceData.filter(function(item){\n\n\t\t\t\t\t\t\tfor (var i = 0; i < $scope.data.selectedDates.length; i++) {\n\n\t\t\t\t\t\t\t\tvar datePair = $scope.data.selectedDates[i];\n\n\t\t\t\t\t\t\t\tvar datesForComparison = {\n\t\t\t\t\t\t\t\t\tbegintime: new Date(datePair.begintime.getFullYear(), datePair.begintime.getMonth(), datePair.begintime.getDate(), 0, 0, 0),\n\t\t\t\t\t\t\t\t\tendtime: new Date(datePair.endtime.getFullYear(), datePair.endtime.getMonth(), datePair.endtime.getDate(), 23, 59, 59)\n\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\tif (item.begintime >= datesForComparison.begintime && item.begintime <= datesForComparison.endtime) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn false;\n\n\t\t\t\t\t\t});\n\n\t\t\t\t\t});\n\n\t\t\t\t}\n\n\t\t\t};\n\n\t\t\tvar getAttendanceDataForRoom = function(room) {\n\n\t\t\t\tvenueService.getAttendanceForRoom(room, function(attendanceData){\n\n\t\t\t\t\t$modal.open({\n\t\t\t\t\t\ttemplateUrl: 'src/html/console-venue-room-attendance-modal.html',\n\t\t\t\t\t\tcontroller: 'ConsoleVenueRoomAttendanceModalController',\n\t\t\t\t\t\tsize: \"lg\",\n\t\t\t\t\t\tresolve: {\n\t\t\t\t\t\t\troom: function() {\n\t\t\t\t\t\t\t\treturn room;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tattendance: function() {\n\t\t\t\t\t\t\t\treturn attendanceData;\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};\n\n\n\t\t\t$scope.select = function(datePair) {\n\n\t\t\t\tif (datePair === null) {\n\n\t\t\t\t\t$scope.data.selectedDates = $scope.show.dates;\n\n\t\t\t\t\tfor (var pair in $scope.data.selectedDate) {\n\t\t\t\t\t\tif (!_.isDate(pair.begintime)) {\n\t\t\t\t\t\t\tpair.begintime = new Date(pair.begintime);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!_.isDate(pair.endtime)) {\n\t\t\t\t\t\t\tpair.endtime = new Date(pair.endtime);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif (!_.isDate(datePair.begintime)) {\n\t\t\t\t\t\tdatePair.begintime = new Date(datePair.begintime);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!_.isDate(datePair.endtime)) {\n\t\t\t\t\t\tdatePair.endtime = new Date(datePair.endtime);\n\t\t\t\t\t}\n\n\t\t\t\t\t$scope.data.selectedDates = [ datePair ];\n\n\t\t\t\t}\n\n\t\t\t\tgetAttendanceData();\n\n\t\t\t};\n\n\t\t\tvenueService.get($routeParams.venueid, function(venue){\n\t\t\t\t$scope.data.venue = venue;\n\t\t\t\tgetAttendanceData();\n\t\t\t});\n\n\t\t\t$scope.$on(\"ShowAttendanceForRoom\", function(event, room){\n\n\t\t\t\tgetAttendanceDataForRoom(room);\n\n\t\t\t});\n\n\t\t\t$scope.getAttendeeData = function(sessionid) {\n\n\t\t\t\tvar modalInstance = $modal.open({\n\t\t\t\t\ttemplateUrl: 'src/html/attendance-export-modal.html',\n\t\t\t\t\tcontroller: 'AttendanceExportModalController',\n\t\t\t\t\tsize: \"lg\",\n\t\t\t\t\tresolve: {\n\t\t\t\t\t\tshowid: function() {\n\t\t\t\t\t\t\treturn $scope.show.id;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsessionid: function() {\n\t\t\t\t\t\t\treturn sessionid;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tmodalInstance.result.then(function(result){\n\n\t\t\t\t\tif (!result) {\n\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\tmsg: \"There was a problem loading the report\"\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t$window.open(result);\n\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t\t$scope.getRandomAttendee = function(sessionid) {\n\n\t\t\t\tsessionService.getRandomAttendee(sessionid, function(attendee){\n\n\t\t\t\t\tif (!attendee) {\n\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\tmsg: \"There was an error trying to find a random attendee\"\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar fullname = attendee.firstname + \" \" + attendee.lastname;\n\n\t\t\t\t\tif (attendee.attendeenumber.length) {\n\t\t\t\t\t\tfullname = fullname + \" (\" + attendee.attendeenumber + \")\";\n\t\t\t\t\t}\n\n\t\t\t\t\talertService.add({\n\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\tmsg: \"Random attendee is: \" + fullname,\n\t\t\t\t\t\ttimeout: 10000\n\t\t\t\t\t});\n\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t}])\n\t\t.controller(\"ConsoleVenueRoomAttendanceModalController\", [ \"$scope\", \"$window\", \"$modal\", \"$modalInstance\", \"AlertService\", \"room\", \"attendance\", function($scope, $window, $modal, $modalInstance, alertService, room, attendance){\n\n\t\t\t$scope.data = {\n\t\t\t\troom: room,\n\t\t\t\tattendance: attendance\n\t\t\t};\n\n\t\t\t$scope.getAttendeeData = function(sessionid) {\n\n\t\t\t\tvar modalInstance = $modal.open({\n\t\t\t\t\ttemplateUrl: 'src/html/attendance-export-modal.html',\n\t\t\t\t\tcontroller: 'AttendanceExportModalController',\n\t\t\t\t\tsize: \"lg\",\n\t\t\t\t\tresolve: {\n\t\t\t\t\t\tshowid: function() {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsessionid: function() {\n\t\t\t\t\t\t\treturn sessionid;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tmodalInstance.result.then(function(result){\n\n\t\t\t\t\tif (!result) {\n\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\tmsg: \"There was a problem loading the report\"\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t$window.open(result);\n\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t\t$scope.close = function() {\n\t\t\t\t$modalInstance.dismiss();\n\t\t\t};\n\n\t\t}])\n\t\t.controller(\"ConsoleAttendeeSearchController\", [ \"$scope\", \"$location\", \"$routeParams\", \"$window\", \"$modal\", \"CurrentShowService\", \"CurrentUserService\", \"AttendeeService\", \"SessionService\", \"ShowService\", \"AlertService\", function($scope, $location, $routeParams, $window, $modal, currentShowService, currentUserService, attendeeService, sessionService, showService, alertService){\n\n\t\t\tif (!currentUserService.isLoggedIn()) {\n\t\t\t\t$location.url(\"/\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar loadShow = function(showid, cb) {\n\t\t\t\tcb = cb || angular.noop;\n\t\t\t\tshowService.get(showid, function(show){\n\t\t\t\t\t$scope.show = show;\n\t\t\t\t\tcurrentShowService.set(show);\n\t\t\t\t\tcb(show);\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t$scope.show = currentShowService.get();\n\n\t\t\tif (!$scope.show) {\n\t\t\t\tloadShow($routeParams.showid);\n\t\t\t}\n\n\t\t\t$scope.mode = \"simple\";\n\n\t\t\t$scope.searchparams = {};\n\n\t\t\t$scope.toggleMode = function(){\n\t\t\t\tif ($scope.mode === \"simple\") {\n\t\t\t\t\t$scope.mode = \"advanced\";\n\t\t\t\t} else {\n\t\t\t\t\t$scope.mode = \"simple\";\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t$scope.sessions = [];\n\n\t\t\tsessionService.list($routeParams.showid, function(result){\n\t\t\t\t$scope.sessions = result.sessions;\n\t\t\t});\n\n\t\t\t$scope.results = [];\n\n\t\t\t$scope.search = function() {\n\n\t\t\t\tattendeeService.search($scope.mode, $scope.searchparams, $scope.show.id, function(results){\n\t\t\t\t\t$scope.results = results;\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t\t$scope.editAttendee = function(attendee) {\n\t\t\t\tvar modalInstance = $modal.open({\n\t\t\t\t\ttemplateUrl: 'src/html/console-attendee-edit-modal.html',\n\t\t\t\t\tcontroller: 'ConsoleEditAttendeeModalController',\n\t\t\t\t\tsize: \"lg\",\n\t\t\t\t\tresolve: {\n\t\t\t\t\t\tattendeeid: function () {\n\t\t\t\t\t\t\treturn attendee.attendeeid;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tshowid: function() {\n\t\t\t\t\t\t\treturn $scope.show.id;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tmodalInstance.result.then(function(result){\n\t\t\t\t\tif (result) {\n\t\t\t\t\t\t// successful, reload results\n\t\t\t\t\t\t$scope.search();\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// not successful, pop an alert\n\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\tmsg: \"There was a problem saving the attendee\"\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$scope.showAttendance = function(attendee) {\n\n\t\t\t\tattendeeService.getAttendance($scope.show.id, attendee.attendeeid, function(attendance){\n\n\t\t\t\t\t// pop the modal w/ the attendace data\n\n\t\t\t\t\tvar modalInstance = $modal.open({\n\t\t\t\t\t\ttemplateUrl: 'src/html/console-attendee-search-attendance-modal.html',\n\t\t\t\t\t\tcontroller: 'ConsoleAttendeeSearchAttendanceModalController',\n\t\t\t\t\t\tsize: \"lg\",\n\t\t\t\t\t\tresolve: {\n\t\t\t\t\t\t\tattendee: function() {\n\t\t\t\t\t\t\t\treturn attendee;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tattendance: function () {\n\t\t\t\t\t\t\t\treturn attendance;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tshowid: function() {\n\t\t\t\t\t\t\t\treturn $scope.show.id;\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\tmodalInstance.result.then(function(file){\n\t\t\t\t\t\tif (file) {\n\t\t\t\t\t\t\t$window.open(file);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t\t$scope.emailCertificate = function(attendee) {\n\n\t\t\t\t$modal.open({\n\t\t\t\t\ttemplateUrl: 'src/html/console-attendee-search-certificate-modal.html',\n\t\t\t\t\tcontroller: 'ConsoleAttendeeSearchCertificateModalController',\n\t\t\t\t\tsize: \"lg\",\n\t\t\t\t\tresolve: {\n\t\t\t\t\t\tattendee: function() {\n\t\t\t\t\t\t\treturn attendee;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tshowid: function() {\n\t\t\t\t\t\t\treturn $scope.show.id;\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$scope.export = function() {\n\n\t\t\t\tvar modalInstance = $modal.open({\n\t\t\t\t\ttemplateUrl: 'src/html/attendance-export-modal.html',\n\t\t\t\t\tcontroller: 'AttendanceExportModalController',\n\t\t\t\t\tsize: \"lg\",\n\t\t\t\t\tresolve: {\n\t\t\t\t\t\tshowid: function() {\n\t\t\t\t\t\t\treturn $scope.show.id;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsessionid: function() {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tmodalInstance.result.then(function(result){\n\n\t\t\t\t\tif (!result) {\n\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\tmsg: \"There was a problem loading the report\"\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t$window.open(result);\n\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t}])\n\t\t.controller(\"ConsoleAttendeeSearchCertificateModalController\", [ \"$scope\", \"$modalInstance\", \"AttendeeService\", \"AlertService\", \"attendee\", \"showid\", function($scope, $modalInstance, attendeeService, alertService, attendee, showid){\n\n\t\t\t$scope.loading = false;\n\n\t\t\t$scope.data = {\n\t\t\t\tsendLoginInfo: false\n\t\t\t};\n\n\t\t\t$scope.cancel = function(){\n\t\t\t\t$modalInstance.dismiss(false);\n\t\t\t};\n\n\t\t\t$scope.send = function() {\n\n\t\t\t\t$scope.loading = true;\n\n\t\t\t\tattendeeService.sendCertificates({\n\t\t\t\t\tattendees: [ attendee.attendeeid ],\n\t\t\t\t\tshowid: showid,\n\t\t\t\t\tincludeLoginInfo: $scope.data.sendLoginInfo\n\t\t\t\t}, function(results){\n\n\t\t\t\t\t$scope.loading = false;\n\n\t\t\t\t\tif (!results) {\n\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\tmsg: \"There was an error sending the certificates\"\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t$scope.results = results;\n\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t}])\n\t\t.controller(\"ConsoleAttendeeSearchAttendanceModalController\", [ \"$scope\", \"$modalInstance\", \"AttendeeService\", \"attendee\", \"attendance\", \"showid\", function($scope, $modalInstance, attendeeService, attendee, attendance, showid){\n\n\t\t\t$scope.attendee = attendee;\n\t\t\t$scope.attendance = attendance;\n\n\t\t\tvar exportData = function(format) {\n\t\t\t\tattendeeService.exportAttendance(attendee.attendeeid, showid, format, attendance, function(file){\n\t\t\t\t\t$modalInstance.close(file);\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t$scope.close = function(action) {\n\n\t\t\t\tif (action) {\n\t\t\t\t\texportData(action);\n\t\t\t\t} else {\n\t\t\t\t\t$modalInstance.dismiss();\n\t\t\t\t}\n\n\t\t\t};\n\n\t\t}])\n\t\t.controller(\"ConsoleEditAttendeeModalController\", [ \"$scope\", \"$modalInstance\", \"AttendeeService\", \"attendeeid\", \"showid\", function($scope, $modalInstance, attendeeService, attendeeid, showid){\n\n\t\t\tattendeeService.get(attendeeid, function(attendee){\n\t\t\t\t$scope.attendee = attendee;\n\t\t\t});\n\n\t\t\t$scope.save = function(){\n\t\t\t\tattendeeService.save($scope.attendee, showid, function(result){\n\t\t\t\t\t$modalInstance.close(result.success);\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t$scope.cancel = function(){\n\t\t\t\t$modalInstance.dismiss(false);\n\t\t\t};\n\n\t\t}])\n\t\t.controller(\"AttendanceExportModalController\", [ \"$scope\", \"$modalInstance\", \"AttendeeService\", \"showid\", \"sessionid\", function($scope, $modalInstance, attendeeService, showid, sessionid){\n\n\t\t\t$scope.params = {\n\t\t\t\tbSessionInfo: false,\n\t\t\t\tbInOutTimes: false,\n\t\t\t\tbCreditsEarned: false,\n\t\t\t\tbTabs: false\n\t\t\t};\n\n\t\t\tif (showid) {\n\t\t\t\t$scope.params.eventid = showid;\n\t\t\t}\n\n\t\t\tif (sessionid) {\n\t\t\t\t$scope.params.sessionid = sessionid;\n\t\t\t}\n\n\t\t\t$scope.loading = false;\n\n\t\t\t$scope.export = function(){\n\n\t\t\t\tif (!$scope.params.bSessionInfo) {\n\t\t\t\t\t$scope.params.bInOutTimes = false;\n\t\t\t\t}\n\n\t\t\t\t$scope.loading = true;\n\n\t\t\t\tattendeeService.export($scope.params, function(result){\n\t\t\t\t\t$scope.loading = false;\n\t\t\t\t\t$modalInstance.close(result);\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t\t$scope.cancel = function(){\n\t\t\t\t$modalInstance.dismiss(false);\n\t\t\t};\n\n\t\t}])\n\t\t.controller(\"ConsoleReportController\", [ \"$scope\", \"$routeParams\", \"$location\", \"CurrentShowService\", \"CurrentUserService\", \"ShowService\", function($scope, $routeParams, $location, currentShowService, currentUserService, showService){\n\n\t\t\tif (!currentUserService.isLoggedIn()) {\n\t\t\t\t$location.url(\"/\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar loadShow = function(showid, cb) {\n\t\t\t\tcb = cb || angular.noop;\n\t\t\t\tshowService.get(showid, function(show){\n\t\t\t\t\t$scope.show = show;\n\t\t\t\t\tcurrentShowService.set(show);\n\t\t\t\t\tcb(show);\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t$scope.show = currentShowService.get();\n\n\t\t\tif (!$scope.show) {\n\t\t\t\tloadShow($routeParams.showid);\n\t\t\t}\n\n\t\t\t$scope.data = {\n\t\t\t\treports: ([\n\t\t\t\t\t{\n\t\t\t\t\t\tcode: \"noshow\",\n\t\t\t\t\t\tname: \"No Shows\",\n\t\t\t\t\t\thtml: \"noshow.html\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tcode: \"ampm\",\n\t\t\t\t\t\tname: \"AM/PM\",\n\t\t\t\t\t\thtml: \"ampm.html\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tcode: \"session-attendance-by-track\",\n\t\t\t\t\t\tname: \"Session Attendance by Track\",\n\t\t\t\t\t\thtml: \"session-attendance-by-track.html\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tcode: \"session-attendance-by-category\",\n\t\t\t\t\t\tname: \"Session Attendance by Category\",\n\t\t\t\t\t\thtml: \"session-attendance-by-category.html\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tcode: \"attendee-types\",\n\t\t\t\t\t\tname: \"Attendee Types\",\n\t\t\t\t\t\thtml: \"attendee-types.html\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tcode: \"track-category-attendance\",\n\t\t\t\t\t\tname: \"Track/Category Attendance\",\n\t\t\t\t\t\thtml: \"track-category-attendance.html\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tcode: \"attendance-by-time\",\n\t\t\t\t\t\tname: \"Attendance by Time\",\n\t\t\t\t\t\thtml: \"attendance-by-time.html\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tcode: \"event-summary\",\n\t\t\t\t\t\tname: \"Event Summary\",\n\t\t\t\t\t\thtml: \"event-summary.html\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tcode: \"session-threshold\",\n\t\t\t\t\t\tname: \"Session Threshold\",\n\t\t\t\t\t\thtml: \"session-threshold.html\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tcode: \"registration-pricing-report\",\n\t\t\t\t\t\tname: \"Registration Pricing Report\",\n\t\t\t\t\t\thtml: \"registration-pricing-report.html\"\n\t\t\t\t\t}\n\t\t\t\t]).sort(function(a, b){\n\t\t\t\t\tif (a.name < b.name) {\n\t\t\t\t\t\treturn -1;\n\t\t\t\t\t} else if (a.name > b.name) {\n\t\t\t\t\t\treturn 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn 0;\n\t\t\t\t}),\n\t\t\t\tselectedReport: null\n\t\t\t};\n\n\t\t}])\n\n\t\t// report controllers\n\t\t.controller(\"NoShowReportController\", [ \"$scope\", \"$window\", \"ReportService\", function($scope, $window, reportService){\n\n\t\t\t// NOTE: $scope.show should be available from parent\n\n\t\t\t$scope.settings = {\n\t\t\t\tdateisopen: false,\n\t\t\t\tmindate: $scope.show.dates[0].begintime,\n\t\t\t\tmaxdate: $scope.show.dates[$scope.show.dates.length - 1].endtime,\n\t\t\t\tdateopts: {\n\t\t\t\t\tformatYear: \"yyyy\"\n\t\t\t\t},\n\t\t\t\tinitialDate: $scope.show.dates[0].begintime\n\t\t\t};\n\n\t\t\t$scope.params = {\n\t\t\t\tdate: null,\n\t\t\t\tshowid: $scope.show.id\n\t\t\t};\n\n\t\t\t$scope.data = [];\n\n\t\t\t$scope.opendate = function() {\n\t\t\t\t$scope.settings.dateisopen = true;\n\t\t\t};\n\n\t\t\t$scope.loadData = function(cb) {\n\n\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\treportService.noShowReport($scope.params.showid, $scope.params.date, function(data){\n\t\t\t\t\t$scope.data = data;\n\t\t\t\t\tcb(data);\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t\t$scope.export = function(format) {\n\n\t\t\t\t// format should be \"pdf\" or \"xls\"\n\n\t\t\t\treportService.export({\n\t\t\t\t\treportName: \"noShow\",\n\t\t\t\t\treportArgs: angular.toJson({ date: $scope.params.date }),\n\t\t\t\t\teventId: $scope.show.id,\n\t\t\t\t\tformat: format,\n\t\t\t\t\tbIncludeChart: false,\n\t\t\t\t\tchartType: \"\",\n\t\t\t\t}, function(url){\n\t\t\t\t\t$window.open(url);\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t}])\n\t\t.controller(\"AMPMReportController\", [ \"$scope\", \"$window\", \"ReportService\", function($scope, $window, reportService){\n\n\t\t\t// NOTE: $scope.show should be available from parent\n\n\t\t\t$scope.settings = {\n\t\t\t\tambegintimeisopen: false,\n\t\t\t\tamendtimeisopen: false,\n\t\t\t\tpmbegintimeisopen: false,\n\t\t\t\tpmendtimeisopen: false\n\t\t\t};\n\n\t\t\tvar showbegintime = $scope.show.dates[0].begintime;\n\n\t\t\t$scope.params = {\n\t\t\t\tattendeetype: null,\n\t\t\t\tambegintime: (new Date(showbegintime.getFullYear(), showbegintime.getMonth(), showbegintime.getDate(), 0,0,0)),\n\t\t\t\tamendtime: (new Date(showbegintime.getFullYear(), showbegintime.getMonth(), showbegintime.getDate(), 11,59,59)),\n\t\t\t\tpmbegintime: (new Date(showbegintime.getFullYear(), showbegintime.getMonth(), showbegintime.getDate(), 12,0,0)),\n\t\t\t\tpmendtime: (new Date(showbegintime.getFullYear(), showbegintime.getMonth(), showbegintime.getDate(), 23,59,59)),\n\t\t\t\tshowid: $scope.show.id\n\t\t\t};\n\n\t\t\t$scope.data = [];\n\n\t\t\t$scope.onSetAMBeginTime = function() {\n\t\t\t\t$scope.settings.ambegintimeisopen = false;\n\t\t\t};\n\n\t\t\t$scope.onSetAMEndTime = function() {\n\t\t\t\t$scope.settings.amendtimeisopen = false;\n\t\t\t};\n\n\t\t\t$scope.onSetPMBeginTime = function() {\n\t\t\t\t$scope.settings.pmbegintimeisopen = false;\n\t\t\t};\n\n\t\t\t$scope.onSetPMEndTime = function() {\n\t\t\t\t$scope.settings.pmendtimeisopen = false;\n\t\t\t};\n\n\t\t\t$scope.loadData = function(cb) {\n\n\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\treportService.amPmReport({\n\t\t\t\t\tamstart: $scope.params.ambegintime,\n\t\t\t\t\tamend: $scope.params.amendtime,\n\t\t\t\t\tpmstart: $scope.params.pmbegintime,\n\t\t\t\t\tpmend: $scope.params.pmendtime,\n\t\t\t\t\tattendeetypeid: (($scope.params.attendeetype) ? $scope.params.attendeetype.id : 0),\n\t\t\t\t\teventid: $scope.show.id\n\t\t\t\t}, function(data){\n\t\t\t\t\t$scope.data = data;\n\t\t\t\t\tcb(data);\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t\t$scope.export = function(format) {\n\n\t\t\t\t// format should be \"pdf\" or \"xls\"\n\n\t\t\t\treportService.export({\n\t\t\t\t\treportName: \"ampm\",\n\t\t\t\t\treportArgs: angular.toJson({\n\t\t\t\t\t\tamstart: $scope.params.ambegintime,\n\t\t\t\t\t\tamend: $scope.params.amendtime,\n\t\t\t\t\t\tpmstart: $scope.params.pmbegintime,\n\t\t\t\t\t\tpmend: $scope.params.pmendtime,\n\t\t\t\t\t\tattendeetypeid: (($scope.params.attendeetype) ? $scope.params.attendeetype.id : 0),\n\t\t\t\t\t\teventid: $scope.show.id\n\t\t\t\t\t}),\n\t\t\t\t\teventId: $scope.show.id,\n\t\t\t\t\tformat: format,\n\t\t\t\t\tbIncludeChart: false,\n\t\t\t\t\tchartType: \"\",\n\t\t\t\t}, function(url){\n\t\t\t\t\t$window.open(url);\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t}])\n\t\t.controller(\"SessionAttendanceByTrackReportController\", [ \"$scope\", \"$window\", \"$filter\", \"ReportService\", function($scope, $window, $filter, reportService){\n\n\t\t\t// NOTE: $scope.show should be available from parent\n\n\t\t\t$scope.settings = {\n\t\t\t\tcharttype: \"pie\"\n\t\t\t};\n\n\t\t\t$scope.params = {\n\t\t\t\ttrackid: null,\n\t\t\t\tstartdate: $scope.show.dates[0].begintime,\n\t\t\t\tenddate: $scope.show.dates[$scope.show.dates.length - 1].endtime\n\t\t\t};\n\n\t\t\t$scope.data = [];\n\n\t\t\t$scope.chart = {\n\t\t\t\tdata: [],\n\t\t\t\tlabels: [],\n\t\t\t\tseries: [ \"Session Attendance\" ],\n\t\t\t\topts: {}\n\t\t\t};\n\n\t\t\t$scope.getTotalAttendees = function(){\n\t\t\t\tvar total = 0;\n\t\t\t\tangular.forEach($scope.data, function(item){\n\t\t\t\t\ttotal+= item.numAttendees;\n\t\t\t\t});\n\t\t\t\treturn total;\n\t\t\t};\n\n\t\t\t$scope.select = function(datePair) {\n\t\t\t\tif (datePair) {\n\t\t\t\t\t$scope.params.startdate = datePair.begintime;\n\t\t\t\t\t$scope.params.enddate = datePair.endtime;\n\t\t\t\t} else {\n\t\t\t\t\t$scope.params.startdate = $scope.show.dates[0].begintime;\n\t\t\t\t\t$scope.params.enddate = $scope.show.dates[$scope.show.dates.length - 1].endtime;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t$scope.loadData = function() {\n\t\t\t\treportService.sessionAttByTrackReport($scope.show.id, $scope.params.trackid, $scope.params.startdate, $scope.params.enddate, function(data){\n\n\t\t\t\t\t$scope.data = data;\n\n\t\t\t\t\t$scope.chart.data = [ data.map(function(row){\n\t\t\t\t\t\treturn row.numAttendees;\n\t\t\t\t\t}) ];\n\n\t\t\t\t\t$scope.chart.labels = data.map(function(row){\n\t\t\t\t\t\treturn $filter(\"limitTo\")(row.sessionName, 40);\n\t\t\t\t\t});\n\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t$scope.export = function(format) {\n\n\t\t\t\t// format should be \"pdf\" or \"xls\"\n\n\t\t\t\treportService.export({\n\t\t\t\t\treportName: \"trackAttendanceDistribution\",\n\t\t\t\t\treportArgs: angular.toJson($scope.params),\n\t\t\t\t\teventId: $scope.show.id,\n\t\t\t\t\tformat: format,\n\t\t\t\t\tbIncludeChart: true,\n\t\t\t\t\tchartType: $scope.settings.charttype,\n\t\t\t\t}, function(url){\n\t\t\t\t\t$window.open(url);\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t}])\n\t\t.controller(\"SessionAttendanceByCategoryReportController\", [ \"$scope\", \"$window\", \"$filter\", \"ReportService\", function($scope, $window, $filter, reportService){\n\n\t\t\t// NOTE: $scope.show should be available from parent\n\n\t\t\t$scope.settings = {\n\t\t\t\tcharttype: \"pie\"\n\t\t\t};\n\n\t\t\t$scope.params = {\n\t\t\t\tcategoryid: null,\n\t\t\t\tstartdate: $scope.show.dates[0].begintime,\n\t\t\t\tenddate: $scope.show.dates[$scope.show.dates.length - 1].endtime\n\t\t\t};\n\n\t\t\t$scope.data = [];\n\n\t\t\t$scope.chart = {\n\t\t\t\tdata: [],\n\t\t\t\tlabels: [],\n\t\t\t\tseries: [ \"Session Attendance\" ],\n\t\t\t\topts: {}\n\t\t\t};\n\n\t\t\t$scope.getTotalAttendees = function(){\n\t\t\t\tvar total = 0;\n\t\t\t\tangular.forEach($scope.data, function(item){\n\t\t\t\t\ttotal+= item.numAttendees;\n\t\t\t\t});\n\t\t\t\treturn total;\n\t\t\t};\n\n\t\t\t$scope.select = function(datePair) {\n\t\t\t\tif (datePair) {\n\t\t\t\t\t$scope.params.startdate = datePair.begintime;\n\t\t\t\t\t$scope.params.enddate = datePair.endtime;\n\t\t\t\t} else {\n\t\t\t\t\t$scope.params.startdate = $scope.show.dates[0].begintime;\n\t\t\t\t\t$scope.params.enddate = $scope.show.dates[$scope.show.dates.length - 1].endtime;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t$scope.loadData = function() {\n\t\t\t\treportService.sessionAttByCategoryReport($scope.show.id, $scope.params.categoryid, $scope.params.startdate, $scope.params.enddate, function(data){\n\n\t\t\t\t\t$scope.data = data;\n\n\t\t\t\t\t$scope.chart.data = [ data.map(function(row){\n\t\t\t\t\t\treturn row.numAttendees;\n\t\t\t\t\t}) ];\n\n\t\t\t\t\t$scope.chart.labels = data.map(function(row){\n\t\t\t\t\t\treturn $filter(\"limitTo\")(row.sessionName, 40);\n\t\t\t\t\t});\n\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t$scope.export = function(format) {\n\n\t\t\t\t// format should be \"pdf\" or \"xls\"\n\n\t\t\t\treportService.export({\n\t\t\t\t\treportName: \"categoryAttendanceDistribution\",\n\t\t\t\t\treportArgs: angular.toJson($scope.params),\n\t\t\t\t\teventId: $scope.show.id,\n\t\t\t\t\tformat: format,\n\t\t\t\t\tbIncludeChart: true,\n\t\t\t\t\tchartType: $scope.settings.charttype,\n\t\t\t\t}, function(url){\n\t\t\t\t\t$window.open(url);\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t}])\n\t\t.controller(\"RegistrationPricingReportController\", [ \"$scope\", \"$window\", \"SessionService\", function($scope, $window, sessionService){\n\n\t\t\t$scope.params = {\n\t\t\t\tsession: null\n\t\t\t};\n\n\t\t\t$scope.data = {\n\t\t\t\tsessions: []\n\t\t\t};\n\n\t\t\tsessionService.list($scope.show.id, function(data){\n\t\t\t\t$scope.data.sessions = data.sessions;\n\t\t\t});\n\n\t\t\t$scope.export = function() {\n\t\t\t\t$window.open(\"/ExpoConsole/action/reports/regpricing/#/?showid=\" + $scope.show.id + \"&sessionid=\" + $scope.params.session.id);\n\t\t\t};\n\n\t\t}])\n\t\t.controller(\"EventSummaryReportController\", [ \"$scope\", \"$window\", \"ReportService\", function($scope, $window, reportService){\n\n\t\t\t$scope.params = {\n\t\t\t\tgroupby: \"track\"\n\t\t\t};\n\n\t\t\t$scope.settings = {\n\t\t\t\tgroupby: [\n\t\t\t\t\t{ value: \"track\", label: \"Track (Default)\" },\n\t\t\t\t\t{ value: \"category\", label: \"Category\" },\n\t\t\t\t\t{ value: \"day\", label: \"Day\" },\n\t\t\t\t\t{ value: \"starttime\", label: \"Start Time\" }\n\t\t\t\t]\n\t\t\t};\n\n\t\t\t$scope.download = function() {\n\n\t\t\t\treportService.eventSummaryReport($scope.show.id, $scope.params.groupby, function(url){\n\t\t\t\t\t$window.open(url);\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t}])\n\t\t.controller(\"SessionThresholdReportController\", [ \"$scope\", \"$window\", \"ReportService\", function($scope, $window, reportService){\n\n\t\t\t$scope.params = {\n\t\t\t\tformat: \"PDF\",\n\t\t\t\ttype: \"Sessions\",\n\t\t\t\tcreditsrequired: 1,\n\t\t\t\tattendeetype: null,\n\t\t\t\tdem1: null,\n\t\t\t\tdem2: null,\n\t\t\t\tdem3: null,\n\t\t\t\tdem4: null,\n\t\t\t\tdem5: null,\n\t\t\t\tdem6: null,\n\t\t\t\tdem7: null,\n\t\t\t\tdem8: null,\n\t\t\t\tdem9: null,\n\t\t\t\tdem10: null,\n\t\t\t\tdem11: null,\n\t\t\t\tdem12: null,\n\t\t\t\tincludedem1: false,\n\t\t\t\tincludedem2: false,\n\t\t\t\tincludedem3: false,\n\t\t\t\tincludedem4: false,\n\t\t\t\tincludedem5: false,\n\t\t\t\tincludedem6: false,\n\t\t\t\tincludedem7: false,\n\t\t\t\tincludedem8: false,\n\t\t\t\tincludedem9: false,\n\t\t\t\tincludedem10: false,\n\t\t\t\tincludedem11: false,\n\t\t\t\tincludedem12: false\n\t\t\t};\n\n\t\t\t$scope.settings = {\n\t\t\t\tformats: [ \"PDF\", \"XLS\" ],\n\t\t\t\ttypes: [ \"Sessions\", \"Minutes\" ],\n\t\t\t\tdem1: [],\n\t\t\t\tdem2: [],\n\t\t\t\tdem3: [],\n\t\t\t\tdem4: [],\n\t\t\t\tdem5: [],\n\t\t\t\tdem6: [],\n\t\t\t\tdem7: [],\n\t\t\t\tdem8: [],\n\t\t\t\tdem9: [],\n\t\t\t\tdem10: [],\n\t\t\t\tdem11: [],\n\t\t\t\tdem12: []\n\t\t\t};\n\n\t\t\treportService.getAllDemographicOptions($scope.show.id, function(data){\n\n\t\t\t\tfor (var key in data) {\n\t\t\t\t\t$scope.settings[key] = data[key];\n\t\t\t\t}\n\n\t\t\t});\n\n\t\t\t$scope.download = function() {\n\n\t\t\t\treportService.sessionThresholdReport($scope.show.id, $scope.params, function(url){\n\t\t\t\t\t$window.open(url);\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t}])\n\t\t.controller(\"AttendeeTypesReportController\", [ \"$scope\", \"$window\", \"$filter\", \"SessionService\", \"ReportService\", function($scope, $window, $filter, sessionService, reportService){\n\n\t\t\t// NOTE: $scope.show should be available from parent\n\n\t\t\t$scope.params = {\n\t\t\t\tsessions: [],\n\t\t\t\ttrackid: null,\n\t\t\t\tcategoryid: null,\n\t\t\t\tstartdate: $scope.show.dates[0].begintime,\n\t\t\t\tenddate: $scope.show.dates[$scope.show.dates.length - 1].endtime\n\t\t\t};\n\n\t\t\t$scope.data = {\n\t\t\t\tsessions: [],\n\t\t\t\tdata: []\n\t\t\t};\n\n\t\t\t$scope.settings = {\n\t\t\t\tcharttype: \"pie\"\n\t\t\t};\n\n\t\t\t$scope.chart = {\n\t\t\t\tdata: [],\n\t\t\t\tlabels: [],\n\t\t\t\tseries: [ \"Attendee Types\" ],\n\t\t\t\topts: {}\n\t\t\t};\n\n\t\t\t$scope.getTotalAttendees = function(){\n\t\t\t\tvar total = 0;\n\t\t\t\tangular.forEach($scope.data.data, function(item){\n\t\t\t\t\ttotal+= item.numAttendees;\n\t\t\t\t});\n\t\t\t\treturn total;\n\t\t\t};\n\n\t\t\t$scope.select = function(datePair) {\n\t\t\t\tif (datePair) {\n\t\t\t\t\t$scope.params.startdate = datePair.begintime;\n\t\t\t\t\t$scope.params.enddate = datePair.endtime;\n\t\t\t\t} else {\n\t\t\t\t\t$scope.params.startdate = $scope.show.dates[0].begintime;\n\t\t\t\t\t$scope.params.enddate = $scope.show.dates[$scope.show.dates.length - 1].endtime;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t$scope.loadData = function() {\n\t\t\t\treportService.attendeeTypeDistributionReport($scope.show.id, $scope.params.sessions, $scope.params.trackid, $scope.params.categoryid, $scope.params.startdate, $scope.params.enddate, function(data){\n\n\t\t\t\t\t$scope.data.data = data;\n\n\t\t\t\t\t$scope.chart.data = [ data.map(function(row){\n\t\t\t\t\t\treturn row.numAttendees;\n\t\t\t\t\t}) ];\n\n\t\t\t\t\t$scope.chart.labels = data.map(function(row){\n\t\t\t\t\t\treturn $filter(\"limitTo\")(row.attendeeType, 40);\n\t\t\t\t\t});\n\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t$scope.export = function(format) {\n\n\t\t\t\t// format should be \"pdf\" or \"xls\"\n\n\t\t\t\tvar formatDate = function(date) {\n\t\t\t\t\treturn $filter('date')(date, 'yyyy-MM-dd');\n\t\t\t\t};\n\n\t\t\t\tvar params = {\n\t\t\t\t\tsessionid: $scope.params.sessions,\n\t\t\t\t\tstartdate: formatDate($scope.params.startdate),\n\t\t\t\t\tenddate: formatDate($scope.params.enddate)\n\t\t\t\t};\n\n\t\t\t\tif ($scope.params.trackid) {\n\t\t\t\t\tparams.trackid = $scope.params.trackid;\n\t\t\t\t}\n\n\t\t\t\tif ($scope.params.categoryid) {\n\t\t\t\t\tparams.categoryid = $scope.params.categoryid;\n\t\t\t\t}\n\n\t\t\t\treportService.export({\n\t\t\t\t\treportName: \"attendeeTypeDistribution\",\n\t\t\t\t\treportArgs: angular.toJson(params),\n\t\t\t\t\teventId: $scope.show.id,\n\t\t\t\t\tformat: format,\n\t\t\t\t\tbIncludeChart: true,\n\t\t\t\t\tchartType: $scope.settings.charttype,\n\t\t\t\t}, function(url){\n\t\t\t\t\t$window.open(url);\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t\tsessionService.list($scope.show.id, function(data){\n\t\t\t\t$scope.data.sessions = data.sessions;\n\t\t\t});\n\n\t\t}])\n\t\t.controller(\"TrackCategoryAttendanceReportController\", [ \"$scope\", \"$window\", \"$filter\", \"ReportService\", function($scope, $window, $filter, reportService){\n\n\t\t\t// NOTE: $scope.show should be available from parent\n\n\t\t\t$scope.params = {\n\t\t\t\tgroupby: 'Track',\n\t\t\t\tstartdate: $scope.show.dates[0].begintime,\n\t\t\t\tenddate: $scope.show.dates[$scope.show.dates.length - 1].endtime\n\t\t\t};\n\n\t\t\t$scope.data = {\n\t\t\t\tdata: []\n\t\t\t};\n\n\t\t\t$scope.settings = {\n\t\t\t\tcharttype: \"pie\"\n\t\t\t};\n\n\t\t\t$scope.chart = {\n\t\t\t\tdata: [],\n\t\t\t\tlabels: [],\n\t\t\t\tseries: [ \"Attendance\" ],\n\t\t\t\topts: {}\n\t\t\t};\n\n\t\t\t$scope.getTotalAttendees = function(){\n\t\t\t\tvar total = 0;\n\t\t\t\tangular.forEach($scope.data.data, function(item){\n\t\t\t\t\ttotal+= item.numAttendees;\n\t\t\t\t});\n\t\t\t\treturn total;\n\t\t\t};\n\n\t\t\t$scope.select = function(datePair) {\n\t\t\t\tif (datePair) {\n\t\t\t\t\t$scope.params.startdate = datePair.begintime;\n\t\t\t\t\t$scope.params.enddate = datePair.endtime;\n\t\t\t\t} else {\n\t\t\t\t\t$scope.params.startdate = $scope.show.dates[0].begintime;\n\t\t\t\t\t$scope.params.enddate = $scope.show.dates[$scope.show.dates.length - 1].endtime;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t$scope.loadData = function() {\n\t\t\t\treportService.catTrackAttReport($scope.show.id, $scope.params.groupby, $scope.params.startdate, $scope.params.enddate, function(data){\n\n\t\t\t\t\t$scope.data.data = data;\n\n\t\t\t\t\t$scope.chart = {\n\t\t\t\t\t\tdata: [],\n\t\t\t\t\t\tlabels: [],\n\t\t\t\t\t\tseries: [ \"Attendance\" ],\n\t\t\t\t\t\topts: {}\n\t\t\t\t\t};\n\n\t\t\t\t\t$scope.chart.data = [ data.map(function(row){\n\t\t\t\t\t\treturn row.numAttendees;\n\t\t\t\t\t}) ];\n\n\t\t\t\t\t$scope.chart.labels = data.map(function(row){\n\t\t\t\t\t\treturn $filter(\"limitTo\")(row.trackCategory, 40);\n\t\t\t\t\t});\n\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t$scope.export = function(format) {\n\n\t\t\t\t// format should be \"pdf\" or \"xls\"\n\n\t\t\t\tvar formatDate = function(date) {\n\t\t\t\t\treturn $filter('date')(date, 'yyyy-MM-dd');\n\t\t\t\t};\n\n\t\t\t\tvar params = {\n\t\t\t\t\tgroupby: $scope.params.groupby,\n\t\t\t\t\tstartdate: formatDate($scope.params.startdate),\n\t\t\t\t\tenddate: formatDate($scope.params.enddate)\n\t\t\t\t};\n\n\t\t\t\treportService.export({\n\t\t\t\t\treportName: \"catTrackAtt\",\n\t\t\t\t\treportArgs: angular.toJson(params),\n\t\t\t\t\teventId: $scope.show.id,\n\t\t\t\t\tformat: format,\n\t\t\t\t\tbIncludeChart: true,\n\t\t\t\t\tchartType: $scope.settings.charttype,\n\t\t\t\t}, function(url){\n\t\t\t\t\t$window.open(url);\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t}])\n\t\t.controller(\"AttendanceByTimeReportController\", [ \"$scope\", \"$window\", \"$filter\", \"SessionService\", \"ReportService\", function($scope, $window, $filter, sessionService, reportService){\n\n\t\t\t// NOTE: $scope.show should be available from parent\n\n\t\t\t$scope.params = {\n\t\t\t\tdates: [],\n\t\t\t\tsessions: []\n\t\t\t};\n\n\t\t\t$scope.data = {\n\t\t\t\tsessions: [],\n\t\t\t\tstartdatetime: $scope.show.dates[0].begintime,\n\t\t\t\tenddatetime: $scope.show.dates[0].endtime,\n\t\t\t\tselectedDate: null,\n\t\t\t\tstartisopen: false,\n\t\t\t\tendisopen: false\n\t\t\t};\n\n\t\t\t$scope.chart = {\n\t\t\t\tdata: [],\n\t\t\t\tlabels: [],\n\t\t\t\tseries: [ \"Attendance\" ],\n\t\t\t\topts: {}\n\t\t\t};\n\n\t\t\t$scope.onSetStart = function() {\n\t\t\t\t$scope.data.startisopen = false;\n\t\t\t};\n\n\t\t\t$scope.onSetEnd = function() {\n\t\t\t\t$scope.data.endisopen = false;\n\t\t\t};\n\n\t\t\t$scope.addDateRange = function() {\n\t\t\t\t$scope.params.dates.push({\n\t\t\t\t\tstart: $scope.data.startdatetime,\n\t\t\t\t\tend: $scope.data.enddatetime\n\t\t\t\t});\n\t\t\t\t$scope.data.startdatetime = $scope.show.dates[0].begintime;\n\t\t\t\t$scope.data.enddatetime = $scope.show.dates[0].endtime;\n\t\t\t};\n\n\t\t\t$scope.removeDateRange = function() {\n\t\t\t\t$scope.params.dates.splice($scope.params.dates.indexOf($scope.data.selectedDate), 1);\n\t\t\t\t$scope.data.selectedDate = null;\n\t\t\t};\n\n\t\t\t$scope.loadData = function() {\n\t\t\t\treportService.attendanceByTimeReport($scope.show.id, $scope.params.dates, $scope.params.sessions, function(data){\n\n\t\t\t\t\t$scope.data.data = data;\n\n\t\t\t\t\t$scope.chart.data = [ data.map(function(row){\n\t\t\t\t\t\treturn row.numAttendees;\n\t\t\t\t\t}) ];\n\n\t\t\t\t\t$scope.chart.labels = data.map(function(row){\n\t\t\t\t\t\treturn row.timeRange;\n\t\t\t\t\t});\n\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t$scope.export = function(format) {\n\n\t\t\t\t// format should be \"pdf\" or \"xls\"\n\n\t\t\t\tvar formatDate = function(date, dateFormat) {\n\t\t\t\t\tdateFormat = dateFormat || 'yyyy-MM-dd h:mm a';\n\t\t\t\t\treturn $filter('date')(date, dateFormat);\n\t\t\t\t};\n\n\t\t\t\tvar params = {\n\t\t\t\t\tdateranges: $scope.params.dates.map(function(range){\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tstartdate: formatDate(range.start),\n\t\t\t\t\t\t\tenddate: formatDate(range.end),\n\t\t\t\t\t\t\tlabel: formatDate(range.start, 'MM/dd/yyyy h:mm a') + \" - \" + formatDate(range.end, 'MM/dd/yyyy h:mm a')\n\t\t\t\t\t\t};\n\t\t\t\t\t})\n\t\t\t\t};\n\n\t\t\t\tif ($scope.params.sessions.length) {\n\t\t\t\t\tparams.sessionids = $scope.params.sessions;\n\t\t\t\t}\n\n\t\t\t\treportService.export({\n\t\t\t\t\treportName: \"attendanceByTime\",\n\t\t\t\t\treportArgs: angular.toJson(params),\n\t\t\t\t\teventId: $scope.show.id,\n\t\t\t\t\tformat: format,\n\t\t\t\t\tbIncludeChart: true,\n\t\t\t\t\tchartType: \"bar\",\n\t\t\t\t}, function(url){\n\t\t\t\t\t$window.open(url);\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t\tsessionService.list($scope.show.id, function(data){\n\t\t\t\t$scope.data.sessions = data.sessions;\n\t\t\t});\n\n\t\t}])\n\n\t\t// admin controllers\n\n\t\t.controller(\"AdminShowController\", [ \"$scope\", \"$routeParams\", \"$location\", \"$modal\", \"CurrentUserService\", \"CurrentShowService\", \"ShowService\", \"ConfigService\", \"LocationService\", \"AlertService\", \"ConfirmService\", \"SurveyService\", \"AttendeeService\", \"SessionService\", \"VenueService\", \"RoomService\", \"ExhibitorService\", function($scope, $routeParams, $location, $modal, currentUserService, currentShowService, showService, configService, locationService, alertService, confirmService, surveyService, attendeeService, sessionService, venueService, roomService, exhibitorService){\n\n\t\t\tif (!currentUserService.isSuperAdmin()) {\n\t\t\t\t$location.url(\"/\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$scope.creditcalcmethods = [];\n\n\t\t\t$scope.rte = {\n\t\t\t\tcertemailmessage: {\n\t\t\t\t\tviewcode: false\n\t\t\t\t},\n\t\t\t\tcertificatehtml: {\n\t\t\t\t\tviewcode: false\n\t\t\t\t},\n\t\t\t\tmobileintro: {\n\t\t\t\t\tviewcode: false\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t$scope.show = {\n\t\t\t\tname: \"\",\n\t\t\t\tcustomerid: \"\",\n\t\t\t\tdates: [],\n\t\t\t\tdashboard: {},\n\t\t\t\tsmtpport: 25,\n\t\t\t\tsmtpusername: \"\",\n\t\t\t\tsmtppassword: \"\",\n\t\t\t\tsmtpserver: \"\",\n\t\t\t\tsmtpfrom: \"\",\n\t\t\t\tdem1label: \"Demographic 1\",\n\t\t\t\tdem2label: \"Demographic 2\",\n\t\t\t\tdem3label: \"Demographic 3\",\n\t\t\t\tdem4label: \"Demographic 4\",\n\t\t\t\tdem5label: \"Demographic 5\",\n\t\t\t\tdem6label: \"Demographic 6\",\n\t\t\t\tdem7label: \"Demographic 7\",\n\t\t\t\tdem8label: \"Demographic 8\",\n\t\t\t\tdem9label: \"Demographic 9\",\n\t\t\t\tdem10label: \"Demographic 10\",\n\t\t\t\tdem11label: \"Demographic 11\",\n\t\t\t\tdem12label: \"Demographic 12\",\n\t\t\t\tbUseDem1: true,\n\t\t\t\tbUseDem2: true,\n\t\t\t\tbUseDem3: true,\n\t\t\t\tbUseDem4: true,\n\t\t\t\tbUseDem5: true,\n\t\t\t\tbUseDem6: true,\n\t\t\t\tbUseDem7: true,\n\t\t\t\tbUseDem8: true,\n\t\t\t\tbUseDem9: true,\n\t\t\t\tbUseDem10: true,\n\t\t\t\tbUseDem11: true,\n\t\t\t\tbUseDem12: true,\n\t\t\t\tapishowid: \"\",\n\t\t\t\tapicontractorid: \"031\",\n\t\t\t\tapisecretkey: \"magnum\",\n\t\t\t\tapiusername: \"\",\n\t\t\t\tapipassword: \"\",\n\t\t\t\ttzoffset: -5,\n\t\t\t\tapiuseapidata: false,\n\t\t\t\ttrackingenabled: false,\n\t\t\t\ttrackingusername: \"c0nstrat\",\n\t\t\t\ttrackingpassword: \"fr33stop1\",\n\t\t\t\texhibitorcustomcss: \"\",\n\t\t\t\ttrackingftpserver: \"rfid.expotools.biz\",\n\t\t\t\ttrackingftpport: 21,\n\t\t\t\ttrackingftpusername: \"rfid_drop_031\",\n\t\t\t\ttrackingftppassword: \"magnum\",\n\t\t\t\ttrackingftppath: \"/customer/\",\n\t\t\t\ttrackingftpfilename: \"\"\n\t\t\t};\n\n\t\t\t$scope.customers = [];\n\t\t\t$scope.widgets = [];\n\t\t\t$scope.searchparams = [];\n\t\t\t$scope.reportfields = [];\n\n\t\t\tcurrentShowService.clear();\n\n\t\t\tshowService.getCreditCalcMethods(function(creditcalcmethods){\n\t\t\t\t$scope.creditcalcmethods = creditcalcmethods;\n\t\t\t});\n\n\t\t\tvar loadConfig = function() {\n\t\t\t\tconfigService.get(function(config){\n\t\t\t\t\t$scope.customers = config.customers;\n\t\t\t\t\t$scope.widgets = config.widgets;\n\t\t\t\t\t$scope.searchparams = config.searchparams;\n\t\t\t\t\t$scope.reportfields = config.reportfields;\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tvar reloadConfig = function(){\n\t\t\t\tconfigService.reload(function(){\n\t\t\t\t\tloadConfig();\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t$scope.nextSchedDate = \"\";\n\n\t\t\tvar loadNextSchedDate = function(show) {\n\t\t\t\tshowService.getNextSchedImportDate(show, function(nextSchedDate){\n\t\t\t\t\t$scope.nextSchedDate = nextSchedDate;\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t$scope.rooms = {};\n\t\t\tvar loadShow = function(showid, cb) {\n\t\t\t\tcb = cb || angular.noop;\n\t\t\t\tshowService.get(showid, function(show){\n\t\t\t\t\t$scope.show = show;\n\t\t\t\t\tcurrentShowService.set(show);\n\t\t\t\t\tloadNextSchedDate(show);\n\t\t\t\t\t$scope.getExhibitorImportStatus();\n\t\t\t\t\t$scope.rooms = {};\n\t\t\t\t\tshow.rooms.forEach(function(room){\n\t\t\t\t\t\t$scope.rooms[room.id] = room.name;\n\t\t\t\t\t});\n\n\t\t\t\t\tcb(show);\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t$scope.$on(\"FloorPlanDataSaved\", function(){\n\t\t\t\tloadShow($routeParams.showid);\n\t\t\t});\n\n\t\t\t$scope.refreshNextSchedRunTime = function() {\n\t\t\t\t$scope.nextSchedDate = \"Loading...\";\n\t\t\t\tloadNextSchedDate($scope.show);\n\t\t\t};\n\n\t\t\tloadConfig();\n\n\t\t\t$scope.tabs = [\n\t\t\t\t{ heading: \"Branding\", active: false },\n\t\t\t\t{ heading: \"Event Details\", active: true },\n\t\t\t\t{ heading: \"Locations\", active: false },\n\t\t\t\t{ heading: \"Console\", active: false },\n\t\t\t\t{ heading: \"Sessions\", active: false },\n\t\t\t\t{ heading: \"Attendees\", active: false },\n\t\t\t\t{ heading: \"Floor Plans\", active: false },\n\t\t\t\t{ heading: \"Certificates\", active: false },\n\t\t\t\t{ heading: \"Surveys\", active: false },\n\t\t\t\t{ heading: \"Data Import\", active: false },\n\t\t\t\t{ heading: \"Exhibitors\", active: false }\n\t\t\t];\n\n\t\t\tif ($routeParams.showid) {\n\t\t\t\t// load show\n\t\t\t\tloadShow($routeParams.showid, function(){\n\n\t\t\t\t\tif ($routeParams.selectedtab) {\n\t\t\t\t\t\t$scope.tabs.forEach(function(tab){\n\t\t\t\t\t\t\ttab.active = false;\n\t\t\t\t\t\t});\n\t\t\t\t\t\t$scope.tabs[$routeParams.selectedtab].active = true;\n\t\t\t\t\t}\n\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t$scope.onSetBeginTime = function(oldTime, newTime, idx) {\n\t\t\t\t$scope.show.dates[idx].beginisopen = false;\n\t\t\t};\n\t\t\t$scope.onSetEndTime = function(oldTime, newTime, idx) {\n\t\t\t\t$scope.show.dates[idx].endisopen = false;\n\t\t\t};\n\n\t\t\t$scope.deleteDate = function(idx) {\n\t\t\t\t$scope.show.dates.splice(idx, 1);\n\t\t\t};\n\t\t\t$scope.addDate = function() {\n\t\t\t\t$scope.show.dates.push({\n\t\t\t\t\tbegintime: new Date(),\n\t\t\t\t\tendtime: new Date()\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t// locations\n\n\t\t\t$scope.editLocation = function(location) {\n\t\t\t\t$scope.selectedLocation = location;\n\t\t\t};\n\n\t\t\t$scope.cancelEditLocation = function() {\n\t\t\t\t$scope.selectedLocation = undefined;\n\t\t\t};\n\n\t\t\t$scope.saveLocation = function(location) {\n\t\t\t\tlocationService.save(location, $routeParams.showid, function(){\n\t\t\t\t\tloadShow($routeParams.showid, function(){\n\t\t\t\t\t\t$scope.cancelEditLocation();\n\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\t\tmsg: \"Location \" + location.name + \" saved\",\n\t\t\t\t\t\t\ttimeout: 5000\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$scope.deleteLocation = function(location) {\n\n\t\t\t\tconfirmService.show(\n\t\t\t\t\t\"Are you sure?\",\n\t\t\t\t\t\"Are you sure you want to delete this location?\",\n\t\t\t\t\tfunction(){\n\n\t\t\t\t\t\tlocationService.delete(location, function(){\n\t\t\t\t\t\t\tloadShow($routeParams.showid);\n\t\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\t\t\tmsg: \"Location \" + location.name + \" deleted\",\n\t\t\t\t\t\t\t\ttimeout: 5000\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};\n\t\t\t$scope.newLocation = function() {\n\n\t\t\t\tvar location = {\n\t\t\t\t\taddress1: \"\",\n\t\t\t\t\taddress2: \"\",\n\t\t\t\t\tcity: \"\",\n\t\t\t\t\tstate: \"\",\n\t\t\t\t\tzip: \"\",\n\t\t\t\t\tcountry: \"\",\n\t\t\t\t\tname: \"\",\n\t\t\t\t\tisprimary: false\n\t\t\t\t};\n\n\t\t\t\t$scope.show.locations.push(location);\n\t\t\t\t$scope.editLocation(location);\n\n\t\t\t};\n\n\t\t\t// console\n\n\t\t\t$scope.handleWidgetDrop = function(position, $data) {\n\t\t\t\t$scope.show.dashboard[position] = $data;\n\t\t\t};\n\n\t\t\t$scope.saveConsole = function() {\n\n\t\t\t\tconfigService.update({\n\t\t\t\t\tsearchparams: $scope.show.searchparams,\n\t\t\t\t\treportfields: $scope.show.reportfields,\n\t\t\t\t\twidgettlid: (($scope.show.dashboard.topleft && $scope.show.dashboard.topleft.id) ? $scope.show.dashboard.topleft.id : 0),\n\t\t\t\t\twidgettrid: (($scope.show.dashboard.topright && $scope.show.dashboard.topright.id) ? $scope.show.dashboard.topright.id : 0),\n\t\t\t\t\twidgetbrid: (($scope.show.dashboard.bottomright && $scope.show.dashboard.bottomright.id) ? $scope.show.dashboard.bottomright.id : 0),\n\t\t\t\t\twidgetblid: (($scope.show.dashboard.bottomleft && $scope.show.dashboard.bottomleft.id) ? $scope.show.dashboard.bottomleft.id : 0)\n\t\t\t\t}, function(result){\n\n\t\t\t\t\tif (result) {\n\n\t\t\t\t\t\treloadConfig();\n\n\t\t\t\t\t\tloadShow($routeParams.showid, function(){\n\t\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\t\t\tmsg: \"Data saved successfully!\",\n\t\t\t\t\t\t\t\ttimeout: 5000\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\tmsg: \"Error saving the console data\",\n\t\t\t\t\t\t\ttimeout: 5000\n\t\t\t\t\t\t});\n\n\t\t\t\t\t}\n\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t\t// save\n\n\t\t\t$scope.saveDetails = function() {\n\n\t\t\t\tif (!$scope.show.dates.length) {\n\t\t\t\t\talertService.add({\n\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\tmsg: \"You must have at least one pair of dates\"\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tshowService.save($scope.show, function(id){\n\n\t\t\t\t\tvar cont = function() {\n\t\t\t\t\t\treloadConfig();\n\n\t\t\t\t\t\tif (!$scope.show.id) {\n\t\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\t\t\tmsg: \"Event created successfully!\"\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\treloadConfig();\n\t\t\t\t\t\t\t$location.url(\"/admin/\" + id);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tloadShow($scope.show.id, function(){\n\t\t\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\t\t\t\tmsg: \"Save successful!\"\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\tif (!$scope.show.newlogo) {\n\t\t\t\t\t\tcont();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// upload logo then continue\n\t\t\t\t\t\tshowService.uploadLogo($scope.show, function(result){\n\n\t\t\t\t\t\t\tif (!result) {\n\t\t\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\t\t\tmsg: \"There was an issue uploading the logo!\"\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\tcont();\n\n\t\t\t\t\t\t});\n\n\t\t\t\t\t}\n\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t\t// certificates\n\n\t\t\t$scope.saveCertificates = function() {\n\n\t\t\t\tshowService.saveCertInfo({\n\t\t\t\t\tshowid: $routeParams.showid,\n\t\t\t\t\tcertmoduleenabled: $scope.show.certmoduleenabled,\n\t\t\t\t\tcreditcalcmethod: $scope.show.creditcalcmethod,\n\t\t\t\t\ttranscriptdisclaimer: $scope.show.transcriptdisclaimer,\n\t\t\t\t\tissuecertificate: $scope.show.issuecertificate,\n\t\t\t\t\tissuezerocreditcertificates: $scope.show.issuezerocreditcertificates,\n\t\t\t\t\tusemultipagecert: $scope.show.usemultipagecert,\n\t\t\t\t\tcertificatelayout: $scope.show.certificatelayout,\n\t\t\t\t\tcertificatepagewidth: $scope.show.certificatepagewidth,\n\t\t\t\t\tcertificatepageheight: $scope.show.certificatepageheight,\n\t\t\t\t\tcertificatecss: $scope.show.certificatecss,\n\t\t\t\t\tcertificatehtml: $scope.show.certificatehtml,\n\t\t\t\t\tcertemailundeliverable: $scope.show.certemailundeliverable,\n\t\t\t\t\tcertemailfromaddress: $scope.show.certemailfromaddress,\n\t\t\t\t\tcertemailsubject: $scope.show.certemailsubject,\n\t\t\t\t\tcertemailmessage: $scope.show.certemailmessage,\n\t\t\t\t\tusemobile: $scope.show.usemobile,\n\t\t\t\t\tmobileshowmaxcredit: $scope.show.mobileshowmaxcredit,\n\t\t\t\t\tmobileshowcreditedtime: $scope.show.mobileshowcreditedtime,\n\t\t\t\t\tmobileintro: $scope.show.mobileintro,\n\t\t\t\t\titunesappid: $scope.show.itunesappid,\n\t\t\t\t}, function(){\n\n\t\t\t\t\tloadShow($routeParams.showid);\n\n\t\t\t\t\talertService.add({\n\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\tmsg: \"Save successful!\",\n\t\t\t\t\t\ttimeout: 5000\n\t\t\t\t\t});\n\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t\t// surveys\n\n\t\t\t$scope.surveys = [];\n\t\t\t$scope.surveyemails = [];\n\n\t\t\t$scope.loadSurveyData = function(cb){\n\t\t\t\tcb = cb || angular.noop;\n\t\t\t\tsurveyService.list($routeParams.showid, function(data){\n\t\t\t\t\t$scope.surveys = data.surveys;\n\t\t\t\t\t$scope.surveyemails = data.emails;\n\t\t\t\t\tcb(data);\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t$scope.deleteSurvey = function(survey) {\n\n\t\t\t\tconfirmService.show(\n\t\t\t\t\t\"Are you sure?\",\n\t\t\t\t\t\"Are you sure you want to delete this survey?\",\n\t\t\t\t\tfunction(){\n\n\t\t\t\t\t\tsurveyService.delete(survey, function(){\n\t\t\t\t\t\t\t$scope.loadSurveyData(function(){\n\t\t\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\t\t\t\tmsg: \"Survey deleted successfully\"\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\n\t\t\t\t\t});\n\n\t\t\t};\n\n\t\t\t$scope.deleteSurveyEmail = function(email) {\n\n\t\t\t\tconfirmService.show(\n\t\t\t\t\t\"Are you sure?\",\n\t\t\t\t\t\"Are you sure you want to delete this survey email?\",\n\t\t\t\t\tfunction(){\n\n\t\t\t\t\t\tsurveyService.deleteEmail(email, function(){\n\t\t\t\t\t\t\t$scope.loadSurveyData(function(){\n\t\t\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\t\t\t\tmsg: \"Survey email deleted successfully\"\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\n\t\t\t\t\t});\n\n\t\t\t};\n\n\t\t\t$scope.saveSurveyData = function() {\n\n\t\t\t\tsurveyService.saveShowData($scope.show, function(result){\n\n\t\t\t\t\tif (result) {\n\t\t\t\t\t\tloadShow($routeParams.showid, function(){\n\t\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\t\t\tmsg: \"Survey configuration data saved successfully!\"\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\talertService.add({\n\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\tmsg: \"There was an error saving the survey configuration data\"\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t\t// data import\n\t\t\t$scope.openApiScanSettingsModal = function() {\n\n\t\t\t\t$modal.open({\n\t\t\t\t\ttemplateUrl: 'src/html/api-scan-settings-modal.html',\n\t\t\t\t\tcontroller: 'ApiScanSettingsModalController',\n\t\t\t\t\tsize: \"lg\",\n\t\t\t\t\tresolve: {\n\t\t\t\t\t\tshowid: function () {\n\t\t\t\t\t\t\treturn $routeParams.showid;\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\t$scope.openRegImportSettingsModal = function() {\n\n\t\t\t\t$modal.open({\n\t\t\t\t\ttemplateUrl: 'src/html/reg-import-settings-modal.html',\n\t\t\t\t\tcontroller: 'RegImportSettingsModalController',\n\t\t\t\t\tsize: \"lg\",\n\t\t\t\t\tresolve: {\n\t\t\t\t\t\tshowid: function () {\n\t\t\t\t\t\t\treturn $routeParams.showid;\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$scope.triggerForceImport = function() {\n\t\t\t\tshowService.triggerForceImport($scope.show, function(){\n\t\t\t\t\talertService.add({\n\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\tmsg: \"Import will run in 5 minutes\"\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t$scope.dataLoadIntervalOptions = [\n\t\t\t\t{ data: 300, label: \"Every 5 minutes\" },\n\t\t\t\t{ data: 600, label: \"Every 10 minutes\" },\n\t\t\t\t{ data: 1800, label: \"Every 30 minutes\" },\n\t\t\t\t{ data: 3600, label: \"Every hour\" },\n\t\t\t\t{ data: 21600, label: \"Every 6 hours\" },\n\t\t\t\t{ data: 43200, label: \"Every 12 hours\" },\n\t\t\t\t{ data: 86400, label: \"Every day\" }\n\t\t\t];\n\n\t\t\tvar setScheduledTask = function(show, cb) {\n\t\t\t\tcb = cb || angular.noop;\n\t\t\t\tshowService.setScheduledTask(show, cb);\n\t\t\t};\n\n\t\t\t$scope.saveDataImport = function() {\n\n\t\t\t\tshowService.saveDataImportSettings($scope.show, function(result){\n\n\t\t\t\t\tif (!result.success) {\n\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\tmsg: \"There was an error saving the data import settings!\"\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tsetScheduledTask($scope.show, function(){\n\t\t\t\t\t\tloadShow($routeParams.showid, function(){\n\t\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\t\t\tmsg: \"Data import settings saved successfully!\"\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};\n\n\t\t\t// exhbitor\n\n\t\t\t$scope.exhibitors = [];\n\n\t\t\t$scope.loadExhibitors = function(cb) {\n\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\texhibitorService.list($routeParams.showid, function(exhibitors){\n\t\t\t\t\t$scope.exhibitors = exhibitors;\n\t\t\t\t\tcb(exhibitors);\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t$scope.regenerateLoginToken = function(exhibitor) {\n\n\t\t\t\tconfirmService.show(\n\t\t\t\t\t\"Are you sure?\",\n\t\t\t\t\t\"Are you sure you wish to reset this exhibitor's login token?\",\n\t\t\t\t\tfunction(){\n\t\t\t\t\t\texhibitorService.regenerateLoginToken(exhibitor, function(result){\n\t\t\t\t\t\t\tif (result) {\n\t\t\t\t\t\t\t\t$scope.loadExhibitors(function(){\n\t\t\t\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\t\t\t\t\tmsg: \"Exhibitor login token reset successfully!\"\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} else {\n\t\t\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\t\t\tmsg: \"There was a problem resetting the exhibitor's login token\"\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$scope.deleteExhibitor = function(exhibitor) {\n\n\t\t\t\tconfirmService.show(\n\t\t\t\t\t\"Are you sure?\",\n\t\t\t\t\t\"Are you sure you wish to delete this exhibitor?\",\n\t\t\t\t\tfunction(){\n\t\t\t\t\t\texhibitorService.delete(exhibitor, function(result){\n\t\t\t\t\t\t\tif (result) {\n\t\t\t\t\t\t\t\t$scope.loadExhibitors(function(){\n\t\t\t\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\t\t\t\t\tmsg: \"Exhibitor deleted successfully!\"\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} else {\n\t\t\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\t\t\tmsg: \"There was a problem deleting the exhibitor\"\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$scope.exhibitorImportScheduled = false;\n\n\t\t\t$scope.getExhibitorImportStatus = function() {\n\t\t\t\texhibitorService.getExhibitorImportStatus($scope.show, function(result){\n\t\t\t\t\t$scope.exhibitorImportScheduled = result;\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t$scope.scheduleExhibitorImport = function() {\n\n\t\t\t\texhibitorService.scheduleExhibitorImport($scope.show, function(result){\n\n\t\t\t\t\t$scope.getExhibitorImportStatus();\n\n\t\t\t\t\talertService.add({\n\t\t\t\t\t\ttype: (result) ? \"success\" : \"danger\",\n\t\t\t\t\t\tmsg: (result) ? \"Exhibitor Import scheduled\" : \"Exhibitor Import NOT scheduled\"\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t\t$scope.triggerForceExhibitorImport = function() {\n\t\t\t\texhibitorService.triggerForceImport($scope.show, function(){\n\t\t\t\t\talertService.add({\n\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\tmsg: \"Import will run in 5 minutes\"\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t$scope.emailExhibitor = function(exhibitor) {\n\t\t\t\texhibitorService.emailExhibitor($scope.show, exhibitor, function(){\n\t\t\t\t\talertService.add({\n\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\tmsg: \"Email Sent!\"\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t$scope.emailAllExhibitors = function() {\n\t\t\t\tconsole.log(\"email all exhibitors clicked\");\n\t\t\t\texhibitorService.emailAllExhibitors($scope.show, function(){\n\t\t\t\t\talertService.add({\n\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\tmsg: \"Emails Sent!\"\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t$scope.showExhibitorImportModal = function() {\n\n\t\t\t\t// show the modal\n\n\t\t\t\tvar modalInstance = $modal.open({\n\t\t\t\t\ttemplateUrl: 'src/html/exhibitor-import-modal.html',\n\t\t\t\t\tcontroller: 'ExhibitorImportModalController',\n\t\t\t\t\tsize: \"lg\",\n\t\t\t\t\tresolve: {\n\t\t\t\t\t\tshow: function () {\n\t\t\t\t\t\t\treturn $scope.show;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\n\t\t\t\tmodalInstance.result.then(function(){\n\t\t\t\t\t$scope.loadExhibitors();\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t\t// attendee\n\n\t\t\t$scope.attendeeTabs = [\n\t\t\t\t{ active: true },\n\t\t\t\t{ active: false },\n\t\t\t\t{ active: false }\n\t\t\t];\n\n\t\t\t$scope.activateAttendeeTab = function(idx) {\n\t\t\t\t$scope.attendeeTabs.forEach(function(tab){\n\t\t\t\t\ttab.active = false;\n\t\t\t\t});\n\t\t\t\t$scope.attendeeTabs[idx].active = true;\n\t\t\t};\n\n\t\t\t$scope.attendees = [];\n\n\t\t\t$scope.onManageAttendeesSelected = function() {\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t$scope.loadAttendees();\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t$scope.attendeePagination = {\n\t\t\t\tpage: 1,\n\t\t\t\tpageSize: 100,\n\t\t\t\ttotalCount: 0,\n\t\t\t\tpageCount: 1,\n\t\t\t\tpages: []\n\t\t\t};\n\n\t\t\t$scope.nextPage = function() {\n\t\t\t\t$scope.attendeePagination.page = Number($scope.attendeePagination.page) + 1;\n\t\t\t\tif ($scope.attendeePagination.page > $scope.attendeePagination.pageCount) {\n\t\t\t\t\t$scope.attendeePagination.page = $scope.attendeePagination.pageCount;\n\t\t\t\t}\n\n\t\t\t\t$scope.loadAttendees();\n\t\t\t}\n\n\t\t\t$scope.prevPage = function() {\n\t\t\t\t$scope.attendeePagination.page = Number($scope.attendeePagination.page) - 1;\n\n\t\t\t\tif ($scope.attendeePagination.page < 1) {\n\t\t\t\t\t$scope.attendeePagination.page = 1;\n\t\t\t\t}\n\n\t\t\t\t$scope.loadAttendees();\n\t\t\t}\n\n\t\t\t$scope.loadAttendees = function(cb) {\n\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\tattendeeService.list($routeParams.showid, $scope.attendeePagination.page, $scope.attendeePagination.pageSize, function(result){\n\t\t\t\t\t$scope.attendees = result.attendees;\n\t\t\t\t\t$scope.attendeePagination.totalCount = Number(result.pagination.total);\n\t\t\t\t\t$scope.attendeePagination.pageCount = Math.ceil($scope.attendeePagination.totalCount / $scope.attendeePagination.pageSize);\n\t\t\t\t\t$scope.attendeePagination.pages = [];\n\t\t\t\t\tfor (var i = 0; i < $scope.attendeePagination.pageCount; i++) {\n\t\t\t\t\t\t$scope.attendeePagination.pages.push({\n\t\t\t\t\t\t\tid: i + 1,\n\t\t\t\t\t\t\tlabel: i + 1\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tcb(result.attendees);\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t\t$scope.deleteAttendee = function(attendee) {\n\n\t\t\t\tconfirmService.show(\n\t\t\t\t\t\"Are you sure?\",\n\t\t\t\t\t\"Are you sure you wish to delete this attendee?\",\n\t\t\t\t\tfunction(){\n\t\t\t\t\t\tattendeeService.delete(attendee, function(result){\n\t\t\t\t\t\t\tif (result) {\n\t\t\t\t\t\t\t\t$scope.loadAttendees(function(){\n\t\t\t\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\t\t\t\t\tmsg: \"Attendee deleted successfully!\"\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} else {\n\t\t\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\t\t\tmsg: \"There was a problem deleting the attendee\"\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$scope.attendeeUpload = {};\n\n\t\t\t$scope.uploadAttendees = function() {\n\n\t\t\t\tattendeeService.upload($scope.attendeeUpload.xlsfile, $scope.show, function(result){\n\n\t\t\t\t\tif (!result) {\n\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\tmsg: \"There was a problem uploading the attendee file\"\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t$location.url(\"/admin/\" + $routeParams.showid + \"/importattendees\");\n\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t\t$scope.addAttendeeType = function() {\n\t\t\t\t$scope.show.attendeetypes.push({\n\t\t\t\t\tname: \"\"\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t$scope.deleteAttendeeType = function(type) {\n\n\t\t\t\tconfirmService.show(\n\t\t\t\t\t\"Are you sure?\",\n\t\t\t\t\t\"Are you sure you wish to delete this attendee type?\",\n\t\t\t\t\tfunction(){\n\t\t\t\t\t\tattendeeService.deleteAttendeeType(type, function(result){\n\t\t\t\t\t\t\tif (result) {\n\t\t\t\t\t\t\t\tloadShow($routeParams.showid);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\t\t\tmsg: \"There was a problem deleting the attendee type\"\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$scope.saveAttendeeType = function(type) {\n\n\t\t\t\tattendeeService.saveAttendeeType($routeParams.showid, type, function(result){\n\t\t\t\t\tif (result) {\n\t\t\t\t\t\tloadShow($routeParams.showid);\n\t\t\t\t\t} else {\n\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\tmsg: \"There was a problem saving the attendee type\"\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// session\n\n\t\t\t$scope.sessionTabs = [\n\t\t\t\t{ active: true },\n\t\t\t\t{ active: false },\n\t\t\t\t{ active: false }\n\t\t\t];\n\n\t\t\t$scope.activateSessionTab = function(idx) {\n\t\t\t\t$scope.sessionTabs.forEach(function(tab){\n\t\t\t\t\ttab.active = false;\n\t\t\t\t});\n\t\t\t\t$scope.sessionTabs[idx].active = true;\n\t\t\t};\n\n\t\t\t$scope.sessions = [];\n\t\t\t$scope.sessiontypes = {};\n\t\t\t$scope.sessioncategories = {};\n\n\t\t\t$scope.isDate = angular.isDate;\n\n\t\t\t$scope.loadSessions = function(cb) {\n\n\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\tsessionService.list($routeParams.showid, function(result){\n\n\t\t\t\t\t$scope.sessions = result.sessions;\n\n\t\t\t\t\t$scope.sessiontypes = {};\n\t\t\t\t\tresult.types.forEach(function(type){\n\t\t\t\t\t\t$scope.sessiontypes[type.id] = type.name;\n\t\t\t\t\t});\n\n\t\t\t\t\t$scope.sessioncategories = {};\n\t\t\t\t\tresult.categories.forEach(function(type){\n\t\t\t\t\t\t$scope.sessioncategories[type.id] = type.name;\n\t\t\t\t\t});\n\n\t\t\t\t\tcb(result);\n\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t\t$scope.deleteSession = function(session) {\n\n\t\t\t\tconfirmService.show(\n\t\t\t\t\t\"Are you sure?\",\n\t\t\t\t\t\"Are you sure you wish to delete this session?\",\n\t\t\t\t\tfunction(){\n\t\t\t\t\t\tsessionService.delete(session, function(result){\n\t\t\t\t\t\t\tif (result) {\n\t\t\t\t\t\t\t\t$scope.loadSessions(function(){\n\t\t\t\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\t\t\t\t\tmsg: \"Session deleted successfully!\"\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} else {\n\t\t\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\t\t\tmsg: \"There was a problem deleting the session\"\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$scope.sessionUpload = {};\n\n\t\t\t$scope.uploadSessions = function() {\n\n\t\t\t\tsessionService.upload($scope.sessionUpload.xlsfile, $scope.show, function(result){\n\n\t\t\t\t\tif (!result) {\n\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\tmsg: \"There was a problem uploading the session file\"\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t$location.url(\"/admin/\" + $routeParams.showid + \"/importsessions\");\n\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t\t$scope.addSessionType = function() {\n\t\t\t\t$scope.show.sessiontypes.push({\n\t\t\t\t\tname: \"\"\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t$scope.deleteSessionType = function(type) {\n\n\t\t\t\tconfirmService.show(\n\t\t\t\t\t\"Are you sure?\",\n\t\t\t\t\t\"Are you sure you wish to delete this session type?\",\n\t\t\t\t\tfunction(){\n\t\t\t\t\t\tsessionService.deleteSessionType(type, $routeParams.showid, function(result){\n\t\t\t\t\t\t\tif (result) {\n\t\t\t\t\t\t\t\tloadShow($routeParams.showid);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\t\t\tmsg: \"There was a problem deleting the session type\"\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$scope.saveSessionType = function(type) {\n\n\t\t\t\tsessionService.saveSessionType($routeParams.showid, type, function(result){\n\t\t\t\t\tif (result) {\n\t\t\t\t\t\tloadShow($routeParams.showid);\n\t\t\t\t\t} else {\n\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\tmsg: \"There was a problem saving the session type\"\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$scope.addSessionCategory = function() {\n\t\t\t\t$scope.show.sessioncategories.push({\n\t\t\t\t\tname: \"\"\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t$scope.deleteSessionCategory = function(cat) {\n\n\t\t\t\tconfirmService.show(\n\t\t\t\t\t\"Are you sure?\",\n\t\t\t\t\t\"Are you sure you wish to delete this session category?\",\n\t\t\t\t\tfunction(){\n\t\t\t\t\t\tsessionService.deleteSessionCategory(cat, $routeParams.showid, function(result){\n\t\t\t\t\t\t\tif (result) {\n\t\t\t\t\t\t\t\tloadShow($routeParams.showid);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\t\t\tmsg: \"There was a problem deleting the session type\"\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$scope.saveSessionCategory = function(cat) {\n\n\t\t\t\tsessionService.saveSessionCategory($routeParams.showid, cat, function(result){\n\t\t\t\t\tif (result) {\n\t\t\t\t\t\tloadShow($routeParams.showid);\n\t\t\t\t\t} else {\n\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\tmsg: \"There was a problem saving the session category\"\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$scope.saveVenue = function(venue) {\n\t\t\t\tvenueService.save(venue, $routeParams.showid, function(result){\n\t\t\t\t\tif (result) {\n\t\t\t\t\t\tloadShow($routeParams.showid);\n\t\t\t\t\t} else {\n\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\tmsg: \"There was a problem saving the venue\"\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$scope.deleteVenue = function(venue) {\n\t\t\t\tconfirmService.show(\n\t\t\t\t\t\"Are you sure?\",\n\t\t\t\t\t\"Are you sure you wish to delete this venue?\",\n\t\t\t\t\tfunction(){\n\t\t\t\t\t\tvenueService.delete(venue, $routeParams.showid, function(result){\n\t\t\t\t\t\t\tif (result) {\n\t\t\t\t\t\t\t\tloadShow($routeParams.showid);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\t\t\tmsg: \"There was a problem deleting the venue\"\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\n\t\t\t$scope.addVenue = function() {\n\t\t\t\t$scope.show.venues.push({\n\t\t\t\t\tlocationid: 0,\n\t\t\t\t\tname: \"\",\n\t\t\t\t\tfloorplanjpg: \"\"\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t$scope.saveRoom = function(room) {\n\t\t\t\troomService.save(room, $routeParams.showid, function(result){\n\t\t\t\t\tif (result) {\n\t\t\t\t\t\tloadShow($routeParams.showid);\n\t\t\t\t\t} else {\n\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\tmsg: \"There was a problem saving the room\"\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$scope.deleteRoom = function(room) {\n\t\t\t\tconfirmService.show(\n\t\t\t\t\t\"Are you sure?\",\n\t\t\t\t\t\"Are you sure you wish to delete this room?\",\n\t\t\t\t\tfunction(){\n\t\t\t\t\t\troomService.delete(room, $routeParams.showid, function(result){\n\t\t\t\t\t\t\tif (result) {\n\t\t\t\t\t\t\t\tloadShow($routeParams.showid);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\t\t\tmsg: \"There was a problem deleting the room\"\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\n\t\t\t$scope.addRoom = function() {\n\t\t\t\t$scope.show.rooms.push({\n\t\t\t\t\tvenueid: 0,\n\t\t\t\t\tname: \"\",\n\t\t\t\t\theight: 0,\n\t\t\t\t\twidth: 0,\n\t\t\t\t\trotation: 0,\n\t\t\t\t\ty: 0,\n\t\t\t\t\tx: 0\n\t\t\t\t});\n\t\t\t};\n\n\t\t}])\n\t\t.controller(\"ExhibitorImportModalController\", [ \"$scope\", \"$modalInstance\", \"show\", \"ExhibitorService\", \"AlertService\", function($scope, $modalInstance, show, exhibitorService, alertService){\n\n\t\t\t$scope.show = show;\n\n\t\t\t$scope.uploadData = {};\n\n\t\t\t$scope.importExhibitors = function() {\n\n\t\t\t\texhibitorService.importExhibitors($scope.uploadData.uploadFile, $scope.show, function(result){\n\n\t\t\t\t\tif (!result) {\n\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\tmsg: \"There was a problem uploading the exhibitor file\"\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t} else {\n\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\t\tmsg: \"Exhibitor file imported successfuly!\"\n\t\t\t\t\t\t});\n\t\t\t\t\t\t$modalInstance.close();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t\t$scope.close = function() {\n\t\t\t\t$modalInstance.close();\n\t\t\t};\n\n\t\t}])\n\t\t.controller(\"AdminAttendeeImportController\", [ \"$scope\", \"$routeParams\", \"$location\", \"CurrentUserService\", \"CurrentShowService\", \"ShowService\", \"AttendeeService\", \"AlertService\", function($scope, $routeParams, $location, currentUserService, currentShowService, showService, attendeeService, alertService){\n\n\t\t\tif (!currentUserService.isSuperAdmin()) {\n\t\t\t\t$location.url(\"/\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattendeeService.getXLSColHeaders($routeParams.showid, function(headers){\n\t\t\t\t$scope.headers = [{ num: 0, name: \"Do Not Import\" }];\n\t\t\t\t$scope.headers = $scope.headers.concat(headers);\n\t\t\t});\n\n\t\t\t$scope.show = currentShowService.get();\n\n\t\t\tif (!$scope.show) {\n\t\t\t\tshowService.get($routeParams.showid, function(show){\n\t\t\t\t\t$scope.show = show;\n\t\t\t\t\tcurrentShowService.set(show);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t$scope.mappings = {\n\t\t\t\tattendeenumber: 0,\n\t\t\t\tfirstName: 0,\n\t\t\t\tlastName: 0,\n\t\t\t\ttitle: 0,\n\t\t\t\tcompany: 0,\n\t\t\t\taddress1: 0,\n\t\t\t\taddress2: 0,\n\t\t\t\tcity: 0,\n\t\t\t\tstate: 0,\n\t\t\t\tzip: 0,\n\t\t\t\tcountry: 0,\n\t\t\t\tphone: 0,\n\t\t\t\tfax: 0,\n\t\t\t\temail: 0,\n\t\t\t\tattendeeType: 0,\n\t\t\t\tdem1: 0,\n\t\t\t\tdem2: 0,\n\t\t\t\tdem3: 0,\n\t\t\t\tdem4: 0,\n\t\t\t\tdem5: 0,\n\t\t\t\tdem6: 0,\n\t\t\t\tdem7: 0,\n\t\t\t\tdem8: 0,\n\t\t\t\tdem9: 0,\n\t\t\t\tdem10: 0,\n\t\t\t\tdem11: 0,\n\t\t\t\tdem12: 0,\n\t\t\t\tusername: 0,\n\t\t\t\tpassword: 0,\n\t\t\t\tdesignation: 0\n\t\t\t};\n\n\t\t\t$scope.import = function() {\n\n\t\t\t\tattendeeService.import($routeParams.showid, $scope.mappings, function(result){\n\n\t\t\t\t\tif (!result) {\n\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\tmsg: \"There was an error importing the attendees\"\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\talertService.add({\n\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\tmsg: \"Attendees imported successfully!\"\n\t\t\t\t\t});\n\n\t\t\t\t\t$location.url(\"/admin/\" + $routeParams.showid + \"/tab/5\");\n\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t}])\n\t\t.controller(\"AdminSessionImportController\", [ \"$scope\", \"$routeParams\", \"$location\", \"CurrentUserService\", \"CurrentShowService\", \"ShowService\", \"SessionService\", \"AlertService\", function($scope, $routeParams, $location, currentUserService, currentShowService, showService, sessionService, alertService){\n\n\t\t\tif (!currentUserService.isSuperAdmin()) {\n\t\t\t\t$location.url(\"/\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsessionService.getXLSColHeaders($routeParams.showid, function(headers){\n\t\t\t\t$scope.headers = [{ num: 0, name: \"Do Not Import\" }];\n\t\t\t\t$scope.headers = $scope.headers.concat(headers);\n\t\t\t});\n\n\t\t\t$scope.show = currentShowService.get();\n\n\t\t\tif (!$scope.show) {\n\t\t\t\tshowService.get($routeParams.showid, function(show){\n\t\t\t\t\t$scope.show = show;\n\t\t\t\t\tcurrentShowService.set(show);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t$scope.mappings = {\n\t\t\t\tdate: 0,\n\t\t\t\tstart: 0,\n\t\t\t\tend: 0,\n\t\t\t\tsessionnumber: 0,\n\t\t\t\ttitle: 0,\n\t\t\t\tpresenter: 0,\n\t\t\t\tsessiontype: 0,\n\t\t\t\tsessioncategory: 0,\n\t\t\t\troom: 0,\n\t\t\t\tmintimeforcredit: 0,\n\t\t\t\tcreditAmt: 0,\n\t\t\t\tuseapidata: 0,\n\t\t\t\tsurveyurl: 0,\n\t\t\t\tiframeheight: 0,\n\t\t\t\tregprice1: 0,\n\t\t\t\tregprice2: 0\n\t\t\t};\n\n\t\t\t$scope.import = function() {\n\n\t\t\t\tsessionService.import($routeParams.showid, $scope.mappings, function(result){\n\n\t\t\t\t\tif (!result) {\n\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\tmsg: \"There was an error importing the sessions\"\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\talertService.add({\n\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\tmsg: \"Sessions imported successfully!\"\n\t\t\t\t\t});\n\n\t\t\t\t\t$location.url(\"/admin/\" + $routeParams.showid + \"/tab/4\");\n\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t}])\n\t\t.controller(\"RegImportSettingsModalController\", [ \"$scope\", \"$modalInstance\", \"showid\", function($scope, $modalInstance, showid){\n\n\t\t\t$scope.showid = showid;\n\n\t\t\t$scope.close = function() {\n\t\t\t\t$modalInstance.close();\n\t\t\t};\n\n\t\t}])\n\t\t.controller(\"ApiScanSettingsModalController\", [ \"$scope\", \"$modalInstance\", \"showid\", function($scope, $modalInstance, showid){\n\n\t\t\t$scope.showid = showid;\n\n\t\t\t$scope.close = function() {\n\t\t\t\t$modalInstance.close();\n\t\t\t};\n\n\t\t}])\n\t\t.controller(\"AdminUsersController\", [ \"$scope\", \"$location\", \"CurrentUserService\", \"ConfigService\", \"UserService\", \"ConfirmService\", \"AlertService\", function($scope, $location, currentUserService, configService, userService, confirmService, alertService){\n\n\t\t\tif (!currentUserService.isSuperAdmin()) {\n\t\t\t\t$location.url(\"/\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$scope.users = [];\n\n\t\t\tvar setConfig = function(config) {\n\t\t\t\t$scope.users = config.users;\n\t\t\t};\n\n\t\t\tvar loadConfig = function(reload) {\n\t\t\t\tif (reload) {\n\t\t\t\t\tconfigService.reload(function(config){\n\t\t\t\t\t\tsetConfig(config);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tconfigService.get(function(config){\n\t\t\t\t\t\tsetConfig(config);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tloadConfig();\n\n\t\t\t$scope.edit = function(user) {\n\t\t\t\t$location.url(\"/user/\" + user.id);\n\t\t\t};\n\n\t\t\t$scope.delete = function(user) {\n\n\t\t\t\tconfirmService.show(\n\t\t\t\t\t\"Are you sure?\",\n\t\t\t\t\t\"Are you sure you wish to delete this user?\",\n\t\t\t\t\tfunction(){\n\t\t\t\t\t\tuserService.delete(user, function(){\n\t\t\t\t\t\t\tloadConfig(true);\n\t\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\t\t\tmsg: \"User deleted successfully\"\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}])\n\t\t.controller(\"AdminUserController\", [ \"$scope\", \"$routeParams\", \"$location\", \"CurrentUserService\", \"ConfigService\", \"UserService\", \"AlertService\", function($scope, $routeParams, $location, currentUserService, configService, userService, alertService){\n\n\t\t\tif (!currentUserService.isSuperAdmin()) {\n\t\t\t\t$location.url(\"/\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$scope.user = {};\n\t\t\t$scope.isNewUser = true;\n\n\t\t\tconfigService.get(function(config){\n\t\t\t\t$scope.roles = config.roles;\n\t\t\t\t$scope.events = config.events;\n\t\t\t});\n\n\t\t\tif ($routeParams.userid) {\n\t\t\t\tuserService.get($routeParams.userid, function(user){\n\t\t\t\t\t$scope.user = user;\n\t\t\t\t\t$scope.isNewUser = false;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t$scope.save = function() {\n\n\t\t\t\tuserService.save($scope.user, function(result){\n\n\t\t\t\t\tif (result.success === true) {\n\t\t\t\t\t\t$location.url(\"/users\");\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\talertService.add({\n\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\tmsg: \"There was an error saving the user\",\n\t\t\t\t\t\ttimeout: 5000\n\t\t\t\t\t});\n\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t}])\n\n\t\t.controller(\"AdminCustomersController\", [ \"$scope\", \"$location\", \"CurrentUserService\", \"ConfigService\", \"CustomerService\", \"ConfirmService\", \"AlertService\", function($scope, $location, currentUserService, configService, customerService, confirmService, alertService){\n\n\t\t\tif (!currentUserService.isSuperAdmin()) {\n\t\t\t\t$location.url(\"/\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$scope.customers = [];\n\n\t\t\tvar setConfig = function(config) {\n\t\t\t\t$scope.customers = config.customers;\n\t\t\t};\n\n\t\t\tvar loadConfig = function(reload) {\n\t\t\t\tif (reload) {\n\t\t\t\t\tconfigService.reload(function(config){\n\t\t\t\t\t\tsetConfig(config);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tconfigService.get(function(config){\n\t\t\t\t\t\tsetConfig(config);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tloadConfig();\n\n\t\t\t$scope.edit = function(customer) {\n\t\t\t\t$location.url(\"/customer/\" + customer.id);\n\t\t\t};\n\n\t\t\t$scope.delete = function(customer) {\n\n\t\t\t\tconfirmService.show(\n\t\t\t\t\t\"Are you sure?\",\n\t\t\t\t\t\"Are you sure you wish to delete this customer?\",\n\t\t\t\t\tfunction(){\n\t\t\t\t\t\tcustomerService.delete(customer, function(){\n\t\t\t\t\t\t\tloadConfig(true);\n\t\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\t\t\tmsg: \"Customer deleted successfully\"\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}])\n\t\t.controller(\"AdminCustomerController\", [ \"$scope\", \"$routeParams\", \"$location\", \"CurrentUserService\", \"CustomerService\", \"AlertService\", function($scope, $routeParams, $location, currentUserService, customerService, alertService){\n\n\t\t\tif (!currentUserService.isSuperAdmin()) {\n\t\t\t\t$location.url(\"/\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$scope.customer = {};\n\n\t\t\tif ($routeParams.customerid) {\n\t\t\t\tcustomerService.get($routeParams.customerid, function(customer){\n\t\t\t\t\t$scope.customer = customer;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t$scope.save = function() {\n\n\t\t\t\tcustomerService.save($scope.customer, function(result){\n\n\t\t\t\t\tif (result.success === true) {\n\t\t\t\t\t\t$location.url(\"/customers\");\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\talertService.add({\n\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\tmsg: \"There was an error saving the customer\",\n\t\t\t\t\t\ttimeout: 5000\n\t\t\t\t\t});\n\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t}])\n\n\t\t.controller(\"AdminSurveyController\", [ \"$scope\", \"$routeParams\", \"$location\", \"SurveyService\", \"CurrentUserService\", \"AlertService\", function($scope, $routeParams, $location, surveyService, currentUserService, alertService){\n\n\t\t\tif (!currentUserService.isSuperAdmin()) {\n\t\t\t\t$location.url(\"/\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$scope.survey = {\n\t\t\t\teventid: $routeParams.showid,\n\t\t\t\tname: \"\",\n\t\t\t\tseq: 0,\n\t\t\t\tsurveyurl: \"\",\n\t\t\t\tiframeheight: 800\n\t\t\t};\n\n\t\t\tvar loadSurvey = function(surveyid, cb) {\n\n\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\tsurveyService.get(surveyid, function(survey){\n\t\t\t\t\t$scope.survey = survey;\n\t\t\t\t\tcb(survey);\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t\tif ($routeParams.surveyid) {\n\t\t\t\tloadSurvey($routeParams.surveyid);\n\t\t\t}\n\n\t\t\t$scope.backToShow = function() {\n\t\t\t\t// 8 is a \"magic number\" that refers to the surveys tab.\n\t\t\t\t// perhaps we can create a global contstant to hold this in the future\n\t\t\t\t$location.url(\"/admin/\" + $routeParams.showid + \"/tab/8\" );\n\t\t\t};\n\n\t\t\t$scope.save = function() {\n\n\t\t\t\tsurveyService.save($scope.survey, function(result){\n\t\t\t\t\tif (result.success) {\n\t\t\t\t\t\t$scope.backToShow();\n\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\t\tmsg: \"Survey saved successfully!\"\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\tmsg: \"There was an issue saving the survey!\"\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$scope.cancel = function() {\n\t\t\t\t$scope.backToShow();\n\t\t\t};\n\n\t\t}])\n\t\t.controller(\"AdminSurveyEmailController\", [ \"$scope\", \"$routeParams\", \"$location\", \"SurveyService\", \"CurrentUserService\", \"AlertService\", function($scope, $routeParams, $location, surveyService, currentUserService, alertService){\n\n\t\t\tif (!currentUserService.isSuperAdmin()) {\n\t\t\t\t$location.url(\"/\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$scope.isopen = false;\n\n\t\t\t$scope.onSetTimeToSend = function() {\n\t\t\t\t$scope.isopen = false;\n\t\t\t};\n\n\t\t\t$scope.email = {\n\t\t\t\teventid: $routeParams.showid,\n\t\t\t\tfromaddress: \"\",\n\t\t\t\tsubject: \"\",\n\t\t\t\tmessage: \"\",\n\t\t\t\tsent: false\n\t\t\t};\n\n\t\t\tvar loadEmail = function(emailid, cb) {\n\n\t\t\t\tcb = cb || angular.noop;\n\n\t\t\t\tsurveyService.getEmail(emailid, function(email){\n\t\t\t\t\t$scope.email = email;\n\t\t\t\t\tcb(email);\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t\tif ($routeParams.emailid) {\n\t\t\t\tloadEmail($routeParams.emailid);\n\t\t\t}\n\n\t\t\t$scope.backToShow = function() {\n\t\t\t\t// 8 is a \"magic number\" that refers to the surveys tab.\n\t\t\t\t// perhaps we can create a global contstant to hold this in the future\n\t\t\t\t$location.url(\"/admin/\" + $routeParams.showid + \"/tab/8\" );\n\t\t\t};\n\n\t\t\t$scope.save = function() {\n\n\t\t\t\tsurveyService.saveEmail($scope.email, function(result){\n\t\t\t\t\tif (result.success) {\n\t\t\t\t\t\t$scope.backToShow();\n\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\t\tmsg: \"Survey Email saved successfully!\"\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\tmsg: \"There was an issue saving the survey email!\"\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$scope.cancel = function() {\n\t\t\t\t$scope.backToShow();\n\t\t\t};\n\n\t\t}])\n\t\t.controller(\"AdminAttendeeController\", [ \"$scope\", \"$routeParams\", \"$location\", \"AttendeeService\", \"CurrentUserService\", \"CurrentShowService\", \"AlertService\", function($scope, $routeParams, $location, attendeeService, currentUserService, currentShowService, alertService){\n\n\t\t\tif (!currentUserService.isSuperAdmin()) {\n\t\t\t\t$location.url(\"/\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$scope.isNew = true;\n\n\t\t\t$scope.show = currentShowService.get();\n\n\t\t\t$scope.attendee = {\n\t\t\t\t\"salutation\": \"\",\n\t\t\t\t\"firstname\": \"\",\n\t\t\t\t\"middlename\": \"\",\n\t\t\t\t\"lastname\": \"\",\n\t\t\t\t\"suffix\": \"\",\n\t\t\t\t\"attendeetypeid\": undefined,\n\t\t\t\t\"email\": \"\",\n\t\t\t\t\"attendeenumber\": \"\",\n\t\t\t\t\"title\": \"\",\n\t\t\t\t\"companyname\": \"\",\n\t\t\t\t\"credentials\": \"\",\n\t\t\t\t\"username\": \"\",\n\t\t\t\t\"password\": \"\",\n\t\t\t\t\"designation\": \"\",\n\t\t\t\t\"dem1\": \"\",\n\t\t\t\t\"dem2\": \"\",\n\t\t\t\t\"dem3\": \"\",\n\t\t\t\t\"dem4\": \"\",\n\t\t\t\t\"dem5\": \"\",\n\t\t\t\t\"dem6\": \"\",\n\t\t\t\t\"dem7\": \"\",\n\t\t\t\t\"dem8\": \"\",\n\t\t\t\t\"dem9\": \"\",\n\t\t\t\t\"dem10\": \"\",\n\t\t\t\t\"dem11\": \"\",\n\t\t\t\t\"dem12\": \"\"\n\t\t\t};\n\n\t\t\t$scope.attendeetypes = [];\n\n\t\t\tattendeeService.listTypes($routeParams.showid, function(types){\n\t\t\t\t$scope.attendeetypes = types;\n\t\t\t});\n\n\t\t\tif ($routeParams.attendeeid) {\n\n\t\t\t\t$scope.isNew = false;\n\t\t\t\tattendeeService.get($routeParams.attendeeid, function(attendee){\n\t\t\t\t\t$scope.attendee = attendee;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tvar backToList = function() {\n\t\t\t\t$location.url(\"/admin/\" + $routeParams.showid + \"/tab/5\");\n\t\t\t};\n\n\t\t\t$scope.save = function() {\n\t\t\t\tattendeeService.save($scope.attendee, $routeParams.showid, function(result){\n\t\t\t\t\tif (result.success) {\n\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\t\tmsg: \"Attendee saved successfully!\"\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbackToList();\n\t\t\t\t\t} else {\n\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\tmsg: \"There was an error saving the attendee\"\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$scope.cancel = function() {\n\t\t\t\tbackToList();\n\t\t\t};\n\n\t\t}])\n\t\t.controller(\"AdminExhibitorController\", [ \"$scope\", \"$routeParams\", \"$location\", \"ExhibitorService\", \"CurrentUserService\", \"CurrentShowService\", \"AlertService\", function($scope, $routeParams, $location, exhibitorService, currentUserService, currentShowService, alertService){\n\n\t\t\tif (!currentUserService.isSuperAdmin()) {\n\t\t\t\t$location.url(\"/\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$scope.isNew = true;\n\n\t\t\t$scope.show = currentShowService.get();\n\n\t\t\t$scope.exhibitor = {\n\t\t\t\t\"name\": \"\",\n\t\t\t\t\"code\": \"\",\n\t\t\t\t\"defaultlink\": \"\",\n\t\t\t\t\"email\": \"\",\n\t\t\t\t\"logintoken\": \"\",\n\t\t\t\t\"showid\": $scope.show.id\n\t\t\t};\n\n\t\t\tif ($routeParams.exhibitorid) {\n\n\t\t\t\t$scope.isNew = false;\n\t\t\t\texhibitorService.get($routeParams.exhibitorid, function(exhibitor){\n\t\t\t\t\t$scope.exhibitor = exhibitor;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tvar backToList = function() {\n\t\t\t\t$location.url(\"/admin/\" + $routeParams.showid + \"/tab/10\");\n\t\t\t};\n\n\t\t\t$scope.save = function() {\n\t\t\t\texhibitorService.save($scope.exhibitor, $routeParams.showid, function(result){\n\t\t\t\t\tif (result.success) {\n\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\t\tmsg: \"Exhibitor saved successfully!\"\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbackToList();\n\t\t\t\t\t} else {\n\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\tmsg: \"There was an error saving the exhibitor\"\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$scope.cancel = function() {\n\t\t\t\tbackToList();\n\t\t\t};\n\n\t\t}])\n\t\t.controller(\"AdminSessionController\", [ \"$scope\", \"$routeParams\", \"$location\", \"SessionService\", \"CurrentUserService\", \"AlertService\", \"RoomService\", function($scope, $routeParams, $location, sessionService, currentUserService, alertService, roomService){\n\n\t\t\tif (!currentUserService.isSuperAdmin()) {\n\t\t\t\t$location.url(\"/\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$scope.isNew = true;\n\n\t\t\t$scope.session = {\n\t\t\t\tname: \"\",\n\t\t\t\tmaxattendance: 0,\n\t\t\t\tsessionnumber: \"\",\n\t\t\t\troomid: 0,\n\t\t\t\tpresenter: \"\",\n\t\t\t\tsessiontypeid: 0,\n\t\t\t\tsessioncategoryid: 0,\n\t\t\t\tbegintime: (new Date()),\n\t\t\t\tendtime: (new Date()),\n\t\t\t\tmintimeforcredit: 0,\n\t\t\t\tcreditamt: 0,\n\t\t\t\tuseapidata: false,\n\t\t\t\tsurveyurl: \"\",\n\t\t\t\tiframeheight: 800,\n\t\t\t\tregprice1: 0,\n\t\t\t\tregprice2: 0,\n\t\t\t};\n\n\t\t\t$scope.sessiontypes = [];\n\n\t\t\tsessionService.listTypes($routeParams.showid, function(types){\n\t\t\t\t$scope.sessiontypes = types;\n\t\t\t});\n\n\t\t\t$scope.sessioncats = [];\n\n\t\t\tsessionService.listCategories($routeParams.showid, function(cats){\n\t\t\t\t$scope.sessioncats = cats;\n\t\t\t});\n\n\t\t\t$scope.rooms = [];\n\n\t\t\troomService.list($routeParams.showid, function(rooms){\n\t\t\t\t$scope.rooms = rooms;\n\t\t\t});\n\n\t\t\tif ($routeParams.sessionid) {\n\n\t\t\t\t$scope.isNew = false;\n\t\t\t\tsessionService.get($routeParams.sessionid, function(session){\n\t\t\t\t\t$scope.session = session;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tvar backToList = function() {\n\t\t\t\t$location.url(\"/admin/\" + $routeParams.showid + \"/tab/4\");\n\t\t\t};\n\n\t\t\t$scope.save = function() {\n\n\t\t\t\tsessionService.save($scope.session, $routeParams.showid, function(result){\n\t\t\t\t\tif (result.success) {\n\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\t\tmsg: \"Session saved successfully!\"\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbackToList();\n\t\t\t\t\t} else {\n\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\tmsg: \"There was an error saving the session\"\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$scope.cancel = function() {\n\t\t\t\tbackToList();\n\t\t\t};\n\n\t\t\t$scope.begintimeisopen = false;\n\t\t\t$scope.onSetBeginTime = function(){\n\t\t\t\t$scope.begintimeisopen = false;\n\t\t\t};\n\n\t\t\t$scope.endtimeisopen = false;\n\t\t\t$scope.onSetEndTime = function(){\n\t\t\t\t$scope.endtimeisopen = false;\n\t\t\t};\n\n\t\t}])\n\t\t.controller(\"FloorPlanController\", [ \"$scope\", \"RoomService\", \"AlertService\", function($scope, roomService, alertService){\n\n\t\t\t// NOTE $scope.show is available from the parent controller\n\n\t\t\t$scope.data = {\n\t\t\t\twidth: 400,\n\t\t\t\theight: 300\n\t\t\t};\n\n\t\t\t$scope.regions = [];\n\n\t\t\tvar loadFloorPlans = function(cb) {\n\t\t\t\tcb = cb || angular.noop;\n\t\t\t\troomService.getFloorPlans(function(plans){\n\t\t\t\t\t$scope.floorplans = plans;\n\t\t\t\t\tcb(plans);\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tloadFloorPlans();\n\n\t\t\t$scope.onSelectVenue = function(){\n\n\t\t\t\tif ($scope.selectedVenue) {\n\t\t\t\t\t$scope.regions = $scope.show.rooms.filter(function(room){\n\n\t\t\t\t\t\tif (room.venueid === $scope.selectedVenue.id) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn false;\n\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t$scope.regions = [];\n\t\t\t\t}\n\n\t\t\t};\n\n\t\t\t$scope.save = function() {\n\t\t\t\troomService.saveFloorPlan($scope.selectedVenue, $scope.regions, $scope.show, function(result){\n\n\t\t\t\t\tif (!result) {\n\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\tmsg: \"There was a problem saving the floor plan data\"\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\talertService.add({\n\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\tmsg: \"Floor plan data saved successfully\"\n\t\t\t\t\t});\n\n\t\t\t\t\t$scope.$emit(\"FloorPlanDataSaved\");\n\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t$scope.upload = {};\n\n\t\t\t$scope.uploadNewFloorplan = function() {\n\n\t\t\t\troomService.uploadFloorPlan($scope.upload.newfloorplan, function(result){\n\n\t\t\t\t\tif (!result.success) {\n\t\t\t\t\t\talertService.add({\n\t\t\t\t\t\t\ttype: \"danger\",\n\t\t\t\t\t\t\tmsg: \"There was an error uploading the floor plan image\"\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t$scope.upload = {};\n\n\t\t\t\t\tloadFloorPlans(function(){\n\n\t\t\t\t\t\t$scope.selectedVenue.floorplanjpg = result.filename;\n\n\t\t\t\t\t});\n\n\t\t\t\t});\n\n\t\t\t};\n\n\t\t}]);\n\n})(angular, _);\n","/* global angular, _ */\n(function(angular, _){\n\n\t\"use strict\";\n\n\tangular.module(\"ExpoConsoleDirectives\", [])\n\t\t.directive(\"floorPlan\", [ \"VenueService\", function(venueService){\n\t\t\treturn {\n\t\t\t\trestrict: \"E\",\n\t\t\t\tscope: {\n\t\t\t\t\tvenue: \"=\"\n\t\t\t\t},\n\t\t\t\ttemplateUrl: \"src/html/floorplan-display.html\",\n\t\t\t\tcontroller: [ \"$scope\", \"$rootScope\", function($scope, $rootScope){\n\n\t\t\t\t\t$scope.data = {\n\t\t\t\t\t\twidth: 400,\n\t\t\t\t\t\theight: 300,\n\t\t\t\t\t\trooms: []\n\t\t\t\t\t};\n\n\t\t\t\t\tvar getRooms = function() {\n\t\t\t\t\t\tvenueService.getRooms($scope.venue.id, function(rooms){\n\t\t\t\t\t\t\t$scope.data.rooms = rooms;\n\t\t\t\t\t\t});\n\t\t\t\t\t};\n\n\t\t\t\t\tgetRooms();\n\n\t\t\t\t\t$scope.$watch(\"venue\", function(){\n\t\t\t\t\t\tgetRooms();\n\t\t\t\t\t});\n\n\t\t\t\t\t$scope.showAttendanceForRoom = function(room) {\n\n\t\t\t\t\t\t$rootScope.$broadcast(\"ShowAttendanceForRoom\", room);\n\n\t\t\t\t\t};\n\n\t\t\t\t}]\n\t\t\t};\n\t\t}])\n\t\t.directive(\"topSessionsByCategoryWidget\", [ \"SessionService\", function(sessionService){\n\t\t\treturn {\n\t\t\t\trestrict: \"A\",\n\t\t\t\tscope: {\n\t\t\t\t\tshow: \"=\",\n\t\t\t\t\tdates: \"=\"\n\t\t\t\t},\n\t\t\t\ttemplateUrl: \"src/html/widgets/top-sessions-by-category.html\",\n\t\t\t\tcontroller: [ \"$scope\", \"$filter\", function($scope, $filter){\n\n\t\t\t\t\t$scope.data = {\n\t\t\t\t\t\tselectedVenue: null,\n\t\t\t\t\t\tvenueRooms: []\n\t\t\t\t\t};\n\n\t\t\t\t\t$scope.gridOptions = {\n\t\t\t\t\t\tenableSorting: true,\n\t\t\t\t\t\tenableColResize: true,\n\t\t\t\t columnDefs: [\n\t\t\t\t\t\t{ headerName: \"Session Name\", field: \"name\" },\n\t\t\t\t\t\t{ headerName: \"Date\", field: \"date\", cellRenderer: function(params){\n\t\t\t\t\t\t\treturn $filter('date')(params.data.date, 'medium');\n\t\t\t\t\t\t} },\n\t\t\t\t\t\t{ headerName: \"Attendance\", field: \"attendance\", sort: \"desc\" }\n\t\t\t\t ]\n\t\t\t\t };\n\n\t\t\t\t var buildRoomList = function() {\n\n\t\t\t\t\t$scope.data.venueRooms = $scope.show.rooms.filter(function(room){\n\t\t\t\t\t\tif ($scope.data.selectedVenue) {\n\t\t\t\t\t\t\tif (room.venueid === $scope.data.selectedVenue.id) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}).map(function(room){\n\t\t\t\t\t\treturn room.id;\n\t\t\t\t\t});\n\n\t\t\t\t };\n\n\t\t\t\t var roomInVenue = function(roomid) {\n\n\t\t\t\t\t// if no venue selected, then all rooms are shown\n\t\t\t\t\tif (!$scope.data.selectedVenue) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\n\t\t\t\t\t// if we have no room data, assume in venue\n\t\t\t\t\tif (!$scope.data.venueRooms.length) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\n\t\t\t\t\t// if we find the room in the list, then it is in the venue\n\t\t\t\t\tif ($scope.data.venueRooms.indexOf(roomid) > -1) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\n\t\t\t\t\t// not in venue\n\t\t\t\t\treturn false;\n\n\t\t\t\t };\n\n\t\t\t\t var sessionInDates = function(session) {\n\n\t\t\t\t\tfor (var i = 0; i < $scope.dates.length; i++) {\n\n\t\t\t\t\t\tvar datePair = $scope.dates[i];\n\n\t\t\t\t\t\tif (_.isDate(session.begintime)) {\n\n\t\t\t\t\t\t\tif (session.begintime.getFullYear() === datePair.begintime.getFullYear() &&\n\t\t\t\t\t\t\t\tsession.begintime.getMonth() === datePair.begintime.getMonth() &&\n\t\t\t\t\t\t\t\tsession.begintime.getDate() === datePair.begintime.getDate()) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\treturn false;\n\n\t\t\t\t };\n\n\t\t\t\t\tvar getData = function() {\n\n\t\t\t\t\t\tsessionService.getAttendanceForShow($scope.show.id, function(attendanceData){\n\t\t\t\t\t\t\tsessionService.list($scope.show.id, function(data){\n\n\t\t\t\t\t\t\t\tvar sessions = [];\n\n\t\t\t\t\t\t\t\tdata.sessions.forEach(function(session){\n\n\t\t\t\t\t\t\t\t\tif (roomInVenue(session.roomid)) {\n\n\t\t\t\t\t\t\t\t\t\tif (sessionInDates(session)) {\n\n\t\t\t\t\t\t\t\t\t\t\tsessions.push({\n\t\t\t\t\t\t\t\t\t\t\t\tdate: session.begintime,\n\t\t\t\t\t\t\t\t\t\t\t\tname: session.name,\n\t\t\t\t\t\t\t\t\t\t\t\tattendance: ((attendanceData.hasOwnProperty(session.id)) ? attendanceData[session.id] : 0),\n\t\t\t\t\t\t\t\t\t\t\t\troomid: session.roomid\n\t\t\t\t\t\t\t\t\t\t\t});\n\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\n\t\t\t\t\t\t\t\t$scope.gridOptions.api.setRowData(sessions);\n\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$scope.$on(\"WidgetRefresh\", function(){\n\t\t\t\t\t\tgetData();\n\t\t\t\t\t});\n\n\t\t\t\t\t$scope.$watch(\"dates\", function(){\n\t\t\t\t\t\tgetData();\n\t\t\t\t\t});\n\n\t\t\t\t\t$scope.$watch(\"show\", function(){\n\t\t\t\t\t\tgetData();\n\t\t\t\t\t});\n\n\t\t\t\t\t$scope.$watch(\"data.selectedVenue\", function(){\n\t\t\t\t\t\tbuildRoomList();\n\t\t\t\t\t\tgetData();\n\t\t\t\t\t});\n\n\t\t\t\t}]\n\t\t\t};\n\t\t}])\n\t\t.directive(\"attendanceByCategoryWidget\", [ \"ChartService\", function(chartService){\n\t\t\treturn {\n\t\t\t\trestrict: \"A\",\n\t\t\t\tscope: {\n\t\t\t\t\tshow: \"=\",\n\t\t\t\t\tdates: \"=\"\n\t\t\t\t},\n\t\t\t\ttemplateUrl: \"src/html/widgets/attendance-by-category.html\",\n\t\t\t\tcontroller: [ \"$scope\", function($scope){\n\n\t\t\t\t\tvar getData = function() {\n\n\t\t\t\t\t\tchartService.getAttendanceByCategory($scope.show, function(data){\n\n\t\t\t\t\t\t\t$scope.widget = {\n\t\t\t\t\t\t\t\tlabels: data.map(function(item){\n\t\t\t\t\t\t\t\t\treturn item.category;\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\tdata: [ data.map(function(item){\n\t\t\t\t\t\t\t\t\treturn item.attendance;\n\t\t\t\t\t\t\t\t}) ],\n\t\t\t\t\t\t\t\tseries: [ \"Categories\" ]\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t});\n\n\t\t\t\t\t};\n\n\t\t\t\t\tgetData();\n\n\t\t\t\t\t$scope.$on(\"WidgetRefresh\", function(){\n\t\t\t\t\t\tgetData();\n\t\t\t\t\t});\n\n\t\t\t\t\t$scope.$watch(\"show\", function(){\n\t\t\t\t\t\tgetData();\n\t\t\t\t\t});\n\n\t\t\t\t}]\n\t\t\t};\n\t\t}])\n\t\t.directive(\"attendanceOverTimeWidget\", [ \"SessionService\", function(sessionService){\n\t\t\treturn {\n\t\t\t\trestrict: \"A\",\n\t\t\t\tscope: {\n\t\t\t\t\tshow: \"=\",\n\t\t\t\t\tdates: \"=\"\n\t\t\t\t},\n\t\t\t\ttemplateUrl: \"src/html/widgets/attendance-over-time.html\",\n\t\t\t\tcontroller: [ \"$scope\", \"$filter\", function($scope, $filter){\n\n\t\t\t\t\tvar getData = function() {\n\n\t\t\t\t\t\tvar sessions = [];\n\n\t\t\t\t\t\tsessionService.getAttendanceForShow($scope.show.id, function(attendanceData){\n\n\t\t\t\t\t\t\tsessionService.list($scope.show.id, function(data){\n\n\t\t\t\t\t\t\t\tsessions = data.sessions.sort(function(a, b){\n\t\t\t\t\t\t\t\t\tif (a.begintime < b.begintime) {\n\t\t\t\t\t\t\t\t\t\treturn -1;\n\t\t\t\t\t\t\t\t\t} else if (a.begintime > b.begintime) {\n\t\t\t\t\t\t\t\t\t\treturn 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn 0;\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tvar _currentDate = new Date();\n\n\t\t\t\t\t\t\t\tvar chartData = {}; // key is series name (day), value is object w/ key = time, value = attendance\n\n\t\t\t\t\t\t\t\t$scope.dates.forEach(function(datePair){\n\n\t\t\t\t\t\t\t\t\tvar dayName = $filter(\"date\")(datePair.begintime, \"EEE\");\n\n\t\t\t\t\t\t\t\t\tvar sessionsForThisDay = sessions.filter(function(session){\n\t\t\t\t\t\t\t\t\t\tif (session.begintime instanceof Date && session.begintime.getDate() === datePair.begintime.getDate() && session.begintime.getMonth() === datePair.begintime.getMonth() && session.begintime.getFullYear() === datePair.begintime.getFullYear()) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\tsessionsForThisDay.forEach(function(session){\n\n\t\t\t\t\t\t\t\t\t\tvar attendance = 0;\n\n\t\t\t\t\t\t\t\t\t\tif (attendanceData.hasOwnProperty(session.id)) {\n\t\t\t\t\t\t\t\t\t\t\tattendance = attendanceData[session.id];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tvar sessionAvg = ((session.begintime.getTime() + session.endtime.getTime()) / 2);\n\n\t\t\t\t\t\t\t\t\t\tvar tempTime = new Date(sessionAvg);\n\n\t\t\t\t\t\t\t\t\t\t// var thisTime = $filter(\"date\")((new Date(_currentDate.getFullYear(), _currentDate.getMonth(), _currentDate.getDate(), tempTime.getHours(), tempTime.getMinutes(), 0, 0)), \"h:mm a\");\n\t\t\t\t\t\t\t\t\t\tvar thisTime = (new Date(_currentDate.getFullYear(), _currentDate.getMonth(), _currentDate.getDate(), tempTime.getHours(), tempTime.getMinutes(), 0, 0)).getTime();\n\n\t\t\t\t\t\t\t\t\t\tif (!chartData.hasOwnProperty(dayName)) {\n\t\t\t\t\t\t\t\t\t\t\tchartData[dayName] = {};\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif (!chartData[dayName].hasOwnProperty(thisTime)) {\n\t\t\t\t\t\t\t\t\t\t\tchartData[dayName][thisTime] = 0;\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tchartData[dayName][thisTime] += attendance;\n\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t$scope.widget = {\n\t\t\t\t\t\t\t\t\tseries: Object.keys(chartData),\n\t\t\t\t\t\t\t\t\tlabels: [],\n\t\t\t\t\t\t\t\t\tdata: []\n\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\tfor (var day in chartData) {\n\n\t\t\t\t\t\t\t\t\t$scope.widget.labels = $scope.widget.labels.concat(Object.keys(chartData[day]));\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t$scope.widget.labels = _.uniq($scope.widget.labels);\n\n\t\t\t\t\t\t\t\t$scope.widget.labels = $scope.widget.labels.sort(function(a, b){\n\t\t\t\t\t\t\t\t\tif (a < b) {\n\t\t\t\t\t\t\t\t\t\treturn -1;\n\t\t\t\t\t\t\t\t\t} else if (a > b) {\n\t\t\t\t\t\t\t\t\t\treturn 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn 0;\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tvar labelMapping = {};\n\t\t\t\t\t\t\t\tvar idx = 0;\n\t\t\t\t\t\t\t\t$scope.widget.labels.forEach(function(label){\n\t\t\t\t\t\t\t\t\tlabelMapping[label] = idx;\n\t\t\t\t\t\t\t\t\tidx++;\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tfor (day in chartData) {\n\n\t\t\t\t\t\t\t\t\tvar seriesData = new Array($scope.widget.labels.length);\n\t\t\t\t\t\t\t\t\tseriesData = _.fill(seriesData, 0);\n\n\t\t\t\t\t\t\t\t\tvar series = chartData[day];\n\n\t\t\t\t\t\t\t\t\tfor (var label in series) {\n\t\t\t\t\t\t\t\t\t\tseriesData[labelMapping[label]] = series[label];\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t$scope.widget.data.push(seriesData);\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t$scope.widget.labels = $scope.widget.labels.map(function(time){\n\t\t\t\t\t\t\t\t\treturn $filter('date')(new Date(Number(time)), 'h:mm a');\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t// fill in the \"blanks\"\n\t\t\t\t\t\t\t\tfor (var i = 0; i < $scope.widget.data.length; i++) {\n\t\t\t\t\t\t\t\t\t// each \"series\"\n\t\t\t\t\t\t\t\t\tfor (var y = 0; y < $scope.widget.data[i].length; y++) {\n\t\t\t\t\t\t\t\t\t\t// each \"item\"\n\t\t\t\t\t\t\t\t\t\tif ($scope.widget.data[i][y] === 0 && y !== 0 && y !== ($scope.widget.data[i].length - 1)) {\n\t\t\t\t\t\t\t\t\t\t\t// set the value to the average of the ones before and after\n\t\t\t\t\t\t\t\t\t\t\tvar before = $scope.widget.data[i][y-1];\n\t\t\t\t\t\t\t\t\t\t\tvar after = $scope.widget.data[i][y+1];\n\t\t\t\t\t\t\t\t\t\t\t$scope.widget.data[i][y] = ((before + after) / 2);\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\n\t\t\t\t\t\t});\n\n\t\t\t\t\t};\n\n\t\t\t\t\t$scope.$on(\"WidgetRefresh\", function(){\n\t\t\t\t\t\tgetData();\n\t\t\t\t\t});\n\n\t\t\t\t\t$scope.$watch(\"dates\", function(){\n\t\t\t\t\t\tgetData();\n\t\t\t\t\t});\n\n\t\t\t\t\t$scope.$watch(\"show\", function(){\n\t\t\t\t\t\tgetData();\n\t\t\t\t\t});\n\n\t\t\t\t}]\n\t\t\t};\n\t\t}])\n\t\t.directive(\"attendanceByDayWidget\", [ \"ChartService\", function(chartService){\n\t\t\treturn {\n\t\t\t\trestrict: \"A\",\n\t\t\t\tscope: {\n\t\t\t\t\tshow: \"=\",\n\t\t\t\t\tdates: \"=\"\n\t\t\t\t},\n\t\t\t\ttemplateUrl: \"src/html/widgets/attendance-by-day.html\",\n\t\t\t\tcontroller: [ \"$scope\", function($scope){\n\n\t\t\t\t\tvar getData = function() {\n\n\t\t\t\t\t\tchartService.getAttendanceByDay($scope.show, function(data){\n\n\t\t\t\t\t\t\t$scope.widget = {\n\t\t\t\t\t\t\t\tlabels: data.map(function(item){\n\t\t\t\t\t\t\t\t\treturn item.day;\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\tdata: [ data.map(function(item){\n\t\t\t\t\t\t\t\t\treturn item.attendance;\n\t\t\t\t\t\t\t\t}) ],\n\t\t\t\t\t\t\t\tseries: [ \"Days\" ]\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t});\n\n\t\t\t\t\t};\n\n\t\t\t\t\tgetData();\n\n\t\t\t\t\t$scope.$on(\"WidgetRefresh\", function(){\n\t\t\t\t\t\tgetData();\n\t\t\t\t\t});\n\n\t\t\t\t\t$scope.$watch(\"show\", function(){\n\t\t\t\t\t\tgetData();\n\t\t\t\t\t});\n\n\t\t\t\t}]\n\t\t\t};\n\t\t}])\n\t\t.directive(\"attendanceByTimeWidget\", [ \"ChartService\", function(chartService){\n\t\t\treturn {\n\t\t\t\trestrict: \"A\",\n\t\t\t\tscope: {\n\t\t\t\t\tshow: \"=\",\n\t\t\t\t\tdates: \"=\"\n\t\t\t\t},\n\t\t\t\ttemplateUrl: \"src/html/widgets/attendance-by-time.html\",\n\t\t\t\tcontroller: [ \"$scope\", function($scope){\n\n\t\t\t\t\tvar getData = function() {\n\n\t\t\t\t\t\tchartService.getAttendanceByTime($scope.show, function(data){\n\n\t\t\t\t\t\t\t$scope.widget = {\n\t\t\t\t\t\t\t\tlabels: data.map(function(item){\n\t\t\t\t\t\t\t\t\treturn item.time;\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\tdata: [ data.map(function(item){\n\t\t\t\t\t\t\t\t\treturn item.attendance;\n\t\t\t\t\t\t\t\t}) ],\n\t\t\t\t\t\t\t\tseries: [ \"Times\" ]\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t});\n\n\t\t\t\t\t};\n\n\t\t\t\t\tgetData();\n\n\t\t\t\t\t$scope.$on(\"WidgetRefresh\", function(){\n\t\t\t\t\t\tgetData();\n\t\t\t\t\t});\n\n\t\t\t\t\t$scope.$watch(\"show\", function(){\n\t\t\t\t\t\tgetData();\n\t\t\t\t\t});\n\n\t\t\t\t}]\n\t\t\t};\n\t\t}])\n\t\t.directive(\"widget\", [ function(){\n\t\t\treturn {\n\t\t\t\trestrict: \"A\",\n\t\t\t\tscope: {\n\t\t\t\t\tshow: '=',\n\t\t\t\t\twidget: '=',\n\t\t\t\t\tdates: '='\n\t\t\t\t},\n\t\t\t\ttemplateUrl: \"src/html/widget.html\"\n\t\t\t};\n\t\t}])\n\t\t.directive(\"selectedDayView\", [ function(){\n\t\t\treturn {\n\t\t\t\trestrict: \"E\",\n\t\t\t\tscope: {\n\t\t\t\t\tdates: '='\n\t\t\t\t},\n\t\t\t\ttemplateUrl: \"src/html/selected-day-view.html\"\n\t\t\t};\n\t\t}])\n\t\t.directive(\"daySelector\", [ function(){\n\t\t\treturn {\n\t\t\t\trestrict: \"E\",\n\t\t\t\tscope: {\n\t\t\t\t\tdates: '=',\n\t\t\t\t\tselect: '&'\n\t\t\t\t},\n\t\t\t\ttemplateUrl: \"src/html/day-selector.html\",\n\t\t\t\tcontroller: [ \"$scope\", function($scope){\n\n\t\t\t\t\t$scope.data = {\n\t\t\t\t\t\tselectedPair: null\n\t\t\t\t\t};\n\n\t\t\t\t\t$scope.$watch(\"data.selectedPair\", function(newVal, oldVal){\n\t\t\t\t\t\tif (newVal !== oldVal) {\n\t\t\t\t\t\t\t$scope.select({ datePair: newVal });\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\t\t.directive(\"regions\", [ function(){\n\t\t\treturn {\n\t\t\t\trestrict: \"E\",\n\t\t\t\treplace: true,\n\t\t\t\ttransclude: true,\n\t\t\t\tscope: {\n\t\t\t\t\timage: \"=\"\n\t\t\t\t},\n\t\t\t\ttemplateUrl: \"src/html/regions.html\",\n\t\t\t\tlink: function(scope, element) {\n\n\t\t\t\t\tvar render = function() {\n\t\t\t\t\t\telement.css({\n\t\t\t\t\t\t\t\"background-image\": ((scope.image && scope.image.length) ? \"url('/ExpoConsole/assets/floorplans/\" + scope.image + \"')\" : \"\")\n\t\t\t\t\t\t});\n\t\t\t\t\t};\n\n\t\t\t\t\tscope.$watch(\"image\", render);\n\n\t\t\t\t}\n\t\t\t};\n\t\t}])\n\t\t.directive(\"region\", [ function(){\n\t\t\treturn {\n\t\t\t\treplace: true,\n\t\t\t\trestrict: \"E\",\n\t\t\t\ttemplateUrl: \"src/html/region.html\",\n\t\t\t\ttransclude: true,\n\t\t\t\tscope: {\n\t\t\t\t\tx: \"=\",\n\t\t\t\t\ty: \"=\",\n\t\t\t\t\twidth: \"=\",\n\t\t\t\t\theight: \"=\",\n\t\t\t\t\trotation: \"=\"\n\t\t\t\t},\n\t\t\t\tlink: function(scope, element) {\n\n\t\t\t\t\tvar render = function() {\n\t\t\t\t\t\telement.css({\n\t\t\t\t\t\t\t\"position\": \"absolute\",\n\t\t\t\t\t\t\t\"top\": scope.y + \"px\",\n\t\t\t\t\t\t\t\"left\": scope.x + \"px\",\n\t\t\t\t\t\t\t\"transform\": \"rotate(\" + scope.rotation + \"deg)\",\n\t\t\t\t\t\t\t\"width\": scope.width + \"px\",\n\t\t\t\t\t\t\t\"height\": scope.height + \"px\"\n\t\t\t\t\t\t});\n\t\t\t\t\t};\n\n\t\t\t\t\tscope.$watch(\"x\", function(x){\n\t\t\t\t\t\tscope.x = parseInt(x);\n\t\t\t\t\t\trender();\n\t\t\t\t\t});\n\n\t\t\t\t\tscope.$watch(\"y\", function(y){\n\t\t\t\t\t\tscope.y = parseInt(y);\n\t\t\t\t\t\trender();\n\t\t\t\t\t});\n\n\t\t\t\t\tscope.$watch(\"width\", function(width){\n\t\t\t\t\t\tscope.width = parseInt(width);\n\t\t\t\t\t\trender();\n\t\t\t\t\t});\n\n\t\t\t\t\tscope.$watch(\"height\", function(height){\n\t\t\t\t\t\tscope.height = parseInt(height);\n\t\t\t\t\t\trender();\n\t\t\t\t\t});\n\n\t\t\t\t\tscope.$watch(\"rotation\", function(rotation){\n\t\t\t\t\t\tscope.rotation = parseInt(rotation);\n\t\t\t\t\t\trender();\n\t\t\t\t\t});\n\n\t\t\t\t}\n\t\t\t};\n\t\t}])\n\t\t.directive(\"convertToNumber\", [ function(){\n\t\t\treturn {\n\t\t\t\trequire: 'ngModel',\n\t\t\t\tlink: function(scope, element, attrs, ngModel) {\n\t\t\t\t\tngModel.$parsers.push(function(val) {\n\t\t\t\t\t\treturn parseInt(val, 10);\n\t\t\t\t\t});\n\t\t\t\t\tngModel.$formatters.push(function(val) {\n\t\t\t\t\t\treturn '' + val;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\t\t}]);\n\n})(angular, _);\n","/* global angular */\n(function(angular){\n\n\t\"use strict\";\n\n\tangular.module(\"ExpoConsoleRoutes\", [])\n\t\t.config([ \"$routeProvider\", \"$httpProvider\", function($routeProvider, $httpProvider){\n\n\t\t\t$routeProvider\n\n\t\t\t\t.when(\"/\", {\n\t\t\t\t\ttemplateUrl: \"src/html/login.html\",\n\t\t\t\t\tcontroller: \"LoginController\"\n\t\t\t\t})\n\n\t\t\t\t.when(\"/chooseshow\", {\n\t\t\t\t\ttemplateUrl: \"src/html/choose-show.html\",\n\t\t\t\t\tcontroller: \"ChooseShowController\"\n\t\t\t\t})\n\n\t\t\t\t.when(\"/admin/:showid?\", {\n\t\t\t\t\ttemplateUrl: \"src/html/admin-show.html\",\n\t\t\t\t\tcontroller: \"AdminShowController\"\n\t\t\t\t})\n\t\t\t\t.when(\"/admin/:showid/tab/:selectedtab\", {\n\t\t\t\t\ttemplateUrl: \"src/html/admin-show.html\",\n\t\t\t\t\tcontroller: \"AdminShowController\"\n\t\t\t\t})\n\t\t\t\t.when(\"/admin/:showid/attendee/:attendeeid?\", {\n\t\t\t\t\ttemplateUrl: \"src/html/admin-attendee.html\",\n\t\t\t\t\tcontroller: \"AdminAttendeeController\"\n\t\t\t\t})\n\t\t\t\t.when(\"/admin/:showid/exhibitor/:exhibitorid?\", {\n\t\t\t\t\ttemplateUrl: \"src/html/admin-exhibitor.html\",\n\t\t\t\t\tcontroller: \"AdminExhibitorController\"\n\t\t\t\t})\n\t\t\t\t.when(\"/admin/:showid/importattendees\", {\n\t\t\t\t\ttemplateUrl: \"src/html/admin-attendee-import.html\",\n\t\t\t\t\tcontroller: \"AdminAttendeeImportController\"\n\t\t\t\t})\n\t\t\t\t.when(\"/admin/:showid/session/:sessionid?\", {\n\t\t\t\t\ttemplateUrl: \"src/html/admin-session.html\",\n\t\t\t\t\tcontroller: \"AdminSessionController\"\n\t\t\t\t})\n\t\t\t\t.when(\"/admin/:showid/importsessions\", {\n\t\t\t\t\ttemplateUrl: \"src/html/admin-session-import.html\",\n\t\t\t\t\tcontroller: \"AdminSessionImportController\"\n\t\t\t\t})\n\t\t\t\t.when(\"/admin/:showid/survey/:surveyid?\", {\n\t\t\t\t\ttemplateUrl: \"src/html/admin-survey.html\",\n\t\t\t\t\tcontroller: \"AdminSurveyController\"\n\t\t\t\t})\n\t\t\t\t.when(\"/admin/:showid/surveyemail/:emailid?\", {\n\t\t\t\t\ttemplateUrl: \"src/html/admin-survey-email.html\",\n\t\t\t\t\tcontroller: \"AdminSurveyEmailController\"\n\t\t\t\t})\n\n\t\t\t\t.when(\"/users\", {\n\t\t\t\t\ttemplateUrl: \"src/html/admin-users.html\",\n\t\t\t\t\tcontroller: \"AdminUsersController\"\n\t\t\t\t})\n\t\t\t\t.when(\"/user\", {\n\t\t\t\t\ttemplateUrl: \"src/html/admin-user.html\",\n\t\t\t\t\tcontroller: \"AdminUserController\"\n\t\t\t\t})\n\t\t\t\t.when(\"/user/:userid\", {\n\t\t\t\t\ttemplateUrl: \"src/html/admin-user.html\",\n\t\t\t\t\tcontroller: \"AdminUserController\"\n\t\t\t\t})\n\n\t\t\t\t.when(\"/customers\", {\n\t\t\t\t\ttemplateUrl: \"src/html/admin-customers.html\",\n\t\t\t\t\tcontroller: \"AdminCustomersController\"\n\t\t\t\t})\n\t\t\t\t.when(\"/customer\", {\n\t\t\t\t\ttemplateUrl: \"src/html/admin-customer.html\",\n\t\t\t\t\tcontroller: \"AdminCustomerController\"\n\t\t\t\t})\n\t\t\t\t.when(\"/customer/:customerid\", {\n\t\t\t\t\ttemplateUrl: \"src/html/admin-customer.html\",\n\t\t\t\t\tcontroller: \"AdminCustomerController\"\n\t\t\t\t})\n\n\t\t\t\t.when(\"/console/:showid\", {\n\t\t\t\t\ttemplateUrl: \"src/html/console.html\",\n\t\t\t\t\tcontroller: \"ConsoleController\"\n\t\t\t\t})\n\t\t\t\t.when(\"/console/:showid/dashboard\", {\n\t\t\t\t\ttemplateUrl: \"src/html/console-dashboard.html\",\n\t\t\t\t\tcontroller: \"ConsoleDashboardController\"\n\t\t\t\t})\n\t\t\t\t.when(\"/console/:showid/venue/:venueid\", {\n\t\t\t\t\ttemplateUrl: \"src/html/console-venue.html\",\n\t\t\t\t\tcontroller: \"ConsoleVenueController\"\n\t\t\t\t})\n\t\t\t\t.when(\"/console/:showid/attendeesearch\", {\n\t\t\t\t\ttemplateUrl: \"src/html/console-attendeesearch.html\",\n\t\t\t\t\tcontroller: \"ConsoleAttendeeSearchController\"\n\t\t\t\t})\n\t\t\t\t.when(\"/console/:showid/reports\",{\n\t\t\t\t\ttemplateUrl: \"src/html/console-report.html\",\n\t\t\t\t\tcontroller: \"ConsoleReportController\"\n\t\t\t\t});\n\n\t\t\tvar regexIso8601 = /^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$/;\n\n\t\t\tfunction convertDateStringsToDates(input) {\n\t\t\t // Ignore things that aren't objects.\n\t\t\t if (typeof input !== \"object\") {\n\t\t\t\treturn input;\n\t\t\t }\n\n\t\t\t for (var key in input) {\n\t\t\t if (!input.hasOwnProperty(key)) {\n\t\t\t\t\tcontinue;\n\t\t\t }\n\n\t\t\t var value = input[key];\n\t\t\t var match;\n\t\t\t // Check for string properties which look like dates.\n\t\t\t // [ SC Modification ]: make sure it has at least one \"-\". Otherwise it tries to match 4 digit string numbers\n\t\t\t if (typeof value === \"string\" && value.indexOf(\"-\") > -1 && (match = value.match(regexIso8601))) {\n\t\t\t var milliseconds = Date.parse(match[0]);\n\t\t\t if (!isNaN(milliseconds)) {\n\t\t\t input[key] = new Date(milliseconds);\n\t\t\t }\n\t\t\t } else if (typeof value === \"object\") {\n\t\t\t // Recurse into object\n\t\t\t convertDateStringsToDates(value);\n\t\t\t }\n\t\t\t }\n\t\t\t}\n\n\t\t\t$httpProvider.defaults.transformResponse.push(function(responseData){\n\t\t\t\tconvertDateStringsToDates(responseData);\n\t\t\t\treturn responseData;\n\t\t\t});\n\n\t\t}]);\n\n})(angular);\n","/* global angular */\n(function(angular){\n\n\t\"use strict\";\n\n\tangular.module(\"ExpoConsole\", [\n\t\t\"ngRoute\",\n\t\t\"ngAnimate\",\n\t\t\"ui.bootstrap\",\n\t\t\"ui.bootstrap.datetimepicker\",\n\t\t\"ngQuill\",\n\t\t\"checklist-model\",\n\t\t\"ang-drag-drop\",\n\t\t\"ngFileUpload\",\n\t\t\"vr.directives.slider\",\n\t\t\"angular-loading-bar\",\n\t\t\"chart.js\",\n\t\t\"agGrid\",\n\t\t\"ExpoConsoleServices\",\n\t\t\"ExpoConsoleControllers\",\n\t\t\"ExpoConsoleRoutes\",\n\t\t\"ExpoConsoleDirectives\",\n\t\t\"ExpoConsoleTemplates\"\n\t]);\n\n})(angular);\n"],"sourceRoot":"/source/"}