{"version":3,"sources":["app/definitions/JoinOperator.ts","app/definitions/CompareOperator.ts","app/security/CfncStorage.ts","app/security/authenticationService.ts","app/security/accountService.ts","app/security/authenticationProvider.ts","app/common/commonFactory.ts","app/common/commonConfigProvider.ts","app/common/common.ts","app/app.ts","app/config.route.ts","app/config.ts","app/InstitutionMapper.ts","app/account/passwordResetWithToken.ts","app/account/recoverAccount.ts","app/account/signInRedirectCallBack.ts","app/account/signOutRedirectCallBack.ts","app/activitiesInterests/activitiesInterests.ts","app/apphub/appHub.ts","app/apphub/confirmRemoveModal.ts","app/apphub/fileUploadModal.ts","app/apphub/importantMessageModal.ts","app/apphub/inviteThirdPartyModal.ts","app/apphub/requestTranscript.ts","app/apphub/transcriptActivityModal.ts","app/apphub/transcriptMessageModal.ts","app/campusProfile/campusProfile.ts","app/campusSearch/campusSearch.ts","app/campusSearch/NameValue.ts","app/campusSearch/savedSearch.ts","app/campusSearch/subCatAccordion.ts","app/careers/careerDetails.ts","app/careers/careerSearch.ts","app/collegeplanning/collegePlanning.ts","app/collegeplanning/ConfirmModal.ts","app/collegeplanning/SavedColleges.ts","app/collegeRecruiter/collegeRecruiter.ts","app/common/confirmationModal.ts","app/common/logger.ts","app/common/regularExpressions.ts","app/CRP/crp.ts","app/CRP/CRPLandingPage.ts","app/directAdmission/directAdmissions.ts","app/directives/altSrc.ts","app/directives/cfnc-checkbox.ts","app/directives/cfnc-radio.ts","app/directives/cfnc-vrview.ts","app/directives/cfncEmailAvailable.ts","app/directives/cfncErrors.ts","app/directives/cfncExternalContent.ts","app/directives/cfncIFrame.ts","app/directives/cfncIncludeError.ts","app/directives/cfncMenuActive.ts","app/directives/cfncMmenu.ts","app/directives/cfncMmenuLink.ts","app/directives/cfncScrollTo.ts","app/directives/cfnctooltip.ts","app/directives/convertToNumber.ts","app/directives/dateInput.ts","app/directives/disableAnimation.ts","app/directives/errSrc.ts","app/directives/ifContains.ts","app/exclusive/exclusiveLogin.ts","app/exclusive/ExclusiveShell.ts","app/exploreProgramsAndMajors/programDetails.ts","app/exploreProgramsAndMajors/programsMajorsSearch.ts","app/exploreProgramsAndMajors/savedProgramsMajors.ts","app/exploreProgramsAndMajors/schoolOfferingProgram.ts","app/externalContent/externalContent.ts","app/filters/alpha.ts","app/filters/escape.ts","app/filters/offset.ts","app/filters/phoneNumber.ts","app/filters/transcriptOnly.ts","app/home/home.ts","app/layout/shell.ts","app/layout/topnav.ts","app/learnAboutYourself/assessments.ts","app/learnAboutYourself/basicSkillsSurvey.ts","app/learnAboutYourself/beYourOwnBoss.ts","app/learnAboutYourself/careerClusterSurvey.ts","app/learnAboutYourself/heSAssessments.ts","app/learnAboutYourself/interestProfiler.ts","app/learnAboutYourself/realityCheck.ts","app/learnAboutYourself/skillsMatcher.ts","app/learnAboutYourself/theCareerKey.ts","app/learnAboutYourself/transferableSkillsChecklist.ts","app/learnAboutYourself/workValuesSorter.ts","app/login/login.ts","app/login/logout.ts","app/login/logoutModal.ts","app/ncassistlogin/cfncShell.ts","app/nextSteps/nextStepsLandingPage.ts","app/nextSteps/nextStepsOverview.ts","app/nextSteps/nextStepsPathway.ts","app/orders/submitOrder.ts","app/profile/profile.ts","app/profile/updateAddress.ts","app/profile/updateEmail.ts","app/studentCalendar/studentCalendar.ts","app/studentEnrichment/studentEnrichment.ts","app/taap/selectCCModalCtrl.ts","app/taap/taap.ts","app/taap/taapLanding.ts","app/taap/uncSchoolsCtrl.ts","app/testPrep/testPrep.ts","app/testScores/ConfirmModal.ts","app/testScores/testScores.ts","app/transcriptSchools/TranscriptModal.ts","app/transcriptSchools/transcriptSchools.ts","app/services/AddressService.ts","app/services/ApplicationsDataService.ts","app/services/CalendarServiceClient.ts","app/services/CampusSearchDataService.ts","app/services/communityCollegeService.ts","app/services/getRecruitedService.ts","app/services/helper.ts","app/services/HesFactory.ts","app/services/httpBuffer.ts","app/services/loginCredentials.ts","app/services/OrganizationDataService.ts","app/services/ProspectService.ts","app/services/redirectService.ts","app/services/responseInterceptor.ts","app/services/routemediator.ts","app/services/SavedSearchService.ts","app/services/SaveSchoolService.ts","app/services/SportList.ts","app/services/StartApplicationService.ts","app/services/TranscriptDataService.ts","app/campusSearch/leftNavAccordions/actScoresAccordion.ts","app/campusSearch/leftNavAccordions/additionalServicesAccordion.ts","app/campusSearch/leftNavAccordions/admissPolAccordion.ts","app/campusSearch/leftNavAccordions/campusSettingAccordion.ts","app/campusSearch/leftNavAccordions/distanceAccordion.ts","app/campusSearch/leftNavAccordions/EntranceDifficultyAccordion.ts","app/campusSearch/leftNavAccordions/extraCurricularAccordion.ts","app/campusSearch/leftNavAccordions/financialAidAccordion.ts","app/campusSearch/leftNavAccordions/histBlackAccordion.ts","app/campusSearch/leftNavAccordions/programsMajorsAccordion.ts","app/campusSearch/leftNavAccordions/publicPrivateAccordion.ts","app/campusSearch/leftNavAccordions/satScoresAccordion.ts","app/campusSearch/leftNavAccordions/specialProgramsAccordion.ts","app/campusSearch/leftNavAccordions/studentHousingAccordion.ts","app/campusSearch/leftNavAccordions/studentPopAccordion.ts","app/campusSearch/leftNavAccordions/tuitionAccordion.ts","app/campusSearch/modals/clearModalCtrl.ts","app/campusSearch/modals/majorsModal.ts","app/campusSearch/modals/publicPrivateModalCtrl.ts","app/campusSearch/modals/saveSearchModalCtrl.ts","app/campusSearch/modals/sportsModal.ts","app/campusSearch/modals/tipsModal.ts","app/directives/campusSearchFilter/campusSearchFilter.ts","app/directives/campusSearchFilter/campusSearchFilterCheckbox.ts","app/directives/campusSearchFilter/categoryCheckMark.ts","app/directives/campusSearchFilter/checkMarkIcon.ts","app/directives/campusSearchFilter/filterWatch.ts","app/directives/campusSearchFilter/searchByZip.ts","app/directives/cfncAcademicCalendar/cfncAcademicCalendar.ts","app/directives/cfncAcademicCalendar/cfncCalendarModal.ts","app/directives/cfncAddress/cfncAddress.ts","app/directives/cfncApplyToSchool/cfncApplyToSchool.ts","app/directives/cfncApplyToSchool/startNewAppModal.ts","app/directives/cfncCountries/cfncCountries.ts","app/directives/cfnccustomerselector/cfncCustomerSelector.ts","app/directives/cfnccustomerselector/customerSelectorModal.ts","app/directives/cfncPassword/cfncPassword.ts","app/directives/cfncReligions/cfncReligions.ts","app/directives/cfncSelectAddress/cfncSelectAddress.ts","app/directives/cfncSelectAddress/cfncSelectAddressModal.ts","app/directives/userLink/userLink.ts","app/plan/forCollege/LoadSavedModalCtrl.ts"],"names":["Cfnc","JoinOperator","CompareOperator","Security","CfncStorage","userName","firstName","lastName","fullName","tenant","loginProvider","hasRegistered","timeZone","primaryConnection","accessToken","refreshToken","expiresOn","redirectTarget","rememberMe","refreshTokenExpiresIn","AuthenticationService","api","authProvider","$rootScope","$q","$http","$location","$timeout","$window","$cookies","$uibModal","$routeParams","Idle","Title","config","_this","this","checkingLogin","completeLogout","_userManager","removeUser","then","user","oidcUser","defaults","headers","common","Authorization","$broadcast","events","logout","signoutRedirectCallback","checkLogin","forceLogin","signinSilent","watch","profile","name","given_name","family_name","primaryConnectionId","appInsights","setAuthenticatedUserContext","login","loginCheckCompleted","authenticate","updateRedirect","deferred","defer","isLoggedIn","loggedIn","$on","event","resolve","promise","pageTitle","original","timeoutModalInstance","open","templateUrl","controller","backdrop","data","close","store","authSettings","authority","providerUrls","client_id","clientId","redirect_uri","scope","response_type","post_logout_redirect_uri","automaticSilentRenew","silent_redirect_uri","Oidc","UserManager","addUserSignedOut","initialize","prototype","params","_i","arguments","length","apply","access_token","completeLogin","signinRedirectCallback","email","check","getUser","userCurrent","expired","safeAccessToken","path","reloadUser","newTarget","localStorage","toLowerCase","removeItem","clearRedirect","signinRedirect","register","createSigninRequest","sr","signInUrl","url","redirectUrl","encodeURIComponent","redirect","setReturnPath","unwatch","signoutRedirect","silentLogout","changePassword","result","reason","reject","redirectAuthenticated","removeQueryParams","home","useFullRefreshForRedirect","indexOf","location","href","search","$apply","broadcastLogin","moment","diff","Date","now","xapLogout","isExternal","clear","regex","test","exec","host","AccountService","urls","parameterize","param","obj","subValue","fullSubName","innerObj","i","query","angular","forEach","value","Array","Object","subName","undefined","substr","isObject","String","getUserInfo","userInfo","method","formdataHeader","join","getToken","exchangeToken","ignoreAuthModule","Content-Type","xapHost","serviceId","AuthenticationProvider","apiUrls","registerThenLogin","usePopups","useFullRefreshForLoginUrl","postLogout","closeOAuthWindow","$get","module","constant","site","manage","forgotPassword","resetPassword","confirmEmail","externalLogins","manageInfo","registerExternal","addExternalLogin","removeLogin","factory","provider","CommonFactory","commonConfig","logger","authentication","regularExpressions","RegularExpressions","throttles","activateController","promises","controllerId","all","eventArgs","controllerActivateSuccessEvent","createSearchThrottle","viewmodel","list","filteredList","filter","delay","toUpperCase","filterFn","item","filterInputTimeout","searchNow","cancel","debouncedThrottle","key","callback","immediate","isNumber","val","textContains","text","searchText","interpolateRouteUrl","tempUrl","document","createElement","hostname","window","replace","parts","split","p","part","match","push","interpolateTitle","title","map","word","charAt","slice","ex","console","log","CommonProvider","authenticationProvider","debug","apiHost","homeUrl","commonModule","run","$route","routemediator","$uibModalStack","setRoutingHandlers","hash","current","pagePath","ga","page","stopTrackPage","$$route","crmId","dismissAll","Pragma","withCredentials","authenticating","Routes","getRoutes","caseInsensitiveMatch","settings","parent","breadCrumb","nav","content","reloadOnSearch","reloadOnUrl","parentUrl","showBreadcrumbs","redirectTo","InstitutionMapper","getMap","institutionId","RouteConfigurator","$routeProvider","routes","Config","r","umbracoUrl","when","otherwise","controllerActivateSuccess","spinnerToggle","crossroadsUrl","crossroadsApiUrl","appErrorPrefix","docTitle","version","cfncUrl","javaUrl","authHost","transitionsUrl","residencyUrl","authCookieName","updateAddressAtLogin","updateEmailAtLogin","homeRedirect","newPhoneNumbersEnabled","ncassistUrl","ncassistDevUrl","ncCareersUrl","hesEnvironment","nextStepTypeFormId","toastr","options","timeOut","positionClass","app","cfncConfig","$httpProvider","$logProvider","$locationProvider","cfg","KeepaliveProvider","IdleProvider","debugEnabled","html5Mode","spinnerToggleEvent","interceptors","ResponseInterceptor","idle","timeout","RestangularProvider","setBaseUrl","$modalProvider","uiGmapGoogleMapApiProvider","8923","5145","5192","5213","5296","5309","5319","5380","5394","5427","5458","7227","5487","5534","5547","5570","5578","5579","5608","5629","5678","5763","5775","5845","5992","6040","6041","6146","6151","6160","6215","6233","6243","6317","6318","6370","6425","6429","6515","6533","6534","6545","6582","6636","6859","6916","1631","6951","6954","7138","7144","7143","7185","7226","7328","7331","7366","7373","7418","7431","7538","7569","7570","7642","7790","7791","7794","7795","8048","8121","8145","8166","8223","8252","8304","8318","8325","8332","8347","8400","8504","8514","8521","8618","5128","8687","8770","8394","8806","8888","9010","7608","9312","9313","9314","9315","8080","7793","9316","9507","9556","9557","9573","9597","9630","9648","9720","8077","9740","9742","9747","PasswordResetWithToken","$scope","Restangular","success","saving","token","newPassword","post","logSuccess","logError","getLogFn","copy","baseUrl","activate","$inject","RecoverAccount","step","errors","getSecurityQuestion","recoveryOption","recoverPassword","securityQuestion","status","recoverUsername","recoverAccount","securityAnswer","getErrors","modelState","username","selectRecoveryOption","option","getPasswordResetAccounts","one","get","passwordResetAccounts","sendResetRequest","model","accountId","parseInt","passwordResetAccountId","passwordResetAccount","_","find","id","SignInRedirectCallBack","SignOutRedirectCallBack","message","postMessage","ActivitiesInterests","$document","helper","newExp","startExp","expName","expType","expLocation","expDesc","expDate","edit","editExpList","unshift","newActivity","startAct","actName","actType","actHoursWeek","actWeeksYear","actDesc","actDateStart","actDateEnd","actContinue","editActList","newService","type","hoursWeek","description","reflection","contact","dateStart","dateEnd","editServiceList","newHealth","startHealth","date","frequency","editHealthList","newAward","level","relation","editAwardList","newLead","editLeadList","newNetwork","editNetworkList","newProject","Name","Description","Advisors","Tools","Skills","Subjects","editProjectList","cancelEdit","editArray","originalArray","itemToRemove","index","splice","print","$event","pdfButtonDisable","headHtml","$","children","each","l","outerHTML","html","currentTarget","parentElement","innerHTML","openFile","origin","emailButtonDisable","response","state","opened","show","maxDate","minDate","dateOptions","showWeeks","endDateOptions","projectSubjects","projectSkills","getActivities","results","comments","expList","experiences","actList","activities","serviceList","communityServices","healthList","healthActivities","awardList","awardsDistinctions","leadList","leadershipExperiences","networkList","networking","projectList","projects","cloneDeep","error","fixSingleDate","editItem","toDate","fixMultiDate","checkDate","saveExperience","experience","saveActivity","activity","saveCommunityService","service","savePhysicalHealth","health","saveAward","award","saveLeadership","lead","saveNetwork","network","saveProject","project","delete","section","editList","originalList","interest","interestType","fixTestDate","editTest","removeFromList","listObject","AppHub","applicationsDataService","transcriptDataService","Upload","$interval","getUserApplicationsTryCount","errorGettingApplications","refreshing","alerts","childWindows","timer","viewApp","selectedApp","appWindow","userApplication","completed","applicationDefinitionId","source","viewUrl","addChildWindow","checkWindow","upload","taskId","files","self","file","addAlert","application","applications","task","tasks","applicationTaskId","completedDate","attachment","applicationTask","uploadCompletesTask","requestTranscript","appid","sessionStorage","setItem","printing","target","parents","attachmentUrl","emailing","completeTask","uncompleteTask","alertType","closeAlert","win","closed","expanded","getAppHubNotification","getUserApplications","openTranscriptActivity","transcriptStatus","orgName","studentId","organizationName","size","openTranscriptMessage","openStartApp","completionPercent","total","dateRequested","applicationTasks","completionDisplay","hasApplication","canReceiveTranscripts","deleteApplication","appId","remove","inviteCounselor","userApplicationId","withConfig","targets","apphubNotification","ConfirmRemoveModal","$uibModalInstance","dismiss","FileUploadModal","$resource","$upload","ImportantMessageModal","messages","getMessages","InviteThirdPartyModal","send","thirdPartyEmail","RequestTranscript","UserProfile","participatingApplications","limitSchools","requestStarted","requestSent","requestSuccess","checkedCount","schoolChanged","schoolIsValid","saveUserAlerts","savingUserProfile","change","selectedSchool","ceeb_code","isSchoolValid","primaryConnectionCrmId","ceeb","getParticipatingApplications","getItem","applicationId","checked","importantMessagesExist","getTranscriptRequestNotification","gender","toString","customer","originalEmail","request","selectedApplications","a","transcriptRequest","userId","applicationIds","sendTranscriptResults","sendTranscriptResult","reset","school","isRequestSuccessful","getRequestMessage","saveUserProfile","form","addressVerified","permAddress","mailAddress","customPUT","$setPristine","msg","exception","checkChanged","transcriptRequestNotification","TranscriptActivityModal","openTranscript","transcriptId","cancelRequest","transactionId","confirmCancel","confirm","canCancel","transcript","busy","transcriptWindow","onload","getElementById","focus","releaseDate","isAfter","add","transaction","transcriptType","cancelBusy","put","finally","TranscriptMessageModal","CampusProfile","$anchorScroll","$sce","getRecruitedService","saveSchoolService","center","zoom","streetViewControl","zoomControlOptions","style","google","maps","ZoomControlStyle","SMALL","groupOpen","about","isSaved","isRecruited","slides","campusTour","saveCollege","modalInstance","institution","organizationId","crossRoadsOrganizationId","saveSchoolAfterLogin","isCollegeSaved","getRecruited","getRecruitedAfterLogin","recruiterApplicationId","orginizationId","isProspectSubmitted","nextSlide","activeSlide","prevSlide","updateAppInsights","trackPageView","InstitutionId","photoInstitutionId","currentYear","getFullYear","getProfileData","active","getCarouselCount","slide","src","bannerStyles","admissions","getBannerBaseStyle","academics","costAndFinancialAid","studentLife","transferStudent","internationalStudents","learningDisabilities","command","height","background","background-repeat","background-size","background-position","urlname","institutionName","costFinancialAid","availableLoanTypes","sort","paymentPlans","gps","latitude","longitude","campusTourVideo","videos","video","pageSection","activeVideo","videoURL","majors","sortBy","majorsWithNames","undergradMajors","major","degreeType","gradMajors","findDegreeType","b","findAnyGradDegrees","carouselCount","getNavUrl","newPath","history","pushState","Type","CampusSearchLeft","campusSearchDataService","savedSearchService","sportList","pinColors","UNC","Independent","CommunityCollege","default","view","pageSize","resetTimer","dateTimeStart","performance","deleteSavedCollege","institutions","markers","schools","sortField","sortDesc","currentPage","timeSpent","intervalPromise","savedSearchName","noSchoolData","savedSearches","pan","mapTypeId","MapTypeId","TERRAIN","stateCoords","coords","next","trackMetric","filterOptions","filterDefinition","selectedFilters","nameFilter","filterMap","getFilterMap","getState","national","group","filters","JSON","parse","applySelectedFiltersToMap","Save","startsWith","referrer","occCode","loadSearchFromCollegePlanning","savedSearch","applyFilters","loadSavedSearches","trackEvent","occTitle","updateTimer","currentEventDate","sortTable","pageTable","getInstitutionNames","viewValue","limit","loading","cachedpageNumber","isEqual","savedFilters","filterText","searchName","getName","setName","getInstitutionsByFilter","totalInstitutions","totalItems","totalPages","createMarkers","saveState","stringify","executeSearch","filterMapFromState","merge","redirectToSchool","redirectToSelected","findIndex","x","setUpMarker","color","collegeType","selected","optimized","icon","onClick","redirectToCollegePage","website","urlName","OpenFiltersModal","subCat","publicPrivate","religious","controllerAs","religions","keyFacts","religion","sports","selectedSports","collegeSports","interCollegiateSports","sport","selectedMajors","majorsGroup","programsMajors","majorFilter","has","pillText","showInFilterList","showTipsModal","Clear","clearFilters","campusSearchForm","rotcSelected","selectedSavedSearch","SavedSearch","saveCampusSearch","selectSearch","setView","stateSelected","forOwn","fmGroup","fmFilter","distance","withinRangeOf","range","zipCode","freeApp","applicationFee","ignore","isArray","concat","pills","removeFilter","removeSportsFilter","s","some","schoolType","twoYear","fourYear","graduate","programType","certificate","diploma","associate","bachelors","masters","doctoral","studentPopulation","xs","m","xl","xxl","campusSetting","urban","suburban","smallTown","rural","public","private","nonReligious","adventist","africanmethodistepiscopal","assemblyofgod","baptist","christianmissionaryalliance","christianscience","churchofchrist","churchofgod","churchofthebrethren","congregational","disciplesofchrist","episcopal","evangelical","islamic","interdenominational","jewish","lutheran","mennonite","methodist","moravian","mormon","nondenominational","other","otherchristian","plymouthbrethren","presbyterian","quaker","reformed","catholic","wesleyan","studentHousing","menOnly","womenOnly","coedDorms","coopHouse","greekHousing","fraternity","sorority","special","onlineEducation","degreeCourses","degreePrograms","entirelyOnline","mens","womens","coed","tuition","inState","outState","financialAid","academicScholarships","athleticScholarships","federalWorkStudy","federalGrantsAndScholarships","stateGrantsAndScholarships","institutionalGrants","parentLoans","specialPrograms","acceleratedStudy","distanceLearning","doubleMajors","honorsProgram","independentStudy","internships","selfDesignedMajors","studyAbroad","studentFacultyRatio","ratio","entranceDifficulty","difficulty","scores","act","sat","satReading","satMath","satWriting","admissionsPolicies","earlyAction","earlyDecision","deferredAdmission","concurrentEnrollment","historicallyBlack","arch","badmi","baseb","bsktb","bicyc","bowlg","cheer","crew","xrun","eques","fence","fhock","footb","golf","gymna","hocke","lacro","racqu","rifle","rugby","sailg","skiin","soccr","softb","squas","stre3","swim","tenni","track","ultim","vollb","wpolo","00024","wlift","00031","wrest","agriculturefoodandnaturalresources","architectureandconstruction","artsaudiovideotechnologyandcommunications","businessmanagementadministration","educationandtraining","finance","governmentandpublicadministration","healthscience","hospitalityandtourism","humanservices","informationtechnology","lawpublicsafetycorrectionssecurity","manufacturing","marketing","sciencetechengineeringmath","transportationdistributionlogistics","NameValue","SubCatAccordion","kOpen","CareerDetails","occupation","getOccupation","time","interval","substring","getUSWageData","oneUrl","usWageDataUrl","naics","totalCount","crossIndustryUSWages","salaryGuage","series","annualMeanWage","getNCWageData","ncwages","ncWageDataUrl","uswages","stateWageDataUrl","ncmsawages","areaType","values","crossIndustryNCWages","jobsPer1000","salaryBellcurve","annual10thPercentileWage","annual25thPercentileWage","annualMedianWage","annual75thPercentileWage","annual90thPercentileWage","ncMSAWages","areaId","getSchoolsAndPrograms","programsAndMajorsUrl","saveCareer","OCCCode","defineProperty","chart","pane","startAngle","endAngle","backgroundColor","innerRadius","outerRadius","shape","tooltip","enabled","yAxis","stops","lineWidth","minorTickInterval","tickAmount","y","labels","plotOptions","solidgauge","dataLabels","borderWidth","useHTML","format","valuePrefix","credits","visible","xAxis","alignTicks","accessibility","exposeAsGroupOnly","marker","radius","headerFormat","baseSeries","zIndex","enableMouseTracking","subtitle","showInLegend","pointFormat","legend","labelFormatter","colorByPoint","CareerSearch","getCareerClusters","getAssessmentResults","keys","searchTerm","searchType","searchId","getCareers","getParams","resetSearch","getInterestProfilerSession","getCareerClusterSurveySession","getBasicSkillsSession","getWorkValuesSession","getCareerKeySession","restResult","careerClusterId","interestAreaId","skillId","workValueId","careerClusters","authDefer","reasone","selectSearchType","clearSearchTerm","getAssessmentSession","sessions","first","orderBy","dateCompleted","isNCDCAssessment","session","careerClusterSurveyResults","ar","count","lastSession","interestProfilerResults","basicSkillsSurveyResults","workValuesResults","score","careerKeyResults","pageResults","CollegePlanning","schoolList","getSavedSearches","savedSearchComments","searches","isNaN","test1","savedSearchList","noSavedSearches","deleteSavedSearch","getSavedColleges","savedColleges","colleges","savedCollegeComments","noSavedColleges","updateSavedCollege","savedCollege","saveSection","notes","tempNotes","campusNotes","tempCampusNotes","actions","clone","tempActions","getListofSchools","baseString","getList","getIntentEnrollSchool","intentEnrollSchoolInfo","intendedSchool","collegeName","intendedCollegeName","enrollList","enrollLoading","collegeReasons","organizationID","getSavedProgramsMajors","savedProgramsMajors","programs","savedProgramsComments","chosenProgram","programList","showProgramNotes","updateSavedProgram","program","deleteSavedProgram","getSelfReportedApps","showSelfApps","selfReportedApps","selfReportedComments","selfReportApp","updateSelfReportedApp","finalDate","srDate","day","getDate","getMonth","selfReportID","userID","selfReportName","collegeCity","selfReportCity","submissionDate","selfReport","deleteSelfReportedApp","getCollegeRecuiters","savedRecruiters","foundRecruiters","getTransitionPlan","transitionPlan","loadTransition","planList","planSummary","planDescriptionNotes","careerGoalNotes","supportNotes","nextTransitionNotes","checkTransitionNotes","tempPathType","saveTransitionPlan","pathType","tempPlanDescriptionNotes","tempCareerGoalNotes","tempSupportNotes","tempNextTransitionNotes","savedDate","deleteTransitionPlan","plan","getPersonalStatements","personalStatements","draftStatement","uploadedDraft","finalStatement","uploadedFinal","loadPersonal","testresult","deletePersonalStatement","deleteDraft","deleteFinal","getPersonalStatementFile","fileType","intentEnrollNotes","savedProgramNotes","minDateDisplay","toLocaleDateString","verifiedSchool","verifiedSelfReportSchool","showDraftCancel","showFinalCancel","environmentURL","reasons","checkTrackedAction","actionID","collegeActions","found","questionID","modifyTrackedAction","action","college","actionDict","keyBy","addedAction","questionName","checkIntentReason","reasonID","intentReasons","modifyIntentReason","intentInfo","reasonDict","addedReason","loadSavedSearch","cancelTrackedActions","editIntentEnroll","identifyCollege","checkValidSchool","SelectedSchool","intendedReasons","intendedReasonNotes","reasonNotes","updateIntentEnrollSchool","hasCampusProfile","campusURL","clearIntentEnroll","createNewSelfReportedApp","EditSelfReportApp","loc","selfReportIndex","checkSchoolName","cancelTransitionPlan","createPlan","editTransitionPlan","draftFile","finalFile","ConfirmModal","doRemove","SavedColleges","getColleges","pageNumber","cardView","searchString","loaded","showMap","notesOpen","visitNotesOpen","actionsOpen","slickConfig","slidesToShow","dots","arrows","centerMode","infinite","variableWidth","focusOnSelect","queryParams","searchResults","totalColleges","mapSingleProgram","createSinglePin","CollegeRecruiter","recruitedOnly","getUserProfile","getSchoolList","getUserDemographics","getParentGuardianInfo","userProfile","demographics","parentGuardian","orgList","organizations","schoolCount","organizationTotal","addRecruiter","First","Middle","middleName","Last","Suffix","suffix","Street1","street","Street2","City","city","State","Country","country","Zip","postalCode","additionalData","daytimePhone","birthDate","dateOfBirth","mailingPhone","permanentPhone","phoneNumber","eveningPhone","graduationYear","socialSecurityNumber","nickname","enrollmentStatus","highSchool","ceebCode","nationalities","religiousAffiliation","maritalStatus","disabilities","militaryServices","parentFirstName","parentLastName","parentAddressStreet1","address","parentAddressStreet2","street2","parentAddressCity","parentAddressState","parentAddressCountry","parentAddressZip","parentEmailAddress","emailAddress","parentPhoneNumber","isFatherLiving","isMotherLiving","isParentVeteran","parentDisabledInMilitary","parentKilledInMilitary","parentsGraduatedCollege","prospect","mailingAddress","physicalAddress","dateCreated","App","ConfirmationModal","confirmYes","confirmNo","Logger","$log","showToast","logIt","logWarning","moduleId","fnName","logFn","toastType","write","warning","info","phone","password","personName","caPostalCode","ssn","studentNumber","Address","CollegeRedirection","VerifyAddressResults","addressService","selectAddressOkCallback","selectedAddress","selection","isVerified","userOverride","resultCodes","signature","addressType","county","showProcessing","showInputText","doSubmitProspect","submitProspect","updateUserProfile","selectAddressCancelCallback","permCity","permPostalCode","permState","permStreet","permStreet2","permAddressSignature","permAddressType","ncCounties","ncCountyList","month","dateOfBirthOpen","gradDateOpen","showSubmitText","defaultCategory","race","getUncSchools","uncColleges","checkList","listTocheck","modifyList","denials","denialsReceivedFrom","RegExp","accept","acceptedFrom","internationalPostalCode","intlZipCode","gradDate","classRank","weightedGPA","unweightedGPA","satComposite","actComposite","intendedMajor","requireCampusHousing","requireHousing","mobilePhone","appliedToUncInstitution","deniedAdmission","acceptedToUncInstitution","entryTerm","entryYear","textAuth","applyFinancialAid","applyFinAid","addressErrorResults","providedAddressHasErrors","providedAddress","addressError","melissaDataResponse","testModal","CRPLandingPage","crpOpen","transferPlanner","collegeSearch","currentDate","year","openDate","closeDate","DirectAdmission","savingDetails","updateUser","noStudentNumber","getEligibility","eligible","getProfile","getDirectAdmissionEligibility","ineligible","getDirectAdmissionApplications","viewProfile","AltSrc","restrict","altSrc","link","element","hide","on","setAttribute","directiveId","directive","CfncCheckbox","require","template","ngModel","labelText","ngDisabled","ngChecked","ngValue","ngClick","ngRequired","attrs","trueValue","eval","falseValue","$setViewValue","$watch","newValue","oldValue","$applyAsync","which","preventDefault","CfncRadio","CfncVRView","playing","volume","mute","isReady","ready","vrView","VRView","Player","is_stereo","isStereo","width","play","getCurrentTime","pause","setVolume","muteVolume","setContent","CfncAccountAvailable","EmailVerificationResult","$parse","emailVerificationResult","cfncAccountAvailable","originalValue","$setValidity","emailIsValid","emailVerified","emailSignature","cfncErrors","modelData","errorData","cssClass","CfncExternalContent","$compile","append","getExternalContent","contents","$parent","replaceWith","CfncIFrame","onReceivedMessage","addEventListener","e","call","cfncIncludeError","errorModel","ctrl","$error","$invalid","CfncMenuActive","isActive","route","cfncMenuActive","addClass","removeClass","CfncMmenu","menu","Mmenu","wrappers","navbar","navbars","position","classNames","CfncMmenuLink","cfncMmenuLink","click","toggleClass","fadeToggle","CfncScrollTo","clickEvent","speed","scrollSpeed","clickEventAction","off","elem","scrollElement","scrollDirection","animate","scrollLeft","isFinite","cfncScrollTo","left","done","scrollTop","top","CfncTooltip","bsTitle","removeAttr","attr","bootstrap","Tooltip","convertToNumber","modelController","$parsers","$formatters","DateInput","ngModelCtrl","modelValue","dateInput","dateStringValue","utc","isValid","min","minValue","max","maxValue","startOf","DisableAnimation","$animate","$observe","ErrSrc","bind","errSrc","$set","IfContains","ifContains","exclusiveLogin","stylesheets","baseStyleSheet","organization","appKey","appdefId","appName","appDefId","decodeURIComponent","logoPath","appStyleSheet","ExclusiveShell","ProgramDetails","getProgram","schoolsOfferingProgram","programLength","saveProgram","ProgramSearch","gotoPage","nextPage","nextPageLink","prevPage","prevPageLink","SavedProgramsMajors","deleteProgram","getSavedPrograms","SchoolOfferingProgram","getSchools","programId","programOption","sortDirection","programName","newResults","descriptionId","xapDescriptionId","schoolsLoaded","programSavedCheck","buttonClass","sortValue","saved","cursor","pointer-events","text-decoration","Id","ExternalContent","externalContentUrl","showLeftSideBar","showRightSideBar","loadExternalContent","absUrl","Alpha","items","property","filterId","Escape","input","Offset","start","PhoneNumber","TranscriptOnly","startedApp","userStartedApp","Controller","Home","Shell","siteNotification","busyMessage","isBusy","spinnerOptions","lines","corners","trail","toggleSpinner","breadCrumbs","last","getSiteNotification","logOut","absoluteUrls","showNotice","noticeDate","updatedDate","hidenotification","domain","TopNav","encodeURI","checkRouteSettings","helpLink","currentTab","ncAssistUrl","Assessments","assessments","getAssessments","hesAccess","lsiAccess","dwyaAccess","skillsAccess","intelligencesAccess","formerName","durationMax","durationMin","questions","getUrl","str","BasicSkillsSurvey","assessmentName","assessmentId","progressGauge","gaugeOptions","rankingChart","barChartOptions","levels","getAssessment","getCategories","sessionId","getResults","startOrResumeSession","getSessions","getLegacySessions","currentSession","deleteSession","inProgressSession","isComplete","assessment","inProgress","legacySessions","getCurrentSession","getQuestions","categoryId","isLegacy","assessmentResults","rankedResults","categories","category","complete","answers","selectAnswers","updateProgressIndicator","q","answer","questionId","disabled","startOver","toggleAnswer","question","idx","nextCategory","prevCategory","Math","ceil","tickPositions","padding","fontSize","shadow","minTickInterval","bar","BeYourOwnBoss","cacheBuster","random","CareerClusterSurvey","categoryIndex","totalQuestions","careerCluster","includeQuestion","categoryIdx","HeSAssessments","hesFactory","isLicensed","configId","apiEnvironment","configurationId","heSUserId","apiToken","applicationDivId","onAssessmentStart","replaceState","assessmentClient","main","getIFrameUrl","trustAsResourceUrl","notLicensed","updateDWYAResults","xhttp","XMLHttpRequest","onreadystatechange","readyState","isLsi","InterestProfiler","paging","interestArea","updateAnswer","pageQuestions","incrementPage","RealityCheck","SkillsMatcher","TheCareerKey","showCategoryInResults","TransferableSkillsChecklist","WorkValuesSorter","initializeSelections","selections","topScores","take","uniqBy","rowIdx","colIdx","select","row","column","shift","skip","Login","LoginCredentials","returnUrl","Logout","logoutFrames","messageReceived","every","logoutTimer","logoutUser","LogoutModal","decreaseTimer","tokenExpiresOn","CfncShell","Roles","NextStepsLandingPage","formCompleted","getRoles","userRoles","bitToFormValue","role","convertedRoles","roles","bit","enumToBitValues","Number","Boolean","isTypeFormComplete","getUserProgress","isEducatorRole","userProgress","err","NextStepsOverview","openTypeForm","isEducatorOrParent","EducationProfessional","Parent","isHighSchoolStudent","HighSchool","firstOfJuly","isJunior","isBefore","NextStepsPathway","currentStep","pathwayId","steps","pwSteps","pathways","workforce","military","getSteps","getPathway","_a","pathway","responses","pwStep","stepNumber","order","choices","c","getMaxCompletedStep","gotoStep","saveStep","choiceStatus","questionNumber","choiceNumber","choice","isCorrect","multiSelectIsValid","isStepValid","$valid","pathwayStepsJson","Order","SubmitOrder","vcRecaptchaService","recaptchaCreated","widgetId","recaptchaExpired","reload","recaptchaSuccess","recaptchaToken","submit","initializeOrder","getProducts","products","working","execute","itemName","quantity","referenceCode","addItem","Profile","editingRole","editingDetails","savingDemographics","savingParentGuardian","editingDemographics","selectedGradYear","oldPassword","confirmPassword","showChangeSecurityQuestion","editingPrimaryConnection","displaySSN","originalUser","noSchoolAssociated","gradYears","createGraduationYears","maskSSN","getDemographics","ethnicities","originalDemographics","originalParentGuardian","startYear","grade","displayText","College","gradYear","display","editRole","cancelEditDetails","showChangePassword","newRole","saveRole","tempUser","editDetails","userSecurityAnswer","userSecurityQuestion","originalUserSecurityQuestion","validateSSN","validSSN","editDemographics","saveDemographics","cancelEditDemographics","editParentGuardian","editingParentGuardian","saveParentGuardian","cancelEditParentGuardian","updateSSN","newSSN","contains","final","editSSN","saveDetails","mailingSameAsPerm","copyPermToMailing","validate","addresses","formValueToBit","parseZone","toUTCString","changeSchool","oldPrimaryConnection","deleteConnection","addConnection","associatedSchools","customDELETE","$setUntouched","cancelChangePassword","verifyAddress","raceToggle","disabilityToggle","militaryServiceToggle","nationalitySelected","selectHispanic","saveSecurityQuestion","cancelChangeSecurity","changePrimaryConnection","cancelChangePrimaryConnection","stateChanged","countryChanged","getCountyLabel","label","showTxtOptInMessage","textingOptIns","cfnc","invalidSSNs","checkSchoolLevels","checkCollege","MiddleSchool","openTwoFactorWindow","authUrl","openEmailUpdateWindow","reduce","UpdateAddress","loginCredentials","getLimitedProfile","loginInfo","phoneNumbers","updatePhone","updatePassword","isLimitedProfile","newEmail","saveProfile","passwordInvalid","cfncAddressError","addressInvalid","UpdateEmail","save","StudentCalendar","calendarServiceClient","uiCalendarConfig","locked","tabIndex","eventRender","eventStart","eventEnd","end","eventDesc","desc","setEventWellCall","schoolName","allDayEvent","_d","ng-mouseover","ng-focus","ng-mouseleave","ng-blur","ng-click","eventAfterAllRender","eventAnchor","mapToFullCalendar","getEvents","timezone","hideSpinner","beginDate","toISOString","endDate","filterCategory","retrieveEvents","calendars","studentCalendar","fullCalendar","setEventWell","eventName","startDate","isAllDay","editable","eventWell","lockedWell","setEndDate","lockWell","editEventWell","clearEventWell","editEvent","editStartTime","editEndTime","setTime","getTime","editStartDate","editEndDate","setUpNewEvent","inCreateMode","newStartTime","newEndTime","newCategory","setNewEventTime","newEventWell","setHours","getHours","setMinutes","getMinutes","setEditEventTime","saveStudentEvent","updateStudentEvent","deleteStudentEvent","validateNewEndDate","validateEditEndDate","tab","eventSources","uiConfig","calendar","header","right","filterCategories","StudentEnrichment","oldHost","oldDistance","oldSearch","interests","buildFilterObject","getAllPrograms","filterParams","hostCampus","minFee","maxFee","hasScholarship","gradeLevel","overnight","preK","elementarySchool","middleSchool","deadline","timeFrame","feeRange","createPins","setFees","clearFilter","searchPrograms","resetPins","enrichmentPrograms","displayFilters","filterName","displayHostFilters","displaySearchFilter","displayDistanceFilters","endsWith","buildImageUrl","SelectCcModalCtrl","cutOff","communityColleges","commColleges1","commColleges2","ok","selectedCC","TaapProspectView","PersonName","ProspectAddress","AdditionalData","Taap","UncCollege","communityCollegeService","taapProspectView","getCommunityColleges","userHasProspect","multiSelectSettings","smartButtonMaxItems","displayProp","idProp","showCheckAll","defaultDdlText","buttonDefaultText","errorReason","disableForm","middle","street1","zip","nickName","dayTime","evening","showSpinner","allIds","union","excludedIds","excludedAppIds","TaapLanding","uncSchoolsCtrl","$sanitize","uncSchools","validateHtml","trustAsHtml","formatDate","origDate","TestPrep","openCfncTools","userIdHash","TestScore","createNewItem","arrayToExpand","newItem","testName","scoreID","editMode","cancelEditIBTests","originalName","testResults","ibTests","tests","editIBTests","editActForm","actDateCheck","satSubjectTests","code","apExams","testIDs","getTestScores","hasScoreAccuplacer","accuplacer","hasScoreAct","hasScoreApExams","hasScoreAsset","asset","hasScoreCompass","compass","hasScoreExplore","explore","hasScoreGmat","gmat","hasScoreGre","gre","hasScoreIbTests","hasScoreLsat","lsat","hasScoreMcat","mcat","hasScorePlan","hasScorePsat","psat","hasScoreSat","hasScoreSatSubject","hasScoreToefl","toefl","hasScoreWorkKeys","workKeys","originalAccuplacer","originalAct","originalAsset","originalCompass","originalExplore","originalGmat","originalGre","originalLsat","originalMcat","originalPlan","originalPsat","originalSat","originalToefl","originalWorkkeys","editAPExams","editSatSubjectTests","checkSatValues","checkACTValues","cancelTestAccuplacer","originalTest","cancelTestAct","cancelTestAsset","cancelTestCompass","cancelTestExplore","cancelTestPlan","cancelTestPsat","cancelTestSat","cancelTestToefl","cancelTestWorkKeys","cancelTestGmat","cancelTestGre","cancelTestLsat","cancelTestMcat","cancelTestEdit","ng","psatTotal","reading","math","writing","composite","round","english","science","checkActDate","exploreComposite","planComposite","newActVersion","saveAccuplacer","readingComp","sentenceSkills","arithmetic","elemAlgebra","ReadingComp","SentenceSkills","Arithmetic","ElemAlgebra","saveACT","mechanics","rhetoricalSkills","preAlgebra","intermediateAlgebra","planGeometry","socialStudies","artsLit","englishWriting","prepareHighMath","numberQuantity","functions","integratingSkills","modeling","dataInterpretation","scientificInvestigation","modelEvaluation","writingProduction","languageKnowledge","englishConventions","keyIdeasDetails","craftStructure","integratingKnowledge","understandingComplexTexts","ideasAnalysis","developmentSupport","languageConventions","geometry","algebra","statistics","English","Mechanics","RhetoricalSkills","Reading","Science","PreAlgebra","Geometry","IntermediateAlgebra","PlanGeometry","SocialStudies","ArtsLit","EnglishWriting","Writing","PrepareHighMath","NumberQuantity","Functions","IntegratingSkills","Modeling","DataInterpretation","ScientificInvestigation","ModelEvaluation","WritingProduction","LanguageKnowledge","EnglishConventions","KeyIdeasDetails","CraftStructure","IntegratingKnowledge","UnderstandingComplexTexts","IdeasAnalysis","DevelopmentSupport","Organization","LanguageConventions","Algebra","Statistics","Composite","addTestToList","testType","scoreList","newTest","newTestIndex","saveListTest","testID","TestID","ScoreID","Score","saveAsset","writingSkills","readingSkills","numericalSkills","WritingSkills","ReadingSkills","NumericalSkills","saveCompass","collegeAlgebra","trigonometry","CollegeAlgebra","Trigonometry","saveExplore","savePlan","savePSAT","saveSAT","saveTOEFL","ibtTotal","ibtListening","ibtReading","ibtSpeaking","ibtWriting","pbtTotal","pbtListeningComp","pbtWritten","pbtReadingComp","IBTTotal","IBTListening","IBTReading","IBTSpeaking","IBTWriting","PBTTotal","PBTListeningComp","PBTWritten","PBTReadingComp","saveWorkKeys","appMath","appMathScale","locatingInfo","locatingInfoScale","readingInfo","readingInfoScale","AppMath","AppMathScale","LocatingInfo","LocatingInfoScale","ReadingInfo","ReadingInfoScale","saveGMAT","quantitative","analytical","verbal","Total","Quantitative","Analytical","Verbal","saveGRE","verbalReasoning","quanReasoning","analyticalWriting","VerbalReasoning","QuanReasoning","AnalyticalWriting","saveLSAT","saveMCAT","physicalScience","biologicalScience","writingSample","PhysicalScience","BiologicalScience","WritingSample","removeTest","testId","deleteTest","scoreId","hasTestValue","testModel","deleteListTest","TranscriptModal","TranscriptSchool","httpPath","getTranscriptSchools","totalSchools","startRow","endRow","GetTranscriptSchoolsFile","checkCleared","openTranscriptModal","ValidationAddress","AddressService","countryList","getCountryList","stateList","getStateList","getNCCountyList","validateAddress","keyboard","ApplicationsDataService","getApplications","getUserApplicationById","CalendarServiceClient","newEvent","getAllEvents","eventId","CampusSearchDataService","createFilterDefinition","getInstitutions","getMajorClusters","searchSet","getNCinstitutionNames","stringifiedSearch","displayName","SingleSexOrCoed","toolTip","outsideRangeOf","actScores","inStateTuition","outStateTuition","sportsGender","sportsDivision","scholarshipsAvailable","campusLife","extraCurricular","additionalServices","additionalFilters","CommunityCollegeService","GetRecruitedService","Helper","responseType","headerValues","filename","contentType","blob","Blob","saveAs","isType","entityType","baseType","HesFactory","httpBuffer","$injector","retryHttpRequest","buffer","rejectAll","retryAll","updater","_cfg","OrganizationDataService","getOrganizations","getOrganizationById","ProspectServiceClient","saveProspect","getTaapProfile","RedirectService","four0oneCount","responseError","rejection","RouteMediator","handleRouteChangeError","updateDocTitle","handleRoutingErrors","updateBreadCrumbs","previous","originalPath","SavedSearchService","SaveSchoolService","saveSchool","SportList","getSports","sportName","sportCode","StartApplicationService","schoolId","TranscriptRequest","TranscriptDataService","getSubmittedTranscripts","ActScores","_super","toolTipHeader","typeCbs","isChecked","__extends","getSelectedTypes","selectedTypes","AdditionalServices","AdmissPolicies","CampusSettings","NumericRadio","DistanceOptions","distances","num","distances2","selectedDistance","selectedDistance2","selectedRanges","updatedSelected","EntranceDifficulty","popoverBigheader","Extracurriculars","FinancialAid","HistoricallyBlacks","ProgramsMajors","PublicPrivates","checkPublicPrivateSelected","MinMaxScore","SatScores","scoreRanges","scoreRange","typeCbsMath","typeCbsWriting","selectedReading","selectedMath","selectedWriting","filterToRemove","resetReading","resetMath","resetWriting","checkSelected","SpecialPrograms","StudentHousing","StudentPops","Tuition","selectedInState","cost","selectedOutState","tuitionRanges","resetInState","resetOutState","ClearModalCtrl","yes","no","MajorsModalCtrl","clonedFilters","majorName","checkArray","o","majorPillText","PublicPrivateModalCtrl","privateNonRelgiousSelected","f","g","religiousFilters","religions1","religions2","SaveSearchModalCtrl","SportsModalCtrl","buildSportsList","buildSelectedSportsList","pushSport","getNextSportKey","newSport","division","scholarship","popSport","pull","sportsFilterGroups","sportNumber","TipsModalCtrl","CampusSearchFilter","filterGroup","filterGroups","filterGroupKey","groups","newGroup","existingFilters","CampusSearchFilterCheckbox","vm","findKey","filterIndex","CategoryCheckMark","catIndex","CheckMarkIcon","categorySelected","FilterWatch","onChange","searchByZip","splitValue","buildFilter","updateRange","cfncAcademicCalendar","transclude","schoolid","CalendarModal","$filter","allDay","CfncAddress","states","countries","showSameAsAbove","copyFrom","sameAsAbove","disableCounty","disableCountry","originalScope","copyAddress","destination","cfncApplyToSchool","startApplicationService","modalClosed","StartNewApp","organizationDataService","Restanuglar","hasApplications","hasApps","$root","openApp","CfncCountries","mode","placeholder","maxLength","isDefined","multiDisplay","cfncCustomerSelector","hideCategorySelector","hideCategories","$setDirty","CustomerSelectorModal","selectSchool","hasError","resetSchools","customers","searchSchools","CfncPassword","formGroupCssClass","formGroupCss","labelCssClass","labelCss","inputCssClass","inputCss","passwordLabel","confirmPasswordLabel","inlineForm","required","minlength","maxlength","cfncPasswordCtrl","bindToController","CfncReligions","religionChanged","getReligions","CfncSelectAddress","showSelector","okCallback","cancelCallback","that","CfncSelectAddressModel","CfncSelectAddressModal","annoy","selectedIndex","selectAddressResults","suggestedAddress","showConfirm","confirmOk","addressChanged","askToConfirm","createErrorMessages","AC01","AC02","AC03","AC04","AC05","AC10","AC11","AC12","AC13","AC14","AC20","AE01","AE02","AE03","AE04","AE05","AE06","AE07","AE08","AE09","AE10","AE11","AE12","AE13","AE14","AE17","errorMessages","UserLink","logoff","logon","eventData","LoadSavedModalCtrl","$modalInstance","selectedsearch"],"mappings":"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vD,SAAU,QAASC,WAAY,SAC7CD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,SAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,OAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,OAASC,WAAY,UAC/BD,SAAU,OAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,OAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,SAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,SAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,SAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,OAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,UAC/BD,SAAU,QAASC,WAAY,SAC/BD,S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","file":"app.js","sourcesContent":["namespace Cfnc {\r\n /** Enum use to represent how rules are joined. */\r\n export enum JoinOperator {\r\n /** This is the default JoinOperator */\r\n None,\r\n And,\r\n Or,\r\n }\r\n} ","namespace Cfnc {\r\n /** Enum that represents the available comparison operations for Campus Search Filters. */\r\n export enum CompareOperator {\r\n /** The < operator */\r\n LessThan,\r\n /** The <= operator */\r\n LessThanEqualTo,\r\n /** The = operator */\r\n Equal,\r\n /** The > operator */\r\n GreaterThan,\r\n /** The >= operator */\r\n GreaterThanEqualTo,\r\n /** The != operator */\r\n NotEqual,\r\n /** The contains operator. Use with strings only. */\r\n StartsWith,\r\n /** The does not contain operator. Use with strings only. */\r\n DoesNotStartWith,\r\n In,\r\n NotIn,\r\n WithInRadiusOf,\r\n }\r\n} ","module Cfnc.Security {\r\n export class CfncStorage {\r\n public static userName: string = \"userInfo.userName\";\r\n public static firstName = \"userInfo.firstName\";\r\n public static lastName: string = \"userInfo.lastName\";\r\n public static fullName: string = \"userInfo.fullName\";\r\n public static tenant: string = \"userInfo.tenant\";\r\n public static loginProvider: string = \"userInfo.loginProvider\";\r\n public static hasRegistered: string = \"userInfo.hasRegistered\";\r\n public static timeZone: string = \"userInfo.timeZone\";\r\n public static primaryConnection: string = \"userInfo.PrimaryConnection\";\r\n public static accessToken: string = \"accessToken\";\r\n public static refreshToken: string = \"refreshToken\";\r\n public static expiresOn: string = \"expiresOn\";\r\n public static redirectTarget: string = \"redirectTarget\";\r\n public static rememberMe: string = \"rememberMe\";\r\n public static refreshTokenExpiresIn: string = \"refreshTokenExpiresIn\";\r\n }\r\n} ","/// \r\n/// \r\n\r\nmodule Cfnc.Security {\r\n export interface IAuthenticationService {\r\n user: any;\r\n login(): Promise;\r\n register(): Promise;\r\n logout(setReturnPath?: boolean): Promise;\r\n completeLogout(): Promise;\r\n changePassword(data: any): ng.IPromise>;\r\n authenticate(updateRedirect?: boolean): ng.IPromise;\r\n redirectAuthenticated(url?: string, removeQueryParams?: boolean): void;\r\n //getUser(): IUserInfoView;\r\n safeAccessToken: () => Promise;\r\n broadcastLogin: () => void;\r\n checkLogin: () => Promise;\r\n xapLogout: () => void;\r\n redirect: (url?: string, removeQueryParams?: boolean) => void;\r\n clearRedirect: () => void;\r\n completeLogin: () => Promise;\r\n isLoggedIn: () => Promise;\r\n silentLogout: () => Promise;\r\n providerUrls: IAuthenticationProviderUrls;\r\n }\r\n\r\n export class AuthenticationService implements IAuthenticationService {\r\n private externalLoginWindowTimer: any;\r\n oidcUser: Oidc.User;\r\n user: IUserInfoView;\r\n externalUser: any;\r\n externalLogins: Array;\r\n providerUrls: IAuthenticationProviderUrls;\r\n\r\n timeoutModalInstance: ng.ui.bootstrap.IModalServiceInstance;\r\n pageTitle: string;\r\n private redirectUrl: string;\r\n private readonly _userManager: Oidc.UserManager;\r\n private checkingLogin: boolean = false;\r\n private loginCheckComplete: ng.IAngularEvent;\r\n\r\n constructor(private api: IAccountService,\r\n private authProvider: AuthenticationProvider,\r\n private $rootScope: ICfncRootScope,\r\n private $q: ng.IQService,\r\n private $http: ng.IHttpService,\r\n private $location: ng.ILocationService,\r\n private $timeout: ng.ITimeoutService,\r\n private $window: ng.IWindowService,\r\n private $cookies: ng.cookies.ICookiesService,\r\n private $uibModal: ng.ui.bootstrap.IModalService,\r\n private $routeParams,\r\n private Idle,\r\n private Title,\r\n private config: IConfig\r\n ) {\r\n\r\n $rootScope.$on('IdleStart', () => {\r\n this.pageTitle = this.Title.original();\r\n this.timeoutModalInstance = this.$uibModal.open({\r\n templateUrl: '/app/login/logoutModal.html',\r\n controller: 'logoutModal',\r\n backdrop: 'static',\r\n resolve: {\r\n data: function () { }\r\n }\r\n });\r\n });\r\n\r\n $rootScope.$on('IdleEnd', () => {\r\n this.timeoutModalInstance.close();\r\n this.Title.store(true);\r\n this.Title.original(this.pageTitle);\r\n });\r\n\r\n $rootScope.$on('IdleTimeout', () => {\r\n this.timeoutModalInstance.close();\r\n this.logout(true);\r\n });\r\n \r\n const authSettings = {\r\n authority: authProvider.providerUrls.authority,\r\n client_id: authProvider.clientId,\r\n redirect_uri: authProvider.providerUrls.redirect_uri,\r\n scope: \"openid profile email cfncapi cfncdata\",\r\n response_type: \"code\",\r\n post_logout_redirect_uri: authProvider.providerUrls.post_logout_redirect_uri,\r\n automaticSilentRenew: true,\r\n silent_redirect_uri: authProvider.providerUrls.silent_redirect_uri\r\n };\r\n\r\n this._userManager = new Oidc.UserManager(authSettings);\r\n this._userManager.events.addUserSignedOut(this.completeLogout);\r\n\r\n this.providerUrls = this.authProvider.providerUrls;\r\n\r\n this.initialize();\r\n }\r\n\r\n $broadcast(...params: Array): any {\r\n return this.$rootScope.$broadcast.apply(this.$rootScope, params);\r\n }\r\n\r\n\r\n accessToken(): string {\r\n return this.oidcUser ? this.oidcUser.access_token : null;\r\n }\r\n\r\n completeLogin() {\r\n return this._userManager.signinRedirectCallback().then(user => {\r\n this.oidcUser = user;\r\n this.user = {\r\n userName: user.profile.name,\r\n firstName: user.profile.given_name,\r\n lastName: user.profile.family_name,\r\n primaryConnection: user.profile.primaryConnectionId\r\n };\r\n if (appInsights && appInsights.setAuthenticatedUserContext) {\r\n appInsights.setAuthenticatedUserContext(user.profile.email);\r\n }\r\n if (this.authProvider.events.login) {\r\n this.$broadcast(this.authProvider.events.login, user);\r\n }\r\n this.$http.defaults.headers.common.Authorization = \"Bearer \" + user.access_token;\r\n this.Idle.watch();\r\n return user;\r\n });\r\n }\r\n\r\n isLoggedIn(): Promise {\r\n var defer = this.$q.defer();\r\n var check = () => {\r\n this._userManager.getUser().then(user => {\r\n const userCurrent = !!user && !user.expired;\r\n this.oidcUser = user;\r\n if (userCurrent) {\r\n this.$http.defaults.headers.common.Authorization = \"Bearer \" + user.access_token;\r\n }\r\n\r\n defer.resolve(userCurrent);\r\n });\r\n };\r\n\r\n \r\n if (this.checkingLogin) {\r\n this.$rootScope.$on(this.authProvider.events.loginCheckCompleted, check);\r\n }\r\n else {\r\n check();\r\n }\r\n\r\n return defer.promise;\r\n }\r\n\r\n completeLogout = () => {\r\n return this._userManager.removeUser().then(() => {\r\n this.user = null;\r\n this.oidcUser = null;\r\n this.$http.defaults.headers.common.Authorization = null;\r\n this.$broadcast(this.authProvider.events.logout);\r\n return this._userManager.signoutRedirectCallback();\r\n })\r\n }\r\n\r\n // The forceLogin parameter is there to allow the RDS side to use the function and\r\n // still require login\r\n checkLogin = (forceLogin?: boolean): Promise => {\r\n this.checkingLogin = true;\r\n return this._userManager.signinSilent().then((user) => {\r\n this.Idle.watch();\r\n this.oidcUser = user;\r\n this.user = {\r\n userName: user.profile.name,\r\n firstName: user.profile.given_name,\r\n lastName: user.profile.family_name,\r\n primaryConnection: user.profile.primaryConnectionId\r\n };\r\n if (appInsights && appInsights.setAuthenticatedUserContext) {\r\n appInsights.setAuthenticatedUserContext(user.profile.name);\r\n }\r\n if (this.authProvider.events.login) {\r\n this.$broadcast(this.authProvider.events.login, this.user);\r\n }\r\n this.$broadcast(this.authProvider.events.loginCheckCompleted);\r\n this.checkingLogin = false;\r\n return user;\r\n }, () => {\r\n this.$broadcast(this.authProvider.events.loginCheckCompleted);\r\n this.checkingLogin = false;\r\n });\r\n\r\n };\r\n\r\n safeAccessToken(): Promise {\r\n return this._userManager.getUser().then(user => {\r\n if (!!user && !user.expired) {\r\n return user.access_token;\r\n } else {\r\n return null;\r\n }\r\n });\r\n }\r\n\r\n private initialize(): void {\r\n if (this.$location.path() != \"/logout\") {\r\n this.checkLogin(false).then((user) => {\r\n if (this.authProvider.events.reloadUser) {\r\n this.$broadcast(this.authProvider.events.reloadUser, user);\r\n }\r\n });\r\n }\r\n }\r\n\r\n private redirectTarget(newTarget?: string): string {\r\n if (newTarget === \"clear\" || (localStorage[CfncStorage.redirectTarget] || \"\").toLowerCase() === \"/login\") {\r\n localStorage.removeItem(CfncStorage.redirectTarget);\r\n return;\r\n }\r\n if (newTarget) {\r\n localStorage[CfncStorage.redirectTarget] = newTarget;\r\n }\r\n return localStorage[CfncStorage.redirectTarget];\r\n }\r\n\r\n public clearRedirect() {\r\n this.redirectTarget(\"clear\");\r\n }\r\n\r\n public login(): Promise {\r\n this.redirectTarget(this.$location.path());\r\n return this._userManager.signinRedirect();\r\n }\r\n\r\n public register(): Promise {\r\n this.redirectTarget(this.$location.path());\r\n return this._userManager.createSigninRequest().then(sr => {\r\n var signInUrl = sr.url;\r\n var redirectUrl = this.authProvider.providerUrls.register + \"?returnUrl=\" + encodeURIComponent(signInUrl);\r\n this.redirect(redirectUrl)\r\n });\r\n }\r\n\r\n public logout(setReturnPath?: boolean): Promise {\r\n this.Idle.unwatch();\r\n if (setReturnPath && this.$location.path() != this.authProvider.providerUrls.login) {\r\n this.redirectTarget(this.$location.path());\r\n }\r\n else if (!setReturnPath && this.$location.path() != this.authProvider.providerUrls.login) {\r\n this.redirectTarget(\"clear\");\r\n }\r\n\r\n return this._userManager.signoutRedirect();\r\n }\r\n\r\n public silentLogout(): Promise {\r\n return this._userManager.removeUser();\r\n }\r\n\r\n public changePassword(data): ng.IPromise> {\r\n var deferred: ng.IDeferred = this.$q.defer();\r\n\r\n this.api.changePassword(data).then(result => {\r\n deferred.resolve();\r\n }, reason => {\r\n deferred.reject(reason);\r\n });\r\n\r\n return deferred.promise;\r\n }\r\n\r\n public authenticate = (updateRedirect?: boolean): ng.IPromise => {\r\n var deferred = this.$q.defer();\r\n this.isLoggedIn().then((loggedIn) => {\r\n if (loggedIn) {\r\n this.$rootScope.$on(this.config.events.logout, (event) => {\r\n this.logout(true);\r\n });\r\n\r\n deferred.resolve(loggedIn);\r\n } else {\r\n this.login().then(() => {\r\n deferred.resolve(true);\r\n });\r\n }\r\n });\r\n\r\n return deferred.promise;\r\n };\r\n\r\n public redirectAuthenticated(url?: string, removeQueryParams?: boolean): void {\r\n var redirectUrl = url || this.redirectTarget() || this.authProvider.providerUrls.home;\r\n\r\n if (this.redirectTarget()) {\r\n this.redirectTarget(\"clear\");\r\n }\r\n\r\n if (this.authProvider.useFullRefreshForRedirect || redirectUrl.indexOf(\"http\") === 0) {\r\n this.$window.location.href = redirectUrl;\r\n } else {\r\n if (removeQueryParams) {\r\n this.$location.search({});\r\n }\r\n this.$location.path(redirectUrl);\r\n this.$rootScope.$apply();\r\n }\r\n }\r\n\r\n public broadcastLogin() {\r\n var expiresInterval = moment(localStorage[CfncStorage.expiresOn]).diff(moment(Date.now()));\r\n this.$broadcast(this.authProvider.events.login, this.user);\r\n }\r\n\r\n public xapLogout(): void {\r\n this.api.xapLogout();\r\n }\r\n\r\n redirect(url?: string, removeQueryParams?: boolean): void {\r\n if (url) {\r\n this.redirectUrl = url;\r\n }\r\n\r\n if (this.redirectUrl) {\r\n if (this.isExternal(this.redirectUrl)) {\r\n this.$window.location.href = this.redirectUrl;\r\n } else {\r\n if (removeQueryParams) {\r\n this.$location.search({});\r\n }\r\n this.$location.url(this.redirectUrl);\r\n this.$rootScope.$apply();\r\n }\r\n this.clear();\r\n } else {\r\n if (removeQueryParams) {\r\n this.$location.search({});\r\n }\r\n this.$location.path(this.authProvider.providerUrls.home);\r\n this.$rootScope.$apply();\r\n }\r\n\r\n }\r\n\r\n clear(): void {\r\n this.redirectUrl = null;\r\n }\r\n\r\n isExternal(url): boolean {\r\n var regex = /https?:\\/\\/((?:[\\w\\d-]+\\.)+[\\w\\d]{2,})/i;\r\n var test = regex.exec(url);\r\n\r\n return test !== null && test[1] !== this.$location.host();\r\n }\r\n }\r\n}\r\n","/// \r\nmodule Cfnc.Security {\r\n\r\n export interface IAccountService {\r\n getUserInfo: (accessToken: string) => ng.IPromise>;\r\n login: (data: ILoginBindingModel) => ng.IPromise>;\r\n refreshToken(data: IRefreshTokenModel): ng.IPromise>;\r\n logout(): ng.IPromise>;\r\n xapLogout(): ng.IPromise>;\r\n register: (data: IRegisterBindingModel) => ng.IPromise>;\r\n changePassword(data: any): ng.IPromise>;\r\n getToken(clientId: string): ng.IPromise>;\r\n }\r\n\r\n export class AccountService implements IAccountService {\r\n static serviceId: string = \"accountService\";\r\n private formdataHeader: any;\r\n\r\n constructor(private $http: ng.IHttpService, private urls: IAccountUrls) {\r\n this.formdataHeader = { \"Content-Type\": \"application/x-www-form-urlencoded\" };\r\n }\r\n\r\n private parameterize = (data: any): any => {\r\n var param = (obj: any): any => {\r\n var query = \"\";\r\n var subValue, fullSubName, innerObj, i;\r\n angular.forEach(obj, function (value, name: any) {\r\n if (value instanceof Array) {\r\n for (i = 0; i < value.length; ++i) {\r\n subValue = value[i];\r\n fullSubName = name + \"[\" + i + \"]\";\r\n innerObj = {};\r\n innerObj[fullSubName] = subValue;\r\n query += param(innerObj) + \"&\";\r\n }\r\n }\r\n else if (value instanceof Object) {\r\n angular.forEach(value, function (subValue, subName) {\r\n fullSubName = name + \"[\" + subName + \"]\";\r\n innerObj = {};\r\n innerObj[fullSubName] = subValue;\r\n query += param(innerObj) + \"&\";\r\n });\r\n }\r\n else if (value !== undefined && value !== null) {\r\n query += encodeURIComponent(name) + \"=\" + encodeURIComponent(value) + \"&\";\r\n }\r\n });\r\n return query.length ? query.substr(0, query.length - 1) : query;\r\n };\r\n return angular.isObject(data) && String(data) !== \"[object File]\" ? param(data) : data;\r\n };\r\n\r\n getUserInfo = (accessToken: string): ng.IPromise> => {\r\n return this.$http({ url: this.urls.host + this.urls.userInfo, method: \"GET\", headers: { \"Authorization\": \"Bearer \" + accessToken } });\r\n };\r\n\r\n login = (data: ILoginBindingModel): ng.IPromise => {\r\n return this.$http({ method: 'POST', url: this.urls.host + this.urls.login, data: this.parameterize(data), headers: this.formdataHeader });\r\n }\r\n\r\n refreshToken(data: IRefreshTokenModel): ng.IPromise> {\r\n return this.$http({ method: \"POST\", url: this.urls.host + this.urls.login, data: this.parameterize(data), headers: this.formdataHeader });\r\n }\r\n\r\n logout(): ng.IPromise> {\r\n return this.$http({ method: \"POST\", url: this.urls.host + this.urls.logout });\r\n }\r\n\r\n xapLogout(): ng.IPromise> {\r\n return this.$http({ method: \"GET\", url: this.urls.xapHost + this.urls.xapLogout });\r\n }\r\n\r\n register = (data: IRegisterBindingModel): ng.IPromise => {\r\n return this.$http({ method: 'POST', url: this.urls.host + this.urls.join, data: data });\r\n }\r\n\r\n changePassword(data: any): ng.IPromise> {\r\n return this.$http({ method: \"POST\", url: this.urls.changePassword, data: data });\r\n }\r\n\r\n getToken = (clientId: string): ng.IPromise> => {\r\n return this.$http({ url: this.urls.host + this.urls.exchangeToken + \"?clientId=\" + clientId, method: \"GET\", ignoreAuthModule: true, headers: { \"Authorization\": \"Bearer clear\" } });\r\n };\r\n }\r\n}","/// \r\n/// \r\n/// \r\nmodule Cfnc.Security {\r\n\r\n export interface IRedirectService {\r\n redirect: (url?: string) => void;\r\n clear: () => void;\r\n }\r\n\r\n export interface IAuthenticationProviderUrls {\r\n authority: string;\r\n redirect_uri: string;\r\n post_logout_redirect_uri: string;\r\n silent_redirect_uri: string;\r\n login: string;\r\n postLogout: string;\r\n home: string;\r\n register: string;\r\n }\r\n\r\n export interface IAuthenticationEvents {\r\n login: any;\r\n logout: any;\r\n register: any;\r\n reloadUser: any;\r\n closeOAuthWindow: any;\r\n loginCheckCompleted: any;\r\n }\r\n\r\n export class AuthenticationProvider {\r\n registerThenLogin: boolean = true;\r\n usePopups: boolean = false;\r\n useFullRefreshForLoginUrl = true;\r\n useFullRefreshForRedirect = false;\r\n providerUrls: IAuthenticationProviderUrls = {\r\n authority: \"https://localhost:44373\",\r\n redirect_uri: \"https://localhost:44302/signin-callback\",\r\n post_logout_redirect_uri: \"https://localhost:44302/signout-callback\",\r\n silent_redirect_uri: \"https://localhost:44302/silent-callback.html\",\r\n login: \"http://authlocal.cfnc.org:56311/connect/authorize?client_id=cfncweb&scope=openid&response_type=code\",\r\n register: \"https://localhost:44373/Identity/Account/Register\",\r\n postLogout: \"/login\",\r\n home: \"/\"\r\n };\r\n events: IAuthenticationEvents = {\r\n login: \"loginEvent\",\r\n logout: \"logoutEvent\",\r\n register: null,\r\n reloadUser: null,\r\n closeOAuthWindow: null,\r\n loginCheckCompleted: \"loginCheckCompletedEvent\"\r\n };\r\n clientId: string;\r\n scope: string;\r\n\r\n\r\n $get: Array;\r\n\r\n constructor(public apiUrls: IAccountUrls) {\r\n this.clientId = \"CfncClientLocal\";\r\n this.$get = [\"authentication.api\", \"$rootScope\", \"$q\", \"$http\", \"$location\", \"$timeout\", \"$window\", \"$cookies\", \"$uibModal\", \"$routeParams\", \"Idle\", \"Title\", \"config\", (api, $rootScope, $q, $http, $location, $timeout, $window, $cookies, $uibModal, $routeParams, Idle, Title, config: IConfig) => {\r\n return new AuthenticationService(api, this, $rootScope, $q, $http, $location, $timeout, $window, $cookies, $uibModal, $routeParams, Idle, Title, config);\r\n }];\r\n }\r\n }\r\n\r\n angular.module(\"authentication\", [\"ngRoute\", \"ngCookies\", \"ui.bootstrap\", \"ngIdle\"])\r\n .constant(\"authentication.urls\", {\r\n host: \"https://localhost:44302\",\r\n xapHost: \"http://test1.cfnc.org\",\r\n site: \"/\",\r\n manage: \"/manage\",\r\n join: \"/account/register\",\r\n login: \"/token\",\r\n logout: \"/account/logout\",\r\n xapLogout: \"/CFITransitions/Security/logout.svc/LogUserOut\",\r\n forgotPassword: \"/account/forgotpassword\",\r\n resetPassword: \"/account/resetpassword\",\r\n confirmEmail: \"/account/confirmEmail\",\r\n userInfo: \"/account/userInfo\",\r\n changePassword: \"/account/changePassword\",\r\n externalLogins: \"/account/externalLogins\",\r\n manageInfo: \"/account/manageInfo\",\r\n registerExternal: \"/account/registerExternal\",\r\n addExternalLogin: \"/account/addExternalLogin\",\r\n removeLogin: \"/account/removeLogin\",\r\n exchangeToken: \"/account/gettoken\"\r\n })\r\n .factory(\"authentication.api\", [\"$http\", \"authentication.urls\", ($http, urls) => {\r\n return new AccountService($http, urls);\r\n }])\r\n .provider(\"authentication\", [\"authentication.urls\", (urls) => {\r\n return new AuthenticationProvider(urls);\r\n }]);\r\n}","/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n export interface ICommonFactory {\r\n $broadcast: (...params: Array) => any;\r\n $q: ng.IQService;\r\n $timeout: ng.ITimeoutService;\r\n authentication: Security.IAuthenticationService;\r\n activateController: (promises: Array>, controllerId: string) => ng.IPromise;\r\n createSearchThrottle: (viewmodel: any, list: any, filteredList?: string, filter?: string, delay?: number) => any;\r\n debouncedThrottle: (key: any, callback: Function, delay?: number, immediate?: boolean) => void;\r\n isNumber: (val: any) => boolean;\r\n textContains: (text: string, searchText: string) => boolean;\r\n logger: any;\r\n regularExpressions: RegularExpressions;\r\n interpolateRouteUrl: (url: string) => string;\r\n interpolateTitle: (title: string) => string;\r\n }\r\n\r\n export class CommonFactory implements ICommonFactory {\r\n static serviceId: string = \"common\";\r\n private throttles;\r\n regularExpressions: RegularExpressions = RegularExpressions;\r\n\r\n constructor(public $q: ng.IQService,\r\n private $rootScope: ng.IRootScopeService,\r\n public $timeout: ng.ITimeoutService,\r\n private commonConfig: ICommonProvider,\r\n public logger: ILogger,\r\n public authentication: Security.IAuthenticationService,\r\n public $routeParams: ng.route.IRouteParamsService) {\r\n\r\n this.throttles = {};\r\n }\r\n\r\n $broadcast(...params: Array): any {\r\n return this.$rootScope.$broadcast.apply(this.$rootScope, params);\r\n }\r\n\r\n activateController(promises: Array>, controllerId: string): ng.IPromise {\r\n return this.$q.all(promises).then((eventArgs: any): void => {\r\n var data: any = { controllerId: controllerId };\r\n this.$broadcast(this.commonConfig.config.controllerActivateSuccessEvent, data);\r\n });\r\n }\r\n\r\n createSearchThrottle(viewmodel: any, list: any, filteredList?: string, filter?: string, delay?: number): Function {\r\n // after a delay, search a viewmodel\"s list using \r\n // a filter function, and return a filteredList.\r\n\r\n // custom delay or use default\r\n delay = +delay || 300;\r\n // if only vm and list parameters were passed, set others by naming convention \r\n if (!filteredList) {\r\n // assuming list is named sessions, filteredList is filteredSessions\r\n filteredList = \"filtered\" + list[0].toUpperCase() + list.substr(1).toLowerCase(); // string\r\n // filter function is named sessionFilter\r\n filter = list + \"Filter\"; // function in string form\r\n }\r\n\r\n // create the filtering function we will call from here\r\n var filterFn: any = (): any => {\r\n // translates to ...\r\n // vm.filteredSessions \r\n // = vm.sessions.filter(function(item( { returns vm.sessionFilter (item) } );\r\n viewmodel[filteredList] = viewmodel[list].filter((item: any): any => {\r\n return viewmodel[filter](item);\r\n });\r\n };\r\n\r\n return ((): Function=> {\r\n // arapped in outer IFFE so we can use closure \r\n // over filterInputTimeout which references the timeout\r\n var filterInputTimeout: ng.IPromise;\r\n\r\n // return what becomes the \"applyFilter\" function in the controller\r\n return (searchNow: boolean): void => {\r\n if (filterInputTimeout) {\r\n this.$timeout.cancel(filterInputTimeout);\r\n filterInputTimeout = null;\r\n }\r\n if (searchNow || !delay) {\r\n filterFn();\r\n } else {\r\n filterInputTimeout = this.$timeout(filterFn, delay);\r\n }\r\n };\r\n })();\r\n }\r\n\r\n debouncedThrottle(key: any, callback: any, delay?: number, immediate?: boolean): void {\r\n // aerform some action (callback) after a delay. \r\n // track the callback by key, so if the same callback \r\n // is issued again, restart the delay.\r\n\r\n var defaultDelay: number = 1000;\r\n delay = delay || defaultDelay;\r\n if (this.throttles[key]) {\r\n this.$timeout.cancel(this.throttles[key]);\r\n this.throttles[key] = undefined;\r\n }\r\n if (immediate) {\r\n callback();\r\n } else {\r\n this.throttles[key] = this.$timeout(callback, delay);\r\n }\r\n }\r\n\r\n isNumber(val: any): boolean {\r\n // negative or positive\r\n return /^[-]?\\d+$/.test(val);\r\n }\r\n\r\n textContains(text: string, searchText: string): boolean {\r\n return text && -1 !== text.toLowerCase().indexOf(searchText.toLowerCase());\r\n }\r\n\r\n interpolateRouteUrl(url: string) {\r\n var tempUrl = document.createElement(\"a\");\r\n tempUrl.href = url;\r\n\r\n if (tempUrl.hostname == window.location.hostname) {\r\n url = url.replace(tempUrl.hostname, \"\");\r\n\r\n var parts = url.split(\"/\");\r\n var path = [];\r\n parts.forEach((p: string) => {\r\n var part = p;\r\n if (p.indexOf(\":\") != -1) {\r\n var params = p.match(/:[a-zA-Z0-9]+/g);\r\n if (params != null) {\r\n params.forEach(param => {\r\n part = part.replace(param, this.$routeParams[param.substr(1)]);\r\n\r\n })\r\n }\r\n\r\n }\r\n\r\n path.push(part);\r\n });\r\n\r\n return path.join(\"/\");\r\n } else {\r\n return url;\r\n }\r\n }\r\n\r\n interpolateTitle(title: string) {\r\n if (title.indexOf(\":\") != -1) {\r\n var params = title.match(/:[a-zA-Z0-9]+/);\r\n params.forEach(param => {\r\n title = title.replace(param, this.$routeParams[param.substr(1)]);\r\n });\r\n\r\n //doing a double replace on -- because regex negative look behind is not\r\n //supported in all browsers.\r\n //TODO: Optimize double dash character replacement.\r\n if (title.indexOf(\"-\") != -1) {\r\n title = title\r\n .replace(/--/g, \"_\")\r\n .replace(/-/g, \" \")\r\n .replace(/_/g, \"-\");\r\n }\r\n }\r\n\r\n try {\r\n title = title.split(' ').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' ')\r\n }\r\n catch(ex){\r\n console.log(\"Title casing failed.\", ex);\r\n }\r\n\r\n return title;\r\n };\r\n }\r\n}\r\n","namespace Cfnc {\r\n \"use strict\";\r\n\r\n export interface ICommonConfig {\r\n controllerActivateSuccessEvent?: string;\r\n spinnerToggleEvent?: string;\r\n debug: boolean;\r\n login?: string;\r\n logout?: string;\r\n register?: string;\r\n reloadUser?: string;\r\n apiHost?: string;\r\n xapHost?: string;\r\n homeUrl?: string;\r\n }\r\n\r\n export interface ICommonProvider extends ng.IServiceProvider {\r\n config: ICommonConfig;\r\n }\r\n\r\n export class CommonProvider implements ICommonProvider {\r\n config: ICommonConfig;\r\n\r\n constructor(private authenticationProvider: Security.AuthenticationProvider) {\r\n this.config = {\r\n debug: false\r\n };\r\n }\r\n\r\n $get(): any {\r\n this.authenticationProvider.useFullRefreshForLoginUrl = true;\r\n this.authenticationProvider.useFullRefreshForRedirect = false;\r\n this.authenticationProvider.registerThenLogin = true;\r\n this.authenticationProvider.events.login = this.config.login;\r\n this.authenticationProvider.events.logout = this.config.logout;\r\n this.authenticationProvider.events.register = this.config.register;\r\n this.authenticationProvider.events.reloadUser = this.config.reloadUser;\r\n\r\n this.authenticationProvider.apiUrls.host = this.config.apiHost;\r\n this.authenticationProvider.apiUrls.xapHost = this.config.xapHost;\r\n this.authenticationProvider.providerUrls.home = this.config.homeUrl;\r\n return {\r\n config: this.config\r\n };\r\n }\r\n }\r\n}","/// \r\n/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n\r\n\r\n interface ICommonModule extends ng.IModule { }\r\n\r\n // create the module and define its dependencies.\r\n var commonModule: ICommonModule = angular.module(\"common\", [\"authentication\"]);\r\n\r\n commonModule.provider(\"commonConfig\", [\"authenticationProvider\", (authenticationProvider) => { return new CommonProvider(authenticationProvider) }]);\r\n\r\n commonModule.factory(CommonFactory.serviceId, [\"$q\", \"$rootScope\", \"$timeout\", \"commonConfig\", \"logger\", \"authentication\", \"$routeParams\",\r\n ($q: ng.IQService, $rootScope: ng.IRootScopeService,\r\n $timeout: ng.ITimeoutService, commonConfig: ICommonProvider, logger: ILogger, authentication: Security.IAuthenticationService, $routeParams: ng.route.IRouteParamsService): ICommonFactory =>\r\n new CommonFactory($q, $rootScope, $timeout, commonConfig, logger, authentication, $routeParams)\r\n ]);\r\n\r\n // execute bootstrapping code and any dependencies.\r\n commonModule.run([\"$q\", \"$rootScope\", ($q, $rootScope) => {\r\n\r\n }]);\r\n\r\n}","/// \r\n/// \r\n/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\";\r\n interface IApp extends ng.IModule { }\r\n export interface ICfncRootScope extends ng.IRootScopeService {\r\n authenticating: Promise;\r\n }\r\n\r\n // create the module and define its dependencies.\r\n var app: IApp = angular.module(\"app\", [\r\n // angular modules \r\n \"ngResource\", // $resource for REST queries\r\n \"ngAnimate\", // animations\r\n \"ngSanitize\", // sanitizes html bindings (ex: sidebar.js)\r\n \"ngRoute\", // routing\r\n \"ngMessages\",\r\n \"ngCookies\",\r\n \"ngIdle\",\r\n\r\n // custom modules \r\n \"common\",\r\n\r\n // 3rd Party Modules\r\n \"ui.bootstrap\",\r\n \"ui.utils\",\r\n \"ui.select\",\r\n \"ui.calendar\",\r\n \"uiGmapgoogle-maps\",\r\n \"restangular\",\r\n \"angular.filter\",\r\n \"ngFileUpload\",\r\n \"com.2fdevs.videogular\",\r\n \"vcRecaptcha\",\r\n \"highcharts-ng\",\r\n \"mgcrea.ngStrap\",\r\n \"slickCarousel\"\r\n ]);\r\n\r\n // execute bootstrapping code and any dependencies.\r\n app.run([\"$route\", \"$rootScope\", \"$http\", \"common\", \"routemediator\", \"$location\", \"$window\", \"$uibModalStack\",\r\n ($route: ng.route.IRouteService, $rootScope: ICfncRootScope, $http: ng.IHttpService, common: ICommonFactory, routemediator, $location: angular.ILocationService, $window: angular.IWindowService, $uibModalStack: ng.ui.bootstrap.IModalStackService): void => {\r\n routemediator.setRoutingHandlers();\r\n\r\n var user = common.authentication.user;\r\n\r\n //$rootScope.$on(\"$routeChangeStart\", (event, next: any) => {\r\n // appInsights.startTrackPage(next.$$route.title);\r\n\r\n //});\r\n const path = $location.path();\r\n\r\n if (path == \"/exclusive.html\") {\r\n $location.url(`/exclusive.html${$location.hash()}`);\r\n $rootScope.$apply();\r\n }\r\n\r\n $rootScope.$on(\"$routeChangeSuccess\", (event, current: any) => {\r\n var pagePath = `Cfnc${$location.url()}`;\r\n if ($window.ga) {\r\n $window.ga('send', 'pageview', { page: $location.path() });\r\n }\r\n\r\n if (appInsights) {\r\n if (localStorage[Cfnc.Security.CfncStorage.primaryConnection]) {\r\n appInsights.stopTrackPage(current.$$route.title, pagePath, { \"crmId\": localStorage[Cfnc.Security.CfncStorage.primaryConnection] });\r\n }\r\n else\r\n appInsights.stopTrackPage(current.$$route.title, pagePath);\r\n }\r\n\r\n //close all open modals\r\n $uibModalStack.dismissAll();\r\n });\r\n\r\n // Include $route to kick start the router.\r\n common.authentication.safeAccessToken().then((accessToken) => {\r\n $http.defaults.headers.common.Authorization = \"Bearer \" + accessToken;\r\n });\r\n\r\n $http.defaults.headers.common[\"Cache-Control\"] = \"no-cache\";\r\n $http.defaults.headers.common.Pragma = \"no-cache\";\r\n $http.defaults.withCredentials = true;\r\n\r\n $rootScope.authenticating = common.authentication.checkLogin().then((user) => {\r\n if (user) {\r\n common.authentication.broadcastLogin();\r\n }\r\n }, () => { });\r\n\r\n\r\n\r\n }]);\r\n}\r\n","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n export interface IRouteConfigSetting {\r\n nav?: number;\r\n content?: string;\r\n parent?: string;\r\n breadCrumb?: string;\r\n parentUrl?: string;\r\n // showBreadcrumbs value defaults to true\r\n showBreadcrumbs?: boolean; \r\n }\r\n\r\n export interface IRouteConfig {\r\n templateUrl: string;\r\n title: string;\r\n settings: IRouteConfigSetting;\r\n caseInsensitiveMatch?: boolean;\r\n reloadOnSearch?: boolean;\r\n reloadOnUrl?: boolean;\r\n redirectTo?: any;\r\n }\r\n\r\n export interface IRoute {\r\n url: string;\r\n config: IRouteConfig;\r\n }\r\n\r\n class Routes {\r\n\r\n static getRoutes(): Array {\r\n var routes: Array;\r\n\r\n routes = [\r\n // #region internal routes\r\n {\r\n url: \"/signin-callback\",\r\n config: {\r\n templateUrl: \"/app/account/signInRedirectCallBack.html\",\r\n caseInsensitiveMatch: true,\r\n title: \"SignIn\",\r\n settings: {\r\n parent: \"Home\",\r\n breadCrumb: \"Login\"\r\n }\r\n }\r\n }, {\r\n url: \"/signout-callback\",\r\n config: {\r\n templateUrl: \"/app/account/signOutRedirectCallBack.html\",\r\n caseInsensitiveMatch: true,\r\n title: \"SignOut\",\r\n settings: {\r\n parent: \"Home\",\r\n breadCrumb: \"SignOut\"\r\n }\r\n }\r\n },\r\n {\r\n url: \"/\",\r\n config: {\r\n templateUrl: \"/app/home/home.html\",\r\n caseInsensitiveMatch: true,\r\n title: \"\",\r\n settings: {\r\n nav: 1,\r\n content: \" Home\"\r\n }\r\n }\r\n }, {\r\n url: \"/resetPasswordConfirmation\",\r\n config: {\r\n templateUrl: \"/app/account/resetPasswordConfirmation.html\",\r\n caseInsensitiveMatch: true,\r\n title: \"Reset Password Confirmation\",\r\n settings: {\r\n nav: 2,\r\n content: \"Reset Password Confirmation\",\r\n parent: \"Home\",\r\n breadCrumb: \"Recover Account\"\r\n\r\n }\r\n }\r\n }, {\r\n url: \"/resetPassword\",\r\n config: {\r\n templateUrl: \"/app/account/resetPasswordWithToken.html\",\r\n caseInsensitiveMatch: true,\r\n title: \"Reset Password\",\r\n reloadOnSearch: false,\r\n settings: {\r\n nav: 2,\r\n content: \"Reset Password\",\r\n parent: \"Home\",\r\n breadCrumb: \"Reset Password\"\r\n }\r\n }\r\n }, {\r\n url: \"/apphub\",\r\n config: {\r\n templateUrl: \"/app/apphub/apphub.html\",\r\n caseInsensitiveMatch: true,\r\n title: \"Application Hub\",\r\n settings: {\r\n nav: 3,\r\n content: \"app hub\",\r\n parent: \"Apply to College\",\r\n breadCrumb: \"Application Hub\"\r\n }\r\n }\r\n }, {\r\n url: \"/college-search\",\r\n config: {\r\n templateUrl: \"/app/campusSearch/campusSearch.html\",\r\n caseInsensitiveMatch: true,\r\n title: \"College Search\",\r\n reloadOnSearch: false,\r\n reloadOnUrl: false,\r\n settings: {\r\n nav: 3,\r\n content: \"College Search\",\r\n parent: \"Plan for College\",\r\n breadCrumb: \"College Search\"\r\n }\r\n }\r\n\r\n }, {\r\n url: \"/apphub/requesttranscript\",\r\n config: {\r\n templateUrl: \"/app/apphub/requesttranscript.html\",\r\n caseInsensitiveMatch: true,\r\n title: \"Request Transcripts\",\r\n settings: {\r\n nav: 5,\r\n content: \"send transcript\",\r\n parent: \"Apply to College\",\r\n breadCrumb: \"Request Transcripts\"\r\n\r\n }\r\n }\r\n },\r\n {\r\n url: \"/exploreprogramsandmajors/schoolofferingprogram/:programId\",\r\n config: {\r\n templateUrl: \"/app/exploreProgramsAndMajors/schoolOfferingProgram.html\",\r\n caseInsensitiveMatch: true,\r\n title: \"Schools Offering This Program\",\r\n settings: {\r\n nav: 6,\r\n content: \"Schools Offering This Program\",\r\n parent: \"Plan for College\",\r\n parentUrl: \"\",\r\n breadCrumb: \"Explore Programs and Majors\"\r\n }\r\n }\r\n },\r\n {\r\n url: \"/college-profile/:institutionName/\",\r\n config: {\r\n templateUrl: \"/app/campusProfile/campusProfile.html\",\r\n caseInsensitiveMatch: true,\r\n title: \":institutionName\",\r\n reloadOnSearch: false,\r\n reloadOnUrl: false,\r\n settings: {\r\n nav: 6,\r\n content: \"\",\r\n parent: \"College Search\",\r\n breadCrumb: \":institutionName\"\r\n }\r\n }\r\n },\r\n {\r\n url: \"/college-profile/:institutionName/:section\",\r\n config: {\r\n templateUrl: \"/app/campusProfile/campusProfile.html\",\r\n caseInsensitiveMatch: true,\r\n title: \":institutionName\",\r\n reloadOnSearch: false,\r\n reloadOnUrl: false,\r\n settings: {\r\n nav: 6,\r\n content: \"\",\r\n parent: \":institutionName\",\r\n breadCrumb: \":section\",\r\n }\r\n }\r\n },\r\n {\r\n url: \"/collegePlanning\",\r\n config: {\r\n templateUrl: \"/app/collegePlanning/collegePlanning.html\",\r\n caseInsensitiveMatch: true,\r\n title: \"College Planning\",\r\n settings: {\r\n content: \"College Planning\",\r\n parent: \"MyCfnc\"\r\n }\r\n }\r\n },\r\n {\r\n url: \"/taap\",\r\n config: {\r\n templateUrl: \"/app/taap/taap.html\",\r\n caseInsensitiveMatch: true,\r\n title: \"Transfer Assured Admissions Policy Overview\",\r\n settings: {\r\n nav: 9,\r\n content: \"Transfer Assured Admissions Policy Overview\",\r\n parent: \"Transfer Student Planner\",\r\n breadCrumb: \"Transfer Assured Admissions Policy Overview\"\r\n }\r\n }\r\n },\r\n {\r\n url: \"/uncInstitutions\",\r\n config: {\r\n templateUrl: \"/app/taap/uncSchools.html\",\r\n caseInsensitiveMatch: true,\r\n title: \"UNC Institutions Participating in TAAP\",\r\n settings: {\r\n nav: 10,\r\n content: \"UNC Institutions\",\r\n parent: \"Transfer Student Planner\",\r\n breadCrumb: \"UNC Institutions\"\r\n }\r\n }\r\n },\r\n {\r\n url: \"/taapform\",\r\n config: {\r\n templateUrl: \"/app/taap/taapForm.html\",\r\n caseInsensitiveMatch: true,\r\n title: \"Transfer Assured Admissions Policy Registration\",\r\n settings: {\r\n nav: 10,\r\n content: \"Transfer Assured Admissions Policy Registration\",\r\n parent: \"Transfer Student Planner\",\r\n breadCrumb: \"Transfer Assured Admissions Policy Registration\"\r\n }\r\n }\r\n },\r\n {\r\n url: \"/CRP\",\r\n config: {\r\n templateUrl: \"/app/CRP/CRPLandingPage.html\",\r\n caseInsensitiveMatch: true,\r\n title: \"College Redirection Pool\",\r\n settings: {\r\n nav: 11,\r\n content: \"CRP Landing Page\",\r\n parent: \"Planning Resources\",\r\n breadCrumb: \"College Redirection Pool\"\r\n }\r\n }\r\n },\r\n {\r\n url: \"/CollegeRedirection\",\r\n config: {\r\n templateUrl: \"/app/CRP/crp.html\",\r\n caseInsensitiveMatch: true,\r\n title: \"College Redirection Pool Registration\",\r\n settings: {\r\n nav: 12,\r\n content: \"CRP\",\r\n parent: \"Planning Resources\",\r\n breadCrumb: \"College Redirection Pool Registration\"\r\n }\r\n }\r\n },\r\n {\r\n url: \"/collegeRecruiter\",\r\n config: {\r\n templateUrl: \"/app/collegeRecruiter/collegeRecruiter.html\",\r\n caseInsensitiveMatch: true,\r\n title: \"Get Recruited\",\r\n settings: {\r\n nav: 13,\r\n content: \"College Recruiter\",\r\n parent: \"Apply to College\",\r\n breadCrumb: \"Get Recruited\"\r\n }\r\n }\r\n },\r\n {\r\n url: \"/profile\",\r\n config: {\r\n templateUrl: \"/app/profile/profile.html\",\r\n caseInsensitiveMatch: true,\r\n title: \"Profile\",\r\n settings: {\r\n nav: 13,\r\n content: \"Your Profile\",\r\n parent: null,\r\n breadCrumb: null,\r\n showBreadcrumbs: false\r\n }\r\n }\r\n }, {\r\n url: \"/testScores\",\r\n config: {\r\n templateUrl: \"/app/testScores/testScores.html\",\r\n caseInsensitiveMatch: true,\r\n title: \"Test Scores\",\r\n settings: {\r\n nav: 13,\r\n content: \"Test Scores\",\r\n parent: \"MyCfnc\"\r\n }\r\n }\r\n }, {\r\n url: \"/activitiesInterests\",\r\n config: {\r\n templateUrl: \"/app/activitiesInterests/activitiesInterests.html\",\r\n caseInsensitiveMatch: true,\r\n title: \"Activities and Interests\",\r\n settings: {\r\n nav: 13,\r\n content: \"Activities and Interests\",\r\n parent: \"MyCfnc\"\r\n }\r\n }\r\n }, {\r\n url: \"/testPrep\",\r\n config: {\r\n templateUrl: \"/app/testPrep/testPrep.html\",\r\n caseInsensitiveMatch: true,\r\n title: \"Test Preperation\",\r\n settings: {\r\n nav: 14,\r\n content: \"Test Prep\",\r\n parent: \"Planning Resources\",\r\n breadCrumb: \"Test Preperation\"\r\n }\r\n }\r\n }, {\r\n url: \"/studentCalendar\",\r\n config: {\r\n templateUrl: \"/app/studentCalendar/studentCalendar.html\",\r\n title: \"Student Calendar\",\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"MyCfnc\"\r\n }\r\n }\r\n },\r\n\r\n //learn-about-yourself renaming\r\n {\r\n url: \"/learn-about-yourself\",\r\n config: {\r\n templateUrl: \"/app/learnAboutYourself/assessments.html\",\r\n title: \"Learn About Yourself\",\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"Plan for a Career\",\r\n breadCrumb: \"Learn About Yourself\"\r\n }\r\n }\r\n }, {\r\n url: \"/learn-about-yourself/interest-profiler\",\r\n config: {\r\n templateUrl: \"/app/learnAboutYourself/interestprofiler.html\",\r\n title: \"Interest Profiler\",\r\n reloadOnSearch: false,\r\n reloadOnUrl: false,\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"Learn About Yourself\",\r\n breadCrumb: \"Interest Profiler\"\r\n }\r\n }\r\n }, {\r\n url: \"/learn-about-yourself/career-cluster-survey\",\r\n config: {\r\n templateUrl: \"/app/learnAboutYourself/careerclustersurvey.html\",\r\n title: \"Career Cluster Survey\",\r\n reloadOnSearch: false,\r\n reloadOnUrl: false,\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"Learn About Yourself\",\r\n breadCrumb: \"Career Cluster Survey\"\r\n }\r\n }\r\n }, {\r\n url: \"/learn-about-yourself/basic-skills-survey\",\r\n config: {\r\n templateUrl: \"/app/learnAboutYourself/basicskillssurvey.html\",\r\n title: \"Basic Skills Survey\",\r\n reloadOnSearch: false,\r\n reloadOnUrl: false,\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"Learn About Yourself\",\r\n breadCrumb: \"Basic Skills Survey\"\r\n }\r\n }\r\n }, {\r\n url: \"/learn-about-yourself/transferable-skills-survey\",\r\n config: {\r\n templateUrl: \"/app/learnAboutYourself/transferableskillschecklist.html\",\r\n title: \"Transferable Skills Survey\",\r\n reloadOnSearch: false,\r\n reloadOnUrl: false,\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"Learn About Yourself\",\r\n breadCrumb: \"Transferable Skills Survey\"\r\n }\r\n }\r\n }, {\r\n url: \"/learn-about-yourself/the-career-key\",\r\n config: {\r\n templateUrl: \"/app/learnAboutYourself/theCareerKey.html\",\r\n title: \"The Career Key\",\r\n reloadOnSearch: false,\r\n reloadOnUrl: false,\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"Learn About Yourself\",\r\n breadCrumb: \"The Career Key\"\r\n }\r\n }\r\n }, {\r\n url: \"/learn-about-yourself/work-values-sorter\",\r\n config: {\r\n templateUrl: \"/app/learnAboutYourself/workvaluessorter.html\",\r\n title: \"Work Values Sorter\",\r\n reloadOnSearch: false,\r\n reloadOnUrl: false,\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"Learn About Yourself\",\r\n breadCrumb: \"Work Values Sorter\"\r\n }\r\n }\r\n }, {\r\n url: \"/learn-about-yourself/be-your-own-boss\",\r\n config: {\r\n templateUrl: \"/app/learnAboutYourself/beyourownboss.html\",\r\n title: \"Be Your Own Boss\",\r\n reloadOnSearch: false,\r\n reloadOnUrl: false,\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"Learn About Yourself\",\r\n breadCrumb: \"Be Your Own Boss\"\r\n }\r\n }\r\n }, {\r\n url: \"/learn-about-yourself/reality-check\",\r\n config: {\r\n templateUrl: \"/app/learnAboutYourself/realitycheck.html\",\r\n title: \"Reality Check\",\r\n reloadOnSearch: false,\r\n reloadOnUrl: false,\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"Learn About Yourself\",\r\n breadCrumb: \"Reality Check\"\r\n }\r\n }\r\n }, {\r\n url: \"/learn-about-yourself/skills-matcher\",\r\n config: {\r\n templateUrl: \"/app/learnAboutYourself/skillsmatcher.html\",\r\n title: \"Skills Matcher\",\r\n reloadOnSearch: false,\r\n reloadOnUrl: false,\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"Learn About Yourself\",\r\n breadCrumb: \"Skills Matcher\"\r\n }\r\n }\r\n },\r\n\r\n {\r\n url: \"/learnAboutYourself\",\r\n config: {\r\n templateUrl: \"/app/learnAboutYourself/assessments.html\",\r\n title: \"Learn About Yourself\",\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"Plan for a Career\",\r\n breadCrumb: \"Learn About Yourself\"\r\n }\r\n }\r\n }, {\r\n url: \"/learnAboutYourself/interest-profiler\",\r\n config: {\r\n templateUrl: \"/app/learnAboutYourself/interestprofiler.html\",\r\n title: \"Interest Profiler\",\r\n reloadOnSearch: false,\r\n reloadOnUrl: false,\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"Learn About Yourself\",\r\n breadCrumb: \"Interest Profiler\"\r\n }\r\n }\r\n }, {\r\n url: \"/learnAboutYourself/career-cluster-survey\",\r\n config: {\r\n templateUrl: \"/app/learnAboutYourself/careerclustersurvey.html\",\r\n title: \"Career Cluster Survey\",\r\n reloadOnSearch: false,\r\n reloadOnUrl: false,\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"Learn About Yourself\",\r\n breadCrumb: \"Career Cluster Survey\"\r\n }\r\n }\r\n }, {\r\n url: \"/learnAboutYourself/basic-skills-survey\",\r\n config: {\r\n templateUrl: \"/app/learnAboutYourself/basicskillssurvey.html\",\r\n title: \"Basic Skills Survey\",\r\n reloadOnSearch: false,\r\n reloadOnUrl: false,\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"Learn About Yourself\",\r\n breadCrumb: \"Basic Skills Survey\"\r\n }\r\n }\r\n }, {\r\n url: \"/learnAboutYourself/transferable-skills-survey\",\r\n config: {\r\n templateUrl: \"/app/learnAboutYourself/transferableskillschecklist.html\",\r\n title: \"Transferable Skills Survey\",\r\n reloadOnSearch: false,\r\n reloadOnUrl: false,\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"Learn About Yourself\",\r\n breadCrumb: \"Transferable Skills Survey\"\r\n }\r\n }\r\n }, {\r\n url: \"/learnAboutYourself/the-career-key\",\r\n config: {\r\n templateUrl: \"/app/learnAboutYourself/theCareerKey.html\",\r\n title: \"The Career Key\",\r\n reloadOnSearch: false,\r\n reloadOnUrl: false,\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"Learn About Yourself\",\r\n breadCrumb: \"The Career Key\"\r\n }\r\n }\r\n }, {\r\n url: \"/learnAboutYourself/work-values-sorter\",\r\n config: {\r\n templateUrl: \"/app/learnAboutYourself/workvaluessorter.html\",\r\n title: \"Work Values Sorter\",\r\n reloadOnSearch: false,\r\n reloadOnUrl: false,\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"Learn About Yourself\",\r\n breadCrumb: \"Work Values Sorter\"\r\n }\r\n }\r\n }, {\r\n url: \"/learnAboutYourself/be-your-own-boss\",\r\n config: {\r\n templateUrl: \"/app/learnAboutYourself/beyourownboss.html\",\r\n title: \"Be Your Own Boss\",\r\n reloadOnSearch: false,\r\n reloadOnUrl: false,\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"Learn About Yourself\",\r\n breadCrumb: \"Be Your Own Boss\"\r\n }\r\n }\r\n }, {\r\n url: \"/learnAboutYourself/reality-check\",\r\n config: {\r\n templateUrl: \"/app/learnAboutYourself/realitycheck.html\",\r\n title: \"Reality Check\",\r\n reloadOnSearch: false,\r\n reloadOnUrl: false,\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"Learn About Yourself\",\r\n breadCrumb: \"Reality Check\"\r\n }\r\n }\r\n }, {\r\n url: \"/learnAboutYourself/skills-matcher\",\r\n config: {\r\n templateUrl: \"/app/learnAboutYourself/skillsmatcher.html\",\r\n title: \"Skills Matcher\",\r\n reloadOnSearch: false,\r\n reloadOnUrl: false,\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"Learn About Yourself\",\r\n breadCrumb: \"Skills Matcher\"\r\n }\r\n }\r\n },\r\n \r\n\r\n // route for Human eSources assessments\r\n {\r\n url: \"/learnAboutYourself/:assessment\",\r\n config: {\r\n templateUrl: \"/app/learnAboutYourself/heSAssessments.html\",\r\n title: \"AchieveWorks Assessments\",\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"Learn About Yourself\",\r\n breadCrumb: \"AchieveWorks Assessments\"\r\n }\r\n }\r\n }, {\r\n url: \"/learn-about-yourself/:assessment\",\r\n config: {\r\n templateUrl: \"/app/learnAboutYourself/heSAssessments.html\",\r\n title: \"AchieveWorks Assessments\",\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"Learn About Yourself\",\r\n breadCrumb: \"AchieveWorks Assessments\"\r\n }\r\n }\r\n },\r\n\r\n\r\n {\r\n url: \"/recoverAccount/:option\",\r\n config: {\r\n templateUrl: \"/app/account/recoverAccount.html\",\r\n title: \"Recover Account\",\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"Home\",\r\n breadCrumb: \"Recover Account\"\r\n }\r\n }\r\n }, {\r\n url: \"/transcriptSchools\",\r\n config: {\r\n templateUrl: \"/app/transcriptSchools/transcriptSchools.html\",\r\n title: \"Schools That Provide e-Transcripts\",\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"College Application Resources\",\r\n breadCrumb: \"Schools That Provide e-Transcripts\"\r\n }\r\n }\r\n }, {\r\n url: \"/orders\",\r\n config: {\r\n templateUrl: \"/app/orders/submitorder.html\",\r\n title: \"Order Materials\",\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"Home\",\r\n breadCrumb: \"Order Materials\"\r\n }\r\n }\r\n }, {\r\n url: \"/careers/\",\r\n config: {\r\n templateUrl: \"/app/careers/careersearch.html\",\r\n title: \"Careers\",\r\n reloadOnSearch: false,\r\n reloadOnUrl: false,\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"Plan for a Career\",\r\n breadCrumb: \"Careers\"\r\n }\r\n }\r\n }, {\r\n url: \"/careers/:occupation\",\r\n config: {\r\n templateUrl: \"/app/careers/careerdetails.html\",\r\n title: \":occupation\",\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"Careers\",\r\n breadCrumb: \":occpuation\"\r\n }\r\n }\r\n }, {\r\n url: \"/programsMajors/\",\r\n config: {\r\n templateUrl: \"/app/exploreProgramsAndMajors/programsMajorsSearch.html\",\r\n title: \"Programs and Majors\",\r\n reloadOnSearch: false,\r\n reloadOnUrl: false,\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"Plan for College\",\r\n breadCrumb: \"Programs and Majors\"\r\n }\r\n }\r\n }, {\r\n url: \"/programsMajors/:program\",\r\n config: {\r\n templateUrl: \"/app/exploreProgramsAndMajors/programDetails.html\",\r\n title: \":program\",\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"Plan for College\",\r\n breadCrumb: \":program\"\r\n }\r\n }\r\n }, {\r\n url: \"/StudentEnrichment\",\r\n config: {\r\n templateUrl: \"/app/studentEnrichment/studentEnrichment.html\",\r\n title: \"Pre-College Enrichment Programs\",\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"Plan for College\",\r\n breadCrumb: \"Pre-College Enrichment Programs\"\r\n }\r\n }\r\n }, {\r\n url: \"/savedColleges\",\r\n config: {\r\n templateUrl: \"/app/collegePlanning/SavedColleges.html\",\r\n title: \"Saved Colleges\",\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"My Account\",\r\n breadCrumb: \"Saved Colleges\",\r\n showBreadcrumbs: false\r\n }\r\n }\r\n },{\r\n url: \"/savedPrograms\",\r\n config: {\r\n templateUrl: \"/app/exploreProgramsAndMajors/SavedProgramsMajors.html\",\r\n title: \"Saved Programs\",\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"My Account\",\r\n breadCrumb: \"Saved Programs\",\r\n showBreadcrumbs: false\r\n }\r\n }\r\n },{\r\n url: \"/sample\",\r\n config: {\r\n templateUrl: \"/app/sample.html\",\r\n title: \"sample\",\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n }\r\n }\r\n },\r\n // #endregion\r\n\r\n // #region redirect routes\r\n {\r\n url: \"/institutions/:institutionId/campusprofile\",\r\n config: {\r\n title: \"College Profile\",\r\n templateUrl: null,\r\n caseInsensitiveMatch: true,\r\n redirectTo: (params) => {\r\n return `/college-profile/${InstitutionMapper.getMap()[params.institutionId]}`\r\n },\r\n settings: {}\r\n }\r\n },\r\n\r\n // #endregion\r\n\r\n // #region external routes\r\n // The following routes exist for the use in breadcrumbs.\r\n {\r\n url: \"[umbraco]/plan-your-future/plan-for-college\",\r\n config: {\r\n templateUrl: null,\r\n title: \"Plan for College\",\r\n settings: {\r\n parent: \"Plan Your Future\",\r\n breadCrumb: \"Plan for College\"\r\n }\r\n }\r\n },\r\n {\r\n url: \"[umbraco]/plan-your-future\",\r\n config: {\r\n templateUrl: null,\r\n title: \"Plan Your Future\",\r\n settings: {\r\n parent: \"Home\",\r\n breadCrumb: \"Plan Your Future\"\r\n }\r\n }\r\n },\r\n {\r\n url: \"[umbraco]/plan-your-future/plan-for-a-career\",\r\n config: {\r\n templateUrl: null,\r\n title: \"Plan for a Career\",\r\n settings: {\r\n parent: \"Plan Your Future\",\r\n breadCrumb: \"Plan for a Career\"\r\n }\r\n }\r\n },\r\n {\r\n url: \"[umbraco]/pay-for-college\",\r\n config: {\r\n templateUrl: null,\r\n title: \"Pay for College\",\r\n settings: {\r\n parent: \"Home\",\r\n breadCrumb: \"Pay For College\"\r\n }\r\n }\r\n },\r\n {\r\n url: \"[umbraco]/save-for-college\",\r\n config: {\r\n templateUrl: null,\r\n title: \"Save for College\",\r\n settings: {\r\n parent: \"Home\",\r\n breadCrumb: \"Save for College\"\r\n }\r\n }\r\n },\r\n {\r\n url: \"[umbraco]/pay-for-college\",\r\n config: {\r\n templateUrl: null,\r\n title: \"Pay for College\",\r\n settings: {\r\n parent: \"Plan Your Future\",\r\n breadCrumb: \"Play for College\"\r\n }\r\n }\r\n },\r\n {\r\n url: \"[umbraco]/plan-your-future/planning-resources\",\r\n config: {\r\n templateUrl: null,\r\n title: \"Planning Resources\",\r\n settings: {\r\n parent: \"Plan Your Future\",\r\n breadCrumb: \"Planning Resources\"\r\n }\r\n }\r\n }, {\r\n url: \"[umbraco]/apply-to-college\",\r\n config: {\r\n templateUrl: null,\r\n title: \"Apply to College\",\r\n settings: {\r\n parent: \"Home\",\r\n breadCrumb: \"Apply to College\"\r\n }\r\n }\r\n }, {\r\n url: \"[umbraco]/apply-to-college/college-application-resources\",\r\n config: {\r\n templateUrl: null,\r\n title: \"College Application Resources\",\r\n settings: {\r\n parent: \"Apply to College\",\r\n breadCrumb: \"College Application Resources\"\r\n }\r\n }\r\n }, {\r\n url: \"[umbraco]/plan-your-future/plan-for-college/transfer-student-planner\",\r\n config: {\r\n templateUrl: null,\r\n title: \"Transfer Student Planner\",\r\n settings: {\r\n parent: \"Plan for College\",\r\n breadCrumb: \"Transfer Student Planner\"\r\n }\r\n }\r\n },\r\n {\r\n url: \"/exclusive/applicationLogin/:organization/:program/:appKey\",\r\n config: {\r\n templateUrl: \"/app/exclusive/login.html\",\r\n title: \"Log On\",\r\n caseInsensitiveMatch: true,\r\n settings: {}\r\n }\r\n },\r\n {\r\n url: \"/exclusive.html/applicationLogin/:organization/:program/:appKey\",\r\n config: {\r\n templateUrl: \"/app/exclusive/login.html\",\r\n title: \"Log On\",\r\n caseInsensitiveMatch: true,\r\n settings: {}\r\n }\r\n },\r\n {\r\n url:\"/externalContent\",\r\n config: {\r\n templateUrl: \"/app/externalContent/externalContent.html\",\r\n title: \"Text External Content\",\r\n caseInsensitiveMatch: true,\r\n settings: {}\r\n }\r\n },\r\n {\r\n url: \"/next-step/\",\r\n config: {\r\n templateUrl: \"/app/nextSteps/nextStepsOverview.html\",\r\n title: \"Next Step\",\r\n reloadOnSearch: false,\r\n reloadOnUrl: false,\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"Home\",\r\n breadCrumb: \"Next Step\"\r\n }\r\n }\r\n },\r\n {\r\n url: \"/next-step/students-and-parents\",\r\n config: {\r\n templateUrl: \"/app/nextSteps/nextStepsOverviewStudentsAndParents.html\",\r\n title: \"Next Step for Students & Parents/Guardians\",\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"Next Step\",\r\n breadCrumb: \"\"\r\n }\r\n }\r\n },\r\n {\r\n url: \"/next-step/educators\",\r\n config: {\r\n templateUrl: \"/app/nextSteps/nextStepsOverviewEducators.html\",\r\n title: \"Next Step for Educators\",\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"Next Step\",\r\n breadCrumb: \"\"\r\n }\r\n }\r\n },\r\n {\r\n url: \"/next-step/courses\",\r\n config: {\r\n templateUrl: \"/app/nextSteps/nextStepsLandingPage.html\",\r\n title: \"Next Step Courses\",\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"Next Step\",\r\n breadCrumb: \"Next Step Courses\"\r\n }\r\n }\r\n },\r\n {\r\n url: \"/next-step/:pathway\",\r\n config: {\r\n templateUrl: \"/app/nextSteps/nextStepsPathway.html\",\r\n title: \":pathway Pathway\",\r\n reloadOnSearch: false,\r\n reloadOnUrl: false,\r\n caseInsensitiveMatch: true,\r\n settings: {\r\n parent: \"Next Step Courses\",\r\n breadCrumb: \":pathway Pathway\"\r\n }\r\n }\r\n }, {\r\n url: \"/collegeConnect\",\r\n config: {\r\n templateUrl: \"/app/directAdmission/directAdmissions.html\",\r\n caseInsensitiveMatch: true,\r\n title: \"NC College Connect\",\r\n settings: {\r\n parent: \"Apply to College\",\r\n breadCrumb: \"NC College Connect\"\r\n }\r\n }\r\n }\r\n \r\n // #endregion\r\n ];\r\n\r\n return routes;\r\n }\r\n }\r\n\r\n \r\n\r\n class RouteConfigurator {\r\n\r\n constructor(private $routeProvider: ng.route.IRouteProvider, private routes: Array) {\r\n var config = new Config();\r\n routes.forEach((r: IRoute): void => {\r\n r.url = r.url.replace(\"[umbraco]\", config.umbracoUrl);\r\n\r\n $routeProvider.when(r.url, r.config);\r\n });\r\n \r\n\r\n $routeProvider.otherwise({ redirectTo: \"/\" });\r\n }\r\n }\r\n\r\n angular.module(\"app\").constant(\"routes\", Routes.getRoutes());\r\n angular.module(\"app\").config([\"$routeProvider\", \"routes\", ($routeProvider, routes) =>\r\n new RouteConfigurator($routeProvider, routes)\r\n ]);\r\n} ","/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n\r\n export class Config implements IConfig {\r\n appErrorPrefix: string;\r\n docTitle: string;\r\n version: string;\r\n apiHost: string;\r\n crossroadsUrl: string;\r\n crossroadsApiUrl: string;\r\n authCookieName: string;\r\n rdsUrl: string;\r\n public environment: string;\r\n public cfncUrl: string;\r\n public transitionsUrl: string;\r\n public javaUrl: string;\r\n public umbracoUrl: string;\r\n public authHost: string;\r\n public residencyUrl: string;\r\n public updateAddressAtLogin: boolean;\r\n public updateEmailAtLogin: boolean;\r\n public updatePasswordAtLogin: boolean;\r\n public cfncAddressError: boolean;\r\n public cfncEmailError: boolean;\r\n homeRedirect: boolean;\r\n public newPhoneNumbersEnabled: string;\r\n public phoneNumberInvalid: boolean;\r\n public ncassistUrl: string;\r\n public ncassistDevUrl: string;\r\n public ncCareersUrl: string;\r\n public hesEnvironment: string;\r\n public nextStepTypeFormId: string;\r\n\r\n events: IEvents = {\r\n controllerActivateSuccess: \"controller.activateSuccess\",\r\n spinnerToggle: \"spinner.toggle\",\r\n login: \"authentication.login\",\r\n logout: \"authentication.logout\",\r\n register: \"authentication.register\",\r\n reloadUser: \"authentication.reloadUser\"\r\n };\r\n\r\n constructor() {\r\n this.apiHost = \"https://localhost:44316\";\r\n this.crossroadsUrl = \"https://localhost:44389\";\r\n this.crossroadsApiUrl = \"https://localhost:44353\";\r\n this.appErrorPrefix = \"[CFNC Error] \"; // configure the exceptionHandler decorator\r\n this.docTitle = \"College Foundation For North Carolina - \";\r\n this.version = \"1.0.0\";\r\n this.cfncUrl = \"https://localhost:44302\";\r\n this.javaUrl = \"https://test9.cfnc.org\";\r\n this.umbracoUrl = \"https://localhost:44384\";\r\n this.authHost = \"https://localhost:44373\";\r\n this.transitionsUrl = \"https://test1.cfnc.org\";\r\n this.residencyUrl = \"https://testncresidency.cfnc.org/residencyInfo/\";\r\n this.authCookieName = \".CfncIdentityLocal\";\r\n this.updateAddressAtLogin = true;\r\n this.updateEmailAtLogin = true;\r\n this.homeRedirect = false;\r\n this.newPhoneNumbersEnabled = \"npne-false\";\r\n this.ncassistUrl = \"https://testncassist.cfnc.org\";\r\n this.ncassistDevUrl = \"https://local.cfnc.org:8443\";\r\n this.ncCareersUrl = \"https://dev1.nc-cis.cloud\"\r\n this.hesEnvironment = \"[hes-environment]\";\r\n this.nextStepTypeFormId = \"rNMdAwPI\";\r\n\r\n toastr.options.timeOut = 4000;\r\n toastr.options.positionClass = \"toast-bottom-right\";\r\n }\r\n }\r\n\r\n var app: ng.IModule = angular.module(\"app\");\r\n var cfncConfig = new Config();\r\n\r\n app.value(\"config\", cfncConfig);\r\n\r\n\r\n // #region Configure the common services via commonConfig\r\n app.config([\"$httpProvider\", \"$logProvider\", \"$locationProvider\", \"commonConfigProvider\", \"KeepaliveProvider\", \"IdleProvider\", ($httpProvider, $logProvider: ng.ILogProvider, $locationProvider: ng.ILocationProvider, cfg: ICommonProvider, KeepaliveProvider, IdleProvider): void => {\r\n // turn debugging off/on (no info or warn)\r\n if ($logProvider.debugEnabled) {\r\n $logProvider.debugEnabled(true);\r\n }\r\n\r\n $locationProvider\r\n .html5Mode(true);\r\n\r\n cfg.config.controllerActivateSuccessEvent = cfncConfig.events.controllerActivateSuccess;\r\n cfg.config.spinnerToggleEvent = cfncConfig.events.spinnerToggle;\r\n cfg.config.debug = true;\r\n\r\n cfg.config.login = cfncConfig.events.login;\r\n cfg.config.logout = cfncConfig.events.logout;\r\n cfg.config.register = cfncConfig.events.register;\r\n cfg.config.reloadUser = cfncConfig.events.reloadUser;\r\n\r\n cfg.config.apiHost = cfncConfig.apiHost;\r\n cfg.config.xapHost = cfncConfig.transitionsUrl;\r\n cfg.config.homeUrl = cfncConfig.umbracoUrl;\r\n $httpProvider.interceptors.push(ResponseInterceptor.serviceId);\r\n\r\n IdleProvider.idle(1800);\r\n IdleProvider.timeout(120);\r\n }]);\r\n // #endregion\r\n\r\n //#region Configure the Restangular Service\r\n app.config([\"RestangularProvider\", (RestangularProvider: Restangular.IProvider) => {\r\n RestangularProvider.setBaseUrl(cfncConfig.apiHost);\r\n }]);\r\n //#endregion\r\n\r\n app.config([\"$uibModalProvider\", ($modalProvider: ng.ui.bootstrap.IModalProvider) => {\r\n $modalProvider.options.backdrop = \"static\";\r\n }]);\r\n\r\n app.config([\"uiGmapGoogleMapApiProvider\", (uiGmapGoogleMapApiProvider) => {\r\n uiGmapGoogleMapApiProvider.key = \"AIzaSyCxW80cb72fjK5k4dHND0QdfZ1uuvqIK-4\";\r\n }]);\r\n} ","namespace Cfnc {\r\n 'use strict'\r\n\r\n export class InstitutionMapper {\r\n static getMap() {\r\n var map = {\r\n 8923: \"Alamance-Community-College\",\r\n 5145: \"Appalachian-State-University\",\r\n 5192: \"Asheville--Buncombe-Technical-Community-College\",\r\n 5213: \"Barton-College\",\r\n 5296: \"Beaufort-County-Community-College\",\r\n 5309: \"Belmont-Abbey-College\",\r\n 5319: \"Bennett-College\",\r\n 5380: \"Bladen-Community-College\",\r\n 5394: \"Blue-Ridge-Community-College\",\r\n 5427: \"Brevard-College\",\r\n 5458: \"Brunswick-Community-College\",\r\n 7227: \"Cabarrus-College-of-Health-Sciences\",\r\n 5487: \"Caldwell-Community-College-and-Technical-Institute\",\r\n 5534: \"Campbell-University\",\r\n 5547: \"Cape-Fear-Community-College\",\r\n 5570: \"Carteret-Community-College\",\r\n 5578: \"Catawba-College\",\r\n 5579: \"Catawba-Valley-Community-College\",\r\n 5608: \"Central-Carolina-Community-College\",\r\n 5629: \"Central-Piedmont-Community-College\",\r\n 5678: \"Chowan-University\",\r\n 5763: \"Cleveland-Community-College\",\r\n 5775: \"Coastal-Carolina-Community-College\",\r\n 5845: \"College-of-The-Albemarle\",\r\n 5992: \"Craven-Community-College\",\r\n 6040: \"Davidson-College\",\r\n 6041: \"Davidson-County-Community-College\",\r\n 6146: \"Duke-University\",\r\n 6151: \"Durham-Technical-Community-College\",\r\n 6160: \"East-Carolina-University\",\r\n 6215: \"Edgecombe-Community-College\",\r\n 6233: \"Elizabeth-City-State-University\",\r\n 6243: \"Elon-University\",\r\n 6317: \"Fayetteville-State-University\",\r\n 6318: \"Fayetteville-Technical-Community-College\",\r\n 6370: \"Forsyth-Technical-Community-College\",\r\n 6425: \"Gardner--Webb-University\",\r\n 6429: \"Gaston-College\",\r\n 6515: \"Greensboro-College\",\r\n 6533: \"Guilford-College\",\r\n 6534: \"Guilford-Technical-Community-College\",\r\n 6545: \"Halifax-Community-College\",\r\n 6582: \"Haywood-Community-College\",\r\n 6636: \"High-Point-University\",\r\n 6859: \"Isothermal-Community-College\",\r\n 6916: \"James-Sprunt-Community-College\",\r\n 1631: \"9 Johnson-&-Wales-University\",\r\n 6951: \"Johnson-C.-Smith-University\",\r\n 6954: \"Johnston-Community-College\",\r\n 7138: \"Lees--McRae-College\",\r\n 7144: \"Lenoir--Rhyne-University\",\r\n 7143: \"Lenoir-Community-College\",\r\n 7185: \"Livingstone-College\",\r\n 7226: \"Louisburg-College\",\r\n 7328: \"Mars-Hill-University\",\r\n 7331: \"Martin-Community-College\",\r\n 7366: \"Mayland-Community-College\",\r\n 7373: \"McDowell-Technical-Community-College\",\r\n 7418: \"Meredith-College\",\r\n 7431: \"Methodist-University\",\r\n 7538: \"Mitchell-Community-College\",\r\n 7569: \"Montgomery-Community-College\",\r\n 7570: \"Montreat-College\",\r\n 7642: \"Nash-Community-College\",\r\n 7790: \"North-Carolina-Agricultural-and-Technical-State-University\",\r\n 7791: \"North-Carolina-Central-University\",\r\n 7794: \"North-Carolina-State-University\",\r\n 7795: \"North-Carolina-Wesleyan-College\",\r\n 8048: \"Pamlico-Community-College\",\r\n 8121: \"Pfeiffer-University\",\r\n 8145: \"Piedmont-Community-College\",\r\n 8166: \"Pitt-Community-College\",\r\n 8223: \"Queens-University-of-Charlotte\",\r\n 8252: \"Randolph-Community-College\",\r\n 8304: \"Richmond-Community-College\",\r\n 8318: \"Roanoke--Chowan-Community-College\",\r\n 8325: \"Robeson-Community-College\",\r\n 8332: \"Rockingham-Community-College\",\r\n 8347: \"Rowan--Cabarrus-Community-College\",\r\n 8400: \"Saint-Augustine's-University\",\r\n 8504: \"Salem-College\",\r\n 8514: \"Sampson-Community-College\",\r\n 8521: \"Sandhills-Community-College\",\r\n 8618: \"Shaw-University\",\r\n 5128: \"South-Piedmont-Community-College\",\r\n 8687: \"Southeastern-Community-College\",\r\n 8770: \"Southwestern-Community-College\",\r\n 8394: \"St.-Andrews-University\",\r\n 8806: \"Stanly-Community-College\",\r\n 8888: \"Surry-Community-College\",\r\n 9010: \"Tri--County-Community-College\",\r\n 7608: \"University-of-Mount-Olive\",\r\n 9312: \"University-of-North-Carolina-Asheville\",\r\n 9313: \"University-of-North-Carolina-at-Chapel-Hill\",\r\n 9314: \"University-of-North-Carolina-at-Charlotte\",\r\n 9315: \"University-of-North-Carolina-at-Greensboro\",\r\n 8080: \"University-of-North-Carolina-at-Pembroke\",\r\n 7793: \"University-of-North-Carolina-School-of-the-Arts\",\r\n 9316: \"University-of-North-Carolina-Wilmington\",\r\n 9507: \"Vance--Granville-Community-College\",\r\n 9556: \"Wake-Forest-University\",\r\n 9557: \"Wake-Technical-Community-College\",\r\n 9573: \"Warren-Wilson-College\",\r\n 9597: \"Wayne-Community-College\",\r\n 9630: \"Western-Carolina-University\",\r\n 9648: \"Western-Piedmont-Community-College\",\r\n 9720: \"Wilkes-Community-College\",\r\n 8077: \"William-Peace-University\",\r\n 9740: \"Wilson-Community-College\",\r\n 9742: \"Wingate-University\",\r\n 9747: \"Winston--Salem-State-University\",\r\n\r\n }\r\n\r\n return map;\r\n }\r\n\r\n }\r\n\r\n angular.module(\"app\").constant(\"institutionMapper\", InstitutionMapper.getMap());\r\n}","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IResetPasswordWithTokenScope extends ng.IScope {\r\n vm: PasswordResetWithToken\r\n };\r\n\r\n interface IPasswordResetRouteParams extends angular.route.IRouteParamsService {\r\n email: string;\r\n token: string;\r\n }\r\n interface IResetPasswordWithToken {\r\n\r\n\r\n }\r\n\r\n class PasswordResetWithToken implements IResetPasswordWithToken {\r\n static controllerId: string = \"passwordResetWithToken\";\r\n static $inject: Array = [\"$scope\", \"common\", \"$location\", \"$routeParams\", \"Restangular\", \"config\"];\r\n\r\n log: (msg, data?, showToast?) => void;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n\r\n newPassword: string;\r\n confirmPassword: string;\r\n email: string;\r\n token: string;\r\n baseUrl: string;\r\n authHost: string;\r\n success: boolean = false;\r\n saving: boolean = false;\r\n\r\n constructor(private $scope: IResetPasswordWithTokenScope,\r\n private common: ICommonFactory,\r\n private $location: ng.ILocationService,\r\n private $routeParams: IPasswordResetRouteParams,\r\n private Restangular: Restangular.IService,\r\n private config: IConfig\r\n ) {\r\n this.log = common.logger.getLogFn(PasswordResetWithToken.controllerId);\r\n this.logError = common.logger.getLogFn(PasswordResetWithToken.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(PasswordResetWithToken.controllerId, \"success\");\r\n\r\n this.email = angular.copy(this.$routeParams.email);\r\n this.token = angular.copy(this.$routeParams.token);\r\n this.baseUrl = encodeURIComponent(config.umbracoUrl);\r\n console.log(encodeURIComponent(config.umbracoUrl));\r\n console.log(this.baseUrl);\r\n this.authHost = config.authHost;\r\n\r\n this.$location.search(\"email\", null);\r\n this.$location.search(\"token\", null);\r\n }\r\n\r\n activate() {\r\n this.common.activateController([], PasswordResetWithToken.controllerId).then(() => {\r\n this.log(\"Activated ResetPasswordWithToken View\");\r\n });\r\n }\r\n\r\n resetPassword = () => {\r\n var data = {\r\n email: this.email,\r\n token: this.token,\r\n newPassword: this.newPassword\r\n }\r\n this.saving = true;\r\n\r\n this.Restangular.all(\"account\").all(\"resetPasswordWithToken\").post(data).then((result) => {\r\n this.logSuccess(\"Password reset successfully.\", null, false);\r\n this.success = true;\r\n this.saving = false;\r\n }, (reason) => {\r\n this.logError(\"An error occurred resetting your password\", reason, true);\r\n this.saving = false;\r\n });\r\n };\r\n }\r\n\r\n angular.module(\"app\").controller(PasswordResetWithToken.controllerId, PasswordResetWithToken);\r\n}","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IRecoverAccountScope extends ng.IScope {\r\n vm: RecoverAccount;\r\n recoverUsername: ng.IFormController;\r\n }\r\n\r\n interface IRecoverAccount {\r\n tabs: Array;\r\n step: number;\r\n username: string;\r\n email: string;\r\n securityQuestion: string;\r\n securityAnswer: string;\r\n recoveryOption: number;\r\n recoverPassword: IRecoverPassword;\r\n recoverUsername: IRecoverUsername;\r\n passwordResetAccounts: Array\r\n errors: Array;\r\n passwordResetAccountId: string;\r\n }\r\n\r\n interface IRecoverPassword {\r\n securityAnswer: string;\r\n username: string;\r\n lastName: string;\r\n newPassword: string;\r\n confirmPassword: string;\r\n }\r\n \r\n interface IRecoverUsername {\r\n securityAnswer: string;\r\n firstName: string;\r\n lastName: string;\r\n email: string;\r\n }\r\n\r\n interface IPasswordResetAccount {\r\n id: number;\r\n firstName: string;\r\n lastName: string;\r\n salutation: string;\r\n }\r\n \r\n class RecoverAccount implements IRecoverAccount {\r\n static controllerId: string = \"recoverAccount\";\r\n static $inject: Array = [\"$scope\", \"$timeout\", \"common\", \"Restangular\", \"$routeParams\", \"$location\"];\r\n log: (msg, data?, showToast?) => void;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n tabs: Array;\r\n step: number = 1;\r\n username: string;\r\n email: string;\r\n securityQuestion: string;\r\n securityAnswer: string;\r\n recoverPassword: IRecoverPassword;\r\n recoveryOption: number;\r\n recoverUsername: IRecoverUsername;\r\n errors: Array = [];\r\n passwordResetAccounts: Array;\r\n passwordResetAccountId: string;\r\n passwordResetAccount: any;\r\n\r\n\r\n constructor(\r\n private $scope: IRecoverAccountScope,\r\n private $timeout: ng.ITimeoutService,\r\n private common: ICommonFactory,\r\n private Restangular: Restangular.IService,\r\n private $routeParams,\r\n private $location: ng.ILocationService) {\r\n\r\n common.authentication.redirectAuthenticated(\"/\");\r\n this.log = common.logger.getLogFn(RecoverAccount.controllerId);\r\n this.logError = common.logger.getLogFn(RecoverAccount.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(RecoverAccount.controllerId, \"success\");\r\n\r\n var option: string = $routeParams[\"option\"];\r\n if (option) {\r\n switch (option.toLowerCase()) {\r\n case \"forgotpassword\":\r\n this.recoveryOption = 1;\r\n break;\r\n case \"forgotaccountname\":\r\n this.recoveryOption = 2;\r\n break;\r\n case \"requestpasswordreset\":\r\n this.recoveryOption = 3;\r\n break;\r\n }\r\n }\r\n\r\n this.activate();\r\n \r\n }\r\n\r\n activate() {\r\n var promises = [];\r\n this.common.activateController(promises, RecoverAccount.controllerId)\r\n .then(() => {\r\n this.log(\"Activated RecoverAccount View\");\r\n });\r\n }\r\n\r\n getSecurityQuestion = () => {\r\n this.errors = [];\r\n switch (this.recoveryOption) {\r\n case 1:\r\n this.Restangular.all(\"Account/GetSecurityQuestion/ForgotPassword\").post(this.recoverPassword)\r\n .then((result) => {\r\n this.securityQuestion = result;\r\n this.step = 2;\r\n }, (reason) => {\r\n if (reason.status == 404) {\r\n this.errors = [];\r\n this.errors.push(\"Your account was not found, or the information you entered is inaccurate.\");\r\n this.logError(this.errors, reason, true);\r\n }\r\n });\r\n break;\r\n case 2:\r\n case 3:\r\n this.Restangular.all(\"Account/GetSecurityQuestion/ForgotUsername\").post(this.recoverUsername)\r\n .then((result) => {\r\n this.securityQuestion = result;\r\n this.step = 2;\r\n }, (reason) => {\r\n if (reason.status == 404) {\r\n this.errors = [];\r\n this.errors.push(\"Your account was not found, or the information you entered is inaccurate.\");\r\n this.logError(this.errors, reason, true);\r\n }\r\n });\r\n break;\r\n }\r\n\r\n\r\n \r\n };\r\n\r\n recoverAccount = () => {\r\n switch (this.recoveryOption) {\r\n case 1:\r\n this.recoverPassword.securityAnswer = this.securityAnswer;\r\n this.Restangular.all(\"account/ResetPassword\").post(this.recoverPassword)\r\n .then((result) => {\r\n this.step = 3;\r\n }, (reason) => {\r\n if (reason.status == 400) {\r\n this.getErrors(reason.data.modelState);\r\n this.logError(this.errors, reason, true);\r\n\r\n }\r\n else {\r\n this.logError(reason, reason, true);\r\n }\r\n });\r\n break;\r\n\r\n case 2:\r\n this.recoverUsername.securityAnswer = this.securityAnswer;\r\n this.Restangular.all(\"account/RecoverUsername\").post(this.recoverUsername)\r\n .then((result) => {\r\n this.username = result;\r\n this.step = 3;\r\n\r\n }, (reason) => {\r\n if (reason.status == 400) {\r\n this.getErrors(reason.data.modelState);\r\n this.logError(this.errors, reason, true);\r\n }\r\n else {\r\n this.logError(reason, reason, true);\r\n }\r\n \r\n });\r\n break;\r\n default:\r\n break;\r\n\r\n \r\n }\r\n\r\n };\r\n\r\n selectRecoveryOption = (option: number) => {\r\n this.recoveryOption = option;\r\n this.errors = [];\r\n };\r\n\r\n \r\n getErrors = (modelState: any) => {\r\n this.errors = [];\r\n for (var key in modelState) {\r\n this.errors.push(modelState[key][0]);\r\n };\r\n };\r\n\r\n getPasswordResetAccounts = () => {\r\n this.Restangular.all(\"users\").one(\"PasswordResetAccounts\", this.username).get()\r\n .then((result) => {\r\n this.passwordResetAccounts = result;\r\n this.step = 2;\r\n }, (reason) => {\r\n if (reason.status == 400) {\r\n this.getErrors(reason.data.modelState);\r\n this.logError(this.errors, reason, true);\r\n }\r\n else if (reason.status == 404) {\r\n this.logError(\"Your account was not found, or the information you entered is inaccurate.\", reason, true);\r\n }\r\n else {\r\n this.logError(reason, reason, true);\r\n }\r\n \r\n });\r\n \r\n\r\n };\r\n \r\n sendResetRequest = () => {\r\n var model = {\r\n accountId: parseInt(this.passwordResetAccountId),\r\n username: this.username\r\n };\r\n\r\n this.Restangular.all(\"users/sendPasswordResetRequest\").post(model)\r\n .then((result) => {\r\n this.step = 3;\r\n this.passwordResetAccount = _.find(this.passwordResetAccounts, (p) => {\r\n return p.id == parseInt(this.passwordResetAccountId);\r\n });\r\n }, (reason) => {\r\n this.logError(reason, reason, true);\r\n });\r\n\r\n };\r\n\r\n\r\n \r\n }\r\n\r\n angular.module(\"app\").controller(RecoverAccount.controllerId, RecoverAccount);\r\n}","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n\r\n class SignInRedirectCallBack {\r\n static controllerId: string = \"signInRedirectCallBack\";\r\n static $inject: Array = [\"common\"];\r\n constructor(private common: ICommonFactory) {\r\n common.authentication.completeLogin().then(user => {\r\n common.authentication.redirectAuthenticated(null, true);\r\n });\r\n }\r\n }\r\n angular.module(\"app\").controller(SignInRedirectCallBack.controllerId, SignInRedirectCallBack);\r\n}","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n\r\n class SignOutRedirectCallBack {\r\n static controllerId: string = \"signOutRedirectCallBack\";\r\n static $inject: Array = [\"$window\", \"common\", \"config\"];\r\n message: string;\r\n\r\n constructor(private $window: ng.IWindowService, private common: ICommonFactory, private config: IConfig) {\r\n this.message = \"Signing Out...\";\r\n common.authentication.completeLogout().then(user => {\r\n if (this.$window.location != this.$window.parent.location) {\r\n this.$window.parent.postMessage(\"Cfnc\", \"*\");\r\n this.message = \"Signed Out\";\r\n } else {\r\n $window.location.href = config.umbracoUrl;\r\n }\r\n });\r\n }\r\n }\r\n angular.module(\"app\").controller(SignOutRedirectCallBack.controllerId, SignOutRedirectCallBack);\r\n}","namespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IActivitiesInterestsScope extends ng.IScope {\r\n vm: ActivitiesInterests;\r\n dateOptions: any;\r\n endDateOptions: any;\r\n }\r\n\r\n interface IActivitiesInterests {\r\n }\r\n\r\n class ActivitiesInterests implements IActivitiesInterests {\r\n static controllerId: string = \"activitiesInterests\";\r\n static $inject: Array = [\"$location\", \"common\", \"Restangular\", \"$scope\", \"$uibModal\", \"$http\", \"$document\", \"config\", \"helper\"];\r\n private log;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n pdfButtonDisable: boolean;\r\n emailButtonDisable: boolean;\r\n show: string;\r\n isSaving: boolean;\r\n maxDate: Date;\r\n minDate: Date;\r\n opened: boolean;\r\n startOpen: boolean;\r\n endOpen: boolean;\r\n expList: any;\r\n actList: any;\r\n serviceList: any;\r\n healthList: any;\r\n awardList: any;\r\n leadList: any;\r\n networkList: any;\r\n projectList: any;\r\n\r\n editExpList: any;\r\n editActList: any;\r\n editServiceList: any;\r\n editHealthList: any;\r\n editAwardList: any;\r\n editLeadList: any;\r\n editNetworkList: any;\r\n editProjectList: any;\r\n projectSkills: any;\r\n projectSubjects: any;\r\n comments: any;\r\n\r\n constructor(private $location: ng.ILocationService,\r\n private common: ICommonFactory,\r\n private Restangular: Restangular.IService,\r\n private $scope: IActivitiesInterestsScope,\r\n private $uibModal: ng.ui.bootstrap.IModalService,\r\n private $http: any,\r\n private $document: ng.IDocumentService,\r\n private config: IConfig,\r\n private helper: IHelper) {\r\n\r\n this.log = common.logger.getLogFn(ActivitiesInterests.controllerId);\r\n this.logError = common.logger.getLogFn(ActivitiesInterests.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(ActivitiesInterests.controllerId, \"success\");\r\n this.opened = false;\r\n this.show = 'Experiences';\r\n this.maxDate = new Date();\r\n this.minDate = new Date(1899, 12);\r\n $scope.dateOptions = {\r\n showWeeks: false,\r\n maxDate: this.maxDate\r\n };\r\n $scope.endDateOptions = {\r\n showWeeks: false,\r\n };\r\n\r\n this.projectSubjects = [\r\n { id: \"1\", name: \"Business\" },\r\n { id: \"2\", name: \"English Language Arts\" },\r\n { id: \"3\", name: \"Fine Art\" },\r\n { id: \"4\", name: \"Foreign Language\" },\r\n { id: \"5\", name: \"Math\" },\r\n { id: \"6\", name: \"Music\" },\r\n { id: \"7\", name: \"Physical Education\" },\r\n { id: \"8\", name: \"Science\" },\r\n { id: \"9\", name: \"Social Studies\" },\r\n { id: \"10\", name: \"Technical Specialty\" }\r\n ]\r\n\r\n this.projectSkills = [\r\n { id: \"1\", name: \"Active Learning\" },\r\n { id: \"2\", name: \"Active Listening\" },\r\n { id: \"3\", name: \"Complex Problem Solving\" },\r\n { id: \"4\", name: \"Coordination\" },\r\n { id: \"5\", name: \"Critical Thinking\" },\r\n { id: \"6\", name: \"Instructing\" },\r\n { id: \"7\", name: \"Learning Strategies\" },\r\n { id: \"8\", name: \"Mathematics\" },\r\n { id: \"9\", name: \"Monitoring\" },\r\n { id: \"10\", name: \"Negotiation\" },\r\n { id: \"11\", name: \"Operation Monitoring\" },\r\n { id: \"12\", name: \"Operations Analysis\" },\r\n { id: \"13\", name: \"Persuasion\" },\r\n { id: \"14\", name: \"Reading Comprehension\" },\r\n { id: \"15\", name: \"Science\" },\r\n { id: \"16\", name: \"Service Orientation\" },\r\n { id: \"17\", name: \"Speaking\" },\r\n { id: \"18\", name: \"Social Perceptiveness\" },\r\n { id: \"19\", name: \"Writing\" },\r\n ]\r\n\r\n this.activate();\r\n }\r\n\r\n activate() {\r\n var promises = [];\r\n this.common.activateController(promises, ActivitiesInterests.controllerId)\r\n .then(() => {\r\n this.log(\"Activated Activities and Interests View\");\r\n this.getActivities();\r\n });\r\n }\r\n\r\n getActivities() {\r\n this.Restangular.one(\"ActivitiesInterests/getActivitiesInterests\").get().then((results) => {\r\n this.comments = results;\r\n this.expList = results.experiences;\r\n this.actList = results.activities;\r\n this.serviceList = results.communityServices;\r\n this.healthList = results.healthActivities;\r\n this.awardList = results.awardsDistinctions;\r\n this.leadList = results.leadershipExperiences;\r\n this.networkList = results.networking;\r\n this.projectList = results.projects;\r\n\r\n this.editExpList = _.cloneDeep(results.experiences);\r\n this.editActList = _.cloneDeep(results.activities);\r\n this.editServiceList = _.cloneDeep(results.communityServices);\r\n this.editHealthList = _.cloneDeep(results.healthActivities);\r\n this.editAwardList = _.cloneDeep(results.awardsDistinctions);\r\n this.editLeadList = _.cloneDeep(results.leadershipExperiences);\r\n this.editNetworkList = _.cloneDeep(results.networking);\r\n this.editProjectList = _.cloneDeep(results.projects);\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n }\r\n\r\n fixSingleDate(editItem: any) {\r\n if(editItem.date != null)\r\n editItem.date = moment(editItem.date).toDate();\r\n }\r\n\r\n fixMultiDate(editItem: any) {\r\n editItem.dateStart = moment(editItem.dateStart).toDate();\r\n if(editItem.dateEnd != null)\r\n editItem.dateEnd = moment(editItem.dateEnd).toDate();\r\n }\r\n\r\n checkDate(editItem: any) {\r\n console.log(moment(editItem.date).toDate());\r\n }\r\n\r\n saveExperience(experience: any) {\r\n this.Restangular.all(\"ActivitiesInterests/AddExperience\").post(experience).then((results) => {\r\n experience.edit = false;\r\n experience.id = results;\r\n this.expList = _.cloneDeep(this.editExpList);\r\n this.logSuccess(\"Experience Saved.\", \"\", true);\r\n }, (reason) => {\r\n console.error(reason);\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n saveActivity(activity: any) {\r\n this.Restangular.all(\"ActivitiesInterests/AddActivity\").post(activity).then((results) => {\r\n this.logSuccess(\"Activity Saved.\", \"\", true);\r\n activity.id = results;\r\n activity.edit = false;\r\n this.actList = _.cloneDeep(this.editActList);\r\n }, (reason) => {\r\n console.error(reason);\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n saveCommunityService(service: any) {\r\n this.Restangular.all(\"ActivitiesInterests/AddCommunityService\").post(service).then((results) => {\r\n this.logSuccess(\"Community Service saved.\", \"\", true);\r\n service.id = results;\r\n service.edit = false;\r\n this.serviceList = _.cloneDeep(this.editServiceList);\r\n }, (reason) => {\r\n console.error(reason);\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n savePhysicalHealth(health: any) {\r\n this.Restangular.all(\"ActivitiesInterests/AddPhysicalHealth\").post(health).then((results) => {\r\n this.logSuccess(\"Phyiscal Health saved.\", \"\", true);\r\n health.id = results;\r\n health.edit = false;\r\n this.healthList = _.cloneDeep(this.editHealthList);\r\n }, (reason) => {\r\n console.error(reason);\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n saveAward(award: any) {\r\n this.Restangular.all(\"ActivitiesInterests/AddAward\").post(award).then((results) => {\r\n this.logSuccess(\"Award saved.\", \"\", true);\r\n award.id = results;\r\n award.edit = false;\r\n this.awardList = _.cloneDeep(this.editAwardList);\r\n }, (reason) => {\r\n console.error(reason);\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n saveLeadership(lead: any) {\r\n this.Restangular.all(\"ActivitiesInterests/AddLeadership\").post(lead).then((results) => {\r\n this.logSuccess(\"Award saved.\", \"\", true);\r\n lead.id = results;\r\n lead.edit = false;\r\n this.leadList = _.cloneDeep(this.editLeadList);\r\n }, (reason) => {\r\n console.error(reason);\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n saveNetwork(network: any) {\r\n this.Restangular.all(\"ActivitiesInterests/AddNetwork\").post(network).then((results) => {\r\n this.logSuccess(\"Award saved.\", \"\", true);\r\n network.id = results;\r\n network.edit = false;\r\n this.networkList = _.cloneDeep(this.editNetworkList);\r\n }, (reason) => {\r\n console.error(reason);\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n saveProject(project) {\r\n this.Restangular.all(\"ActivitiesInterests/AddProject\").post(project).then((results) => {\r\n this.logSuccess(\"Award saved.\", \"\", true);\r\n project.id = results;\r\n project.edit = false;\r\n this.projectList = _.cloneDeep(this.editProjectList);\r\n }, (reason) => {\r\n console.error(reason);\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n delete(id: any, section: any, editList: any, originalList: any, index: number) {\r\n var interest = { id: id, interestType: section };\r\n this.Restangular.all(\"ActivitiesInterests/DeleteInterest\").post(interest).then((results) => {\r\n editList.splice(index, 1);\r\n originalList = _.cloneDeep(editList);\r\n this.logSuccess(\"Item Deleted.\", \"\", true);\r\n }, (reason) => {\r\n console.error(reason);\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n newExp = (): void => {\r\n var startExp = { id: 0, expName: '', expType: '', expLocation: '', expDesc: '', expDate: null, edit: true };\r\n this.editExpList.unshift(startExp);\r\n };\r\n\r\n newActivity = (): void => {\r\n var startAct = { id: 0, actName: '', actType: '', actHoursWeek: null, actWeeksYear: null, actDesc: '', actDateStart: null, actDateEnd: null, actContinue: false, edit: true };\r\n this.editActList.unshift(startAct);\r\n };\r\n\r\n newService = (): void => {\r\n var startAct = { id: 0, name: '', type: '', hoursWeek: null, description: '', reflection: '', contact: '', dateStart: null, dateEnd: null, edit: true };\r\n this.editServiceList.unshift(startAct);\r\n };\r\n\r\n newHealth = (): void => {\r\n var startHealth = { id: 0, name: '', date: null, description: '', frequency: '', reflection: '', edit: true };\r\n this.editHealthList.unshift(startHealth);\r\n };\r\n\r\n newAward = (): void => {\r\n var startHealth = { id: 0, description: '', frequency: '', level: '', name: '', reflection: '', relation: '', Date: null, edit: true };\r\n this.editAwardList.unshift(startHealth);\r\n };\r\n\r\n newLead = (): void => {\r\n var startHealth = { id: 0, name: '', relation: '', level: '', dateStart: null, dateEnd: null, description: '', edit: true };\r\n this.editLeadList.unshift(startHealth);\r\n };\r\n\r\n newNetwork = (): void => {\r\n var startHealth = { id: 0, name: '', relation: '', email: '', description: '', edit: true };\r\n this.editNetworkList.unshift(startHealth);\r\n };\r\n\r\n newProject = (): void => {\r\n var startHealth = { id: 0, Name: '', Description: '', Advisors: '', Date: null, Tools: '', Skills: [], Subjects: [], edit: true }\r\n this.editProjectList.unshift(startHealth);\r\n };\r\n\r\n cancelEdit = (editArray: any, originalArray: any, itemToRemove: any, index: number): void => {\r\n if (itemToRemove.id != 0) {\r\n itemToRemove.edit = false;\r\n var original = originalArray[index];\r\n angular.copy(original, itemToRemove);\r\n } else {\r\n editArray.splice(index, 1);\r\n };\r\n };\r\n\r\n fixTestDate(editTest: any) {\r\n editTest.date = moment(editTest.date).toDate();\r\n }\r\n\r\n removeFromList(listObject: any, index: any) {\r\n listObject.splice(index, 1);\r\n }\r\n\r\n print = ($event) => {\r\n this.pdfButtonDisable = true;\r\n var location: any = window.location;\r\n var headHtml = \"\";\r\n $(this.$document[0][\"head\"]).children(\"link\").each((i: number, l: any) => {\r\n headHtml += l.outerHTML;\r\n });\r\n var html = \"\" + headHtml + \"\" + $event.currentTarget.parentElement.parentElement.innerHTML + \"\";\r\n this.helper.openFile(this.config.apiHost + \"/pdf/download\", { html: encodeURIComponent(html), url: location.origin }).then(() => {\r\n this.pdfButtonDisable = false;\r\n });\r\n\r\n };\r\n\r\n email = ($event) => {\r\n this.emailButtonDisable = true;\r\n var location: any = window.location;\r\n var headHtml = \"\";\r\n $(this.$document[0][\"head\"]).children(\"link\").each((i: number, l: any) => {\r\n headHtml += l.outerHTML;\r\n });\r\n var html = \"\" + headHtml + \"\" + $event.currentTarget.parentElement.parentElement.innerHTML + \"\";\r\n this.Restangular.all(\"pdf\").all(\"email\").post({ html: encodeURIComponent(html), url: location.origin })\r\n .then((response) => {\r\n this.emailButtonDisable = false;\r\n this.logSuccess(\"Email has been sent to the email address associated with your CFNC profile.\", \"Email has been sent to the email address associated with your CFNC profile.\", true);\r\n }, (reason) => {\r\n console.log(reason);\r\n this.logError(\"There was a problem sending your email. Please try again later.\", reason, true);\r\n }, (state) => {\r\n });\r\n }\r\n }\r\n\r\n angular.module(\"app\").controller(ActivitiesInterests.controllerId, ActivitiesInterests);\r\n}","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IAppHubScope extends ng.IScope {\r\n vm: AppHub;\r\n }\r\n\r\n interface IAppHub {\r\n expanded: boolean;\r\n applications: Array;\r\n crossroadsUrl: string;\r\n apiHost: string;\r\n transcripts: Array;\r\n getUserApplicationsTryCount: number;\r\n }\r\n\r\n class AppHub implements IAppHub {\r\n static controllerId: string = \"appHub\";\r\n static $inject: Array = [\"$scope\",\r\n \"$window\",\r\n \"applicationsDataService\",\r\n \"transcriptDataService\",\r\n \"$uibModal\",\r\n \"common\",\r\n \"config\",\r\n \"Restangular\",\r\n \"Upload\",\r\n \"$http\",\r\n \"$location\",\r\n \"$document\",\r\n \"$interval\",\r\n \"Idle\",\r\n \"helper\"\r\n ];\r\n private log;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n expanded: boolean;\r\n applications: Array;\r\n crossroadsUrl: string;\r\n apiHost: string;\r\n transcripts: Array;\r\n getUserApplicationsTryCount: number = 0;\r\n errorGettingApplications: boolean = false;\r\n printing: any;\r\n emailing: any;\r\n refreshing: boolean = false;\r\n alerts: Array = [];\r\n childWindows: Array = [];\r\n timer: any = 0;\r\n userInfo: IUserInfoView;\r\n apphubNotification: any;\r\n\r\n constructor(private $scope: ng.IScope,\r\n private $window: ng.IWindowService,\r\n private applicationsDataService: IApplicationsDataService,\r\n private transcriptDataService: ITranscriptDataService,\r\n private $uibModal: ng.ui.bootstrap.IModalService,\r\n private common: ICommonFactory,\r\n private config: IConfig,\r\n private Restangular: Restangular.IService,\r\n private Upload,\r\n private $http: any,\r\n private $location: ng.ILocationService,\r\n private $document: ng.IDocumentService,\r\n private $interval: ng.IIntervalService,\r\n private Idle,\r\n private helper: IHelper) {\r\n this.common.authentication.authenticate(true).then(result => {\r\n if (result) {\r\n this.log = common.logger.getLogFn(AppHub.controllerId);\r\n this.logError = common.logger.getLogFn(AppHub.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(AppHub.controllerId, \"success\");\r\n\r\n\r\n this.common.authentication.isLoggedIn().then(loggedIn => {\r\n if (loggedIn) {\r\n this.userInfo = this.common.authentication.user;\r\n this.activate();\r\n this.expanded = false;\r\n this.crossroadsUrl = config.crossroadsUrl;\r\n this.apiHost = config.apiHost;\r\n }\r\n });\r\n\r\n\r\n\r\n }\r\n });\r\n\r\n \r\n $scope.$on('$destroy', function () {\r\n Idle.watch();\r\n });\r\n\r\n //$scope.$on(config.events.logout, (event) => {\r\n // this.common.authentication.authenticate(true);\r\n //});\r\n }\r\n\r\n activate() {\r\n var promises = [];\r\n this.common.activateController(promises, AppHub.controllerId)\r\n .then(() => {\r\n this.getAppHubNotification()\r\n this.refreshing = true;\r\n this.getUserApplications();\r\n\r\n this.log(\"Activated AppHub View\");\r\n\r\n });\r\n }\r\n\r\n getUserApplications() {\r\n this.applications = null;\r\n this.applicationsDataService.getUserApplications().then((data) => {\r\n this.applications = data.applications;\r\n this.refreshing = false;\r\n }, (reason) => {\r\n if (this.getUserApplicationsTryCount < 2) {\r\n this.getUserApplicationsTryCount += 1;\r\n this.getUserApplications();\r\n\r\n }\r\n else {\r\n this.errorGettingApplications = true;\r\n console.log(reason);\r\n this.refreshing = false;\r\n }\r\n });\r\n }\r\n\r\n openTranscriptActivity(transcriptStatus, orgName) {\r\n var data = {\r\n firstName: this.common.authentication.user.firstName,\r\n lastName: this.common.authentication.user.lastName,\r\n studentId: transcriptStatus[0].studentId,\r\n transcriptStatus: transcriptStatus,\r\n organizationName: orgName\r\n };\r\n console.log(this.common.authentication.user);\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/apphub/transcriptActivityModal.html',\r\n controller: 'transcriptActivityModal',\r\n size: 'xl',\r\n resolve: {\r\n data: function () { return data; }\r\n }\r\n });\r\n }\r\n\r\n openTranscriptMessage() {\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/apphub/transcriptmessagemodal.html',\r\n controller: 'transcriptMessageModal',\r\n });\r\n }\r\n\r\n openStartApp() {\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/apphub/startnewappmodal.html',\r\n controller: 'startNewAppModal',\r\n size: 'lg',\r\n backdrop: 'static',\r\n });\r\n\r\n modalInstance.result\r\n .then(() => { this.log(\"update apphub data to reflect new apps\"); });\r\n }\r\n\r\n viewApp = (selectedApp) => {\r\n var appWindow;\r\n if (selectedApp.userApplication.completed) {\r\n appWindow = this.$window.open(this.config.crossroadsUrl + \"/application/completed/\" + selectedApp.userApplication.id, \"_blank\");\r\n } else {\r\n this.Restangular.one(\"Prospect/\" + selectedApp.userApplication.applicationDefinitionId).one(\"isRecruited\").get().then((results) => {\r\n if (!results) {\r\n this.Restangular.all(\"Prospect/addRecruiter\").post({ applicationDefinitionId: selectedApp.userApplication.applicationDefinitionId, source: \"Application\" })\r\n .then((results) => {\r\n console.log(results);\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n }\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n\r\n appWindow = this.$window.open(this.config.crossroadsUrl + \"/\" + selectedApp.viewUrl, \"_blank\");\r\n }\r\n\r\n this.addChildWindow(appWindow);\r\n };\r\n\r\n addChildWindow = (appWindow) => {\r\n this.childWindows.push(appWindow);\r\n if (this.timer == 0) {\r\n console.log(\"timer started\");\r\n this.Idle.unwatch();\r\n this.timer = this.$interval(this.checkWindow, 1000, 0, true);\r\n }\r\n };\r\n\r\n completionPercent(application) {\r\n var completed = 0;\r\n var total = 2;\r\n if (application.transcriptStatus.length > 0 && application.transcriptStatus[0].dateRequested && application.transcriptStatus[0].status != 'Failed') {\r\n completed += 1;\r\n }\r\n\r\n if (application.userApplication.completed) {\r\n completed += 1;\r\n\r\n if (application.userApplication.tasks) {\r\n application.userApplication.tasks.forEach(function (task) {\r\n total += 1;\r\n if (task.completed) {\r\n completed += 1;\r\n }\r\n });\r\n }\r\n } else {\r\n total += application.applicationTasks.length;\r\n }\r\n\r\n return (completed / total) * 100;\r\n }\r\n\r\n completionDisplay(application) {\r\n var completed = 0;\r\n var total = 0;\r\n\r\n if (application.hasApplication) {\r\n total += 1;\r\n }\r\n\r\n if (application.canReceiveTranscripts) {\r\n total += 1;\r\n }\r\n\r\n \r\n if (application.transcriptStatus.length > 0 && application.transcriptStatus[0].dateRequested && application.transcriptStatus[0].status != 'Failed') {\r\n completed += 1;\r\n }\r\n\r\n if (application.userApplication.completed) {\r\n completed += 1;\r\n\r\n if (application.userApplication.tasks) {\r\n application.userApplication.tasks.forEach(function (task) {\r\n total += 1;\r\n if (task.completed) {\r\n completed += 1;\r\n }\r\n });\r\n }\r\n } else {\r\n total += application.applicationTasks.length;\r\n }\r\n\r\n return `${completed}/${total}`;\r\n }\r\n\r\n deleteApplication(appId) {\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/appHub/confirmRemoveModal.html',\r\n size: 'md',\r\n controller: 'ConfirmRemoveModal',\r\n });\r\n\r\n modalInstance.result.then((val: boolean) => {\r\n this.Restangular.one(\"application\", appId).one(\"remove\").remove().then(\r\n (response) => {\r\n this.getUserApplications();\r\n }, (reason) => {\r\n console.log(reason);\r\n });\r\n });\r\n\r\n\r\n }\r\n\r\n inviteCounselor(userApplicationId, taskId) {\r\n var data = {\r\n userApplicationId: userApplicationId,\r\n taskId: taskId\r\n };\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/appHub/inviteThirdPartyModal.html',\r\n size: 'md',\r\n controller: 'InviteThirdPartyModal',\r\n resolve: {\r\n data: function () { return data; }\r\n }\r\n });\r\n\r\n modalInstance.result.then((val: boolean) => {\r\n this.getUserApplications();\r\n });\r\n }\r\n\r\n upload = (id, taskId, files) => {\r\n var self = this;\r\n if (files.length > 0) {\r\n this.Upload.upload({\r\n url: this.config.apiHost + \"/application/\" + id + \"/\" + taskId + \"/attachment\",\r\n method: \"POST\",\r\n file: files[0]\r\n }).success((data, status, headers, config) => {\r\n this.addAlert(\"success\", \"File uploaded successfully\", id);\r\n var application = _.find(self.applications, (application: any) => {\r\n return application.userApplication.id == id;\r\n });\r\n\r\n var task = _.find(application.userApplication.tasks, (task: any) => {\r\n return task.applicationTaskId == taskId;\r\n });\r\n\r\n task.completedDate = new Date();\r\n task.attachment = \"/application/attachments/\" + id + \"/\" + taskId;\r\n if (task.applicationTask.uploadCompletesTask) {\r\n task.completed = true;\r\n }\r\n\r\n }).error((data, status, headers, config) => {\r\n this.addAlert(\"alert\", \"File upload failed\", id);\r\n });\r\n }\r\n\r\n };\r\n\r\n requestTranscript = (appid) => {\r\n sessionStorage.setItem('transcriptRequest.appid', appid);\r\n this.$location.path(\"apphub/requesttranscript\");\r\n };\r\n\r\n print = ($event, application) => {\r\n application.printing = true;\r\n var location: any = window.location;\r\n var headHtml = \"\";\r\n $(this.$document[0][\"head\"]).children(\"link\").each((i: number, l: any) => {\r\n headHtml += l.outerHTML;\r\n });\r\n var html = \"\" + headHtml + \"\" + $($($event.target).parents(\".card-content\")[0]).find(\"h4\").parent().html() + $($event.target).parents(\".app-info\")[0].innerHTML + \"\";\r\n this.helper.openFile(this.config.apiHost + \"/pdf/download\", { html: encodeURIComponent(html), url: location.origin }).then(() => {\r\n application.printing = false;\r\n });\r\n\r\n };\r\n\r\n openFile = (attachmentUrl) => {\r\n this.helper.openFile(attachmentUrl);\r\n };\r\n\r\n email = ($event, application) => {\r\n application.emailing = true;\r\n var location: any = window.location;\r\n var headHtml = \"\";\r\n $(this.$document[0][\"head\"]).children(\"link\").each((i: number, l: any) => {\r\n headHtml += l.outerHTML;\r\n });\r\n var html = \"\" + headHtml + \"\" + $($($event.target).parents(\".card-content\")[0]).find(\"h4\").parent().html() + $($event.target).parents(\".app-info\")[0].innerHTML + \"\";\r\n this.Restangular.all(\"pdf\").all(\"email\").post({ html: encodeURIComponent(html), url: location.origin })\r\n .then((response) => {\r\n application.emailing = false;\r\n this.logSuccess(\"Email has been sent to the email address associated with your CFNC profile.\", \"Email has been sent to the email address associated with your CFNC profile.\", true);\r\n }, (reason) => {\r\n application.emailing = false;\r\n this.logError(\"There was a problem sending your email. Please try again later\", reason, true);\r\n }, (state) => {\r\n application.emailing = false;\r\n });\r\n }\r\n\r\n completeTask = (id, taskId) => {\r\n var self = this;\r\n this.Restangular.one(\"application\").one(id).one(taskId).one(\"completed\").get().then(\r\n (response) => {\r\n var application = _.find(self.applications, (application: any) => {\r\n return application.userApplication.id == id;\r\n });\r\n\r\n var task = _.find(application.userApplication.tasks, (task: any) => {\r\n return task.applicationTaskId == taskId;\r\n });\r\n\r\n task.completedDate = new Date();\r\n task.completed = true;\r\n },\r\n (reason) => {\r\n console.log(reason);\r\n this.addAlert(\"danger\", \"An error occurred. Please try again later.\", id);\r\n });\r\n };\r\n\r\n uncompleteTask = (id, taskId) => {\r\n var self = this;\r\n this.Restangular.one(\"application\").one(id).one(taskId).one(\"uncompleted\").get().then(\r\n (response) => {\r\n var application = _.find(self.applications, (application: any) => {\r\n return application.userApplication.id == id;\r\n });\r\n\r\n var task = _.find(application.userApplication.tasks, (task: any) => {\r\n return task.applicationTaskId == taskId;\r\n });\r\n\r\n task.completedDate = null;\r\n task.completed = false;\r\n },\r\n (reason) => {\r\n console.log(reason);\r\n this.addAlert(\"danger\", \"An error occurred. Please try again later.\", id);\r\n });\r\n };\r\n\r\n addAlert = (alertType, message, applicationDefinitionId) => {\r\n this.alerts.push({ type: alertType, message: message, applicationDefinitionId: applicationDefinitionId });\r\n }\r\n\r\n closeAlert = (index) => {\r\n this.alerts.splice(index, 1);\r\n }\r\n\r\n checkWindow = () => {\r\n for (var win = 0; win < this.childWindows.length; win++) {\r\n if (!this.childWindows[win]) {\r\n this.childWindows.splice(win, 1);\r\n }\r\n else if (this.childWindows[win].closed) {\r\n this.childWindows.splice(win, 1);\r\n this.activate();\r\n }\r\n }\r\n\r\n if (this.childWindows.length == 0) {\r\n this.$interval.cancel(this.timer);\r\n this.timer = 0;\r\n this.Idle.watch();\r\n }\r\n }\r\n\r\n getAppHubNotification(): angular.IPromise {\r\n return this.Restangular.withConfig(config => {\r\n config.setBaseUrl(this.config.umbracoUrl);\r\n }).one(\"api/sitenotifications\").get({targets: \"apphub\"})\r\n .then(result => {\r\n if (result && result.message) {\r\n this.apphubNotification = result;\r\n }\r\n }, error => {\r\n this.logError(error);\r\n });\r\n }\r\n }\r\n\r\n angular.module(\"app\").controller(AppHub.controllerId, AppHub);\r\n}","namespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IConfirmRemoveModalScope extends ng.IScope {\r\n close: () => void;\r\n remove: () => void;\r\n }\r\n\r\n interface IConfirmRemoveModal {\r\n\r\n }\r\n\r\n \r\n\r\n class ConfirmRemoveModal implements IConfirmRemoveModal {\r\n static $inject: Array = [\"$uibModalInstance\", \"common\", \"$scope\"];\r\n static controllerId: string = \"ConfirmRemoveModal\";\r\n private log;\r\n constructor(private $uibModalInstance: ng.ui.bootstrap.IModalServiceInstance, private common: ICommonFactory, private $scope: IConfirmRemoveModalScope) {\r\n this.log = common.logger.getLogFn(ConfirmRemoveModal.controllerId);\r\n $scope.close = () => this.close();\r\n $scope.remove = () => this.remove();\r\n }\r\n\r\n close() {\r\n this.$uibModalInstance.dismiss();\r\n }\r\n\r\n remove() {\r\n this.$uibModalInstance.close(true);\r\n }\r\n\r\n \r\n }\r\n\r\n angular.module(\"app\").controller(ConfirmRemoveModal.controllerId, ConfirmRemoveModal);\r\n} ","/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IFileUploadModalScope extends ng.IScope {\r\n close: () => void;\r\n upload: () => void;\r\n data: IData;\r\n file: any;\r\n }\r\n\r\n interface IFileUploadModal {\r\n \r\n }\r\n\r\n interface IData { type: string; id: number; }\r\n\r\n class FileUploadModal implements IFileUploadModal{\r\n static controllerId: string = \"fileUploadModal\";\r\n private log;\r\n constructor(private $uibModalInstance: ng.ui.bootstrap.IModalServiceInstance, private common: ICommonFactory, private $scope: IFileUploadModalScope, private $resource: ng.resource.IResourceService, data: IData, private $upload, private config: IConfig) {\r\n this.log = common.logger.getLogFn(FileUploadModal.controllerId);\r\n $scope.close = () => this.close();\r\n $scope.upload = () => this.upload();\r\n $scope.data = data;\r\n }\r\n\r\n close() {\r\n this.$uibModalInstance.dismiss();\r\n \r\n }\r\n\r\n upload() {\r\n this.$upload.upload({\r\n url: this.config.apiHost + \"/application/\" + this.$scope.data.id + \"/attachment\",\r\n method: \"POST\",\r\n file: this.$scope.file\r\n });\r\n console.log(this.$scope.data);\r\n }\r\n\r\n \r\n }\r\n\r\n angular.module(\"app\").controller(FileUploadModal.controllerId, [\"$uibModalInstance\", \"common\", \"$scope\", \"$resource\", \"data\", \"$upload\", \"config\", ($uibModalInstance: ng.ui.bootstrap.IModalServiceInstance, common: ICommonFactory, $scope, $resource, data: IData, $upload, config: IConfig) =>\r\n new FileUploadModal($uibModalInstance, common, $scope, $resource, data, $upload, config)\r\n ]);\r\n}\r\n","/// \r\nnamespace Cfnc {\r\n interface IImportantMessageModalScope extends ng.IScope {\r\n close: () => void;\r\n messages: Array;\r\n }\r\n\r\n interface IImportantMessageModal {\r\n\r\n }\r\n\r\n class ImportantMessageModal implements IImportantMessageModal {\r\n static controllerId: string = \"importantMessageModal\";\r\n\r\n constructor(private $uibModalInstance: ng.ui.bootstrap.IModalServiceInstance, private common: ICommonFactory, private $scope: IImportantMessageModalScope) {\r\n $scope.close = () => this.close();\r\n $scope.messages = [];\r\n this.getMessages();\r\n }\r\n\r\n close() {\r\n this.$uibModalInstance.dismiss();\r\n }\r\n\r\n getMessages() {\r\n //this.$scope.messages.push(\"If you graduated in summer 2012 or before, you will need to contact your high school directly to request a transcript. Please note this is a temporary process change for electronic transcripts until NC DPI migrates historical data from NC WISE to PowerSchool.\");\r\n }\r\n }\r\n\r\n angular.module(\"app\").controller(ImportantMessageModal.controllerId, [\"$uibModalInstance\", \"common\", \"$scope\", ($uibModal: ng.ui.bootstrap.IModalServiceInstance, common: ICommonFactory, $scope) =>\r\n new ImportantMessageModal($uibModal, common, $scope)\r\n ]);\r\n}","namespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IInviteThirdPartyModalScope extends ng.IScope {\r\n close: () => void;\r\n send: () => void;\r\n thirdPartyEmail: string;\r\n firstName: string;\r\n lastName: string;\r\n crmId: number;\r\n }\r\n\r\n interface IInviteThirdPartyModal {\r\n\r\n }\r\n\r\n\r\n\r\n class InviteThirdPartyModal implements IInviteThirdPartyModal {\r\n static $inject: Array = [\"$uibModalInstance\", \"common\", \"$scope\", \"$timeout\", \"data\", \"Restangular\"];\r\n static controllerId: string = \"InviteThirdPartyModal\";\r\n private log;\r\n constructor(private $uibModalInstance: ng.ui.bootstrap.IModalServiceInstance, private common: ICommonFactory, private $scope: IInviteThirdPartyModalScope, private $timeout: ng.ITimeoutService,\r\n private data: any,\r\n private Restangular: Restangular.IService) {\r\n this.log = common.logger.getLogFn(InviteThirdPartyModal.controllerId);\r\n $scope.close = () => this.close();\r\n $scope.send = () => this.send();\r\n }\r\n\r\n close() {\r\n this.$uibModalInstance.dismiss();\r\n }\r\n\r\n send() {\r\n var self = this;\r\n var params = {\r\n thirdPartyEmail: this.$scope.thirdPartyEmail,\r\n firstName: this.$scope.firstName,\r\n lastName: this.$scope.lastName,\r\n crmId: this.common.authentication.user.primaryConnection\r\n }\r\n this.Restangular.one(\"application\").one(this.data.userApplicationId).one(this.data.taskId).one(\"thirdparty\").get(params).then(\r\n (response) => {\r\n this.$timeout(() => { this.$uibModalInstance.close(true); }, 2000);\r\n\r\n },\r\n (reason) => {\r\n console.log(reason);\r\n this.$uibModalInstance.close(true);\r\n });\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n angular.module(\"app\").controller(InviteThirdPartyModal.controllerId, InviteThirdPartyModal);\r\n} ","/// \r\nnamespace Cfnc {\r\n interface IRequestTranscriptScope extends ng.IScope {\r\n vm: RequestTranscript;\r\n }\r\n\r\n interface IRequestTranscript {\r\n user: any;\r\n participatingApplications: Array;\r\n limitSchools: number;\r\n importantMessagesExist: boolean;\r\n requestStarted: boolean;\r\n requestSent: boolean;\r\n checkedCount: number;\r\n schoolChanged: boolean;\r\n schoolIsValid: boolean;\r\n saveUserAlerts: Array;\r\n sendTranscriptResults: Array;\r\n }\r\n\r\n class UserProfile implements IUserProfile {\r\n addressVerified: boolean;\r\n associatedSchools: Array;\r\n comments: Array;\r\n customer: ICustomerViewModel;\r\n dateOfBirth: string;\r\n daytimePhone: string;\r\n email: string;\r\n enrollmentStatus: number;\r\n eveningPhone: string;\r\n firstName: string;\r\n fromServer: boolean;\r\n gender: number;\r\n graduationYear: number;\r\n id: number;\r\n lastName: string;\r\n mailAddress: IAddress;\r\n mailingPhone: string;\r\n middleName: string;\r\n nickname: string;\r\n permAddress: IAddress;\r\n phoneNumber: string;\r\n primaryConnectionCrmId: number;\r\n role: number;\r\n socialSecurityNumber: string;\r\n studentId: string;\r\n suffix: string;\r\n userContactInfo: any;\r\n username: string;\r\n mobilePhone: string;\r\n homePhone: string;\r\n workPhone: string;\r\n emailInvalid: boolean;\r\n addressInvalid: boolean;\r\n phoneNumberInvalid: boolean;\r\n passwordInvalid: boolean;\r\n textingOptIns: ITextingOptIns;\r\n emailIsValid?: boolean;\r\n emailVerified?: boolean;\r\n emailSignature: string;\r\n tin: string;\r\n }\r\n\r\n interface ISendTranscriptResult {\r\n applicationId: string;\r\n status: string;\r\n message: string;\r\n }\r\n\r\n interface IParticipatingApplication {\r\n applicationId: string;\r\n ceeb: string;\r\n name: string;\r\n sendTranscriptResult: ISendTranscriptResult;\r\n checked: boolean;\r\n }\r\n\r\n class RequestTranscript implements IRequestTranscript {\r\n static controllerId: string = \"requestTranscript\";\r\n static $inject: Array = [\"$scope\", \"$uibModal\", \"common\", \"$timeout\", \"transcriptDataService\", \"Restangular\", \"config\"];\r\n private log;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n user: any;\r\n participatingApplications: Array = [];\r\n limitSchools: number = 15;\r\n importantMessagesExist: boolean;\r\n requestStarted: boolean = false\r\n requestSent: boolean = false;\r\n requestSuccess: boolean = false;\r\n checkedCount: number = 0;\r\n schoolChanged: boolean = false;\r\n schoolIsValid: boolean = true;\r\n saveUserAlerts: Array = [];\r\n maxDate = new Date();\r\n gender: string;\r\n originalEmail: string;\r\n sendTranscriptResults: Array;\r\n savingUserProfile: boolean = false;\r\n transcriptRequestNotification: any;\r\n\r\n constructor(private $scope: IRequestTranscriptScope,\r\n private $uibModal: ng.ui.bootstrap.IModalService,\r\n private common: ICommonFactory,\r\n private $timeout: ng.ITimeoutService,\r\n private transcriptDataService: ITranscriptDataService,\r\n private Restangular: Restangular.IService,\r\n private config: IConfig) {\r\n\r\n this.common.authentication.authenticate(true).then(result => {\r\n if (result) {\r\n this.log = common.logger.getLogFn(RequestTranscript.controllerId);\r\n this.logSuccess = common.logger.getLogFn(RequestTranscript.controllerId, \"success\");\r\n this.logError = common.logger.getLogFn(RequestTranscript.controllerId, \"error\");\r\n this.activate();\r\n\r\n\r\n transcriptDataService.getParticipatingApplications().then((data) => {\r\n var appid = sessionStorage.getItem(\"transcriptRequest.appid\");\r\n this.participatingApplications = data;\r\n\r\n var selectedApp = _.find(this.participatingApplications, (p) => {\r\n return p.applicationId == appid;\r\n });\r\n\r\n if (selectedApp) {\r\n selectedApp.checked = true;\r\n }\r\n\r\n sessionStorage.removeItem(\"transcriptRequest.appid\");\r\n });\r\n\r\n this.importantMessagesExist = false;\r\n\r\n if (this.importantMessagesExist) {\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/apphub/importantMessageModal.html',\r\n controller: 'importantMessageModal',\r\n });\r\n }\r\n }\r\n });\r\n\r\n $scope.$on(config.events.logout, (event) => {\r\n this.common.authentication.authenticate(true);\r\n });\r\n }\r\n\r\n activate() {\r\n var promises = [];\r\n this.common.activateController(promises, RequestTranscript.controllerId)\r\n .then(() => {\r\n this.getTranscriptRequestNotification();\r\n this.log(\"Activated StartNewApp View\");\r\n });\r\n\r\n this.Restangular.one(\"users/profile\").get()\r\n .then((result) => {\r\n if (result) {\r\n this.user = result;\r\n this.gender = this.user.gender.toString();\r\n if (this.user.customer) {\r\n this.isSchoolValid(this.user.customer.ceeb_code);\r\n }\r\n else {\r\n this.schoolIsValid = false;\r\n this.user.customer = { name: \"My School or Program is not listed\"}\r\n }\r\n this.originalEmail = this.user.email;\r\n }\r\n }, (reason) => {\r\n this.logError(reason);\r\n });\r\n\r\n\r\n\r\n }\r\n\r\n\r\n request() {\r\n var cnt = 1;\r\n this.requestStarted = true;\r\n var selectedApplications = _.map(_.filter(this.participatingApplications, function (a) { return a.checked; }), \"applicationId\");\r\n var transcriptRequest: TranscriptRequest = { ceeb: this.user.customer.ceeb_code, userId: this.user.id, applicationIds: selectedApplications };\r\n\r\n this.transcriptDataService.requestTranscript(transcriptRequest).then((response: Array) => {\r\n this.requestSent = true;\r\n this.requestStarted = false;\r\n this.requestSuccess = true;\r\n this.sendTranscriptResults = response;\r\n\r\n response.forEach((result) => {\r\n _.find(this.participatingApplications, { applicationId: result.applicationId }).sendTranscriptResult = result;\r\n });\r\n },\r\n (reason) => {\r\n this.requestSuccess = false;\r\n this.requestStarted = false;\r\n });\r\n }\r\n\r\n reset() {\r\n this.participatingApplications.forEach((school) => {\r\n school.checked = false;\r\n school.sendTranscriptResult = null;\r\n });\r\n this.requestSent = false;\r\n this.requestStarted = false;\r\n this.requestSuccess = false;\r\n this.checkedCount = 0;\r\n }\r\n\r\n isRequestSuccessful(applicationId: string): boolean {\r\n var result = _.find(this.sendTranscriptResults, { applicationId: applicationId });\r\n\r\n return result.status == \"Success\";\r\n }\r\n\r\n getRequestMessage(applicationId: string): string {\r\n var result = _.find(this.sendTranscriptResults, { applicationId: applicationId });\r\n return result.message;\r\n }\r\n\r\n saveUserProfile(form: ng.IFormController) {\r\n this.savingUserProfile = true;\r\n this.user.addressVerified = true;\r\n this.user.gender = parseInt(this.gender);\r\n this.user.permAddress = null;\r\n this.user.mailAddress = null;\r\n\r\n this.Restangular.all(\"users/profile/save\").customPUT(this.user)\r\n .then((result) => {\r\n form.$setPristine();\r\n this.schoolChanged = false;\r\n this.log(\"User Updated\");\r\n //this.common.authentication.refreshToken(true).then((result) => {\r\n // this.log(\"Token Refreshed\", result, false);\r\n //}, (reason) => {\r\n // this.log(\"Error Refreshing token\", reason, false);\r\n //});\r\n this.saveUserAlerts.push({ type: \"success\", msg: \"User information saved successfully.\" });\r\n this.savingUserProfile = false;\r\n }, (reason) => {\r\n this.logError(\"An error occurred saving the user profile\", reason, false);\r\n if (reason.status == 400 && reason.data.modelState && reason.data.modelState.exception) {\r\n var message = \"An error occurred while saving your information.\";\r\n reason.data.modelState.exception.forEach((exception) => {\r\n message = message + \" \" + exception;\r\n });\r\n this.saveUserAlerts.push({ type: \"danger\", msg: message });\r\n }\r\n else {\r\n this.saveUserAlerts.push({ type: \"danger\", msg: \"An error occurred while saving your information. Please try again later.\" });\r\n } \r\n this.savingUserProfile = false;\r\n });\r\n }\r\n\r\n openTranscriptMessage() {\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/apphub/transcriptmessagemodal.html',\r\n controller: 'transcriptMessageModal',\r\n size: 'lg'\r\n });\r\n }\r\n\r\n checkChanged(checked) {\r\n if (checked) {\r\n this.checkedCount += 1;\r\n }\r\n else {\r\n this.checkedCount -= 1;\r\n }\r\n }\r\n\r\n change = (selectedSchool) => {\r\n if (selectedSchool.ceeb_code != null) {\r\n this.isSchoolValid(selectedSchool.ceeb_code);\r\n }\r\n else {\r\n this.schoolIsValid = false;\r\n }\r\n this.user.primaryConnectionCrmId = selectedSchool.crmId\r\n this.schoolChanged = true;\r\n };\r\n\r\n isSchoolValid = (ceeb: number) => {\r\n this.Restangular.one(\"highschools/isparticipatinghighschool\", ceeb).get().then((results) => {\r\n this.schoolIsValid = results;\r\n\r\n }, (reason) => {\r\n this.logError(\"An error occurred validating the selected school\", reason, false);\r\n this.schoolIsValid = false;\r\n });\r\n\r\n };\r\n\r\n\r\n closeAlert = (index: number) => {\r\n this.saveUserAlerts.splice(index, 1);\r\n }\r\n\r\n getTranscriptRequestNotification(): angular.IPromise {\r\n return this.Restangular.withConfig(config => {\r\n config.setBaseUrl(this.config.umbracoUrl);\r\n }).one(\"api/sitenotifications\").get({ targets: \"transcript request\" })\r\n .then(result => {\r\n if (result && result.message) {\r\n this.transcriptRequestNotification = result;\r\n }\r\n }, error => {\r\n this.logError(\"An error occurred getting the site notifications.\", error, false);\r\n });\r\n }\r\n\r\n }\r\n\r\n angular.module(\"app\").controller(RequestTranscript.controllerId, RequestTranscript);\r\n\r\n}","/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface ITranscriptActivityModalScope extends ng.IScope {\r\n close;\r\n openTranscript: (transcriptId) => void;\r\n cancelRequest: (transactionId) => void;\r\n confirmCancel: (confirm) => void;\r\n canCancel: (dateRequested: Date) => boolean;\r\n transcriptStatus: Array;\r\n firstName: string;\r\n lastName: string;\r\n studentId: string;\r\n organizationName: string;\r\n }\r\n\r\n interface ITranscriptActivityModal {\r\n\r\n }\r\n\r\n interface ITranscriptStatus {\r\n transactionId: number;\r\n dateCompleted?: Date;\r\n dateOfLastAttempt?: Date;\r\n dateRequested: Date;\r\n releaseDate?: Date;\r\n inProgress: boolean;\r\n transcriptType: string;\r\n status: string;\r\n applicationId: string;\r\n transcriptId: number;\r\n userStartedApp: boolean;\r\n busy: boolean;\r\n hasBeenExported: boolean;\r\n cancelBusy: boolean;\r\n }\r\n\r\n class TranscriptActivityModal implements ITranscriptActivityModal {\r\n static controllerId: string = \"transcriptActivityModal\";\r\n private log;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n constructor(private $uibModal: ng.ui.bootstrap.IModalService,\r\n private $uibModalInstance: ng.ui.bootstrap.IModalServiceInstance,\r\n private common: ICommonFactory,\r\n private $scope: ITranscriptActivityModalScope,\r\n private $resource: ng.resource.IResourceService, data: any,\r\n private Restangular: Restangular.IService) {\r\n this.log = common.logger.getLogFn(TranscriptActivityModal.controllerId);\r\n this.logError = common.logger.getLogFn(TranscriptActivityModal.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(TranscriptActivityModal.controllerId, \"success\");\r\n $scope.close = () => this.close();\r\n $scope.openTranscript = (transcriptId) => this.openTranscript(transcriptId);\r\n $scope.cancelRequest = (transactionId) => this.cancelRequest(transactionId);\r\n $scope.confirmCancel = (confirm) => this.confirmCancel(confirm);\r\n $scope.canCancel = (dateRequested) => this.canCancel(dateRequested);\r\n\r\n if (data) {\r\n $scope.transcriptStatus = data.transcriptStatus;\r\n $scope.firstName = data.firstName;\r\n $scope.lastName = data.lastName;\r\n $scope.studentId = data.studentId;\r\n $scope.organizationName = data.organizationName;\r\n }\r\n\r\n }\r\n\r\n close() {\r\n this.$uibModalInstance.dismiss();\r\n\r\n }\r\n\r\n openTranscript(transcriptId) {\r\n var transcript = _.find(this.$scope.transcriptStatus, { transcriptId: transcriptId });\r\n transcript.busy = true;\r\n this.Restangular.all(\"application\").one(\"transcript\", transcriptId).get().then(\r\n (result) => {\r\n var transcriptWindow: any = window.open(\"/app/apphub/viewtranscript.html\", \"\", \"menubar=no, toolbar=no, width=800, height=600, scrollbars=yes, resizable=yes\");\r\n transcriptWindow.onload = function () { transcriptWindow.document.getElementById(\"transcriptContainer\").innerHTML = result; };\r\n transcriptWindow.focus();\r\n transcript.busy = false;\r\n },\r\n (reason) => {\r\n this.logError(\"There was an error getting the transcript.\", reason, true);\r\n transcript.busy = false;\r\n });\r\n\r\n }\r\n\r\n canCancel(releaseDate: Date): boolean {\r\n return moment(releaseDate).isAfter(moment().add(2, \"days\"));\r\n }\r\n\r\n cancelRequest(transactionId) {\r\n var transaction = _.find(this.$scope.transcriptStatus, { transactionId: transactionId });\r\n if (transaction.status != \"Pending\" || transaction.transcriptType != \"Final\" || !this.canCancel(transaction.releaseDate)) {\r\n this.logError(\"Transcript request can not be cancelled at this time.\", null, true);\r\n return;\r\n }\r\n\r\n transaction.cancelBusy = true;\r\n\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/apphub/confirmCancelTranscript.html',\r\n controller: 'transcriptActivityModal',\r\n resolve: {\r\n data: function () { return null }\r\n }\r\n });\r\n\r\n modalInstance.result.then((val: boolean) => {\r\n if (val === true) {\r\n this.Restangular.one(\"transcripts\", transactionId).one(\"cancel\").put()\r\n .then((response) => {\r\n var transaction = _.find(this.$scope.transcriptStatus, { transactionId: transactionId });\r\n transaction.status = \"Canceled\";\r\n\r\n this.logSuccess(\"Transcript request cancelled\");\r\n },\r\n (reason) => {\r\n this.logError(\"An error occurred while canceling the request.\", reason, true);\r\n }\r\n\r\n ).finally(() => {\r\n transaction.cancelBusy = false;\r\n })\r\n\r\n } else {\r\n transaction.cancelBusy = false;\r\n }\r\n });\r\n }\r\n\r\n confirmCancel(confirm: boolean) {\r\n this.$uibModalInstance.close(confirm);\r\n\r\n }\r\n \r\n }\r\n angular.module(\"app\").controller(TranscriptActivityModal.controllerId,\r\n [\"$uibModal\", \"$uibModalInstance\", \"common\", \"$scope\", \"$resource\", \"data\", \"Restangular\",\r\n ($uibModal: ng.ui.bootstrap.IModalService,\r\n $uibModalInstance: ng.ui.bootstrap.IModalServiceInstance,\r\n common: ICommonFactory,\r\n $scope,\r\n $resource,\r\n data: ITranscriptStatus,\r\n Restangular: Restangular.IService) =>\r\n new TranscriptActivityModal($uibModal, $uibModalInstance, common, $scope, $resource, data, Restangular)\r\n ]);\r\n}\r\n","/// \r\nnamespace Cfnc {\r\n interface ITranscriptMessageModalScope extends ng.IScope {\r\n close;\r\n }\r\n\r\n interface ITranscriptMessageModal {\r\n \r\n }\r\n\r\n class TranscriptMessageModal implements ITranscriptMessageModal {\r\n static controllerId: string = \"transcriptMessageModal\";\r\n \r\n constructor(private $uibModalInstance: ng.ui.bootstrap.IModalServiceInstance, private common: ICommonFactory, private $scope:ITranscriptMessageModalScope) {\r\n $scope.close = () => this.close();\r\n }\r\n\r\n close() {\r\n this.$uibModalInstance.dismiss();\r\n }\r\n }\r\n\r\n angular.module(\"app\").controller(TranscriptMessageModal.controllerId, [\"$uibModalInstance\", \"common\", \"$scope\", ($uibModalInstance: ng.ui.bootstrap.IModalServiceInstance, common: ICommonFactory, $scope) =>\r\n new TranscriptMessageModal($uibModalInstance, common, $scope)\r\n ]);\r\n\r\n}\r\n","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface ICampusProfileScope extends ng.IScope {\r\n vm: CampusProfile;\r\n }\r\n\r\n interface ICampusProfile {\r\n templateUrl: string;\r\n institution: IInstitution;\r\n groupOpen: any;\r\n map: any;\r\n institutionId: number;\r\n crossRoadsOrganizationId: number;\r\n carouselCount: any;\r\n apiHost: string;\r\n isSaved: boolean;\r\n isRecruited: boolean;\r\n }\r\n\r\n\r\n class CampusProfile implements ICampusProfile {\r\n static controllerId: string = \"campusProfile\";\r\n static $inject: Array = [\"$location\", \"$anchorScroll\", \"$routeParams\", \"common\", \"Restangular\", \"$sce\", \"getRecruitedService\", \"saveSchoolService\", \"$uibModal\", \"$route\"];\r\n private log;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n institutionId: number;\r\n templateUrl: string = \"about\";\r\n institution: IInstitution;\r\n gps: any;\r\n carouselCount: any;\r\n apiHost: string;\r\n map: any = { center: {}, zoom: 15, options: { streetViewControl: false, zoomControlOptions: { style: google.maps.ZoomControlStyle.SMALL } } };\r\n groupOpen: any = {\r\n about: true,\r\n }\r\n isSaved: boolean = false;\r\n isRecruited: boolean = false;\r\n crossRoadsOrganizationId: number;\r\n majors: any;\r\n gradMajors: any;\r\n undergradMajors: any;\r\n slides: Array = [];\r\n campusTourVideo: Array;\r\n videos: Array;\r\n active: number;\r\n activeSlide: number;\r\n activeVideo: number;\r\n photoInstitutionId: any;\r\n bannerStyles: any;\r\n currentYear: number;\r\n campusTour: string = \"\";\r\n\r\n constructor(private $location: ng.ILocationService,\r\n private $anchorScroll: ng.IAnchorScrollService,\r\n private $routeParams,\r\n private common: ICommonFactory,\r\n private Restangular: Restangular.IService,\r\n private $sce,\r\n private getRecruitedService: IGetRecruitedService,\r\n private saveSchoolService: ISaveSchoolService,\r\n private $uibModal: angular.ui.bootstrap.IModalService,\r\n private $route: angular.route.IRouteService) {\r\n\r\n this.log = common.logger.getLogFn(CampusProfile.controllerId);\r\n this.logError = common.logger.getLogFn(CampusProfile.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(CampusProfile.controllerId, \"success\");\r\n this.photoInstitutionId = this.institutionId;\r\n this.currentYear = new Date().getFullYear();\r\n\r\n this.Restangular.one(\"users/error\").get().then(result => {\r\n console.log(result);\r\n }, error => console.log(error));\r\n\r\n if (this.$routeParams.section) {\r\n this.templateUrl = this.$routeParams.section.replace(/-/g, \"\");\r\n }\r\n this.activate();\r\n\r\n }\r\n\r\n activate() {\r\n var promises = [this.getProfileData()];\r\n this.common.activateController(promises, CampusProfile.controllerId)\r\n .then(() => {\r\n var config = new Config();\r\n this.active = 0;\r\n this.getCarouselCount();\r\n\r\n this.apiHost = config.apiHost;\r\n this.Restangular.one(\"institutions\", this.institutionId.toString().split('/')[1]).one(\"photo\").one(\"metadata\").get()\r\n .then((result) => {\r\n this.slides = result;\r\n this.activeSlide = 0;\r\n\r\n this.slides.forEach((slide) => {\r\n slide.src = this.apiHost + \"/\" + this.institutionId + \"/\" + slide.name + \"/image\";\r\n slide.active = false;\r\n });\r\n\r\n }, (reason) => {\r\n console.log(reason);\r\n });\r\n\r\n this.bannerStyles = {\r\n admissions: this.getBannerBaseStyle(\"admissions\"),\r\n academics: this.getBannerBaseStyle(\"academics\"),\r\n costAndFinancialAid: this.getBannerBaseStyle(\"costandfinancialaid\"),\r\n studentLife: this.getBannerBaseStyle(\"studentlife\"),\r\n transferStudent: this.getBannerBaseStyle(\"transferstudent\"),\r\n internationalStudents: this.getBannerBaseStyle(\"internationalstudent\"),\r\n learningDisabilities: this.getBannerBaseStyle(\"learningdisabled\")\r\n }\r\n\r\n var command;\r\n if (command = sessionStorage.getItem(\"collegeProfile.command\")) {\r\n switch (command) {\r\n case \"save\":\r\n this.saveCollege();\r\n break;\r\n case \"getrecruited\":\r\n this.getRecruited();\r\n break;\r\n } \r\n }\r\n\r\n this.log(\"Activated CampusProfile View\");\r\n });\r\n \r\n\r\n }\r\n\r\n getBannerBaseStyle(section) {\r\n return {\r\n \"height\": \"150px\",\r\n \"background\": `linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url(${this.apiHost}/${this.institutionId}/${section}/image)`,\r\n \"background-repeat\": \"no-repeat\",\r\n \"background-size\": \"cover\",\r\n \"background-position\": \"center\"\r\n };\r\n }\r\n\r\n getProfileData() {\r\n\r\n var urlname = this.$routeParams.institutionName;\r\n\r\n return this.Restangular.one(\"institutions\", urlname).one(\"campusprofile\").get()\r\n .then((results) => {\r\n if (!results || !results.crossRoadsOrganizationId) {\r\n this.$location.path(\"/\");\r\n }\r\n else {\r\n this.institution = results;\r\n this.institutionId = this.institution.id;\r\n this.institution.profile.costFinancialAid.availableLoanTypes = this.institution.profile.costFinancialAid.availableLoanTypes.sort();\r\n this.institution.profile.costFinancialAid.paymentPlans = this.institution.profile.costFinancialAid.paymentPlans.sort();\r\n this.gps = { latitude: this.institution.profile.latitude, longitude: this.institution.profile.longitude };\r\n this.campusTourVideo = [];\r\n \r\n this.videos = _.filter(this.institution.profile.videos,(video) => {\r\n return video.pageSection == \"Videos\"\r\n });\r\n console.log(this.videos);\r\n this.activeVideo = 0;\r\n\r\n //this.videos.forEach((video, i) => {\r\n // if (i == 0) {\r\n // video.active = true;\r\n // }\r\n // video.src = video.thumbnailURL;\r\n //});\r\n\r\n _.filter(this.institution.profile.videos,(video) => {\r\n return video.pageSection == \"CampusTour\"\r\n }).forEach((video) => {\r\n this.campusTour = video.videoURL;\r\n //this.campusTourVideo.push({\r\n // src: video.videoURL,\r\n // type: \"video/mp4\",\r\n // title: video.title,\r\n // description: video.description\r\n //})\r\n });\r\n\r\n this.map.center = { latitude: this.institution.profile.latitude, longitude: this.institution.profile.longitude };\r\n this.common.authentication.isLoggedIn().then(loggedIn => {\r\n if (loggedIn) {\r\n this.isCollegeSaved();\r\n this.isProspectSubmitted();\r\n }\r\n }); \r\n\r\n this.majors = _.sortBy(this.institution.majorsWithNames, \"programName\");\r\n this.undergradMajors = _.filter(this.majors, function (major) { return major.degreeType == \"Certificate\" || major.degreeType == \"Diploma\" || major.degreeType == \"Associate\" || major.degreeType == \"Bachelor\"; });\r\n this.gradMajors = _.filter(this.majors, function (major) { return major.degreeType == \"PostBachelor\" || major.degreeType == \"Master\" || major.degreeType == \"PostMaster\" || major.degreeType == \"Professional\" || major.degreeType == \"Doctoral\"; });\r\n\r\n }\r\n },(reason) => {\r\n console.error(reason);\r\n\r\n });\r\n\r\n\r\n }\r\n\r\n findDegreeType(a, b) {\r\n return _.map(a, \"degreeType\").indexOf(b) > -1;\r\n }\r\n\r\n findAnyGradDegrees() {\r\n var gradMajors = _.map(this.majors, \"degreeType\");\r\n return gradMajors.indexOf(\"PostBachelor\") > -1 ? true : gradMajors.indexOf(\"Master\") > -1 ? true : gradMajors.indexOf(\"PostMaster\") > -1 ? true :\r\n gradMajors.indexOf(\"Professional\") > -1 ? true : gradMajors.indexOf(\"Doctoral\") > -1 ? true : false;\r\n }\r\n\r\n getCarouselCount() {\r\n this.Restangular.one(this.institutionId.toString()).one(\"carousel/count\").get()\r\n .then((result: any) => {\r\n if (result.length == 0) {\r\n this.photoInstitutionId = \"institutions/0\";\r\n this.carouselCount = [\"carousel1\", \"carousel2\", \"carousel3\", \"carousel4\", \"carousel5\"];\r\n }\r\n else {\r\n this.photoInstitutionId = this.institutionId;\r\n this.carouselCount = result;\r\n }\r\n },(reason) => {\r\n console.log(reason);\r\n });\r\n }\r\n\r\n saveCollege = () => {\r\n sessionStorage.setItem(\"collegeProfile.command\", \"save\");\r\n this.common.authentication.authenticate(true).then(() => {\r\n sessionStorage.removeItem(\"collegeProfile.command\");\r\n if (!this.isSaved) {\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/common/confirmationModal.html',\r\n controller: 'confirmationModal',\r\n resolve: {\r\n data: {\r\n title: \"Save College\",\r\n content: \"Are you sure you want to add \" + this.institution.name + \" to your list of Saved Colleges?\"\r\n }\r\n }\r\n });\r\n modalInstance.result.then((result) => {\r\n if (result) {\r\n this.saveSchoolService.saveSchoolAfterLogin(this.institution.crossRoadsOrganizationId, true);\r\n this.Restangular.one(\"collegePlanning\").post(this.institution.crossRoadsOrganizationId)\r\n .then((result: any) => {\r\n this.isSaved = true;\r\n this.logSuccess(\"Saved successfully to your Saved Colleges\", \"Saved successfully to your Saved Colleges\", true);\r\n }, (reason) => {\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n });\r\n }\r\n else {\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/common/confirmationModal.html',\r\n controller: 'confirmationModal',\r\n resolve: {\r\n data: {\r\n title: \"Remove Saved College\",\r\n content: `Are you sure you wish to remove ${this.institution.name} from your saved colleges?`\r\n }\r\n }\r\n });\r\n modalInstance.result.then((val: boolean) => {\r\n if (val) {\r\n this.Restangular.all(\"collegePlanning/deletesavedcollege\").post({ id: this.institution.id, organizationId: this.institution.crossRoadsOrganizationId }).then((results) => {\r\n console.log(results);\r\n this.isSaved = false;\r\n //this.logSuccess(\"Your saved college changes have been saved\", null, true);\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n }\r\n });\r\n }\r\n });\r\n \r\n \r\n \r\n }\r\n\r\n isCollegeSaved = () => {\r\n this.Restangular.one(\"collegePlanning/issaved\", this.institution.crossRoadsOrganizationId).get()\r\n .then((result: boolean) => {\r\n this.isSaved = result;\r\n\r\n if (this.isSaved == true && this.saveSchoolService.saveSchoolAfterLogin(this.institution.crossRoadsOrganizationId)) {\r\n this.logSuccess(\"Saved successfully to your Saved Colleges\", \"Saved successfully to your Saved Colleges\", true);\r\n this.saveSchoolService.clear();\r\n } else if (!this.isSaved == true && this.saveSchoolService.saveSchoolAfterLogin(this.institution.crossRoadsOrganizationId)) {\r\n this.saveCollege();\r\n }\r\n },(reason) => {\r\n this.logError(reason, reason, true);\r\n });\r\n\r\n }\r\n\r\n getRecruited = () => {\r\n sessionStorage.setItem(\"collegeProfile.command\", \"getrecruited\");\r\n this.common.authentication.authenticate(true).then(() => {\r\n sessionStorage.removeItem(\"collegeProfile.command\");\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/common/confirmationModal.html',\r\n controller: 'confirmationModal',\r\n resolve: {\r\n data: {\r\n title: \"Get Recruited\",\r\n content: \"Are you sure you want to add \" + this.institution.name + \" to your College Recruiter so they can contact you?\"\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then((result) => {\r\n if (result) {\r\n this.getRecruitedService.getRecruitedAfterLogin(this.institution.crossRoadsOrganizationId, true);\r\n this.Restangular.all(\"prospect/addRecruiter\").post({ applicationDefinitionId: this.institution.recruiterApplicationId, source: \"College Recruiter\" })\r\n .then((result: any) => {\r\n this.logSuccess(\"Successfully saved to college recruiter\", \"Successfully saved to college recruiter\", true);\r\n this.isRecruited = true;\r\n this.getRecruitedService.clear();\r\n this.getRecruitedService.orginizationId = \"\";\r\n }, (reason) => {\r\n this.logError(\"There was an error saving the request.\", reason, true);\r\n });\r\n }\r\n })\r\n });\r\n \r\n\r\n \r\n };\r\n\r\n isProspectSubmitted = () => {\r\n this.Restangular.one(\"prospect\", this.institution.recruiterApplicationId).one(\"isrecruited\").get()\r\n .then((result) => {\r\n if (result) {\r\n this.isRecruited = result;\r\n if (this.isRecruited == true && this.getRecruitedService.getRecruitedAfterLogin(this.institution.crossRoadsOrganizationId)) {\r\n this.logSuccess(\"Successfully saved to college recruiter\", \"Successfully saved to college recruiter\", true);\r\n this.getRecruitedService.clear();\r\n }\r\n } else {\r\n if (this.isRecruited == false && this.getRecruitedService.getRecruitedAfterLogin(this.institution.crossRoadsOrganizationId)) {\r\n this.getRecruited();\r\n }\r\n }\r\n\r\n \r\n\r\n \r\n },(reason) => {\r\n console.log(reason);\r\n });\r\n };\r\n\r\n nextSlide = () => {\r\n if (this.activeSlide < this.slides.length - 1) {\r\n this.activeSlide += 1;\r\n }\r\n \r\n };\r\n\r\n prevSlide = () => {\r\n if (this.activeSlide > 0) {\r\n this.activeSlide -= 1;\r\n }\r\n \r\n };\r\n\r\n updateAppInsights = () => {\r\n appInsights.trackPageView(`Cfnc: Campus Profile - ${this.institution.name} - ${this.templateUrl}`, this.$location.url(), {\r\n InstitutionId: this.institution.id.toString(),\r\n Name: this.institution.name\r\n });\r\n };\r\n\r\n getNavUrl(newPath) {\r\n window.history.pushState({}, '', `/campus-profile/${this.$routeParams.institutionName}/${newPath}`);\r\n \r\n }\r\n }\r\n\r\n angular.module(\"app\").controller(CampusProfile.controllerId, CampusProfile);\r\n\r\n\r\n\r\n\r\n}\r\n","namespace Cfnc {\r\n \"use strict\";\r\n\r\n interface ICampusSearchLeftScope extends ng.IScope {\r\n vm: CampusSearchLeft;\r\n }\r\n\r\n interface ICampusSearchLeft {\r\n\r\n }\r\n\r\n export class Type { type: string; isChecked: boolean }\r\n\r\n\r\n class CampusSearchLeft implements ICampusSearchLeft {\r\n static controllerId: string = \"campusSearchLeftCtrl\";\r\n intervalPromise: angular.IPromise;\r\n static $inject: Array = [\"campusSearchDataService\", \"savedSearchService\", \"common\", \"config\", \"$scope\", \"$uibModal\", \"Restangular\", \"$timeout\", \"$routeParams\", \"$window\", \"$location\", \"$rootScope\", \"sportList\", \"$interval\", \"$anchorScroll\"];\r\n private log;\r\n\r\n institutions: Array;\r\n //For Radios\r\n entranceDifficulty: string;\r\n actScores: string;\r\n rotcSelected: boolean;\r\n\r\n schools: Array;\r\n markers: Array;\r\n publicPrivates: PublicPrivates;\r\n publicPrivatesSelected: boolean;\r\n\r\n private savedSearchName: string;\r\n private savedSearch: any;\r\n private savedSearches: Array;\r\n\r\n pinColors = { \"UNC\": \"blue\", \"Independent\": \"red\", \"CommunityCollege\": \"yellow\", \"default\": \"black\" };\r\n\r\n campusSearchForm: any;\r\n master: any;\r\n formFilters: any;\r\n filterOptions: IAvailableFilters;\r\n selectedFilters: Array;\r\n filters: Array;\r\n nameFilter: Array;\r\n selectedSchool: any;\r\n textToSearch: string;\r\n sortField: string;\r\n sortDesc: boolean;\r\n\r\n map: googleMaps.googleMap;\r\n options;\r\n stateCoords;\r\n mappingData;\r\n totalInstitutions: number;\r\n totalPages: number;\r\n currentPage: number;\r\n sortBy: string;\r\n\r\n filterCategories: any;\r\n\r\n hasSavedSearches: boolean;\r\n noSchoolData: boolean;\r\n\r\n filterText: string;\r\n savedFilters: any;\r\n searchName: string;\r\n\r\n privateChecked: boolean;\r\n dateTimeStart: any;\r\n currentEventDate: any;\r\n timeSpent: any;\r\n\r\n view: string = 'card';\r\n\r\n selectedSavedSearch: any;\r\n loading: boolean;\r\n\r\n name: string;\r\n pageSize: number = 10;\r\n\r\n filterMap: ICollegeSearchFilterMap;\r\n pills: ICollegeSearchFilterMap;\r\n\r\n apiHost: string;\r\n occCode: string;\r\n occTitle: string;\r\n\r\n institutionNames: string[];\r\n\r\n constructor(private campusSearchDataService: ICampusSearchDataService, private savedSearchService: IsavedSearchService, private common: ICommonFactory,\r\n private config: IConfig,\r\n private $scope: ICampusSearchLeftScope, private $uibModal: ng.ui.bootstrap.IModalService, private Restangular: Restangular.IService,\r\n private $timeout: ng.ITimeoutService, private $routeParams, private $window: ng.IWindowService, private $location: ng.ILocationService,\r\n private $rootScope: ng.IRootScopeService, private sportList: ISportList, private $interval: angular.IIntervalService, private $anchorScroll: ng.IAnchorScrollService) {\r\n\r\n this.log = this.common.logger.getLogFn(CampusSearchLeft.controllerId);\r\n this.institutions = [];\r\n this.markers = [];\r\n this.schools = [];\r\n this.sortField = \"name\";\r\n this.sortDesc = false;\r\n this.sortBy = \"Name\";\r\n this.currentPage = 1;\r\n this.dateTimeStart = performance.now();\r\n this.timeSpent = 0;\r\n this.intervalPromise = this.$interval(this.resetTimer, 30000);\r\n\r\n\r\n this.savedSearchName = $routeParams[\"savedSearchName\"];\r\n\r\n this.noSchoolData = false;\r\n\r\n this.savedSearches = [];\r\n\r\n this.map = { pan: true, center: { latitude: 35.250224, longitude: -79.905000 }, zoom: 7, options: { streetViewControl: false, zoomControlOptions: { style: google.maps.ZoomControlStyle.SMALL } } };\r\n this.options = { options: { mapTypeId: google.maps.MapTypeId.TERRAIN, streetViewControl: false, zoomControlOptions: { style: google.maps.ZoomControlStyle.SMALL } } };\r\n this.stateCoords = coords;\r\n\r\n $rootScope.$on(\"$routeChangeStart\",\r\n (event, next, current): void => {\r\n this.$interval.cancel(this.intervalPromise);\r\n appInsights.trackMetric(\"CampusSearchUseTime\", this.timeSpent);\r\n }\r\n );\r\n\r\n this.filterOptions = campusSearchDataService.filterDefinition;\r\n this.selectedFilters = [];\r\n this.nameFilter = [];\r\n\r\n this.filterMap = this.getFilterMap();\r\n\r\n if (this.$location.state()) {\r\n this.getState(false);\r\n }\r\n else {\r\n this.selectedFilters = [];\r\n this.selectedFilters.push({ key: this.filterMap.state.national.group, filters: [{ key: this.filterMap.state.national.key }] } as IAvaliableFiltersGroup);\r\n }\r\n\r\n \r\n if (localStorage.getItem(\"collegeSearch.selectedFilters\")) {\r\n this.selectedFilters = JSON.parse(localStorage.getItem(\"collegeSearch.selectedFilters\"));\r\n this.applySelectedFiltersToMap();\r\n this.Save();\r\n }\r\n\r\n if (localStorage.getItem(\"collegeSearch.saveCollege\")) {\r\n if (_.startsWith(document.referrer, this.common.authentication.providerUrls.authority)) {\r\n this.saveCollege(JSON.parse(localStorage.getItem(\"collegeSearch.saveCollege\")));\r\n }\r\n else {\r\n localStorage.removeItem(\"collegeSearch.saveCollege\");\r\n }\r\n }\r\n\r\n this.occCode = this.$location.search().occCode;\r\n this.activate();\r\n }\r\n\r\n loadSearchFromCollegePlanning() {\r\n if (this.savedSearchName && typeof this.savedSearches != 'undefined' && this.savedSearches.length > 0) {\r\n this.savedSearches.forEach((search) => {\r\n if (search.name == this.savedSearchName) {\r\n this.savedSearch = search;\r\n this.selectedFilters = JSON.parse(this.savedSearch.search);\r\n }\r\n });\r\n this.savedSearchName = null;\r\n this.applyFilters();\r\n }\r\n }\r\n\r\n activate() {\r\n this.apiHost = new Config().apiHost;\r\n var promises = [];\r\n this.common.activateController(promises, CampusSearchLeft.controllerId).then(() => {\r\n if (!this.savedSearchName) {\r\n this.nameFilter[0] = this.selectedFilters[0];\r\n }\r\n\r\n\r\n this.common.authentication.isLoggedIn().then(loggedIn => {\r\n if (loggedIn) {\r\n this.loadSavedSearches();\r\n this.$rootScope.$on(this.config.events.logout, (event) => {\r\n this.activate();\r\n });\r\n }\r\n else {\r\n this.$rootScope.$on(this.config.events.login, (event, user: any) => {\r\n this.activate();\r\n });\r\n }\r\n\r\n this.log(\"Activated CampusSearch View \");\r\n appInsights.trackEvent(\"CampusSearchLoaded\");\r\n\r\n if (this.occCode) {\r\n this.search();\r\n this.Restangular.all(\"careers\").one(\"occupations\").get({ occCode: this.occCode }).then((result: IOccupation) => {\r\n this.occTitle = result.occTitle;\r\n });\r\n }\r\n else {\r\n this.applyFilters();\r\n }\r\n })\r\n });\r\n }\r\n\r\n updateTimer() {\r\n this.$interval.cancel(this.intervalPromise);\r\n this.currentEventDate = performance.now();\r\n var diff = this.currentEventDate - this.dateTimeStart;\r\n this.timeSpent = this.timeSpent + diff;\r\n console.log(this.timeSpent);\r\n this.dateTimeStart = performance.now();\r\n this.intervalPromise = this.$interval(this.resetTimer, 30000);\r\n }\r\n\r\n resetTimer = () => {\r\n this.dateTimeStart = performance.now();\r\n console.log(\"timer reset.\");\r\n }\r\n\r\n sortTable(sortBy: string, sortField: string) {\r\n if (this.sortBy === sortBy) {\r\n this.sortDesc = !this.sortDesc;\r\n }\r\n else {\r\n this.sortDesc = false;\r\n this.sortField = sortField;\r\n this.sortBy = sortBy;\r\n }\r\n\r\n this.currentPage = 1;\r\n this.search(1, this.pageSize, this.sortBy, this.sortDesc);\r\n }\r\n\r\n pageTable() {\r\n this.search(this.currentPage, this.pageSize, this.sortBy, this.sortDesc);\r\n }\r\n\r\n getInstitutionNames(viewValue) {\r\n return this.Restangular.one(\"campussearch\").one(\"institutionNames\").get({ search: viewValue, limit: 10, national: this.filterMap.state.national.model });\r\n\r\n }\r\n\r\n public search(page: number = 1, pageSize: number = this.pageSize, sortBy: string = \"Name\", sortDesc: boolean = false) {\r\n this.loading = true;\r\n this.$anchorScroll(\"results\");\r\n this.currentPage = page;\r\n var cachedpageNumber = sessionStorage.getItem(\"currentPage\");\r\n if (cachedpageNumber) {\r\n this.currentPage = +cachedpageNumber;\r\n page = this.currentPage;\r\n sessionStorage.removeItem(\"currentPage\");\r\n }\r\n if (_.isEqual(this.selectedFilters, this.savedFilters)) {\r\n this.filterText = \"Saved Search: \" + this.searchName;\r\n }\r\n else {\r\n if (this.searchName != null && this.searchName != \"\") {\r\n this.searchName = null;\r\n this.savedFilters = null;\r\n }\r\n this.filterText = \"Selected Filters: \";\r\n }\r\n\r\n this.savedSearchName = this.savedSearchService.getName() ? this.savedSearchService.getName() : null;\r\n this.savedSearchService.setName(\"\");\r\n if (this.savedSearchName) {\r\n this.loadSavedSearches();\r\n } else {\r\n this.campusSearchDataService.getInstitutionsByFilter(this.selectedFilters, page, pageSize, sortBy, sortDesc, this.occCode).then((result) => {\r\n if (result != null) {\r\n this.institutions = result.results;\r\n this.totalInstitutions = result.totalItems;\r\n this.totalPages = result.totalItems / pageSize;\r\n this.createMarkers(this.institutions);\r\n }\r\n else {\r\n\r\n this.institutions = [];\r\n this.noSchoolData = true;\r\n }\r\n }, (reason) => {\r\n this.log(reason);\r\n }).finally(() => {\r\n this.loading = false;\r\n });\r\n }\r\n\r\n this.saveState();\r\n }\r\n\r\n saveState() {\r\n var state = {\r\n view: this.view,\r\n currentPage: this.currentPage,\r\n filterMap: JSON.stringify(this.filterMap),\r\n occCode: this.occCode\r\n }\r\n\r\n if (!_.isEqual(state, this.$location.state())) {\r\n return this.$location.state(state);\r\n }\r\n\r\n }\r\n\r\n getState(executeSearch?: boolean) {\r\n var state = this.$location.state();\r\n executeSearch = executeSearch === false ? false : !_.isEqual(state.selectedFilters, JSON.stringify(this.selectedFilters))\r\n || state.currentPage != this.currentPage;\r\n\r\n this.view = state.view && state.view != \"null\" ? state.view : 'card';\r\n this.currentPage = state.currentPage;\r\n var filterMapFromState = JSON.parse(state.filterMap);\r\n this.filterMap = _.merge(filterMapFromState, this.filterMap);\r\n this.occCode = this.occCode;\r\n\r\n if (executeSearch) {\r\n if (this.occCode) {\r\n this.search();\r\n this.Restangular.all(\"careers\").one(\"occupations\").get({ occCode: this.occCode }).then((result: IOccupation) => {\r\n this.occTitle = result.occTitle;\r\n });\r\n }\r\n else {\r\n this.applyFilters(this.currentPage);\r\n }\r\n }\r\n }\r\n\r\n saveCollege(institution: IInstitution) {\r\n localStorage.setItem(\"collegeSearch.saveCollege\", JSON.stringify(institution));\r\n this.common.authentication.authenticate(true).then(result => {\r\n if (result) {\r\n if (!institution.isSaved) {\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/common/confirmationModal.html',\r\n controller: 'confirmationModal',\r\n resolve: {\r\n data: {\r\n title: \"Save College\",\r\n content: \"Are you sure you want to add \" + institution.name + \" to your list of Saved Colleges?\"\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then((result) => {\r\n if (result) {\r\n //this.cacheSavedCollege(institution);\r\n this.Restangular.one(\"collegePlanning\").post(institution.crossRoadsOrganizationId)\r\n .then((result: any) => {\r\n institution.isSaved = true;\r\n console.log(result);\r\n }, (reason) => {\r\n console.log(reason);\r\n });\r\n\r\n }\r\n }).finally(() => {\r\n localStorage.removeItem(\"collegeSearch.saveCollege\");\r\n });\r\n }\r\n else {\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/common/confirmationModal.html',\r\n size: 'sm',\r\n controller: 'confirmationModal',\r\n resolve: {\r\n data: {\r\n title: \"Remove Saved College\",\r\n content: `Are you sure you wish to remove ${institution.name} from your saved colleges?`\r\n }\r\n }\r\n });\r\n modalInstance.result.then((val: boolean) => {\r\n if (val) {\r\n this.Restangular.all(\"collegePlanning/deletesavedcollege\").post({ id: institution.id, organizationId: institution.crossRoadsOrganizationId }).then((results) => {\r\n console.log(results);\r\n institution.isSaved = false;\r\n //this.logSuccess(\"Your saved college changes have been saved\", null, true);\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n }\r\n }).finally(() => {\r\n localStorage.removeItem(\"collegeSearch.saveCollege\");\r\n });\r\n }\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n deleteSavedCollege = (institution: IInstitution) => {\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/collegePlanning/ConfirmModal.html',\r\n size: 'sm',\r\n controller: 'ConfirmModal',\r\n });\r\n modalInstance.result.then((val: boolean) => {\r\n if (val) {\r\n this.Restangular.all(\"collegePlanning/deletesavedcollege\").post({ id: institution.id, organizationId: institution.crossRoadsOrganizationId }).then((results) => {\r\n console.log(results);\r\n institution.isSaved = false;\r\n //this.logSuccess(\"Your saved college changes have been saved\", null, true);\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n }\r\n });\r\n }\r\n\r\n isCollegeSaved(institution: any) {\r\n this.Restangular.one(\"collegePlanning/issaved\", institution.crossRoadsOrganizationId).get()\r\n .then((result: boolean) => {\r\n institution.isSaved = result;\r\n }, (reason) => {\r\n console.log(reason);\r\n });\r\n\r\n }\r\n\r\n redirectToSchool() {\r\n window.open(\"/index.html#/institutions/\" + this.selectedSchool.id + \"/campusprofile\");\r\n }\r\n\r\n redirectToSelected() {\r\n var index = _.findIndex(this.schools, (x: any) => { return x.id === this.selectedSchool.id });\r\n if (index > -1)\r\n this.redirectToSchool();\r\n }\r\n\r\n private loadSavedSearches() {\r\n this.common.authentication.authenticate(true).then(result => {\r\n if (result) {\r\n this.campusSearchDataService.loadSavedSearches().then((results) => {\r\n this.savedSearches = results;\r\n if (this.savedSearchName != null)\r\n this.loadSearchFromCollegePlanning();\r\n }, (reason) => {\r\n this.log(reason);\r\n });\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n private createMarkers(institutions: Array) {\r\n this.markers = [];\r\n for (var i in institutions) {\r\n this.markers.push(this.setUpMarker(institutions[i]));\r\n\r\n }\r\n }\r\n\r\n private setUpMarker(institution: any) {\r\n var color = this.pinColors[institution.collegeType] || this.pinColors.default;\r\n console.log(document.location.origin + \"/images/\" + color + \"_pin.png\");\r\n var marker = {\r\n selected: false,\r\n latitude: institution.latitude,\r\n longitude: institution.longitude,\r\n id: institution.id,\r\n options: {\r\n optimized: false,\r\n title: institution.name,\r\n icon: document.location.origin + \"/images/\" + color + \"_pin.png\"\r\n\r\n },\r\n show: false,\r\n onClick: () => {\r\n if (institution.crossRoadsOrganizationId) {\r\n this.$rootScope.$apply(() => {\r\n this.redirectToCollegePage(institution);\r\n });\r\n }\r\n else\r\n this.$window.open(institution.website);\r\n }\r\n };\r\n\r\n return marker;\r\n }\r\n\r\n redirectToCollegePage(institution: IInstitution) {\r\n this.$location.path(`/college-profile/${institution.urlName}`);\r\n }\r\n\r\n OpenFiltersModal(subCat: string) {\r\n\r\n var modalInstance;\r\n\r\n switch (subCat) {\r\n case \"PrivateReligious\":\r\n if (this.filterMap.publicPrivate.religious.model) {\r\n modalInstance = this.$uibModal.open({\r\n templateUrl: \"/app/campusSearch/modals/publicPrivateModal.html\",\r\n controller: \"publicPrivateModalCtrl\",\r\n controllerAs: \"vm\",\r\n size: 'lg',\r\n resolve: {\r\n selectedFilters: () => [],\r\n religions: () => this.filterOptions.keyFacts.religions\r\n }\r\n });\r\n\r\n modalInstance.result.then((result: IAvaliableFiltersGroup[]) => {\r\n //this.filterMap.religions.selectedReligions = result;\r\n\r\n for (var religion in this.filterMap.religions) {\r\n if (this.filterMap.religions[religion].model) {\r\n this.filterMap.religions[religion].model = null;\r\n }\r\n }\r\n\r\n result[0].filters.forEach((r: any) => {\r\n this.filterMap.religions[r.key.toLowerCase()].model = true;\r\n })\r\n });\r\n }\r\n else {\r\n for (var religion in this.filterMap.religions) {\r\n if (this.filterMap.religions[religion].model) {\r\n this.filterMap.religions[religion].model = null;\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n break;\r\n\r\n case \"Sports\":\r\n\r\n modalInstance = this.$uibModal.open({\r\n templateUrl: \"/app/campusSearch/modals/sportsModal.html\",\r\n controller: \"sportsModalCtrl\",\r\n controllerAs: \"vm\",\r\n size: \"lg\",\r\n resolve: {\r\n selectedFilters: () => _.cloneDeep(this.filterMap.sports.selectedSports),\r\n collegeSports: () => this.filterOptions.interCollegiateSports\r\n }\r\n });\r\n\r\n modalInstance.result.then((result: IAvaliableFiltersGroup[]) => {\r\n this.filterMap.sports.selectedSports = result;\r\n\r\n for (var sport in this.filterMap.sports) {\r\n if (this.filterMap.sports[sport].model) {\r\n this.filterMap.sports[sport].model = null;\r\n }\r\n }\r\n\r\n result.forEach(r => {\r\n var sport: any = _.find(r.filters, { key: \"Sport\" });\r\n this.filterMap.sports[sport.value.toLowerCase()].model = true;\r\n })\r\n })\r\n break;\r\n\r\n case \"Majors\":\r\n\r\n var selectedMajors = [{ key: \"ProgramsMajors\", filters: [] }];\r\n for (var major in this.filterMap.majors) {\r\n if (this.filterMap.majors[major].model == true) {\r\n selectedMajors[0].filters.push({\r\n key: this.filterMap.majors[major].key,\r\n value: this.filterMap.majors[major].value\r\n });\r\n }\r\n }\r\n\r\n modalInstance = this.$uibModal.open({\r\n templateUrl: \"/app/campusSearch/modals/majorsModal.html\",\r\n controller: \"majorsModalCtrl\",\r\n controllerAs: \"vm\",\r\n size: \"lg\",\r\n resolve: {\r\n selectedFilters: () => _.cloneDeep(selectedMajors),\r\n majorsGroup: () => this.filterOptions.academics.programsMajors,\r\n majorFilter: () => this.filterOptions.academics.major\r\n }\r\n });\r\n\r\n modalInstance.result.then((result: IAvaliableFiltersGroup[]) => {\r\n for (var major in this.filterMap.majors) {\r\n if (this.filterMap.majors[major].model) {\r\n this.filterMap.majors[major].model = null;\r\n }\r\n\r\n if (major.indexOf(\"_\") == 0) {\r\n delete this.filterMap.majors[major];\r\n }\r\n }\r\n\r\n if (result.length > 0) {\r\n result[0].filters.forEach(r => {\r\n if (_.has(this.filterMap.majors, r.key.toLowerCase())) {\r\n this.filterMap.majors[r.key.toLowerCase()].model = true;\r\n\r\n }\r\n else {\r\n var majorFilter: ICollegeSearchFilter = {\r\n key: \"MajorName\",\r\n value: r.value.toString(),\r\n group: \"Major\",\r\n name: r.pillText,\r\n showInFilterList: true,\r\n model: true\r\n }\r\n\r\n this.filterMap.majors[r.key.toLowerCase()] = majorFilter;\r\n }\r\n })\r\n }\r\n });\r\n\r\n break;\r\n }\r\n\r\n }\r\n\r\n showTipsModal() {\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/campusSearch/modals/tipsModal.html',\r\n controller: 'tipsModalCtrl'\r\n });\r\n }\r\n\r\n Clear() {\r\n\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/campusSearch/modals/clearModal.html',\r\n controller: 'clearModalCtrl'\r\n });\r\n\r\n modalInstance.result.then((clearFilters: boolean) => {\r\n this.campusSearchForm = {};\r\n this.rotcSelected = false;\r\n this.filterText = \"Selected Filters:\";\r\n this.selectedSavedSearch = null;\r\n this.filterMap = this.getFilterMap();\r\n this.selectedFilters = [];\r\n this.selectedFilters.push({ key: this.filterMap.state.national.group, filters: [{ key: this.filterMap.state.national.key }] } as IAvaliableFiltersGroup);\r\n this.currentPage = 1;\r\n this.occCode = null;\r\n this.occTitle = null;\r\n this.$location.search(\"occCode\", null);\r\n this.applyFilters();\r\n });\r\n\r\n }\r\n\r\n Save() {\r\n localStorage.setItem(\"collegeSearch.selectedFilters\", JSON.stringify(this.selectedFilters));\r\n this.common.authentication.authenticate(true).then(result => {\r\n if (result) {\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/campusSearch/modals/saveSearchModal.html',\r\n controller: 'saveSearchModalCtrl'\r\n });\r\n\r\n modalInstance.result.then((savedSearchName: string) => {\r\n var search = new SavedSearch(savedSearchName, JSON.parse(localStorage.getItem(\"collegeSearch.selectedFilters\")));\r\n this.campusSearchDataService.saveCampusSearch(search)\r\n .then(() => {\r\n this.loadSavedSearches();\r\n });\r\n }).finally(() => {\r\n localStorage.removeItem(\"collegeSearch.selectedFilters\");\r\n });\r\n }\r\n });\r\n\r\n }\r\n\r\n selectSearch() {\r\n this.selectedFilters = [];\r\n this.selectedFilters = JSON.parse(this.selectedSavedSearch.search);\r\n this.applySelectedFiltersToMap();\r\n this.filterText = \"Saved Search: \" + this.selectedSavedSearch.searchName;\r\n this.searchName = this.selectedSavedSearch.searchName;\r\n this.savedFilters = _.cloneDeep(this.selectedFilters);\r\n this.applyFilters();\r\n }\r\n\r\n setView(view: string) {\r\n this.view = view;\r\n this.saveState().replace();\r\n\r\n }\r\n\r\n applySelectedFiltersToMap() {\r\n var stateSelected = false;\r\n this.filterMap = this.getFilterMap();\r\n this.selectedFilters.forEach((group) => {\r\n if (group.key.indexOf(\"Sports\") == 0) {\r\n this.filterMap.sports.selectedSports.push(group);\r\n }\r\n else {\r\n group.filters.forEach((filter) => {\r\n if (filter.key == \"State\") {\r\n stateSelected = true;\r\n }\r\n\r\n if (filter.key == \"MajorName\") {\r\n this.filterMap.majors[filter.key] = {\r\n key: \"MajorName\",\r\n value: filter.value,\r\n group: \"Major\",\r\n name: `Major: ${filter.value}`,\r\n showInFilterList: true,\r\n model: true\r\n };\r\n }\r\n\r\n _.forOwn(this.filterMap, (fmGroup) => {\r\n _.forOwn(fmGroup, (fmFilter: ICollegeSearchFilter) => {\r\n if (fmFilter.key == filter.key) {\r\n fmFilter.model = filter.value || (filter.key == \"State\" ? false : true);\r\n if (fmFilter.key == this.filterMap.distance.withinRangeOf.key) {\r\n this.filterMap.distance.range.model = (filter.value as string).split(\",\")[0] || null;\r\n this.filterMap.distance.zipCode.model = (filter.value as string).split(\",\")[1] || null;\r\n }\r\n }\r\n })\r\n });\r\n });\r\n }\r\n\r\n this.filterMap.sports.selectedSports.forEach(r => {\r\n var sport: any = _.find(r.filters, { key: \"Sport\" });\r\n this.filterMap.sports[sport.value.toLowerCase()].model = true;\r\n })\r\n });\r\n\r\n this.filterMap.state.national.model = !stateSelected;\r\n }\r\n\r\n\r\n\r\n applyFilters(page: number = 1, pageSize: number = this.pageSize, sortBy: string = \"Name\", sortDesc: boolean = false) {\r\n //clear the occCode from the search. Currently can't search within results so we will remove the filter\r\n this.occCode = null;\r\n this.occTitle = null;\r\n this.$location.search(\"occCode\", null);\r\n\r\n if (this.filterMap.state.national.model) {\r\n this.map = { center: { latitude: 38.103137, longitude: -98.169883 }, zoom: 4, pan: true };\r\n }\r\n else {\r\n this.map = { center: { latitude: 35.250224, longitude: -79.905000 }, zoom: 7, pan: true };\r\n }\r\n\r\n this.selectedFilters = [];\r\n this.selectedSavedSearch = null;\r\n\r\n if (this.$location.search().freeApp) {\r\n this.filterMap.applicationFee.applicationFee.model = \"0\";\r\n this.$location.search(\"freeApp\", null);\r\n \r\n }\r\n\r\n if (this.filterMap.distance.range.model && this.filterMap.distance.zipCode.model) {\r\n this.filterMap.distance.withinRangeOf.value = `${this.filterMap.distance.range.model},${this.filterMap.distance.zipCode.model || ''}`;\r\n this.filterMap.distance.withinRangeOf.model = true;\r\n }\r\n else {\r\n this.filterMap.distance.withinRangeOf.model = false;\r\n }\r\n\r\n if (!this.filterMap.state.national.model) {\r\n this.selectedFilters.push({ key: \"State\", filters: [{ key: \"State\" }] });\r\n }\r\n\r\n _.forOwn(this.filterMap, (fmGroup) => {\r\n var group;\r\n _.forOwn(fmGroup, (fmFilter: ICollegeSearchFilter) => {\r\n if (fmFilter && fmFilter.model && !fmFilter.ignore) {\r\n var filter: any = {\r\n key: fmFilter.key\r\n }\r\n\r\n if (typeof fmFilter.model != \"boolean\") {\r\n filter.value = fmFilter.model;\r\n }\r\n\r\n if (fmFilter.value) {\r\n filter.value = fmFilter.value;\r\n }\r\n\r\n if (group == null) {\r\n group = {\r\n key: fmFilter.group,\r\n filters: []\r\n };\r\n }\r\n\r\n group.filters.push(filter);\r\n }\r\n if (angular.isArray(fmFilter)) {\r\n this.selectedFilters = this.selectedFilters.concat(fmFilter);\r\n }\r\n });\r\n\r\n if (group && group.filters.length > 0) {\r\n this.selectedFilters.push(group);\r\n }\r\n });\r\n\r\n this.search(page, pageSize, sortBy, sortDesc);\r\n this.pills = _.cloneDeep(this.filterMap);\r\n }\r\n\r\n\r\n removeFilter(filter) {\r\n filter.model = null;\r\n this.filterMap = this.pills;\r\n this.applyFilters();\r\n\r\n }\r\n\r\n removeSportsFilter(filter) {\r\n filter.model = null;\r\n this.filterMap = this.pills;\r\n\r\n this.filterMap.sports.selectedSports = _.remove(this.filterMap.sports.selectedSports, s => { return _.some(s, { key: filter.key }) });\r\n this.applyFilters();\r\n }\r\n\r\n\r\n getFilterMap(): ICollegeSearchFilterMap {\r\n return {\r\n name: {\r\n name: {\r\n key: \"Name\",\r\n group: \"Name\",\r\n name: \"Name\",\r\n showInFilterList: false\r\n }\r\n },\r\n schoolType: {\r\n twoYear: {\r\n key: \"TwoYear\",\r\n group: \"SchoolType\",\r\n name: \"Two Year\",\r\n showInFilterList: true\r\n },\r\n fourYear: {\r\n key: \"FourYear\",\r\n group: \"SchoolType\",\r\n name: \"Four Year\",\r\n showInFilterList: true\r\n },\r\n graduate: {\r\n key: \"Graduate\",\r\n group: \"SchoolType\",\r\n name: \"Graduate\",\r\n showInFilterList: true\r\n }\r\n },\r\n distance: {\r\n range: {\r\n key: \"Range\",\r\n group: \"Distance\",\r\n model: \"50\",\r\n name: \"Range\",\r\n ignore: true,\r\n showInFilterList: false\r\n },\r\n zipCode: {\r\n key: \"ZipCode\",\r\n group: \"Distance\",\r\n name: \"Zip code\",\r\n ignore: true,\r\n showInFilterList: false\r\n },\r\n withinRangeOf: {\r\n key: \"WithinRangeOf\",\r\n group: \"WithinRangeOf\",\r\n name: \"Distance\",\r\n showInFilterList: false\r\n }\r\n },\r\n programType: {\r\n certificate: {\r\n key: \"Certificate\",\r\n group: \"ProgramType\",\r\n name: \"Certificate\",\r\n showInFilterList: true\r\n },\r\n diploma: {\r\n key: \"Diploma\",\r\n group: \"ProgramType\",\r\n name: \"Diploma\",\r\n showInFilterList: true\r\n },\r\n associate: {\r\n key: \"Associate\",\r\n group: \"ProgramType\",\r\n name: \"Associate\",\r\n showInFilterList: true\r\n },\r\n bachelors: {\r\n key: \"Bachelors\",\r\n group: \"ProgramType\",\r\n name: \"Bachelors\",\r\n showInFilterList: true\r\n },\r\n masters: {\r\n key: \"Masters\",\r\n group: \"ProgramType\",\r\n name: \"Masters\",\r\n showInFilterList: true\r\n },\r\n doctoral: {\r\n key: \"Doctoral\",\r\n group: \"ProgramType\",\r\n name: \"Doctoral\",\r\n showInFilterList: true\r\n }\r\n },\r\n studentPopulation: {\r\n xs: {\r\n key: \"XS\",\r\n group: \"StudentPopulation\",\r\n value: \"1,2500\",\r\n name: \"Less than 2,500\",\r\n showInFilterList: true\r\n },\r\n s: {\r\n key: \"S\",\r\n group: \"StudentPopulation\",\r\n value: \"2501,5000\",\r\n name: \"2,501 - 5,000\",\r\n showInFilterList: true\r\n },\r\n m: {\r\n key: \"M\",\r\n group: \"StudentPopulation\",\r\n value: \"5001,10000\",\r\n name: \"5,001 - 10,000\",\r\n showInFilterList: true\r\n },\r\n l: {\r\n key: \"L\",\r\n group: \"StudentPopulation\",\r\n value: \"10001,15000\",\r\n name: \"10,001 - 15,000\",\r\n showInFilterList: true\r\n },\r\n xl: {\r\n key: \"XL\",\r\n group: \"StudentPopulation\",\r\n value: \"15001,20000\",\r\n name: \"15,001 - 20,000\",\r\n showInFilterList: true\r\n },\r\n xxl: {\r\n key: \"XXL\",\r\n group: \"StudentPopulation\",\r\n value: \"20001\",\r\n name: \"Greater than 20,000\",\r\n showInFilterList: true\r\n }\r\n },\r\n campusSetting: {\r\n urban: {\r\n key: \"Urban\",\r\n group: \"CampusSetting\",\r\n name: \"Urban\",\r\n showInFilterList: true\r\n },\r\n suburban: {\r\n key: \"Suburban\",\r\n group: \"CampusSetting\",\r\n name: \"Suburban\",\r\n showInFilterList: true\r\n },\r\n smallTown: {\r\n key: \"SmallTown\",\r\n group: \"CampusSetting\",\r\n name: \"Small town\",\r\n showInFilterList: true\r\n },\r\n rural: {\r\n key: \"Rural\",\r\n group: \"CampusSetting\",\r\n name: \"Rural\",\r\n showInFilterList: true\r\n }\r\n },\r\n publicPrivate: {\r\n public: {\r\n key: \"Public\",\r\n group: \"PublicPrivate\",\r\n name: \"Public\",\r\n showInFilterList: true\r\n },\r\n private: {\r\n key: \"Private\",\r\n group: \"PublicPrivate\",\r\n name: \"Private\",\r\n ignore: true,\r\n showInFilterList: false\r\n },\r\n religious: {\r\n key: \"PrivateReligious\",\r\n group: \"PublicPrivate\",\r\n name: \"Private/Religious\",\r\n showInFilterList: true\r\n },\r\n nonReligious: {\r\n key: \"Private\",\r\n group: \"PublicPrivate\",\r\n name: \"Private/Non-Religious\",\r\n showInFilterList: true\r\n }\r\n },\r\n religions: {\r\n religion: {\r\n key: \"Religions\",\r\n group: \"Religions\",\r\n name: \"Religions\",\r\n showInFilterList: true\r\n },\r\n adventist: {\r\n key: \"Adventist\", group: \"Religions\", name: \"Adventist\",\r\n showInFilterList: true\r\n },\r\n africanmethodistepiscopal: {\r\n key: \"AfricanMethodistEpiscopal\", group: \"Religions\", name: \"African Methodist-Episcopal\",\r\n showInFilterList: true\r\n },\r\n assemblyofgod: {\r\n key: \"AssemblyofGod\", group: \"Religions\", name: \"Assembly of God\",\r\n showInFilterList: true\r\n },\r\n baptist: {\r\n key: \"Baptist\", group: \"Religions\", name: \"Baptist\",\r\n showInFilterList: true\r\n },\r\n christianmissionaryalliance: {\r\n key: \"ChristianMissionaryAlliance\", group: \"Religions\", name: \"Christian & Missionary Alliance\",\r\n showInFilterList: true\r\n },\r\n christianscience: {\r\n key: \"ChristianScience\", group: \"Religions\", name: \"Christian Science\",\r\n showInFilterList: true\r\n },\r\n churchofchrist: {\r\n key: \"ChurchofChrist\", group: \"Religions\", name: \"Church of Christ\",\r\n showInFilterList: true\r\n },\r\n churchofgod: {\r\n key: \"ChurchofGod\", group: \"Religions\", name: \"Church of God\",\r\n showInFilterList: true\r\n },\r\n churchofthebrethren: {\r\n key: \"ChurchoftheBrethren\", group: \"Religions\", name: \"Church of the Brethren\",\r\n showInFilterList: true\r\n },\r\n congregational: {\r\n key: \"Congregational\", group: \"Religions\", name: \"Congregational (United Church of Christ)\",\r\n showInFilterList: true\r\n },\r\n disciplesofchrist: {\r\n key: \"DisciplesofChrist\", group: \"Religions\", name: \"Disciples of Christ\",\r\n showInFilterList: true\r\n },\r\n episcopal: {\r\n key: \"Episcopal\", group: \"Religions\", name: \"Episcopal (Anglican)\",\r\n showInFilterList: true\r\n },\r\n evangelical: {\r\n key: \"Evangelical\", group: \"Religions\", name: \"Evangelical\",\r\n showInFilterList: true\r\n },\r\n islamic: {\r\n key: \"Islamic\", group: \"Religions\", name: \"Islamic\",\r\n showInFilterList: true\r\n },\r\n interdenominational: {\r\n key: \"Interdenominational\", group: \"Religions\", name: \"Interdenominational Christian\",\r\n showInFilterList: true\r\n },\r\n jewish: {\r\n key: \"Jewish\", group: \"Religions\", name: \"Jewish\",\r\n showInFilterList: true\r\n },\r\n lutheran: {\r\n key: \"Lutheran\", group: \"Religions\", name: \"Lutheran\",\r\n showInFilterList: true\r\n },\r\n mennonite: {\r\n key: \"Mennonite\", group: \"Religions\", name: \"Mennonite\",\r\n showInFilterList: true\r\n },\r\n methodist: {\r\n key: \"Methodist\", group: \"Religions\", name: \"Methodist\",\r\n showInFilterList: true\r\n },\r\n moravian: {\r\n key: \"Moravian\", group: \"Religions\", name: \"Moravian\",\r\n showInFilterList: true\r\n },\r\n mormon: {\r\n key: \"Mormon\", group: \"Religions\", name: \"Mormon\",\r\n showInFilterList: true\r\n },\r\n nondenominational: {\r\n key: \"Nondenominational\", group: \"Religions\", name: \"Nondenominational Christian\",\r\n showInFilterList: true\r\n },\r\n other: {\r\n key: \"Other\", group: \"Religions\", name: \"Other\",\r\n showInFilterList: true\r\n },\r\n otherchristian: {\r\n key: \"OtherChristian\", group: \"Religions\", name: \"Other Christian\",\r\n showInFilterList: true\r\n },\r\n plymouthbrethren: {\r\n key: \"PlymouthBrethren\", group: \"Religions\", name: \"Plymouth Brethren\",\r\n showInFilterList: true\r\n },\r\n presbyterian: {\r\n key: \"Presbyterian\", group: \"Religions\", name: \"Presbyterian\",\r\n showInFilterList: true\r\n },\r\n quaker: {\r\n key: \"Quaker\", group: \"Religions\", name: \"Quaker(Society of Friends)\",\r\n showInFilterList: true\r\n },\r\n reformed: {\r\n key: \"Reformed\", group: \"Religions\", name: \"Reformed\",\r\n showInFilterList: true\r\n },\r\n catholic: {\r\n key: \"Catholic\", group: \"Religions\", name: \"Roman Catholic\",\r\n showInFilterList: true\r\n },\r\n wesleyan: {\r\n key: \"Wesleyan\", group: \"Religions\", name: \"Wesleyan\",\r\n showInFilterList: true\r\n }\r\n },\r\n studentHousing: {\r\n menOnly: {\r\n key: \"Menonly\",\r\n group: \"StudentHousing\",\r\n name: \"Men Only\",\r\n showInFilterList: true\r\n },\r\n womenOnly: {\r\n key: \"Womenonly\",\r\n group: \"StudentHousing\",\r\n name: \"Women Only\",\r\n showInFilterList: true\r\n },\r\n coedDorms: {\r\n key: \"CoedDorms\",\r\n group: \"StudentHousing\",\r\n name: \"Coed Dorms\",\r\n showInFilterList: true\r\n },\r\n coopHouse: {\r\n key: \"CoopHouse\",\r\n group: \"StudentHousing\",\r\n name: \"Coop Housing\",\r\n showInFilterList: true\r\n },\r\n greekHousing: {\r\n key: \"GreekHousing\",\r\n group: \"StudentHousing\",\r\n name: \"Fraternity/Sorority housing\",\r\n ignore: true,\r\n showInFilterList: false\r\n },\r\n fraternity: {\r\n key: \"FraternityHousingAvailable\",\r\n group: \"StudentHousing\",\r\n name: \"Fraternity housing\",\r\n showInFilterList: true\r\n },\r\n sorority: {\r\n key: \"SororityHousingAvailable\",\r\n group: \"StudentHousing\",\r\n name: \"Sorority housing\",\r\n showInFilterList: true\r\n },\r\n special: {\r\n key: \"SpecialHousing\",\r\n group: \"StudentHousing\",\r\n name: \"Special Housing\",\r\n showInFilterList: true\r\n }\r\n },\r\n onlineEducation: {\r\n degreeCourses: {\r\n key: \"OnlineDegreeCourses\",\r\n group: \"OnlineEducation\",\r\n name: \"Some online degree programs\",\r\n showInFilterList: true\r\n },\r\n degreePrograms: {\r\n key: \"OnlineDegreePrograms\",\r\n group: \"OnlineEducation\",\r\n name: \"All programs available online\",\r\n showInFilterList: true\r\n },\r\n entirelyOnline: {\r\n key: \"EntirelyOnlineSchool\",\r\n group: \"OnlineEducation\",\r\n name: \"Entirely online school\",\r\n showInFilterList: true\r\n }\r\n },\r\n gender: {\r\n mens: {\r\n key: \"Mens\",\r\n group: \"SingleSexOrCoed\",\r\n name: \"Men's College\",\r\n showInFilterList: true\r\n },\r\n womens: {\r\n key: \"Womens\",\r\n group: \"SingleSexOrCoed\",\r\n name: \"Women's College\",\r\n showInFilterList: true\r\n },\r\n coed: {\r\n key: \"Coed\",\r\n group: \"SingleSexOrCoed\",\r\n name: \"Coed\",\r\n showInFilterList: true\r\n }\r\n },\r\n tuition: {\r\n inState: {\r\n key: \"InStateTuition\",\r\n group: \"InStateTuition\",\r\n name: \"In-state Tuition\",\r\n showInFilterList: true\r\n },\r\n outState: {\r\n key: \"OutStateTuition\",\r\n group: \"OutStateTuition\",\r\n name: \"Out-of-state Tuition\",\r\n showInFilterList: true\r\n }\r\n },\r\n financialAid: {\r\n academicScholarships: {\r\n key: \"AcademicScholarships\",\r\n group: \"FinancialAid\",\r\n name: \"Academic scholarships\",\r\n showInFilterList: true\r\n },\r\n athleticScholarships: {\r\n key: \"AthleticScholarships\",\r\n group: \"FinancialAid\",\r\n name: \"Athletic scholarships\",\r\n showInFilterList: true\r\n },\r\n federalWorkStudy: {\r\n key: \"FederalWorkStudy\",\r\n group: \"FinancialAid\",\r\n name: \"Federal work study\",\r\n showInFilterList: true\r\n },\r\n federalGrantsAndScholarships: {\r\n key: \"FederalGrantsAndScholarships\",\r\n group: \"FinancialAid\",\r\n name: \"Federal/State grants\",\r\n showInFilterList: true\r\n },\r\n stateGrantsAndScholarships: {\r\n key: \"StateGrantsAndScholarships\",\r\n group: \"FinancialAid\",\r\n name: \"Federal/state grants\",\r\n showInFilterList: false\r\n },\r\n institutionalGrants: {\r\n key: \"InstitutionalGrants\",\r\n group: \"FinancialAid\",\r\n name: \"Institutional grants\",\r\n showInFilterList: true\r\n\r\n },\r\n parentLoans: {\r\n key: \"ParentLoans\",\r\n group: \"FinancialAid\",\r\n name: \"Parent loans\",\r\n showInFilterList: true\r\n }\r\n },\r\n specialPrograms: {\r\n acceleratedStudy: {\r\n key: \"AcceleratedStudy\",\r\n group: \"SpecialPrograms\",\r\n name: \"Accelerated study\",\r\n showInFilterList: true\r\n },\r\n distanceLearning: {\r\n key: \"DistanceLearning\",\r\n group: \"SpecialPrograms\",\r\n name: \"Distance learning\",\r\n showInFilterList: true\r\n },\r\n doubleMajors: {\r\n key: \"DoubleMajors\",\r\n group: \"SpecialPrograms\",\r\n name: \"Double majors\",\r\n showInFilterList: true\r\n },\r\n honorsProgram: {\r\n key: \"HonorsProgram\",\r\n group: \"SpecialPrograms\",\r\n name: \"Honors program\",\r\n showInFilterList: true\r\n },\r\n independentStudy: {\r\n key: \"IndependentStudy\",\r\n group: \"SpecialPrograms\",\r\n name: \"Independent study\",\r\n showInFilterList: true\r\n },\r\n internships: {\r\n key: \"Internships\",\r\n group: \"SpecialPrograms\",\r\n name: \"Internships\",\r\n showInFilterList: true\r\n },\r\n selfDesignedMajors: {\r\n key: \"SelfdesignedMajors\",\r\n group: \"SpecialPrograms\",\r\n name: \"Self-designed majors\",\r\n showInFilterList: true\r\n },\r\n studyAbroad: {\r\n key: \"StudyAbroad\",\r\n group: \"SpecialPrograms\",\r\n name: \"Study abroad\",\r\n showInFilterList: true\r\n }\r\n },\r\n studentFacultyRatio: {\r\n ratio: {\r\n key: \"StudentFacultyRatio\",\r\n group: \"StudentFacultyRatio\",\r\n name: \"Student:Faculty\",\r\n showInFilterList: true\r\n }\r\n },\r\n entranceDifficulty: {\r\n difficulty: {\r\n key: \"EntranceDifficulty\",\r\n group: \"EntranceDifficulty\",\r\n name: \"Entrance difficulty\",\r\n showInFilterList: true\r\n }\r\n },\r\n scores: {\r\n act: {\r\n key: \"ActScores\",\r\n group: \"ActScores\",\r\n name: \"ACT scores\",\r\n showInFilterList: true\r\n },\r\n sat: {\r\n key: \"SatScores\",\r\n group: \"SatScores\",\r\n name: \"SAT scores\",\r\n showInFilterList: true\r\n },\r\n satReading: {\r\n key: \"SatReading\",\r\n group: \"SatReading\",\r\n name: \"SAT reading\",\r\n showInFilterList: true\r\n },\r\n satMath: {\r\n key: \"SatMath\",\r\n group: \"SatMath\",\r\n name: \"SAT math\",\r\n showInFilterList: true\r\n },\r\n satWriting: {\r\n key: \"SatWriting\",\r\n group: \"SatWriting\",\r\n name: \"SAT writing\",\r\n showInFilterList: true\r\n }\r\n },\r\n admissionsPolicies: {\r\n earlyAction: {\r\n key: \"EarlyAction\",\r\n group: \"AdmissionsPolicies\",\r\n name: \"Early action\",\r\n showInFilterList: true\r\n },\r\n earlyDecision: {\r\n key: \"EarlyDecision\",\r\n group: \"AdmissionsPolicies\",\r\n name: \"Early decision\",\r\n showInFilterList: true\r\n },\r\n deferredAdmission: {\r\n key: \"DeferredAdmission\",\r\n group: \"AdmissionsPolicies\",\r\n name: \"Deferred admission\",\r\n showInFilterList: true\r\n },\r\n concurrentEnrollment: {\r\n key: \"ConcurrentEnrollment\",\r\n group: \"AdmissionsPolicies\",\r\n name: \"Concurrent enrollment\",\r\n showInFilterList: true\r\n }\r\n },\r\n historicallyBlack: {\r\n historicallyBlack: {\r\n key: \"HistoricallyBlack\",\r\n group: \"HistoricallyBlack\",\r\n name: \"Historically black\",\r\n showInFilterList: true\r\n }\r\n },\r\n sports: {\r\n options: { ignore: true },\r\n arch: { key: \"ARCH\", group: \"Sports\", name: \"Archery\", ignore: true, showInFilterList: false },\r\n badmi: { key: \"BADMI\", group: \"Sports\", name: \"Badminton\", ignore: true, showInFilterList: false },\r\n baseb: { key: \"BASEB\", group: \"Sports\", name: \"Baseball\", ignore: true, showInFilterList: false },\r\n bsktb: { key: \"BSKTB\", group: \"Sports\", name: \"Basketball\", ignore: true, showInFilterList: false },\r\n bicyc: { key: \"BICYC\", group: \"Sports\", name: \"Bicycling\", ignore: true, showInFilterList: false },\r\n bowlg: { key: \"BOWLG\", group: \"Sports\", name: \"Bowling\", ignore: true, showInFilterList: false },\r\n cheer: { key: \"CHEER\", group: \"Sports\", name: \"Cheerleading\", ignore: true, showInFilterList: false },\r\n crew: { key: \"CREW\", group: \"Sports\", name: \"Crew\", ignore: true, showInFilterList: false },\r\n xrun: { key: \"XRUN\", group: \"Sports\", name: \"Cross-Country\", ignore: true, showInFilterList: false },\r\n eques: { key: \"EQUES\", group: \"Sports\", name: \"Equestrian Sports\", ignore: true, showInFilterList: false },\r\n fence: { key: \"FENCE\", group: \"Sports\", name: \"Fencing\", ignore: true, showInFilterList: false },\r\n fhock: { key: \"FHOCK\", group: \"Sports\", name: \"Field Hockey\", ignore: true, showInFilterList: false },\r\n footb: { key: \"FOOTB\", group: \"Sports\", name: \"Football\", ignore: true, showInFilterList: false },\r\n golf: { key: \"GOLF\", group: \"Sports\", name: \"Golf\", ignore: true, showInFilterList: false },\r\n gymna: { key: \"GYMNA\", group: \"Sports\", name: \"Gymnastics\", ignore: true, showInFilterList: false },\r\n hocke: { key: \"HOCKE\", group: \"Sports\", name: \"Ice Hockey\", ignore: true, showInFilterList: false },\r\n lacro: { key: \"LACRO\", group: \"Sports\", name: \"Lacrosse\", ignore: true, showInFilterList: false },\r\n racqu: { key: \"RACQU\", group: \"Sports\", name: \"Racquetball\", ignore: true, showInFilterList: false },\r\n rifle: { key: \"RIFLE\", group: \"Sports\", name: \"Riflery\", ignore: true, showInFilterList: false },\r\n rugby: { key: \"RUGBY\", group: \"Sports\", name: \"Rugby\", ignore: true, showInFilterList: false },\r\n sailg: { key: \"SAILG\", group: \"Sports\", name: \"Sailing\", ignore: true, showInFilterList: false },\r\n skiin: { key: \"SKIIN\", group: \"Sports\", name: \"Skiing (downhill)\", ignore: true, showInFilterList: false },\r\n soccr: { key: \"SOCCR\", group: \"Sports\", name: \"Soccer\", ignore: true, showInFilterList: false },\r\n softb: { key: \"SOFTB\", group: \"Sports\", name: \"Softball\", ignore: true, showInFilterList: false },\r\n squas: { key: \"SQUAS\", group: \"Sports\", name: \"Squash\", ignore: true, showInFilterList: false },\r\n stre3: { key: \"STRE3\", group: \"Sports\", name: \"Strength & Conditioning\", ignore: true, showInFilterList: false },\r\n swim: { key: \"SWIM\", group: \"Sports\", name: \"Swimming\", ignore: true, showInFilterList: false },\r\n tenni: { key: \"TENNI\", group: \"Sports\", name: \"Tennis\", ignore: true, showInFilterList: false },\r\n track: { key: \"TRACK\", group: \"Sports\", name: \"Track and Field\", ignore: true, showInFilterList: false },\r\n ultim: { key: \"ULTIM\", group: \"Sports\", name: \"Ultimate Frisbee\", ignore: true, showInFilterList: false },\r\n vollb: { key: \"VOLLB\", group: \"Sports\", name: \"Volleyball\", ignore: true, showInFilterList: false },\r\n wpolo: { key: \"WPOLO\", group: \"Sports\", name: \"Water Polo\", ignore: true, showInFilterList: false },\r\n \"00024\": { key: \"00024\", group: \"Sports\", name: \"Water Skiing\", ignore: true, showInFilterList: false },\r\n wlift: { key: \"WLIFT\", group: \"Sports\", name: \"Weight Lifting\", ignore: true, showInFilterList: false },\r\n \"00031\": { key: \"00031\", group: \"Sports\", name: \"Winter (Indoor) Track\", ignore: true, showInFilterList: false },\r\n wrest: { key: \"WREST\", group: \"Sports\", name: \"Wrestling\", ignore: true, showInFilterList: false },\r\n selectedSports: []\r\n },\r\n state: {\r\n national: {\r\n key: \"State\",\r\n group: \"State\",\r\n name: \"National\",\r\n ignore: true,\r\n showInFilterList: true\r\n }\r\n },\r\n majors: {\r\n agriculturefoodandnaturalresources: { key: \"AgricultureFoodandNaturalResources\", group: \"ProgramsMajors\", name: \"Agriculture, Food and Natural Resources\", showInFilterList: true },\r\n architectureandconstruction: { key: \"ArchitectureAndConstruction\", group: \"ProgramsMajors\", name: \"Architecture and Construction\", showInFilterList: true },\r\n artsaudiovideotechnologyandcommunications: { key: \"ArtsAudioVideoTechnologyAndCommunications\", group: \"ProgramsMajors\", name: \"Arts, Audio-Video Technology and Communications\", showInFilterList: true },\r\n businessmanagementadministration: { key: \"BusinessManagementAdministration\", group: \"ProgramsMajors\", name: \"Business, Management and Administration\", showInFilterList: true },\r\n educationandtraining: { key: \"EducationAndTraining\", group: \"ProgramsMajors\", name: \"Education and Training\", showInFilterList: true },\r\n finance: { key: \"Finance\", group: \"ProgramsMajors\", name: \"Finance\", showInFilterList: true },\r\n governmentandpublicadministration: { key: \"GovernmentAndPublicAdministration\", group: \"ProgramsMajors\", name: \"Government and Public Administration\", showInFilterList: true },\r\n healthscience: { key: \"HealthScience\", group: \"ProgramsMajors\", name: \"Health Science\", showInFilterList: true },\r\n hospitalityandtourism: { key: \"HospitalityAndTourism\", group: \"ProgramsMajors\", name: \"Hospitality and Tourism\", showInFilterList: true },\r\n humanservices: { key: \"HumanServices\", group: \"ProgramsMajors\", name: \"Human Services\", showInFilterList: true },\r\n informationtechnology: { key: \"InformationTechnology\", group: \"ProgramsMajors\", name: \"Information Technology\", showInFilterList: true },\r\n lawpublicsafetycorrectionssecurity: { key: \"LawPublicSafetyCorrectionsSecurity\", group: \"ProgramsMajors\", name: \"Law, Public Safety, Corrections and Security\", showInFilterList: true },\r\n manufacturing: { key: \"Manufacturing\", group: \"ProgramsMajors\", name: \"Manufacturing\", showInFilterList: true },\r\n marketing: { key: \"Marketing\", group: \"ProgramsMajors\", name: \"Marketing\", showInFilterList: true },\r\n sciencetechengineeringmath: { key: \"ScienceTechEngineeringMath\", group: \"ProgramsMajors\", name: \"Science, Technology, Engineering and Mathematics\", showInFilterList: true },\r\n transportationdistributionlogistics: { key: \"TransportationDistributionLogistics\", group: \"ProgramsMajors\", name: \"Transportation, Distribution and Logistics\", showInFilterList: true },\r\n },\r\n applicationFee: {\r\n applicationFee: {\r\n showInFilterList: true,\r\n key: \"ApplicationFee\",\r\n group: \"ApplicationFee\",\r\n name: \"Free App\",\r\n ignore: false\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n angular.module(\"app\").controller(CampusSearchLeft.controllerId, CampusSearchLeft);\r\n\r\n var coords = [{ latitude: 33.7963, longitude: -78.4850 },\r\n { latitude: 34.8037, longitude: -79.6742 },\r\n { latitude: 34.8206, longitude: -80.8003 },\r\n { latitude: 34.9377, longitude: -80.7880 },\r\n { latitude: 35.1019, longitude: -80.9377 },\r\n { latitude: 35.0356, longitude: -81.0379 },\r\n { latitude: 35.1457, longitude: -81.0324 },\r\n { latitude: 35.1660, longitude: -81.3867 },\r\n { latitude: 35.1985, longitude: -82.2739 },\r\n { latitude: 35.2041, longitude: -82.3933 },\r\n { latitude: 35.0637, longitude: -82.7765 },\r\n { latitude: 35.0817, longitude: -82.7861 },\r\n { latitude: 34.9996, longitude: -83.1075 },\r\n { latitude: 34.9918, longitude: -83.6183 },\r\n { latitude: 34.9918, longitude: -84.3201 },\r\n { latitude: 35.2131, longitude: -84.2885 },\r\n { latitude: 35.2680, longitude: -84.2226 },\r\n { latitude: 35.2310, longitude: -84.1113 },\r\n { latitude: 35.2815, longitude: -84.0454 },\r\n { latitude: 35.4058, longitude: -84.0248 },\r\n { latitude: 35.4719, longitude: -83.9424 },\r\n { latitude: 35.5166, longitude: -83.8559 },\r\n { latitude: 35.5512, longitude: -83.6938 },\r\n { latitude: 35.5680, longitude: -83.5181 },\r\n { latitude: 35.6327, longitude: -83.3849 },\r\n { latitude: 35.7142, longitude: -83.2475 },\r\n { latitude: 35.7799, longitude: -82.9962 },\r\n { latitude: 35.8445, longitude: -82.9276 },\r\n { latitude: 35.9224, longitude: -82.8191 },\r\n { latitude: 35.9958, longitude: -82.7710 },\r\n { latitude: 36.0613, longitude: -82.6419 },\r\n { latitude: 35.9702, longitude: -82.6103 },\r\n { latitude: 35.9547, longitude: -82.5677 },\r\n { latitude: 36.0236, longitude: -82.4730 },\r\n { latitude: 36.0669, longitude: -82.4194 },\r\n { latitude: 36.1168, longitude: -82.3535 },\r\n { latitude: 36.1345, longitude: -82.2862 },\r\n { latitude: 36.1467, longitude: -82.1461 },\r\n { latitude: 36.1035, longitude: -82.1228 },\r\n { latitude: 36.1268, longitude: -82.0267 },\r\n { latitude: 36.2797, longitude: -81.9360 },\r\n { latitude: 36.3527, longitude: -81.7987 },\r\n { latitude: 36.3361, longitude: -81.7081 },\r\n { latitude: 36.5880, longitude: -81.6724 },\r\n { latitude: 36.5659, longitude: -80.7234 },\r\n { latitude: 36.5438, longitude: -80.2977 },\r\n { latitude: 36.5449, longitude: -79.6729 },\r\n { latitude: 36.5449, longitude: -77.2559 },\r\n { latitude: 36.5505, longitude: -75.7562 },\r\n { latitude: 36.3129, longitude: -75.7068 },\r\n { latitude: 35.7131, longitude: -75.4129 },\r\n { latitude: 35.2041, longitude: -75.4720 },\r\n { latitude: 34.9794, longitude: -76.0748 },\r\n { latitude: 34.5258, longitude: -76.4951 },\r\n { latitude: 34.5880, longitude: -76.8109 },\r\n { latitude: 34.5314, longitude: -77.1378 },\r\n { latitude: 34.3910, longitude: -77.4481 },\r\n { latitude: 34.0481, longitude: -77.7983 },\r\n { latitude: 33.7666, longitude: -77.9260 },\r\n { latitude: 33.7963, longitude: -78.4863 }];\r\n\r\n\r\n\r\n}","module Cfnc\r\n{\r\n \"use strict\";\r\n\r\n export interface INameValue\r\n {\r\n name: T;\r\n value: A;\r\n }\r\n\r\n export class NameValue implements INameValue\r\n {\r\n name: string = \"\";\r\n value: string = \"\";\r\n }\r\n}","module Cfnc\r\n{\r\n \"use strict\";\r\n\r\n export class SavedSearch\r\n {\r\n name: string;\r\n filters: Array;\r\n \r\n constructor( name: string, filters: Array )\r\n {\r\n this.name = name;\r\n \r\n this.filters = filters;\r\n \r\n }\r\n }\r\n}","/// \r\nmodule Cfnc\r\n{\r\n\r\n export class SubCatAccordion \r\n {\r\n selected: boolean = false;\r\n kOpen: boolean = false;\r\n typeCbs: Array;\r\n value: string;\r\n returnFilters: Array;\r\n }\r\n}","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\"\r\n\r\n interface ICareerDetails {\r\n }\r\n\r\n\r\n class CareerDetails implements ICareerDetails {\r\n static $inject: Array = [\"common\", \"Restangular\", \"$routeParams\", \"$q\", \"$uibModal\", \"$window\", \"config\", \"$interval\"];\r\n static controllerId: string = \"careerDetails\";\r\n private log;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n urlName: string;\r\n occupation: IOccupation;\r\n crossIndustryUSWages: IUSWages;\r\n crossIndustryNCWages: INCWages;\r\n majors: IMajor[];\r\n institutions: IInstitution[];\r\n ncMSAWages: any;\r\n loading: boolean = true;\r\n salaryGuage: any;\r\n salaryBellcurve: any;\r\n educationPiechart: any;\r\n jobsPer1000: number;\r\n\r\n interval: any;\r\n time: number;\r\n \r\n\r\n\r\n constructor(private common: ICommonFactory, private Restangular: Restangular.IService, private $routeParams: ng.route.IRouteParamsService, private $q: ng.IQService, private $uibModal: angular.ui.bootstrap.IModalService, private $window: ng.IWindowService, private config: IConfig, private $interval: ng.IIntervalService) {\r\n this.log = common.logger.getLogFn(CareerDetails.controllerId);\r\n this.logError = common.logger.getLogFn(CareerDetails.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(CareerDetails.controllerId, \"success\");\r\n this.urlName = $routeParams.occupation;\r\n this.activate();\r\n\r\n \r\n }\r\n\r\n activate() {\r\n var promises = [this.getOccupation()];\r\n this.common.activateController(promises, CareerDetails.controllerId)\r\n .then(() => {\r\n this.time = 10;\r\n this.interval = this.$interval(() => {\r\n this.time -= 1;\r\n if (this.time <= 0) {\r\n this.$interval.cancel(this.interval);\r\n this.$window.location.href = this.config.ncCareersUrl + \"/cfncredirect?q=\" + encodeURIComponent(\"/occupation-profile/\" + this.occupation.occCode.replace(\"-\", \"\").substring(0, 6) + \"/1284\");\r\n }\r\n }, 1000)\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getOccupation(): ng.IPromise {\r\n return this.Restangular.all(\"careers\").all(\"occupations\").one(this.urlName).get()\r\n .then((result) => {\r\n this.occupation = result;\r\n \r\n },\r\n (reason) => {\r\n console.log(reason);\r\n });\r\n }\r\n\r\n getUSWageData(): ng.IPromise {\r\n return this.Restangular.oneUrl(\"uswages\", this.occupation.usWageDataUrl).get({ naics: \"000000\" })\r\n .then((result) => {\r\n if (result.totalCount > 0) {\r\n this.crossIndustryUSWages = result.results[0];\r\n this.salaryGuage.series[0].data = this.crossIndustryUSWages.annualMeanWage ? [this.crossIndustryUSWages.annualMeanWage] : null;\r\n\r\n }\r\n }, (reason) => {\r\n console.log(reason);\r\n });\r\n }\r\n\r\n getNCWageData(): ng.IPromise {\r\n var defer = this.$q.defer();\r\n\r\n var ncwages = this.Restangular.oneUrl(\"ncwages\", this.occupation.ncWageDataUrl).get()\r\n .then((result): INCWages => {\r\n if (result.totalCount > 0) {\r\n return result.results[0];\r\n }\r\n });\r\n\r\n var uswages = this.Restangular.oneUrl(\"uswages\", this.occupation.stateWageDataUrl).get()\r\n .then((result): IUSWages => {\r\n if (result.totalCount > 0) {\r\n return result.results[0];\r\n\r\n }\r\n });\r\n\r\n var ncmsawages = this.Restangular.oneUrl(\"ncmsawages\", this.occupation.ncWageDataUrl).get({ areaType: \"NCMSA\" });\r\n\r\n this.$q.all([ncwages, uswages, ncmsawages]).then((values) => {\r\n this.crossIndustryNCWages = values[0];\r\n this.jobsPer1000 = values[1].jobsPer1000;\r\n\r\n this.salaryBellcurve.series[0].name = \"Annual Salary\";\r\n this.salaryBellcurve.series[0].data = [];\r\n\r\n if (values[1].annual10thPercentileWage) {\r\n this.salaryBellcurve.series[0].data.push([10, values[1].annual10thPercentileWage]);\r\n }\r\n\r\n if (values[1].annual25thPercentileWage) {\r\n this.salaryBellcurve.series[0].data.push([25, values[1].annual25thPercentileWage]);\r\n }\r\n\r\n if (values[1].annualMedianWage){\r\n this.salaryBellcurve.series[0].data.push([50, values[1].annualMedianWage]);\r\n }\r\n\r\n if (values[1].annual75thPercentileWage) {\r\n this.salaryBellcurve.series[0].data.push([75, values[1].annual75thPercentileWage]);\r\n }\r\n\r\n if (values[1].annual90thPercentileWage) {\r\n this.salaryBellcurve.series[0].data.push([90, values[1].annual90thPercentileWage]);\r\n }\r\n\r\n this.salaryBellcurve.series[0].data.unshift([0, null]);\r\n this.salaryBellcurve.series[0].data.push([100, null]);\r\n\r\n this.ncMSAWages = _.filter(values[2].results, (x) => { return [37000056, 37000091, 37000041, 37000142, 37000003].indexOf(x.areaId) > -1 });\r\n\r\n defer.resolve();\r\n }, (reason) => {\r\n console.log(reason);\r\n });\r\n\r\n return defer.promise;\r\n }\r\n\r\n getSchoolsAndPrograms(): ng.IPromise {\r\n return this.Restangular.oneUrl(\"schoolsandprograms\", this.occupation.programsAndMajorsUrl).get()\r\n .then((result) => {\r\n this.majors = result.majors;\r\n this.institutions = result.institutions;\r\n }, (reason) => {\r\n console.log(reason);\r\n });\r\n }\r\n\r\n saveCareer() {\r\n sessionStorage.setItem(\"careers.command\", \"save\");\r\n this.common.authentication.authenticate(true).then(() => {\r\n sessionStorage.removeItem(\"careers.command\");\r\n if (!this.occupation.isSaved) {\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: \"/app/common/confirmationModal.html\",\r\n controller: \"confirmationModal\",\r\n resolve: {\r\n data: {\r\n title: \"Save Career\",\r\n content: `Are you sure you want to add ${this.occupation.occTitle} to your list of Saved Careers?`\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(result => {\r\n if (result) {\r\n this.Restangular.all(\"careers/savedcareers\").post({ OCCCode: this.occupation.occCode }).then(() => {\r\n this.occupation.isSaved = true;\r\n this.logSuccess(\"Saved successfully to your Saved Careers\", \"Saved successfully to your Saved Colleges.\", true);\r\n }, (reason) => {\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n });\r\n } else {\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/common/confirmationModal.html',\r\n controller: 'confirmationModal',\r\n resolve: {\r\n data: {\r\n title: \"Remove Saved College\",\r\n content: `Are you sure you wish to remove ${this.occupation.occTitle} from your Saved Careers?`\r\n }\r\n }\r\n });\r\n modalInstance.result.then((result) => {\r\n if (result) {\r\n this.Restangular.one(\"careers/savedcareers\").remove({ occCode: this.occupation.occCode }).then((results) => {\r\n this.occupation.isSaved = false;\r\n this.logSuccess(\"Successuflly removed from your Saved Colleges.\", null, true);\r\n }, (reason) => {\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n });\r\n }\r\n\r\n });\r\n }\r\n\r\n\r\n get guageOptions() {\r\n return {\r\n title: {\r\n text: null\r\n },\r\n chart: {\r\n height: 200,\r\n \r\n type: 'solidgauge',\r\n },\r\n pane: {\r\n center: ['50%','90%'],//['50%', '90%'],\r\n size: '175%',\r\n startAngle: -90,\r\n endAngle: 90,\r\n background: {\r\n backgroundColor: '#EEE',\r\n innerRadius: '60%',\r\n outerRadius: '100%',\r\n shape: 'arc'\r\n }\r\n },\r\n tooltip: {\r\n enabled: false\r\n },\r\n yAxis: {\r\n stops: [\r\n [0, '#36845b'], // green\r\n ],\r\n lineWidth: 0,\r\n minorTickInterval: null,\r\n tickAmount: 2,\r\n title: {\r\n y: -70,\r\n },\r\n labels: {\r\n y: 16\r\n }\r\n },\r\n plotOptions: {\r\n solidgauge: {\r\n dataLabels: {\r\n y: 5,\r\n borderWidth: 0,\r\n useHTML: false,\r\n format:\r\n '
' +\r\n '${y:,.0f}
' +\r\n '
',\r\n },\r\n tooltip: {\r\n valuePrefix: '$'\r\n }\r\n },\r\n },\r\n credits: {\r\n enabled: false\r\n },\r\n series: [{\r\n id: \"series-0\",\r\n data: []\r\n }]\r\n };\r\n }\r\n\r\n\r\n get bellcurveOptions() {\r\n return {\r\n title: {\r\n text: null\r\n },\r\n chart: {\r\n height: 300\r\n },\r\n yAxis: [{\r\n id: 'y-axis',\r\n title: {\r\n text: null\r\n }\r\n }, {\r\n id: 'y-axis2',\r\n visible: false\r\n }],\r\n xAxis: [{\r\n id: 'x-axis',\r\n title: {\r\n text: 'Percentile'\r\n },\r\n alignTicks: false\r\n }, {\r\n id: 'x-axis2',\r\n visible: false\r\n }],\r\n series: [{\r\n id: \"series-0\",\r\n type: 'line',\r\n color: '#b1e460',\r\n\r\n lineWidth: 4,\r\n accessibility: {\r\n exposeAsGroupOnly: true\r\n },\r\n marker: {\r\n radius: 7\r\n },\r\n tooltip: {\r\n valuePrefix: '$',\r\n headerFormat: '{point.key}%
'\r\n },\r\n data: []\r\n },\r\n {\r\n id: \"series-1\",\r\n name: 'Percentile',\r\n type: 'bellcurve',\r\n xAxis: 'x-axis2',\r\n yAxis: 'y-axis2',\r\n baseSeries: \"series-0\",\r\n zIndex: -1,\r\n color: '#154b40',\r\n enableMouseTracking: false\r\n\r\n }]\r\n };\r\n }\r\n\r\n get piechartOptions() {\r\n return {\r\n chart: {\r\n type: 'pie'\r\n },\r\n title: {\r\n text: 'Level of Education'\r\n },\r\n subtitle: {\r\n text: null\r\n },\r\n plotOptions: {\r\n series: {\r\n dataLabels: {\r\n enabled: false,\r\n format: '{point.name}: {point.y:.1f}%'\r\n },\r\n showInLegend: true,\r\n }\r\n },\r\n tooltip: {\r\n headerFormat: '{series.name}
',\r\n pointFormat: '{point.name}: {point.y:.2f}% of total
'\r\n },\r\n legend: {\r\n labelFormatter: function () {\r\n var i = this.name.indexOf(\" - \");\r\n if (i > 0) {\r\n return this.name.substring(0, i);\r\n }\r\n\r\n return this.name;\r\n }\r\n },\r\n series: [\r\n {\r\n name: \"Education Levels\",\r\n colorByPoint: true,\r\n data: []\r\n }\r\n ]\r\n\r\n };\r\n }\r\n\r\n\r\n }\r\n angular.module(\"app\").controller(CareerDetails.controllerId, CareerDetails);\r\n} ","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface ICareerSearch {\r\n occupations: any[];\r\n searchTerm: string;\r\n restResult: IRestResult\r\n page: number;\r\n pageSize: number;\r\n careerClusters: ICareerCluster[];\r\n interestAreaId: number;\r\n interestProfilerResults: IInterestAreaResult[];\r\n careerClusterSurveyResults: ICareerClusterResult[];\r\n basicSkillsSurveyResults: ICategoryResult[];\r\n workValuesResults: IWorkValueSorterResult[];\r\n careerKeyResults: IInterestAreaResult[];\r\n skillId: number;\r\n workValueId: number;\r\n searchType: string;\r\n searchId: number;\r\n loading: boolean;\r\n }\r\n\r\n interface IOccupationResult {\r\n id: number;\r\n occCode: string;\r\n occTitle: string;\r\n description: string;\r\n url: string;\r\n urlName: string;\r\n }\r\n\r\n interface ICareerCluster {\r\n id: number;\r\n code: number;\r\n title: string;\r\n description: string;\r\n }\r\n\r\n interface ISearchParams {\r\n search?: string;\r\n pageSize?: number;\r\n page?: number;\r\n careerClusterId?: number;\r\n interestAreaId?: number;\r\n skillId?: number;\r\n searchType?: string;\r\n searchId?: number;\r\n }\r\n\r\n class CareerSearch implements ICareerSearch {\r\n static controllerId: string = \"careerSearch\";\r\n static $inject: string[] = [\"$scope\", \"common\", \"config\", \"Restangular\", \"$location\", \"$routeParams\", \"$q\", \"$anchorScroll\", \"$uibModal\"];\r\n\r\n occupations: any[];\r\n searchTerm: string;\r\n restResult: IRestResult\r\n page: number;\r\n pageSize: number = 10;\r\n careerClusters: ICareerCluster[];\r\n baseUrl: string;\r\n careerClusterId: number;\r\n interestAreaId: number;\r\n interestProfilerResults: IInterestAreaResult[];\r\n careerClusterSurveyResults: ICareerClusterResult[];\r\n basicSkillsSurveyResults: ICategoryResult[];\r\n workValuesResults: IWorkValueSorterResult[];\r\n careerKeyResults: IInterestAreaResult[];\r\n skillId: number;\r\n workValueId: number;\r\n searchType: string;\r\n searchId: number;\r\n loading: boolean = true;\r\n\r\n private log;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n\r\n\r\n constructor(private $scope: ng.IScope, private common: ICommonFactory, private config: IConfig, private Restangular: Restangular.IService, private $location: ng.ILocationService, private $routeParams: ng.route.IRouteParamsService, private $q: ng.IQService, private $anchorScroll: ng.IAnchorScrollService, private $uibModal: angular.ui.bootstrap.IModalService) {\r\n\r\n this.log = common.logger.getLogFn(CareerSearch.controllerId);\r\n this.logError = common.logger.getLogFn(CareerSearch.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(CareerSearch.controllerId, \"success\");\r\n this.baseUrl = config.ncCareersUrl;\r\n\r\n this.activate();\r\n }\r\n\r\n\r\n activate() {\r\n var promises = [this.getCareerClusters(), this.getAssessmentResults()];\r\n\r\n\r\n if (Object.keys(this.$location.search()).length > 0) {\r\n this.searchTerm = this.$location.search().s;\r\n this.page = this.$location.search().p;\r\n\r\n this.searchType = this.$location.search().searchType;\r\n this.searchId = this.$location.search().searchId;\r\n }\r\n\r\n var command = sessionStorage.getItem(\"careers.command\");\r\n\r\n if (command == \"savedcareers\") {\r\n this.searchType = \"savedcareers\";\r\n }\r\n\r\n if (command == \"save\") {\r\n var params = JSON.parse(sessionStorage.getItem(\"careers.parameters\"));\r\n if (params) {\r\n promises.push(this.getCareers(params));\r\n }\r\n\r\n var occupation = JSON.parse(sessionStorage.getItem(\"careers.occupation\"));\r\n if (occupation) {\r\n this.saveCareer(occupation);\r\n }\r\n }\r\n\r\n if (this.searchType) {\r\n promises.push(this.getCareers(this.getParams()));\r\n }\r\n else if (this.searchTerm) {\r\n promises.push(this.search(this.page));\r\n }\r\n else {\r\n this.resetSearch();\r\n }\r\n\r\n this.$scope.$on(\"$routeUpdate\", () => {\r\n //if (this.$location.hash()) {\r\n // this.getState();\r\n //}\r\n //else if (Object.keys(this.$location.search()).length > 0) {\r\n // this.getState();\r\n //}\r\n this.getState();\r\n });\r\n\r\n \r\n this.common.activateController(promises, CareerSearch.controllerId).finally(() => {\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getAssessmentResults() {\r\n var defer = this.$q.defer();\r\n this.common.authentication.isLoggedIn().then((loggedIn) => {\r\n if (loggedIn) {\r\n this.$q.all([\r\n this.getInterestProfilerSession(),\r\n this.getCareerClusterSurveySession(),\r\n this.getBasicSkillsSession(),\r\n this.getWorkValuesSession(),\r\n this.getCareerKeySession()\r\n ]).then(() => {\r\n defer.resolve();\r\n }, (reason) => {\r\n this.logError(reason.message, reason, false);\r\n defer.resolve();\r\n });\r\n } else {\r\n defer.resolve();\r\n }\r\n });\r\n return defer.promise;\r\n }\r\n\r\n getState() {\r\n if (this.$location.state()) {\r\n this.searchTerm = this.$location.state().searchTerm;\r\n this.restResult = this.$location.state().restResult ? JSON.parse(this.$location.state().restResult) : null;\r\n this.page = this.$location.state().page ? this.$location.state().page : 1;\r\n this.careerClusterId = this.$location.state().careerClusterId ? this.$location.state().careerClusterId : null;\r\n this.interestAreaId = this.$location.state().interestAreaId ? this.$location.state().interestAreaId : null;\r\n this.skillId = this.$location.state().skillId ? this.$location.state().skillId : null;\r\n this.workValueId = this.$location.state().workValueId ? this.$location.state().workValueId : null;\r\n\r\n this.searchType = this.$location.state().searchType ? this.$location.state().searchType : null;\r\n this.searchId = this.$location.state().searchId ? this.$location.state().searchId : null;\r\n }\r\n\r\n if (this.restResult == null &&\r\n (this.searchTerm || this.careerClusterId || this.interestAreaId || this.skillId || this.workValueId || this.searchId || this.searchType)) {\r\n this.search(this.page);\r\n }\r\n }\r\n\r\n saveState() {\r\n var state = {\r\n searchTerm: this.searchTerm,\r\n restResult: JSON.stringify(this.restResult),\r\n page: this.page,\r\n searchType: this.searchType,\r\n searchId: this.searchId\r\n };\r\n\r\n\r\n this.$location.search({ s: this.searchTerm, p: this.page, searchType: this.searchType, searchId: this.searchId });\r\n return this.$location.state(state);\r\n }\r\n\r\n getCareerClusters() {\r\n return this.Restangular.all(\"careers\").one(\"clusters\").get()\r\n .then((result: ICareerCluster[]) => {\r\n this.careerClusters = result;\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n getCareers(params: ISearchParams | string): angular.IPromise {\r\n this.loading = true;\r\n if (typeof (params) == \"string\") {\r\n return this.Restangular.oneUrl(\"occupations\", params).get()\r\n .then((result) => {\r\n this.restResult = result;\r\n this.saveState();\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n }, () => this.loading = false);\r\n }\r\n else {\r\n var defer = this.common.$q.defer();\r\n var authDefer = this.common.$q.defer();\r\n if (params.searchType == \"savedcareers\") {\r\n sessionStorage.setItem(\"careers.command\", \"savedcareers\");\r\n authDefer.promise = this.common.authentication.authenticate(true)\r\n .then(() => {\r\n sessionStorage.removeItem(\"careers.command\");\r\n }, reasone => { },\r\n () => this.loading = false);\r\n }\r\n else {\r\n this.loading = false;\r\n authDefer.resolve();\r\n }\r\n\r\n authDefer.promise.then(() => {\r\n defer.promise = this.Restangular.all(\"careers\").one(\"occupations\").get(params)\r\n .then((result) => {\r\n this.restResult = result;\r\n this.saveState();\r\n defer.resolve();\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n defer.reject(reason);\r\n }, () => this.loading = false);\r\n })\r\n\r\n return defer.promise;\r\n }\r\n }\r\n\r\n\r\n search(page) {\r\n this.restResult = null;\r\n this.page = null;\r\n this.careerClusterId = null;\r\n this.interestAreaId = null;\r\n this.skillId = null;\r\n this.workValueId = null;\r\n this.searchType = null\r\n this.searchId = null\r\n this.page = page;\r\n\r\n var params = this.getParams()\r\n\r\n return this.getCareers(params);\r\n }\r\n\r\n selectSearchType(searchType: string, id: number) {\r\n this.searchType = searchType;\r\n this.searchId = id;\r\n\r\n var params = this.getParams();\r\n\r\n this.getCareers(params);\r\n this.$anchorScroll(\"top\");\r\n }\r\n\r\n\r\n resetSearch(clearSearchTerm?: boolean) {\r\n if (clearSearchTerm) {\r\n this.searchTerm = null;\r\n }\r\n\r\n this.searchTerm = null;\r\n this.restResult = null;\r\n this.page = null;\r\n this.careerClusterId = null;\r\n this.interestAreaId = null;\r\n this.skillId = null;\r\n this.workValueId = null;\r\n this.searchType = null\r\n this.searchId = null\r\n\r\n this.saveState();\r\n \r\n }\r\n\r\n getParams(): ISearchParams {\r\n return {\r\n search: this.searchTerm,\r\n pageSize: this.pageSize,\r\n page: this.page,\r\n searchType: this.searchType,\r\n searchId: this.searchId\r\n }\r\n }\r\n\r\n getAssessmentSession(id: number) {\r\n return this.Restangular.one(\"assessments\", id).one(\"sessions\").get()\r\n .then((sessions: IAssessmentSession[]) => {\r\n var lastSession = _.first(_.orderBy(_.reject(sessions, (s) => {\r\n return s.dateCompleted == null || s.isNCDCAssessment == true;\r\n }), [\"dateCompleted\"], [\"desc\"]));\r\n return lastSession;\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n getCareerClusterSurveySession() {\r\n this.getAssessmentSession(2).then((session: IAssessmentSession) => {\r\n if (session) {\r\n this.Restangular.all(\"assessments/career-cluster-survey\").one(\"sessions\", session.id).one(\"results\").get()\r\n .then((result: ICareerClusterResult[]) => {\r\n result = _.orderBy(result, [\"count\"], [\"desc\"]);\r\n this.careerClusterSurveyResults = _.filter(result, (ar) => ar.count >= result[2].count && ar.count != 0);\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n });\r\n }\r\n\r\n getInterestProfilerSession() {\r\n return this.Restangular.one(\"assessments\", 1).one(\"sessions\").get()\r\n .then((sessions: IAssessmentSession[]) => {\r\n var lastSession = _.first(_.orderBy(_.reject(sessions, (s) => {\r\n return s.dateCompleted == null || s.isNCDCAssessment == true;\r\n }), [\"dateCompleted\"], [\"desc\"]));\r\n\r\n if (lastSession) {\r\n this.Restangular.all(\"assessments/interest-profiler\").one(\"sessions\", lastSession.id).one(\"results\").get()\r\n .then((result) => {\r\n this.interestProfilerResults = result;\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n getBasicSkillsSession() {\r\n this.getAssessmentSession(3).then((session: IAssessmentSession) => {\r\n if (session) {\r\n this.Restangular.all(\"assessments/basic-skills-survey\").one(\"sessions\", session.id).one(\"results\").get()\r\n .then((result: ICategoryResult[]) => {\r\n result = _.orderBy(result, [\"count\"], [\"desc\"]);\r\n this.basicSkillsSurveyResults = _.filter(result, (ar) => ar.count >= result[2].count && ar.count != 0);\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n })\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n getWorkValuesSession() {\r\n this.getAssessmentSession(5).then((session: IAssessmentSession) => {\r\n if (session) {\r\n this.Restangular.all(\"assessments/work-values-sorter\").one(\"sessions\", session.id).one(\"results\").get()\r\n .then((result: IWorkValueSorterResult[]) => {\r\n result = _.orderBy(result, [\"score\"], [\"desc\"]);\r\n this.workValuesResults = _.filter(result, (ar) => ar.score >= result[2].score && ar.score != 0);\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n })\r\n }\r\n });\r\n }\r\n\r\n getCareerKeySession() {\r\n this.getAssessmentSession(6).then((session: IAssessmentSession) => {\r\n if (session) {\r\n this.Restangular.all(\"assessments/the-career-key\").one(\"sessions\", session.id).one(\"results\").get()\r\n .then((result: IInterestAreaResult[]) => {\r\n result = _.orderBy(result, [\"count\"], [\"desc\"]);\r\n this.careerKeyResults = _.filter(result, (ar) => ar.count >= result[2].count && ar.count != 0);\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n })\r\n }\r\n });\r\n }\r\n\r\n pageResults() {\r\n this.getCareers(this.getParams());\r\n this.$anchorScroll(\"top\");\r\n }\r\n\r\n saveCareer(occupation) {\r\n if (sessionStorage.getItem(\"careers.command\") == null) {\r\n sessionStorage.setItem(\"careers.command\", \"save\");\r\n sessionStorage.setItem(\"careers.parameters\", JSON.stringify(this.getParams()));\r\n sessionStorage.setItem(\"careers.occupation\", JSON.stringify(occupation));\r\n }\r\n\r\n this.common.authentication.authenticate(true).then(() => {\r\n sessionStorage.removeItem(\"careers.command\");\r\n sessionStorage.removeItem(\"careers.parameters\");\r\n sessionStorage.removeItem(\"careers.occupation\");\r\n\r\n if (!occupation.isSaved) {\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: \"/app/common/confirmationModal.html\",\r\n controller: \"confirmationModal\",\r\n resolve: {\r\n data: {\r\n title: \"Save Career\",\r\n content: `Are you sure you want to add ${occupation.occTitle} to your list of Saved Careers?`\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(result => {\r\n if (result) {\r\n this.Restangular.all(\"careers/savedcareers\").post({ OCCCode: occupation.occCode }).then(() => {\r\n occupation.isSaved = true;\r\n this.logSuccess(\"Saved successfully to your Saved Careers\", \"Saved successfully to your Saved Colleges.\", true);\r\n }, (reason) => {\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n });\r\n } else {\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/common/confirmationModal.html',\r\n controller: 'confirmationModal',\r\n resolve: {\r\n data: {\r\n title: \"Remove Saved College\",\r\n content: `Are you sure you wish to remove ${occupation.occTitle} from your Saved Careers?`\r\n }\r\n }\r\n });\r\n modalInstance.result.then((result) => {\r\n if (result) {\r\n this.Restangular.one(\"careers/savedcareers\").remove({ occCode: occupation.occCode }).then((results) => {\r\n occupation.isSaved = false;\r\n this.logSuccess(\"Successuflly removed from your Saved Colleges.\", null, true);\r\n }, (reason) => {\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n });\r\n }\r\n\r\n });\r\n }\r\n\r\n }\r\n\r\n\r\n angular.module(\"app\").controller(CareerSearch.controllerId, CareerSearch);\r\n}","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface ICollegePlanningScope extends ng.IScope {\r\n vm: CollegePlanning;\r\n actions: any;\r\n reasons: any;\r\n dateOptions: any;\r\n }\r\n\r\n interface ICollegePlanning {\r\n }\r\n\r\n interface EnrollReason { id: number; name: string; }\r\n\r\n interface IntentEnroll {\r\n id: number;\r\n userID: any;\r\n organizationID: any;\r\n collegeName: any;\r\n collegeCity: any\r\n savedDate: any;\r\n reasonNotes: any;\r\n hasCampusProfile: boolean;\r\n campusURL: string;\r\n reasons: Array;\r\n }\r\n\r\n interface TransitionPlan {\r\n id: number;\r\n pathType: any;\r\n planDescriptionNotes: any;\r\n careerGoalNotes: any;\r\n supportNotes: any;\r\n nextTransitionNotes: any;\r\n savedDate: any;\r\n }\r\n\r\n interface PersonalStatement {\r\n id: number;\r\n userId: number;\r\n draftFileName: string;\r\n draftFileLocation: string;\r\n DraftFileData: any;\r\n finalFileName: string;\r\n finalFileLocation: string;\r\n FinalFileData: any;\r\n }\r\n\r\n\r\n class CollegePlanning implements ICollegePlanning {\r\n static $inject: Array = [\"config\", \"$uibModal\", \"common\", \"Restangular\", \"$scope\", \"$document\", \"$http\", \"Upload\", \"savedSearchService\", \"$location\", \"helper\"];\r\n static controllerId: string = \"collegePlanning\";\r\n private log;\r\n userID: any;\r\n noSavedSearches: boolean;\r\n show: string;\r\n trackAction: boolean;\r\n addNotes: boolean;\r\n addCampusNotes: boolean;\r\n enrollList: boolean;\r\n identifyCollege: boolean;\r\n collegeReasons: boolean;\r\n intendedSchool: boolean;\r\n programList: boolean;\r\n chosenProgram: boolean;\r\n addProgramNotes: boolean;\r\n selfReport: boolean;\r\n createPlan: boolean;\r\n planSummary: boolean;\r\n planList: boolean;\r\n selfReportApp: boolean;\r\n showProgramNotes: boolean;\r\n notes: string;\r\n intentEnrollNotes: string;\r\n savedProgramNotes: string;\r\n selfReportID: any;\r\n selfReportName: string;\r\n selfReportCity: string;\r\n selfReportIndex: number;\r\n reasonsSelected: Array;\r\n actions: any;\r\n reasons: any;\r\n savedSearches: any;\r\n draftStatment: any;\r\n finalStatement: any;\r\n foundRecruiters: boolean;\r\n showSelfApps: boolean;\r\n applicationDates: any;\r\n intentEnrollSchoolInfo: IntentEnroll;\r\n personalStatements: any;\r\n savedSearchList: Array;\r\n savedProgramsMajors: any;\r\n selfReportedApps: any;\r\n savedColleges: any;\r\n savedRecruiters: Array;\r\n schoolList: any = [];\r\n transitionPlan: TransitionPlan;\r\n srDate: Date;\r\n opened: boolean;\r\n newDate: Date;\r\n enrollLoading: boolean;\r\n loadTransition: boolean;\r\n loadPersonal: boolean;\r\n institutionList: any;\r\n noSavedColleges: boolean;\r\n organizationID: any;\r\n verifiedSchool: boolean;\r\n verifiedSelfReportSchool: boolean;\r\n data: PersonalStatement;\r\n environmentURL: string;\r\n maxDate: any;\r\n intendedCollegeName: string;\r\n intendedReasons: Array;\r\n intendedReasonNotes: string;\r\n\r\n tempPlanDescriptionNotes: string;\r\n tempCareerGoalNotes: string;\r\n tempSupportNotes: string;\r\n tempNextTransitionNotes: string;\r\n tempPathType: string;\r\n logSuccess: (msg, data?, showHowl?) => void;\r\n logError: (msg, data?, showHowl?) => void;\r\n pdfButtonDisable: boolean;\r\n emailButtonDisable: boolean;\r\n draftStatementName: string;\r\n finalStatementName: string;\r\n uploadedDraft: boolean;\r\n uploadedFinal: boolean;\r\n showDraftCancel: boolean;\r\n showFinalCancel: boolean;\r\n apiHost: any;\r\n draftFile: any;\r\n finalFile: any;\r\n savedSearchComments: any;\r\n savedCollegeComments: any;\r\n savedProgramsComments: any;\r\n selfReportedComments: any;\r\n minDate: Date;\r\n minDateDisplay: string;\r\n\r\n constructor(private config: IConfig, private $uibModal: ng.ui.bootstrap.IModalService, private common: ICommonFactory, private Restangular: Restangular.IService, private $scope: ICollegePlanningScope, private $document: ng.IDocumentService, private $http: any, private Upload, private savedSearchService: IsavedSearchService, private $location: ng.ILocationService, private helper: IHelper) {\r\n this.log = common.logger.getLogFn(CollegePlanning.controllerId);\r\n this.logSuccess = this.common.logger.getLogFn(CollegePlanning.controllerId, \"success\");\r\n this.logError = this.common.logger.getLogFn(CollegePlanning.controllerId, \"error\");\r\n this.userID = 0;\r\n this.common.authentication.authenticate(true).then(result => {\r\n if (result) {\r\n this.activate();\r\n }\r\n });\r\n\r\n this.show = 'CampusSearch';\r\n this.enrollList = true;\r\n this.programList = false;\r\n this.planList = true;\r\n this.intentEnrollNotes = \"None\";\r\n this.savedProgramNotes = \"\";\r\n this.srDate = new Date();\r\n this.maxDate = new Date();\r\n this.minDate = new Date(1899, 12);\r\n this.minDateDisplay = this.maxDate.toLocaleDateString();\r\n this.opened = false;\r\n this.verifiedSchool = true;\r\n this.verifiedSelfReportSchool = true;\r\n this.apiHost = this.config.apiHost;\r\n $scope.dateOptions = {\r\n showWeeks: false\r\n };\r\n }\r\n\r\n open() {\r\n this.opened = true;\r\n var test = this.srDate;\r\n }\r\n\r\n activate() {\r\n var promises = [];\r\n this.common.activateController(promises, CollegePlanning.controllerId)\r\n .then(() => {\r\n this.log(\"Activated College Planning\");\r\n this.noSavedSearches = false;\r\n this.enrollLoading = true;\r\n this.loadTransition = true;\r\n this.loadPersonal = true;\r\n this.emailButtonDisable = false;\r\n this.pdfButtonDisable = false;\r\n this.showDraftCancel = false;\r\n this.showFinalCancel = false;\r\n this.getSavedSearches();\r\n this.getIntentEnrollSchool();\r\n this.getTransitionPlan();\r\n this.getSavedProgramsMajors();\r\n this.getSelfReportedApps();\r\n this.getSavedColleges();\r\n this.getCollegeRecuiters();\r\n this.getPersonalStatements();\r\n this.environmentURL = this.config.transitionsUrl;\r\n\r\n\r\n this.actions = [{ id: 1, name: \"Visited the Campus\" },\r\n { id: 2, name: \"Financial Aid Forms Submitted\" },\r\n { id: 3, name: \"Not Admitted\" },\r\n { id: 4, name: \"Attended an Application Interview\" },\r\n { id: 5, name: \"Admitted\" },\r\n { id: 6, name: \"Intend to Enroll\" },\r\n { id: 7, name: \"Application Submitted\" },\r\n { id: 8, name: \"Wait-listed\" },\r\n ]\r\n this.reasons = [{ id: 1, name: \"Close to home\" },\r\n { id: 2, name: \"Good financial aid package\" },\r\n { id: 3, name: \"Has always been my plan\" },\r\n { id: 4, name: \"Far from home\" },\r\n { id: 5, name: \"Friends go/plan to go there\" },\r\n { id: 6, name: \"No financial aid package from first choice\" },\r\n { id: 7, name: \"Can afford it\" },\r\n { id: 8, name: \"Like the campus and environment\" },\r\n { id: 9, name: \"Can meet the admission requirements\" },\r\n { id: 10, name: \"Offers the program/major I want\" },\r\n { id: 11, name: \"Right size for me\" },\r\n { id: 12, name: \"Location\" },\r\n { id: 13, name: \"Grads get good jobs\" },\r\n { id: 14, name: \"Good academic reputation\" },\r\n { id: 15, name: \"Athletics to play or watch\" },\r\n { id: 16, name: \"Family member attended\" }\r\n ]\r\n\r\n });\r\n }\r\n\r\n checkTrackedAction(actionID: any, collegeActions: any) {\r\n var found = false;\r\n for (var i in collegeActions) {\r\n if (collegeActions[i].questionID == actionID)\r\n found = true;\r\n }\r\n return found;\r\n }\r\n\r\n modifyTrackedAction(action: any, college: any, actions: any) {\r\n var found = false;\r\n for (var i in actions) {\r\n if (actions[i].questionID == action) {\r\n found = true;\r\n actions.splice(i, 1);\r\n }\r\n }\r\n if (!found) {\r\n var actionDict = _.keyBy(this.actions, 'id');\r\n var addedAction = actionDict[action];\r\n var data = { id: '', organizationID: college.organizationID, questionID: addedAction[\"id\"], questionName: addedAction[\"name\"] };\r\n actions.push(data);\r\n }\r\n }\r\n\r\n checkIntentReason(reasonID: any, intentReasons: any) {\r\n var found = false;\r\n for (var i in intentReasons) {\r\n if (intentReasons[i].reasonID == reasonID)\r\n found = true;\r\n }\r\n return found;\r\n }\r\n\r\n modifyIntentReason(reason: any, intentInfo: any) {\r\n var found = false;\r\n for (var i in intentInfo) {\r\n if (intentInfo[i].reasonID == reason) {\r\n found = true;\r\n intentInfo.splice(i, 1);\r\n }\r\n }\r\n if (!found) {\r\n var reasonDict = _.keyBy(this.reasons, 'id');\r\n var addedReason = reasonDict[reason];\r\n var data = { id: '', reasonID: addedReason[\"id\"], name: addedReason[\"name\"] };\r\n intentInfo.push(data);\r\n }\r\n }\r\n\r\n getSavedSearches = () => {\r\n this.Restangular.one(\"collegePlanning/getsavedsearches\").get().then((results) => {\r\n this.savedSearchComments = results.comments;\r\n for (var i = 0; i < results.searches.length; i++) {\r\n if (!isNaN(i)) {\r\n var test = results.searches[i];\r\n var test1 = JSON.parse(test.search);\r\n results.searches[i].search = test1;\r\n }\r\n }\r\n this.savedSearchList = results.searches;\r\n this.noSavedSearches = results.searches.length == 0 ? true : false;\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n }\r\n\r\n deleteSavedSearch = (search: any) => {\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/collegePlanning/ConfirmModal.html',\r\n size: 'sm',\r\n controller: 'ConfirmModal',\r\n });\r\n modalInstance.result.then((val: boolean) => {\r\n if (val) {\r\n this.Restangular.one(\"collegePlanning/deleteSearch/\" + search.id).remove().then((results) => {\r\n this.getSavedSearches();\r\n this.logSuccess(\"Your saved search changes have been saved\", null, true);\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n }\r\n });\r\n }\r\n\r\n loadSavedSearch(search: any) {\r\n sessionStorage.setItem(\"loadedSearch\", search.name);\r\n sessionStorage.setItem(\"selectedSearch\", JSON.stringify(search.search));\r\n this.$location.path(\"/campusSearch\");\r\n }\r\n\r\n getSavedColleges = () => {\r\n this.Restangular.one(\"collegePlanning/getsavedcolleges\").get().then((results) => {\r\n this.savedColleges = results.colleges;\r\n this.savedCollegeComments = results.comments;\r\n this.noSavedColleges = results.colleges.length == 0 ? true : false;\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n }\r\n\r\n updateSavedCollege = (savedCollege: any, saveSection: string) => {\r\n if (saveSection == \"Notes\")\r\n savedCollege.notes = savedCollege.tempNotes;\r\n else if (saveSection == \"CampusNotes\")\r\n savedCollege.campusNotes = savedCollege.tempCampusNotes;\r\n else if (saveSection == \"Actions\")\r\n savedCollege.actions = _.clone(savedCollege.tempActions);\r\n else {\r\n savedCollege.notes = savedCollege.tempNotes;\r\n savedCollege.campusNotes = savedCollege.tempCampusNotes;\r\n savedCollege.actions = savedCollege.tempActions;\r\n }\r\n this.Restangular.all(\"collegePlanning/postsavedcollege\").post(savedCollege).then((results) => {\r\n this.logSuccess(\"Your saved college changes have been saved\", null, true);\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n }\r\n\r\n deleteSavedCollege = (savedCollege: any, location: number) => {\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/collegePlanning/ConfirmModal.html',\r\n size: 'sm',\r\n controller: 'ConfirmModal',\r\n });\r\n modalInstance.result.then((val: boolean) => {\r\n if (val) {\r\n this.Restangular.all(\"collegePlanning/deletesavedcollege\").post(savedCollege).then((results) => {\r\n console.log(results);\r\n this.savedColleges.splice(location, 1);\r\n this.logSuccess(\"Your saved college changes have been saved\", null, true);\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n }\r\n });\r\n }\r\n\r\n cancelTrackedActions(college: any) {\r\n college.tempActions = _.clone(college.actions);\r\n }\r\n\r\n getListofSchools = (baseString: string) => {\r\n var query = { startsWith: baseString };\r\n return this.Restangular.all(\"collegePlanning/getListofSchools\").getList(query)\r\n .then((result) => {\r\n return result;\r\n });\r\n };\r\n\r\n getIntentEnrollSchool = () => {\r\n var id;\r\n this.Restangular.one(\"collegePlanning/getintentenrollschool\").get().then((results) => {\r\n this.intentEnrollSchoolInfo = results;\r\n this.intendedSchool = results.collegeName == \"\" || results.collegeName == null ? false : true;\r\n this.intendedCollegeName = this.intentEnrollSchoolInfo.collegeName;\r\n this.enrollList = !this.intendedSchool;\r\n this.enrollLoading = false;\r\n this.collegeReasons = false;\r\n id = results.organizationID;\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n }\r\n\r\n editIntentEnroll() {\r\n this.intendedCollegeName = this.intentEnrollSchoolInfo.collegeName;\r\n this.identifyCollege = true;\r\n this.intendedSchool = false;\r\n }\r\n\r\n checkValidSchool(selectedSchool: string) {\r\n var query = { SelectedSchool: selectedSchool };\r\n this.Restangular.one(\"collegePlanning/verifyEnteredCollege\").get(query).then((results) => {\r\n if (results) {\r\n this.verifiedSchool = true;\r\n this.collegeReasons = true;\r\n this.identifyCollege = false;\r\n if (this.intentEnrollSchoolInfo.collegeName != this.intendedCollegeName) {\r\n this.intendedReasons = [];\r\n this.intendedReasonNotes = \"\";\r\n }\r\n else {\r\n this.intendedReasons = _.clone(this.intentEnrollSchoolInfo.reasons);\r\n this.intendedReasonNotes = _.clone(this.intentEnrollSchoolInfo.reasonNotes);\r\n }\r\n }\r\n else {\r\n this.verifiedSchool = false;\r\n }\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n }\r\n\r\n updateIntentEnrollSchool() {\r\n var school = { id: this.intentEnrollSchoolInfo.id, userID: 0, organizationID: \"\", hasCampusProfile: this.intentEnrollSchoolInfo.hasCampusProfile, campusURL: this.intentEnrollSchoolInfo.campusURL, collegeName: this.intendedCollegeName, collegeCity: \"\", savedDate: new Date(), reasonNotes: this.intendedReasonNotes, reasons: this.intendedReasons };\r\n this.Restangular.all(\"collegePlanning/updateintentenrollschool\").post(school).then((results) => {\r\n this.logSuccess(\"Your intent to enroll changes have been saved\", null, true);\r\n this.getIntentEnrollSchool();\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n }\r\n\r\n clearIntentEnroll() {\r\n if (this.intentEnrollSchoolInfo.id != 0) {\r\n this.intendedSchool = true;\r\n this.collegeReasons = false;\r\n }\r\n else {\r\n this.collegeReasons = false;\r\n this.enrollList = true;\r\n this.intendedCollegeName = \"\";\r\n this.intendedReasons = [];\r\n this.intendedReasonNotes = \"\";\r\n }\r\n }\r\n\r\n getSavedProgramsMajors = () => {\r\n this.Restangular.one(\"collegePlanning/getsavedprograms\").get().then((results) => {\r\n this.savedProgramsMajors = results.programs;\r\n this.savedProgramsComments = results.comments;\r\n this.chosenProgram = results.programs.length > 0 ? true : false;\r\n this.programList = !this.chosenProgram;\r\n this.showProgramNotes = true;\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n }\r\n\r\n updateSavedProgram = (program: any) => {\r\n this.Restangular.all(\"collegePlanning/updatesavedprogram\").post(program).then((results) => {\r\n this.logSuccess(\"Your saved program/major changes have been saved\", null, true);\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n }\r\n\r\n deleteSavedProgram = (program: any, location: number) => {\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/collegePlanning/ConfirmModal.html',\r\n size: 'sm',\r\n controller: 'ConfirmModal',\r\n });\r\n modalInstance.result.then((val: boolean) => {\r\n if (val) {\r\n this.Restangular.one(\"collegePlanning/deletesavedprogram/\" + program.id).remove().then((results) => {\r\n this.getSavedProgramsMajors();\r\n this.logSuccess(\"Your saved program/major changes have been saved\", null, true);\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n }\r\n });\r\n }\r\n\r\n getSelfReportedApps = () => {\r\n this.Restangular.one(\"collegePlanning/getselfreportedapps\").get().then((results) => {\r\n this.showSelfApps = true;\r\n this.selfReportedApps = results.applications;\r\n this.selfReportedComments = results.comments;\r\n this.selfReportApp = results.applications.length > 0 ? true : false;\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n }\r\n\r\n createNewSelfReportedApp() {\r\n this.selfReport = true;\r\n this.showSelfApps = false;\r\n this.selfReportID = 0;\r\n this.selfReportName = \"\";\r\n this.organizationID = null;\r\n this.srDate = new Date();\r\n var day = this.srDate.getDate();\r\n var month = this.srDate.getMonth() + 1;\r\n var year = this.srDate.getFullYear();\r\n }\r\n\r\n EditSelfReportApp(app: any, loc: number) {\r\n this.selfReport = true;\r\n this.showSelfApps = false;\r\n this.selfReportID = app.id;\r\n this.organizationID = app.organizationID;\r\n this.selfReportName = app.collegeName;\r\n this.selfReportCity = app.collegeCity;\r\n this.selfReportIndex = loc;\r\n this.srDate = new Date(app.submissionDate);\r\n }\r\n\r\n checkSchoolName(selectedSchool: string) {\r\n var query = { SelectedSchool: selectedSchool };\r\n this.Restangular.one(\"collegePlanning/verifyEnteredCollege\").get(query).then((results) => {\r\n if (results) {\r\n this.verifiedSelfReportSchool = true;\r\n this.updateSelfReportedApp();\r\n }\r\n else {\r\n this.verifiedSelfReportSchool = false;\r\n }\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n }\r\n\r\n updateSelfReportedApp = () => {\r\n var finalDate;\r\n var test = typeof this.srDate;\r\n if (this.srDate instanceof Date) {\r\n var day = this.srDate.getDate();\r\n var month = this.srDate.getMonth() + 1;\r\n var year = this.srDate.getFullYear();\r\n finalDate = month + \"-\" + day + \"-\" + year;\r\n }\r\n if (test == \"string\") {\r\n finalDate = this.srDate;\r\n }\r\n var app = { id: this.selfReportID, organizationId: this.organizationID, userID: this.userID, collegeName: this.selfReportName, collegeCity: this.selfReportCity, submissionDate: finalDate };\r\n this.Restangular.all(\"collegePlanning/updateselfreportedapp\").post(app).then((results) => {\r\n this.logSuccess(\"Your self-reported application changes have been saved\", null, true);\r\n this.getSelfReportedApps();\r\n this.selfReportApp = true;\r\n this.selfReport = false;\r\n this.showSelfApps = true;\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n }\r\n\r\n deleteSelfReportedApp = (app: any, location: number) => {\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/collegePlanning/ConfirmModal.html',\r\n size: 'sm',\r\n controller: 'ConfirmModal',\r\n });\r\n modalInstance.result.then((val: boolean) => {\r\n if (val) {\r\n this.Restangular.all(\"collegePlanning/deleteselfreportedapp\").post(app).then((results) => {\r\n this.selfReportedApps.splice(location, 1);\r\n this.selfReportApp = this.selfReportedApps.length == 0 ? false : true;\r\n this.logSuccess(\"Your self-reported application changes have been saved\", null, true);\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n }\r\n });\r\n }\r\n\r\n getCollegeRecuiters = () => {\r\n this.Restangular.all(\"collegePlanning/getcollegerecruiters\").getList().then((results) => {\r\n this.savedRecruiters = results;\r\n this.foundRecruiters = results.length > 0 ? true : false;\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n }\r\n\r\n getTransitionPlan = () => {\r\n this.Restangular.one(\"collegePlanning/gettransitionplan\").get().then((results) => {\r\n this.transitionPlan = results;\r\n this.loadTransition = false;\r\n if (results.id != 0) {\r\n this.planList = false;\r\n this.planSummary = true;\r\n this.transitionPlan.planDescriptionNotes = this.transitionPlan.planDescriptionNotes == \"\" || this.transitionPlan.planDescriptionNotes == null ? \"Not entered! Select edit to add to your transition plan.\" : this.transitionPlan.planDescriptionNotes;\r\n this.transitionPlan.careerGoalNotes = this.transitionPlan.careerGoalNotes == \"\" || this.transitionPlan.careerGoalNotes == null ? \"Not entered! Select edit to add to your transition plan.\" : this.transitionPlan.careerGoalNotes;\r\n this.transitionPlan.supportNotes = this.transitionPlan.supportNotes == \"\" || this.transitionPlan.supportNotes == null ? \"Not entered! Select edit to add to your transition plan.\" : this.transitionPlan.supportNotes;\r\n this.transitionPlan.nextTransitionNotes = this.transitionPlan.nextTransitionNotes == \"\" || this.transitionPlan.nextTransitionNotes == null ? \"Not entered! Select edit to add to your transition plan.\" : this.transitionPlan.nextTransitionNotes;\r\n this.checkTransitionNotes();\r\n }\r\n else {\r\n this.tempPathType = \"Select a path...\";\r\n this.planList = true;\r\n }\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n }\r\n\r\n checkTransitionNotes() {\r\n this.tempPlanDescriptionNotes = this.transitionPlan.planDescriptionNotes == \"\" || this.transitionPlan.planDescriptionNotes == null ? \"Not entered! Select edit to add to your transition plan.\" : this.transitionPlan.planDescriptionNotes;\r\n this.tempCareerGoalNotes = this.transitionPlan.careerGoalNotes == \"\" || this.transitionPlan.careerGoalNotes == null ? \"Not entered! Select edit to add to your transition plan.\" : this.transitionPlan.careerGoalNotes;\r\n this.tempSupportNotes = this.transitionPlan.supportNotes == \"\" || this.transitionPlan.supportNotes == null ? \"Not entered! Select edit to add to your transition plan.\" : this.transitionPlan.supportNotes;\r\n this.tempNextTransitionNotes = this.transitionPlan.nextTransitionNotes == \"\" || this.transitionPlan.nextTransitionNotes == null ? \"Not entered! Select edit to add to your transition plan.\" : this.transitionPlan.nextTransitionNotes;\r\n this.tempPathType = this.transitionPlan.pathType;\r\n }\r\n\r\n cancelTransitionPlan() {\r\n this.createPlan = false;\r\n if (this.transitionPlan.id == 0) {\r\n this.planList = true;\r\n this.tempPlanDescriptionNotes = \"\";\r\n this.tempCareerGoalNotes = \"\";\r\n this.tempSupportNotes = \"\";\r\n this.tempNextTransitionNotes = \"\";\r\n this.tempPathType = \"Select a path...\";\r\n }\r\n else {\r\n this.planSummary = true;\r\n this.checkTransitionNotes();\r\n }\r\n }\r\n\r\n editTransitionPlan() {\r\n this.planSummary = false;\r\n this.createPlan = true;\r\n this.tempPlanDescriptionNotes = this.transitionPlan.planDescriptionNotes == \"Not entered! Select edit to add to your transition plan.\" ? \"\" : this.transitionPlan.planDescriptionNotes;\r\n this.tempCareerGoalNotes = this.transitionPlan.careerGoalNotes == \"Not entered! Select edit to add to your transition plan.\" ? \"\" : this.transitionPlan.careerGoalNotes;\r\n this.tempSupportNotes = this.transitionPlan.supportNotes == \"Not entered! Select edit to add to your transition plan.\" ? \"\" : this.transitionPlan.supportNotes;\r\n this.tempNextTransitionNotes = this.transitionPlan.nextTransitionNotes == \"Not entered! Select edit to add to your transition plan.\" ? \"\" : this.transitionPlan.nextTransitionNotes;\r\n this.tempPathType = this.transitionPlan.pathType;\r\n }\r\n\r\n saveTransitionPlan = () => {\r\n var transitionPlan = { id: this.transitionPlan.id, pathType: this.tempPathType, planDescriptionNotes: this.tempPlanDescriptionNotes, careerGoalNotes: this.tempCareerGoalNotes, supportNotes: this.tempSupportNotes, nextTransitionNotes: this.tempNextTransitionNotes, savedDate: new Date() };\r\n this.Restangular.all(\"collegePlanning/updatetransitionplan\").post(transitionPlan).then((results) => {\r\n this.getTransitionPlan();\r\n this.logSuccess(\"Your high school transition plan changes have been saved\", null, true);\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n }\r\n\r\n deleteTransitionPlan = (plan: any) => {\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/collegePlanning/ConfirmModal.html',\r\n size: 'sm',\r\n controller: 'ConfirmModal',\r\n });\r\n modalInstance.result.then((val: boolean) => {\r\n if (val) {\r\n this.Restangular.all(\"collegePlanning/deletetransitionplan\").post(this.transitionPlan).then((results) => {\r\n this.logSuccess(\"Your high school transition plan changes have been saved\", null, true);\r\n this.planList = true;\r\n this.planSummary = false;\r\n this.transitionPlan.id = 0;\r\n this.transitionPlan.pathType = \"Select a path...\";\r\n this.transitionPlan.planDescriptionNotes = \"\";\r\n this.transitionPlan.careerGoalNotes = \"\";\r\n this.transitionPlan.supportNotes = \"\";\r\n this.transitionPlan.nextTransitionNotes = \"\";\r\n this.transitionPlan.savedDate = \"\";\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n }\r\n });\r\n }\r\n\r\n getPersonalStatements = () => {\r\n this.Restangular.one(\"collegePlanning/getpersonalstatements\").get().then((results) => {\r\n this.personalStatements = results;\r\n if (this.personalStatements.draftStatement == \"\" || this.personalStatements.draftStatement == \"None Saved\") {\r\n this.uploadedDraft = false;\r\n }\r\n else\r\n this.uploadedDraft = true;\r\n if (this.personalStatements.finalStatement == \"\" || this.personalStatements.finalStatement == \"None Saved\") {\r\n this.uploadedFinal = false;\r\n }\r\n else\r\n this.uploadedFinal = true\r\n this.loadPersonal = false;\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n }\r\n\r\n testresult = (result: string): any => {\r\n var test = result;\r\n }\r\n\r\n upload(fileType: string) {\r\n this.Upload.upload({\r\n url: this.config.apiHost + \"/collegePlanning/UploadPersonalStatement/\" + fileType,\r\n method: \"POST\",\r\n file: fileType == \"draft\" ? this.draftFile : this.finalFile\r\n }).success((data, status, headers, config) => {\r\n this.logSuccess(\"Your personal statement changes have been saved\", null, true);\r\n this.getPersonalStatements();\r\n }).error((data, status, headers, config) => {\r\n console.error(data);\r\n });\r\n }\r\n\r\n deletePersonalStatement = (type: any) => {\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/collegePlanning/ConfirmModal.html',\r\n size: 'sm',\r\n controller: 'ConfirmModal',\r\n });\r\n modalInstance.result.then((val: boolean) => {\r\n if (val) {\r\n var data;\r\n if (type == \"draft\") {\r\n data = { id: this.personalStatements.id, deleteDraft: true, deleteFinal: false };\r\n }\r\n else {\r\n data = { id: this.personalStatements.id, deleteDraft: false, deleteFinal: true };\r\n }\r\n this.Restangular.all(\"collegePlanning/deletepersonalstatement\").post(data).then((results) => {\r\n if (type == \"draft\") {\r\n this.personalStatements.draftStatement = \"None Saved\";\r\n this.uploadedDraft = false;\r\n $(\"#draftFileUpload\").val('')\r\n }\r\n else {\r\n this.personalStatements.finalStatement = \"None Saved\";\r\n this.uploadedFinal = false;\r\n $(\"#finalFileUpload\").val('')\r\n }\r\n this.logSuccess(\"Your personal statement changes have been saved\", null, true);\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n }\r\n });\r\n }\r\n\r\n getPersonalStatementFile = (fileType: string) => {\r\n this.Restangular.one(\"collegePlanning/getStatementFile\").get(fileType).then((results) => {\r\n this.helper.openFile(this.config.apiHost + \"/download\", results);\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n }\r\n\r\n print = ($event) => {\r\n this.pdfButtonDisable = true;\r\n var location: any = window.location;\r\n var headHtml = \"\";\r\n $(this.$document[0][\"head\"]).children(\"link\").each((i: number, l: any) => {\r\n headHtml += l.outerHTML;\r\n });\r\n var html = \"\" + headHtml + \"\" + $event.currentTarget.parentElement.parentElement.innerHTML + \"\";\r\n this.helper.openFile(this.config.apiHost + \"/pdf/download\", { html: encodeURIComponent(html), url: location.origin }).then(() => {\r\n this.pdfButtonDisable = false;\r\n });\r\n\r\n };\r\n\r\n email = ($event) => {\r\n this.emailButtonDisable = true;\r\n var location: any = window.location;\r\n var headHtml = \"\";\r\n $(this.$document[0][\"head\"]).children(\"link\").each((i: number, l: any) => {\r\n headHtml += l.outerHTML;\r\n });\r\n var html = \"\" + headHtml + \"\" + $event.currentTarget.parentElement.parentElement.innerHTML + \"\";\r\n this.Restangular.all(\"pdf\").all(\"email\").post({ html: encodeURIComponent(html), url: location.origin })\r\n .then((response) => {\r\n this.emailButtonDisable = false;\r\n this.logSuccess(\"Email has been sent to the email address associated with your CFNC profile.\", \"Email has been sent to the email address associated with your CFNC profile.\", true);\r\n }, (reason) => {\r\n console.log(reason);\r\n this.logError(\"There was a problem sending your email. Please try again later.\", reason, true);\r\n }, (state) => {\r\n });\r\n }\r\n \r\n }\r\n\r\n angular.module(\"app\").controller(CollegePlanning.controllerId, CollegePlanning);\r\n}","namespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IConfirmModalScope extends ng.IScope {\r\n close: () => void;\r\n remove: () => void;\r\n cancel: () => void;\r\n doRemove: boolean;\r\n }\r\n\r\n interface IConfirmModal {\r\n\r\n }\r\n\r\n interface ISchoolData { schoolName: string; terms: any; }\r\n\r\n class ConfirmModal implements IConfirmModal {\r\n static $inject: Array = [\"$uibModalInstance\", \"common\", \"$scope\", \"$resource\"];\r\n static controllerId: string = \"ConfirmModal\";\r\n private log;\r\n constructor(private $uibModalInstance: ng.ui.bootstrap.IModalServiceInstance, private common: ICommonFactory, private $scope: IConfirmModalScope, private $resource: ng.resource.IResourceService) {\r\n this.log = common.logger.getLogFn(ConfirmModal.controllerId);\r\n $scope.close = () => this.close();\r\n $scope.remove = () => this.remove();\r\n $scope.cancel = () => this.cancel();\r\n }\r\n\r\n close() {\r\n this.$uibModalInstance.dismiss();\r\n }\r\n\r\n remove() {\r\n this.$scope.doRemove = true;\r\n this.$uibModalInstance.close(this.$scope.doRemove);\r\n }\r\n\r\n cancel() {\r\n this.$scope.doRemove = false;\r\n this.$uibModalInstance.close(this.$scope.doRemove);\r\n }\r\n }\r\n\r\n angular.module(\"app\").controller(ConfirmModal.controllerId, ConfirmModal);\r\n} ","namespace Cfnc {\r\n \"use strict\";\r\n\r\n interface ISavedColleges {\r\n }\r\n\r\n interface ISavedCollegesScope extends ng.IScope {\r\n vm: SavedColleges;\r\n }\r\n\r\n class SavedColleges implements ISavedColleges {\r\n static $inject: Array = [\"common\", \"Restangular\", \"$scope\", \"$uibModal\", \"config\"];\r\n static controllerId: string = \"savedColleges\";\r\n private log;\r\n pageNumber: number;\r\n pageSize: any;\r\n searchString: string;\r\n loaded: boolean;\r\n searchResults: any;\r\n cardView: boolean;\r\n minDate: Date;\r\n filterParams: any;\r\n interests: any;\r\n showMap: boolean;\r\n map: googleMaps.googleMap;\r\n options: any;\r\n stateCoords;\r\n mappingData;\r\n markers: Array;\r\n notesOpen: boolean;\r\n visitNotesOpen: boolean;\r\n actionsOpen: boolean;\r\n totalColleges: number;\r\n editList: any;\r\n actions: any;\r\n apiHost: any;\r\n umbracoUrl: string;\r\n cfncUrl: string;\r\n slickConfig: any;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showHowl?) => void;\r\n\r\n constructor(private common: ICommonFactory, private Restangular: Restangular.IService, private $scope: ISavedCollegesScope, private $uibModal: ng.ui.bootstrap.IModalService, private config: IConfig) {\r\n this.pageNumber = 1;\r\n this.pageSize = 25;\r\n this.cardView = true;\r\n this.searchString = \"\";\r\n this.loaded = false;\r\n this.showMap = false;\r\n this.minDate = new Date(1899, 12);\r\n this.markers = [];\r\n this.notesOpen = false;\r\n this.visitNotesOpen = false;\r\n this.actionsOpen = false;\r\n this.apiHost = config.apiHost;\r\n this.umbracoUrl = this.config.umbracoUrl;\r\n this.cfncUrl = this.config.cfncUrl;\r\n this.slickConfig = {\r\n slidesToShow: 3,\r\n dots: false,\r\n arrows: false,\r\n centerMode: true,\r\n infinite: false,\r\n variableWidth: true,\r\n focusOnSelect: true\r\n };\r\n\r\n this.log = common.logger.getLogFn(SavedColleges.controllerId);\r\n this.logSuccess = this.common.logger.getLogFn(SavedColleges.controllerId, \"success\");\r\n this.logError = common.logger.getLogFn(SavedColleges.controllerId, \"error\");\r\n\r\n this.map = { center: { latitude: 35.250224, longitude: -79.905000 }, zoom: 15, pan: true };\r\n this.options = { options: { mapTypeId: google.maps.MapTypeId.TERRAIN, streetViewControl: false, zoomControlOptions: { style: google.maps.ZoomControlStyle.SMALL } } };\r\n this.stateCoords = coords;\r\n\r\n this.actions = [{ id: 1, name: \"Visited the Campus\" },\r\n { id: 2, name: \"Financial Aid Forms Submitted\" },\r\n { id: 3, name: \"Not Admitted\" },\r\n { id: 4, name: \"Attended an Application Interview\" },\r\n { id: 5, name: \"Admitted\" },\r\n { id: 6, name: \"Intend to Enroll\" },\r\n { id: 7, name: \"Application Submitted\" },\r\n { id: 8, name: \"Wait-listed\" },\r\n ]\r\n\r\n this.common.authentication.authenticate(true).then(result => {\r\n if (result) {\r\n this.activate();\r\n }\r\n });\r\n this.activate();\r\n\r\n }\r\n\r\n activate() {\r\n var promises = [];\r\n this.common.activateController(promises, SavedColleges.controllerId)\r\n .then(() => {\r\n this.apiHost = this.config.apiHost;\r\n this.getColleges();\r\n });\r\n }\r\n\r\n getColleges() {\r\n var queryParams = { pageNumber: this.pageNumber };\r\n this.Restangular.one(\"collegePlanning/getsavedcolleges\").get(queryParams).then((results) => {\r\n this.searchResults = results;\r\n this.editList = _.cloneDeep(this.searchResults.colleges);\r\n this.totalColleges = this.searchResults.totalColleges;\r\n this.loaded = true;\r\n }, (reason) => {\r\n this.logError(reason, reason, true);\r\n this.logError(\"There was a problem getting your saved colleges. Please try again later.\", reason, true);\r\n });\r\n }\r\n\r\n mapSingleProgram(program: any) {\r\n this.markers = this.createSinglePin(program);\r\n this.map = { center: { latitude: program.latitude, longitude: program.longitude }, zoom: 10, pan: true };\r\n }\r\n\r\n createSinglePin(program: any) {\r\n var markers = [];\r\n var marker = {\r\n selected: false,\r\n latitude: program.latitude,\r\n longitude: program.longitude,\r\n id: program.id,\r\n options: {\r\n optimized: false,\r\n title: program.name,\r\n icon: document.location.origin + \"/images/blue_pin.png\"\r\n\r\n },\r\n show: false\r\n };\r\n markers.push(marker);\r\n return markers;\r\n }\r\n\r\n cancelEdit = (originalArray: any, itemToRemove: any, index: number): void => {\r\n var original = originalArray[index];\r\n angular.copy(original, itemToRemove);\r\n };\r\n\r\n checkTrackedAction(actionID: any, collegeActions: any) {\r\n var found = false;\r\n for (var i in collegeActions) {\r\n if (collegeActions[i].questionName == actionID)\r\n found = true;\r\n }\r\n return found;\r\n }\r\n\r\n modifyTrackedAction(college: any, action: any) {\r\n var found = false;\r\n for (var i in college.actions) {\r\n if (college.actions[i].questionName == action) {\r\n found = true;\r\n college.actions.splice(i, 1);\r\n }\r\n }\r\n if (!found) {\r\n var actionDict = _.keyBy(this.actions, 'name');\r\n var addedAction = actionDict[action];\r\n var data = { id: '', organizationID: college.organizationID, questionID: addedAction[\"id\"], questionName: addedAction[\"name\"] };\r\n college.actions.push(data);\r\n }\r\n }\r\n\r\n updateSavedCollege = (savedCollege: any, index: number) => {\r\n this.Restangular.all(\"collegePlanning/updateSavedCollege\").post(savedCollege).then((results) => {\r\n this.getColleges();\r\n this.logSuccess(\"Your changes have been saved\", null, true);\r\n }, (reason) => {\r\n console.error(reason);\r\n this.logError(\"There was a problem updating the college. Please try again later.\", reason, true);\r\n });\r\n }\r\n\r\n deleteSavedCollege = (savedCollege: any) => {\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/collegePlanning/ConfirmModal.html',\r\n size: 'sm',\r\n controller: 'ConfirmModal',\r\n });\r\n modalInstance.result.then((val: boolean) => {\r\n if (val) {\r\n this.Restangular.all(\"collegePlanning/deletesavedcollege\").post(savedCollege).then((results) => {\r\n this.logSuccess(\"Saved college removed.\", null, true);\r\n this.getColleges();\r\n }, (reason) => {\r\n console.error(reason);\r\n this.logError(\"There was a problem deleting the college. Please try again later.\", reason, true);\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n angular.module(\"app\").controller(SavedColleges.controllerId, SavedColleges);\r\n\r\n var coords = [{ latitude: 33.7963, longitude: -78.4850 },\r\n { latitude: 34.8037, longitude: -79.6742 },\r\n { latitude: 34.8206, longitude: -80.8003 },\r\n { latitude: 34.9377, longitude: -80.7880 },\r\n { latitude: 35.1019, longitude: -80.9377 },\r\n { latitude: 35.0356, longitude: -81.0379 },\r\n { latitude: 35.1457, longitude: -81.0324 },\r\n { latitude: 35.1660, longitude: -81.3867 },\r\n { latitude: 35.1985, longitude: -82.2739 },\r\n { latitude: 35.2041, longitude: -82.3933 },\r\n { latitude: 35.0637, longitude: -82.7765 },\r\n { latitude: 35.0817, longitude: -82.7861 },\r\n { latitude: 34.9996, longitude: -83.1075 },\r\n { latitude: 34.9918, longitude: -83.6183 },\r\n { latitude: 34.9918, longitude: -84.3201 },\r\n { latitude: 35.2131, longitude: -84.2885 },\r\n { latitude: 35.2680, longitude: -84.2226 },\r\n { latitude: 35.2310, longitude: -84.1113 },\r\n { latitude: 35.2815, longitude: -84.0454 },\r\n { latitude: 35.4058, longitude: -84.0248 },\r\n { latitude: 35.4719, longitude: -83.9424 },\r\n { latitude: 35.5166, longitude: -83.8559 },\r\n { latitude: 35.5512, longitude: -83.6938 },\r\n { latitude: 35.5680, longitude: -83.5181 },\r\n { latitude: 35.6327, longitude: -83.3849 },\r\n { latitude: 35.7142, longitude: -83.2475 },\r\n { latitude: 35.7799, longitude: -82.9962 },\r\n { latitude: 35.8445, longitude: -82.9276 },\r\n { latitude: 35.9224, longitude: -82.8191 },\r\n { latitude: 35.9958, longitude: -82.7710 },\r\n { latitude: 36.0613, longitude: -82.6419 },\r\n { latitude: 35.9702, longitude: -82.6103 },\r\n { latitude: 35.9547, longitude: -82.5677 },\r\n { latitude: 36.0236, longitude: -82.4730 },\r\n { latitude: 36.0669, longitude: -82.4194 },\r\n { latitude: 36.1168, longitude: -82.3535 },\r\n { latitude: 36.1345, longitude: -82.2862 },\r\n { latitude: 36.1467, longitude: -82.1461 },\r\n { latitude: 36.1035, longitude: -82.1228 },\r\n { latitude: 36.1268, longitude: -82.0267 },\r\n { latitude: 36.2797, longitude: -81.9360 },\r\n { latitude: 36.3527, longitude: -81.7987 },\r\n { latitude: 36.3361, longitude: -81.7081 },\r\n { latitude: 36.5880, longitude: -81.6724 },\r\n { latitude: 36.5659, longitude: -80.7234 },\r\n { latitude: 36.5438, longitude: -80.2977 },\r\n { latitude: 36.5449, longitude: -79.6729 },\r\n { latitude: 36.5449, longitude: -77.2559 },\r\n { latitude: 36.5505, longitude: -75.7562 },\r\n { latitude: 36.3129, longitude: -75.7068 },\r\n { latitude: 35.7131, longitude: -75.4129 },\r\n { latitude: 35.2041, longitude: -75.4720 },\r\n { latitude: 34.9794, longitude: -76.0748 },\r\n { latitude: 34.5258, longitude: -76.4951 },\r\n { latitude: 34.5880, longitude: -76.8109 },\r\n { latitude: 34.5314, longitude: -77.1378 },\r\n { latitude: 34.3910, longitude: -77.4481 },\r\n { latitude: 34.0481, longitude: -77.7983 },\r\n { latitude: 33.7666, longitude: -77.9260 },\r\n { latitude: 33.7963, longitude: -78.4863 }];\r\n} ","namespace Cfnc {\r\n \"use strict\";\r\n\r\n interface ICollegeRecruiter {\r\n }\r\n\r\n interface ICollegeRecruiterScope extends ng.IScope {\r\n vm: CollegeRecruiter;\r\n actions: any;\r\n reasons: any;\r\n }\r\n\r\n class CollegeRecruiter implements ICollegeRecruiter {\r\n static $inject: Array = [\"common\", \"Restangular\", \"$scope\"];\r\n static controllerId: string = \"collegeRecruiter\";\r\n private log;\r\n orgList: any;\r\n pageNumber: number;\r\n selectedLetter: string;\r\n searchString: string;\r\n selectedType: string;\r\n schoolCount: number;\r\n savedCollegeList: any;\r\n savedCollegeCount: number;\r\n loaded: boolean;\r\n savedSchoolLoaded: boolean;\r\n userProfile: any;\r\n demographics: any;\r\n parentGuardian: any;\r\n recruitedOnly: boolean;\r\n savedOrgList: any;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showHowl?) => void;\r\n\r\n constructor(private common: ICommonFactory, private Restangular: Restangular.IService, private $scope: ICollegeRecruiterScope) {\r\n this.log = common.logger.getLogFn(CollegeRecruiter.controllerId);\r\n this.logSuccess = this.common.logger.getLogFn(CollegeRecruiter.controllerId, \"success\");\r\n this.logError = common.logger.getLogFn(CollegeRecruiter.controllerId, \"error\");\r\n this.common.authentication.authenticate(true).then(result => {\r\n if (result) {\r\n this.activate();\r\n }\r\n });\r\n\r\n }\r\n\r\n activate() {\r\n var promises = [];\r\n this.common.activateController(promises, CollegeRecruiter.controllerId)\r\n .then(() => {\r\n this.pageNumber = 1;\r\n this.searchString = \"\";\r\n this.loaded = false;\r\n this.recruitedOnly = false;\r\n this.getUserProfile();\r\n this.getSchoolList();\r\n this.getUserDemographics();\r\n this.getParentGuardianInfo();\r\n });\r\n }\r\n\r\n getUserProfile() {\r\n this.Restangular.one(\"users/profile\").get().then((results) => {\r\n this.userProfile = results;\r\n }, (reason) => {\r\n this.logError(\"An error occurred while getting profile information\", reason, true);\r\n });\r\n }\r\n\r\n getUserDemographics() {\r\n this.Restangular.one(\"users/demographics\").get().then((result) => {\r\n this.demographics = result;\r\n }, (reason) => {\r\n this.logError(\"An error occurred while getting demographic information\", reason, true);\r\n });\r\n }\r\n\r\n getParentGuardianInfo() {\r\n this.Restangular.one(\"users/parentguardianinfo\").get().then((result) => {\r\n this.parentGuardian = result;\r\n }, (reason) => {\r\n this.logError(\"An error occurred while getting parent/guardian information\", reason, true);\r\n });\r\n }\r\n\r\n getSchoolList() {\r\n var queryParams = { pageNumber: this.pageNumber, searchString: this.searchString, recruitedOnly: this.recruitedOnly };\r\n this.Restangular.one(\"Prospect/getFullOrgList\").get(queryParams).then((results) => {\r\n this.loaded = true;\r\n this.orgList = results.organizations;\r\n this.schoolCount = results.organizationTotal;\r\n },(reason) => {\r\n this.logError(\"An error occurred while getting the list of colleges\", reason, true);\r\n });\r\n }\r\n\r\n addRecruiter(applicationId: string) {\r\n var Name = { First: this.userProfile.firstName, Middle: this.userProfile.middleName, Last: this.userProfile.lastName, Suffix: this.userProfile.suffix };\r\n var mailAddress = { Street1: this.userProfile.mailAddress.street, Street2: \"\", City: this.userProfile.mailAddress.city, State: this.userProfile.mailAddress.state, Country: this.userProfile.mailAddress.country, Zip: this.userProfile.mailAddress.postalCode };\r\n var permAddress = { Street1: this.userProfile.permAddress.street, Street2: \"\", City: this.userProfile.permAddress.city, State: this.userProfile.permAddress.state, Country: this.userProfile.permAddress.country, Zip: this.userProfile.permAddress.postalCode };\r\n var additionalData = {\r\n daytimePhone: this.userProfile.daytimePhone,\r\n birthDate: this.userProfile.dateOfBirth,\r\n mailingPhone: this.userProfile.mailingPhone,\r\n permanentPhone: this.userProfile.phoneNumber,\r\n eveningPhone: this.userProfile.eveningPhone,\r\n graduationYear: this.userProfile.graduationYear,\r\n gender: this.userProfile.gender,\r\n socialSecurityNumber: this.userProfile.socialSecurityNumber,\r\n nickname: this.userProfile.nickname,\r\n enrollmentStatus: this.userProfile.enrollmentStatus,\r\n highSchool: this.userProfile.customer != null ? this.userProfile.customer.name : \"\",\r\n ceebCode: this.userProfile.customer != null ? this.userProfile.customer.ceeb_code : \"\",\r\n nationalities: this.demographics.nationalities,\r\n religiousAffiliation: this.demographics.religiousAffiliation,\r\n maritalStatus: this.demographics.maritalStatus,\r\n disabilities: this.demographics.disabilities,\r\n militaryServices: this.demographics.militaryServices,\r\n parentFirstName: this.parentGuardian.firstName,\r\n parentLastName: this.parentGuardian.lastName,\r\n parentAddressStreet1: this.parentGuardian.address != null ? this.parentGuardian.address.street : \"\",\r\n parentAddressStreet2: this.parentGuardian.address != null ? this.parentGuardian.address.street2 : \"\",\r\n parentAddressCity: this.parentGuardian.address != null ? this.parentGuardian.address.city : \"\",\r\n parentAddressState: this.parentGuardian.address != null ? this.parentGuardian.address.state : \"\",\r\n parentAddressCountry: this.parentGuardian.address != null ? this.parentGuardian.address.country : \"\",\r\n parentAddressZip: this.parentGuardian.address != null ? this.parentGuardian.address.postalCode : \"\",\r\n parentEmailAddress: this.parentGuardian.emailAddress,\r\n parentPhoneNumber: this.parentGuardian.phoneNumber,\r\n isFatherLiving: this.parentGuardian.isFatherLiving,\r\n isMotherLiving: this.parentGuardian.isMotherLiving,\r\n isParentVeteran: this.parentGuardian.isParentVeteran,\r\n parentDisabledInMilitary: this.parentGuardian.parentDisabledInMilitary,\r\n parentKilledInMilitary: this.parentGuardian.parentKilledInMilitary,\r\n parentsGraduatedCollege: this.parentGuardian.parentsGraduatedCollege\r\n };\r\n var prospect = { id: \"\", applicationDefinitionId: applicationId, userId: \"\", source: \"College Recruiter\", name: Name, mailingAddress: mailAddress, physicalAddress: permAddress, email: this.userProfile.email, dateCreated: new Date(), additionalData: additionalData }; \r\n this.Restangular.all(\"Prospect/addRecruiterAdditionalData\").post(prospect).then((results) => {\r\n this.logSuccess(\"Recruiter information has been submitted.\", null, true);\r\n },(reason) => {\r\n this.logError(\"An error occurred while submitting recruiter information\", reason, true);\r\n });\r\n }\r\n\r\n getListofSchools = (baseString: string) => {\r\n var query = { startsWith: baseString };\r\n return this.Restangular.all(\"Prospect/getListofRecruiterSchools\").getList(query)\r\n .then((result) => {\r\n return result;\r\n });\r\n };\r\n }\r\n\r\n angular.module(\"app\").controller(CollegeRecruiter.controllerId, CollegeRecruiter);\r\n} ","// Install the angularjs.TypeScript.DefinitelyTyped NuGet package\r\nmodule App {\r\n \"use strict\";\r\n\r\n interface IConfirmationModalScope extends ng.IScope {\r\n title: string;\r\n content: string;\r\n confirmYes: () => void;\r\n confirmNo: () => void;\r\n }\r\n\r\n interface IConfirmationModal {\r\n \r\n activate: () => void;\r\n }\r\n\r\n class ConfirmationModal implements IConfirmationModal {\r\n static controllerId: string = \"confirmationModal\";\r\n \r\n static $inject: string[] = [\"$scope\", \"$uibModalInstance\", \"data\"];\r\n\r\n constructor(private $scope: IConfirmationModalScope, private $uibModalInstance: ng.ui.bootstrap.IModalServiceInstance, private data) {\r\n $scope.title = data.title;\r\n $scope.content = data.content;\r\n $scope.confirmYes = this.confirmYes;\r\n $scope.confirmNo = this.confirmNo;\r\n this.activate();\r\n }\r\n\r\n activate() {\r\n\r\n }\r\n\r\n confirmYes = () => {\r\n this.$uibModalInstance.close(true);\r\n }\r\n\r\n confirmNo = () => {\r\n this.$uibModalInstance.close(false);\r\n }\r\n }\r\n\r\n angular.module(\"app\").controller(ConfirmationModal.controllerId, ConfirmationModal);\r\n}","\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n export interface ILogger {\r\n getLogFn: (moduleId: string, fnName: string) => Function;\r\n log: (message: string, data?: any, source?: string, showToast?: boolean) => void;\r\n logWarning: (message: string, data?: any, source?: string, showToast?: boolean) => void;\r\n logSuccess: (message: string, data?: any, source?: string, showToast?: boolean) => void;\r\n logError: (message: string, data?: any, source?: string, showToast?: boolean) => void;\r\n }\r\n\r\n export class Logger implements ILogger {\r\n static serviceId: string = \"logger\";\r\n\r\n constructor(private $log: ng.ILogService, private commonConfig: ICommonConfig) {\r\n }\r\n\r\n getLogFn(moduleId: string, fnName: string): Function {\r\n fnName = fnName || \"log\";\r\n switch (fnName.toLowerCase()) { // convert aliases\r\n case \"success\":\r\n fnName = \"logSuccess\"; break;\r\n case \"error\":\r\n fnName = \"logError\"; break;\r\n case \"warn\":\r\n fnName = \"logWarning\"; break;\r\n case \"warning\":\r\n fnName = \"logWarning\"; break;\r\n }\r\n\r\n var logFn: Function = this[fnName] || this.log;\r\n return (msg: string, data?: any, showToast?: boolean): void => {\r\n logFn(msg, data, moduleId,(showToast === undefined) ? this.commonConfig.debug ? true : false : showToast);\r\n };\r\n }\r\n\r\n log = (message: string, data?: any, source?: string, showToast?: boolean) => {\r\n this.logIt(message, data, source, showToast, \"info\");\r\n }\r\n\r\n logWarning = (message: string, data?: any, source?: string, showToast?: boolean) => {\r\n this.logIt(message, data, source, showToast, \"warning\");\r\n }\r\n\r\n logSuccess = (message: string, data?: any, source?: string, showToast?: boolean) => {\r\n this.logIt(message, data, source, showToast, \"success\");\r\n }\r\n\r\n logError = (message: string, data?: any, source?: string, showToast?: boolean) => {\r\n this.logIt(message, data, source, showToast, \"error\");\r\n }\r\n\r\n logIt(message: string, data?: any, source?: string, showToast?: boolean, toastType?: string): void {\r\n var write: Function = (toastType === \"error\") ? this.$log.error : this.$log.log;\r\n source = source ? \"[\" + source + \"] \" : \"\";\r\n write(source, message, data);\r\n if (showToast) {\r\n if (toastType === \"error\") {\r\n toastr.error(message);\r\n } else if (toastType === \"warning\") {\r\n toastr.warning(message);\r\n } else if (toastType === \"success\") {\r\n toastr.success(message);\r\n } else {\r\n toastr.info(message);\r\n }\r\n }\r\n }\r\n }\r\n\r\n angular.module(\"common\").factory(Logger.serviceId, [\"$log\", \"commonConfig\", ($log: ng.ILogService, commonConfig): ILogger =>\r\n new Logger($log, commonConfig)\r\n ]);\r\n}","module Cfnc {\r\n export class RegularExpressions {\r\n public static phone: RegExp = /^((\\+?\\d{1,3}[\\s-]?)?\\(?\\d{3}\\)?[\\s.-]?\\d{3}[\\s.-]?\\d{4}(\\s?(x|ex|ext)\\s?\\d{1,9})?)$|^(\\d{10})$/;\r\n public static email: RegExp = /^[-a-z0-9~!$%^&*_=+}{\\'?]+(\\.[-a-z0-9~!$%^&*_=+}{\\'?]+)*@([a-z0-9_][-a-z0-9_]*(\\.[-a-z0-9_]+)*\\.([a-z]{2,}))(:[0-9]{1,2})?$/i;\r\n public static password: RegExp = /^[_0-9A-Za-z]*$/;\r\n public static personName: RegExp = /^[a-zA-Z'\\-\\s\\.]+$/;\r\n public static username: RegExp = /^[_0-9A-Za-z]*$/;\r\n public static postalCode: RegExp = /^([0-9]{5})(-[0-9]{4})?$/;\r\n public static caPostalCode: RegExp = /^[a-zA-Z][0-9][a-zA-Z]\\s[0-9][a-zA-Z][0-9]$/;\r\n public static ssn: RegExp = /^(\\d{3}-\\d{2}-\\d{4})$/;\r\n public static studentNumber: RegExp = /^[0-9]*$/;\r\n\r\n }\r\n}","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\"\r\n\r\n interface ICollegeRedirection {\r\n }\r\n\r\n interface ICollegeRedirectionScope extends ng.IScope {\r\n vm: CollegeRedirection;\r\n dateOptions: any;\r\n }\r\n\r\n interface Prospect {\r\n additionalData: any;\r\n }\r\n\r\n class Address implements IAddress {\r\n addressType: string;\r\n firstName: string;\r\n lastName: string;\r\n street: string;\r\n street2: string;\r\n city: string;\r\n state: string;\r\n postalCode: string;\r\n country: string;\r\n county: string;\r\n isVerified: boolean;\r\n resultCodes: string;\r\n userOverride: boolean;\r\n signature: string;\r\n key: string;\r\n }\r\n\r\n class VerifyAddressResults implements IVerifyAddressResultsViewModel {\r\n firstName: string;\r\n lastName: string;\r\n action: string;\r\n providedAddressHasErrors: boolean;\r\n key: string;\r\n providedAddress: Address;\r\n suggestedAddress: Address;\r\n\r\n }\r\n\r\n class CollegeRedirection implements ICollegeRedirection {\r\n static $inject: Array = [\"$uibModal\", \"common\", \"Restangular\", \"$scope\", \"addressService\"];\r\n static controllerId: string = \"collegeRedirection\";\r\n private log;\r\n firstName: string;\r\n middleName: string;\r\n lastName: string;\r\n suffix: string;\r\n streetAddress: string;\r\n city: string;\r\n state: string;\r\n zipCode: number;\r\n country: string;\r\n intlZipCode: number;\r\n phoneNumber: string;\r\n dateOfBirth: Date;\r\n emailAddress: string;\r\n usCitizen: boolean;\r\n areHispanic: boolean;\r\n race: Array;\r\n highSchool: any;\r\n CEEBCode: any;\r\n gradDate: string;\r\n classRank: number;\r\n weightedGPA: number;\r\n unweightedGPA: number;\r\n satComposite: number;\r\n satMath: number;\r\n satWriting: number;\r\n satEssay: number;\r\n satMultipleChoice: number;\r\n actEnglish: number;\r\n actMath: number;\r\n actReading: number;\r\n actScience: number;\r\n actEnglishCombined: number;\r\n actWritingSubscore: number;\r\n actComposite: number;\r\n intendedMajor: string;\r\n requireHousing: boolean;\r\n dateOfBirthOpen: boolean;\r\n gradDateOpen: boolean;\r\n defaultCategory: string;\r\n showInputText: boolean;\r\n showSubmitText: boolean;\r\n showProcessing: boolean;\r\n maxDate: Date;\r\n userProfile: any;\r\n melissaDataResponse: any;\r\n addressError: boolean;\r\n demographics: any;\r\n parentGuardian: any;\r\n doSubmitProspect: boolean;\r\n originalEmail: string;\r\n appliedToUncInstitution: any;\r\n deniedAdmission: any;\r\n acceptedToUncInstitution: any;\r\n denialsReceivedFrom: Array;\r\n acceptedFrom: Array;\r\n entryTerm: any;\r\n entryYear: any;\r\n uncColleges: Array;\r\n minDate: Date;\r\n currentYear: any;\r\n ncCounties: Array;\r\n textAuth: any;\r\n applyFinAid: any;\r\n logError: (msg, data?, showToast?) => void;\r\n\r\n constructor(private $uibModal: ng.ui.bootstrap.IModalService, private common: ICommonFactory, private Restangular: Restangular.IService, private $scope: ICollegeRedirectionScope, private addressService: IAddressService) {\r\n this.log = common.logger.getLogFn(CollegeRedirection.controllerId);\r\n this.logError = common.logger.getLogFn(CollegeRedirection.controllerId, \"error\");\r\n this.minDate = new Date(1899, 12);\r\n this.ncCounties = this.addressService.ncCountyList;\r\n\r\n var month: number = new Date().getMonth();\r\n\r\n this.currentYear = new Date().getFullYear();\r\n if (month >= 9)\r\n this.currentYear++;\r\n\r\n $scope.dateOptions = {\r\n showWeeks: false,\r\n };\r\n this.common.authentication.authenticate(true).then(result => {\r\n if (result) {\r\n this.activate();\r\n }\r\n });\r\n\r\n }\r\n\r\n activate() {\r\n var promises = [];\r\n this.common.activateController(promises, CollegeRedirection.controllerId)\r\n .then(() => {\r\n this.log(\"Activated CRP\");\r\n this.dateOfBirthOpen = false;\r\n this.gradDateOpen = false;\r\n this.showInputText = true;\r\n this.showSubmitText = false;\r\n this.showProcessing = false;\r\n this.defaultCategory = \"PK-12\";\r\n this.country = \"US\";\r\n this.emailAddress = \"\";\r\n this.race = [];\r\n this.maxDate = new Date();\r\n this.doSubmitProspect = false;\r\n this.getUserProfile();\r\n this.getUserDemographics();\r\n this.getParentGuardianInfo();\r\n this.getUncSchools();\r\n });\r\n }\r\n\r\n getUncSchools() {\r\n return this.Restangular.all(\"institutions/getSchoolList\").getList().then((result) => {\r\n this.uncColleges = result;\r\n\r\n }, (reason) => {\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n checkList(listTocheck: any, name: string) {\r\n var found = false;\r\n for (var i in listTocheck) {\r\n if (listTocheck[i] == name)\r\n found = true;\r\n }\r\n return found;\r\n }\r\n\r\n modifyList(listTocheck: any, name: string) {\r\n var found = false;\r\n for (var i in listTocheck) {\r\n if (listTocheck[i] == name) {\r\n found = true;\r\n listTocheck.splice(i, 1);\r\n }\r\n }\r\n if (!found) {\r\n listTocheck.push(name);\r\n }\r\n }\r\n\r\n submitProspect() {\r\n var denials = _.replace(_.map(this.denialsReceivedFrom, 'name').toString(), new RegExp(',', \"g\"), ';');\r\n var accept = _.replace(_.map(this.acceptedFrom, 'name').toString(), new RegExp(',', \"g\"), ';');\r\n var Name = { First: this.userProfile.firstName, Middle: this.userProfile.middleName, Last: this.userProfile.lastName, Suffix: this.userProfile.suffix };\r\n var mailAddress = { Street1: this.userProfile.mailAddress.street, Street2: \"\", City: this.userProfile.mailAddress.city, State: this.userProfile.mailAddress.state, Country: this.userProfile.mailAddress.country, Zip: this.userProfile.mailAddress.postalCode };\r\n var permAddress = { Street1: this.userProfile.permAddress.street, Street2: \"\", City: this.userProfile.permAddress.city, State: this.userProfile.permAddress.state, Country: this.userProfile.permAddress.country, Zip: this.userProfile.permAddress.postalCode };\r\n var additionalData = {\r\n internationalPostalCode: this.intlZipCode,\r\n daytimePhone: this.userProfile.daytimePhone,\r\n birthDate: this.userProfile.dateOfBirth,\r\n highSchool: this.userProfile.customer.name,\r\n ceebCode: this.userProfile.customer.ceeb_code,\r\n gradDate: this.gradDate,\r\n classRank: this.classRank,\r\n weightedGPA: this.weightedGPA,\r\n unweightedGPA: this.unweightedGPA,\r\n satComposite: this.satComposite,\r\n actComposite: this.actComposite,\r\n intendedMajor: this.intendedMajor,\r\n requireCampusHousing: this.requireHousing,\r\n mailingPhone: this.userProfile.mailingPhone,\r\n permanentPhone: this.userProfile.phoneNumber,\r\n eveningPhone: this.userProfile.eveningPhone,\r\n mobilePhone: this.userProfile.mobilePhone,\r\n graduationYear: this.userProfile.graduationYear,\r\n gender: this.userProfile.gender,\r\n socialSecurityNumber: this.userProfile.socialSecurityNumber,\r\n nickname: this.userProfile.nickname,\r\n enrollmentStatus: this.userProfile.enrollmentStatus,\r\n nationalities: this.demographics.nationalities,\r\n religiousAffiliation: this.demographics.religiousAffiliation,\r\n maritalStatus: this.demographics.maritalStatus,\r\n disabilities: this.demographics.disabilities,\r\n militaryServices: this.demographics.militaryServices,\r\n parentFirstName: this.parentGuardian.firstName,\r\n parentLastName: this.parentGuardian.lastName,\r\n parentAddressStreet1: this.parentGuardian.address != null ? this.parentGuardian.address.street : \"\",\r\n parentAddressStreet2: this.parentGuardian.address != null ? this.parentGuardian.address.street2 : \"\",\r\n parentAddressCity: this.parentGuardian.address != null ? this.parentGuardian.address.city : \"\",\r\n parentAddressState: this.parentGuardian.address != null ? this.parentGuardian.address.state : \"\",\r\n parentAddressCountry: this.parentGuardian.address != null ? this.parentGuardian.address.country : \"\",\r\n parentAddressZip: this.parentGuardian.address != null ? this.parentGuardian.address.postalCode : \"\",\r\n parentEmailAddress: this.parentGuardian.emailAddress,\r\n parentPhoneNumber: this.parentGuardian.phoneNumber,\r\n isFatherLiving: this.parentGuardian.isFatherLiving,\r\n isMotherLiving: this.parentGuardian.isMotherLiving,\r\n isParentVeteran: this.parentGuardian.isParentVeteran,\r\n parentDisabledInMilitary: this.parentGuardian.parentDisabledInMilitary,\r\n parentKilledInMilitary: this.parentGuardian.parentKilledInMilitary,\r\n parentsGraduatedCollege: this.parentGuardian.parentsGraduatedCollege,\r\n appliedToUncInstitution: this.appliedToUncInstitution,\r\n deniedAdmission: this.deniedAdmission,\r\n acceptedToUncInstitution: this.acceptedToUncInstitution,\r\n denialsReceivedFrom: denials,\r\n acceptedFrom: accept,\r\n entryTerm: this.entryTerm,\r\n entryYear: this.entryYear,\r\n textAuth: this.textAuth,\r\n applyFinancialAid: this.applyFinAid\r\n };\r\n var prospect = { id: \"\", applicationDefinitionId: \"\", userId: \"\", source: \"CRP\", name: Name, mailingAddress: mailAddress, physicalAddress: permAddress, email: this.userProfile.email, dateCreated: new Date(), additionalData: additionalData }; \r\n this.Restangular.all(\"Prospect/insertprospectcrp\").post(prospect).then((results) => {\r\n this.showProcessing = false;\r\n this.showSubmitText = true;\r\n },(reason) => {\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n getUserProfile() {\r\n this.Restangular.one(\"users/profile\").get().then((results) => {\r\n this.userProfile = results;\r\n this.originalEmail = this.userProfile.email;\r\n },(reason) => {\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n getUserDemographics() {\r\n this.Restangular.one(\"users/demographics\").get().then((result) => {\r\n this.demographics = result;\r\n }, (reason) => {\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n getParentGuardianInfo() {\r\n this.Restangular.one(\"users/parentguardianinfo\").get().then((result) => {\r\n this.parentGuardian = result;\r\n }, (reason) => {\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n selectAddressOkCallback = (selectedAddress: Array
) => {\r\n selectedAddress.forEach((selection) => {\r\n if (selection.key == \"permanent\") {\r\n this.userProfile.permAddress.city = selection.city;\r\n this.userProfile.permAddress.postalCode = selection.postalCode;\r\n this.userProfile.permAddress.state = selection.state;\r\n this.userProfile.permAddress.street = selection.street;\r\n this.userProfile.permAddress.street2 = selection.street2;\r\n this.userProfile.permAddress.isVerified = selection.isVerified;\r\n this.userProfile.permAddress.userOverride = selection.userOverride;\r\n this.userProfile.permAddress.resultCodes = selection.resultCodes;\r\n this.userProfile.permAddress.signature = selection.signature;\r\n this.userProfile.permAddress.addressType = selection.addressType;\r\n this.userProfile.permAddress.county = selection.county;\r\n }\r\n });\r\n\r\n this.userProfile.addressVerified = true;\r\n this.showProcessing = true;\r\n this.showInputText = false;\r\n if (this.doSubmitProspect) {\r\n this.submitProspect();\r\n this.doSubmitProspect = false;\r\n }\r\n this.updateUserProfile();\r\n };\r\n\r\n selectAddressCancelCallback = (selectedAddress: Array
) => {\r\n selectedAddress.forEach((selection) => {\r\n if (selection.key == \"permanent\") {\r\n this.userProfile.permCity = selection.city;\r\n this.userProfile.permPostalCode = selection.postalCode;\r\n this.userProfile.permState = selection.state;\r\n this.userProfile.permStreet = selection.street;\r\n this.userProfile.permStreet2 = selection.street2;\r\n this.userProfile.permAddressSignature = selection.signature;\r\n this.userProfile.permAddressType = selection.addressType;\r\n }\r\n });\r\n this.showProcessing = false;\r\n this.showInputText = true;\r\n }\r\n\r\n updateUserProfile() {\r\n this.showProcessing = true;\r\n this.showInputText = false;\r\n var mailAddress = _.cloneDeep(this.userProfile.mailAddress);\r\n\r\n if (!this.userProfile.addressVerified) {\r\n var permAddress = new Address();\r\n permAddress.firstName = this.userProfile.firstName;\r\n permAddress.lastName = this.userProfile.lastName;\r\n permAddress.street = this.userProfile.permAddress.street;\r\n permAddress.street2 = null;\r\n permAddress.city = this.userProfile.permAddress.city;\r\n permAddress.state = this.userProfile.permAddress.state;\r\n permAddress.postalCode = this.userProfile.permAddress.postalCode;\r\n permAddress.country = this.userProfile.permAddress.country;\r\n permAddress.county = this.userProfile.permAddress.county;\r\n \r\n var addressErrorResults = new Array();\r\n this.Restangular.all(\"Address\").all(\"Validate\").post(permAddress).then((response: VerifyAddressResults) => {\r\n if (response.providedAddressHasErrors) {\r\n response.key = \"permanent\";\r\n addressErrorResults.push(response);\r\n } else {\r\n this.userProfile.permAddress.signature = response.providedAddress.signature;\r\n this.userProfile.permAddress.addressType = response.providedAddress.addressType;\r\n this.userProfile.permAddress.userOverride = false;\r\n this.userProfile.permAddress.isVerified = true;\r\n this.userProfile.permAddress.resultCodes = response.providedAddress.resultCodes;\r\n }\r\n\r\n if (addressErrorResults.length > 0) {\r\n this.addressError = true;\r\n this.melissaDataResponse = addressErrorResults;\r\n } else {\r\n this.userProfile.mailAddress = null;\r\n this.Restangular.all(\"users/profile/save\").customPUT(this.userProfile).then((results) => {\r\n if (this.doSubmitProspect) {\r\n this.userProfile.mailAddress = _.cloneDeep(mailAddress);\r\n this.submitProspect();\r\n this.doSubmitProspect = false;\r\n }\r\n }, (reason) => {\r\n this.showProcessing = false;\r\n this.showInputText = true;\r\n\r\n this.logError(reason, reason, true);\r\n\r\n });\r\n }\r\n });\r\n } else {\r\n this.userProfile.mailAddress = null;\r\n this.Restangular.all(\"users/profile/save\").customPUT(this.userProfile).then((results) => {\r\n if (this.doSubmitProspect) {\r\n this.userProfile.mailAddress = mailAddress;\r\n this.submitProspect();\r\n this.doSubmitProspect = false;\r\n }\r\n }, (reason) => {\r\n this.showProcessing = false;\r\n this.showInputText = true;\r\n\r\n this.logError(reason, reason, true);\r\n\r\n });\r\n };\r\n }\r\n\r\n testModal() {\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/collegePlanning/ConfirmModal.html',\r\n controller: 'ConfirmModal',\r\n });\r\n }\r\n }\r\n angular.module(\"app\").controller(CollegeRedirection.controllerId, CollegeRedirection);\r\n} "," /// \r\n\r\nnamespace Cfnc {\r\n \"use strict\"\r\n\r\n interface ICRPLandingPage {\r\n }\r\n\r\n interface ICRPLandingPageScope extends ng.IScope {\r\n vm: CRPLandingPage;\r\n }\r\n\r\n interface Prospect {\r\n additionalData: any;\r\n }\r\n\r\n class CRPLandingPage implements ICRPLandingPage {\r\n static $inject: Array = [\"common\", \"Restangular\", \"$scope\", \"$location\", \"config\"];\r\n static controllerId: string = \"crpLandingPage\";\r\n private log;\r\n firstName: string;\r\n middleName: string;\r\n crpOpen: boolean;\r\n transferPlanner: string;\r\n collegeSearch: string;\r\n cfncUrl: string;\r\n\r\n constructor(private common: ICommonFactory, private Restangular: Restangular.IService, private $scope: ICRPLandingPageScope, private $location: ng.ILocationService,\r\n private config: IConfig) {\r\n this.log = common.logger.getLogFn(CRPLandingPage.controllerId);\r\n this.activate();\r\n }\r\n\r\n activate() {\r\n var promises = [];\r\n this.common.activateController(promises, CRPLandingPage.controllerId)\r\n .then(() => {\r\n this.log(\"Activated CRP Landing Page\");\r\n this.crpOpen = this.checkDate();\r\n this.cfncUrl = this.config.cfncUrl;\r\n this.transferPlanner = this.config.umbracoUrl + \"/plan-your-future/plan-for-college/transfer-student-planner/\";\r\n this.collegeSearch = this.config.cfncUrl + \"/college-search\"\r\n });\r\n }\r\n\r\n redirect() {\r\n this.$location.path('/collegeRedirection');\r\n }\r\n\r\n checkDate() {\r\n var currentDate = new Date();\r\n var year = currentDate.getFullYear();\r\n var openDate = new Date(year, 3);\r\n var closeDate = new Date(year, 8);\r\n if (currentDate >= openDate && currentDate < closeDate)\r\n return true;\r\n else return false;\r\n }\r\n }\r\n angular.module(\"app\").controller(CRPLandingPage.controllerId, CRPLandingPage);\r\n} ","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IDirectAdmissionScope extends ng.IScope {\r\n vm: DirectAdmission;\r\n }\r\n\r\n interface IDirectAdmission {\r\n expanded: boolean;\r\n applications: Array;\r\n crossroadsUrl: string;\r\n umbracoUrl: string;\r\n apiHost: string;\r\n transcripts: Array;\r\n getUserApplicationsTryCount: number;\r\n }\r\n\r\n class DirectAdmission implements IDirectAdmission {\r\n static controllerId: string = \"directAdmission\";\r\n static $inject: Array = [\"$scope\",\r\n \"$window\",\r\n \"applicationsDataService\",\r\n \"common\",\r\n \"config\",\r\n \"Restangular\",\r\n \"Upload\",\r\n \"$http\",\r\n \"$location\",\r\n \"$document\",\r\n \"$interval\",\r\n \"Idle\",\r\n \"helper\"\r\n ];\r\n private log;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n expanded: boolean;\r\n applications: Array;\r\n crossroadsUrl: string;\r\n apiHost: string;\r\n transcripts: Array;\r\n getUserApplicationsTryCount: number = 0;\r\n errorGettingApplications: boolean = false;\r\n printing: any;\r\n emailing: any;\r\n refreshing: boolean = false;\r\n alerts: Array = [];\r\n childWindows: Array = [];\r\n timer: any = 0;\r\n userInfo: IUserInfoView;\r\n apphubNotification: any;\r\n user: any;\r\n savingDetails: boolean = false;\r\n noStudentNumber: boolean;\r\n eligible: boolean;\r\n umbracoUrl: string;\r\n ineligible: boolean;\r\n\r\n constructor(private $scope: ng.IScope,\r\n private $window: ng.IWindowService,\r\n private applicationsDataService: IApplicationsDataService,\r\n private common: ICommonFactory,\r\n private config: IConfig,\r\n private Restangular: Restangular.IService,\r\n private Upload,\r\n private $http: any,\r\n private $location: ng.ILocationService,\r\n private $document: ng.IDocumentService,\r\n private $interval: ng.IIntervalService,\r\n private Idle,\r\n private helper: IHelper) {\r\n this.common.authentication.authenticate(true).then(result => {\r\n if (result) {\r\n this.log = common.logger.getLogFn(DirectAdmission.controllerId);\r\n this.logError = common.logger.getLogFn(DirectAdmission.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(DirectAdmission.controllerId, \"success\");\r\n\r\n\r\n this.common.authentication.isLoggedIn().then(loggedIn => {\r\n if (loggedIn) {\r\n this.userInfo = this.common.authentication.user;\r\n this.activate();\r\n this.expanded = false;\r\n this.crossroadsUrl = config.crossroadsUrl;\r\n this.apiHost = config.apiHost;\r\n this.umbracoUrl = this.config.umbracoUrl;\r\n console.log(config);\r\n }\r\n });\r\n\r\n\r\n\r\n }\r\n });\r\n\r\n\r\n $scope.$on('$destroy', function () {\r\n Idle.watch();\r\n });\r\n }\r\n\r\n activate() {\r\n var promises = [];\r\n this.common.activateController(promises, DirectAdmission.controllerId)\r\n .then(() => {\r\n this.eligible = false;\r\n this.refreshing = true;\r\n this.applications = null;\r\n this.getProfile();\r\n\r\n this.log(\"Activated Direct Admissions View\");\r\n\r\n });\r\n }\r\n\r\n getProfile() {\r\n this.Restangular.one(\"users/profile\").get()\r\n .then((result) => {\r\n if (result) {\r\n this.user = result;\r\n if (this.user.studentId != null && this.user.studentId != '') {\r\n this.getEligibility();\r\n }\r\n else\r\n this.noStudentNumber = true;\r\n }\r\n }, (reason) => {\r\n this.logError(reason);\r\n });\r\n }\r\n\r\n updateUser = () => {\r\n this.savingDetails = true;\r\n var params = { userId: this.user.id, studentNumber: this.user.studentId };\r\n this.Restangular.all(\"users/studentNumber/save\").post(params)\r\n .then((result) => {\r\n this.noStudentNumber = false;\r\n this.savingDetails = false;\r\n this.getEligibility();\r\n this.logSuccess(\"Your profile has been updated.\", result, true);\r\n }, (reason) => {\r\n switch (reason.status) {\r\n case 400:\r\n if (reason.data.modelState) {\r\n for (var key in reason.data.modelState) {\r\n reason.data.modelState[key].forEach((s) => {\r\n this.logError(s, s, true);\r\n this.savingDetails = false;\r\n });\r\n };\r\n }\r\n break;\r\n case 500:\r\n this.logError(reason, reason.data, true);\r\n this.savingDetails = false;\r\n break;\r\n }\r\n\r\n this.savingDetails = false;\r\n })\r\n };\r\n\r\n getEligibility() {\r\n this.applicationsDataService.getDirectAdmissionEligibility(this.user.lastName, this.user.studentId).then((data) => {\r\n if (data.ceebCode == null) {\r\n this.ineligible = true;\r\n }\r\n else {\r\n this.ineligible = false;\r\n this.getUserApplications();\r\n }\r\n }, (reason) => {\r\n console.log(reason);\r\n });\r\n }\r\n\r\n getUserApplications() {\r\n this.applications = null;\r\n this.applicationsDataService.getDirectAdmissionApplications(this.user.studentId).then((data) => {\r\n this.applications = data;\r\n }, (reason) => {\r\n console.log(reason);\r\n });\r\n }\r\n\r\n viewProfile()\r\n {\r\n var appWindow = this.$window.open(this.config.cfncUrl + \"/profile\", \"_blank\");\r\n this.addChildWindow(appWindow);\r\n }\r\n\r\n viewApp = (selectedApp) => {\r\n var appWindow;\r\n this.Restangular.one(\"Prospect/\" + selectedApp.applicationId).one(\"isRecruited\").get().then((results) => {\r\n if (!results) {\r\n this.Restangular.all(\"Prospect/addRecruiter\").post({ applicationDefinitionId: selectedApp.applicationId, source: \"Application\" })\r\n .then((results) => {\r\n console.log(results);\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n }\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n\r\n appWindow = this.$window.open(this.config.crossroadsUrl + \"/\" + selectedApp.viewUrl, \"_blank\");\r\n\r\n this.addChildWindow(appWindow);\r\n };\r\n\r\n addChildWindow = (appWindow) => {\r\n this.childWindows.push(appWindow);\r\n if (this.timer == 0) {\r\n console.log(\"timer started\");\r\n this.Idle.unwatch();\r\n this.timer = this.$interval(this.checkWindow, 1000, 0, true);\r\n }\r\n };\r\n\r\n checkWindow = () => {\r\n for (var win = 0; win < this.childWindows.length; win++) {\r\n if (!this.childWindows[win]) {\r\n this.childWindows.splice(win, 1);\r\n }\r\n else if (this.childWindows[win].closed) {\r\n this.childWindows.splice(win, 1);\r\n this.activate();\r\n }\r\n }\r\n\r\n if (this.childWindows.length == 0) {\r\n this.$interval.cancel(this.timer);\r\n this.timer = 0;\r\n this.Idle.watch();\r\n }\r\n }\r\n }\r\n\r\n angular.module(\"app\").controller(DirectAdmission.controllerId, DirectAdmission);\r\n}","module Cfnc {\r\n \"use strict\";\r\n\r\n interface IAltSrc extends angular.IScope{\r\n altSrc: string;\r\n }\r\n\r\n class AltSrc implements ng.IDirective {\r\n static directiveId: string = \"altSrc\";\r\n restrict: string = \"A\";\r\n scope: any = {\r\n altSrc: \"@\"\r\n };\r\n constructor() {\r\n }\r\n\r\n link = (scope: IAltSrc, element: angular.IAugmentedJQuery) => {\r\n element.hide();\r\n\r\n element.on(\"error\", event => {\r\n event.target.setAttribute(\"src\", scope.altSrc)\r\n });\r\n\r\n element.on(\"load\", (event) => {\r\n $(event.target).show();\r\n });\r\n }\r\n }\r\n\r\n angular.module(\"app\").directive(AltSrc.directiveId, [() => new AltSrc()]);\r\n}\r\n","module Cfnc {\r\n \"use strict\";\r\n\r\n interface ICfncCheckbox extends angular.IDirective {\r\n name: string;\r\n labelText: string;\r\n trueValue: string;\r\n falseValue: string;\r\n }\r\n\r\n interface ICfncCheckboxScope extends angular.IScope {\r\n model: any;\r\n labelText: string;\r\n ngModel: any;\r\n isDisabled: boolean;\r\n ngDisabled: boolean;\r\n ngValue: any;\r\n click: Function;\r\n }\r\n\r\n interface ICfncCheckboxAttributes extends angular.IAttributes {\r\n labelText: string;\r\n trueValue: string;\r\n falseValue: string;\r\n }\r\n\r\n class CfncCheckbox implements ng.IDirective {\r\n static directiveId: string = \"cfncCheckbox\";\r\n restrict: string = \"E\";\r\n require: string = \"?ngModel\";\r\n template: string = `
\r\n \r\n \r\n
`;\r\n replace: boolean = true;\r\n scope: any = {\r\n ngModel: \"=\",\r\n labelText: \"@\",\r\n name: \"@\",\r\n ngDisabled: \"=\",\r\n ngChecked: \"=\",\r\n ngValue: \"=\",\r\n ngClick: \"&\",\r\n ngRequired: \"=\"\r\n };\r\n\r\n constructor() {\r\n }\r\n\r\n link = (scope: ICfncCheckboxScope, element: angular.IAugmentedJQuery, attrs: ICfncCheckboxAttributes, controller: ng.INgModelController) => {\r\n var trueValue = attrs.trueValue ? eval(attrs.trueValue) : true;\r\n var falseValue = attrs.falseValue ? eval(attrs.falseValue) : false;\r\n\r\n scope.model = scope.ngModel === trueValue ? trueValue : falseValue;\r\n controller.$setViewValue(scope.ngModel === trueValue ? trueValue : falseValue);\r\n \r\n scope.$watch(\"model\", (newValue, oldValue) => {\r\n if (trueValue != true || falseValue != false) {\r\n if (newValue != oldValue && newValue != trueValue) {\r\n controller.$setViewValue(newValue || newValue == trueValue ? trueValue : falseValue);\r\n scope.$applyAsync();\r\n }\r\n }\r\n else {\r\n if (newValue != oldValue) {\r\n controller.$setViewValue(newValue || newValue == trueValue ? trueValue : falseValue);\r\n scope.$applyAsync();\r\n }\r\n }\r\n });\r\n\r\n scope.$watch(\"ngModel\", (newValue, oldValue) => {\r\n if (trueValue != true || falseValue != false) {\r\n if (newValue != oldValue && newValue != trueValue) {\r\n scope.model = newValue || newValue == trueValue ? trueValue : falseValue;\r\n }\r\n }\r\n else {\r\n if (newValue != oldValue) {\r\n scope.model = newValue || newValue == trueValue ? trueValue : falseValue;\r\n }\r\n }\r\n });\r\n\r\n element.on(\"keypress\", (event) => {\r\n console.log(event);\r\n if (event.which == 13 || event.which == 32) {\r\n event.preventDefault();\r\n scope.model = !scope.model;\r\n scope.$applyAsync();\r\n }\r\n });\r\n }\r\n }\r\n\r\n angular.module(\"app\").directive(CfncCheckbox.directiveId, [() => new CfncCheckbox()]);\r\n}\r\n\r\n/*\r\n cfnc-checkbox Usage\r\n \r\n\r\n ng-model: expression\r\n label-text: expression | string | number\r\n true-value: expression | string | number | boolean\r\n false-value: expression | string | number | boolean\r\n */ ","module Cfnc {\r\n \"use strict\";\r\n\r\n interface ICfncRadio extends angular.IDirective {\r\n labelText: string;\r\n }\r\n\r\n interface ICfncRadioScope extends angular.IScope {\r\n model: any;\r\n name: string;\r\n labelText: string;\r\n ngModel: any;\r\n ngValue: any;\r\n ngDisabled: any;\r\n }\r\n\r\n interface ICfncRadioAttributes extends angular.IAttributes {\r\n labelText: string;\r\n trueValue: string;\r\n falseValue: string;\r\n }\r\n\r\n class CfncRadio implements ng.IDirective {\r\n static directiveId: string = \"cfncRadio\";\r\n restrict: string = \"E\";\r\n require: string = \"?ngModel\";\r\n template: string = `
\r\n \r\n \r\n
`;\r\n replace: boolean = true;\r\n scope: any = {\r\n name: \"@\",\r\n ngModel: \"=\",\r\n labelText: \"@\",\r\n ngValue: \"=\",\r\n ngDisabled: \"=\"\r\n };\r\n\r\n constructor() {\r\n }\r\n\r\n link = (scope: ICfncRadioScope, element: angular.IAugmentedJQuery, attrs: ICfncRadioAttributes, controller: ng.INgModelController) => {\r\n\r\n scope.model = scope.ngModel;\r\n\r\n scope.$watch(\"model\", (newValue, oldValue) => {\r\n if (newValue != oldValue) {\r\n controller.$setViewValue(newValue);\r\n }\r\n });\r\n\r\n scope.$watch(\"ngModel\", (newValue, oldValue) => {\r\n if (newValue != oldValue) {\r\n scope.model = newValue;\r\n }\r\n });\r\n\r\n element.on(\"keypress\", (event) => {\r\n if (event.which == 13 || event.which == 32) {\r\n event.preventDefault();\r\n scope.ngModel = scope.ngValue;\r\n scope.$applyAsync();\r\n }\r\n });\r\n\r\n\r\n }\r\n }\r\n\r\n angular.module(\"app\").directive(CfncRadio.directiveId, [() => new CfncRadio()]);\r\n}\r\n\r\n/*\r\n cfnc-radio Usage\r\n \r\n\r\n ng-model: expression\r\n label-text: expression | string\r\n */ ","/// \r\n\r\n\r\nmodule Cfnc {\r\n\r\n interface ICfncVRViewAttributes extends angular.IAttributes {\r\n id: string;\r\n width: string;\r\n height: string;\r\n isStereo: boolean;\r\n }\r\n\r\n interface ICfncVRViewScope extends angular.IScope {\r\n playing: boolean;\r\n volume: number;\r\n mute: boolean;\r\n play: () => void;\r\n setVolume: () => void;\r\n muteVolume: () => void;\r\n vrView: any;\r\n src: string;\r\n isReady: boolean;\r\n init: () => void;\r\n }\r\n\r\n class CfncVRView implements ng.IDirective {\r\n static directiveId: string = \"cfncVrview\";\r\n restrict: string = \"E\";\r\n template: string = `
\r\n
\r\n \r\n \r\n \r\n
\r\n
`;\r\n replace: boolean = true;\r\n scope: any = {\r\n src: \"=\"\r\n }\r\n\r\n constructor() { }\r\n\r\n link = (scope: ICfncVRViewScope, element: angular.IAugmentedJQuery, attrs: ICfncVRViewAttributes) => {\r\n scope.playing = false;\r\n scope.volume = 100;\r\n scope.mute = false;\r\n scope.isReady = false;\r\n\r\n\r\n angular.element('document').ready(() => {\r\n scope.vrView = new VRView.Player(\"#\" + attrs.id, {\r\n video: scope.src,\r\n is_stereo: attrs.isStereo ? attrs.isStereo : false,\r\n width: attrs.width ? attrs.width : \"100%\",\r\n height: attrs.height ? attrs.height : \"100%\"\r\n });\r\n\r\n scope.vrView.on('ready', () => {\r\n scope.playing = true;\r\n scope.isReady = true;\r\n scope.$applyAsync();\r\n });\r\n });\r\n\r\n\r\n\r\n scope.play = () => {\r\n console.log(scope.vrView.getCurrentTime());\r\n if (scope.playing) {\r\n scope.vrView.pause();\r\n scope.playing = false;\r\n\r\n }\r\n else {\r\n scope.vrView.play();\r\n scope.playing = true;\r\n }\r\n };\r\n\r\n scope.setVolume = () => {\r\n console.log(scope.vrView);\r\n if (scope.vrView) {\r\n scope.mute = false;\r\n scope.vrView.setVolume(scope.volume / 100);\r\n }\r\n };\r\n\r\n scope.muteVolume = () => {\r\n scope.mute = !scope.mute;\r\n\r\n if (scope.vrView) {\r\n if (scope.mute) {\r\n\r\n scope.vrView.setVolume(0);\r\n } else {\r\n scope.vrView.setVolume(scope.volume / 100);\r\n }\r\n }\r\n }\r\n\r\n\r\n scope.$watch(\"src\", (newValue: string, oldValue: string) => {\r\n if (scope.vrView != null) {\r\n scope.vrView.setContent({\r\n video: newValue,\r\n is_stereo: attrs.isStereo ? attrs.isStereo : false\r\n });\r\n scope.vrView.play();\r\n scope.playing = true;\r\n }\r\n });\r\n\r\n \r\n }\r\n }\r\n\r\n angular.module(\"app\").directive(CfncVRView.directiveId, [() => new CfncVRView()]);\r\n}","/// \r\nnamespace Cfnc {\r\n\r\n interface ICfncAccountAvailable extends ng.IDirective {\r\n\r\n }\r\n\r\n interface ICfncAccountAvailableScope extends ng.IScope {\r\n ngModel: string;\r\n emailVerificationResult: EmailVerificationResult;\r\n test: string;\r\n }\r\n\r\n interface ICfncAccountAvailableAttributes extends ng.IAttributes {\r\n cfncAccountAvailable: string;\r\n originalValue: string;\r\n ngModel: string;\r\n test: string;\r\n emailVerificationResult: string;\r\n }\r\n\r\n class EmailVerificationResult {\r\n emailIsValid: boolean;\r\n emailVerified: boolean;\r\n emailSignature: boolean;\r\n }\r\n \r\n class CfncAccountAvailable implements ICfncAccountAvailable {\r\n static directiveId: string = \"cfncAccountAvailable\";\r\n restrict: string = \"A\";\r\n require: string = \"?ngModel\";\r\n scope: any = {\r\n ngModel: \"=\",\r\n emailVerificationResult: \"=\"\r\n };\r\n\r\n private log;\r\n logError: (msg, data?, showToast?) => void;\r\n\r\n\r\n constructor(private $parse: ng.IParseService, private Restangular: Restangular.IService, private common: Cfnc.ICommonFactory) {\r\n this.logError = common.logger.getLogFn(CfncAccountAvailable.directiveId, \"error\");\r\n }\r\n\r\n link = (scope: ICfncAccountAvailableScope, element, attrs: ICfncAccountAvailableAttributes, controller: ng.INgModelController) => {\r\n scope.$watch(\"ngModel\", (model: string) => {\r\n if (!attrs.cfncAccountAvailable) {\r\n attrs.cfncAccountAvailable = \"username\";\r\n }\r\n\r\n this.common.debouncedThrottle(\"UserNameAvailibilty\", () => {\r\n if (attrs.originalValue) {\r\n if (model === attrs.originalValue) {\r\n controller.$setValidity(\"available\", true);\r\n return;\r\n }\r\n }\r\n if (model) {\r\n this.Restangular.all(\"users\")\r\n .all(model)\r\n .one(\"check\" + attrs.cfncAccountAvailable).get().then((result: EmailVerificationResult) => {\r\n controller.$setValidity(\"available\", true);\r\n scope.emailVerificationResult.emailIsValid = result.emailIsValid;\r\n scope.emailVerificationResult.emailVerified = result.emailVerified;\r\n scope.emailVerificationResult.emailSignature = result.emailSignature;\r\n }, (reason) => {\r\n if (reason.status === 409) {\r\n controller.$setValidity(\"available\", false);\r\n } else {\r\n controller.$setValidity(\"available\", true);\r\n this.logError(\"An error occurred while checking the availability of the provided account name or email address. Please try again later.\", reason, true);\r\n }\r\n });\r\n }\r\n else {\r\n controller.$setValidity(\"available\", true);\r\n }\r\n }, 500);\r\n });\r\n };\r\n }\r\n\r\n angular.module(\"app\").directive(CfncAccountAvailable.directiveId, [\"$parse\", \"Restangular\", \"common\",\r\n ($parse: ng.IParseService, Restangular: Restangular.IService, common: Cfnc.ICommonFactory) =>\r\n new CfncAccountAvailable($parse, Restangular, common)\r\n ]);\r\n}","/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IcfncErrors extends ng.IDirective {\r\n }\r\n\r\n interface IcfncErrorsScope extends ng.IScope {\r\n modelData: any;\r\n errorData: Array;\r\n cssClass: string;\r\n }\r\n\r\n interface IcfncErrorsAttributes extends ng.IAttributes {\r\n cssClass: string;\r\n }\r\n\r\n\r\n class cfncErrors implements IcfncErrors {\r\n static directiveId: string = \"cfncErrors\";\r\n restrict: string = \"EA\";\r\n replace: boolean = false;\r\n scope: any = {\r\n modelData: \"=\",\r\n errorData: \"=\"\r\n };\r\n template: string = \"
0\\\">
{{ error }}
\";\r\n\r\n constructor() {\r\n }\r\n\r\n link = (scope: IcfncErrorsScope, element, attrs: IcfncErrorsAttributes) => {\r\n console.log(element);\r\n scope.cssClass = attrs.cssClass;\r\n scope.$watch(\"modelData\", () => {\r\n scope.errorData = [];\r\n }, true);\r\n }\r\n }\r\n\r\n angular.module(\"app\").directive(cfncErrors.directiveId, [() =>\r\n new cfncErrors()\r\n ]);\r\n}","module Cfnc {\r\n \"use strict\"\r\n\r\n interface ICfncExternalContentAttributes extends ng.IAttributes {\r\n\r\n }\r\n\r\n interface ICfncExternalContent extends ng.IScope {\r\n src: string;\r\n append: boolean;\r\n userId: number;\r\n }\r\n\r\n class CfncExternalContent implements ng.IDirective {\r\n static directiveId: string = \"cfncExternalContent\";\r\n restrict: string = \"EA\";\r\n replace: boolean = false;\r\n template: string = \"\";\r\n scope: any = {\r\n src: \"=\",\r\n append: \"=\"\r\n }\r\n\r\n constructor(private $http: ng.IHttpService, private $compile: ng.ICompileService) { }\r\n\r\n link = (scope: ICfncExternalContent, element: ng.IAugmentedJQuery, attrs: ICfncExternalContentAttributes) => {\r\n var append = scope.append || true;\r\n //scope.userId = 12345678;\r\n var getExternalContent = (url: string) => {\r\n this.$http.get(url).then(response => {\r\n if (response.status == 200) {\r\n if (append) {\r\n element.html(response.data.toString());\r\n\r\n this.$compile(element.contents())(scope.$parent);\r\n }\r\n else {\r\n element.replaceWith(response.data.toString());\r\n }\r\n } else {\r\n console.error(\"Error loading external content\", response);\r\n }\r\n });\r\n }\r\n\r\n scope.$watch(\"src\", (newValue: string, oldValue: string) => {\r\n if (newValue != oldValue) {\r\n if (newValue == null || newValue == \"\") {\r\n element.html(\"\");\r\n }\r\n else {\r\n getExternalContent(newValue);\r\n }\r\n }\r\n });\r\n\r\n if (scope.src) {\r\n getExternalContent(scope.src);\r\n }\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n angular.module(\"app\").directive(CfncExternalContent.directiveId, [\"$http\", \"$compile\", ($http: ng.IHttpService, $compile: ng.ICompileService) => new CfncExternalContent($http, $compile)]);\r\n}","/// \r\nmodule Cfnc {\r\n \"use strict\";\r\n\r\n interface ICfncIFrame extends angular.IDirective {\r\n }\r\n\r\n interface ICfncIFrameScope extends angular.IScope {\r\n dataSrc: string;\r\n onReceivedMessage: () => void;\r\n }\r\n\r\n interface ICfncIFrameAttributes extends angular.IAttributes {\r\n onReceivedMessage\r\n }\r\n\r\n CfncIFrame.$inject = [\"$sce\", \"$window\"];\r\n function CfncIFrame($sce: ng.ISCEService, $window: ng.IWindowService): ICfncIFrame {\r\n return {\r\n restrict: \"E\",\r\n link: link,\r\n template: \"\",\r\n replace: true,\r\n scope: {\r\n onReceivedMessage: \"=\"\r\n }\r\n }\r\n\r\n function link(scope: ICfncIFrameScope, element: angular.IAugmentedJQuery, attrs: ICfncIFrameAttributes) {\r\n if (attrs.onReceivedMessage) {\r\n $window.addEventListener(\"message\", (e: MessageEvent) => {\r\n scope.onReceivedMessage.call(scope.$parent, e.data);\r\n\r\n });\r\n }\r\n }\r\n }\r\n\r\n angular.module(\"app\").directive(\"cfncIframe\", CfncIFrame);\r\n}","/// \r\nnamespace Cfnc {\r\n\r\n interface IcfncIncludeError extends ng.IDirective {\r\n\r\n }\r\n\r\n interface IcfncIncludeErrorScope extends ng.IScope {\r\n cfncIncludeError: any;\r\n errorModel: any;\r\n }\r\n\r\n class cfncIncludeError implements IcfncIncludeError {\r\n static directiveId: string = \"cfncIncludeError\";\r\n restrict: string = \"A\";\r\n require: string = \"?ngModel\";\r\n scope: any = {\r\n cfncIncludeError: \"=cfncIncludeError\",\r\n model: \"=ngModel\",\r\n errorModel: \"=errorModel\"\r\n }\r\n\r\n constructor(private $parse: ng.IParseService, private common: Cfnc.ICommonFactory) {\r\n }\r\n\r\n link = (scope: IcfncIncludeErrorScope, element, attrs, controller) => {\r\n //var cfncIncludeError: any = this.$parse(attrs.cfncIncludeError)(scope);\r\n var ctrl = controller;\r\n scope.$watch(() => { return scope.errorModel; } ,(errorModel) => {\r\n //var errorModel: any = this.$parse(attrs.cfncIncludeError)(scope);\r\n for (var key in errorModel) {\r\n controller.$error[key] = errorModel[key];\r\n }\r\n });\r\n\r\n scope.$watch(\"model\", (newValue, oldValue) => {\r\n console.log(newValue + \", \" + oldValue);\r\n if (newValue != oldValue) {\r\n for (var key in scope.cfncIncludeError) {\r\n delete ctrl.$error[key];\r\n delete scope.cfncIncludeError[key];\r\n if (Object.keys(ctrl.$error).length <= 0) {\r\n ctrl.$invalid = false;\r\n }\r\n }\r\n }\r\n \r\n });\r\n };\r\n }\r\n\r\n angular.module(\"app\").directive(cfncIncludeError.directiveId, [\"$parse\", \"common\",\r\n ($parse: ng.IParseService, common: Cfnc.ICommonFactory) =>\r\n new cfncIncludeError($parse, common)\r\n ]);\r\n}","\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface ICfncMenuActive extends ng.IDirective {\r\n }\r\n\r\n interface ICfncMenuActiveScope extends ng.IScope {\r\n }\r\n\r\n interface ICfncMenuActiveAttributes extends ng.IAttributes {\r\n cfncMenuActive: string;\r\n }\r\n\r\n export class CfncMenuActive implements ICfncMenuActive {\r\n static directiveId: string = \"cfncMenuActive\";\r\n restrict: string = \"A\";\r\n replace: boolean = false;\r\n\r\n constructor(private $rootScope: ng.IRootScopeService, private $timeout: ng.ITimeoutService, private $route: ng.route.IRouteService) {\r\n\r\n }\r\n\r\n link = (scope: ICfncMenuActiveScope, element: ng.IAugmentedJQuery, attrs: ICfncMenuActiveAttributes) => {\r\n var isActive = () => {\r\n var route: any = this.$route.current;\r\n if (route.settings && route.settings.parent == attrs.cfncMenuActive) {\r\n element.addClass(\"menu-active\");\r\n }\r\n else {\r\n element.removeClass(\"menu-active\");\r\n }\r\n }\r\n\r\n isActive();\r\n\r\n this.$rootScope.$on(\"$routeChangeSuccess\",\r\n () => {\r\n this.$timeout(() => {\r\n isActive();\r\n });\r\n });\r\n }\r\n\r\n }\r\n \r\n\r\n angular.module(\"app\").directive(\"cfncMenuActive\", [\"$rootScope\", \"$timeout\", \"$route\", ($rootScope, $timeout, $route) =>\r\n new CfncMenuActive($rootScope, $timeout, $route)\r\n ]);\r\n}","namespace Cfnc {\r\n \"use strict\";\r\n\r\n interface ICfncMmenu extends ng.IDirective {\r\n }\r\n\r\n interface ICfncMmenuScope extends ng.IScope {\r\n menu: any;\r\n }\r\n\r\n declare const Mmenu: any;\r\n\r\n\r\n export class CfncMmenu implements ICfncMmenu {\r\n static directiveId: string = \"cfncMmenu\";\r\n restrict: string = \"A\";\r\n replace: boolean = false; \r\n\r\n constructor() {\r\n\r\n }\r\n\r\n link = (scope: ICfncMmenuScope, element: ng.IAugmentedJQuery, attrs: any) => {\r\n scope.menu = new Mmenu(\r\n \"#\" + attrs.id,\r\n {\r\n wrappers: [\"angular\"],\r\n navbar: {\r\n title: \"Main Menu\",\r\n },\r\n navbars: [\r\n {\r\n position: \"top\",\r\n content: [\"prev\", \"title\"],\r\n },\r\n ],\r\n },\r\n {\r\n // configuration\r\n classNames: {\r\n selected: \"active\",\r\n },\r\n }\r\n );\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n angular.module(\"app\").directive(CfncMmenu.directiveId, [() => new CfncMmenu()]);\r\n}","namespace Cfnc {\r\n \"use strict\";\r\n\r\n interface ICfncMmenuLink extends ng.IDirective {\r\n\r\n }\r\n\r\n interface ICfncMmenuLinkScope extends ng.IScope {\r\n menu: any;\r\n }\r\n\r\n declare const Mmenu: any;\r\n\r\n\r\n export class CfncMmenuLink implements ICfncMmenuLink {\r\n static directiveId: string = \"cfncMmenuLink\";\r\n require: \"^cfncMmenu\"\r\n restrict: string = \"A\";\r\n replace: boolean = false;\r\n\r\n constructor(private $location: ng.ILocationService) {\r\n\r\n }\r\n\r\n link = (scope: ICfncMmenuLinkScope, element: ng.IAugmentedJQuery, attrs: any) => {\r\n var path = attrs.cfncMmenuLink;\r\n\r\n // KC: This needs replaced. The cfncMMenu directive needs to expose a function that will do this and bind it to the menu button\r\n element.click(() => {\r\n $(\"#menuBtn\").toggleClass(\"active\");\r\n $(\"body\").toggleClass(\"state-scroll-blocked\");\r\n $(\".mobile-menu\").fadeToggle();\r\n this.$location.path(path);\r\n scope.$apply();\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n angular.module(\"app\").directive(CfncMmenuLink.directiveId, [\"$location\", ($location) => new CfncMmenuLink($location)]);\r\n}","namespace Cfnc {\r\n \"use strict\";\r\n\r\n interface ICfncScrollTo extends ng.IDirective {\r\n }\r\n\r\n interface ICfncScrollToScope extends ng.IScope {\r\n }\r\n\r\n interface ICfncScrollToAttributes extends ng.IAttributes {\r\n cfncScrollTo: string;\r\n scrollSpeed?: string;\r\n ngClick?: any;\r\n clickEventAction?: string;\r\n scrollElement?: string; \r\n scrollDirection: string;\r\n }\r\n\r\n CfncScrollTo.$inject = [\"$window\", \"$parse\"];\r\n function CfncScrollTo($window: ng.IWindowService, $parse: ng.IParseService): ICfncScrollTo {\r\n return {\r\n restrict: \"A\",\r\n link: link,\r\n \r\n }\r\n\r\n function link(scope: ICfncScrollToScope, element: ng.IAugmentedJQuery, attrs: ICfncScrollToAttributes) {\r\n var speed = attrs.scrollSpeed != null ? parseInt(attrs.scrollSpeed) : 500;\r\n var clickEvent;\r\n attrs.clickEventAction = attrs.clickEventAction ? attrs.clickEventAction : \"before\";\r\n \r\n if (attrs.ngClick) {\r\n clickEvent = _.clone(attrs.ngClick);\r\n element.off(\"click\");\r\n }\r\n\r\n element.on('click', (e) => {\r\n if (attrs.clickEventAction == \"before\" && clickEvent) {\r\n scope.$apply(clickEvent);\r\n }\r\n\r\n var elem = attrs.scrollElement ? attrs.scrollElement : \"html, body\";\r\n\r\n switch (attrs.scrollDirection) {\r\n case \"left\":\r\n $(elem).animate({\r\n scrollLeft: isFinite(parseInt(attrs.cfncScrollTo)) ? attrs.cfncScrollTo : $(\"#\" + attrs.cfncScrollTo).position().left\r\n }, speed).promise().done(() => {\r\n if (attrs.clickEventAction == \"after\" && clickEvent) {\r\n scope.$apply(clickEvent);\r\n }\r\n });\r\n break;\r\n default:\r\n $(elem).animate({\r\n scrollTop: isFinite(parseInt(attrs.cfncScrollTo)) ? attrs.cfncScrollTo : $(\"#\" + attrs.cfncScrollTo).position().top\r\n }, speed).promise().done(() => {\r\n if (attrs.clickEventAction == \"after\" && clickEvent) {\r\n scope.$apply(clickEvent);\r\n }\r\n });\r\n break;\r\n\r\n }\r\n \r\n\r\n });\r\n \r\n }\r\n }\r\n\r\n angular.module(\"app\").directive(\"cfncScrollTo\", CfncScrollTo);\r\n}","namespace Cfnc {\r\n \"use strict\";\r\n\r\n interface ICfncTooltip extends ng.IDirective {\r\n\r\n }\r\n\r\n CfncTooltip.$inject = [\"$window\"];\r\n function CfncTooltip($window: ng.IWindowService): ICfncTooltip {\r\n return {\r\n restrict: \"A\",\r\n link: link,\r\n scope: {\r\n bsTitle: \"@\"\r\n }\r\n }\r\n\r\n function link(scope, element: ng.IAugmentedJQuery, attrs) {\r\n\r\n if (scope.bsTitle) {\r\n element.removeAttr(\"data-bs-title\");\r\n element.attr(\"data-bs-title\", scope.bsTitle);\r\n }\r\n\r\n new $window.bootstrap.Tooltip(element);\r\n }\r\n }\r\n\r\n angular.module(\"app\").directive(\"cfncTooltip\", CfncTooltip);\r\n}","/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IConvertToNumber extends angular.IDirective {\r\n }\r\n\r\n interface IConvertToNumberScope extends angular.IScope {\r\n }\r\n\r\n interface IConvertToNumberAttributes extends angular.IAttributes {\r\n }\r\n\r\n convertToNumber.$inject = [\"$window\"];\r\n function convertToNumber($window: angular.IWindowService): IConvertToNumber {\r\n return {\r\n restrict: \"A\",\r\n require: \"ngModel\",\r\n link: link\r\n };\r\n\r\n function link(scope: IConvertToNumberScope, element: angular.IAugmentedJQuery, attrs: IConvertToNumberAttributes, modelController: angular.INgModelController) {\r\n modelController.$parsers.push((val) => {\r\n return parseInt(val, 10);\r\n });\r\n modelController.$formatters.push((val) => {\r\n if (val == null) {\r\n return \"\";\r\n }\r\n\r\n return \"\" + val;\r\n });\r\n\r\n }\r\n }\r\n\r\n angular.module(\"app\").directive(\"convertToNumber\", convertToNumber);\r\n}","/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IDateInput extends ng.IDirective {\r\n\r\n }\r\n\r\n interface IDateInputScope extends ng.IScope {\r\n format: string;\r\n timeZone: string;\r\n }\r\n\r\n class DateInput implements IDateInput {\r\n static directiveId: string = \"dateInput\";\r\n restrict: string = \"A\";\r\n require: any = \"ngModel\";\r\n \r\n link = (scope: IDateInputScope, element, attrs, ngModelCtrl: ng.INgModelController) => {\r\n ngModelCtrl.$formatters.unshift((modelValue) => {\r\n if (modelValue) {\r\n return moment(modelValue).format(attrs.dateInput);\r\n }\r\n });\r\n\r\n ngModelCtrl.$parsers.unshift((viewValue) => {\r\n if (viewValue) {\r\n var dateStringValue = moment.utc(viewValue, attrs.dateInput, true);\r\n\r\n if (dateStringValue.isValid()) {\r\n ngModelCtrl.$setValidity(\"date\", true);\r\n if (attrs.min) {\r\n var minValue = moment(attrs.min);\r\n if (dateStringValue.diff(minValue) > -1) {\r\n ngModelCtrl.$setValidity(\"minDate\", true);\r\n \r\n } else {\r\n ngModelCtrl.$setValidity(\"minDate\", false);\r\n }\r\n }\r\n\r\n if (attrs.max) {\r\n var maxValue = moment(attrs.max);\r\n if (dateStringValue.diff(maxValue) < 1) {\r\n ngModelCtrl.$setValidity(\"maxDate\", true);\r\n\r\n } else {\r\n ngModelCtrl.$setValidity(\"maxDate\", false);\r\n }\r\n }\r\n\r\n return dateStringValue.startOf(\"day\").toDate();\r\n } else {\r\n ngModelCtrl.$setValidity(\"date\", false);\r\n }\r\n\r\n \r\n } else {\r\n return null;\r\n }\r\n });\r\n\r\n };\r\n }\r\n\r\n angular.module(\"app\").directive(DateInput.directiveId, [() =>\r\n new DateInput()\r\n ]);\r\n\r\n}","/*\r\nAuthor: Dan Miller\r\nDate: 1/29/15\r\nThis directive is designed to disable ngAnimate on individual directives. There is a\r\nknown bug as of AnuglarJS version 1.3.5 and Angular-UI 0.4.0 with the \r\nAnuglar - UI Carousel that causes unwanted behavior if ngAnimate is enabled.\r\nAdding this attribute to the markup will fix the issue and allow the carousel\r\nto function properly.\r\n*/\r\n\r\n/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IDisableAnimation extends ng.IDirective {\r\n\r\n }\r\n\r\n interface IDisableAnimationScope extends ng.IScope {\r\n\r\n }\r\n\r\n class DisableAnimation implements IDisableAnimation {\r\n static directiveId: string = \"disableAnimation\";\r\n restrict: string = \"A\";\r\n\r\n constructor(private $animate) {\r\n }\r\n\r\n link = ($scope: IDisableAnimationScope, element, attrs) =>{\r\n attrs.$observe(\"disableAnimation\",(value) => {\r\n this.$animate.enabled(!value);\r\n });\r\n }\r\n\r\n }\r\n\r\n angular.module(\"app\").directive(DisableAnimation.directiveId, [\"$animate\", ($animate) =>\r\n new DisableAnimation($animate)\r\n ]);\r\n\r\n}","namespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IErrSrc extends ng.IDirective {\r\n }\r\n\r\n interface IErrSrcScope extends ng.IScope {\r\n }\r\n\r\n class ErrSrc implements IErrSrc {\r\n static directiveId: string = \"errSrc\";\r\n restrict: string = \"A\";\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n link = ($scope: IErrSrcScope, element, attrs) => {\r\n element.bind(\"error\",() => {\r\n if (attrs.src != attrs.errSrc) {\r\n attrs.$set(\"src\", attrs.errSrc);\r\n }\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n angular.module(\"app\").directive(ErrSrc.directiveId, [ ()=> new ErrSrc() ]);\r\n\r\n} ","/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IIfContains extends ng.IDirective {\r\n\r\n }\r\n\r\n interface IIfContainsScope extends ng.IScope {\r\n element: any;\r\n }\r\n\r\n class IfContains implements IIfContains {\r\n static directiveId: string = \"ifContains\";\r\n restrict: string = \"A\";\r\n scope: any = {};\r\n constructor() {\r\n }\r\n\r\n link = (scope: IIfContainsScope, element, attrs) => {\r\n scope.element = element;\r\n scope.$watch(() => {return element[0].innerHTML; },() => {\r\n if (element.find(attrs.ifContains).length <= 0) {\r\n element.addClass(\"ng-hide\");\r\n }\r\n else {\r\n element.removeClass(\"ng-hide\");\r\n }\r\n }); \r\n }\r\n\r\n }\r\n\r\n angular.module(\"app\").directive(IfContains.directiveId, [() =>\r\n new IfContains()\r\n ]);\r\n\r\n}","namespace Cfnc {\r\n \"use strict\";\r\n\r\n export interface IexclusiveLoginScope extends ng.IScope {\r\n exLoginForm: ng.IFormController;\r\n }\r\n\r\n interface IexclusiveLogin {\r\n activate: () => void;\r\n logoPath: string;\r\n appName: string;\r\n appDefId: string;\r\n organization: string;\r\n program: string;\r\n appKey: string;\r\n busy: boolean;\r\n loading: boolean;\r\n loginInfo: ILoginBindingModel;\r\n errors: Array;\r\n }\r\n\r\n class exclusiveLogin implements IexclusiveLogin {\r\n static controllerId: string = \"exclusiveLogin\";\r\n\r\n static $inject: string[] = [\"$scope\", \"$location\", \"$rootScope\", \"config\", \"$routeParams\", \"common\", \"Restangular\"];\r\n logoPath: string;\r\n appName: string;\r\n appDefId: string;\r\n organization: string;\r\n program: string;\r\n appKey: string;\r\n log: (msg, data?, showToast?) => void;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n busy: boolean = false;\r\n loading: boolean = true;\r\n loginInfo: ILoginBindingModel;\r\n errors: Array = [];\r\n\r\n constructor(private $scope: ng.IScope, private $location: ng.ILocationService, private $rootScope: IApplicationRootScope, private config: Config, private $routeParams, private common: ICommonFactory, private Restangular: Restangular.IService) {\r\n this.$rootScope.stylesheets = [];\r\n this.log = common.logger.getLogFn(exclusiveLogin.controllerId);\r\n this.logError = common.logger.getLogFn(exclusiveLogin.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(exclusiveLogin.controllerId, \"success\");\r\n var baseStyleSheet = {\r\n link: \"/content/application.css\"\r\n };\r\n\r\n this.$rootScope.stylesheets.push(baseStyleSheet);\r\n\r\n this.organization = this.$routeParams[\"organization\"];\r\n this.program = $routeParams[\"program\"];\r\n this.appKey = $routeParams[\"appKey\"];\r\n let appdefId = `application/${this.organization}/${this.program}/${this.appKey}`;\r\n\r\n window.location.href = `${this.config.crossroadsUrl}/${appdefId}?logoUrl=${this.config.crossroadsApiUrl}/${appdefId}/exclusiveLogo`;\r\n\r\n //this.common.authentication.safeAccessToken().then((accessToken) => {\r\n // if (accessToken) {\r\n // window.location.href = this.config.crossroadsUrl + \"/application/\" + this.organization + \"/\" + this.program + \"/\" + this.appKey;\r\n // }\r\n //});\r\n\r\n //this.activate();\r\n }\r\n\r\n activate() {\r\n\r\n var promises = [];\r\n this.common.activateController(promises, exclusiveLogin.controllerId)\r\n .then(() => {\r\n this.log(\"Activated CreateAccount View\");\r\n this.Restangular.one(\"application/\" + this.organization + \"/\" + this.program + \"/\" + this.appKey).get()\r\n .then((result) => {\r\n this.appName = result.name;\r\n this.appDefId = result.applicationDefinitionId;\r\n\r\n if (this.appDefId) {\r\n this.appDefId = decodeURIComponent(this.appDefId);\r\n\r\n this.logoPath = this.config.crossroadsApiUrl + \"/application/\" + this.appDefId + \"/exclusiveLogo\";\r\n\r\n var appStyleSheet = {\r\n link: this.config.crossroadsApiUrl + \"/application/\" + this.appDefId + \"/stylesheet\"\r\n };\r\n this.$rootScope.stylesheets.push(appStyleSheet);\r\n }\r\n this.loading = false;\r\n }, (reason) => {\r\n console.log(reason);\r\n });\r\n });\r\n\r\n }\r\n }\r\n\r\n angular.module(\"app\").controller(\"exclusiveLogin\", exclusiveLogin);\r\n}","/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IExclusiveShell {\r\n cfncUrl: string;\r\n javaUrl: string;\r\n transitionsUrl: string;\r\n }\r\n\r\n class ExclusiveShell implements IExclusiveShell {\r\n static controllerId: string = \"exclusiveShell\"\r\n static $inject: Array = [\"$rootScope\", \"common\", \"config\"]\r\n cfncUrl: string;\r\n javaUrl: string;\r\n transitionsUrl: string;\r\n\r\n constructor(private $rootScope: ng.IRootScopeService, private common: ICommonFactory, private config: IConfig) {\r\n this.activate();\r\n }\r\n\r\n activate(): void {\r\n this.common.activateController([], ExclusiveShell.controllerId);\r\n this.cfncUrl = this.config.cfncUrl;\r\n this.javaUrl = this.config.javaUrl;\r\n this.transitionsUrl = this.config.transitionsUrl;\r\n }\r\n }\r\n\r\n angular.module(\"app\").controller(ExclusiveShell.controllerId, ExclusiveShell);\r\n}","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\"\r\n\r\n interface IProgramDetails {\r\n }\r\n\r\n class ProgramDetails implements IProgramDetails {\r\n static $inject: Array = [\"common\", \"Restangular\", \"$routeParams\", \"$q\"];\r\n static controllerId: string = \"programDetails\";\r\n\r\n urlName: string;\r\n program: any;\r\n loading: boolean = true;\r\n schoolsOfferingProgram: any;\r\n programLength: any;\r\n pageNumber: any;\r\n log: (msg, data?, showToast?) => void;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n\r\n constructor(private common: ICommonFactory, private Restangular: Restangular.IService, private $routeParams: ng.route.IRouteParamsService, private $q: ng.IQService) {\r\n this.log = common.logger.getLogFn(ProgramDetails.controllerId);\r\n this.logError = common.logger.getLogFn(ProgramDetails.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(ProgramDetails.controllerId, \"success\");\r\n this.log = common.logger.getLogFn(ProgramDetails.controllerId);\r\n this.pageNumber = 1;\r\n this.urlName = $routeParams.program;\r\n this.activate();\r\n }\r\n\r\n activate() {\r\n var promises = [this.getProgram()];\r\n this.common.activateController(promises, ProgramDetails.controllerId)\r\n .then(() => {\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getProgram(): ng.IPromise {\r\n return this.Restangular.all(\"programsMajors\").all(\"programs\").one(this.urlName).get()\r\n .then((result) => {\r\n this.program = result;\r\n this.getSchoolsAndPrograms();\r\n },\r\n (reason) => {\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n getSchoolsAndPrograms(): ng.IPromise {\r\n var queryParams = { pageNumber: this.pageNumber };\r\n return this.Restangular.all(\"programsMajors\").all(\"programs\").all(\"schoolsOfferingProgram\").one(this.urlName).get(queryParams)\r\n .then((result) => {\r\n this.schoolsOfferingProgram = result;\r\n this.programLength = result.length;\r\n }, (reason) => {\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n saveProgram(): ng.IPromise {\r\n return this.Restangular.all(\"programsMajors\").all(\"saveProgram\").post(this.program)\r\n .then((result) => {\r\n this.program.isSaved = !this.program.isSaved;\r\n var message = this.program.isSaved ? 'Program saved successfully.' : 'Program removed successfully.';\r\n this.logSuccess(message, '', true);\r\n },\r\n (reason) => {\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n }\r\n angular.module(\"app\").controller(ProgramDetails.controllerId, ProgramDetails);\r\n} ","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IProgramSearch {\r\n occupations: any[];\r\n searchTerm: string;\r\n restResult: IRestResult\r\n page: number;\r\n pageSize: number;\r\n careerClusters: ICareerCluster[];\r\n searchType: string;\r\n searchId: number;\r\n loading: boolean;\r\n }\r\n\r\n interface IProgramResult {\r\n id: number;\r\n cipCode: string;\r\n programName: string;\r\n description: string;\r\n url: string;\r\n urlName: string;\r\n }\r\n\r\n interface ICareerCluster {\r\n id: number;\r\n code: number;\r\n title: string;\r\n description: string;\r\n }\r\n\r\n class ProgramSearch implements IProgramSearch {\r\n static controllerId: string = \"programSearch\";\r\n static $inject: string[] = [\"$scope\", \"common\", \"config\", \"Restangular\", \"$location\", \"$routeParams\", \"$q\"];\r\n\r\n occupations: any[];\r\n searchTerm: string;\r\n restResult: IRestResult\r\n page: number;\r\n pageSize: number = 10;\r\n careerClusters: ICareerCluster[];\r\n baseUrl: string;\r\n careerClusterId: number;\r\n searchType: string;\r\n searchId: number;\r\n loading: boolean = true;\r\n occCode: string;\r\n\r\n private log;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n\r\n\r\n constructor(private $scope: ng.IScope, private common: ICommonFactory, private config: IConfig, private Restangular: Restangular.IService, private $location: ng.ILocationService, private $routeParams: ng.route.IRouteParamsService, private $q: ng.IQService) {\r\n\r\n this.log = common.logger.getLogFn(ProgramSearch.controllerId);\r\n this.logError = common.logger.getLogFn(ProgramSearch.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(ProgramSearch.controllerId, \"success\");\r\n this.baseUrl = config.cfncUrl;\r\n\r\n if (Object.keys($location.search()).length > 0) {\r\n this.searchTerm = $location.search().s;\r\n this.page = $location.search().p;\r\n\r\n this.searchType = $location.search().searchType;\r\n this.searchId = $location.search().searchId;\r\n this.occCode = $location.search().occCode;\r\n\r\n\r\n if ((this.searchType && this.searchId) || this.occCode) {\r\n var params = this.getParams();\r\n this.getCareers(params);\r\n }\r\n else if (this.searchTerm) {\r\n this.search(this.page);\r\n }\r\n }\r\n\r\n this.$scope.$on(\"$routeUpdate\", () => {\r\n if ($location.hash()) {\r\n this.getState();\r\n }\r\n else if (Object.keys($location.search()).length > 0) {\r\n this.getState();\r\n }\r\n else {\r\n this.restResult = null;\r\n }\r\n });\r\n\r\n\r\n\r\n this.activate();\r\n }\r\n\r\n\r\n activate() {\r\n var promises = [this.getCareerClusters()];\r\n this.common.activateController(promises, ProgramSearch.controllerId).finally(() => {\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getState() {\r\n if (this.$location.state()) {\r\n this.searchTerm = this.$location.state().searchTerm;\r\n this.restResult = this.$location.state().restResult ? JSON.parse(this.$location.state().restResult) : null;\r\n this.page = this.$location.state().page ? this.$location.state().page : 1;\r\n this.careerClusterId = this.$location.state().careerClusterId ? this.$location.state().careerClusterId : null;\r\n\r\n this.searchType = this.$location.state().searchType ? this.$location.state().searchType : null;\r\n this.searchId = this.$location.state().searchId ? this.$location.state().searchId : null;\r\n }\r\n\r\n if (this.restResult == null) {\r\n this.search(this.page);\r\n }\r\n }\r\n\r\n saveState() {\r\n var state = {\r\n searchTerm: this.searchTerm,\r\n restResult: JSON.stringify(this.restResult),\r\n page: this.page,\r\n searchType: this.searchType,\r\n searchId: this.searchId\r\n };\r\n\r\n\r\n this.$location.search({ s: this.searchTerm, p: this.page, searchType: this.searchType, searchId: this.searchId, occCode: this.occCode });\r\n return this.$location.state(state);\r\n }\r\n\r\n getCareerClusters() {\r\n return this.Restangular.all(\"programsMajors\").one(\"clusters\").get()\r\n .then((result: ICareerCluster[]) => {\r\n this.careerClusters = result;\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n getCareers(params: any | string) {\r\n if (typeof (params) == \"string\") {\r\n return this.Restangular.oneUrl(\"programsMajors\", params).get()\r\n .then((result) => {\r\n this.restResult = result;\r\n this.saveState();\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n else {\r\n return this.Restangular.all(\"programsMajors\").one(\"programs\").get(params)\r\n .then((result) => {\r\n this.restResult = result;\r\n this.saveState();\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n }\r\n\r\n saveProgram(program: any): ng.IPromise {\r\n return this.Restangular.all(\"programsMajors\").all(\"saveProgram\").post(program)\r\n .then((result) => {\r\n program.isSaved = !program.isSaved;\r\n var message = program.isSaved ? 'Program saved successfully.' : 'Program removed successfully.';\r\n this.logSuccess(message, '', true);\r\n },\r\n (reason) => {\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n search(page) {\r\n this.resetSearch(false);\r\n this.page = page;\r\n\r\n var params = this.getParams()\r\n\r\n this.getCareers(params);\r\n }\r\n\r\n gotoPage(page) {\r\n this.page = page;\r\n var params = this.getParams();\r\n\r\n this.getCareers(params);\r\n }\r\n\r\n selectSearchType(searchType: string, id: number) {\r\n this.searchType = searchType;\r\n this.searchId = id;\r\n\r\n var params = this.getParams();\r\n\r\n this.getCareers(params);\r\n }\r\n\r\n\r\n resetSearch(clearSearchTerm?: boolean) {\r\n if (clearSearchTerm) {\r\n this.searchTerm = null;\r\n }\r\n\r\n this.searchType = null;\r\n this.searchId = null;\r\n }\r\n\r\n nextPage() {\r\n this.page += 1;\r\n this.getCareers(this.restResult.nextPageLink);\r\n }\r\n\r\n prevPage() {\r\n this.page -= 1;\r\n this.getCareers(this.restResult.prevPageLink);\r\n }\r\n\r\n getParams() {\r\n return {\r\n search: this.searchTerm,\r\n pageSize: this.pageSize,\r\n page: this.page,\r\n searchType: this.searchType,\r\n searchId: this.searchId,\r\n occCode: this.occCode\r\n }\r\n }\r\n }\r\n\r\n angular.module(\"app\").controller(ProgramSearch.controllerId, ProgramSearch);\r\n}","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\"\r\n\r\n interface ISavedProgramsMajors {\r\n }\r\n\r\n class SavedProgramsMajors implements ISavedProgramsMajors {\r\n static $inject: Array = [\"common\", \"Restangular\", \"$routeParams\", \"$q\", \"config\"];\r\n static controllerId: string = \"savedPrograms\";\r\n\r\n urlName: string;\r\n programs: any;\r\n loading: boolean = true;\r\n programLength: any;\r\n pageNumber: any;\r\n umbracoUrl: string;\r\n cfncUrl: string;\r\n slickConfig: any;\r\n log: (msg, data?, showToast?) => void;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n\r\n constructor(private common: ICommonFactory, private Restangular: Restangular.IService, private $routeParams: ng.route.IRouteParamsService, private $q: ng.IQService, private config: IConfig) {\r\n this.log = common.logger.getLogFn(SavedProgramsMajors.controllerId);\r\n this.logError = common.logger.getLogFn(SavedProgramsMajors.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(SavedProgramsMajors.controllerId, \"success\");\r\n this.log = common.logger.getLogFn(SavedProgramsMajors.controllerId);\r\n this.pageNumber = 1;\r\n this.urlName = $routeParams.program;\r\n this.umbracoUrl = this.config.umbracoUrl;\r\n this.cfncUrl = this.config.cfncUrl;\r\n this.slickConfig = {\r\n slidesToShow: 3,\r\n dots: false,\r\n arrows: false,\r\n centerMode: true,\r\n infinite: false,\r\n variableWidth: true,\r\n focusOnSelect: true\r\n };\r\n this.activate();\r\n }\r\n\r\n activate() {\r\n var promises = [this.getSavedPrograms()];\r\n this.common.activateController(promises, SavedProgramsMajors.controllerId)\r\n .then(() => {\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getSavedPrograms(): ng.IPromise {\r\n var queryParams = { pageNumber: this.pageNumber };\r\n return this.Restangular.one(\"programsMajors/getSavedPrograms\").get(queryParams).then((results) => {\r\n this.programs = results;\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n }\r\n\r\n deleteProgram = (savedCollege: any, location: number) => {\r\n console.log(savedCollege);\r\n this.Restangular.all(\"collegePlanning/deleteSavedProgram\").post(savedCollege).then((results) => {\r\n this.logSuccess(\"Your saved college changes have been saved\", null, true);\r\n this.getSavedPrograms();\r\n }, (reason) => {\r\n this.logError(\"An error occurred while processing your request.\", reason, true);\r\n console.error(reason);\r\n });\r\n }\r\n }\r\n angular.module(\"app\").controller(SavedProgramsMajors.controllerId, SavedProgramsMajors);\r\n} ","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface ISchoolOfferingProgramScope extends ng.IScope {\r\n vm: SchoolOfferingProgram;\r\n }\r\n\r\n interface ISchoolOfferingProgram {\r\n program: string;\r\n programId: number;\r\n results: any;\r\n\r\n }\r\n\r\n class SchoolOfferingProgram implements ISchoolOfferingProgram {\r\n static controllerId: string = \"schoolOfferingProgram\";\r\n static $inject: Array = [\"$rootScope\", \"$uibModal\", \"common\", \"$routeParams\", \"Restangular\", \"config\"];\r\n private log;\r\n program: string;\r\n results: Array;\r\n newResults: any;\r\n programId: number;\r\n programType: any;\r\n programOption: any;\r\n schoolsLoaded: boolean;\r\n sortBy: any;\r\n sortDirection: any;\r\n currentPage: number;\r\n totalInstitutions: number;\r\n transitionsUrl: string;\r\n descriptionId: string;\r\n isSaved: boolean;\r\n buttonClass: any;\r\n\r\n logSuccess: (msg, data?, showHowl?) => void;\r\n\r\n constructor(private $rootScope: ng.IRootScopeService, private $uibModal: ng.ui.bootstrap.IModalService, private common: ICommonFactory, private $routeParams: ng.route.IRouteParamsService, private Restangular: Restangular.IService, private config: IConfig) {\r\n this.log = common.logger.getLogFn(SchoolOfferingProgram.controllerId);\r\n this.logSuccess = this.common.logger.getLogFn(SchoolOfferingProgram.controllerId, \"success\");\r\n this.transitionsUrl = config.transitionsUrl;\r\n this.programId = $routeParams[\"programId\"];\r\n\r\n this.$rootScope.$on(\"$routeChangeStart\", (event, next, current): void => {\r\n sessionStorage.setItem(\"ProgramLevel\", this.programOption);\r\n });\r\n\r\n this.activate();\r\n }\r\n\r\n activate() {\r\n var promises = [];\r\n this.common.activateController(promises, SchoolOfferingProgram.controllerId)\r\n .then(() => {\r\n this.common.authentication.isLoggedIn().then((loggedIn) => {\r\n if (loggedIn) {\r\n this.programSavedCheck();\r\n }\r\n this.log(\"Activated Schools Offering Program View\");\r\n this.programOption = \"Certificate\";\r\n var test = sessionStorage.getItem(\"ProgramLevel\");\r\n if (test) {\r\n this.programOption = test;\r\n sessionStorage.removeItem(\"ProgramLevel\");\r\n }\r\n this.schoolsLoaded = false;\r\n this.isSaved = false;\r\n this.buttonClass = \"\";\r\n this.sortBy = \"School\";\r\n this.sortDirection = \"ASC\";\r\n this.currentPage = 1;\r\n this.getSchools();\r\n });\r\n\r\n });\r\n }\r\n\r\n sort(sortValue: string) {\r\n if (this.sortBy === sortValue) {\r\n this.sortDirection = this.sortDirection === \"ASC\" ? \"DESC\" : \"ASC\";\r\n } else {\r\n this.sortBy = sortValue;\r\n }\r\n this.getSchools();\r\n }\r\n\r\n getSchools = () => {\r\n this.Restangular.one(\"ExploreProgramMajors/getschools/\" + this.programId + \"/\" + this.programOption + \"/\" + this.sortBy + \"/\" + this.sortDirection + \"/\" + this.currentPage).get().then((results) => {\r\n this.program = results.programName;\r\n this.newResults = results.institutions;\r\n this.descriptionId = results.xapDescriptionId;\r\n this.schoolsLoaded = true;\r\n this.totalInstitutions = results.totalInstitutions;\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n }\r\n\r\n programSavedCheck() {\r\n this.Restangular.one(\"ExploreProgramMajors/ProgramSavedCheck/\" + this.programId).get().then((results) => {\r\n this.isSaved = results.saved;\r\n if (this.isSaved)\r\n this.buttonClass = { \"cursor\": \"not-allowed\", \"pointer-events\": \"none\", \"color\": \"grey\", \"text-decoration\": \"none\" };\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n }\r\n\r\n saveProgram() {\r\n var data = { Id: this.programId };\r\n this.Restangular.all(\"ExploreProgramMajors/SaveProgram\").post(data).then((results) => {\r\n this.isSaved = true;\r\n this.buttonClass = { \"cursor\": \"not-allowed\", \"pointer-events\": \"none\", \"color\": \"grey\", \"text-decoration\": \"none\" }\r\n this.logSuccess(\"Program/Major has been saved\", null, true);\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n }\r\n\r\n open(id) {\r\n var data = {};\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/apphub/startNewAppModal.html',\r\n controller: 'startNewAppModal',\r\n size: 'lg',\r\n backdrop: 'static',\r\n resolve: {\r\n data: function () { return data; }\r\n },\r\n });\r\n\r\n modalInstance.result\r\n .then(() => { this.log(\"update SchoolOfferingProgram data to reflect new apps\"); });\r\n }\r\n\r\n }\r\n\r\n angular.module(\"app\").controller(SchoolOfferingProgram.controllerId, SchoolOfferingProgram);\r\n}","/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IExternalContent { }\r\n\r\n \r\n\r\n class ExternalContent implements IExternalContent {\r\n\r\n static controllerId: string = \"externalContent\";\r\n static $inject: Array = [\"common\", \"Restangular\", \"$location\", \"$sce\", \"$http\"];\r\n log: (msg, data?, showToast?) => void;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n externalContentUrl: string = \"\";\r\n absUrl: string;\r\n showLeftSideBar: boolean = false;\r\n showRightSideBar: boolean = false;\r\n \r\n\r\n constructor(private common: ICommonFactory, private Restangular: Restangular.IService, private $location: ng.ILocationService, private $sce: ng.ISCEService, private $http: ng.IHttpService) {\r\n this.log = common.logger.getLogFn(ExternalContent.controllerId);\r\n this.logError = common.logger.getLogFn(ExternalContent.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(ExternalContent.controllerId, \"success\");\r\n\r\n this.activate();\r\n }\r\n\r\n activate() {\r\n var promises = [];\r\n this.common.activateController(promises, ExternalContent.controllerId)\r\n .then(() => {\r\n this.log(\"Activated ExternalContent View\");\r\n });\r\n }\r\n\r\n loadExternalContent(){\r\n \r\n this.externalContentUrl = this.absUrl + \"?absoluteurls=true\";\r\n }\r\n\r\n \r\n }\r\n\r\n angular.module(\"app\").controller(ExternalContent.controllerId, ExternalContent);\r\n}","/// \r\nnamespace Cfnc {\r\n export class Alpha {\r\n static filterId: string = \"alpha\";\r\n\r\n static filter() {\r\n return function(items: Array, property: string, startsWith: string) {\r\n if (property && startsWith) {\r\n var result: Array = [];\r\n\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i][property].toLowerCase().indexOf(startsWith.toLowerCase()) == 0) {\r\n result.push(items[i]);\r\n }\r\n }\r\n return result;\r\n }\r\n else {\r\n return items;\r\n }\r\n }\r\n }\r\n }\r\n angular.module(\"app\").filter(Alpha.filterId, [Alpha.filter]);\r\n}","/// \r\nnamespace Cfnc {\r\n export class Escape {\r\n static filterId: string = \"escape\";\r\n\r\n static filter() {\r\n return function (input: string) {\r\n return encodeURIComponent(input);\r\n }\r\n }\r\n }\r\n angular.module(\"app\").filter(Escape.filterId, [Escape.filter]);\r\n}","/// \r\nnamespace Cfnc {\r\n export class Offset {\r\n static filterId: string = \"offset\";\r\n static filter() {\r\n return function (items: Array, start) {\r\n start = parseInt(start, 10);\r\n return items.slice(start);\r\n }\r\n }\r\n }\r\n\r\n angular.module(\"app\").filter(Offset.filterId, [Offset.filter]);\r\n}\r\n","/// \r\nnamespace Cfnc {\r\n export class PhoneNumber {\r\n static filterId: string = \"phoneNumber\";\r\n\r\n static filter() {\r\n return function (phone: string) {\r\n var test = phone.search(/[a-zA-Z]/g);\r\n if (test != -1) {\r\n return phone;\r\n }\r\n else {\r\n phone = phone.replace(/\\D/g, '');\r\n return \"(\" + phone.substr(0, 3) + \") \" + phone.substr(3, 3) + \"-\" + phone.substr(6, 4);\r\n }\r\n }\r\n }\r\n }\r\n angular.module(\"app\").filter(PhoneNumber.filterId, [PhoneNumber.filter]);\r\n}","/// \r\nnamespace Cfnc {\r\n export class TranscriptOnly {\r\n static filterId: string = \"transcriptOnly\";\r\n\r\n static filter() {\r\n return function (items: Array, apply: boolean) {\r\n if (apply) {\r\n var result: Array = [];\r\n\r\n result = _.filter(items, (x) => {\r\n var startedApp;\r\n if (x.transcriptStatus && x.transcriptStatus.length > 0) {\r\n startedApp = x.transcriptStatus[0].userStartedApp;\r\n }\r\n\r\n return x.hasApplication == false || startedApp == false;\r\n });\r\n return result;\r\n }\r\n else {\r\n return items;\r\n }\r\n }\r\n }\r\n }\r\n angular.module(\"app\").filter(TranscriptOnly.filterId, [TranscriptOnly.filter]);\r\n}","module Cfnc.Controller {\r\n \"use strict\";\r\n\r\n interface IHomeScope extends ng.IScope {\r\n vm: Home;\r\n }\r\n\r\n interface IHome {\r\n\r\n }\r\n\r\n class Home implements IHome {\r\n static controllerId: string = \"home\";\r\n static $inject: Array = [\"common\", \"$window\", \"config\"];\r\n private log;\r\n\r\n constructor(private common: ICommonFactory, private $window: ng.IWindowService, private config: IConfig) {\r\n this.log = common.logger.getLogFn(Home.controllerId);\r\n this.activate();\r\n }\r\n\r\n activate() {\r\n var promises = [];\r\n this.common.activateController(promises, Home.controllerId)\r\n .then(() => {\r\n this.log(\"Activated Home View\", false);\r\n if (this.config.homeRedirect)\r\n this.$window.location.href = this.config.umbracoUrl;\r\n });\r\n }\r\n }\r\n\r\n angular.module(\"app\").controller(Home.controllerId, Home);\r\n}","/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IShell {\r\n log: (msg, data?, showToast?) => void;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n busyMessage: string;\r\n isBusy: boolean;\r\n spinnerOptions: SpinnerOptions;\r\n activate: () => void;\r\n toggleSpinner: (on: boolean) => void;\r\n isLoggedIn: boolean;\r\n user: any;\r\n currentYear: number;\r\n }\r\n\r\n class Shell implements IShell {\r\n static controllerId: string = \"shell\";\r\n static $inject: Array = [\"$rootScope\", \"common\", \"config\", \"authentication\", \"Restangular\", \"routemediator\", \"$http\", \"$cookies\"];\r\n cfncUrl: string;\r\n javaUrl: string;\r\n umbracoUrl:string;\r\n transitionsUrl: string;\r\n log: (msg, data?, showToast?) => void;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n busyMessage: string;\r\n isBusy: boolean;\r\n spinnerOptions: SpinnerOptions;\r\n isLoggedIn: boolean;\r\n user: any;\r\n breadCrumbs: IRoute[];\r\n currentYear: number;\r\n siteNotification: any = { show: false };\r\n;\r\n\r\n constructor(private $rootScope: ng.IRootScopeService, private common: ICommonFactory, private config: IConfig, private authentication: Security.IAuthenticationService,\r\n private Restangular: Restangular.IService, private routemediator: IRouteMediator, private $http: angular.IHttpService, private $cookies: angular.cookies.ICookiesService) {\r\n this.log = common.logger.getLogFn(Shell.controllerId);\r\n this.logError = common.logger.getLogFn(Shell.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(Shell.controllerId, \"success\");\r\n this.busyMessage = \"Please Wait....\";\r\n this.isBusy = true;\r\n this.currentYear = new Date().getFullYear();\r\n this.umbracoUrl = this.config.umbracoUrl;\r\n\r\n this.spinnerOptions = {\r\n radius: 40,\r\n lines: 7,\r\n length: 0,\r\n width: 30,\r\n speed: 1.7,\r\n corners: 1.0,\r\n trail: 100,\r\n color: \"#F58A00\"\r\n };\r\n\r\n $rootScope.$on(\"$routeChangeStart\",\r\n (event, next, current): void => {\r\n this.toggleSpinner(true);\r\n }\r\n );\r\n\r\n $rootScope.$on(config.events.controllerActivateSuccess,\r\n (data): void => { this.toggleSpinner(false); }\r\n );\r\n\r\n $rootScope.$on(config.events.spinnerToggle,\r\n (data: any): void => { this.toggleSpinner(data.show); }\r\n );\r\n\r\n $rootScope.$on(config.events.login, (data: any, user: any): void => {\r\n this.user = user;\r\n this.isLoggedIn = true;\r\n });\r\n\r\n $rootScope.$on(config.events.logout, (data: any): void => {\r\n this.user = null;\r\n this.isLoggedIn = false;\r\n });\r\n\r\n $rootScope.$on(\"$routeChangeSuccess\",\r\n (event, next, current): void => {\r\n this.breadCrumbs = null;\r\n if (this.routemediator.breadCrumbs != null && _.last(this.routemediator.breadCrumbs).config.settings.showBreadcrumbs != false) {\r\n this.breadCrumbs = this.routemediator.breadCrumbs;\r\n }\r\n });\r\n\r\n this.breadCrumbs = null;\r\n if (this.routemediator.breadCrumbs != null && _.last(this.routemediator.breadCrumbs).config.settings.showBreadcrumbs != false) {\r\n this.breadCrumbs = this.routemediator.breadCrumbs;\r\n }\r\n\r\n this.activate();\r\n }\r\n\r\n activate(): void {\r\n this.common.activateController([this.getSiteNotification()], Shell.controllerId);\r\n this.cfncUrl = this.config.cfncUrl;\r\n this.javaUrl = this.config.javaUrl;\r\n this.transitionsUrl = this.config.transitionsUrl;\r\n }\r\n\r\n logOut(): void {\r\n this.authentication.logout();\r\n }\r\n\r\n toggleSpinner(on: boolean): void {\r\n this.isBusy = on;\r\n }\r\n\r\n getSiteNotification(): angular.IPromise {\r\n return this.Restangular.withConfig(config => {\r\n config.setBaseUrl(this.umbracoUrl);\r\n }).one(\"api/sitenotifications\").get({ absoluteUrls: true})\r\n .then(result => {\r\n if (result && result.message) {\r\n this.siteNotification = result;\r\n\r\n var showNotice = this.$cookies.get(\"showNotice\");\r\n var noticeDate = decodeURIComponent(this.$cookies.get(\"noticeDate\"));\r\n\r\n this.siteNotification.show = (showNotice == null || showNotice != \"false\" || noticeDate == null || moment.utc(this.siteNotification.updatedDate).format(\"M/D/YYYY h:mm:ss A\") != noticeDate);\r\n }\r\n\r\n });\r\n }\r\n\r\n hidenotification() {\r\n var noticeDate = moment.utc(this.siteNotification.updatedDate).format(\"M/DD/YYYY h:mm:ss A\");\r\n this.$cookies.put(\"showNotice\", \"false\", { path: \"/\", domain: \".cfnc.org\" });\r\n this.$cookies.put(\"noticeDate\", noticeDate, { path: \"/\", domain: \".cfnc.org\" });\r\n }\r\n }\r\n\r\n\r\n angular.module(\"app\").controller(Shell.controllerId, Shell);\r\n}","namespace Cfnc {\r\n \"use strict\";\r\n\r\n interface ITopNav {\r\n log: (msg, data?, showToast?) => void;\r\n activate: () => void;\r\n }\r\n\r\n class TopNav implements ITopNav {\r\n static controllerId: string = \"topnav\";\r\n cfncUrl: string;\r\n javaUrl: string;\r\n umbracoUrl: string;\r\n transitionsUrl: string;\r\n residencyUrl: string;\r\n currentTab: string;\r\n helpLink: string;\r\n isLoggedIn: boolean;\r\n user: any;\r\n searchText: string;\r\n ncAssistUrl: string;\r\n static $inject: Array = [\"$rootScope\", \"$window\", \"common\", \"config\", \"$route\", \"$timeout\"];\r\n\r\n log: (msg, data?, showToast?) => void;\r\n\r\n constructor(private $rootScope: ng.IRootScopeService, private $window: ng.IWindowService, private common: ICommonFactory, private config: IConfig, private $route: ng.route.IRouteService, private $timeout: ng.ITimeoutService) {\r\n this.log = common.logger.getLogFn(TopNav.controllerId);\r\n this.common.authentication.isLoggedIn().then((loggedIn) => {\r\n if (loggedIn) {\r\n this.isLoggedIn = true;\r\n } else {\r\n this.isLoggedIn = false;\r\n }\r\n\r\n if (this.isLoggedIn) {\r\n this.user = this.common.authentication.user;\r\n }\r\n $rootScope.$applyAsync();\r\n });\r\n\r\n $rootScope.$on(config.events.login, (event, user: any) => {\r\n this.isLoggedIn = true;\r\n this.user = user;\r\n $rootScope.$applyAsync();\r\n });\r\n\r\n $rootScope.$on(config.events.logout, (event) => {\r\n this.isLoggedIn = false;\r\n this.user = null;\r\n $rootScope.$applyAsync();\r\n });\r\n this.activate();\r\n }\r\n\r\n activate(): void {\r\n this.cfncUrl = this.config.cfncUrl;\r\n this.javaUrl = this.config.javaUrl;\r\n this.umbracoUrl = this.config.umbracoUrl;\r\n this.transitionsUrl = this.config.transitionsUrl;\r\n this.residencyUrl = this.config.residencyUrl;\r\n this.currentTab = \"\";\r\n this.ncAssistUrl = this.config.ncassistUrl;\r\n this.checkRouteSettings();\r\n\r\n this.$rootScope.$on(\"$routeChangeSuccess\",\r\n () => {\r\n this.$timeout(() => {\r\n this.checkRouteSettings();\r\n });\r\n });\r\n\r\n this.common.activateController([], TopNav.controllerId);\r\n }\r\n\r\n login = () => {\r\n this.common.authentication.login();\r\n };\r\n\r\n register = () => {\r\n this.common.authentication.register();\r\n };\r\n\r\n logout = () => {\r\n this.common.authentication.logout();\r\n };\r\n\r\n search = () => {\r\n this.$window.location.href = `${this.umbracoUrl}/search?q=${encodeURI(this.searchText)}`;\r\n };\r\n\r\n checkRouteSettings = () => {\r\n var route: any = this.$route.current;\r\n if (route.settings) {\r\n switch (route.settings.parent) {\r\n case \"MyCfnc\":\r\n this.helpLink = \"/help/helpmycfnc.jsp\";\r\n break;\r\n case \"Plan\":\r\n this.helpLink = \"/help/helpplan.jsp\";\r\n break;\r\n case \"Apply\":\r\n this.helpLink = \"/help/helpapply.jsp\";\r\n break;\r\n default:\r\n this.helpLink = \"#\";\r\n break;\r\n }\r\n } else {\r\n this.helpLink = \"#\";\r\n }\r\n }\r\n\r\n }\r\n\r\n angular.module(\"app\").controller(TopNav.controllerId, TopNav);\r\n}","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IAssessments {\r\n\r\n }\r\n\r\n class Assessments implements IAssessments {\r\n static controllerId: string = \"assessments\";\r\n static $inject: string[] = [\"common\", \"Restangular\", \"config\"];\r\n\r\n private log;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n\r\n lsiAccess: boolean;\r\n dwyaAccess: boolean;\r\n skillsAccess: boolean;\r\n intelligencesAccess: boolean;\r\n umbracoUrl: string;\r\n\r\n assessments: IAssessment[];\r\n\r\n constructor(private common: ICommonFactory, private Restangular: Restangular.IService, private config: IConfig) {\r\n\r\n this.log = common.logger.getLogFn(Assessments.controllerId);\r\n this.logError = common.logger.getLogFn(Assessments.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(Assessments.controllerId, \"success\");\r\n this.umbracoUrl = config.umbracoUrl;\r\n\r\n this.common.authentication.authenticate(true).then(() => {\r\n this.activate();\r\n });\r\n\r\n }\r\n\r\n\r\n activate() {\r\n this.assessments = [];\r\n var promises = [this.getAssessments(), this.hesAccess()];\r\n this.common.activateController(promises, Assessments.controllerId)\r\n }\r\n\r\n getAssessments() {\r\n return this.Restangular.one(\"assessments\").get()\r\n .then((result) => {\r\n this.assessments = this.assessments.concat(result);\r\n\r\n }, (reason) => {\r\n this.logError(reason.message, reason, false);\r\n });\r\n }\r\n\r\n hesAccess() {\r\n return this.Restangular.one(\"learnaboutyourself/canaccess\").get()\r\n .then(result => {\r\n this.lsiAccess = result.lsiAccess;\r\n this.dwyaAccess = result.dwyaAccess;\r\n this.skillsAccess = result.skillsAccess;\r\n this.intelligencesAccess = result.intelligencesAccess;\r\n if (this.dwyaAccess) {\r\n this.assessments.push({\r\n id: 0,\r\n name: \"AchieveWorks\\u00AE Personality\",\r\n formerName: \"Do What You Are\",\r\n description: \"This recently updated assessment helps you learn about your personality type.\",\r\n durationMax: 35,\r\n durationMin: 20,\r\n questions: null,\r\n urlName: \"/learn-about-yourself/achieveworks-personality\"\r\n });\r\n }\r\n\r\n if (this.lsiAccess) {\r\n this.assessments.push({\r\n id: 0,\r\n name: \"AchieveWorks\\u00AE Learning & Productivity\",\r\n formerName: \"Learning Style Inventory\",\r\n description: \"This recently updated assessment helps you find out the most effective ways for you to learn.\",\r\n durationMax: 20,\r\n durationMin: 15,\r\n questions: null,\r\n urlName: \"/learn-about-yourself/achieveworks-learning-productivity\"\r\n });\r\n }\r\n\r\n if (this.skillsAccess) {\r\n this.assessments.push({\r\n id: 0,\r\n name: \"AchieveWorks\\u00AE Skills\",\r\n formerName: null,\r\n description: \"Identify your skills and matching careers.\",\r\n durationMax: 20,\r\n durationMin: 15,\r\n questions: null,\r\n urlName: \"/learn-about-yourself/achieveworks-skills\"\r\n });\r\n }\r\n\r\n if (this.intelligencesAccess) {\r\n this.assessments.push({\r\n id: 0,\r\n name: \"AchieveWorks\\u00AE Intelligences\",\r\n formerName: null,\r\n description: \"Find out how you deal with information, solve problems, and create things.\",\r\n durationMax: 20,\r\n durationMin: 15,\r\n questions: null,\r\n urlName: \"/learn-about-yourself/achieveworks-intelligences\"\r\n });\r\n }\r\n });\r\n }\r\n\r\n getUrl(str) {\r\n return str.replace(/\\s/g, '-').toLowerCase();\r\n }\r\n }\r\n\r\n\r\n angular.module(\"app\").controller(Assessments.controllerId, Assessments);\r\n}","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IBasicSkillsSurvey {\r\n assessmentName: string;\r\n assessmentId: number;\r\n currentSession: IAssessmentSession;\r\n assessment: IAssessment;\r\n questions: IQuestion[];\r\n totalQuestions: number;\r\n totalPages: number;\r\n sessions: IAssessmentSession[];\r\n legacySessions: IAssessmentSession[];\r\n nextPageLink: string;\r\n prevPageLink: string;\r\n assessmentResults: ICategoryResult[];\r\n progressGauge: any;\r\n rankingChart: any;\r\n inProgress: boolean;\r\n state: State;\r\n loading: boolean;\r\n rankedResults: ICategoryResult[];\r\n }\r\n\r\n\r\n class State {\r\n step: number;\r\n sessionId?: number;\r\n page?: number;\r\n }\r\n\r\n\r\n class BasicSkillsSurvey implements IBasicSkillsSurvey {\r\n static controllerId: string = \"basicSkillsSurvey\";\r\n static $inject: string[] = [\"$scope\", \"common\", \"Restangular\", \"$q\", \"$location\", \"$routeParams\"];\r\n\r\n assessmentName: string = \"Basic-Skills-Survey\";\r\n assessmentId = 3;\r\n currentSession: IAssessmentSession;\r\n assessment: IAssessment;\r\n questions: IQuestion[];\r\n totalQuestions: number;\r\n totalPages: number;\r\n sessions: IAssessmentSession[];\r\n legacySessions: IAssessmentSession[];\r\n nextPageLink: string;\r\n prevPageLink: string;\r\n assessmentResults: ICategoryResult[];\r\n progressGauge: any;\r\n rankingChart: any;\r\n inProgress: boolean;\r\n categories: any;\r\n levels: any[];\r\n state: State = new State();\r\n loading: boolean = true;\r\n rankedResults: ICategoryResult[];\r\n\r\n private log;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n\r\n constructor(private $scope: ng.IScope, private common: ICommonFactory, private Restangular: Restangular.IService, private $q: ng.IQService,\r\n private $location: ng.ILocationService, private $routeParams: angular.route.IRouteParamsService) {\r\n\r\n this.log = common.logger.getLogFn(BasicSkillsSurvey.controllerId);\r\n this.logError = common.logger.getLogFn(BasicSkillsSurvey.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(BasicSkillsSurvey.controllerId, \"success\");\r\n\r\n this.common.authentication.authenticate(true).then(() => {\r\n this.activate();\r\n\r\n\r\n if (this.$location.state()) {\r\n this.state = this.$location.state();\r\n } else {\r\n this.saveState(1, null, 1).replace();\r\n }\r\n\r\n this.questions = [];\r\n this.progressGauge = this.gaugeOptions;\r\n this.rankingChart = this.barChartOptions;\r\n this.totalPages = 10;\r\n this.levels = [\r\n { id: 1, checked: [], count: 0 },\r\n { id: 2, checked: [], count: 0 },\r\n { id: 3, checked: [], count: 0 },\r\n { id: 4, checked: [], count: 0 },\r\n { id: 5, checked: [], count: 0 },\r\n { id: 6, checked: [], count: 0 },\r\n { id: 7, checked: [], count: 0 },\r\n ]\r\n\r\n\r\n\r\n this.$scope.$on(\"$routeUpdate\", () => {\r\n if (this.$location.state()) {\r\n this.state = this.$location.state();\r\n }\r\n });\r\n\r\n this.activate();\r\n });\r\n }\r\n\r\n\r\n activate() {\r\n var promises: ng.IPromise[] = [this.getAssessment(), this.getCategories()];\r\n\r\n this.common.activateController(promises, BasicSkillsSurvey.controllerId)\r\n .then(() => {\r\n if (this.state.step && this.state.sessionId && this.state.step == 3) {\r\n this.getResults(this.state.sessionId);\r\n }\r\n else if (this.state.step && this.state.step == 2) {\r\n this.startOrResumeSession();\r\n }\r\n\r\n if (this.sessions == null) {\r\n this.getSessions();\r\n this.getLegacySessions();\r\n }\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n saveState(step?: number, sessionId?: number, page?: number) {\r\n return this.$location.state({\r\n step: step ? step : this.state.step ? this.state.step : 1,\r\n sessionId: sessionId ? sessionId : this.currentSession ? this.currentSession.id : null,\r\n page: page ? page : this.state.page ? this.state.page : 1\r\n });\r\n }\r\n\r\n deleteSession(): ng.IPromise {\r\n var defer = this.$q.defer();\r\n\r\n var inProgressSession = _.find(this.sessions, (s) => s.isComplete == false);\r\n\r\n if (inProgressSession) {\r\n this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\", inProgressSession.id).remove()\r\n .then(() => defer.resolve(),\r\n (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n else {\r\n defer.resolve();\r\n }\r\n\r\n return defer.promise;\r\n }\r\n\r\n getAssessment(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).get()\r\n .then((result) => {\r\n this.assessment = result;\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n getSessions(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\").get()\r\n .then((sessions: IAssessmentSession[]) => {\r\n this.sessions = sessions;\r\n this.inProgress = _.some(this.sessions, (s) => s.isComplete == false);\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n getLegacySessions(): ng.IPromise {\r\n return this.Restangular.one(\"assessments/legacy/basic-skills-survey\").one(\"sessions\").get()\r\n .then((sessions: IAssessmentSession[]) => {\r\n this.legacySessions = sessions;\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n getCurrentSession(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).one(\"session\").get();\r\n }\r\n\r\n getQuestions(categoryId: number): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).one(\"questions\").get>({ pageSize: 21, categoryId: categoryId })\r\n .then((result: IRestResult) => {\r\n this.questions = result.results;\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n getResults(sessionId: number, isLegacy?: boolean): ng.IPromise {\r\n\r\n var request: Restangular.IPromise;\r\n\r\n if (isLegacy) {\r\n request = this.Restangular.one(\"assessments/legacy\", this.assessmentName).one(\"sessions\", sessionId).one(\"results\").get();\r\n }\r\n else {\r\n request = this.Restangular.one(\"assessments\", this.assessmentName).one(\"sessions\", sessionId).one(\"results\").get();\r\n }\r\n\r\n return request.then((result: ICategoryResult[]) => {\r\n this.saveState(3, sessionId);\r\n this.assessmentResults = _.orderBy(result, \"desc\");\r\n\r\n //Get the top 3 results and any result that is equal to the 3rd result. This should account for ties and return at least 3 results.\r\n this.rankedResults = _.filter(this.assessmentResults, (ar) => { return ar.count >= this.assessmentResults[2].count && ar.count != 0 });\r\n\r\n this.rankingChart.series[0].data = [];\r\n this.rankingChart.xAxis.categories = [];\r\n this.assessmentResults.forEach(r => {\r\n this.rankingChart.xAxis.categories.push(r.category.name);\r\n this.rankingChart.series[0].data.push(r.count);\r\n\r\n });\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n getCategories(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).one(\"categories\").get()\r\n .then((result) => {\r\n this.categories = result;\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n complete(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\", this.currentSession.id).one(\"complete\").put()\r\n .then(() => {\r\n this.getResults(this.currentSession.id);\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n startOrResumeSession(): ng.IPromise {\r\n var currentSession = this.getCurrentSession().then(result => {\r\n this.currentSession = result;\r\n this.progressGauge = this.gaugeOptions;\r\n this.currentSession.answers = this.currentSession.answers || [];\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n\r\n var questions = this.getQuestions(this.categories[this.state.page - 1].id);\r\n\r\n return this.$q.all([currentSession, questions])\r\n .then(() => {\r\n this.selectAnswers();\r\n this.saveState(2, this.currentSession.id);\r\n this.updateProgressIndicator(this.state.page);\r\n });\r\n }\r\n\r\n selectAnswers() {\r\n var answers = this.currentSession.answers;\r\n this.questions.forEach(function (q: IQuestion, i: number) {\r\n var answer = _.find(answers, { questionId: q.id });\r\n if (answer) {\r\n this[i].selected = parseInt(answer.answer);\r\n }\r\n }, this.questions);\r\n\r\n this.levels.forEach(function (level) {\r\n level.count = _.filter(this.questions, { level: level.id, selected: 1 }).length\r\n level.disabled = (level.id != 1 && _.filter(this.questions, { level: level.id - 1, selected: 1 }).length < 2) || _.filter(this.questions, { level: level.id + 1, selected: 1 }).length > 0;\r\n }, this);\r\n\r\n }\r\n\r\n startOver() {\r\n this.deleteSession()\r\n .then(() => {\r\n this.currentSession = null;\r\n this.state.page = 1;\r\n this.startOrResumeSession();\r\n });\r\n }\r\n\r\n\r\n toggleAnswer(question: IQuestion, level: any) {\r\n var idx = _.findIndex(this.currentSession.answers, { questionId: question.id } as IAnswer);\r\n if (idx == -1) {\r\n var answer: IAnswer = {\r\n id: null,\r\n sessionId: this.currentSession.id,\r\n assessmentId: this.assessmentId,\r\n questionId: question.id,\r\n categoryId: question.categoryId,\r\n interestAreaId: null,\r\n answer: \"1\"\r\n };\r\n this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\", this.currentSession.id)\r\n .one(\"questions\", question.id).all(\"answers\").post(answer)\r\n .then((result) => {\r\n answer.id = result;\r\n this.currentSession.answers.push(answer);\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n } else {\r\n var answer = this.currentSession.answers.splice(idx, 1)[0];\r\n this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\", this.currentSession.id)\r\n .one(\"questions\", question.id).one(\"answers\", answer.id).remove()\r\n .then(null, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n this.selectAnswers();\r\n }\r\n\r\n nextCategory() {\r\n var page = this.state.page + 1;\r\n this.getQuestions(this.categories[page - 1].id).then(() => {\r\n this.selectAnswers();\r\n this.saveState(null, null, page);\r\n this.updateProgressIndicator(page);\r\n });;\r\n }\r\n\r\n prevCategory() {\r\n var page = this.state.page - 1;\r\n this.getQuestions(this.categories[page - 1].id).then(() => {\r\n this.selectAnswers();\r\n this.saveState(null, null, page);\r\n this.updateProgressIndicator(page);\r\n });;\r\n\r\n }\r\n\r\n updateProgressIndicator(page) {\r\n this.progressGauge.series[0].data[0].y = Math.ceil(((page - 1) / this.totalPages) * 100);\r\n }\r\n\r\n\r\n get gaugeOptions() {\r\n return {\r\n title: {\r\n text: null\r\n },\r\n chart: {\r\n type: 'solidgauge',\r\n height: 150\r\n },\r\n pane: {\r\n startAngle: 0,\r\n endAngle: 360,\r\n background: [{ // Track for Move\r\n outerRadius: '100%',\r\n innerRadius: '0%',\r\n borderWidth: 0\r\n }]\r\n },\r\n yAxis: {\r\n min: 0,\r\n max: 100,\r\n lineWidth: 0,\r\n tickPositions: []\r\n },\r\n plotOptions: {\r\n solidgauge: {\r\n dataLabels: {\r\n enabled: true,\r\n borderWidth: 0,\r\n format: \"{y}%\",\r\n x: 0,\r\n y: -15,\r\n padding: 0,\r\n useHTML: true,\r\n style: {\r\n fontSize: \"20px\"\r\n }\r\n }\r\n }\r\n },\r\n tooltip: {\r\n borderWidth: 0,\r\n backgroundColor: 'none',\r\n shadow: false,\r\n pointFormat: \"\"\r\n },\r\n series: [{\r\n name: 'Progress',\r\n data: [{\r\n color: '#FA9C4B',\r\n radius: '100%',\r\n innerRadius: '0%',\r\n y: 0\r\n }]\r\n }]\r\n };\r\n }\r\n\r\n get barChartOptions() {\r\n return {\r\n chart: {\r\n type: 'bar',\r\n height: 300\r\n },\r\n title: {\r\n text: null\r\n },\r\n yAxis: {\r\n title: {\r\n text: null\r\n },\r\n minTickInterval: 1\r\n },\r\n xAxis: {\r\n categories: [],\r\n title: {\r\n text: null\r\n }\r\n },\r\n legend: {\r\n enabled: false\r\n },\r\n tooltip: {\r\n borderWidth: 0,\r\n backgroundColor: 'none',\r\n shadow: false,\r\n pointFormat: \"\",\r\n enabled: false\r\n },\r\n plotOptions: {\r\n bar: {\r\n dataLabels: {\r\n enabled: true\r\n }\r\n }\r\n },\r\n series: [{\r\n data: []\r\n }]\r\n };\r\n }\r\n\r\n }\r\n\r\n angular.module(\"app\").controller(BasicSkillsSurvey.controllerId, BasicSkillsSurvey);\r\n}","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IBeYourOwnBoss {\r\n assessmentName: string;\r\n assessmentId\r\n assessment: IAssessment;\r\n sessions: IAssessmentSession[];\r\n }\r\n\r\n class State {\r\n step: number;\r\n sessionId?: number;\r\n page?: number;\r\n }\r\n\r\n class BeYourOwnBoss implements IBeYourOwnBoss {\r\n static controllerId: string = \"beYourOwnBoss\";\r\n static $inject: string[] = [\"$scope\", \"common\", \"Restangular\", \"$q\", \"$location\", \"config\"];\r\n\r\n assessmentName: string = \"Be-Your-Own-Boss\"\r\n assessmentId: number = 9;\r\n currentSession: IAssessmentSession;\r\n assessment: IAssessment;\r\n sessions: IAssessmentSession[];\r\n loading: boolean = true;\r\n ncCareersUrl: string;\r\n cacheBuster = Date.now() + '' + Math.random().toString(36).substring(10);\r\n\r\n private log;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n\r\n constructor(private $scope: ng.IScope, private common: ICommonFactory, private Restangular: Restangular.IService, private $q: ng.IQService,\r\n private $location: ng.ILocationService, private config: Config) {\r\n\r\n this.log = common.logger.getLogFn(BeYourOwnBoss.controllerId);\r\n this.logError = common.logger.getLogFn(BeYourOwnBoss.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(BeYourOwnBoss.controllerId, \"success\");\r\n this.ncCareersUrl = config.ncCareersUrl;\r\n\r\n this.common.authentication.authenticate(true).then(() => {\r\n this.activate();\r\n });\r\n }\r\n\r\n\r\n activate() {\r\n var promises: ng.IPromise[] = [this.getAssessment()];\r\n\r\n this.common.activateController(promises, BeYourOwnBoss.controllerId)\r\n .then(() => {\r\n\r\n if (this.sessions == null) {\r\n promises.push(this.getSessions());\r\n }\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getAssessment(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).get()\r\n .then((result: IAssessment) => {\r\n this.assessment = result\r\n },\r\n (reason) => {\r\n this.logError(reason.message, reason, true)\r\n });\r\n }\r\n\r\n getSessions(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\").get()\r\n .then((sessions: IAssessmentSession[]) => {\r\n this.sessions = sessions;\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n }\r\n\r\n angular.module(\"app\").controller(BeYourOwnBoss.controllerId, BeYourOwnBoss);\r\n}","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface ICareerClusterSurvey {\r\n assessmentName: string;\r\n assessmentId: number;\r\n currentSession: IAssessmentSession;\r\n assessment: IAssessment;\r\n questions: IQuestion[];\r\n totalQuestions: number;\r\n totalPages: number;\r\n sessions: IAssessmentSession[];\r\n nextPageLink: string;\r\n prevPageLink: string;\r\n assessmentResults: ICareerClusterResult[];\r\n progressGauge: any;\r\n rankingChart: any;\r\n inProgress: boolean;\r\n state: State;\r\n loading: boolean;\r\n categoryIndex: number;\r\n rankedResults: any;\r\n answers: IAnswer[];\r\n }\r\n\r\n class State {\r\n step: number;\r\n sessionId?: number;\r\n page?: number;\r\n categoryIndex: number;\r\n }\r\n\r\n\r\n class CareerClusterSurvey implements ICareerClusterSurvey {\r\n static controllerId: string = \"careerClusterSurvey\";\r\n static $inject: string[] = [\"$scope\", \"common\", \"Restangular\", \"$q\", \"$location\", \"$routeParams\", \"config\"];\r\n\r\n assessmentName: string = \"Career-Cluster-Survey\";\r\n assessmentId = 2;\r\n currentSession: IAssessmentSession;\r\n assessment: IAssessment;\r\n questions: IQuestion[];\r\n totalQuestions: number;\r\n totalPages: number;\r\n sessions: IAssessmentSession[];\r\n nextPageLink: string;\r\n prevPageLink: string;\r\n assessmentResults: ICareerClusterResult[];\r\n progressGauge: any;\r\n rankingChart: any;\r\n inProgress: boolean;\r\n categories: any;\r\n levels: any[];\r\n state: State = new State();\r\n loading: boolean = true;\r\n categoryIndex: number;\r\n rankedResults: any;\r\n answers: IAnswer[];\r\n ncCareersUrl: string;\r\n cacheBuster = Date.now() + '' + Math.random().toString(36).substring(10);\r\n\r\n private log;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n\r\n constructor(private $scope: ng.IScope, private common: ICommonFactory, private Restangular: Restangular.IService, private $q: ng.IQService,\r\n private $location: ng.ILocationService, private $routeParams: angular.route.IRouteParamsService, private config: IConfig) {\r\n\r\n this.log = common.logger.getLogFn(CareerClusterSurvey.controllerId);\r\n this.logError = common.logger.getLogFn(CareerClusterSurvey.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(CareerClusterSurvey.controllerId, \"success\");\r\n this.ncCareersUrl = config.ncCareersUrl;\r\n\r\n this.common.authentication.authenticate(true).then(() => {\r\n this.activate();\r\n\r\n\r\n if (this.$location.state()) {\r\n this.state = this.$location.state();\r\n } else {\r\n this.saveState(1, null, 1, 0).replace();\r\n }\r\n\r\n this.questions = [];\r\n this.progressGauge = this.gaugeOptions;\r\n this.rankingChart = this.barChartOptions;\r\n this.totalPages = 6;\r\n\r\n this.$scope.$on(\"$routeUpdate\", () => {\r\n if (this.$location.state()) {\r\n this.state = this.$location.state();\r\n }\r\n });\r\n\r\n this.activate();\r\n });\r\n }\r\n\r\n\r\n activate() {\r\n var promises: ng.IPromise[] = [this.getAssessment(), this.getCategories()];\r\n\r\n this.common.activateController(promises, CareerClusterSurvey.controllerId)\r\n .then(() => {\r\n if (this.state.step && this.state.sessionId && this.state.step == 3) {\r\n this.getResults(this.state.sessionId);\r\n }\r\n else if (this.state.step && this.state.step == 2) {\r\n this.startOrResumeSession();\r\n }\r\n\r\n if (this.sessions == null) {\r\n this.getSessions();\r\n }\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n saveState(step?: number, sessionId?: number, page?: number, categoryIndex?: number) {\r\n return this.$location.state({\r\n step: step ? step : this.state.step ? this.state.step : 1,\r\n sessionId: sessionId ? sessionId : this.currentSession ? this.currentSession.id : null,\r\n page: page ? page : this.state.page ? this.state.page : 1,\r\n categoryIndex: categoryIndex != null ? categoryIndex : this.state.categoryIndex ? this.state.categoryIndex : 0\r\n });\r\n }\r\n\r\n deleteSession(): ng.IPromise {\r\n var defer = this.$q.defer();\r\n\r\n var inProgressSession = _.find(this.sessions, (s) => s.isComplete == false);\r\n\r\n if (inProgressSession) {\r\n this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\", inProgressSession.id).remove()\r\n .then(() => defer.resolve(),\r\n (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n else {\r\n defer.resolve();\r\n }\r\n\r\n return defer.promise;\r\n }\r\n\r\n getAssessment(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).get()\r\n .then((result) => {\r\n this.assessment = result;\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n getSessions(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\").get()\r\n .then((sessions: IAssessmentSession[]) => {\r\n this.sessions = sessions;\r\n this.inProgress = _.some(this.sessions, (s) => s.isComplete == false);\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n getCurrentSession(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).one(\"session\").get();\r\n }\r\n\r\n getQuestions(categoryId: number, page: number): ng.IPromise {\r\n var questions: ng.IPromise;\r\n return this.Restangular.one(\"assessments\", this.assessmentId).one(\"questions\").get>({ categoryId: categoryId, page: page, pageSize: 40, orderBy: \"CategoryId, SortOrder\" })\r\n .then((result: IRestResult) => {\r\n this.questions = result.results;\r\n this.totalQuestions = result.totalCount;\r\n this.nextPageLink = result.nextPageLink;\r\n this.prevPageLink = result.prevPageLink;\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n getResults(sessionId: number): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentName).one(\"sessions\", sessionId).one(\"results\").get()\r\n .then((result: ICareerClusterResult[]) => {\r\n this.saveState(3, sessionId);\r\n this.assessmentResults = result;\r\n\r\n this.rankingChart.series[0].data = [];\r\n this.rankingChart.xAxis.categories = [];\r\n this.assessmentResults.forEach(r => {\r\n this.rankingChart.xAxis.categories.push(r.careerCluster.title);\r\n this.rankingChart.series[0].data.push(r.count);\r\n\r\n });\r\n this.rankedResults = _.filter(this.assessmentResults, { count: _.orderBy(this.assessmentResults, [\"count\"], [\"desc\"])[0].count });\r\n this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\", sessionId).one(\"answers\").get({ includeQuestion: true })\r\n .then((results) => {\r\n this.answers = results;\r\n },\r\n (reason) => {\r\n this.logError(reason.message, reason, false);\r\n });\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n getCategories(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).one(\"categories\").get()\r\n .then((result) => {\r\n this.categories = result;\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n complete(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\", this.currentSession.id).one(\"complete\").put()\r\n .then(() => {\r\n this.getResults(this.currentSession.id);\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n startOrResumeSession(): ng.IPromise {\r\n var currentSession = this.getCurrentSession().then(result => {\r\n this.currentSession = result;\r\n this.progressGauge = this.gaugeOptions;\r\n this.currentSession.answers = this.currentSession.answers || [];\r\n\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n var categoryId = this.categories[this.state.categoryIndex].id\r\n var questions = this.getQuestions(categoryId, this.state.page);\r\n\r\n return this.$q.all([currentSession, questions])\r\n .then(() => {\r\n this.selectAnswers();\r\n this.saveState(2, this.currentSession.id, 1);\r\n this.updateProgressIndicator(this.state.categoryIndex);\r\n });\r\n }\r\n\r\n selectAnswers() {\r\n var answers = this.currentSession.answers;\r\n this.questions.forEach(function (q: IQuestion, i: number) {\r\n var answer = _.find(answers, { questionId: q.id });\r\n if (answer) {\r\n this[i].selected = parseInt(answer.answer);\r\n }\r\n }, this.questions);\r\n\r\n }\r\n\r\n startOver() {\r\n this.deleteSession()\r\n .then(() => {\r\n this.currentSession = null;\r\n this.state.page = 1;\r\n this.startOrResumeSession();\r\n });\r\n }\r\n\r\n\r\n toggleAnswer(question: IQuestion, level: any) {\r\n var idx = _.findIndex(this.currentSession.answers, { questionId: question.id } as IAnswer);\r\n if (idx == -1) {\r\n var answer: IAnswer = {\r\n id: null,\r\n sessionId: this.currentSession.id,\r\n assessmentId: this.assessmentId,\r\n questionId: question.id,\r\n categoryId: question.categoryId,\r\n interestAreaId: null,\r\n answer: \"1\"\r\n };\r\n this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\", this.currentSession.id)\r\n .one(\"questions\", question.id).all(\"answers\").post(answer)\r\n .then((result) => {\r\n answer.id = result;\r\n this.currentSession.answers.push(answer);\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n } else {\r\n var answer = this.currentSession.answers.splice(idx, 1)[0];\r\n this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\", this.currentSession.id)\r\n .one(\"questions\", question.id).one(\"answers\", answer.id).remove()\r\n .then(null, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n this.selectAnswers();\r\n }\r\n\r\n\r\n nextPage() {\r\n var page = this.state.page + 1;\r\n var categoryIdx = this.state.categoryIndex;\r\n if (((page - 2) * 40) + this.questions.length >= this.totalQuestions) {\r\n page = 1;\r\n categoryIdx = categoryIdx + 1;\r\n }\r\n\r\n var categoryId = this.categories[categoryIdx].id\r\n this.getQuestions(categoryId, page)\r\n .then(() => {\r\n this.selectAnswers();\r\n this.saveState(null, null, page, categoryIdx)\r\n this.updateProgressIndicator(categoryIdx);\r\n });\r\n }\r\n\r\n prevPage() {\r\n var page = this.state.page - 1;\r\n var categoryIdx = this.state.categoryIndex;\r\n if (page == 0) {\r\n page = 10000;\r\n categoryIdx = categoryIdx - 1;\r\n }\r\n\r\n var categoryId = this.categories[categoryIdx].id\r\n this.getQuestions(categoryId, page)\r\n .then(() => {\r\n var defer = this.$q.defer();\r\n\r\n if (this.questions.length == 0) {\r\n page = Math.ceil(this.totalQuestions / 40);\r\n defer.promise = this.getQuestions(categoryId, page);\r\n\r\n }\r\n else {\r\n defer.resolve();\r\n }\r\n return defer.promise;\r\n }).then(() => {\r\n this.selectAnswers();\r\n this.saveState(null, null, page, categoryIdx)\r\n this.updateProgressIndicator(categoryIdx);\r\n });\r\n }\r\n\r\n updateProgressIndicator(page) {\r\n this.progressGauge.series[0].data[0].y = Math.ceil((page / 3) * 100);\r\n }\r\n\r\n get gaugeOptions() {\r\n return {\r\n title: {\r\n text: null\r\n },\r\n chart: {\r\n type: 'solidgauge',\r\n height: 150\r\n },\r\n pane: {\r\n startAngle: 0,\r\n endAngle: 360,\r\n background: [{ // Track for Move\r\n outerRadius: '100%',\r\n innerRadius: '0%',\r\n borderWidth: 0\r\n }]\r\n },\r\n yAxis: {\r\n min: 0,\r\n max: 100,\r\n lineWidth: 0,\r\n tickPositions: []\r\n },\r\n plotOptions: {\r\n solidgauge: {\r\n dataLabels: {\r\n enabled: true,\r\n borderWidth: 0,\r\n format: \"{y}%\",\r\n x: 0,\r\n y: -15,\r\n padding: 0,\r\n useHTML: true,\r\n style: {\r\n fontSize: \"20px\"\r\n }\r\n }\r\n }\r\n },\r\n tooltip: {\r\n borderWidth: 0,\r\n backgroundColor: 'none',\r\n shadow: false,\r\n pointFormat: \"\"\r\n },\r\n series: [{\r\n name: 'Progress',\r\n data: [{\r\n color: '#FA9C4B',\r\n radius: '100%',\r\n innerRadius: '0%',\r\n y: 0\r\n }]\r\n }]\r\n };\r\n }\r\n\r\n get barChartOptions() {\r\n return {\r\n chart: {\r\n type: 'bar',\r\n height: 400\r\n },\r\n title: {\r\n text: null\r\n },\r\n yAxis: {\r\n title: {\r\n text: null\r\n },\r\n minTickInterval: 1\r\n },\r\n xAxis: {\r\n categories: [],\r\n title: {\r\n text: null\r\n }\r\n },\r\n legend: {\r\n enabled: false\r\n },\r\n tooltip: {\r\n borderWidth: 0,\r\n backgroundColor: 'none',\r\n shadow: false,\r\n pointFormat: \"\",\r\n enabled: false\r\n },\r\n plotOptions: {\r\n bar: {\r\n dataLabels: {\r\n enabled: true\r\n }\r\n }\r\n },\r\n series: [{\r\n data: []\r\n }]\r\n };\r\n }\r\n\r\n }\r\n\r\n angular.module(\"app\").controller(CareerClusterSurvey.controllerId, CareerClusterSurvey);\r\n}","/// \r\n\r\n\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IHeSAssessments {\r\n activate: () => void;\r\n assessment: string;\r\n url: string;\r\n assessmentName: string;\r\n isLicensed: boolean;\r\n configId: number;\r\n }\r\n\r\n\r\n class HeSAssessments implements IHeSAssessments {\r\n static controllerId: string = \"heSAssessments\";\r\n static $inject: string[] = [\"common\", \"config\", \"Restangular\", \"$routeParams\", \"$sce\", \"$window\", \"$scope\", \"$http\", \"hesfactory\", \"routemediator\"];\r\n\r\n assessment: string;\r\n url: string;\r\n assessmentName: string;\r\n isLicensed = true;\r\n isLsi: boolean;\r\n configId: number;\r\n assessmentClient: any;\r\n assessmentId: string;\r\n formerName: string;\r\n\r\n\r\n constructor(private common: ICommonFactory, private config: IConfig, private Restangular: Restangular.IService, private $routeParams: ng.route.IRouteParamsService, private $sce: ng.ISCEService, private $window: ng.IWindowService, private $scope: ng.IScope, private $http: ng.IHttpService, private hesFactory: IHesFactory, private routemediator: IRouteMediator) {\r\n\r\n this.common.authentication.authenticate(true).then(result => {\r\n if (result) {\r\n this.assessment = $routeParams[\"assessment\"].toLowerCase();\r\n this.assessmentClient = this.hesFactory as any;\r\n switch (this.assessment) {\r\n case \"achieveworks-personality\":\r\n case \"personality\":\r\n case \"dwya\":\r\n this.assessmentName = \"AchieveWorks\\u00AE Personality\";\r\n this.formerName = \"Do What You Are\"\r\n this.isLsi = false;\r\n _.last(this.routemediator.breadCrumbs).config.title = \"Achieveworks Personality\";\r\n this.configId = 104;\r\n break;\r\n case \"achieveworks-learning-productivity\":\r\n case \"learningproductivity\":\r\n case \"lsi\":\r\n this.assessmentName = \"AchieveWorks\\u00AE Learning & Productivity\";\r\n this.formerName = \"Learning Style Inventory\"\r\n this.isLsi = true;\r\n _.last(this.routemediator.breadCrumbs).config.title = \"Achieveworks Learning & Productivity\";\r\n this.configId = 101\r\n break;\r\n case \"achieveworks-skills\":\r\n case \"skills\":\r\n this.assessmentName = \"AchieveWorks\\u00AE Skills\";\r\n this.formerName = \"\"\r\n this.isLsi = false;\r\n _.last(this.routemediator.breadCrumbs).config.title = \"Achieveworks Skills\";\r\n this.configId = 1700\r\n break;\r\n case \"achieveworks-intelligences\":\r\n case \"intelligences\":\r\n this.assessmentName = \"AchieveWorks\\u00AE Intelligences\";\r\n this.formerName = \"\"\r\n this.isLsi = false;\r\n _.last(this.routemediator.breadCrumbs).config.title = \"Achieveworks Intelligences\";\r\n this.configId = 100\r\n break;\r\n default:\r\n this.assessmentName = \"\";\r\n break;\r\n }\r\n\r\n this.activate();\r\n }\r\n });\r\n\r\n \r\n }\r\n\r\n activate() {\r\n var promises = [this.getAssessments()];\r\n this.common.activateController(promises, HeSAssessments.controllerId)\r\n .then(() => {\r\n this.getAssessment(this.assessmentId);\r\n });\r\n }\r\n\r\n getAssessments = (): ng.IPromise => {\r\n return this.Restangular.all(\"hes\").one(\"assessments\").get({ configId: this.configId })\r\n .then((assessments) => {\r\n this.assessmentId = assessments && assessments[0] != null ? assessments[0].id : null;\r\n });\r\n }\r\n\r\n getAssessment = (assessmentId): ng.IPromise => {\r\n return this.Restangular.all(\"hes\").one(\"getToken\").get()\r\n .then((model) => {\r\n var config: any = {\r\n //required\r\n \"apiEnvironment\": this.config.hesEnvironment,\r\n //\"clientBaseUrl\": \"https://services.test.humanesources.com/api/assessments\",\r\n \"configurationId\": this.configId.toString(),\r\n \"userId\": model.heSUserId.toString(), //use a valid user id\r\n \"apiToken\": model.token, //use the token returned from getApiToken api call\r\n \"applicationDivId\": \"hesapp\",\r\n //example function to handle start assessment by adding the id to the url\r\n \"onAssessmentStart\": (assessment) => window.history.\r\n replaceState({}, null, `${window.location}/${assessment.id}`),\r\n }\r\n\r\n if (assessmentId) {\r\n config.assessmentId = assessmentId;\r\n }\r\n\r\n this.assessmentClient.main(config);\r\n }, (error) => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n getIFrameUrl = (): ng.IPromise => {\r\n var deferred = this.common.$q.defer();\r\n this.Restangular.all(\"learnaboutyourself\").one(this.assessment).get()\r\n .then((result) => {\r\n this.url = this.$sce.trustAsResourceUrl(result);\r\n console.log(result);\r\n deferred.resolve(result);\r\n\r\n }, (reason) => {\r\n if (reason.data.modelState && reason.data.modelState.notLicensed) {\r\n this.isLicensed = false;\r\n }\r\n });\r\n\r\n return deferred.promise;\r\n };\r\n\r\n updateDWYAResults = () => {\r\n var working = true;\r\n this.Restangular.all(\"users\").one(\"profile\").get().then((result) => {\r\n var xhttp = new XMLHttpRequest();\r\n xhttp.onreadystatechange = function () {\r\n if (this.readyState == 4) {\r\n console.log(\"Done!\");\r\n }\r\n }\r\n\r\n xhttp.open(\"GET\", this.config.transitionsUrl + \"/cfitransitions/LearnAboutYourself/HeS.svc/UpdateDWYAType?hesUserId=\" + result.heSUserId, false);\r\n xhttp.withCredentials = true;\r\n xhttp.send();\r\n });\r\n\r\n\r\n };\r\n\r\n\r\n }\r\n\r\n angular.module(\"app\").controller(HeSAssessments.controllerId, HeSAssessments);\r\n}","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IInterestProfiler {\r\n assessmentName: string;\r\n assessmentId\r\n currentSession: IAssessmentSession;\r\n assessment: IAssessment;\r\n questions: IQuestion[];\r\n totalQuestions: number;\r\n totalPages: number;\r\n sessions: IAssessmentSession[];\r\n nextPageLink: string;\r\n prevPageLink: string;\r\n assessmentResults: IInterestAreaResult[];\r\n progressGauge: any;\r\n rankingChart: any;\r\n inProgress: boolean;\r\n state: State;\r\n }\r\n\r\n class State {\r\n step: number;\r\n sessionId?: number;\r\n page?: number;\r\n }\r\n\r\n class InterestProfiler implements IInterestProfiler {\r\n static controllerId: string = \"interestProfiler\";\r\n static $inject: string[] = [\"$scope\", \"common\", \"Restangular\", \"$q\", \"$location\", \"config\"];\r\n\r\n assessmentName: string = \"Interest-Profiler\"\r\n assessmentId: number = 1;\r\n currentSession: IAssessmentSession;\r\n assessment: IAssessment;\r\n questions: IQuestion[];\r\n totalQuestions: number;\r\n totalPages: number;\r\n sessions: IAssessmentSession[];\r\n nextPageLink: string;\r\n prevPageLink: string;\r\n assessmentResults: IInterestAreaResult[];\r\n progressGauge: any;\r\n rankingChart: any;\r\n inProgress: boolean;\r\n state: State = new State();\r\n loading: boolean = true;\r\n ncCareersUrl: string;\r\n cacheBuster = Date.now() + '' + Math.random().toString(36).substring(10);\r\n paging: boolean = false;\r\n\r\n private log;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n\r\n constructor(private $scope: ng.IScope, private common: ICommonFactory, private Restangular: Restangular.IService, private $q: ng.IQService,\r\n private $location: ng.ILocationService, private config: Config) {\r\n\r\n this.log = common.logger.getLogFn(InterestProfiler.controllerId);\r\n this.logError = common.logger.getLogFn(InterestProfiler.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(InterestProfiler.controllerId, \"success\");\r\n this.ncCareersUrl = config.ncCareersUrl;\r\n\r\n this.common.authentication.authenticate(true).then(() => {\r\n this.activate();\r\n\r\n if (this.$location.state()) {\r\n this.state = this.$location.state();\r\n } else {\r\n this.saveState(1, null, null).replace();\r\n }\r\n\r\n this.questions = [];\r\n this.activate();\r\n this.progressGauge = this.gaugeOptions;\r\n this.rankingChart = this.barChartOptions;\r\n\r\n this.$scope.$on(\"$routeUpdate\", () => {\r\n if (this.$location.state()) {\r\n this.state = this.$location.state();\r\n }\r\n });\r\n\r\n this.activate();\r\n });\r\n }\r\n\r\n\r\n activate() {\r\n var promises: ng.IPromise[] = [this.getAssessment()];\r\n\r\n this.common.activateController(promises, InterestProfiler.controllerId)\r\n .then(() => {\r\n if (this.state.step && this.state.sessionId && this.state.step == 3) {\r\n this.getResults(this.state.sessionId);\r\n }\r\n else if (this.state.step && this.state.step == 2) {\r\n this.startOrResumeSession();\r\n }\r\n\r\n if (this.sessions == null) {\r\n promises.push(this.getSessions());\r\n }\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n saveState(step?: number, sessionId?: number, page?: number) {\r\n return this.$location.state({\r\n step: step ? step : this.state.step ? this.state.step : 1,\r\n sessionId: sessionId ? sessionId : this.currentSession ? this.currentSession.id : null,\r\n page: page ? page : this.state.page ? this.state.page : 1\r\n });\r\n }\r\n\r\n deleteSession(): ng.IPromise {\r\n var defer = this.$q.defer();\r\n\r\n var inProgressSession = _.find(this.sessions, (s) => s.isComplete == false);\r\n\r\n if (inProgressSession) {\r\n this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\", inProgressSession.id).remove()\r\n .then(() => defer.resolve(),\r\n (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n else {\r\n defer.resolve();\r\n }\r\n\r\n return defer.promise;\r\n }\r\n\r\n getAssessment(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).get()\r\n .then((result: IAssessment) => {\r\n this.assessment = result\r\n },\r\n (reason) => {\r\n this.logError(reason.message, reason, true)\r\n });\r\n }\r\n\r\n getSessions(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\").get()\r\n .then((sessions: IAssessmentSession[]) => {\r\n this.sessions = sessions;\r\n this.inProgress = _.some(this.sessions, (s) => s.isComplete == false);\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n getCurrentSession(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).one(\"session\").get();\r\n }\r\n\r\n getQuestions(page: number | string): ng.IPromise {\r\n var questions: ng.IPromise;\r\n\r\n if (typeof page == \"number\") {\r\n questions = this.Restangular.one(\"assessments\", this.assessmentId).one(\"questions\").get>({ page: page, pageSize: 3 });\r\n }\r\n else {\r\n questions = this.Restangular.oneUrl(\"questions\", page).get>();\r\n\r\n }\r\n\r\n return questions.then((result: IRestResult) => {\r\n this.questions = result.results;\r\n this.totalQuestions = result.totalCount;\r\n this.totalPages = result.totalPages;\r\n this.nextPageLink = result.nextPageLink;\r\n this.prevPageLink = result.prevPageLink;\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n getResults(sessionId: number): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentName).one(\"sessions\", sessionId).one(\"results\").get()\r\n .then((result: IInterestAreaResult[]) => {\r\n this.saveState(3, sessionId);\r\n this.assessmentResults = _.reject(result, { count: 0 });\r\n\r\n this.rankingChart.series[0].data = [];\r\n this.rankingChart.xAxis.categories = [];\r\n result.forEach(r => {\r\n this.rankingChart.xAxis.categories.push(r.interestArea.name);\r\n this.rankingChart.series[0].data.push(r.count);\r\n\r\n });\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n complete(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\", this.currentSession.id).one(\"complete\").put()\r\n .then(() => {\r\n this.getResults(this.currentSession.id);\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n startOrResumeSession(): ng.IPromise {\r\n var currentSession = this.getCurrentSession().then(result => {\r\n this.currentSession = result;\r\n this.progressGauge = this.gaugeOptions;\r\n this.currentSession.answers = this.currentSession.answers || [];\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n\r\n var questions = this.getQuestions(1);\r\n\r\n return this.$q.all([currentSession, questions])\r\n .then(() => {\r\n this.selectAnswers();\r\n this.saveState(2, this.currentSession.id);\r\n });\r\n }\r\n\r\n selectAnswers() {\r\n var answers = this.currentSession.answers;\r\n this.questions.forEach(function (q: IQuestion, i: number) {\r\n var answer = _.find(answers, { questionId: q.id });\r\n if (answer) {\r\n this[i].selected = parseInt(answer.answer);\r\n }\r\n }, this.questions);\r\n }\r\n\r\n startOver() {\r\n this.deleteSession()\r\n .then(() => {\r\n this.currentSession == null;\r\n this.state.page = 1;\r\n this.startOrResumeSession();\r\n });\r\n }\r\n\r\n updateAnswer(value: string, question: IQuestion): ng.IPromise {\r\n var defer = this.$q.defer();\r\n\r\n var answer = _.find(this.currentSession.answers, { questionId: question.id });\r\n if (answer == null) {\r\n answer = {\r\n id: null,\r\n sessionId: this.currentSession.id,\r\n assessmentId: 1,\r\n questionId: question.id,\r\n interestAreaId: question.interestAreaId,\r\n answer: null\r\n };\r\n }\r\n\r\n if (answer.answer != value) {\r\n answer.answer = value;\r\n\r\n this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\", this.currentSession.id).one(\"questions\", question.id).one(\"answers\").post(null, answer)\r\n .then((result) => {\r\n var match = _.find(this.currentSession.answers, { id: result })\r\n if (!match) {\r\n answer.id = result;\r\n this.currentSession.answers.push(answer);\r\n defer.resolve();\r\n }\r\n },\r\n (reason) => {\r\n this.logError(reason.message, reason, true);\r\n defer.reject(reason);\r\n });\r\n }\r\n\r\n return defer.promise;\r\n }\r\n\r\n\r\n pageQuestions(page: number | string, incrementPage: number) {\r\n this.paging = true;\r\n this.getQuestions(page)\r\n .then(() => {\r\n this.selectAnswers();\r\n this.state.page = this.state.page + incrementPage;\r\n this.paging = false;\r\n this.progressGauge.series[0].data[0].y = Math.ceil((this.state.page / this.totalPages) * 100);\r\n });\r\n }\r\n\r\n get gaugeOptions() {\r\n return {\r\n title: {\r\n text: null\r\n },\r\n chart: {\r\n type: 'solidgauge',\r\n height: 150\r\n },\r\n pane: {\r\n startAngle: 0,\r\n endAngle: 360,\r\n background: [{ // Track for Move\r\n outerRadius: '100%',\r\n innerRadius: '0%',\r\n borderWidth: 0\r\n }]\r\n },\r\n yAxis: {\r\n min: 0,\r\n max: 100,\r\n lineWidth: 0,\r\n tickPositions: []\r\n },\r\n plotOptions: {\r\n solidgauge: {\r\n dataLabels: {\r\n enabled: true,\r\n borderWidth: 0,\r\n format: \"{y}%\",\r\n x: 0,\r\n y: -15,\r\n padding: 0,\r\n useHTML: true,\r\n style: {\r\n fontSize: \"20px\"\r\n }\r\n }\r\n }\r\n },\r\n tooltip: {\r\n borderWidth: 0,\r\n backgroundColor: 'none',\r\n shadow: false,\r\n pointFormat: \"\"\r\n },\r\n series: [{\r\n name: 'Progress',\r\n data: [{\r\n color: '#FA9C4B',\r\n radius: '100%',\r\n innerRadius: '0%',\r\n y: 0\r\n }]\r\n }]\r\n };\r\n }\r\n\r\n get barChartOptions() {\r\n return {\r\n chart: {\r\n type: 'bar',\r\n height: 200\r\n },\r\n title: {\r\n text: null\r\n },\r\n yAxis: {\r\n title: {\r\n text: null\r\n },\r\n minTickInterval: 1\r\n },\r\n xAxis: {\r\n categories: [],\r\n title: {\r\n text: null\r\n }\r\n },\r\n legend: {\r\n enabled: false\r\n },\r\n tooltip: {\r\n borderWidth: 0,\r\n backgroundColor: 'none',\r\n shadow: false,\r\n pointFormat: \"\",\r\n enabled: false\r\n },\r\n plotOptions: {\r\n bar: {\r\n dataLabels: {\r\n enabled: true\r\n }\r\n }\r\n },\r\n series: [{\r\n data: []\r\n }]\r\n };\r\n }\r\n\r\n\r\n }\r\n\r\n angular.module(\"app\").controller(InterestProfiler.controllerId, InterestProfiler);\r\n}","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IRealityCheck {\r\n assessmentName: string;\r\n assessmentId\r\n assessment: IAssessment;\r\n sessions: IAssessmentSession[];\r\n }\r\n\r\n class State {\r\n step: number;\r\n sessionId?: number;\r\n page?: number;\r\n }\r\n\r\n class RealityCheck implements IRealityCheck {\r\n static controllerId: string = \"realityCheck\";\r\n static $inject: string[] = [\"$scope\", \"common\", \"Restangular\", \"$q\", \"$location\", \"config\"];\r\n\r\n assessmentName: string = \"Reality-Check\"\r\n assessmentId: number = 10;\r\n currentSession: IAssessmentSession;\r\n assessment: IAssessment;\r\n sessions: IAssessmentSession[];\r\n loading: boolean = true;\r\n ncCareersUrl: string;\r\n\r\n cacheBuster = Date.now() + '' + Math.random().toString(36).substring(10);\r\n\r\n private log;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n\r\n constructor(private $scope: ng.IScope, private common: ICommonFactory, private Restangular: Restangular.IService, private $q: ng.IQService,\r\n private $location: ng.ILocationService, private config: Config) {\r\n\r\n this.log = common.logger.getLogFn(RealityCheck.controllerId);\r\n this.logError = common.logger.getLogFn(RealityCheck.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(RealityCheck.controllerId, \"success\");\r\n this.ncCareersUrl = config.ncCareersUrl;\r\n\r\n this.common.authentication.authenticate(true).then(() => {\r\n this.activate();\r\n });\r\n }\r\n\r\n\r\n activate() {\r\n var promises: ng.IPromise[] = [this.getAssessment()];\r\n\r\n this.common.activateController(promises, RealityCheck.controllerId)\r\n .then(() => {\r\n\r\n if (this.sessions == null) {\r\n promises.push(this.getSessions());\r\n }\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getAssessment(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).get()\r\n .then((result: IAssessment) => {\r\n this.assessment = result\r\n },\r\n (reason) => {\r\n this.logError(reason.message, reason, true)\r\n });\r\n }\r\n\r\n getSessions(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\").get()\r\n .then((sessions: IAssessmentSession[]) => {\r\n this.sessions = sessions;\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n }\r\n\r\n angular.module(\"app\").controller(RealityCheck.controllerId, RealityCheck);\r\n}","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface ISkillsMatcher {\r\n assessmentName: string;\r\n assessmentId\r\n assessment: IAssessment;\r\n sessions: IAssessmentSession[];\r\n }\r\n\r\n class State {\r\n step: number;\r\n sessionId?: number;\r\n page?: number;\r\n }\r\n\r\n class SkillsMatcher implements ISkillsMatcher {\r\n static controllerId: string = \"skillsMatcher\";\r\n static $inject: string[] = [\"$scope\", \"common\", \"Restangular\", \"$q\", \"$location\", \"config\"];\r\n\r\n assessmentName: string = \"Skills-Matcher\"\r\n assessmentId: number = 11;\r\n currentSession: IAssessmentSession;\r\n assessment: IAssessment;\r\n sessions: IAssessmentSession[];\r\n loading: boolean = true;\r\n ncCareersUrl: string;\r\n cacheBuster = Date.now() + '' + Math.random().toString(36).substring(10);\r\n\r\n private log;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n\r\n constructor(private $scope: ng.IScope, private common: ICommonFactory, private Restangular: Restangular.IService, private $q: ng.IQService,\r\n private $location: ng.ILocationService, private config: Config) {\r\n\r\n this.log = common.logger.getLogFn(SkillsMatcher.controllerId);\r\n this.logError = common.logger.getLogFn(SkillsMatcher.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(SkillsMatcher.controllerId, \"success\");\r\n this.ncCareersUrl = config.ncCareersUrl;\r\n\r\n this.common.authentication.authenticate(true).then(() => {\r\n this.activate();\r\n });\r\n }\r\n\r\n\r\n activate() {\r\n var promises: ng.IPromise[] = [this.getAssessment()];\r\n\r\n this.common.activateController(promises, SkillsMatcher.controllerId)\r\n .then(() => {\r\n\r\n if (this.sessions == null) {\r\n promises.push(this.getSessions());\r\n }\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getAssessment(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).get()\r\n .then((result: IAssessment) => {\r\n this.assessment = result\r\n },\r\n (reason) => {\r\n this.logError(reason.message, reason, true)\r\n });\r\n }\r\n\r\n getSessions(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\").get()\r\n .then((sessions: IAssessmentSession[]) => {\r\n this.sessions = sessions;\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n }\r\n\r\n angular.module(\"app\").controller(SkillsMatcher.controllerId, SkillsMatcher);\r\n}","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface ITheCareerKey {\r\n assessmentName: string;\r\n assessmentId: number;\r\n currentSession: IAssessmentSession;\r\n assessment: IAssessment;\r\n questions: IQuestion[];\r\n totalQuestions: number;\r\n totalPages: number;\r\n sessions: IAssessmentSession[];\r\n nextPageLink: string;\r\n prevPageLink: string;\r\n assessmentResults: IInterestAreaResult[];\r\n progressGauge: any;\r\n inProgress: boolean;\r\n state: State;\r\n loading: boolean;\r\n rankingChart: any;\r\n answers: IAnswer[];\r\n }\r\n\r\n interface ICareerClusterResult {\r\n careerCluster: ICareerCluster;\r\n count: number;\r\n }\r\n\r\n interface ICareerCluster {\r\n id: number;\r\n title: string;\r\n description: string;\r\n code: number;\r\n }\r\n\r\n class State {\r\n step: number;\r\n sessionId?: number;\r\n categoryIndex: number;\r\n }\r\n\r\n\r\n class TheCareerKey implements ITheCareerKey {\r\n static controllerId: string = \"theCareerKey\";\r\n static $inject: string[] = [\"$scope\", \"common\", \"Restangular\", \"$q\", \"$location\", \"$routeParams\"];\r\n\r\n assessmentName: string = \"the-career-key\";\r\n assessmentId = 6;\r\n currentSession: IAssessmentSession;\r\n assessment: IAssessment;\r\n questions: IQuestion[];\r\n totalQuestions: number;\r\n totalPages: number;\r\n sessions: IAssessmentSession[];\r\n nextPageLink: string;\r\n prevPageLink: string;\r\n assessmentResults: IInterestAreaResult[];\r\n progressGauge: any;\r\n inProgress: boolean;\r\n categories: any;\r\n levels: any[];\r\n state: State = new State();\r\n loading: boolean = true;\r\n rankingChart: any;\r\n answers: IAnswer[];\r\n\r\n private log;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n\r\n constructor(private $scope: ng.IScope, private common: ICommonFactory, private Restangular: Restangular.IService, private $q: ng.IQService,\r\n private $location: ng.ILocationService, private $routeParams: angular.route.IRouteParamsService) {\r\n\r\n this.log = common.logger.getLogFn(TheCareerKey.controllerId);\r\n this.logError = common.logger.getLogFn(TheCareerKey.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(TheCareerKey.controllerId, \"success\");\r\n\r\n this.common.authentication.authenticate(true).then(() => {\r\n this.activate();\r\n\r\n\r\n if (this.$location.state()) {\r\n this.state = this.$location.state();\r\n } else {\r\n this.saveState(1, null, 0).replace();\r\n }\r\n\r\n this.questions = [];\r\n this.progressGauge = this.gaugeOptions;\r\n this.rankingChart = this.barChartOptions;\r\n this.totalPages = 5;\r\n\r\n this.$scope.$on(\"$routeUpdate\", () => {\r\n if (this.$location.state()) {\r\n this.state = this.$location.state();\r\n }\r\n });\r\n\r\n this.activate();\r\n });\r\n }\r\n\r\n\r\n activate() {\r\n var promises: ng.IPromise[] = [this.getAssessment(), this.getCategories()];\r\n\r\n this.common.activateController(promises, TheCareerKey.controllerId)\r\n .then(() => {\r\n if (this.state.step && this.state.sessionId && this.state.step == 3) {\r\n this.getResults(this.state.sessionId);\r\n }\r\n else if (this.state.step && this.state.step == 2) {\r\n this.startOrResumeSession();\r\n }\r\n\r\n if (this.sessions == null) {\r\n this.getSessions();\r\n }\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n saveState(step?: number, sessionId?: number, categoryIndex?: number) {\r\n return this.$location.state({\r\n step: step ? step : this.state.step ? this.state.step : 1,\r\n sessionId: sessionId ? sessionId : this.currentSession ? this.currentSession.id : null,\r\n categoryIndex: categoryIndex != null ? categoryIndex : this.state.categoryIndex ? this.state.categoryIndex : 0\r\n });\r\n }\r\n\r\n deleteSession(): ng.IPromise {\r\n var defer = this.$q.defer();\r\n\r\n var inProgressSession = _.find(this.sessions, (s) => s.isComplete == false);\r\n\r\n if (inProgressSession) {\r\n this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\", inProgressSession.id).remove()\r\n .then(() => defer.resolve(),\r\n (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n else {\r\n defer.resolve();\r\n }\r\n\r\n return defer.promise;\r\n }\r\n\r\n getAssessment(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).get()\r\n .then((result) => {\r\n this.assessment = result;\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n getSessions(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\").get()\r\n .then((sessions: IAssessmentSession[]) => {\r\n this.sessions = sessions;\r\n this.inProgress = _.some(this.sessions, (s) => s.isComplete == false);\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n getCurrentSession(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).one(\"session\").get();\r\n }\r\n\r\n getQuestions(categoryId: number): ng.IPromise {\r\n var questions: ng.IPromise;\r\n return this.Restangular.one(\"assessments\", this.assessmentId).one(\"questions\").get>({ categoryId: categoryId, pageSize: 100 })\r\n .then((result: IRestResult) => {\r\n this.questions = result.results;\r\n this.nextPageLink = result.nextPageLink;\r\n this.prevPageLink = result.prevPageLink;\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n getResults(sessionId: number): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentName).one(\"sessions\", sessionId).one(\"results\").get()\r\n .then((result: IInterestAreaResult[]) => {\r\n this.saveState(3, sessionId);\r\n this.assessmentResults = result;\r\n\r\n this.rankingChart.series[0].data = [];\r\n this.rankingChart.xAxis.categories = [];\r\n this.assessmentResults.forEach(r => {\r\n this.rankingChart.xAxis.categories.push(r.interestArea.name);\r\n this.rankingChart.series[0].data.push(r.count);\r\n\r\n });\r\n });\r\n }\r\n\r\n getCategories(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).one(\"categories\").get()\r\n .then((result) => {\r\n this.categories = result;\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n complete(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\", this.currentSession.id).one(\"complete\").put()\r\n .then(() => {\r\n this.getResults(this.currentSession.id);\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n startOrResumeSession(): ng.IPromise {\r\n var currentSession = this.getCurrentSession().then(result => {\r\n this.currentSession = result;\r\n if (this.currentSession.answers == null) {\r\n this.currentSession.answers = [];\r\n }\r\n this.progressGauge = this.gaugeOptions;\r\n\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n var categoryId = this.categories[this.state.categoryIndex].id\r\n var questions = this.getQuestions(categoryId);\r\n\r\n return this.$q.all([currentSession, questions])\r\n .then(() => {\r\n this.selectAnswers();\r\n this.saveState(2, this.currentSession.id);\r\n this.updateProgressIndicator(this.state.categoryIndex);\r\n });\r\n }\r\n\r\n selectAnswers() {\r\n var answers = this.currentSession.answers;\r\n this.questions.forEach(function (q: IQuestion, i: number) {\r\n var answer = _.find(answers, { questionId: q.id });\r\n if (answer) {\r\n this[i].selected = parseInt(answer.answer);\r\n }\r\n }, this.questions);\r\n\r\n }\r\n\r\n startOver() {\r\n this.deleteSession()\r\n .then(() => {\r\n this.currentSession = null;\r\n this.state.categoryIndex = 0;\r\n this.startOrResumeSession();\r\n });\r\n }\r\n\r\n\r\n toggleAnswer(question: IQuestion) {\r\n var idx = _.findIndex(this.currentSession.answers, { questionId: question.id } as IAnswer);\r\n if (idx == -1) {\r\n var answer: IAnswer = {\r\n id: null,\r\n sessionId: this.currentSession.id,\r\n assessmentId: this.assessmentId,\r\n questionId: question.id,\r\n categoryId: question.categoryId,\r\n interestAreaId: null,\r\n answer: \"1\"\r\n };\r\n this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\", this.currentSession.id)\r\n .one(\"questions\", question.id).all(\"answers\").post(answer)\r\n .then((result) => {\r\n answer.id = result;\r\n this.currentSession.answers.push(answer);\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n } else {\r\n var answer = this.currentSession.answers.splice(idx, 1)[0];\r\n this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\", this.currentSession.id)\r\n .one(\"questions\", question.id).one(\"answers\", answer.id).remove()\r\n .then(null, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n this.selectAnswers();\r\n }\r\n\r\n updateAnswer(value: string, question: IQuestion): ng.IPromise {\r\n var defer = this.$q.defer();\r\n\r\n var answer = _.find(this.currentSession.answers, { questionId: question.id });\r\n if (answer == null) {\r\n answer = {\r\n id: null,\r\n sessionId: this.currentSession.id,\r\n assessmentId: 1,\r\n questionId: question.id,\r\n interestAreaId: question.interestAreaId,\r\n answer: null\r\n };\r\n }\r\n\r\n if (answer.answer != value) {\r\n answer.answer = value;\r\n\r\n this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\", this.currentSession.id).one(\"questions\", question.id).one(\"answers\").post(null, answer)\r\n .then((result) => {\r\n var match = _.find(this.currentSession.answers, { id: result })\r\n if (!match) {\r\n answer.id = result;\r\n this.currentSession.answers.push(answer);\r\n defer.resolve();\r\n }\r\n },\r\n (reason) => {\r\n this.logError(reason.message, reason, true);\r\n defer.reject(reason);\r\n });\r\n }\r\n\r\n return defer.promise;\r\n }\r\n\r\n\r\n nextPage() {\r\n var categoryIdx = this.state.categoryIndex + 1;\r\n\r\n var categoryId = this.categories[categoryIdx].id\r\n this.getQuestions(categoryId)\r\n .then(() => {\r\n this.selectAnswers();\r\n this.saveState(null, null, categoryIdx)\r\n this.updateProgressIndicator(categoryIdx);\r\n });\r\n }\r\n\r\n prevPage() {\r\n var categoryIdx = this.state.categoryIndex - 1;\r\n\r\n var categoryId = this.categories[categoryIdx].id\r\n this.getQuestions(categoryId)\r\n .then(() => {\r\n this.selectAnswers();\r\n this.saveState(null, null, categoryIdx)\r\n this.updateProgressIndicator(categoryIdx);\r\n });\r\n }\r\n\r\n updateProgressIndicator(page) {\r\n this.progressGauge.series[0].data[0].y = Math.ceil((page / this.totalPages) * 100);\r\n }\r\n\r\n showCategoryInResults(category: IAssessmentCategory) {\r\n return _.some(this.answers, { categoryId: category.id });\r\n }\r\n\r\n\r\n get gaugeOptions() {\r\n return {\r\n title: {\r\n text: null\r\n },\r\n chart: {\r\n type: 'solidgauge',\r\n height: 150\r\n },\r\n pane: {\r\n startAngle: 0,\r\n endAngle: 360,\r\n background: [{ // Track for Move\r\n outerRadius: '100%',\r\n innerRadius: '0%',\r\n borderWidth: 0\r\n }]\r\n },\r\n yAxis: {\r\n min: 0,\r\n max: 100,\r\n lineWidth: 0,\r\n tickPositions: []\r\n },\r\n plotOptions: {\r\n solidgauge: {\r\n dataLabels: {\r\n enabled: true,\r\n borderWidth: 0,\r\n format: \"{y}%\",\r\n x: 0,\r\n y: -15,\r\n padding: 0,\r\n useHTML: true,\r\n style: {\r\n fontSize: \"20px\"\r\n }\r\n }\r\n }\r\n },\r\n tooltip: {\r\n borderWidth: 0,\r\n backgroundColor: 'none',\r\n shadow: false,\r\n pointFormat: \"\"\r\n },\r\n series: [{\r\n name: 'Progress',\r\n data: [{\r\n color: '#FA9C4B',\r\n radius: '100%',\r\n innerRadius: '0%',\r\n y: 0\r\n }]\r\n }]\r\n };\r\n }\r\n\r\n get barChartOptions() {\r\n return {\r\n chart: {\r\n type: 'bar',\r\n height: 200\r\n },\r\n title: {\r\n text: null\r\n },\r\n yAxis: {\r\n title: {\r\n text: null\r\n },\r\n minTickInterval: 1\r\n },\r\n xAxis: {\r\n categories: [],\r\n title: {\r\n text: null\r\n }\r\n },\r\n legend: {\r\n enabled: false\r\n },\r\n tooltip: {\r\n borderWidth: 0,\r\n backgroundColor: 'none',\r\n shadow: false,\r\n pointFormat: \"\",\r\n enabled: false\r\n },\r\n plotOptions: {\r\n bar: {\r\n dataLabels: {\r\n enabled: true\r\n }\r\n }\r\n },\r\n series: [{\r\n data: []\r\n }]\r\n };\r\n }\r\n\r\n }\r\n\r\n angular.module(\"app\").controller(TheCareerKey.controllerId, TheCareerKey);\r\n}","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface ITransferableSkillsChecklist {\r\n assessmentName: string;\r\n assessmentId: number;\r\n currentSession: IAssessmentSession;\r\n assessment: IAssessment;\r\n questions: IQuestion[];\r\n totalQuestions: number;\r\n totalPages: number;\r\n sessions: IAssessmentSession[];\r\n nextPageLink: string;\r\n prevPageLink: string;\r\n assessmentResults: ICareerClusterResult[];\r\n progressGauge: any;\r\n inProgress: boolean;\r\n state: State;\r\n loading: boolean;\r\n rankedResults: any;\r\n answers: IAnswer[];\r\n }\r\n\r\n interface ICareerClusterResult {\r\n careerCluster: ICareerCluster;\r\n count: number;\r\n }\r\n\r\n interface ICareerCluster {\r\n id: number;\r\n title: string;\r\n description: string;\r\n code: number;\r\n }\r\n\r\n class State {\r\n step: number;\r\n sessionId?: number;\r\n categoryIndex: number;\r\n }\r\n\r\n\r\n class TransferableSkillsChecklist implements ITransferableSkillsChecklist {\r\n static controllerId: string = \"transferableSkillsChecklist\";\r\n static $inject: string[] = [\"$scope\", \"common\", \"Restangular\", \"$q\", \"$location\", \"$routeParams\"];\r\n\r\n assessmentName: string = \"transferable-Skills-Checklist\";\r\n assessmentId = 4;\r\n currentSession: IAssessmentSession;\r\n assessment: IAssessment;\r\n questions: IQuestion[];\r\n totalQuestions: number;\r\n totalPages: number;\r\n sessions: IAssessmentSession[];\r\n nextPageLink: string;\r\n prevPageLink: string;\r\n assessmentResults: ICareerClusterResult[];\r\n progressGauge: any;\r\n inProgress: boolean;\r\n categories: any;\r\n levels: any[];\r\n state: State = new State();\r\n loading: boolean = true;\r\n rankedResults: any;\r\n answers: IAnswer[];\r\n\r\n private log;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n\r\n constructor(private $scope: ng.IScope, private common: ICommonFactory, private Restangular: Restangular.IService, private $q: ng.IQService,\r\n private $location: ng.ILocationService, private $routeParams: angular.route.IRouteParamsService) {\r\n\r\n this.log = common.logger.getLogFn(TransferableSkillsChecklist.controllerId);\r\n this.logError = common.logger.getLogFn(TransferableSkillsChecklist.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(TransferableSkillsChecklist.controllerId, \"success\");\r\n\r\n this.common.authentication.authenticate(true).then(() => {\r\n this.activate();\r\n\r\n if (this.$location.state()) {\r\n this.state = this.$location.state();\r\n } else {\r\n this.saveState(1, null, 0).replace();\r\n }\r\n\r\n this.questions = [];\r\n this.progressGauge = this.gaugeOptions;\r\n this.totalPages = 25;\r\n\r\n this.$scope.$on(\"$routeUpdate\", () => {\r\n if (this.$location.state()) {\r\n this.state = this.$location.state();\r\n }\r\n });\r\n\r\n this.activate();\r\n });\r\n }\r\n\r\n\r\n activate() {\r\n var promises: ng.IPromise[] = [this.getAssessment(), this.getCategories()];\r\n\r\n this.common.activateController(promises, TransferableSkillsChecklist.controllerId)\r\n .then(() => {\r\n if (this.state.step && this.state.sessionId && this.state.step == 3) {\r\n this.getResults(this.state.sessionId);\r\n }\r\n else if (this.state.step && this.state.step == 2) {\r\n this.startOrResumeSession();\r\n }\r\n\r\n if (this.sessions == null) {\r\n this.getSessions();\r\n }\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n saveState(step?: number, sessionId?: number, categoryIndex?: number) {\r\n return this.$location.state({\r\n step: step ? step : this.state.step ? this.state.step : 1,\r\n sessionId: sessionId ? sessionId : this.currentSession ? this.currentSession.id : null,\r\n categoryIndex: categoryIndex != null ? categoryIndex : this.state.categoryIndex ? this.state.categoryIndex : 0\r\n });\r\n }\r\n\r\n deleteSession(): ng.IPromise {\r\n var defer = this.$q.defer();\r\n\r\n var inProgressSession = _.find(this.sessions, (s) => s.isComplete == false);\r\n\r\n if (inProgressSession) {\r\n this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\", inProgressSession.id).remove()\r\n .then(() => defer.resolve(),\r\n (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n else {\r\n defer.resolve();\r\n }\r\n\r\n return defer.promise;\r\n }\r\n\r\n getAssessment(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).get()\r\n .then((result) => {\r\n this.assessment = result;\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n getSessions(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\").get()\r\n .then((sessions: IAssessmentSession[]) => {\r\n this.sessions = sessions;\r\n this.inProgress = _.some(this.sessions, (s) => s.isComplete == false);\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n getCurrentSession(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).one(\"session\").get();\r\n }\r\n\r\n getQuestions(categoryId: number): ng.IPromise {\r\n var questions: ng.IPromise;\r\n return this.Restangular.one(\"assessments\", this.assessmentId).one(\"questions\").get>({ categoryId: categoryId, pageSize: 100 })\r\n .then((result: IRestResult) => {\r\n this.questions = result.results;\r\n this.nextPageLink = result.nextPageLink;\r\n this.prevPageLink = result.prevPageLink;\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n getResults(sessionId: number): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\", sessionId).one(\"answers\").get({ includeQuestion: true })\r\n .then((results) => {\r\n this.saveState(3, sessionId);\r\n this.answers = results;\r\n },\r\n (reason) => {\r\n this.logError(reason.message, reason, false);\r\n });\r\n\r\n }\r\n\r\n getCategories(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).one(\"categories\").get()\r\n .then((result) => {\r\n this.categories = result;\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n complete(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\", this.currentSession.id).one(\"complete\").put()\r\n .then(() => {\r\n this.getResults(this.currentSession.id);\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n startOrResumeSession(): ng.IPromise {\r\n var currentSession = this.getCurrentSession().then(result => {\r\n this.currentSession = result;\r\n this.progressGauge = this.gaugeOptions;\r\n this.currentSession.answers = this.currentSession.answers || [];\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n var categoryId = this.categories[this.state.categoryIndex].id\r\n var questions = this.getQuestions(categoryId);\r\n\r\n return this.$q.all([currentSession, questions])\r\n .then(() => {\r\n this.selectAnswers();\r\n this.saveState(2, this.currentSession.id);\r\n this.updateProgressIndicator(this.state.categoryIndex);\r\n });\r\n }\r\n\r\n selectAnswers() {\r\n var answers = this.currentSession.answers;\r\n this.questions.forEach(function (q: IQuestion, i: number) {\r\n var answer = _.find(answers, { questionId: q.id });\r\n if (answer) {\r\n this[i].selected = parseInt(answer.answer);\r\n }\r\n }, this.questions);\r\n\r\n }\r\n\r\n startOver() {\r\n this.deleteSession()\r\n .then(() => {\r\n this.currentSession = null;\r\n this.state.categoryIndex = 1;\r\n this.startOrResumeSession();\r\n });\r\n }\r\n\r\n\r\n toggleAnswer(question: IQuestion) {\r\n var idx = _.findIndex(this.currentSession.answers, { questionId: question.id } as IAnswer);\r\n if (idx == -1) {\r\n var answer: IAnswer = {\r\n id: null,\r\n sessionId: this.currentSession.id,\r\n assessmentId: this.assessmentId,\r\n questionId: question.id,\r\n categoryId: question.categoryId,\r\n interestAreaId: null,\r\n answer: \"1\"\r\n };\r\n this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\", this.currentSession.id)\r\n .one(\"questions\", question.id).all(\"answers\").post(answer)\r\n .then((result) => {\r\n answer.id = result;\r\n this.currentSession.answers.push(answer);\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n } else {\r\n var answer = this.currentSession.answers.splice(idx, 1)[0];\r\n this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\", this.currentSession.id)\r\n .one(\"questions\", question.id).one(\"answers\", answer.id).remove()\r\n .then(null, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n this.selectAnswers();\r\n }\r\n\r\n\r\n nextPage() {\r\n var categoryIdx = this.state.categoryIndex + 1;\r\n\r\n var categoryId = this.categories[categoryIdx].id\r\n this.getQuestions(categoryId)\r\n .then(() => {\r\n this.selectAnswers();\r\n this.saveState(null, null, categoryIdx)\r\n this.updateProgressIndicator(categoryIdx);\r\n });\r\n }\r\n\r\n prevPage() {\r\n var categoryIdx = this.state.categoryIndex - 1;\r\n\r\n var categoryId = this.categories[categoryIdx].id\r\n this.getQuestions(categoryId)\r\n .then(() => {\r\n this.selectAnswers();\r\n this.saveState(null, null, categoryIdx)\r\n this.updateProgressIndicator(categoryIdx);\r\n });\r\n }\r\n\r\n updateProgressIndicator(page) {\r\n this.progressGauge.series[0].data[0].y = Math.ceil((page / this.totalPages) * 100);\r\n }\r\n\r\n showCategoryInResults(category: IAssessmentCategory) {\r\n return _.some(this.answers, { categoryId: category.id });\r\n }\r\n\r\n\r\n get gaugeOptions() {\r\n return {\r\n title: {\r\n text: null\r\n },\r\n chart: {\r\n type: 'solidgauge',\r\n height: 150\r\n },\r\n pane: {\r\n startAngle: 0,\r\n endAngle: 360,\r\n background: [{ // Track for Move\r\n outerRadius: '100%',\r\n innerRadius: '0%',\r\n borderWidth: 0\r\n }]\r\n },\r\n yAxis: {\r\n min: 0,\r\n max: 100,\r\n lineWidth: 0,\r\n tickPositions: []\r\n },\r\n plotOptions: {\r\n solidgauge: {\r\n dataLabels: {\r\n enabled: true,\r\n borderWidth: 0,\r\n format: \"{y}%\",\r\n x: 0,\r\n y: -15,\r\n padding: 0,\r\n useHTML: true,\r\n style: {\r\n fontSize: \"20px\"\r\n }\r\n }\r\n }\r\n },\r\n tooltip: {\r\n borderWidth: 0,\r\n backgroundColor: 'none',\r\n shadow: false,\r\n pointFormat: \"\"\r\n },\r\n series: [{\r\n name: 'Progress',\r\n data: [{\r\n color: '#FA9C4B',\r\n radius: '100%',\r\n innerRadius: '0%',\r\n y: 0\r\n }]\r\n }]\r\n };\r\n }\r\n\r\n\r\n }\r\n\r\n angular.module(\"app\").controller(TransferableSkillsChecklist.controllerId, TransferableSkillsChecklist);\r\n}","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IWorkValuesSorter {\r\n assessmentName: string;\r\n assessmentId: number;\r\n currentSession: IAssessmentSession;\r\n assessment: IAssessment;\r\n questions: IQuestion[];\r\n sessions: IAssessmentSession[];\r\n assessmentResults: IWorkValueSorterResult[];\r\n inProgress: boolean;\r\n state: State;\r\n loading: boolean;\r\n answers: IAnswer[];\r\n selections: any[][];\r\n rankedResults: IWorkValueSorterResult[];\r\n rankingChart: any;\r\n }\r\n\r\n interface ICareerClusterResult {\r\n careerCluster: ICareerCluster;\r\n count: number;\r\n }\r\n\r\n interface ICareerCluster {\r\n id: number;\r\n title: string;\r\n description: string;\r\n code: number;\r\n }\r\n\r\n class State {\r\n step: number;\r\n sessionId?: number;\r\n }\r\n\r\n\r\n class WorkValuesSorter implements IWorkValuesSorter {\r\n static controllerId: string = \"workValuesSorter\";\r\n static $inject: string[] = [\"$scope\", \"common\", \"Restangular\", \"$q\", \"$location\", \"$routeParams\", \"config\"];\r\n\r\n assessmentName: string = \"work-values-Sorter\";\r\n assessmentId = 5;\r\n currentSession: IAssessmentSession;\r\n assessment: IAssessment;\r\n questions: IQuestion[];\r\n sessions: IAssessmentSession[];\r\n assessmentResults: IWorkValueSorterResult[];\r\n progressGauge: any;\r\n inProgress: boolean;\r\n categories: any;\r\n state: State = new State();\r\n loading: boolean = true;\r\n answers: IAnswer[];\r\n selections: any[][];\r\n rankedResults: IWorkValueSorterResult[];\r\n rankingChart: any;\r\n ncCareersUrl: string;\r\n cacheBuster = Date.now() + '' + Math.random().toString(36).substring(10);\r\n\r\n private log;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n\r\n constructor(private $scope: ng.IScope, private common: ICommonFactory, private Restangular: Restangular.IService, private $q: ng.IQService,\r\n private $location: ng.ILocationService, private $routeParams: angular.route.IRouteParamsService, private config: IConfig) {\r\n\r\n this.log = common.logger.getLogFn(WorkValuesSorter.controllerId);\r\n this.logError = common.logger.getLogFn(WorkValuesSorter.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(WorkValuesSorter.controllerId, \"success\");\r\n this.ncCareersUrl = config.ncCareersUrl;\r\n\r\n this.common.authentication.authenticate(true).then(() => {\r\n this.activate();\r\n\r\n if (this.$location.state()) {\r\n this.state = this.$location.state();\r\n } else {\r\n this.saveState(1, null).replace();\r\n }\r\n\r\n this.questions = [];\r\n this.initializeSelections();\r\n this.rankingChart = this.barChartOptions;\r\n\r\n this.$scope.$on(\"$routeUpdate\", () => {\r\n if (this.$location.state()) {\r\n this.state = this.$location.state();\r\n }\r\n });\r\n\r\n this.activate();\r\n });\r\n }\r\n\r\n initializeSelections() {\r\n this.selections = [];\r\n for (var i = 0; i < 4; i++) {\r\n this.selections.push([null, null, null, null, null]);\r\n }\r\n }\r\n\r\n activate() {\r\n var promises: ng.IPromise[] = [this.getAssessment(), this.getCategories()];\r\n\r\n this.common.activateController(promises, WorkValuesSorter.controllerId)\r\n .then(() => {\r\n if (this.state.step && this.state.sessionId && this.state.step == 3) {\r\n this.getResults(this.state.sessionId);\r\n }\r\n else if (this.state.step && this.state.step == 2) {\r\n this.startOrResumeSession();\r\n }\r\n\r\n if (this.sessions == null) {\r\n this.getSessions();\r\n }\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n saveState(step?: number, sessionId?: number) {\r\n return this.$location.state({\r\n step: step ? step : this.state.step ? this.state.step : 1,\r\n sessionId: sessionId ? sessionId : this.currentSession ? this.currentSession.id : null\r\n });\r\n }\r\n\r\n deleteSession(): ng.IPromise {\r\n var defer = this.$q.defer();\r\n\r\n var inProgressSession = _.find(this.sessions, (s) => s.isComplete == false);\r\n\r\n if (inProgressSession) {\r\n this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\", inProgressSession.id).remove()\r\n .then(() => defer.resolve(),\r\n (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n else {\r\n defer.resolve();\r\n }\r\n\r\n return defer.promise;\r\n }\r\n\r\n getAssessment(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).get()\r\n .then((result) => {\r\n this.assessment = result;\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n getSessions(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\").get()\r\n .then((sessions: IAssessmentSession[]) => {\r\n this.sessions = sessions;\r\n this.inProgress = _.some(this.sessions, (s) => s.isComplete == false);\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n getCurrentSession(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).one(\"session\").get();\r\n }\r\n\r\n getQuestions(): ng.IPromise {\r\n var questions: ng.IPromise;\r\n return this.Restangular.one(\"assessments\", this.assessmentId).one(\"questions\").get>({ pageSize: 20 })\r\n .then((result: IRestResult) => {\r\n this.questions = result.results;\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n getResults(sessionId: number): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentName).one(\"sessions\", sessionId).one(\"results\").get()\r\n .then((results) => {\r\n this.assessmentResults = results;\r\n var topScores = _.take(_.map(_.uniqBy(this.assessmentResults, 'score'), 'score'), 2);\r\n\r\n this.rankedResults = _.filter(this.assessmentResults, (r) => r.score >= topScores[1]);\r\n this.rankingChart.series[0].data = [];\r\n this.rankingChart.xAxis.categories = [];\r\n this.assessmentResults.forEach(r => {\r\n this.rankingChart.xAxis.categories.push(r.category.name);\r\n this.rankingChart.series[0].data.push(r.score);\r\n\r\n });\r\n\r\n this.saveState(3, sessionId);\r\n },\r\n (reason) => {\r\n this.logError(reason.message, reason, false);\r\n });\r\n\r\n }\r\n\r\n getCategories(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).one(\"categories\").get()\r\n .then((result) => {\r\n this.categories = result;\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n complete(): ng.IPromise {\r\n return this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\", this.currentSession.id).one(\"complete\").put()\r\n .then(() => {\r\n this.getResults(this.currentSession.id);\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n startOrResumeSession(): ng.IPromise {\r\n var currentSession = this.getCurrentSession().then(result => {\r\n this.currentSession = result;\r\n if (this.currentSession.answers == null) {\r\n this.currentSession.answers = [];\r\n }\r\n\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n\r\n var questions = this.getQuestions();\r\n\r\n return this.$q.all([currentSession, questions])\r\n .then(() => {\r\n this.selectAnswers();\r\n this.saveState(2, this.currentSession.id);\r\n });\r\n }\r\n\r\n selectAnswers() {\r\n var answers = this.currentSession.answers;\r\n var rowIdx = [0, 0, 0, 0, 0];\r\n\r\n answers.forEach(function (answer) {\r\n var colIdx = parseInt(answer.answer);\r\n var question = _.remove(this.questions, (q: IQuestion) => q.id == answer.questionId);\r\n this.selections[rowIdx[colIdx]][colIdx] = { question: question[0], answer: answer }\r\n rowIdx[colIdx] += 1;\r\n }, this)\r\n\r\n }\r\n\r\n startOver() {\r\n this.deleteSession()\r\n .then(() => {\r\n this.currentSession = null;\r\n this.initializeSelections();\r\n this.startOrResumeSession();\r\n });\r\n }\r\n\r\n\r\n toggleAnswer(question: IQuestion) {\r\n var idx = _.findIndex(this.currentSession.answers, { questionId: question.id } as IAnswer);\r\n if (idx == -1) {\r\n var answer: IAnswer = {\r\n id: null,\r\n sessionId: this.currentSession.id,\r\n assessmentId: this.assessmentId,\r\n questionId: question.id,\r\n categoryId: question.categoryId,\r\n interestAreaId: null,\r\n answer: \"1\"\r\n };\r\n this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\", this.currentSession.id)\r\n .one(\"questions\", question.id).all(\"answers\").post(answer)\r\n .then((result) => {\r\n answer.id = result;\r\n this.currentSession.answers.push(answer);\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n } else {\r\n var answer = this.currentSession.answers.splice(idx, 1)[0];\r\n this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\", this.currentSession.id)\r\n .one(\"questions\", question.id).one(\"answers\", answer.id).remove()\r\n .then(null, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n });\r\n }\r\n\r\n this.selectAnswers();\r\n }\r\n\r\n saving = false;\r\n\r\n select(row, column) {\r\n var question: IQuestion;\r\n\r\n if (this.saving) {\r\n return;\r\n }\r\n\r\n if (this.selections[row][column] == null) {\r\n this.saving = true;\r\n question = this.questions.shift();\r\n\r\n\r\n var answer: IAnswer = {\r\n id: null,\r\n answer: column,\r\n assessmentId: this.assessmentId,\r\n questionId: question.id,\r\n categoryId: question.categoryId,\r\n interestAreaId: null,\r\n sessionId: this.currentSession.id\r\n }\r\n\r\n this.selections[row][column] = { question: question, answer: answer };\r\n\r\n this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\", this.currentSession.id)\r\n .one(\"questions\", question.id).all(\"answers\").post(answer)\r\n .then((result) => {\r\n answer.id = result;\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n }).finally(() => { this.saving = false; });\r\n\r\n }\r\n else {\r\n this.saving = true;\r\n question = this.selections[row][column].question;\r\n this.Restangular.one(\"assessments\", this.assessmentId).one(\"sessions\", this.currentSession.id)\r\n .one(\"questions\", question.id).one(\"answers\", this.selections[row][column].answer.id).remove()\r\n .then(() => {\r\n this.selections[row][column] = null;\r\n this.questions.unshift(question);\r\n }, (reason) => {\r\n this.logError(reason.message, reason, true);\r\n }).finally(() => { this.saving = false; });;\r\n }\r\n }\r\n\r\n skip() {\r\n this.questions.push(this.questions.shift());\r\n }\r\n\r\n get barChartOptions() {\r\n return {\r\n chart: {\r\n type: 'bar',\r\n height: 200\r\n },\r\n title: {\r\n text: null\r\n },\r\n yAxis: {\r\n title: {\r\n text: null\r\n },\r\n minTickInterval: 1\r\n },\r\n xAxis: {\r\n categories: [],\r\n title: {\r\n text: null\r\n }\r\n },\r\n legend: {\r\n enabled: false\r\n },\r\n tooltip: {\r\n borderWidth: 0,\r\n backgroundColor: 'none',\r\n shadow: false,\r\n pointFormat: \"\",\r\n enabled: false\r\n },\r\n plotOptions: {\r\n bar: {\r\n dataLabels: {\r\n enabled: true\r\n }\r\n }\r\n },\r\n series: [{\r\n data: []\r\n }]\r\n };\r\n }\r\n }\r\n\r\n angular.module(\"app\").controller(WorkValuesSorter.controllerId, WorkValuesSorter);\r\n}","/// \r\nnamespace Cfnc {\r\n export interface ILoginScope extends ng.IScope {\r\n vm: Login;\r\n loginForm: ng.IFormController;\r\n }\r\n\r\n export interface ILogin {\r\n errors: Array;\r\n busy: boolean;\r\n }\r\n\r\n export class Login implements ILogin {\r\n static controllerId: string = \"login\";\r\n static $inject: any = [\"$scope\", \"$location\", \"common\", \"loginCredentials\", \"config\"];\r\n errors: Array = [];\r\n busy: boolean;\r\n loginInfo: ILoginBindingModel;\r\n log: (msg, data?, showToast?) => void;\r\n returnUrl: string;\r\n\r\n constructor(private $scope: ILoginScope, private $location: angular.ILocationService, private common: ICommonFactory, private LoginCredentials: ILoginCredentials, private config: Config) {\r\n this.log = common.logger.getLogFn(Login.controllerId);\r\n this.busy = false;\r\n this.returnUrl = this.$location.search().returnUrl\r\n\r\n window.location.href = this.config.umbracoUrl;\r\n\r\n\r\n\r\n }\r\n\r\n private activate() {\r\n var self = this;\r\n this.common.activateController([], Login.controllerId)\r\n .then(result => {\r\n self.log(\"Activated Login Screen\");\r\n\r\n });\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n\r\n angular.module(\"app\").controller(Login.controllerId, Login);\r\n}","/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface ILogoutRouteParams extends angular.route.IRouteParamsService {\r\n referrer: string;\r\n }\r\n\r\n interface ILogoutFrame {\r\n id: string,\r\n url: string,\r\n completed: boolean;\r\n }\r\n\r\n interface ILogout {\r\n activate: () => void;\r\n crossroadsLogoutUrl: string;\r\n logoutFrames: ILogoutFrame[];\r\n }\r\n\r\n class Logout implements ILogout {\r\n static controllerId: string = \"logout\";\r\n\r\n static $inject: string[] = [\"config\", \"common\", \"$routeParams\", \"$location\", \"$rootScope\", \"$timeout\", \"$sce\", \"$window\", \"$uibModal\", \"$scope\"];\r\n crossroadsLogoutUrl: string;\r\n logoutFrames: ILogoutFrame[] = [{\r\n id: \"Crossroads\",\r\n url: this.config.crossroadsUrl + \"/application/logout?referrer=Cfnc\",\r\n completed: false\r\n },\r\n {\r\n id: \"rds\",\r\n url: this.config.residencyUrl + \"#/logout/rds?referrer=Cfnc\",\r\n completed: false\r\n }\r\n ];\r\n logoutTimer: any;\r\n logError: (msg, data?, showToast?) => void;\r\n\r\n constructor(private config: IConfig,\r\n private common: ICommonFactory,\r\n private $routeParams: ILogoutRouteParams,\r\n private $location: ng.ILocationService,\r\n private $rootScope: ng.IRootScopeService,\r\n private $timeout: ng.ITimeoutService,\r\n private $sce: ng.ISCEService,\r\n private $window: ng.IWindowService,\r\n private $uibModal: angular.ui.bootstrap.IModalService,\r\n private $scope: angular.IScope) {\r\n this.logError = common.logger.getLogFn(Logout.controllerId, \"error\");\r\n\r\n if (!$routeParams.referrer) {\r\n this.common.authentication.checkLogin().then((user) => {\r\n this.common.authentication.logout();\r\n }, (reason) => {\r\n this.logError(\"User is not showing as logged in on the logout page\", reason, false);\r\n this.$window.location.href = this.config.umbracoUrl;\r\n });\r\n\r\n } else {\r\n if ($routeParams.referrer == \"Auth\") {\r\n this.logoutUser();\r\n } else {\r\n this.common.authentication.logout();\r\n }\r\n }\r\n\r\n\r\n this.activate();\r\n\r\n }\r\n\r\n messageReceived = (data) => {\r\n _.find(this.logoutFrames, { id: data }).completed = true;\r\n\r\n if (_.every(this.logoutFrames, { completed: true })) {\r\n this.$timeout.cancel(this.logoutTimer);\r\n this.logoutUser();\r\n\r\n }\r\n }\r\n\r\n activate() {\r\n this.common.activateController([], Logout.controllerId);\r\n }\r\n\r\n logoutUser(): ng.IPromise> {\r\n var deferred: ng.IDeferred = this.common.$q.defer();\r\n //this.$window.onbeforeunload = null;\r\n //this.$window.onkeydown = null;\r\n //this.common.authentication.logout(false).then(() => {\r\n // deferred.resolve();\r\n //}, () => {\r\n // deferred.reject();\r\n //});\r\n\r\n this.common.authentication.completeLogout().then(() => {\r\n deferred.resolve();\r\n }, () => {\r\n deferred.reject();\r\n });\r\n\r\n return deferred.promise;\r\n }\r\n }\r\n\r\n angular.module(\"app\").controller(Logout.controllerId, Logout);\r\n}","/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface ILogoutModalScope extends ng.IScope {\r\n refreshToken: () => void;\r\n timer: number;\r\n tokenExpiresOn: any;\r\n }\r\n\r\n interface ILogoutModal {\r\n activate: () => void;\r\n \r\n }\r\n\r\n class LogoutModal implements ILogoutModal {\r\n static controllerId: string = \"logoutModal\";\r\n\r\n static $inject: string[] = [\"$scope\", \"$location\", \"$uibModalInstance\", \"common\", \"$interval\"];\r\n intervalPromise: ng.IPromise;\r\n\r\n constructor(private $scope: ILogoutModalScope, private $location: ng.ILocationService, private $uibModalInstance: ng.ui.bootstrap.IModalServiceInstance, private common: ICommonFactory, private $interval: ng.IIntervalService) {\r\n this.activate(); \r\n $scope.timer = 120;\r\n $scope.tokenExpiresOn = new Date(localStorage[Cfnc.Security.CfncStorage.expiresOn]);\r\n this.intervalPromise = this.$interval(this.decreaseTimer, 1000);\r\n }\r\n\r\n activate() {\r\n \r\n }\r\n\r\n decreaseTimer = () => {\r\n this.$scope.timer = this.$scope.timer - 1; \r\n };\r\n }\r\n\r\n angular.module(\"app\").controller(LogoutModal.controllerId, LogoutModal);\r\n}","/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface ICfncShell {\r\n cfncUrl: string;\r\n javaUrl: string;\r\n transitionsUrl: string;\r\n ncassistUrl: string;\r\n }\r\n\r\n class CfncShell implements ICfncShell {\r\n static controllerId: string = \"cfncShell\"\r\n static $inject: string[] = [\"$rootScope\", \"common\", \"config\"]\r\n cfncUrl: string;\r\n javaUrl: string;\r\n transitionsUrl: string;\r\n ncassistUrl: string;\r\n\r\n constructor(private $rootScope: ng.IRootScopeService, private common: ICommonFactory, private config: IConfig) {\r\n this.activate();\r\n }\r\n\r\n activate(): void {\r\n this.common.activateController([], CfncShell.controllerId);\r\n this.cfncUrl = this.config.cfncUrl;\r\n this.javaUrl = this.config.javaUrl;\r\n this.transitionsUrl = this.config.transitionsUrl;\r\n this.ncassistUrl = this.config.ncassistUrl; \r\n }\r\n }\r\n\r\n angular.module(\"app\").controller(CfncShell.controllerId, CfncShell);\r\n}","/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n enum Roles {\r\n MiddleSchool = 1 << 0, // 1\r\n HighSchool = 1 << 1, // 2\r\n College = 1 << 2, // 4\r\n AdultLearner = 1 << 3, // 8\r\n Parent = 1 << 4, // 16\r\n EducationProfessional = 1 << 5, // 32\r\n NC529AccountHolder = 1 << 6, // 64\r\n EducationLoanBorrower = 1 << 7 // 128\r\n };\r\n\r\n class UserProfile implements IUserProfile {\r\n addressVerified: boolean;\r\n associatedSchools: Array;\r\n comments: Array;\r\n customer: ICustomerViewModel;\r\n dateOfBirth: string;\r\n daytimePhone: string;\r\n email: string;\r\n enrollmentStatus: number;\r\n eveningPhone: string;\r\n firstName: string;\r\n fromServer: boolean;\r\n gender: number;\r\n graduationYear: number;\r\n id: number;\r\n lastName: string;\r\n mailAddress: IAddress;\r\n mailingPhone: string;\r\n middleName: string;\r\n nickname: string;\r\n permAddress: IAddress;\r\n phoneNumber: string;\r\n primaryConnectionCrmId: number;\r\n role: any;\r\n socialSecurityNumber: string;\r\n studentId: string;\r\n suffix: string;\r\n userContactInfo: any;\r\n username: string;\r\n mobilePhone: string;\r\n homePhone: string;\r\n workPhone: string;\r\n emailInvalid: boolean;\r\n addressInvalid: boolean;\r\n phoneNumberInvalid: boolean;\r\n passwordInvalid: boolean;\r\n textingOptIns: ITextingOptIns;\r\n emailIsValid: boolean;\r\n emailVerified: boolean;\r\n emailSignature: string;\r\n tin: string;\r\n }\r\n\r\n\r\n class NextStepsLandingPage{\r\n static controllerId: string = \"nextStepsLandingPage\";\r\n static $inject: Array = [\"common\", \"config\", \"Restangular\", \"$location\"];\r\n log: (msg, data?, showToast?) => void;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n\r\n \r\n formCompleted: boolean = false;\r\n userProgress: any;\r\n loading: boolean;\r\n user: UserProfile;\r\n convertedRoles: Array;\r\n roles: Array;\r\n isEducatorRole: boolean;\r\n\r\n\r\n constructor(private common: ICommonFactory,\r\n private config: IConfig,\r\n private Restangular: Restangular.IService,\r\n private $location: ng.ILocationService\r\n ) { \r\n this.loading = true;\r\n this.log = common.logger.getLogFn(NextStepsLandingPage.controllerId);\r\n this.logError = common.logger.getLogFn(NextStepsLandingPage.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(NextStepsLandingPage.controllerId, \"success\");\r\n this.convertedRoles = [];\r\n this.roles = [{ value: 1, name: \"Middle School or Junior High School Student\" },\r\n { value: 2, name: \"High School Student\" },\r\n { value: 4, name: \"College or Postsecondary School Student\" },\r\n { value: 8, name: \"Adult\" },\r\n { value: 16, name: \"Parent\" },\r\n { value: 32, name: \"Education Professional\" },\r\n { value: 64, name: \"NC 529 Account Holder\" },\r\n { value: 128, name: \"Education Loan Borrower\" },\r\n ];\r\n \r\n this.common.authentication.authenticate(true).then(result => {\r\n if (result) {\r\n this.common.authentication.isLoggedIn().then(loggedIn => {\r\n if (loggedIn) {\r\n this.activate();\r\n }\r\n });\r\n }\r\n });\r\n \r\n }\r\n\r\n activate() {\r\n this.loading = true;\r\n var promises = [this.getProfile(), this.isTypeFormComplete(), this.getUserProgress()];\r\n this.common.activateController(promises, NextStepsLandingPage.controllerId)\r\n .then(() => {\r\n this.log(\"Activated Next Steps Landing Page View\");\r\n if (!this.isEducatorRole && this.formCompleted == false) {\r\n this.$location.path(\"/next-step\");\r\n }\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getUserProgress() {\r\n return this.Restangular.all(\"nextsteps\").one(\"progress\").get()\r\n .then(result => {\r\n this.userProgress = result;\r\n }, (reason) => {\r\n this.logError(\"An error occurred getting user's progress.\", reason, true);\r\n })\r\n }\r\n\r\n getProfile() {\r\n return this.Restangular.one(\"users/profile\").get()\r\n .then((result) => {\r\n if (result) {\r\n this.user = result;\r\n this.getRoles();\r\n this.isEducatorRole = _.some(this.convertedRoles, r => r.value == 32);\r\n }\r\n }, (reason) => {\r\n this.logError(\"An error occurred getting the user's profile.\", reason, true);\r\n });\r\n }\r\n\r\n getRoles = () => {\r\n var userRoles = this.bitToFormValue(this.user.role);\r\n for (let i = 0; i < userRoles.length; i++) {\r\n if (userRoles[i]) {\r\n this.convertedRoles.push(this.roles[i]);\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n bitToFormValue = (bit: number): any => {\r\n const bits = this.enumToBitValues();\r\n return bits.map((b) => (bit & b) === b);\r\n }\r\n\r\n enumToBitValues = (): any[] => {\r\n return Object.keys(Roles).map(Number).filter(Boolean)\r\n };\r\n \r\n\r\n isTypeFormComplete() {\r\n return this.Restangular.all(\"nextsteps\").one(\"formcomplete\").get()\r\n .then(result => {\r\n this.formCompleted = result;\r\n }, err => this.logError(\"An error occurred getting the Nest Steps form status.\", err, false));\r\n\r\n }\r\n\r\n }\r\n\r\n angular.module(\"app\").controller(NextStepsLandingPage.controllerId, NextStepsLandingPage);\r\n}","/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n enum Roles {\r\n MiddleSchool = 1 << 0, // 1\r\n HighSchool = 1 << 1, // 2\r\n College = 1 << 2, // 4\r\n AdultLearner = 1 << 3, // 8\r\n Parent = 1 << 4, // 16\r\n EducationProfessional = 1 << 5, // 32\r\n NC529AccountHolder = 1 << 6, // 64\r\n EducationLoanBorrower = 1 << 7 // 128\r\n };\r\n\r\n class UserProfile implements IUserProfile {\r\n addressVerified: boolean;\r\n associatedSchools: Array;\r\n comments: Array;\r\n customer: ICustomerViewModel;\r\n dateOfBirth: string;\r\n daytimePhone: string;\r\n email: string;\r\n enrollmentStatus: number;\r\n eveningPhone: string;\r\n firstName: string;\r\n fromServer: boolean;\r\n gender: number;\r\n graduationYear: number;\r\n id: number;\r\n lastName: string;\r\n mailAddress: IAddress;\r\n mailingPhone: string;\r\n middleName: string;\r\n nickname: string;\r\n permAddress: IAddress;\r\n phoneNumber: string;\r\n primaryConnectionCrmId: number;\r\n role: any;\r\n socialSecurityNumber: string;\r\n studentId: string;\r\n suffix: string;\r\n userContactInfo: any;\r\n username: string;\r\n mobilePhone: string;\r\n homePhone: string;\r\n workPhone: string;\r\n emailInvalid: boolean;\r\n addressInvalid: boolean;\r\n phoneNumberInvalid: boolean;\r\n passwordInvalid: boolean;\r\n textingOptIns: ITextingOptIns;\r\n emailIsValid: boolean;\r\n emailVerified: boolean;\r\n emailSignature: string;\r\n tin: string;\r\n }\r\n\r\n class NextStepsOverview {\r\n static controllerId: string = \"nextStepsOverview\";\r\n static $inject: Array = [\"common\", \"config\", \"Restangular\", \"$window\", \"$interval\", \"Idle\", \"$uibModal\", \"$location\"];\r\n log: (msg, data?, showToast?) => void;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n\r\n user: UserProfile;\r\n convertedRoles: Array;\r\n roles: Array;\r\n childWindows: Array = [];\r\n timer: any = 0;\r\n formCompleted: boolean = false;\r\n loading: boolean;\r\n umbracoUrl: string;\r\n isEducatorRole: boolean;\r\n isLoggedIn: boolean;\r\n\r\n constructor(\r\n private common: ICommonFactory,\r\n private config: IConfig,\r\n private Restangular: Restangular.IService,\r\n private $window: ng.IWindowService,\r\n private $interval: ng.IIntervalService,\r\n private Idle: any,\r\n private $uibModal: ng.ui.bootstrap.IModalService,\r\n private $location: ng.ILocationService\r\n ) {\r\n this.loading = true;\r\n this.log = common.logger.getLogFn(NextStepsOverview.controllerId);\r\n this.logError = common.logger.getLogFn(NextStepsOverview.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(NextStepsOverview.controllerId, \"success\");\r\n this.umbracoUrl = config.umbracoUrl;\r\n this.convertedRoles = [];\r\n this.roles = [{ value: 1, name: \"Middle School or Junior High School Student\" },\r\n { value: 2, name: \"High School Student\" },\r\n { value: 4, name: \"College or Postsecondary School Student\" },\r\n { value: 8, name: \"Adult\" },\r\n { value: 16, name: \"Parent\" },\r\n { value: 32, name: \"Education Professional\" },\r\n { value: 64, name: \"NC 529 Account Holder\" },\r\n { value: 128, name: \"Education Loan Borrower\" },\r\n ];\r\n\r\n this.activate();\r\n\r\n }\r\n\r\n activate() {\r\n this.loading = true;\r\n var promises = [];\r\n this.common.activateController(promises, NextStepsOverview.controllerId)\r\n .then(() => {\r\n this.log(\"Activated Next Steps Landing Page View\");\r\n this.common.authentication.isLoggedIn().then(loggedIn => {\r\n this.isLoggedIn = loggedIn;\r\n if (loggedIn) {\r\n this.getProfile();\r\n this.isTypeFormComplete().then(() => {\r\n this.loading = false;\r\n });\r\n\r\n } else {\r\n this.loading = false;\r\n }\r\n\r\n });\r\n });\r\n }\r\n\r\n getProfile() {\r\n return this.Restangular.one(\"users/profile\").get()\r\n .then((result) => {\r\n if (result) {\r\n this.user = result;\r\n this.getRoles();\r\n this.isEducatorRole = _.some(this.convertedRoles, r => r.value == 32);\r\n }\r\n }, (reason) => {\r\n this.logError(\"An error occurred getting the user's profile.\", reason, true);\r\n });\r\n }\r\n\r\n getRoles = () => {\r\n var userRoles = this.bitToFormValue(this.user.role);\r\n for (let i = 0; i < userRoles.length; i++) {\r\n if (userRoles[i]) {\r\n this.convertedRoles.push(this.roles[i]);\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n bitToFormValue = (bit: number): any => {\r\n const bits = this.enumToBitValues();\r\n return bits.map((b) => (bit & b) === b);\r\n }\r\n\r\n enumToBitValues = (): any[] => {\r\n return Object.keys(Roles).map(Number).filter(Boolean)\r\n };\r\n\r\n isTypeFormComplete() {\r\n return this.Restangular.all(\"nextsteps\").one(\"formcomplete\").get()\r\n .then(result => {\r\n this.formCompleted = result;\r\n }, err => this.logError(\"An error occurred getting the Nest Steps form status.\", err, false));\r\n }\r\n\r\n openTypeForm() {\r\n this.common.authentication.isLoggedIn().then(loggedIn => {\r\n if (loggedIn) {\r\n var isEducatorOrParent = _.some(this.convertedRoles, { value: Roles.EducationProfessional } as any)\r\n || _.some(this.convertedRoles, { value: Roles.Parent } as any);\r\n var isHighSchoolStudent = _.some(this.convertedRoles, { value: Roles.HighSchool } as any);\r\n var firstOfJuly = moment().month(6).startOf('month');\r\n var isJunior = moment().isBefore(firstOfJuly) && this.user.graduationYear == moment().year() + 1\r\n || moment().isAfter(firstOfJuly) && this.user.graduationYear == moment().year() + 2\r\n\r\n if (isEducatorOrParent || (isHighSchoolStudent && isJunior)) {\r\n var win = this.$window.open(`https://cfnc.typeform.com/to/${this.config.nextStepTypeFormId}?userId=${this.user.id}`, \"_blank\");\r\n this.addChildWindow(win);\r\n } else {\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/nextSteps/typeFormMessageModal.html',\r\n controller: \"confirmationModal\",\r\n size: 'md',\r\n resolve: {\r\n data: {\r\n title: \"\",\r\n content: \"\"\r\n }\r\n }\r\n });\r\n }\r\n } else {\r\n this.common.authentication.authenticate(true);\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n addChildWindow = (window) => {\r\n this.childWindows.push(window);\r\n if (this.timer == 0) {\r\n console.log(\"timer started\");\r\n this.Idle.unwatch();\r\n this.timer = this.$interval(this.checkWindow, 1000, 0, true);\r\n }\r\n };\r\n\r\n checkWindow = () => {\r\n for (var win = 0; win < this.childWindows.length; win++) {\r\n if (!this.childWindows[win]) {\r\n this.childWindows.splice(win, 1);\r\n }\r\n else if (this.childWindows[win].closed) {\r\n this.childWindows.splice(win, 1);\r\n this.isTypeFormComplete()\r\n .then(() => {\r\n if (this.formCompleted) {\r\n this.$location.path(\"/next-step/courses\")\r\n }\r\n\r\n });\r\n }\r\n }\r\n\r\n if (this.childWindows.length == 0) {\r\n this.$interval.cancel(this.timer);\r\n this.timer = 0;\r\n this.Idle.watch();\r\n }\r\n }\r\n }\r\n\r\n angular.module(\"app\").controller(NextStepsOverview.controllerId, NextStepsOverview);\r\n}","/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n enum Roles {\r\n MiddleSchool = 1 << 0, // 1\r\n HighSchool = 1 << 1, // 2\r\n College = 1 << 2, // 4\r\n AdultLearner = 1 << 3, // 8\r\n Parent = 1 << 4, // 16\r\n EducationProfessional = 1 << 5, // 32\r\n NC529AccountHolder = 1 << 6, // 64\r\n EducationLoanBorrower = 1 << 7 // 128\r\n };\r\n\r\n class UserProfile implements IUserProfile {\r\n addressVerified: boolean;\r\n associatedSchools: Array;\r\n comments: Array;\r\n customer: ICustomerViewModel;\r\n dateOfBirth: string;\r\n daytimePhone: string;\r\n email: string;\r\n enrollmentStatus: number;\r\n eveningPhone: string;\r\n firstName: string;\r\n fromServer: boolean;\r\n gender: number;\r\n graduationYear: number;\r\n id: number;\r\n lastName: string;\r\n mailAddress: IAddress;\r\n mailingPhone: string;\r\n middleName: string;\r\n nickname: string;\r\n permAddress: IAddress;\r\n phoneNumber: string;\r\n primaryConnectionCrmId: number;\r\n role: any;\r\n socialSecurityNumber: string;\r\n studentId: string;\r\n suffix: string;\r\n userContactInfo: any;\r\n username: string;\r\n mobilePhone: string;\r\n homePhone: string;\r\n workPhone: string;\r\n emailInvalid: boolean;\r\n addressInvalid: boolean;\r\n phoneNumberInvalid: boolean;\r\n passwordInvalid: boolean;\r\n textingOptIns: ITextingOptIns;\r\n emailIsValid: boolean;\r\n emailVerified: boolean;\r\n emailSignature: string;\r\n tin: string;\r\n }\r\n\r\n interface INextStepsPathway {\r\n log: (msg: string, data?: any, showToast?: boolean) => void;\r\n logError: (msg: string, data?: any, showToast?: boolean) => void;\r\n logSuccess: (msg: string, data?: any, showToast?: boolean) => void;\r\n currentStep: any;\r\n }\r\n\r\n class NextStepsPathway implements INextStepsPathway {\r\n static controllerId: string = \"collegePath\";\r\n static $inject: Array = [\"common\", \"config\", \"$location\", \"$routeParams\", \"Restangular\"];\r\n log: (msg, data?, showToast?) => void;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n currentStep: number = 1;\r\n umbracoUrl: string;\r\n pathway: IPathway;\r\n pathwayId: number = 0;\r\n steps = [];\r\n pwSteps: IPathwayStepDefinition[] = null;\r\n saving: boolean = false;\r\n loading: boolean = false;\r\n pathways = {\r\n college: 0,\r\n workforce: 1,\r\n military: 2\r\n };\r\n user: UserProfile;\r\n convertedRoles: Array;\r\n roles: Array;\r\n isEducatorRole: boolean;\r\n formCompleted: boolean = false;\r\n\r\n constructor(private common: ICommonFactory,\r\n private config: IConfig,\r\n private $location: ng.ILocationService,\r\n private $routeParams: ng.route.IRouteParamsService,\r\n private Restangular: Restangular.IService) {\r\n\r\n this.log = common.logger.getLogFn(NextStepsPathway.controllerId);\r\n this.logError = common.logger.getLogFn(NextStepsPathway.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(NextStepsPathway.controllerId, \"success\");\r\n this.umbracoUrl = config.umbracoUrl;\r\n this.pathwayId = this.pathways[this.$routeParams[\"pathway\"].toLowerCase()]\r\n this.convertedRoles = [];\r\n this.roles = [{ value: 1, name: \"Middle School or Junior High School Student\" },\r\n { value: 2, name: \"High School Student\" },\r\n { value: 4, name: \"College or Postsecondary School Student\" },\r\n { value: 8, name: \"Adult\" },\r\n { value: 16, name: \"Parent\" },\r\n { value: 32, name: \"Education Professional\" },\r\n { value: 64, name: \"NC 529 Account Holder\" },\r\n { value: 128, name: \"Education Loan Borrower\" },\r\n ];\r\n\r\n this.common.authentication.authenticate(true).then(result => {\r\n if (result) {\r\n this.common.authentication.isLoggedIn().then(loggedIn => {\r\n if (loggedIn) {\r\n this.activate();\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n activate() {\r\n this.loading = true;\r\n var promises = [this.getProfile(), this.isTypeFormComplete(), this.getSteps(), this.getPathway()];\r\n this.common.activateController(promises, NextStepsPathway.controllerId)\r\n .then(() => {\r\n this.log(\"Activated Next Steps View\");\r\n\r\n if (!this.isEducatorRole && this.formCompleted == false) {\r\n this.$location.path(\"/next-step\");\r\n }\r\n\r\n for (var step of this.pathway.steps) {\r\n step.responses.sort((a, b) => a.question - b.question);\r\n\r\n var pwStep = this.pwSteps.filter(s => s.stepNumber == step.stepNumber)[0];\r\n\r\n pwStep.complete = step.dateCompleted != null;\r\n\r\n pwStep.questions.forEach(q => {\r\n var response = step.responses.filter(r => r.question == q.order)[0];\r\n\r\n if (response != null) {\r\n\r\n if (q.type == 'singleselect') {\r\n q.choices.forEach(c => {\r\n c.selected = c.value.toString() == response.answer\r\n if (c.selected) {\r\n q.selected = c.value;\r\n }\r\n });\r\n };\r\n\r\n if (q.type == 'multiselect') {\r\n var values = response.answer.split(\",\");\r\n q.choices.forEach(c => {\r\n c.selected = values.indexOf(c.value.toString()) > -1 ? c.value : false;\r\n\r\n });\r\n }\r\n\r\n if (q.type == 'shortanswer') {\r\n var values = response.answer.split(\",\");\r\n q.choices.forEach((c, i: number) => {\r\n c.value = values[i];\r\n });\r\n }\r\n }\r\n\r\n if (q.type == 'rating') {\r\n q.choices.forEach(c => {\r\n var response = step.responses.filter(r => r.question == c.order)[0];\r\n c.selected = response.answer;\r\n });\r\n }\r\n });\r\n\r\n\r\n\r\n }\r\n this.currentStep = Math.max(1, Math.min(this.pwSteps.length, this.getMaxCompletedStep() + 1));\r\n\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n getPathway() {\r\n return this.Restangular\r\n .one(\"nextSteps/pathways\", this.pathwayId)\r\n .get()\r\n .then((result) => {\r\n if (result) {\r\n this.pathway = result;\r\n }\r\n }, (reason) => {\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n\r\n\r\n gotoStep(stepNumber: number) {\r\n if (stepNumber <= this.getMaxCompletedStep() + 1 || _.some(this.convertedRoles, r => r.value == 32)) {\r\n this.currentStep = stepNumber;\r\n if (stepNumber == this.pwSteps.length) {\r\n this.pathway.dateCompleted = new Date();\r\n }\r\n }\r\n }\r\n\r\n saveStep(stepNumber: number) {\r\n this.saving = true;\r\n var step = this.pwSteps.filter(s => s.stepNumber == stepNumber)[0];\r\n var data = [];\r\n step.questions.forEach(q => {\r\n if (q.type == 'singleselect') {\r\n data.push({\r\n step: step.stepNumber,\r\n question: q.order,\r\n answer: q.selected\r\n });\r\n }\r\n\r\n if (q.type == 'multiselect') {\r\n var answer = [];\r\n q.choices\r\n .filter(c => c.selected != false)\r\n .forEach(c => {\r\n answer.push(c.selected);\r\n });\r\n\r\n data.push({\r\n step: step.stepNumber,\r\n question: q.order,\r\n answer: answer.join(\",\")\r\n });\r\n }\r\n\r\n if (q.type == 'rating') {\r\n q.choices.forEach(c => {\r\n data.push({\r\n step: step.stepNumber,\r\n question: c.order,\r\n answer: c.selected\r\n })\r\n });\r\n }\r\n\r\n if (q.type == 'shortanswer') {\r\n var answer = [];\r\n q.choices.forEach(c => {\r\n answer.push(c.value);\r\n });\r\n\r\n data.push({\r\n step: step.stepNumber,\r\n question: q.order,\r\n answer: answer.join(\",\")\r\n });\r\n }\r\n });\r\n\r\n this.Restangular\r\n .all(\"nextsteps\")\r\n .one(\"pathways\", this.pathwayId)\r\n .one(\"steps\")\r\n .post(stepNumber, data)\r\n .then(() => {\r\n step.complete = true;\r\n\r\n this.saving = false;\r\n }, err => this.logError(\"An error occurred saving your answers.\", err, true),\r\n () => { this.saving = false; }\r\n );\r\n\r\n\r\n }\r\n\r\n\r\n choiceStatus(stepNumber, questionNumber, choiceNumber) {\r\n var step = this.pwSteps.filter(s => s.stepNumber == stepNumber)[0];\r\n var question = step.questions.filter(q => q.order == questionNumber)[0];\r\n var choice = question.choices.filter(c => c.order == choiceNumber)[0];\r\n\r\n if (question.type == 'singleselect') {\r\n if (question.selected == choice.value && choice.isCorrect) {\r\n return \"correct\";\r\n }\r\n if (question.selected != choice.value && choice.isCorrect) {\r\n return \"missed\";\r\n }\r\n if (question.selected == choice.value && !choice.isCorrect) {\r\n return \"incorrect\";\r\n }\r\n }\r\n\r\n if (question.type == 'multiselect') {\r\n if (choice.selected && choice.isCorrect) {\r\n return \"correct\";\r\n }\r\n if (!choice.selected && choice.isCorrect) {\r\n return \"missed\";\r\n }\r\n if (choice.selected && !choice.isCorrect) {\r\n return \"incorrect\";\r\n }\r\n }\r\n }\r\n\r\n multiSelectIsValid(stepNumber, questionNumber) {\r\n var step = this.pwSteps.filter(s => s.stepNumber == stepNumber)[0];\r\n var question = step.questions.filter(q => q.order == questionNumber)[0];\r\n\r\n\r\n if (question.type == 'multiselect') {\r\n var arr = question.choices.filter(c => c.selected);\r\n return arr.length > 0;\r\n }\r\n }\r\n\r\n isStepValid(form, step) {\r\n if (step && step.isValid) {\r\n return step.isValid({ form, step });\r\n }\r\n\r\n return form.$valid\r\n }\r\n\r\n getMaxCompletedStep() {\r\n var pwStep = this.pwSteps\r\n .filter(step => step.complete)\r\n .sort((a, b) => b.stepNumber - a.stepNumber)[0];\r\n\r\n if (pwStep != null) {\r\n return pwStep.stepNumber;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n getSteps() {\r\n return this.Restangular\r\n .all(\"nextsteps\")\r\n .one(\"pathwaydefinitions\", this.pathwayId)\r\n .get()\r\n .then((response) => {\r\n this.pwSteps = JSON.parse(response.pathwayStepsJson);\r\n },\r\n err => this.logError(\"An error occurred geting the pathway information.\", err, true)\r\n )\r\n }\r\n\r\n getProfile() {\r\n return this.Restangular.one(\"users/profile\").get()\r\n .then((result) => {\r\n if (result) {\r\n this.user = result;\r\n this.getRoles();\r\n this.isEducatorRole = _.some(this.convertedRoles, r => r.value == 32);\r\n }\r\n }, (reason) => {\r\n this.logError(\"An error occurred getting the user's profile.\", reason, true);\r\n });\r\n }\r\n\r\n getRoles = () => {\r\n var userRoles = this.bitToFormValue(this.user.role);\r\n for (let i = 0; i < userRoles.length; i++) {\r\n if (userRoles[i]) {\r\n this.convertedRoles.push(this.roles[i]);\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n bitToFormValue = (bit: number): any => {\r\n const bits = this.enumToBitValues();\r\n return bits.map((b) => (bit & b) === b);\r\n }\r\n\r\n enumToBitValues = (): any[] => {\r\n return Object.keys(Roles).map(Number).filter(Boolean)\r\n };\r\n\r\n isTypeFormComplete() {\r\n return this.Restangular.all(\"nextsteps\").one(\"formcomplete\").get()\r\n .then(result => {\r\n this.formCompleted = result;\r\n }, err => this.logError(\"An error occurred getting the Nest Steps form status.\", err, false));\r\n }\r\n\r\n }\r\n\r\n angular.module(\"app\").controller(NextStepsPathway.controllerId, NextStepsPathway);\r\n}\r\n\r\n","/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface ISubmitOrder { }\r\n\r\n class Address implements IAddress {\r\n addressType: string;\r\n firstName: string;\r\n lastName: string;\r\n street: string;\r\n street2: string;\r\n city: string;\r\n state: string;\r\n postalCode: string;\r\n country: string;\r\n county: string;\r\n isVerified: boolean;\r\n resultCodes: string;\r\n userOverride: boolean;\r\n signature: string;\r\n key: string;\r\n }\r\n\r\n interface IOrderItem {\r\n itemName: string;\r\n quantity: string;\r\n }\r\n\r\n class Order {\r\n firstName: string;\r\n lastName: string;\r\n organizationName: string;\r\n title: string;\r\n emailAddress: string;\r\n phoneNumber: string;\r\n mailingAddress: IAddress;\r\n items: IOrderItem[];\r\n recaptchaToken: string;\r\n }\r\n\r\n class SubmitOrder implements ISubmitOrder {\r\n\r\n static controllerId: string = \"submitOrder\";\r\n static $inject: Array = [\"common\", \"Restangular\", \"$location\", \"vcRecaptchaService\"];\r\n log: (msg, data?, showToast?) => void;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n order: Order;\r\n complete: boolean;\r\n products: string[];\r\n newItem: IOrderItem;\r\n referenceCode: string;\r\n working: boolean;\r\n widgetId: string;\r\n\r\n constructor(private common: ICommonFactory, private Restangular: Restangular.IService, private $location: ng.ILocationService, private vcRecaptchaService) {\r\n this.log = common.logger.getLogFn(SubmitOrder.controllerId);\r\n this.logError = common.logger.getLogFn(SubmitOrder.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(SubmitOrder.controllerId, \"success\");\r\n\r\n this.activate();\r\n this.initializeOrder();\r\n\r\n\r\n }\r\n\r\n activate() {\r\n var promises = [this.getProducts()];\r\n this.common.activateController(promises, SubmitOrder.controllerId)\r\n .then(() => {\r\n this.log(\"Activated Orders View\");\r\n });\r\n }\r\n\r\n getProducts() {\r\n return this.Restangular.all(\"orders/products\").getList().then(\r\n (result) => {\r\n this.products = result;\r\n });\r\n }\r\n\r\n submit() {\r\n this.working = true;\r\n if (this.order.recaptchaToken == null || this.order.recaptchaToken == \"\") {\r\n this.vcRecaptchaService.execute(this.widgetId);\r\n } else {\r\n this.order.items = _.filter(this.order.items, (x) => x.itemName && x.quantity);\r\n\r\n this.Restangular.all(\"orders/submit\").post(this.order).then((response) => {\r\n this.complete = true;\r\n this.referenceCode = response;\r\n this.initializeOrder();\r\n }, (reason) => {\r\n this.logError(\"An error occurred submitting the order\", reason.data, true);\r\n }).finally(() => {\r\n this.order.recaptchaToken = null;\r\n this.working = false;\r\n });\r\n }\r\n }\r\n\r\n addItem() {\r\n var last = this.order.items[this.order.items.length - 1];\r\n if (last !== null && last.itemName != \"\") {\r\n this.order.items.push({ itemName: \"\", quantity: null });\r\n }\r\n }\r\n\r\n initializeOrder() {\r\n this.order = new Order();\r\n this.order.mailingAddress = new Address();\r\n this.order.mailingAddress.state = \"NC\";\r\n this.order.mailingAddress.country = \"US\";\r\n this.order.items = [{ itemName: \"\", quantity: null }];\r\n }\r\n\r\n removeItem(index) {\r\n this.order.items.splice(index, 1);\r\n }\r\n\r\n\r\n recaptchaCreated = (widgetId): void => {\r\n this.widgetId = widgetId;\r\n\r\n };\r\n\r\n recaptchaExpired = (): void => {\r\n this.vcRecaptchaService.reload(this.widgetId);\r\n\r\n };\r\n\r\n recaptchaSuccess = (response): void => {\r\n this.order.recaptchaToken = response;\r\n this.submit();\r\n };\r\n\r\n }\r\n\r\n angular.module(\"app\").controller(SubmitOrder.controllerId, SubmitOrder);\r\n}","/// \r\n/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IProfileScope extends ng.IScope {\r\n vm: Profile;\r\n }\r\n\r\n interface IProfile {\r\n\r\n }\r\n\r\n enum Roles {\r\n MiddleSchool = 1 << 0, // 1\r\n HighSchool = 1 << 1, // 2\r\n College = 1 << 2, // 4\r\n AdultLearner = 1 << 3, // 8\r\n Parent = 1 << 4, // 16\r\n EducationProfessional = 1 << 5, // 32\r\n NC529AccountHolder = 1 << 6, // 64\r\n EducationLoanBorrower = 1 << 7 // 128\r\n };\r\n\r\n class Address implements IAddress {\r\n addressType: string;\r\n firstName: string;\r\n lastName: string;\r\n street: string;\r\n street2: string;\r\n city: string;\r\n state: string;\r\n postalCode: string;\r\n country: string;\r\n county: string;\r\n isVerified: boolean;\r\n resultCodes: string;\r\n userOverride: boolean;\r\n signature: string;\r\n key: string;\r\n }\r\n\r\n class VerifyAddressResults implements IVerifyAddressResultsViewModel {\r\n firstName: string;\r\n lastName: string;\r\n action: string;\r\n providedAddressHasErrors: boolean;\r\n key: string;\r\n providedAddress: Address;\r\n suggestedAddress: Address;\r\n\r\n }\r\n\r\n class UserProfile implements IUserProfile {\r\n addressVerified: boolean;\r\n associatedSchools: Array;\r\n comments: Array;\r\n customer: ICustomerViewModel;\r\n dateOfBirth: string;\r\n daytimePhone: string;\r\n email: string;\r\n enrollmentStatus: number;\r\n eveningPhone: string;\r\n firstName: string;\r\n fromServer: boolean;\r\n gender: number;\r\n graduationYear: number;\r\n id: number;\r\n lastName: string;\r\n mailAddress: IAddress;\r\n mailingPhone: string;\r\n middleName: string;\r\n nickname: string;\r\n permAddress: IAddress;\r\n phoneNumber: string;\r\n primaryConnectionCrmId: number;\r\n role: any;\r\n socialSecurityNumber: string;\r\n studentId: string;\r\n suffix: string;\r\n userContactInfo: any;\r\n username: string;\r\n mobilePhone: string;\r\n homePhone: string;\r\n workPhone: string;\r\n emailInvalid: boolean;\r\n addressInvalid: boolean;\r\n phoneNumberInvalid: boolean;\r\n passwordInvalid: boolean;\r\n textingOptIns: ITextingOptIns;\r\n emailIsValid: boolean;\r\n emailVerified: boolean;\r\n emailSignature: string;\r\n tin: string;\r\n }\r\n\r\n class Profile implements IProfile {\r\n static controllerId: string = \"profile\";\r\n static $inject: Array = [\"$scope\", \"$location\", \"$window\", \"common\", \"Restangular\", \"$timeout\", \"addressService\", \"config\", \"$uibModal\"];\r\n log: (msg, data?, showToast?) => void;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n maxDate = new Date();\r\n gradYears: any;\r\n editingRole: boolean = false;\r\n editingDetails: boolean = false;\r\n savingDetails: boolean = false;\r\n savingDemographics: boolean = false;\r\n savingParentGuardian: boolean = false;\r\n editingDemographics: boolean = false;\r\n newRole: string;\r\n addressError: boolean = false;\r\n user: UserProfile;\r\n originalUser: any;\r\n selectedGradYear: any = { value: 0 };\r\n mailingSameAsPerm: boolean;\r\n melissaDataResponse: any;\r\n password: any = { oldPassword: \"\", newPassword: \"\", confirmPassword: \"\" };\r\n showChangePassword: boolean;\r\n demographics: any;\r\n originalDemographics: any;\r\n countries: Array;\r\n parentGuardian: any;\r\n editingParentGuardian: boolean;\r\n originalParentGuardian: any;\r\n userSecurityQuestion: string;\r\n userSecurityAnswer: string;\r\n originalUserSecurityQuestion: string;\r\n showChangeSecurityQuestion: boolean = false;\r\n gender: string;\r\n primaryConnection: any;\r\n editingPrimaryConnection: boolean = false;\r\n originalEmail: string;\r\n loading: boolean;\r\n noSchoolAssociated: ICustomerViewModel;\r\n ncCounties: Array;\r\n newPhoneNumbersEnabled: boolean;\r\n validSSN: boolean;\r\n invalidSSNs: any;\r\n maskedSSN: any;\r\n maskedConfirmSSN: any;\r\n umbracoUrl: string;\r\n authUrl: string;\r\n slickConfig: any;\r\n roles: Array;\r\n roleValues: Array;\r\n convertedRoles: Array;\r\n newSSN: any;\r\n displaySSN: any;\r\n editSSN: boolean;\r\n\r\n constructor(private $scope: IProfileScope,\r\n private $location: ng.ILocationService,\r\n private $window: ng.IWindowService,\r\n private common: ICommonFactory,\r\n private Restangular: Restangular.IService,\r\n private $timeout: ng.ITimeoutService,\r\n private addressService: IAddressService,\r\n private config: IConfig,\r\n private $uibModal: ng.ui.bootstrap.IModalService) {\r\n\r\n this.log = common.logger.getLogFn(Profile.controllerId);\r\n this.logError = common.logger.getLogFn(Profile.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(Profile.controllerId, \"success\");\r\n this.noSchoolAssociated = {\r\n id: 424273588,\r\n name: \"No School Associated\",\r\n crmId: 218919,\r\n ceeb_code: null\r\n };\r\n\r\n this.convertedRoles = [];\r\n this.roles = [{ value: 1, name: \"Middle School or Junior High School Student\" },\r\n { value: 2, name: \"High School Student\" },\r\n { value: 4, name: \"College or Postsecondary School Student\" },\r\n { value: 8, name: \"Adult\" },\r\n { value: 16, name: \"Parent\" },\r\n { value: 32, name: \"Education Professional\" },\r\n { value: 64, name: \"NC 529 Account Holder\" },\r\n { value: 128, name: \"Education Loan Borrower\" },\r\n ];\r\n\r\n this.ncCounties = this.addressService.ncCountyList;\r\n this.newPhoneNumbersEnabled = this.config.newPhoneNumbersEnabled == \"npne-true\";\r\n\r\n this.umbracoUrl = this.config.umbracoUrl;\r\n this.authUrl = this.config.authHost\r\n this.slickConfig = {\r\n slidesToShow: 3,\r\n dots: false,\r\n arrows: false,\r\n centerMode: true,\r\n infinite: false,\r\n variableWidth: true,\r\n focusOnSelect: true\r\n };\r\n\r\n this.common.authentication.authenticate(true).then(result => {\r\n if (result) {\r\n this.activate();\r\n }\r\n });\r\n this.editSSN = false;\r\n this.newSSN = '';\r\n }\r\n\r\n activate() {\r\n this.loading = true;\r\n var promises = [this.getProfile(), this.getDemographics(), this.getParentGuardianInfo()];\r\n this.common.activateController(promises, Profile.controllerId)\r\n .then(() => {\r\n this.log(\"Activated Profile View\");\r\n this.loading = false;\r\n this.validSSN = true;\r\n\r\n this.invalidSSNs = [\r\n \"000000000\",\r\n \"111111111\",\r\n \"222222222\",\r\n \"333333333\",\r\n \"444444444\",\r\n \"555555555\",\r\n \"666666666\",\r\n \"777777777\",\r\n \"888888888\",\r\n \"999999999\",\r\n \"002281852\",\r\n \"042103580\",\r\n \"062360749\",\r\n \"078051120\",\r\n \"095073645\",\r\n \"123456789\",\r\n \"128036045\",\r\n \"135016629\",\r\n \"141186941\",\r\n \"165167999\",\r\n \"165187999\",\r\n \"165207999\",\r\n \"165227999\",\r\n \"165247999\",\r\n \"189092294\",\r\n \"212097694\",\r\n \"219099998\",\r\n \"306302348\",\r\n \"308125070\",\r\n \"468288779\",\r\n \"549241889\",\r\n \"987654320\"\r\n ];\r\n });\r\n\r\n\r\n var config = new Config();\r\n this.getSecurityQuestion()\r\n\r\n }\r\n\r\n getProfile = () => {\r\n return this.Restangular.one(\"users/profile\").get()\r\n .then((result) => {\r\n if (result) {\r\n this.user = result;\r\n this.displaySSN = this.user.socialSecurityNumber;\r\n this.originalUser = _.cloneDeep(this.user);\r\n this.gender = this.user.gender.toString();\r\n this.user.customer = this.user.customer == null ? this.noSchoolAssociated : this.user.customer;\r\n this.primaryConnection = this.user.customer;\r\n this.selectedGradYear.value = this.user.graduationYear;\r\n this.gradYears = this.createGraduationYears();\r\n this.originalEmail = this.user.email;\r\n this.user.permAddress = this.user.permAddress || new Address();\r\n this.user.mailAddress = this.user.mailAddress || new Address();\r\n this.user.permAddress.userOverride = false;\r\n this.user.mailAddress.userOverride = false;\r\n this.getRoles();\r\n this.maskSSN();\r\n }\r\n }, (reason) => {\r\n this.logError(reason, reason, true);\r\n });\r\n };\r\n\r\n getDemographics = () => {\r\n return this.Restangular.one(\"users/demographics\").get()\r\n .then((result) => {\r\n this.demographics = result || {};\r\n if (result) {\r\n this.demographics.disabilities = this.demographics.disabilities ? this.demographics.disabilities.split(\",\") : [];\r\n this.demographics.militaryServices = this.demographics.militaryServices ? this.demographics.militaryServices.split(\",\") : [];\r\n this.demographics.nationalities = this.demographics.nationalities ? this.demographics.nationalities.split(\",\") : [];\r\n this.demographics.ethnicities = this.demographics.ethnicities ? this.demographics.ethnicities.split(\",\") : [];\r\n this.originalDemographics = _.cloneDeep(this.demographics);\r\n }\r\n else {\r\n this.demographics.disabilities = [];\r\n this.demographics.militaryServices = [];\r\n this.demographics.nationalities = [];\r\n this.demographics.ethnicities = [];\r\n }\r\n }, (reason) => {\r\n this.logError(reason, reason, true);\r\n });\r\n };\r\n\r\n getParentGuardianInfo = () => {\r\n return this.Restangular.one(\"users/parentguardianinfo\").get()\r\n .then((result) => {\r\n this.parentGuardian = result;\r\n this.originalParentGuardian = _.cloneDeep(this.parentGuardian);\r\n }, (reason) => {\r\n this.logError(reason, reason, true);\r\n });\r\n };\r\n\r\n\r\n createGraduationYears = (): any[] => {\r\n var startYear: number = moment().year();\r\n if (moment().month() > 5) {\r\n startYear += 1;\r\n }\r\n var gradYears = [];\r\n for (var i = 0; i < 10; i++) {\r\n var grade = 12 - i;\r\n var year = startYear + i;\r\n var displayText = \"\";\r\n if ((this.user.role & Roles.College) !== Roles.College) {\r\n displayText = (grade !== 3 ? (grade !== 8 && grade !== 11 ? \" - You are a \" + grade + \"th grade student\" : \" - You are an \" + grade + \"th grade student\") : \" - You are a \" + grade + \"rd grade student\");\r\n\r\n }\r\n var gradYear = {\r\n display: year + displayText,\r\n value: year\r\n }\r\n\r\n gradYears.push(gradYear);\r\n\r\n }\r\n\r\n return gradYears\r\n };\r\n\r\n editRole = (): void => {\r\n if (this.editingDetails) {\r\n this.cancelEditDetails();\r\n }\r\n this.showChangePassword = false;\r\n this.password = {};\r\n this.editingRole = true;\r\n this.newRole = this.user.role;\r\n };\r\n\r\n saveRole = (): void => {\r\n this.editingRole = false;\r\n this.user.role = parseInt(this.newRole);\r\n this.user.addressVerified = true;\r\n\r\n var tempUser = angular.copy(this.user);\r\n\r\n tempUser.mailAddress = null;\r\n tempUser.permAddress = null;\r\n\r\n this.Restangular.all(\"users/profile/save\").customPUT(tempUser)\r\n .then((result) => {\r\n this.originalUser = this.user;\r\n this.user.addressVerified = false;\r\n this.log(\"Role Updated\");\r\n\r\n }, (reason) => {\r\n switch (reason.status) {\r\n case 400:\r\n if (reason.data.modelState) {\r\n for (var key in reason.data.modelState) {\r\n reason.data.modelState[key].forEach((s) => {\r\n this.logError(s, s, true);\r\n this.savingDetails = false;\r\n });\r\n };\r\n }\r\n break;\r\n case 500:\r\n this.logError(reason.data, reason.data, true);\r\n this.savingDetails = false;\r\n break;\r\n }\r\n\r\n });\r\n this.gradYears = this.createGraduationYears();\r\n };\r\n\r\n editDetails = (): void => {\r\n this.showChangePassword = false;\r\n this.showChangeSecurityQuestion = false;\r\n this.password = {};\r\n this.userSecurityAnswer = \"\";\r\n this.userSecurityQuestion = this.originalUserSecurityQuestion;\r\n this.editingDetails = true;\r\n this.editingRole = false;\r\n if (this.user.socialSecurityNumber != '' && this.user.socialSecurityNumber != null)\r\n this.validateSSN(this.user.socialSecurityNumber);\r\n this.originalUser = _.cloneDeep(this.user);\r\n\r\n };\r\n\r\n cancelEditDetails = (): void => {\r\n this.editingDetails = false;\r\n this.validSSN = true;\r\n this.user = _.cloneDeep(this.originalUser);\r\n };\r\n\r\n\r\n editDemographics = (): void => {\r\n this.editingDemographics = true;\r\n\r\n };\r\n\r\n saveDemographics = (): void => {\r\n var model = _.cloneDeep(this.demographics);\r\n\r\n model.disabilities = this.demographics.disabilities.join(\",\");\r\n model.militaryServices = this.demographics.militaryServices.join(\",\");\r\n model.nationalities = this.demographics.nationalities.join(\",\");\r\n model.ethnicities = this.demographics.ethnicities.join(\",\");\r\n this.savingDemographics = true;\r\n\r\n this.Restangular.one(\"/users/demographics\").customPUT(model)\r\n .then((result) => {\r\n this.editingDemographics = false;\r\n this.logSuccess(\"Your profile has been updated.\", result, true);\r\n }, (reason) => {\r\n this.logError(reason, reason, true);\r\n })\r\n .finally(() => {\r\n this.savingDemographics = false;\r\n });\r\n\r\n };\r\n\r\n cancelEditDemographics = (): void => {\r\n this.demographics = _.cloneDeep(this.originalDemographics);\r\n };\r\n\r\n editParentGuardian = (): void => {\r\n this.editingParentGuardian = true;\r\n };\r\n\r\n saveParentGuardian = (): void => {\r\n this.savingParentGuardian = true;\r\n this.Restangular.one(\"/users/parentGuardianInfo\").customPUT(this.parentGuardian)\r\n .then((result) => {\r\n this.editingParentGuardian = false;\r\n this.logSuccess(\"Your profile has been updated.\", result, true);\r\n }, (reason) => {\r\n this.logError(reason, reason, true);\r\n }).finally(() => {\r\n this.savingParentGuardian = false;\r\n });\r\n };\r\n\r\n cancelEditParentGuardian = (): void => {\r\n this.parentGuardian = _.cloneDeep(this.originalParentGuardian);\r\n };\r\n\r\n updateSSN = (): void => {\r\n this.user.socialSecurityNumber = this.newSSN;\r\n this.displaySSN = this.newSSN;\r\n this.maskSSN();\r\n }\r\n\r\n maskSSN = (): void => {\r\n if (this.displaySSN != null && this.displaySSN != '') {\r\n if (this.displaySSN.contains('-')) {\r\n var parts = this.displaySSN.split('-');\r\n this.displaySSN = 'XXX-XX-' + parts[2];\r\n }\r\n else {\r\n var final = this.displaySSN.substring(5);\r\n this.displaySSN = 'XXXXX' + final;\r\n }\r\n this.editSSN = false;\r\n }\r\n }\r\n\r\n saveDetails = (): void => {\r\n this.user.graduationYear = this.selectedGradYear.value;\r\n this.user.role = parseInt(this.user.role)\r\n this.user.gender = parseInt(this.gender);\r\n this.savingDetails = true;\r\n this.user.permAddress.isVerified = false;\r\n this.user.mailAddress.isVerified = false;\r\n\r\n if (this.mailingSameAsPerm) {\r\n this.copyPermToMailing();\r\n }\r\n\r\n if (!this.user.addressVerified) {\r\n var permAddress = new Address();\r\n permAddress.firstName = this.user.firstName;\r\n permAddress.lastName = this.user.lastName;\r\n permAddress.street = this.user.permAddress.street;\r\n permAddress.street2 = null;\r\n permAddress.city = this.user.permAddress.city;\r\n permAddress.state = this.user.permAddress.state;\r\n permAddress.postalCode = this.user.permAddress.postalCode;\r\n permAddress.country = this.user.permAddress.country;\r\n permAddress.county = this.user.permAddress.county;\r\n permAddress.key = \"permanent\";\r\n\r\n\r\n var mailingAddress = new Address();\r\n mailingAddress.firstName = this.user.firstName\r\n mailingAddress.lastName = this.user.lastName;\r\n mailingAddress.street = this.user.mailAddress.street;\r\n mailingAddress.street2 = null;\r\n mailingAddress.city = this.user.mailAddress.city;\r\n mailingAddress.state = this.user.mailAddress.state;\r\n mailingAddress.postalCode = this.user.mailAddress.postalCode;\r\n mailingAddress.country = this.user.mailAddress.country;\r\n mailingAddress.county = this.user.mailAddress.county;\r\n mailingAddress.key = \"mailing\";\r\n\r\n this.addressService.validate([permAddress, mailingAddress])\r\n .then((result) => {\r\n result.forEach((selection) => {\r\n if (selection.key == \"permanent\") {\r\n this.user.permAddress.city = selection.city;\r\n this.user.permAddress.postalCode = selection.postalCode;\r\n this.user.permAddress.state = selection.state;\r\n this.user.permAddress.street = selection.street;\r\n this.user.permAddress.street2 = selection.street2;\r\n this.user.permAddress.isVerified = selection.isVerified;\r\n this.user.permAddress.userOverride = selection.userOverride;\r\n this.user.permAddress.resultCodes = selection.resultCodes;\r\n this.user.permAddress.signature = selection.signature;\r\n this.user.permAddress.addressType = selection.addressType;\r\n this.user.permAddress.country = selection.country;\r\n this.user.permAddress.county = selection.county;\r\n }\r\n\r\n if (selection.key == \"mailing\") {\r\n this.user.mailAddress.city = selection.city;\r\n this.user.mailAddress.postalCode = selection.postalCode;\r\n this.user.mailAddress.state = selection.state;\r\n this.user.mailAddress.street = selection.street;\r\n this.user.mailAddress.street2 = selection.street2;\r\n this.user.mailAddress.isVerified = selection.isVerified;\r\n this.user.mailAddress.userOverride = selection.userOverride;\r\n this.user.mailAddress.resultCodes = selection.resultCodes;\r\n this.user.mailAddress.signature = selection.signature;\r\n this.user.mailAddress.addressType = selection.addressType;\r\n this.user.mailAddress.country = selection.country;\r\n this.user.mailAddress.county = selection.county;\r\n }\r\n });\r\n\r\n this.user.addressVerified = true;\r\n this.updateUser();\r\n\r\n }, (reason) => {\r\n reason.addresses.forEach((selection) => {\r\n if (selection.key == \"permanent\") {\r\n this.user.permAddress.city = selection.city;\r\n this.user.permAddress.postalCode = selection.postalCode;\r\n this.user.permAddress.state = selection.state;\r\n this.user.permAddress.street = selection.street;\r\n this.user.permAddress.street2 = selection.street2;\r\n this.user.permAddress.signature = selection.signature;\r\n this.user.permAddress.addressType = selection.addressType;\r\n }\r\n\r\n if (selection.key == \"mailing\") {\r\n this.user.mailAddress.city = selection.city;\r\n this.user.mailAddress.postalCode = selection.postalCode;\r\n this.user.mailAddress.state = selection.state;\r\n this.user.mailAddress.street = selection.street;\r\n this.user.mailAddress.street2 = selection.street2;\r\n this.user.mailAddress.signature = selection.signature;\r\n this.user.mailAddress.addressType = selection.addressType;\r\n }\r\n });\r\n this.savingDetails = false;\r\n });\r\n } else {\r\n this.updateUser();\r\n\r\n }\r\n }\r\n\r\n updateUser = () => {\r\n this.user.role = this.formValueToBit();\r\n if (this.editSSN)\r\n this.updateSSN();\r\n this.Restangular.all(\"users/profile/save\").customPUT(this.user)\r\n .then((result) => {\r\n this.user.dateOfBirth = moment.parseZone(new Date(this.user.dateOfBirth).toUTCString()).format('MMMM DD, YYYY');\r\n this.editingDetails = false;\r\n this.originalUser = this.user;\r\n this.user.addressVerified = false;\r\n this.log(\"User Updated\");\r\n this.savingDetails = false;\r\n this.logSuccess(\"Your profile has been updated.\", result, true);\r\n }, (reason) => {\r\n switch (reason.status) {\r\n case 400:\r\n if (reason.data.modelState) {\r\n for (var key in reason.data.modelState) {\r\n reason.data.modelState[key].forEach((s) => {\r\n this.logError(s, s, true);\r\n this.savingDetails = false;\r\n });\r\n };\r\n }\r\n break;\r\n case 500:\r\n this.logError(reason, reason.data, true);\r\n this.savingDetails = false;\r\n break;\r\n }\r\n\r\n this.savingDetails = false;\r\n })\r\n };\r\n\r\n\r\n changeSchool = (selectedSchool, oldPrimaryConnection?) => {\r\n oldPrimaryConnection = oldPrimaryConnection != null ? oldPrimaryConnection : _.cloneDeep(this.user.customer);\r\n this.Restangular.one(\"users/primaryConnection/save\").customPUT(selectedSchool)\r\n .then((result) => {\r\n this.user.primaryConnectionCrmId = selectedSchool.crmId;\r\n this.user.customer = selectedSchool;\r\n this.primaryConnection = selectedSchool;\r\n if (selectedSchool.crmId) {\r\n this.deleteConnection(selectedSchool);\r\n }\r\n if (oldPrimaryConnection) {\r\n this.addConnection(oldPrimaryConnection);\r\n }\r\n }, (reason) => {\r\n this.logError(\"An error occurred changing your primary connection. Please try again.\", reason, true);\r\n });\r\n\r\n };\r\n\r\n addConnection = (selectedSchool) => {\r\n var result = _.find(this.user.associatedSchools, (a: any) => {\r\n return a.crmId == selectedSchool.crmId;\r\n });\r\n\r\n if (!result && selectedSchool.crmId && selectedSchool.crmId != this.user.primaryConnectionCrmId) {\r\n this.Restangular.one(\"users/associatedSchools/add\").customPUT(selectedSchool)\r\n .then((result) => {\r\n this.user.associatedSchools.push(selectedSchool);\r\n }, (reason) => {\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n };\r\n\r\n deleteConnection = (school) => {\r\n this.Restangular.one(\"users/associatedSchools\").customDELETE(\"delete\", { crmId: school.crmId })\r\n .then((result) => {\r\n _.remove(this.user.associatedSchools, (a: any) => {\r\n return a.crmId == school.crmId;\r\n });\r\n }, (reason) => {\r\n this.logError(reason, reason, true);\r\n });\r\n };\r\n\r\n copyPermToMailing = () => {\r\n this.$timeout(() => {\r\n this.user.mailAddress.city = this.user.permAddress.city;\r\n this.user.mailAddress.country = this.user.permAddress.country;\r\n this.user.mailAddress.postalCode = this.user.permAddress.postalCode;\r\n this.user.mailAddress.state = this.user.permAddress.state;\r\n this.user.mailAddress.street = this.user.permAddress.street;\r\n this.user.mailAddress.street2 = this.user.permAddress.street2;\r\n this.user.mailingPhone = this.user.phoneNumber\r\n this.user.mailAddress.county = this.user.permAddress.county;\r\n });\r\n };\r\n\r\n changePassword = (form: ng.IFormController) => {\r\n this.Restangular.all(\"account/changepassword\").post(this.password)\r\n .then((result) => {\r\n this.showChangePassword = false;\r\n this.password = {};\r\n this.logSuccess(\"Password changed successfully\", result, true);\r\n form.$setUntouched();\r\n form.$setPristine();\r\n\r\n }, (reason) => {\r\n if (reason.status == 400) {\r\n this.logError(\"Unable to change your password. Make sure your old password is typed correctly.\", reason, true);\r\n\r\n }\r\n else {\r\n this.logError(\"There was an error changing your password.\", reason, true);\r\n }\r\n });\r\n }\r\n\r\n cancelChangePassword = () => {\r\n this.showChangePassword = false;\r\n this.password.oldPassword = \"\";\r\n this.password.newPassword = \"\";\r\n this.password.confirmPassword = \"\";\r\n }\r\n\r\n\r\n verifyAddress = (address: Address): ng.IPromise => {\r\n var defer = this.common.$q.defer();\r\n if (address.country === \"US\" || address.country === \"CA\") {\r\n defer.promise = this.Restangular.all(\"Address\").all(\"Validate\").post(address)\r\n }\r\n else {\r\n defer.resolve(null);\r\n }\r\n\r\n return defer.promise;\r\n };\r\n\r\n selectAddressOkCallback = (selectedAddress: Array
) => {\r\n\r\n selectedAddress.forEach((selection) => {\r\n if (selection.key == \"permanent\") {\r\n this.user.permAddress.city = selection.city;\r\n this.user.permAddress.postalCode = selection.postalCode;\r\n this.user.permAddress.state = selection.state;\r\n this.user.permAddress.street = selection.street;\r\n this.user.permAddress.street2 = selection.street2;\r\n this.user.permAddress.isVerified = selection.isVerified;\r\n this.user.permAddress.userOverride = selection.userOverride;\r\n this.user.permAddress.resultCodes = selection.resultCodes;\r\n this.user.permAddress.signature = selection.signature;\r\n this.user.permAddress.addressType = selection.addressType;\r\n this.user.permAddress.country = selection.country;\r\n this.user.permAddress.county = selection.county;\r\n }\r\n\r\n if (selection.key == \"mailing\") {\r\n this.user.mailAddress.city = selection.city;\r\n this.user.mailAddress.postalCode = selection.postalCode;\r\n this.user.mailAddress.state = selection.state;\r\n this.user.mailAddress.street = selection.street;\r\n this.user.mailAddress.street2 = selection.street2;\r\n this.user.mailAddress.isVerified = selection.isVerified;\r\n this.user.mailAddress.userOverride = selection.userOverride;\r\n this.user.mailAddress.resultCodes = selection.resultCodes;\r\n this.user.mailAddress.signature = selection.signature;\r\n this.user.mailAddress.addressType = selection.addressType;\r\n this.user.mailAddress.country = selection.country;\r\n this.user.mailAddress.county = selection.county;\r\n }\r\n });\r\n\r\n this.user.addressVerified = true;\r\n this.saveDetails();\r\n };\r\n\r\n selectAddressCancelCallback = (selectedAddress: Array
) => {\r\n this.mailingSameAsPerm = false;\r\n this.savingDetails = false;\r\n selectedAddress.forEach((selection) => {\r\n if (selection.key == \"permanent\") {\r\n this.user.permAddress.city = selection.city;\r\n this.user.permAddress.postalCode = selection.postalCode;\r\n this.user.permAddress.state = selection.state;\r\n this.user.permAddress.street = selection.street;\r\n this.user.permAddress.street2 = selection.street2;\r\n this.user.permAddress.signature = selection.signature;\r\n this.user.permAddress.addressType = selection.addressType;\r\n }\r\n\r\n if (selection.key == \"mailing\") {\r\n this.user.mailAddress.city = selection.city;\r\n this.user.mailAddress.postalCode = selection.postalCode;\r\n this.user.mailAddress.state = selection.state;\r\n this.user.mailAddress.street = selection.street;\r\n this.user.mailAddress.street2 = selection.street2;\r\n this.user.mailAddress.signature = selection.signature;\r\n this.user.mailAddress.addressType = selection.addressType;\r\n }\r\n\r\n });\r\n }\r\n\r\n raceToggle = (value) => {\r\n var idx = this.demographics.ethnicities.indexOf(value);\r\n\r\n if (idx > -1) {\r\n this.demographics.ethnicities.splice(idx, 1);\r\n }\r\n else {\r\n this.demographics.ethnicities.push(value);\r\n }\r\n };\r\n\r\n disabilityToggle = (value) => {\r\n var idx = this.demographics.disabilities.indexOf(value);\r\n\r\n if (idx > -1) {\r\n this.demographics.disabilities.splice(idx, 1);\r\n }\r\n else {\r\n this.demographics.disabilities.push(value);\r\n }\r\n };\r\n\r\n militaryServiceToggle = (value) => {\r\n var idx = this.demographics.militaryServices.indexOf(value);\r\n\r\n if (idx > -1) {\r\n this.demographics.militaryServices.splice(idx, 1);\r\n }\r\n else {\r\n this.demographics.militaryServices.push(value);\r\n }\r\n };\r\n\r\n nationalitySelected = (item, model) => {\r\n if (this.demographics.nationalities.length > 4) {\r\n var idx = this.demographics.nationalities.indexOf(item.value);\r\n if (idx > -1) {\r\n this.demographics.nationalities.splice(idx, 1);\r\n }\r\n }\r\n };\r\n\r\n selectHispanic = () => {\r\n this.demographics.ethnicities = [];\r\n };\r\n\r\n getSecurityQuestion = () => {\r\n this.Restangular.one(\"account/getSecurityQuestion\").get()\r\n .then((result) => {\r\n this.userSecurityQuestion = result;\r\n this.originalUserSecurityQuestion = result;\r\n }, (reason) => {\r\n this.logError(\"An error occurred retrieving the security question\", reason, false);\r\n });\r\n\r\n };\r\n\r\n saveSecurityQuestion = (form: ng.IFormController) => {\r\n this.Restangular.one(\"account/saveSecurityQuestion\").customPUT({ securityQuestion: this.userSecurityQuestion, securityAnswer: this.userSecurityAnswer })\r\n .then((result) => {\r\n this.logSuccess(\"Security question updated successfully\", \"Security question updated successfully\", true);\r\n this.showChangeSecurityQuestion = false;\r\n this.userSecurityAnswer = \"\";\r\n this.originalUserSecurityQuestion = this.userSecurityQuestion;\r\n form.$setPristine();\r\n form.$setUntouched();\r\n }, (reason) => {\r\n this.logError(\"An error occurred while updating the security question\", reason, true);\r\n });\r\n };\r\n\r\n cancelChangeSecurity = () => {\r\n this.showChangeSecurityQuestion = false;\r\n this.userSecurityAnswer = \"\";\r\n this.userSecurityQuestion = this.originalUserSecurityQuestion;\r\n };\r\n\r\n changePrimaryConnection = () => {\r\n if (this.user.customer.crmId != this.primaryConnection.crmId) {\r\n var oldPrimaryConnection = _.cloneDeep(this.user.customer);\r\n this.deleteConnection(this.primaryConnection);\r\n this.changeSchool(this.primaryConnection, oldPrimaryConnection);\r\n\r\n }\r\n\r\n this.editingPrimaryConnection = false;\r\n };\r\n\r\n cancelChangePrimaryConnection = () => {\r\n this.editingPrimaryConnection = false;\r\n this.primaryConnection = this.user.customer;\r\n };\r\n\r\n stateChanged = (property, oldValue, newValue): void => {\r\n if (oldValue === \"NC\" || newValue === \"NC\") {\r\n switch (property) {\r\n case \"permState\":\r\n this.user.permAddress.county = null;\r\n break;\r\n case \"mailingState\":\r\n this.user.mailAddress.county = null;\r\n break;\r\n }\r\n\r\n\r\n }\r\n };\r\n\r\n countryChanged = (property, oldValue): void => {\r\n if (oldValue == \"US\") {\r\n switch (property) {\r\n case \"permCountry\":\r\n this.user.permAddress.county = null;\r\n break;\r\n case \"mailingCountry\":\r\n this.user.mailAddress.county = null;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n getCountyLabel = (value): string => {\r\n var county: IAddressListItem = _.find(this.ncCounties, { value: value });\r\n\r\n return county == null ? value : county.label;\r\n };\r\n\r\n showTxtOptInMessage = (): void => {\r\n if (this.user.textingOptIns.cfnc === true) {\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: 'template/profile/textingOptInMessage.html',\r\n size: 'lg'\r\n });\r\n }\r\n\r\n }\r\n\r\n validateSSN = (ssn): void => {\r\n if (ssn != null && ssn != '') {\r\n var test = ssn.replace(/-/g, '').toString();\r\n var index = _.indexOf(this.invalidSSNs, test);\r\n if (_.startsWith(ssn, '666') || _.startsWith(ssn, '9') || index != -1) {\r\n this.validSSN = false\r\n }\r\n else this.validSSN = true;\r\n }\r\n };\r\n\r\n getRoles = () => {\r\n var userRoles = this.bitToFormValue(this.user.role);\r\n for (let i = 0; i < userRoles.length; i++) {\r\n if (userRoles[i]) {\r\n this.convertedRoles.push(this.roles[i]);\r\n }\r\n }\r\n }\r\n\r\n enumToBitValues = (): any[] => {\r\n return Object.keys(Roles).map(Number).filter(Boolean)\r\n };\r\n\r\n bitToFormValue = (bit: number): any => {\r\n const bits = this.enumToBitValues();\r\n return bits.map((b) => (bit & b) === b);\r\n }\r\n\r\n formValueToBit() {\r\n return this.convertedRoles.reduce((total, selected, i) => total + (selected ? selected.value : 0), 0);\r\n }\r\n\r\n checkSchoolLevels = (checkCollege: boolean): boolean => {\r\n if (((this.user.role & Roles.MiddleSchool) === Roles.MiddleSchool) || ((this.user.role & Roles.HighSchool) === Roles.HighSchool) || (checkCollege ? ((this.user.role & Roles.College) === Roles.College) : false)) {\r\n return true;\r\n }\r\n else return false;\r\n }\r\n\r\n openTwoFactorWindow = () => {\r\n this.$window.open(this.authUrl + \"/Identity/Account/Manage/TwoFactorAuthentication\", \"twofactor\", \"height=900,width=500\");\r\n }\r\n\r\n openEmailUpdateWindow = () => {\r\n this.$window.open(this.authUrl + \"/Identity/Account/Manage/Email\", \"Email\", \"height=900,width=500\");\r\n }\r\n }\r\n\r\n angular.module(\"app\").controller(Profile.controllerId, Profile);\r\n\r\n\r\n\r\n\r\n}\r\n","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IUpdateAddress {\r\n activate: () => void;\r\n ncCounties: Array;\r\n permAddress: ValidationAddress;\r\n mailAddress: ValidationAddress;\r\n saving: boolean;\r\n mailingSameAsPerm: boolean;\r\n addressError: boolean;\r\n melissaDataResponse: any;\r\n countries: Array;\r\n states: Array;\r\n phoneNumbers: Array;\r\n isLimitedProfile: boolean;\r\n }\r\n\r\n class Address implements IAddress {\r\n addressType: string;\r\n firstName: string;\r\n lastName: string;\r\n street: string;\r\n street2: string;\r\n city: string;\r\n state: string;\r\n postalCode: string;\r\n country: string\r\n county: string;\r\n isVerified: boolean;\r\n resultCodes: string;\r\n userOverride: boolean;\r\n signature: string;\r\n key: string;\r\n }\r\n\r\n class VerifyAddressResults implements IVerifyAddressResultsViewModel {\r\n firstName: string;\r\n lastName: string;\r\n action: string;\r\n providedAddressHasErrors: boolean;\r\n key: string;\r\n providedAddress: Address;\r\n suggestedAddress: Address;\r\n\r\n }\r\n\r\n class UpdateAddress implements IUpdateAddress {\r\n static controllerId: string = \"updateAddress\";\r\n static $inject: string[] = [\"addressService\", \"Restangular\", \"common\", \"$timeout\", \"config\", \"loginCredentials\"];\r\n log: (msg, data?, showToast?) => void;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n ncCounties: Array;\r\n permAddress: ValidationAddress;\r\n mailAddress: ValidationAddress;\r\n saving: boolean;\r\n mailingSameAsPerm: boolean;\r\n addressError: boolean;\r\n melissaDataResponse: any;\r\n addressVerified: boolean;\r\n countries: Array;\r\n states: Array;\r\n newEmail: string;\r\n user: IUserProfile;\r\n phoneNumbers: Array;\r\n isLimitedProfile: boolean;\r\n newPassword: string;\r\n confirmNewPassword: string;\r\n\r\n constructor(private addressService: IAddressService,\r\n private Restangular: Restangular.IService,\r\n private common: ICommonFactory,\r\n private $timeout: angular.ITimeoutService,\r\n private config: IConfig,\r\n private loginCredentials: ILoginCredentials) {\r\n this.log = common.logger.getLogFn(UpdateAddress.controllerId);\r\n this.logError = common.logger.getLogFn(UpdateAddress.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(UpdateAddress.controllerId, \"success\");\r\n this.phoneNumbers = [];\r\n this.activate();\r\n }\r\n\r\n activate() {\r\n var promises: angular.IPromise[] = [];\r\n\r\n if (this.loginCredentials.updatePhone || this.loginCredentials.updatePassword) {\r\n this.isLimitedProfile = true;\r\n promises.push(this.getLimitedProfile());\r\n }\r\n else {\r\n this.isLimitedProfile = false;\r\n promises.push(this.getProfile());\r\n }\r\n\r\n\r\n this.common.activateController(promises, UpdateAddress.controllerId)\r\n .then(() => {\r\n this.log(\"Activated UpdateAddress View\");\r\n this.newEmail = '';\r\n });\r\n\r\n }\r\n\r\n getLimitedProfile = () => {\r\n return this.Restangular.one(\"users/limitedProfile\").get(this.loginCredentials.loginInfo)\r\n .then((result) => {\r\n this.user = result;\r\n if (result.phoneNumber) {\r\n this.phoneNumbers.push({ type: \"Permanent Phone\", value: result.phoneNumber });\r\n }\r\n\r\n if (result.daytimePhone) {\r\n this.phoneNumbers.push({ type: \"Daytime Phone\", value: result.daytimePhone });\r\n }\r\n\r\n if (result.eveningPhone) {\r\n this.phoneNumbers.push({ type: \"Evening Phone\", value: result.eveningPhone });\r\n }\r\n\r\n if (result.mailingPhone) {\r\n this.phoneNumbers.push({ type: \"Mailing Phone\", value: result.mailingPhone });\r\n }\r\n }, (reason) => {\r\n this.logError(\"An error occurred. Please try again later.\", reason, true);\r\n });\r\n }\r\n\r\n getProfile = () => {\r\n return this.Restangular.one(\"users/profile\").get()\r\n .then((result) => {\r\n if (result) {\r\n this.user = result;\r\n this.user.permAddress = this.user.permAddress || new Address();\r\n this.user.mailAddress = this.user.mailAddress || new Address();\r\n this.user.permAddress.firstName = result.firstName;\r\n this.user.permAddress.lastName = result.lastName;\r\n this.user.mailAddress.firstName = result.firstName;\r\n this.user.mailAddress.lastName = result.lastName;\r\n this.user.permAddress.userOverride = false;\r\n this.user.mailAddress.userOverride = false;\r\n\r\n //this.user.addressInvalid = this.config.updateAddressAtLogin || false;\r\n //this.user.emailInvalid = this.config.cfncEmailError || false;\r\n //this.user.phoneNumberInvalid = this.config.phoneNumberInvalid || false;\r\n\r\n \r\n }\r\n }, (reason) => {\r\n this.logError(reason, reason, true);\r\n });\r\n };\r\n\r\n saveProfile() {\r\n this.saving = true;\r\n this.user.permAddress.key = \"permanent\";\r\n this.user.mailAddress.key = \"mailing\";\r\n if (this.user.passwordInvalid)\r\n this.loginCredentials.loginInfo.newPassword = this.newPassword;\r\n\r\n if ((!this.config.cfncAddressError && !this.user.addressInvalid) || this.addressVerified || [\"US\", \"CA\"].indexOf(this.user.permAddress.country) == -1 && [\"US\", \"CA\"].indexOf(this.user.mailAddress.country) == -1) {\r\n if (!this.config.cfncAddressError && !this.user.addressInvalid) {\r\n this.user.permAddress = null;\r\n this.user.mailAddress = null;\r\n }\r\n if (this.newEmail != '')\r\n this.user.email = this.newEmail;\r\n\r\n if (this.isLimitedProfile) {\r\n this.Restangular.one(\"users/limitedProfile/save\").post(null, this.user, this.loginCredentials.loginInfo)\r\n .then((result) => {\r\n if (this.user.passwordInvalid)\r\n this.loginCredentials.loginInfo.password = this.newPassword;\r\n //this.common.authentication.login(this.loginCredentials.loginInfo);\r\n }, (reason) => {\r\n this.saving = false;\r\n this.logError(reason, reason, true);\r\n });\r\n \r\n } else {\r\n this.Restangular.all(\"users/profile/save\").customPUT(this.user)\r\n .then((response) => {\r\n this.common.authentication.redirect();\r\n }, (reason) => {\r\n this.saving = false;\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n }\r\n else {\r\n var permAddress = new Address();\r\n permAddress.firstName = this.user.firstName;\r\n permAddress.lastName = this.user.lastName;\r\n permAddress.street = this.user.permAddress.street;\r\n permAddress.street2 = null;\r\n permAddress.city = this.user.permAddress.city;\r\n permAddress.state = this.user.permAddress.state;\r\n permAddress.postalCode = this.user.permAddress.postalCode;\r\n permAddress.country = this.user.permAddress.country;\r\n permAddress.county = this.user.permAddress.county;\r\n permAddress.key = \"permanent\";\r\n\r\n\r\n var mailingAddress = new Address();\r\n mailingAddress.firstName = this.user.firstName\r\n mailingAddress.lastName = this.user.lastName;\r\n mailingAddress.street = this.user.mailAddress.street;\r\n mailingAddress.street2 = null;\r\n mailingAddress.city = this.user.mailAddress.city;\r\n mailingAddress.state = this.user.mailAddress.state;\r\n mailingAddress.postalCode = this.user.mailAddress.postalCode;\r\n mailingAddress.country = this.user.mailAddress.country;\r\n mailingAddress.county = this.user.mailAddress.county;\r\n mailingAddress.key = \"mailing\";\r\n\r\n\r\n this.addressService.validate([permAddress, mailingAddress])\r\n .then((result) => {\r\n result.forEach((selection) => {\r\n if (selection.key == \"permanent\") {\r\n this.user.permAddress.city = selection.city;\r\n this.user.permAddress.postalCode = selection.postalCode;\r\n this.user.permAddress.state = selection.state;\r\n this.user.permAddress.street = selection.street;\r\n this.user.permAddress.street2 = selection.street2;\r\n this.user.permAddress.isVerified = selection.isVerified;\r\n this.user.permAddress.userOverride = selection.userOverride;\r\n this.user.permAddress.resultCodes = selection.resultCodes;\r\n this.user.permAddress.signature = selection.signature;\r\n this.user.permAddress.addressType = selection.addressType;\r\n this.user.permAddress.country = selection.country;\r\n this.user.permAddress.county = selection.county;\r\n }\r\n\r\n if (selection.key == \"mailing\") {\r\n this.user.mailAddress.city = selection.city;\r\n this.user.mailAddress.postalCode = selection.postalCode;\r\n this.user.mailAddress.state = selection.state;\r\n this.user.mailAddress.street = selection.street;\r\n this.user.mailAddress.street2 = selection.street2;\r\n this.user.mailAddress.isVerified = selection.isVerified;\r\n this.user.mailAddress.userOverride = selection.userOverride;\r\n this.user.mailAddress.resultCodes = selection.resultCodes;\r\n this.user.mailAddress.signature = selection.signature;\r\n this.user.mailAddress.addressType = selection.addressType;\r\n this.user.mailAddress.country = selection.country;\r\n this.user.mailAddress.county = selection.county;\r\n }\r\n });\r\n\r\n this.addressVerified = true;\r\n this.saveProfile();\r\n\r\n }, (reason) => {\r\n reason.addresses.forEach((selection) => {\r\n if (selection.key == \"permanent\") {\r\n this.user.permAddress.city = selection.city;\r\n this.user.permAddress.postalCode = selection.postalCode;\r\n this.user.permAddress.state = selection.state;\r\n this.user.permAddress.street = selection.street;\r\n this.user.permAddress.street2 = selection.street2;\r\n this.user.permAddress.signature = selection.signature;\r\n this.user.permAddress.addressType = selection.addressType;\r\n }\r\n\r\n if (selection.key == \"mailing\") {\r\n this.user.mailAddress.city = selection.city;\r\n this.user.mailAddress.postalCode = selection.postalCode;\r\n this.user.mailAddress.state = selection.state;\r\n this.user.mailAddress.street = selection.street;\r\n this.user.mailAddress.street2 = selection.street2;\r\n this.user.mailAddress.signature = selection.signature;\r\n this.user.mailAddress.addressType = selection.addressType;\r\n }\r\n });\r\n this.saving = false;\r\n });\r\n }\r\n }\r\n\r\n\r\n verifyAddress = (address: Address): ng.IPromise => {\r\n var defer = this.common.$q.defer();\r\n if (address.country === \"US\" || address.country === \"CA\") {\r\n defer.promise = this.Restangular.all(\"Address\").all(\"Validate\").post(address)\r\n }\r\n else {\r\n defer.resolve(null);\r\n }\r\n\r\n return defer.promise;\r\n };\r\n }\r\n\r\n angular.module(\"app\").controller(UpdateAddress.controllerId, UpdateAddress);\r\n}","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IUpdateEmailScope extends ng.IScope {\r\n vm: UpdateEmail;\r\n }\r\n\r\n interface IUpdateEmail {\r\n }\r\n\r\n class UpdateEmail implements IUpdateEmail {\r\n static controllerId: string = \"updateEmail\";\r\n static $inject: string[] = [\"Restangular\", \"common\", \"$timeout\"];\r\n log: (msg, data?, showToast?) => void;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n user: any;\r\n newEmail: string;\r\n saving: boolean;\r\n\r\n constructor(private Restangular: Restangular.IService,\r\n private common: ICommonFactory,\r\n private $timeout: angular.ITimeoutService) {\r\n this.log = common.logger.getLogFn(UpdateEmail.controllerId);\r\n this.logError = common.logger.getLogFn(UpdateEmail.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(UpdateEmail.controllerId, \"success\");\r\n this.activate();\r\n }\r\n\r\n activate() {\r\n var promises = [this.getProfile()];\r\n this.common.activateController(promises, UpdateEmail.controllerId)\r\n .then(() => {\r\n this.log(\"Activated UpdateEmail View\");\r\n this.saving = false;\r\n this.newEmail = '';\r\n });\r\n }\r\n\r\n getProfile = () => {\r\n return this.Restangular.one(\"users/profile\").get()\r\n .then((result) => {\r\n this.user = result;\r\n this.user.permAddress = null;\r\n this.user.mailAddress = null;\r\n }, (reason) => {\r\n this.logError(reason, reason, true);\r\n });\r\n };\r\n\r\n save = () => {\r\n if (this.newEmail == '') {\r\n this.common.authentication.redirect();\r\n }\r\n else {\r\n this.saving = true;\r\n this.user.email = this.newEmail;\r\n this.Restangular.all(\"users/profile/save\").customPUT(this.user)\r\n .then((result) => {\r\n this.common.authentication.redirect();\r\n }, (reason) => {\r\n this.saving = false;\r\n this.logError(reason.data.message, reason, true);\r\n })\r\n }\r\n }\r\n }\r\n\r\n angular.module(\"app\").controller(UpdateEmail.controllerId, UpdateEmail);\r\n}","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IstudentCalendarScope extends ng.IScope {\r\n vm: StudentCalendar;\r\n eventSources: any[];\r\n uiConfig: any;\r\n }\r\n\r\n interface IstudentCalendar { }\r\n\r\n class StudentCalendar implements IstudentCalendar {\r\n static controllerId: string = \"studentCalendar\";\r\n\r\n static $inject: string[] = [\"$location\", \"Restangular\", \"common\", \"$compile\", \"$scope\", \"calendarServiceClient\", \"uiCalendarConfig\", \"$uibModal\"];\r\n\r\n editable: boolean\r\n locked: boolean = false;\r\n inCreateMode: boolean;\r\n categories: Array;\r\n filterCategories: Array;\r\n newCategory: any;\r\n filterCategory: any;\r\n\r\n eventWell: EventDetails;\r\n lockedWell: EventDetails;\r\n editEventWell: EventDetails;\r\n newEventWell: EventDetails;\r\n\r\n editStartTime: Date;\r\n newStartTime: Date;\r\n editEndTime: Date;\r\n newEndTime: Date;\r\n editStartDate: Date;\r\n editEndDate: Date;\r\n tabIndex: number = -1;\r\n hideSpinner: boolean;\r\n savedColleges: any;\r\n noSavedColleges: boolean;\r\n show: string;\r\n minDate: Date;\r\n \r\n private log;\r\n\r\n eventRender = (event, element) => {\r\n\r\n var eventStart = event.start === null ? event.start : event.start._i;\r\n var eventEnd = event.end === null ? event.end : event.end._i;\r\n var eventDesc = event.desc === null ? event.desc : event.desc.replace(\"'\", \"'\");\r\n var zindex: number;\r\n\r\n var setEventWellCall: string = \"vm.setEventWell('\"\r\n + event.id + \"', '\"\r\n + event.schoolName + \"', '\"\r\n + event.title.replace(\"'\", \"'\") + \"', '\"\r\n + event.category + \"', '\" + eventStart + \"', '\"\r\n + eventEnd + \"', '\"\r\n + event.allDayEvent + \"', '\"\r\n + eventDesc\r\n + \"' )\";\r\n\r\n element.attr({\r\n \"id\": event.id,\r\n \"name\": Number(event.start._d),\r\n \"ng-mouseover\": setEventWellCall,\r\n \"ng-focus\": setEventWellCall,\r\n \"ng-mouseleave\": \"vm.clearEventWell()\",\r\n \"ng-blur\": \"vm.clearEventWell()\",\r\n \"ng-click\": \"vm.lockWell()\",\r\n \"href\": \"\",\r\n });\r\n \r\n this.$compile(element)(this.$scope);\r\n\r\n };\r\n\r\n eventAfterAllRender = () => {\r\n for (var i = 0; i < angular.element(\".fc-day-grid-event\").length; i++) {\r\n var eventAnchor = angular.element(\".fc-day-grid-event:eq(\" + i + \")\");\r\n var index = eventAnchor.attr(\"name\");\r\n eventAnchor.parent().attr(\"tabindex\", index);\r\n }\r\n };\r\n\r\n mapToFullCalendar = (event: IEvent): IEvent => {\r\n var date = new Date();\r\n return {\r\n id: event.id,\r\n title: event.name,\r\n schoolName: event.schoolName,\r\n category: event.category,\r\n start: event.start,\r\n end: event.end,\r\n allDayEvent: event.allDayEvent,\r\n desc: event.description\r\n };\r\n };\r\n\r\n getEvents = (start, end, timezone, callback) => {\r\n this.hideSpinner = false;\r\n if (!start || !end) {\r\n return;\r\n }\r\n\r\n var queryParams = {\r\n beginDate: moment(start).toISOString(),\r\n endDate: moment(end).toISOString(),\r\n filterCategory: this.filterCategory.name\r\n };\r\n\r\n\r\n this.Restangular.all(\"Calendar/getAllEvents\").getList(queryParams).then((result) => {\r\n callback(_.map(result, this.mapToFullCalendar));\r\n this.hideSpinner = true;\r\n return result;\r\n }, (reason) => {\r\n this.log(reason);\r\n this.hideSpinner = true;\r\n });\r\n };\r\n\r\n retrieveEvents = () => {\r\n this.uiCalendarConfig.calendars.studentCalendar.fullCalendar(\"refetchEvents\");\r\n };\r\n\r\n constructor(private $location: ng.ILocationService, private Restangular: Restangular.IService, private common: ICommonFactory, private $compile: ng.ICompileService,\r\n private $scope: IstudentCalendarScope, private calendarServiceClient: CalendarServiceClient, private uiCalendarConfig, private $uibModal: ng.ui.bootstrap.IModalService) {\r\n\r\n this.log = common.logger.getLogFn(StudentCalendar.controllerId);\r\n\r\n this.locked = false;\r\n this.editable = false;\r\n this.inCreateMode = false;\r\n this.hideSpinner = false;\r\n this.show = \"createEditTab\";\r\n this.minDate = new Date(1899, 12);\r\n this.$scope.eventSources = [];\r\n\r\n this.$scope.uiConfig = {\r\n calendar: {\r\n editable: false,\r\n header: {\r\n left: \"prev,next\",\r\n center: \"title\",\r\n right: \"month,agendaWeek,agendaDay\"\r\n },\r\n timezone: \"local\",\r\n eventRender: this.eventRender,\r\n eventAfterAllRender: this.eventAfterAllRender\r\n }\r\n };\r\n this.filterCategories = [{ name: \"All Categories\" }];\r\n\r\n this.categories = [\r\n {\r\n name: \"Unfiled\"\r\n },\r\n {\r\n name: \"Admission\"\r\n },\r\n {\r\n name: \"Enrollment\"\r\n },\r\n {\r\n name: \"Registration\"\r\n },\r\n {\r\n name: \"Financial Aid\"\r\n },\r\n {\r\n name: \"Private\"\r\n },\r\n {\r\n name: \"Sports\"\r\n },\r\n {\r\n name: \"Chat\"\r\n }\r\n ];\r\n\r\n this.filterCategories = this.filterCategories.concat(this.categories);\r\n this.filterCategory = this.filterCategories[0];\r\n\r\n this.$scope.eventSources = [this.getEvents];\r\n this.common.authentication.authenticate(true).then(result => {\r\n if (result) {\r\n this.activate();\r\n }\r\n });\r\n\r\n }\r\n\r\n activate() {\r\n //DM: I have no idea what this line is doing. \r\n //this.$scope.eventSources = [this.getEvents];\r\n this.common.activateController([], \"calendar\")\r\n .then(result => {\r\n this.log(\"Activated Calendar View\");\r\n });\r\n\r\n this.getSavedColleges();\r\n }\r\n\r\n setEventWell = (id: string, schoolName: string, eventName: string, category: string, startDate: string, endDate: string, isAllDay: string, description: string) => {\r\n\r\n if (!this.editable && (this.eventWell == null || this.eventWell.id !== id)) {\r\n\r\n if (this.locked) {\r\n this.lockedWell = _.cloneDeep(this.eventWell);\r\n }\r\n\r\n var setEndDate = endDate != \"null\" ? moment(endDate).toDate() : null;\r\n\r\n this.eventWell = {\r\n id: id,\r\n schoolName: schoolName,\r\n applicationDefinitionId: \"\",\r\n userId: \"\",\r\n allDayEvent: (isAllDay === \"true\"),\r\n name: eventName.replace(\"'\", \"'\"),\r\n category: category,\r\n start: moment(startDate).toDate(),\r\n end: setEndDate,\r\n description: description.replace(\"'\", \"'\")\r\n }\r\n }\r\n };\r\n\r\n lockWell = () => {\r\n\r\n if (this.editable) {\r\n this.editEventWell = this.lockedWell;\r\n } else {\r\n\r\n if (!this.locked) {\r\n this.lockedWell = this.eventWell;\r\n }\r\n this.locked = !this.locked;\r\n }\r\n };\r\n\r\n clearEventWell = () => {\r\n if (!this.locked) {\r\n this.eventWell = null;\r\n this.editEventWell = null;\r\n } else\r\n this.eventWell = this.lockedWell\r\n };\r\n\r\n editEvent = () => {\r\n if (!this.editable) {\r\n this.editable = true;\r\n this.editEventWell = this.lockedWell;\r\n\r\n this.editStartTime = new Date();\r\n this.editEndTime = new Date();\r\n\r\n if (!this.editEventWell.allDayEvent) {\r\n this.editStartTime.setTime(this.editEventWell.start.getTime());\r\n this.editEndTime.setTime(this.editEventWell.end.getTime());\r\n }\r\n\r\n this.editStartDate = new Date(this.editEventWell.start.toString());\r\n this.editEndDate = new Date(this.editEventWell.end.toString());\r\n }\r\n };\r\n\r\n setUpNewEvent = () => {\r\n this.inCreateMode = !this.inCreateMode;\r\n if (!this.newStartTime)\r\n this.newStartTime = new Date();\r\n if (!this.newEndTime)\r\n this.newEndTime = new Date();\r\n\r\n this.newCategory = this.categories[0];\r\n };\r\n\r\n setNewEventTime = () => {\r\n\r\n if (!this.newEventWell.allDayEvent)\r\n this.newEventWell.allDayEvent = false;\r\n\r\n if (this.newEventWell.allDayEvent == true) {\r\n this.newStartTime.setTime(0);\r\n this.newEndTime.setTime(0);\r\n }\r\n\r\n this.newEventWell.start.setHours(this.newStartTime.getHours());\r\n this.newEventWell.start.setMinutes(this.newStartTime.getMinutes());\r\n this.newEventWell.end.setHours(this.newEndTime.getHours());\r\n this.newEventWell.end.setMinutes(this.newEndTime.getMinutes());\r\n };\r\n\r\n setEditEventTime = () => {\r\n\r\n if (!this.editEventWell.allDayEvent)\r\n this.editEventWell.allDayEvent = false;\r\n\r\n if (this.editEventWell.allDayEvent == true) {\r\n this.editStartTime.setTime(0);\r\n this.editEndTime.setTime(0);\r\n }\r\n this.editEventWell.start = this.editStartDate;\r\n this.editEventWell.start.setHours(this.editStartTime.getHours());\r\n this.editEventWell.start.setMinutes(this.editStartTime.getMinutes());\r\n\r\n this.editEventWell.end = this.editEndDate;\r\n this.editEventWell.end.setHours(this.editEndTime.getHours());\r\n this.editEventWell.end.setMinutes(this.editEndTime.getMinutes());\r\n };\r\n\r\n save = () => {\r\n\r\n this.setNewEventTime();\r\n this.newEventWell.category = this.newCategory.name;\r\n\r\n this.calendarServiceClient.saveStudentEvent(this.newEventWell).then((result) => {\r\n if (result) {\r\n this.clear();\r\n this.uiCalendarConfig.calendars.studentCalendar.fullCalendar(\"refetchEvents\");\r\n }\r\n }, (reason) => {\r\n this.log(\"Event did not save!\");\r\n });\r\n\r\n };\r\n\r\n clear = () => {\r\n this.newEventWell = null;\r\n this.eventWell = null;\r\n this.inCreateMode = false;\r\n this.editable = false;\r\n this.locked = false;\r\n };\r\n\r\n updateStudentEvent = () => {\r\n this.setEditEventTime();\r\n\r\n this.calendarServiceClient.updateStudentEvent(this.editEventWell).then((result) => {\r\n if (result) {\r\n this.clear();\r\n this.uiCalendarConfig.calendars.studentCalendar.fullCalendar(\"refetchEvents\");\r\n }\r\n }, (reason) => {\r\n this.log(\"Event did not edit\");\r\n });\r\n };\r\n\r\n deleteStudentEvent = () => {\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/collegePlanning/ConfirmModal.html',\r\n size: 'sm',\r\n controller: 'ConfirmModal',\r\n });\r\n modalInstance.result.then((val: boolean) => {\r\n if (val) {\r\n this.calendarServiceClient.deleteStudentEvent(this.eventWell.id).then((result) => {\r\n if (result) {\r\n this.clear();\r\n this.uiCalendarConfig.calendars.studentCalendar.fullCalendar(\"refetchEvents\");\r\n }\r\n }, (reason) => {\r\n this.log(\"Event did not delete\");\r\n });\r\n }\r\n });\r\n };\r\n\r\n validateNewEndDate = (value) => {\r\n if (this.newEventWell) {\r\n var isValid = moment(value).isAfter(this.newEventWell.start);\r\n\r\n return isValid;\r\n }\r\n return true;\r\n };\r\n\r\n validateEditEndDate = (value) => {\r\n if (this.editStartDate) {\r\n var isValid = moment(value).isAfter(this.editStartDate);\r\n\r\n return isValid;\r\n }\r\n return true;\r\n };\r\n\r\n getSavedColleges = () => {\r\n this.Restangular.one(\"collegePlanning/getsavedcolleges\").get().then((results) => {\r\n this.savedColleges = results.colleges;\r\n this.noSavedColleges = results.colleges.length == 0 ? true : false;\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n };\r\n\r\n tab = () => {\r\n\r\n };\r\n }\r\n\r\n angular.module(\"app\").controller(StudentCalendar.controllerId, StudentCalendar);\r\n}","namespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IStudentEnrichment {\r\n }\r\n\r\n interface IStudentEnrichmentScope extends ng.IScope {\r\n vm: StudentEnrichment;\r\n }\r\n\r\n class StudentEnrichment implements IStudentEnrichment {\r\n static $inject: Array = [\"common\", \"Restangular\", \"$scope\"];\r\n static controllerId: string = \"studentEnrichment\";\r\n private log;\r\n pageNumber: number;\r\n pageSize: any;\r\n searchString: string;\r\n loaded: boolean;\r\n searchResults: any;\r\n cardView: boolean;\r\n minDate: Date;\r\n filterParams: any;\r\n interests: any;\r\n showMap: boolean;\r\n map: googleMaps.googleMap;\r\n options: any;\r\n stateCoords;\r\n mappingData;\r\n markers: Array;\r\n selectedFilters: Array;\r\n startDate: Date;\r\n endDate: Date;\r\n deadline: Date;\r\n interestOpen: boolean;\r\n gradeOpen: boolean;\r\n distanceOpen: boolean;\r\n dateOpen: boolean;\r\n overnightOpen: boolean;\r\n feeOpen: boolean;\r\n scholarOpen: boolean;\r\n hostOpen: boolean;\r\n feeRange: any;\r\n oldHost: any;\r\n oldDistance: any;\r\n oldSearch: any;\r\n apiHost: string;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showHowl?) => void;\r\n\r\n constructor(private common: ICommonFactory, private Restangular: Restangular.IService, private $scope: IStudentEnrichmentScope) {\r\n this.pageNumber = 1;\r\n this.pageSize = 25;\r\n this.cardView = true;\r\n this.searchString = \"\";\r\n this.oldHost = \"\";\r\n this.oldDistance = \"\";\r\n this.oldSearch = \"\";\r\n this.loaded = false;\r\n this.showMap = false;\r\n this.minDate = new Date(1899, 12);\r\n this.selectedFilters = [];\r\n this.markers = [];\r\n\r\n this.interests = ['Academic',\r\n 'Academically Gifted',\r\n 'Accounting',\r\n 'Adventure',\r\n 'Aerospace',\r\n 'After School',\r\n 'Agriculture',\r\n 'Algebra',\r\n 'Anthropology',\r\n 'Apparel Design',\r\n 'Archaeology',\r\n 'Architecture',\r\n 'Art',\r\n 'Astronomy',\r\n 'ADD/ADHD/LD',\r\n 'Band',\r\n 'Behavioral Science',\r\n 'Biology',\r\n 'Business',\r\n 'Careers',\r\n 'Challenge',\r\n 'Chemistry',\r\n 'Choir',\r\n 'College Courses',\r\n 'College Preparation',\r\n 'Communications',\r\n 'Computers',\r\n 'Cosmetology',\r\n 'Creative',\r\n 'Culinary',\r\n 'Culture',\r\n 'CPR',\r\n 'Dance',\r\n 'Debate',\r\n 'Design',\r\n 'Disadvantaged',\r\n 'Diversity',\r\n 'Economics',\r\n 'Engineering',\r\n 'Enrichment',\r\n 'Entomology',\r\n 'Environment',\r\n 'ESL',\r\n 'Fine Arts',\r\n 'First Generation College Student',\r\n 'Geology',\r\n 'Geometry',\r\n 'Graphic Design',\r\n 'Health',\r\n 'History',\r\n 'Humanities',\r\n 'Internships',\r\n 'Leadership',\r\n 'Literacy',\r\n 'Literature',\r\n 'Low Income',\r\n 'Marine Biology',\r\n 'Math',\r\n 'Mechanics',\r\n 'Media',\r\n 'Medical/Medicine',\r\n 'Minorities',\r\n 'Music',\r\n 'North Carolina',\r\n 'Nuclear',\r\n 'Oceanography',\r\n 'Orchestra',\r\n 'Performing Arts',\r\n 'Pharmacy',\r\n 'Philosophy',\r\n 'Physics',\r\n 'Piano',\r\n 'Problem Solving',\r\n 'Programming',\r\n 'Psychology',\r\n 'Research',\r\n 'Robotics',\r\n 'Science',\r\n 'Service Learning',\r\n 'Social Science',\r\n 'Sports',\r\n 'String Instruments',\r\n 'Teaching',\r\n 'Teamwork',\r\n 'Technology',\r\n 'Test Preparation',\r\n 'Textiles',\r\n 'Transportation',\r\n 'Tutoring',\r\n 'Volunteering',\r\n 'Web Design',\r\n 'Writing',\r\n 'Youth',\r\n '4-H'];\r\n this.log = common.logger.getLogFn(StudentEnrichment.controllerId);\r\n this.logSuccess = this.common.logger.getLogFn(StudentEnrichment.controllerId, \"success\");\r\n this.logError = common.logger.getLogFn(StudentEnrichment.controllerId, \"error\");\r\n\r\n this.map = { center: { latitude: 35.250224, longitude: -79.905000 }, zoom: 7, pan: true };\r\n this.options = { options: { mapTypeId: google.maps.MapTypeId.TERRAIN, streetViewControl: false, zoomControlOptions: { style: google.maps.ZoomControlStyle.SMALL } } };\r\n this.stateCoords = coords;\r\n //this.common.authentication.authenticate(true).then(result => {\r\n // if (result) {\r\n // this.activate();\r\n // }\r\n //});\r\n this.activate();\r\n\r\n }\r\n\r\n activate() {\r\n var promises = [];\r\n this.common.activateController(promises, StudentEnrichment.controllerId)\r\n .then(() => {\r\n var config = new Config();\r\n this.apiHost = config.apiHost;\r\n this.buildFilterObject();\r\n this.getAllPrograms();\r\n });\r\n }\r\n\r\n buildFilterObject() {\r\n this.filterParams = {\r\n name: {\r\n displayText: \"Name\",\r\n value: \"\"\r\n },\r\n interestArea: {\r\n displayText: null,\r\n value: \"\"\r\n },\r\n hostCampus: {\r\n displayText: \"Host Campus\",\r\n value: \"\"\r\n },\r\n minFee: {\r\n displayText: null,\r\n value: \"\"\r\n },\r\n maxFee: {\r\n displayText: null,\r\n value: \"\"\r\n },\r\n hasScholarship: {\r\n displayText: \"Has Scholarship\",\r\n value: null\r\n },\r\n gradeLevel: {\r\n displayText: \"Grade Level\",\r\n value: \"\"\r\n },\r\n overnight: {\r\n displayText: \"Overnight Program\",\r\n value: null\r\n },\r\n preK: {\r\n displayText: \"Pre-K\",\r\n value: null\r\n },\r\n elementarySchool: {\r\n displayText: \"K-5th\",\r\n value: null\r\n },\r\n middleSchool: {\r\n displayText: \"6th-8th\",\r\n value: null\r\n },\r\n highSchool: {\r\n displayText: \"9th-12th\",\r\n value: null\r\n },\r\n college: {\r\n displayText: \"College\",\r\n value: null\r\n },\r\n startDate: {\r\n displayText: \"Start Date\",\r\n value: null\r\n },\r\n endDate: {\r\n displayText: \"End Date\",\r\n value: null\r\n },\r\n deadline: {\r\n displayText: \"\",\r\n value: \"\"\r\n },\r\n timeFrame: {\r\n displayText: \"Time Frame\",\r\n value: \"\"\r\n },\r\n search: { displayText: null, radius: \"25\", zipCode: '' },\r\n feeRange: {\r\n displayText: \"Fee Range\",\r\n value: null\r\n }\r\n };\r\n }\r\n\r\n getAllPrograms() {\r\n var queryParams = { pageNumber: this.pageNumber, pageSize: this.pageSize };\r\n this.Restangular.one(\"StudentEnrichment/allPrograms\").get(queryParams).then((results) => {\r\n this.searchResults = results;\r\n this.loaded = true;\r\n this.markers = this.createPins();\r\n }, (reason) => {\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n setFees() {\r\n if (this.feeRange == \"\") {\r\n this.filterParams.minFee = '';\r\n this.filterParams.maxFee = '';\r\n }\r\n if (this.feeRange == \"0\") {\r\n this.filterParams.maxFee = -1;\r\n this.filterParams.minFee = 0;\r\n }\r\n if (this.feeRange == \"1\") {\r\n this.filterParams.minFee = 1;\r\n this.filterParams.maxFee = 99;\r\n }\r\n if (this.feeRange == \"2\") {\r\n this.filterParams.minFee = 100;\r\n this.filterParams.maxFee = 299;\r\n }\r\n if (this.feeRange == \"3\") {\r\n this.filterParams.minFee = 300;\r\n this.filterParams.maxFee = 499;\r\n }\r\n if (this.feeRange == \"4\") {\r\n this.filterParams.minFee = 500;\r\n this.filterParams.maxFee = 999;\r\n }\r\n if (this.feeRange == \"5\") {\r\n this.filterParams.maxFee = null;\r\n this.filterParams.minFee = 1000;\r\n }\r\n }\r\n\r\n clear() {\r\n this.feeRange = \"\";\r\n this.startDate = null;\r\n this.endDate = null;\r\n this.deadline = null;\r\n this.buildFilterObject();\r\n this.selectedFilters = [];\r\n this.getAllPrograms();\r\n }\r\n\r\n clearFilter(filter) {\r\n if (filter.value) {\r\n filter.value = null;\r\n }\r\n\r\n if (filter.radius && filter.zipCode) {\r\n filter.zipCode = null;\r\n }\r\n \r\n this.searchPrograms();\r\n }\r\n\r\n searchPrograms() {\r\n //if (this.startDate != null)\r\n // this.filterParams.startDate.value = this.startDate ? moment(this.startDate).toDate() : null;\r\n //if (this.endDate != null)\r\n // this.filterParams.endDate.value = this.startDate ? moment(this.endDate).toDate() : null;\r\n //if(this.deadline != null)\r\n // this.filterParams.deadline.value = this.deadline ? moment(this.deadline).toDate() : null;\r\n this.filterParams.interestArea.displayText = this.filterParams.interestArea.value;\r\n this.filterParams.timeFrame.displayText = this.filterParams.timeFrame.value;\r\n this.filterParams.deadline.displayText = \"Deadline: \" + moment(this.filterParams.deadline.value).format(\"MM/DD/YYYY\");\r\n this.filterParams.startDate.displayText = \"Start Date: \" + moment(this.filterParams.startDate.value).format(\"MM/DD/YYYY\");\r\n this.filterParams.endDate.displayText = \"End Date: \" + moment(this.filterParams.endDate.value).format(\"MM/DD/YYYY\");\r\n this.filterParams.hostCampus.displayText = this.filterParams.hostCampus.value;\r\n this.filterParams.search.displayText = \"Within \" + this.filterParams.search.radius + \" miles of \" + this.filterParams.search.zipCode;\r\n this.filterParams.name.displayText = \"Name: \" + this.filterParams.name.value;\r\n\r\n this.filterParams.pageNumber = this.pageNumber;\r\n this.filterParams.pageSize = this.pageSize;\r\n this.Restangular.all(\"StudentEnrichment/filterPrograms\").post(this.getParams()).then((results) => {\r\n this.searchResults = results;\r\n this.markers = this.createPins();\r\n this.loaded = true;\r\n }, (reason) => {\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n getParams() {\r\n var minFee, maxFee;\r\n if (this.filterParams.feeRange.value == \"\") {\r\n minFee = '';\r\n maxFee = '';\r\n }\r\n if (this.filterParams.feeRange.value == \"0\") {\r\n minFee = '';\r\n maxFee = -1;\r\n }\r\n if (this.filterParams.feeRange.value == \"1\") {\r\n minFee = 1;\r\n maxFee = 99;\r\n }\r\n if (this.filterParams.feeRange.value == \"2\") {\r\n minFee = 100;\r\n maxFee = 299;\r\n }\r\n if (this.filterParams.feeRange.value == \"3\") {\r\n minFee = 300;\r\n maxFee = 499;\r\n }\r\n if (this.filterParams.feeRange.value == \"4\") {\r\n minFee = 500;\r\n maxFee = 999;\r\n }\r\n if (this.filterParams.feeRange.value == \"5\") {\r\n maxFee = \"\";\r\n minFee = 1000;\r\n }\r\n\r\n return {\r\n name: this.filterParams.name.value,\r\n interestArea: this.filterParams.interestArea.value,\r\n hostCampus: this.filterParams.hostCampus.value,\r\n minFee: minFee,\r\n maxFee: maxFee,\r\n hasScholarship: this.filterParams.hasScholarship.value,\r\n overnight: this.filterParams.overnight.value,\r\n preK: this.filterParams.preK.value,\r\n elementarySchool: this.filterParams.elementarySchool.value,\r\n middleSchool: this.filterParams.middleSchool.value,\r\n highSchool: this.filterParams.highSchool.value,\r\n college: this.filterParams.college.value,\r\n startDate: this.filterParams.startDate.value ? moment(this.filterParams.startDate.value).toDate() : '',\r\n endDate: this.filterParams.endDate.value ? moment(this.filterParams.endDate.value).toDate() : '',\r\n deadline: this.filterParams.deadline.value ? moment(this.filterParams.deadline.value).toDate() : '',\r\n timeFrame: this.filterParams.timeFrame.value,\r\n search: this.filterParams.search,\r\n pageNumber: this.pageNumber,\r\n pageSize: this.pageSize\r\n }\r\n }\r\n\r\n mapSingleProgram(program: any) {\r\n this.markers = this.createSinglePin(program);\r\n }\r\n\r\n createSinglePin(program: any) {\r\n var markers = [];\r\n var marker = {\r\n selected: false,\r\n latitude: program.latitude,\r\n longitude: program.longitude,\r\n id: program.id,\r\n options: {\r\n optimized: false,\r\n title: program.name,\r\n icon: document.location.origin + \"/images/blue_pin.png\"\r\n\r\n },\r\n show: false\r\n };\r\n markers.push(marker);\r\n return markers;\r\n }\r\n\r\n resetPins() {\r\n this.markers = this.createPins();\r\n }\r\n\r\n createPins() {\r\n var markers = [];\r\n _.forEach(this.searchResults.enrichmentPrograms, function (p) {\r\n var marker = {\r\n selected: false,\r\n latitude: p.latitude,\r\n longitude: p.longitude,\r\n id: p.id,\r\n options: {\r\n optimized: false,\r\n title: p.name,\r\n icon: document.location.origin + \"/images/blue_pin.png\"\r\n\r\n },\r\n show: false\r\n };\r\n markers.push(marker);\r\n });\r\n return markers;\r\n }\r\n displayFilters(selectedFilters: any, filterName: string) {\r\n var found = _.indexOf(selectedFilters, filterName);\r\n if (found == -1) {\r\n this.selectedFilters.push(filterName);\r\n }\r\n else {\r\n selectedFilters.splice(found, 1);\r\n }\r\n }\r\n\r\n displayHostFilters(selectedFilters: any, filterName: string) {\r\n if (filterName != '' && this.oldHost == '') {\r\n this.oldHost = filterName;\r\n this.selectedFilters.push(filterName);\r\n }\r\n else if (filterName != '' && this.oldHost != '') {\r\n var found = _.indexOf(selectedFilters, this.oldHost);\r\n selectedFilters.splice(found, 1);\r\n this.selectedFilters.push(filterName);\r\n this.oldHost = filterName;\r\n }\r\n else {\r\n var found = _.indexOf(selectedFilters, filterName);\r\n selectedFilters.splice(found, 1);\r\n this.oldHost = '';\r\n }\r\n }\r\n\r\n displaySearchFilter(selectedFilters: any, filterName: string) {\r\n if (filterName != '' && this.oldSearch == '') {\r\n this.oldSearch = filterName;\r\n this.selectedFilters.push(filterName);\r\n }\r\n else if (filterName != '' && this.oldSearch != '') {\r\n var found = _.indexOf(selectedFilters, this.oldSearch);\r\n selectedFilters.splice(found, 1);\r\n this.selectedFilters.push(filterName);\r\n this.oldSearch = filterName;\r\n }\r\n else {\r\n var found = _.indexOf(selectedFilters, filterName);\r\n selectedFilters.splice(found, 1);\r\n this.oldSearch = '';\r\n }\r\n }\r\n\r\n displayDistanceFilters(selectedFilters: any, filterName: string) {\r\n if (filterName != '' && this.oldDistance == '' && this.filterParams.search.zipCode != '') {\r\n this.oldDistance = filterName;\r\n this.selectedFilters.push(filterName);\r\n }\r\n else if (this.filterParams.search.zipCode == '' || this.filterParams.search.zipCode == null || _.endsWith(filterName, 'of ') || _.endsWith(filterName, 'null')) {\r\n var found = _.indexOf(selectedFilters, this.oldDistance);\r\n selectedFilters.splice(found, 1);\r\n this.oldDistance = '';\r\n }\r\n else if (filterName != '' && this.oldDistance != '') {\r\n var found = _.indexOf(selectedFilters, this.oldDistance);\r\n selectedFilters.splice(found, 1);\r\n this.selectedFilters.push(filterName);\r\n this.oldDistance = filterName;\r\n }\r\n }\r\n\r\n buildImageUrl(baseUrl: string) {\r\n var test = _.startsWith(baseUrl, '/institutions') || _.startsWith(baseUrl, '/StudentEnrichment');\r\n return test ? this.apiHost + baseUrl : baseUrl;\r\n }\r\n }\r\n \r\n\r\n angular.module(\"app\").controller(StudentEnrichment.controllerId, StudentEnrichment);\r\n\r\n var coords = [{ latitude: 33.7963, longitude: -78.4850 },\r\n { latitude: 34.8037, longitude: -79.6742 },\r\n { latitude: 34.8206, longitude: -80.8003 },\r\n { latitude: 34.9377, longitude: -80.7880 },\r\n { latitude: 35.1019, longitude: -80.9377 },\r\n { latitude: 35.0356, longitude: -81.0379 },\r\n { latitude: 35.1457, longitude: -81.0324 },\r\n { latitude: 35.1660, longitude: -81.3867 },\r\n { latitude: 35.1985, longitude: -82.2739 },\r\n { latitude: 35.2041, longitude: -82.3933 },\r\n { latitude: 35.0637, longitude: -82.7765 },\r\n { latitude: 35.0817, longitude: -82.7861 },\r\n { latitude: 34.9996, longitude: -83.1075 },\r\n { latitude: 34.9918, longitude: -83.6183 },\r\n { latitude: 34.9918, longitude: -84.3201 },\r\n { latitude: 35.2131, longitude: -84.2885 },\r\n { latitude: 35.2680, longitude: -84.2226 },\r\n { latitude: 35.2310, longitude: -84.1113 },\r\n { latitude: 35.2815, longitude: -84.0454 },\r\n { latitude: 35.4058, longitude: -84.0248 },\r\n { latitude: 35.4719, longitude: -83.9424 },\r\n { latitude: 35.5166, longitude: -83.8559 },\r\n { latitude: 35.5512, longitude: -83.6938 },\r\n { latitude: 35.5680, longitude: -83.5181 },\r\n { latitude: 35.6327, longitude: -83.3849 },\r\n { latitude: 35.7142, longitude: -83.2475 },\r\n { latitude: 35.7799, longitude: -82.9962 },\r\n { latitude: 35.8445, longitude: -82.9276 },\r\n { latitude: 35.9224, longitude: -82.8191 },\r\n { latitude: 35.9958, longitude: -82.7710 },\r\n { latitude: 36.0613, longitude: -82.6419 },\r\n { latitude: 35.9702, longitude: -82.6103 },\r\n { latitude: 35.9547, longitude: -82.5677 },\r\n { latitude: 36.0236, longitude: -82.4730 },\r\n { latitude: 36.0669, longitude: -82.4194 },\r\n { latitude: 36.1168, longitude: -82.3535 },\r\n { latitude: 36.1345, longitude: -82.2862 },\r\n { latitude: 36.1467, longitude: -82.1461 },\r\n { latitude: 36.1035, longitude: -82.1228 },\r\n { latitude: 36.1268, longitude: -82.0267 },\r\n { latitude: 36.2797, longitude: -81.9360 },\r\n { latitude: 36.3527, longitude: -81.7987 },\r\n { latitude: 36.3361, longitude: -81.7081 },\r\n { latitude: 36.5880, longitude: -81.6724 },\r\n { latitude: 36.5659, longitude: -80.7234 },\r\n { latitude: 36.5438, longitude: -80.2977 },\r\n { latitude: 36.5449, longitude: -79.6729 },\r\n { latitude: 36.5449, longitude: -77.2559 },\r\n { latitude: 36.5505, longitude: -75.7562 },\r\n { latitude: 36.3129, longitude: -75.7068 },\r\n { latitude: 35.7131, longitude: -75.4129 },\r\n { latitude: 35.2041, longitude: -75.4720 },\r\n { latitude: 34.9794, longitude: -76.0748 },\r\n { latitude: 34.5258, longitude: -76.4951 },\r\n { latitude: 34.5880, longitude: -76.8109 },\r\n { latitude: 34.5314, longitude: -77.1378 },\r\n { latitude: 34.3910, longitude: -77.4481 },\r\n { latitude: 34.0481, longitude: -77.7983 },\r\n { latitude: 33.7666, longitude: -77.9260 },\r\n { latitude: 33.7963, longitude: -78.4863 }];\r\n} ","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface ISelectCcModalScope extends ng.IScope {\r\n vm: ISelectCcModal;\r\n }\r\n\r\n interface ISelectCcModal {\r\n communityColleges: Array;\r\n commColleges1: Array;\r\n commColleges2: Array;\r\n selectedCC: any;\r\n cancel: () => void;\r\n ok: () => void;\r\n }\r\n\r\n class SelectCcModalCtrl implements ISelectCcModal {\r\n static controllerId: string = \"selectCCModalCtrl\";\r\n static $inject: Array = [\"common\", \"$scope\", \"$uibModalInstance\"];\r\n private log;\r\n communityColleges: Array;\r\n commColleges1: Array;\r\n commColleges2: Array;\r\n selectedCC: string;\r\n \r\n constructor(private common: ICommonFactory, private $scope: ISelectCcModalScope, private $uibModalInstance: ng.ui.bootstrap.IModalServiceInstance) {\r\n\r\n var cutOff: number;\r\n\r\n this.log = common.logger.getLogFn(SelectCcModalCtrl.controllerId);\r\n this.activate();\r\n this.communityColleges = [\r\n \"Alamance Community College\" ,\r\n \"Asheville-Buncombe Technical Community College\" ,\r\n \"Beaufort County Community College\" ,\r\n \"Bladen Community College\" ,\r\n \"Blue Ridge Community College\" ,\r\n \"Brunswick Community College\" ,\r\n \"Caldwell Community College and Technical Institute\" ,\r\n \"Cape Fear Community College\" ,\r\n \"Carolinas College of Health Sciences\" ,\r\n \"Carteret Community College\" ,\r\n \"Catawba Valley Community College\" ,\r\n \"Central Carolina Community College\" ,\r\n \"Central Piedmont Community College\" ,\r\n \"Cleveland Community College\" ,\r\n \"Coastal Carolina Community College\" ,\r\n \"College of The Albemarle\" ,\r\n \"Craven Community College\" ,\r\n \"Davidson County Community College\" ,\r\n \"Durham Technical Community College\" ,\r\n \"Edgecombe Community College\" ,\r\n \"Fayetteville Technical Community College\" ,\r\n \"Forsyth Technical Community College\" ,\r\n \"Gaston College\" ,\r\n \"Guilford Technical Community College\" ,\r\n \"Halifax Community College\" ,\r\n \"Haywood Community College\" ,\r\n \"Isothermal Community College\" ,\r\n \"James Sprunt Community College\" ,\r\n \"Johnston Community College\" ,\r\n \"Lenoir Community College\" ,\r\n \"Martin Community College\" ,\r\n \"Mayland Community College\" ,\r\n \"McDowell Technical Community College\" ,\r\n \"Mitchell Community College\" ,\r\n \"Montgomery Community College\" ,\r\n \"Nash Community College\" ,\r\n \"Pamlico Community College\" ,\r\n \"Piedmont Community College\" ,\r\n \"Pitt Community College\" ,\r\n \"Randolph Community College\" ,\r\n \"Richmond Community College\" ,\r\n \"Roanoke-Chowan Community College\" ,\r\n \"Robeson Community College\" ,\r\n \"Rockingham Community College\" ,\r\n \"Rowan-Cabarrus Community College\" ,\r\n \"Sampson Community College\" ,\r\n \"Sandhills Community College\" ,\r\n \"South Piedmont Community College\" ,\r\n \"Southeastern Community College\" ,\r\n \"Southwestern Community College\" ,\r\n \"Stanly Community College\" ,\r\n \"Surry Community College\" ,\r\n \"Tri-County Community College\" ,\r\n \"Vance-Granville Community College\" ,\r\n \"Wake Technical Community College\" ,\r\n \"Warren Wilson College\" ,\r\n \"Wayne Community College\" ,\r\n \"Western Piedmont Community College\" ,\r\n \"Wilkes Community College\" ,\r\n \"Wilson Technical Community College\"\r\n ];\r\n \r\n cutOff = (this.communityColleges.length / 2);\r\n this.commColleges1 = this.communityColleges.slice(0, cutOff);\r\n this.commColleges2 = this.communityColleges.slice(cutOff);\r\n }\r\n\r\n activate() {\r\n var promises = [];\r\n this.common.activateController(promises, SelectCcModalCtrl.controllerId).then(() => {\r\n this.log(\"Activated Modal\");\r\n });\r\n }\r\n\r\n cancel() {\r\n this.$uibModalInstance.dismiss('cancel');\r\n }\r\n\r\n ok() {\r\n this.$uibModalInstance.close(this.selectedCC);\r\n }\r\n }\r\n\r\n angular.module(\"app\").controller(SelectCcModalCtrl.controllerId, SelectCcModalCtrl);\r\n}","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface ItaapScope extends ng.IScope {\r\n vm: Taap;\r\n }\r\n\r\n interface Itaap {\r\n taapProspectView: TaapProspectView;\r\n first: string\r\n }\r\n\r\n export class TaapProspectView {\r\n source: string;\r\n name: IPersonName;\r\n email: string;\r\n mailingAddress: ProspectAddress;\r\n additionalData: any;\r\n }\r\n\r\n class PersonName implements IPersonName {\r\n first: string;\r\n middle: string;\r\n last: string;\r\n suffix: string;\r\n nickName: string;\r\n }\r\n\r\n class ProspectAddress {\r\n street1: string;\r\n street2: string;\r\n city: string;\r\n state: string;\r\n country: string;\r\n county: string;\r\n zip: string;\r\n }\r\n\r\n class AdditionalData {\r\n appliedToUncInstitution: boolean;\r\n deniedAdmission: boolean;\r\n denialsReceivedFrom: Array;\r\n acceptedToUncInstitution: boolean;\r\n acceptedFrom: Array;\r\n eligible: boolean;\r\n entryTerm: string;\r\n entryYear: number;\r\n intendedMajor: string;\r\n attendedComunityCollege: any;\r\n ccDegree: string;\r\n gradDate: Date;\r\n graduationYear: number;\r\n unweightedGPA: number;\r\n }\r\n\r\n class UncCollege {\r\n name: string;\r\n applicationDefinitionId: string;\r\n }\r\n\r\n class Taap implements Itaap {\r\n static controllerId: string = \"taap\";\r\n first: string;\r\n static $inject: string[] = [\"$location\", \"common\", \"Restangular\", \"communityCollegeService\"];\r\n show: string;\r\n taapProspectView: TaapProspectView;\r\n currentYear: number;\r\n disableForm: boolean;\r\n showSpinner: boolean;\r\n errorReason: string;\r\n multiSelectSettings: any;\r\n defaultDdlText: any;\r\n denialsReceivedFrom: any;\r\n acceptedFrom: Array;\r\n uncColleges: Array;\r\n communityColleges: Array;\r\n log: (msg, data?, showToast?) => void;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n\r\n constructor(private $location: ng.ILocationService, private common: ICommonFactory, private Restangular: Restangular.IService, private communityCollegeService: ICommunityCollegeService) {\r\n this.log = common.logger.getLogFn(Taap.controllerId);\r\n this.logError = common.logger.getLogFn(Taap.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(Taap.controllerId, \"success\");\r\n\r\n this.taapProspectView = new TaapProspectView();\r\n this.taapProspectView.mailingAddress = new ProspectAddress();\r\n this.taapProspectView.name = new PersonName();\r\n this.taapProspectView.additionalData = new AdditionalData();\r\n this.taapProspectView.additionalData.denialsReceivedFrom = [];\r\n this.taapProspectView.additionalData.acceptedFrom = [];\r\n this.denialsReceivedFrom = [];\r\n this.acceptedFrom = [];\r\n this.communityColleges = communityCollegeService.getCommunityColleges();\r\n\r\n var month: number = new Date().getMonth();\r\n\r\n this.currentYear = new Date().getFullYear();\r\n if (month >= 9)\r\n this.currentYear++;\r\n this.common.authentication.authenticate(true).then(result => {\r\n if (result) {\r\n this.activate();\r\n }\r\n });\r\n\r\n\r\n\r\n }\r\n\r\n activate() {\r\n var promises = [this.getUncSchools(), this.getUserProfile(), this.userHasProspect()];\r\n this.common.activateController(promises, Taap.controllerId)\r\n .then(() => {\r\n if (!this.show) {\r\n this.show = \"Name\";\r\n\r\n }\r\n this.logSuccess(\"Activated TAAP\");\r\n });\r\n this.multiSelectSettings = {\r\n smartButtonMaxItems: 2,\r\n displayProp: \"name\",\r\n idProp: \"applicationDefinitionId\",\r\n showCheckAll: false\r\n };\r\n this.defaultDdlText = {\r\n buttonDefaultText: \"Select one or more options\"\r\n };\r\n\r\n }\r\n\r\n getUncSchools(): ng.IPromise {\r\n return this.Restangular.all(\"institutions/getUncSchools\").getList().then((result) => {\r\n this.uncColleges = result;\r\n\r\n }, (reason) => {\r\n this.errorReason = reason;\r\n this.show = \"Error\";\r\n this.logError(reason, reason);\r\n });\r\n }\r\n\r\n userHasProspect(): ng.IPromise {\r\n return this.Restangular.one(\"Prospect/isProspectSubmitted\").get().then((result) => {\r\n if (result) {\r\n this.disableForm = true;\r\n this.show = \"Submitted\"\r\n }\r\n }, (reason) => {\r\n this.errorReason = reason;\r\n this.show = \"Error\";\r\n this.logError(reason, reason);\r\n\r\n });\r\n }\r\n\r\n getUserProfile(): ng.IPromise {\r\n //var deferred = this.common.$q.defer();\r\n\r\n return this.Restangular.one(\"users/profile\").get()\r\n .then((result) => {\r\n if (result) {\r\n this.taapProspectView.name.first = result.firstName;\r\n this.taapProspectView.name.middle = result.middleName;\r\n this.taapProspectView.name.last = result.lastName;\r\n this.taapProspectView.name.suffix = result.suffix;\r\n this.taapProspectView.email = result.email;\r\n result.mailAddress = result.mailAddress || new ProspectAddress();\r\n this.taapProspectView.mailingAddress.street1 = result.mailAddress.street;\r\n this.taapProspectView.mailingAddress.street2 = result.mailAddress.street2;\r\n this.taapProspectView.mailingAddress.city = result.mailAddress.city;\r\n this.taapProspectView.mailingAddress.state = result.mailAddress.state;\r\n this.taapProspectView.mailingAddress.zip = result.mailAddress.postalCode;\r\n this.taapProspectView.mailingAddress.county = result.mailAddress.county;\r\n this.taapProspectView.mailingAddress.country = result.mailAddress.country;\r\n //Profile carry over.\r\n this.taapProspectView.name.nickName = result.nickname;\r\n this.taapProspectView.additionalData.dayTime = result.daytimePhone;\r\n this.taapProspectView.additionalData.evening = result.eveningPhone;\r\n }\r\n }, (reason) => {\r\n this.logError(\"An error occurred while retrieving your profile.\", reason, true);\r\n });\r\n\r\n }\r\n\r\n\r\n submit() {\r\n this.showSpinner = true;\r\n this.taapProspectView.additionalData.denialsReceivedFrom = _.map(this.denialsReceivedFrom, \"name\");\r\n this.taapProspectView.additionalData.acceptedFrom = _.map(this.acceptedFrom, \"name\");\r\n var denials = _.map(this.denialsReceivedFrom, \"applicationDefinitionId\");\r\n var accept = _.map(this.acceptedFrom, \"applicationDefinitionId\");\r\n var allIds = _.union(denials, accept);\r\n\r\n this.taapProspectView.additionalData.excludedIds = allIds;\r\n\r\n\r\n if (this.taapProspectView.additionalData.deniedAdmission && !this.taapProspectView.additionalData.acceptedToUncInstitution) {\r\n this.taapProspectView.additionalData.eligible = true;\r\n }\r\n else {\r\n this.taapProspectView.additionalData.eligible = false;\r\n }\r\n\r\n\r\n this.Restangular.all(\"Prospect/insertprospecttaap\").post({ prospect: this.taapProspectView, excludedAppIds: allIds })\r\n .then((result) => {\r\n this.showSpinner = false;\r\n if (this.acceptedFrom.length > 0) {\r\n this.show = \"Ineligible\";\r\n }\r\n else if (this.denialsReceivedFrom.length < 1) {\r\n this.show = \"NotDenied\";\r\n }\r\n else {\r\n this.show = \"ThankYou\";\r\n }\r\n this.disableForm = true;\r\n this.showSpinner = false;\r\n }, (reason) => {\r\n this.showSpinner = false;\r\n this.errorReason = reason;\r\n this.show = \"Error\"\r\n this.disableForm = true;\r\n this.showSpinner = false;\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n }\r\n\r\n angular.module(\"app\").controller(Taap.controllerId, Taap);\r\n}","/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface ItaapLandingScope extends ng.IScope {\r\n vm: TaapLanding;\r\n }\r\n\r\n interface ItaapLanding {\r\n \r\n }\r\n\r\n class TaapLanding implements ItaapLanding {\r\n static controllerId: string = \"taapLanding\";\r\n static $inject: string[] = [\"$scope\", \"common\"];\r\n\r\n constructor(private $scope: ItaapLandingScope, private common: ICommonFactory) {\r\n \r\n\r\n this.activate();\r\n }\r\n\r\n activate() {\r\n var promises = [];\r\n this.common.activateController(promises, TaapLanding.controllerId);\r\n }\r\n }\r\n\r\n angular.module(\"app\").controller(TaapLanding.controllerId, TaapLanding);\r\n}","/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IuncSchoolsScope extends ng.IScope {\r\n vm: uncSchoolsCtrl\r\n }\r\n interface IuncSchoolsCtrl {\r\n uncSchools: Array;\r\n show: string;\r\n activate: () => void;\r\n }\r\n\r\n class uncSchoolsCtrl implements IuncSchoolsCtrl {\r\n static controllerId: string = \"uncSchoolsCtrl\";\r\n\r\n static $inject: string[] = [\"$location\", \"common\", \"$sce\", \"$sanitize\", \"Restangular\"];\r\n\r\n uncSchools: Array;\r\n show: string;\r\n errorReason: string;\r\n log: (msg, data?, showToast?) => void;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n\r\n constructor(private $location: ng.ILocationService, private common: ICommonFactory, private $sce: ng.ISCEService, private $sanitize: ng.sanitize.ISanitizeService, private Restangular: Restangular.IService) {\r\n this.log = common.logger.getLogFn(uncSchoolsCtrl.controllerId);\r\n this.logError = common.logger.getLogFn(uncSchoolsCtrl.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(uncSchoolsCtrl.controllerId, \"success\");\r\n this.activate();\r\n }\r\n\r\n activate() {\r\n var promises = [];\r\n this.common.activateController(promises, uncSchoolsCtrl.controllerId).then(() => {\r\n this.show = \"appStatePage\";\r\n this.getUncSchools();\r\n });\r\n }\r\n\r\n getUncSchools(): ng.IPromise {\r\n return this.Restangular.all(\"institutions/getUncSchools\").getList().then((result) => {\r\n this.uncSchools = result;\r\n\r\n }, (reason) => {\r\n this.errorReason = reason;\r\n this.show = \"Error\";\r\n this.logError(reason, reason);\r\n });\r\n }\r\n\r\n validateHtml(html: any) {\r\n return this.$sce.trustAsHtml(html);\r\n //return html;\r\n }\r\n\r\n formatDate(origDate: Date) {\r\n var test = new Date(origDate.toString()).toLocaleDateString();\r\n return test;\r\n }\r\n }\r\n\r\n angular.module(\"app\").controller(\"uncSchoolsCtrl\", uncSchoolsCtrl);\r\n}","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\"\r\n\r\n interface ITestPrep {\r\n }\r\n\r\n interface ITestPrepScope extends ng.IScope {\r\n vm: TestPrep;\r\n }\r\n\r\n interface Prospect {\r\n additionalData: any;\r\n }\r\n\r\n class TestPrep implements ITestPrep {\r\n static $inject: Array = [\"common\", \"Restangular\", \"$scope\", \"$location\", \"$rootScope\",\"config\"];\r\n static controllerId: string = \"testPrep\";\r\n log: (msg, data?, showToast?) => void;\r\n logError: (msg, data?, showToast?) => void;\r\n firstName: string;\r\n middleName: string;\r\n user: any;\r\n\r\n constructor(private common: ICommonFactory, private Restangular: Restangular.IService, private $scope: ITestPrepScope, private $location: ng.ILocationService, private $rootScope: ng.IRootScopeService, private config: IConfig) {\r\n this.log = common.logger.getLogFn(TestPrep.controllerId);\r\n this.logError = common.logger.getLogFn(TestPrep.controllerId, \"error\");\r\n\r\n var test = this.$rootScope.$on(this.config.events.login,\r\n (data: any): void => {\r\n sessionStorage.setItem(\"loginRedirect\", \"true\");\r\n });\r\n\r\n var test2 = this.$rootScope.$on(this.config.events.logout,\r\n (data: any): void => {\r\n sessionStorage.removeItem(\"loginRedirect\");\r\n });\r\n\r\n\r\n this.activate();\r\n }\r\n\r\n activate() {\r\n var promises = [];\r\n this.common.activateController(promises, TestPrep.controllerId)\r\n .then(() => {\r\n this.log(\"Activated Test Prep page\");\r\n var login = sessionStorage.getItem(\"loginRedirect\");\r\n if (login) {\r\n this.openCfncTools();\r\n sessionStorage.removeItem(\"loginRedirect\");\r\n }\r\n });\r\n }\r\n\r\n openCfncTools() {\r\n this.Restangular.one(\"users/testPrepProfile\").get()\r\n .then((result) => {\r\n if (result) {\r\n this.user = result;\r\n var hostName = \"testprep.ncmentor.org\";\r\n window.open('http://' + hostName + '/partner/handoff/index.cfm?pud=' + this.user.userId + '&hud=' + this.user.userIdHash + '&email=' + this.user.email + '&first_name=' + this.user.firstName,\r\n 'popwin','menubar=no,directories=no,personalbar=no,resizable=yes,scrollbars=yes,status=no,toolbar=yes,width=750,height=500');\r\n }\r\n }, (reason) => {\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n }\r\n angular.module(\"app\").controller(TestPrep.controllerId, TestPrep);\r\n} ","namespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IConfirmModalScope extends ng.IScope {\r\n close: () => void;\r\n remove: () => void;\r\n cancel: () => void;\r\n doRemove: boolean;\r\n }\r\n\r\n interface IConfirmModal {\r\n\r\n }\r\n\r\n interface ISchoolData { schoolName: string; terms: any; }\r\n\r\n class ConfirmModal implements IConfirmModal {\r\n static $inject: Array = [\"$uibModalInstance\", \"common\", \"$scope\", \"$resource\"];\r\n static controllerId: string = \"ConfirmModal\";\r\n private log;\r\n constructor(private $uibModalInstance: ng.ui.bootstrap.IModalServiceInstance, private common: ICommonFactory, private $scope: IConfirmModalScope, private $resource: ng.resource.IResourceService) {\r\n this.log = common.logger.getLogFn(ConfirmModal.controllerId);\r\n $scope.close = () => this.close();\r\n $scope.remove = () => this.remove();\r\n $scope.cancel = () => this.cancel();\r\n }\r\n\r\n close() {\r\n this.$uibModalInstance.dismiss();\r\n }\r\n\r\n remove() {\r\n this.$scope.doRemove = true;\r\n this.$uibModalInstance.close(this.$scope.doRemove);\r\n }\r\n\r\n cancel() {\r\n this.$scope.doRemove = false;\r\n this.$uibModalInstance.close(this.$scope.doRemove);\r\n }\r\n }\r\n\r\n angular.module(\"app\").controller(ConfirmModal.controllerId, ConfirmModal);\r\n} ","namespace Cfnc {\r\n \"use strict\";\r\n\r\n interface ITestScoreScope extends ng.IScope {\r\n vm: TestScore;\r\n dateOptions: any;\r\n }\r\n\r\n interface ITestScore {\r\n }\r\n\r\n class TestScore implements ITestScore {\r\n static controllerId: string = \"testScore\";\r\n static $inject: Array = [\"$location\", \"common\", \"Restangular\", \"$scope\", \"$uibModal\", \"$http\", \"$document\", \"config\", \"helper\"];\r\n private log;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n pdfButtonDisable: boolean;\r\n emailButtonDisable: boolean;\r\n isSaving: boolean;\r\n templateUrl: string;\r\n satSubjectTests: any;\r\n testResults: any;\r\n testIDs: any;\r\n apExams: any;\r\n ibTests: any;\r\n total: any;\r\n maxDate: Date;\r\n minDate: Date;\r\n opened: boolean;\r\n accuplacerOpened: boolean;\r\n assetOpened: boolean;\r\n actOpened: boolean;\r\n actCheck: boolean;\r\n newActOpened: boolean;\r\n compassOpened: boolean;\r\n exploreOpened: boolean;\r\n psatOpened: boolean;\r\n satOpened: boolean;\r\n toeflOpened: boolean;\r\n workKeysOpened: boolean;\r\n gmatOpened: boolean;\r\n greOpened: boolean;\r\n lsatOpened: boolean;\r\n mcatOpened: boolean;\r\n hasScorePsat: any;\r\n hasScoreSat: any;\r\n hasScoreSatSubject: any;\r\n hasScoreExplore: any;\r\n hasScorePlan: any;\r\n hasScoreAct: any;\r\n hasScoreWorkKeys: any;\r\n hasScoreApExams: any;\r\n hasScoreToefl: any;\r\n hasScoreAccuplacer: any;\r\n hasScoreAsset: any;\r\n hasScoreCompass: any;\r\n hasScoreIbTests: any;\r\n hasScoreGre: any;\r\n hasScoreGmat: any;\r\n hasScoreLsat: any;\r\n hasScoreMcat: any;\r\n newActVersion: boolean;\r\n editActForm: boolean;\r\n actDateCheck: boolean;\r\n\r\n originalAccuplacer: any;\r\n originalAct: any;\r\n originalAsset: any;\r\n originalCompass: any;\r\n originalExplore: any;\r\n originalGmat: any;\r\n originalGre: any;\r\n originalLsat: any;\r\n originalMcat: any;\r\n originalPlan: any;\r\n originalPsat: any;\r\n originalSat: any;\r\n originalToefl: any;\r\n originalWorkkeys: any;\r\n\r\n psatTotal: number;\r\n planComposite: number;\r\n exploreComposite: number;\r\n\r\n editSatSubjectTests: any;\r\n editAPExams: any;\r\n editIBTests: any;\r\n\r\n constructor(private $location: ng.ILocationService,\r\n private common: ICommonFactory,\r\n private Restangular: Restangular.IService,\r\n private $scope: ITestScoreScope,\r\n private $uibModal: ng.ui.bootstrap.IModalService,\r\n private $http: any,\r\n private $document: ng.IDocumentService,\r\n private config: IConfig,\r\n private helper: IHelper) {\r\n\r\n this.log = common.logger.getLogFn(TestScore.controllerId);\r\n this.logError = common.logger.getLogFn(TestScore.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(TestScore.controllerId, \"success\");\r\n this.templateUrl = \"psat\";\r\n this.opened = false;\r\n this.editActForm = false;\r\n this.actDateCheck = false;\r\n this.maxDate = new Date();\r\n this.minDate = new Date(1899, 12);\r\n $scope.dateOptions = {\r\n showWeeks: false,\r\n maxDate: this.maxDate\r\n };\r\n\r\n this.satSubjectTests = [\r\n { code: \"6\", name: \"Biology E (Ecological)\" },\r\n { code: \"7\", name: \"Biology M (Molecular)\" },\r\n { code: \"8\", name: \"Chemistry\" },\r\n { code: \"9\", name: \"Chinese with Listening\" },\r\n { code: \"10\", name: \"French\" },\r\n { code: \"11\", name: \"French with Listening\" },\r\n { code: \"12\", name: \"German\" },\r\n { code: \"13\", name: \"German with Listening\" },\r\n { code: \"14\", name: \"Italian\" },\r\n { code: \"15\", name: \"Japanese with Listening\" },\r\n { code: \"16\", name: \"Korean with Listening\" },\r\n { code: \"17\", name: \"Latin\" },\r\n { code: \"18\", name: \"Literature\" },\r\n { code: \"19\", name: \"Mathematics Level 1\" },\r\n { code: \"20\", name: \"Mathematics Level 2\" },\r\n { code: \"21\", name: \"Modern Hebrew\" },\r\n { code: \"22\", name: \"Physics\" },\r\n { code: \"23\", name: \"Spanish\" },\r\n { code: \"24\", name: \"Spanish with Listening\" },\r\n { code: \"25\", name: \"U.S. History\" },\r\n { code: \"26\", name: \"World History\" }\r\n ]\r\n\r\n this.apExams = [\r\n { code: \"39\", name: \"Biology\" },\r\n { code: \"40\", name: \"Calculus AB\" },\r\n { code: \"41\", name: \"Calculus BC\" },\r\n { code: \"8\", name: \"Chemistry\" },\r\n { code: \"42\", name: \"Chinese Language and Culture\" },\r\n { code: \"43\", name: \"Comparative Government and Politics\" },\r\n { code: \"44\", name: \"Computer Science A\" },\r\n { code: \"45\", name: \"Computer Science AB\" },\r\n { code: \"46\", name: \"English Language\" },\r\n { code: \"47\", name: \"English Literature\" },\r\n { code: \"48\", name: \"Environmental Science\" },\r\n { code: \"49\", name: \"European History\" },\r\n { code: \"50\", name: \"French Language\" },\r\n { code: \"51\", name: \"French Literature\" },\r\n { code: \"52\", name: \"German Language\" },\r\n { code: \"53\", name: \"Human Geography\" },\r\n { code: \"54\", name: \"Italian Language and Culture\" },\r\n { code: \"55\", name: \"Japanese Language and Culture\" },\r\n { code: \"56\", name: \"Latin Literature\" },\r\n { code: \"57\", name: \"Latin: Vergil\" },\r\n { code: \"58\", name: \"Macroeconomics\" },\r\n { code: \"59\", name: \"Microeconomics\" },\r\n { code: \"60\", name: \"Music Theory\" },\r\n { code: \"61\", name: \"Physics B\" },\r\n { code: \"62\", name: \"Physics C\" },\r\n { code: \"63\", name: \"Psychology\" },\r\n { code: \"64\", name: \"Spanish Language\" },\r\n { code: \"65\", name: \"Spanish Literature\" },\r\n { code: \"66\", name: \"Statistics\" },\r\n { code: \"67\", name: \"Studio Art\" },\r\n { code: \"68\", name: \"U.S. Government & Politics\" },\r\n { code: \"25\", name: \"U.S. History\" },\r\n { code: \"26\", name: \"World History\" }\r\n ]\r\n\r\n this.ibTests = [\r\n { code: \"77\", name: \"Anthropology\" },\r\n { code: \"78\", name: \"Social-Higher Level\" },\r\n { code: \"79\", name: \"Art-Higher Level\" },\r\n { code: \"80\", name: \"Biology-Higher Level\" },\r\n { code: \"81\", name: \"Chemistry-Higher Level\" },\r\n { code: \"82\", name: \"Computer Sci-Higher Level\" },\r\n { code: \"83\", name: \"Computer Sci-Subsidiary Level\" },\r\n { code: \"84\", name: \"Economics-Higher Level\" },\r\n { code: \"85\", name: \"English A1-Higher Level\" },\r\n { code: \"86\", name: \"English B-Higher Level\" },\r\n { code: \"87\", name: \"Environmental Sys-Higher Level\" },\r\n { code: \"88\", name: \"French A1-Higher Level\" },\r\n { code: \"89\", name: \"French A1-Subsidiary Level\" },\r\n { code: \"90\", name: \"French B-Higher Level\" },\r\n { code: \"91\", name: \"French B-Subsidiary Level\" },\r\n { code: \"92\", name: \"Pilot French B\" },\r\n { code: \"93\", name: \"German A1-Higher Level\" },\r\n { code: \"94\", name: \"German A1-Subsidiary Level\" },\r\n { code: \"95\", name: \"German B-Higher Level\" },\r\n { code: \"96\", name: \"German B-Subsidiary Level\" },\r\n { code: \"97\", name: \"History of the Islamic World\" },\r\n { code: \"98\", name: \"Info Tech in a Global Society\" },\r\n { code: \"99\", name: \"Language A2\" },\r\n { code: \"17\", name: \"Latin\" },\r\n { code: \"100\", name: \"Spanish A1-Higher Level\" },\r\n { code: \"101\", name: \"Spanish A1-Subsidiary Level\" },\r\n { code: \"102\", name: \"Spanish B-Higher Level\" },\r\n { code: \"103\", name: \"Spanish B-Subsidiary Level\" },\r\n { code: \"104\", name: \"Geography-Higher Level\" },\r\n { code: \"105\", name: \"History-Africa-Higher Level\" },\r\n { code: \"106\", name: \"History-Americas-Higher Level\" },\r\n { code: \"107\", name: \"History-Europe-Higher Level\" },\r\n { code: \"108\", name: \"History-E/SE Asia & Aust-Higher\" },\r\n { code: \"109\", name: \"History-W/S Asia-Higher Level\" },\r\n { code: \"110\", name: \"Management-Higher Level\" },\r\n { code: \"111\", name: \"Math-Higher Level\" },\r\n { code: \"112\", name: \"Advanced Mathematics\" },\r\n { code: \"113\", name: \"Mathematical Methods\" },\r\n { code: \"114\", name: \"Mathematical Studies\" },\r\n { code: \"115\", name: \"Music-Higher Level\" },\r\n { code: \"116\", name: \"Music-Subsidiary Level\" },\r\n { code: \"117\", name: \"Philosophy-Higher Level\" },\r\n { code: \"118\", name: \"Physics-Higher Level\" },\r\n { code: \"119\", name: \"Physics-Subsidiary Level\" },\r\n { code: \"120\", name: \"Psychology-Higher Level\" },\r\n { code: \"121\", name: \"Design Technology-Higher Level\" },\r\n { code: \"122\", name: \"Theatre Arts-Higher Level\" },\r\n { code: \"123\", name: \"Theatre Arts-Subsidiary Level\" },\r\n ]\r\n\r\n this.testIDs = [\r\n { code: \"1\", name: \"Accuplacer\" },\r\n { code: \"2\", name: \"ACT\" },\r\n { code: \"3\", name: \"AP Exams\" },\r\n { code: \"4\", name: \"Asset\" },\r\n { code: \"5\", name: \"Compass\" },\r\n { code: \"6\", name: \"EXPLORE\" },\r\n { code: \"7\", name: \"IB Tests\" },\r\n { code: \"8\", name: \"PLAN\" },\r\n { code: \"9\", name: \"PSAT\" },\r\n { code: \"10\", name: \"SAT\" },\r\n { code: \"11\", name: \"SAT Subject Tests\" },\r\n { code: \"12\", name: \"TOEFL\" },\r\n { code: \"13\", name: \"WorkKeys\" },\r\n { code: \"14\", name: \"GMAT\" },\r\n { code: \"15\", name: \"GRE\" },\r\n { code: \"16\", name: \"LSAT\" },\r\n { code: \"17\", name: \"MCAT\" },\r\n ]\r\n\r\n this.activate();\r\n\r\n }\r\n\r\n activate() {\r\n var promises = [];\r\n this.common.activateController(promises, TestScore.controllerId)\r\n .then(() => {\r\n this.log(\"Activated Test Scores View\");\r\n this.getTestScores();\r\n });\r\n }\r\n\r\n getTestScores() {\r\n this.Restangular.one(\"TestScores/getTestScores\").get().then((results) => {\r\n this.testResults = results;\r\n this.hasScoreAccuplacer = results.accuplacer != null ? true : false;\r\n this.hasScoreAct = results.act != null ? true : false;\r\n this.hasScoreApExams = results.apExams.tests.length != 0 ? true : false;\r\n this.hasScoreAsset = results.asset != null ? true : false;\r\n this.hasScoreCompass = results.compass != null ? true : false;\r\n this.hasScoreExplore = results.explore != null ? true : false;\r\n this.hasScoreGmat = results.gmat != null ? true : false;\r\n this.hasScoreGre = results.gre != null ? true : false;\r\n this.hasScoreIbTests = results.ibTests.tests.length != 0 ? true : false;\r\n this.hasScoreLsat = results.lsat != null ? true : false;\r\n this.hasScoreMcat = results.mcat != null ? true : false;\r\n this.hasScorePlan = results.plan != null ? true : false;\r\n this.hasScorePsat = results.psat != null ? true : false;\r\n this.hasScoreSat = results.sat != null ? true : false;\r\n this.hasScoreSatSubject = results.satSubjectTests.tests.length != 0 ? true : false;\r\n this.hasScoreToefl = results.toefl != null ? true : false;\r\n this.hasScoreWorkKeys = results.workKeys != null ? true : false;\r\n\r\n this.originalAccuplacer = _.cloneDeep(this.testResults.accuplacer);\r\n this.originalAct = _.cloneDeep(results.act);\r\n this.originalAsset = _.cloneDeep(results.asset);\r\n this.originalCompass = _.cloneDeep(results.compass);\r\n this.originalExplore = _.cloneDeep(results.explore);\r\n this.originalGmat = _.cloneDeep(results.gmat);\r\n this.originalGre = _.cloneDeep(results.gre);\r\n this.originalLsat = _.cloneDeep(results.lsat);\r\n this.originalMcat = _.cloneDeep(results.mcat);\r\n this.originalPlan = _.cloneDeep(results.plan);\r\n this.originalPsat = _.cloneDeep(results.psat);\r\n this.originalSat = _.cloneDeep(results.sat);\r\n this.originalToefl = _.cloneDeep(results.toefl);\r\n this.originalWorkkeys = _.cloneDeep(results.workKeys);\r\n this.editAPExams = _.cloneDeep(results.apExams.tests);\r\n this.editSatSubjectTests = _.cloneDeep(results.satSubjectTests.tests);\r\n this.editIBTests = _.cloneDeep(results.ibTests.tests);\r\n this.checkSatValues();\r\n this.checkACTValues();\r\n }, (reason) => {\r\n console.error(reason);\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n createNewItem = (arrayToExpand: any): void => {\r\n var newItem: any = {\r\n id: 0,\r\n testName: \"\",\r\n scoreID: \"\",\r\n score: \"\",\r\n date: \"\",\r\n editMode: true\r\n };\r\n arrayToExpand.unshift(newItem);\r\n };\r\n\r\n cancelTestAccuplacer(test: any, originalTest: any) {\r\n this.testResults.accuplacer = _.cloneDeep(this.originalAccuplacer);\r\n }\r\n\r\n cancelTestAct(test: any, originalTest: any) {\r\n this.testResults.act = _.cloneDeep(this.originalAct);\r\n }\r\n\r\n cancelTestAsset(test: any, originalTest: any) {\r\n this.testResults.asset = _.cloneDeep(this.originalAsset);\r\n }\r\n\r\n cancelTestCompass(test: any, originalTest: any) {\r\n this.testResults.compass = _.cloneDeep(this.originalCompass);\r\n }\r\n\r\n cancelTestExplore(test: any, originalTest: any) {\r\n this.testResults.explore = _.cloneDeep(this.originalExplore);\r\n }\r\n\r\n cancelTestPlan(test: any, originalTest: any) {\r\n this.testResults.plan = _.cloneDeep(this.originalPlan);\r\n }\r\n\r\n cancelTestPsat(test: any, originalTest: any) {\r\n this.testResults.psat = _.cloneDeep(this.originalPsat);\r\n }\r\n\r\n cancelTestSat(test: any, originalTest: any) {\r\n this.testResults.sat = _.cloneDeep(this.originalSat);\r\n }\r\n\r\n cancelTestToefl(test: any, originalTest: any) {\r\n this.testResults.toefl = _.cloneDeep(this.originalToefl);\r\n }\r\n\r\n cancelTestWorkKeys(test: any, originalTest: any) {\r\n this.fixTestDate(this.originalWorkkeys);\r\n console.log(this.testResults.workKeys);\r\n console.log(this.originalWorkkeys);\r\n this.testResults.workKeys = _.cloneDeep(this.originalWorkkeys);\r\n }\r\n\r\n cancelTestGmat(test: any, originalTest: any) {\r\n this.testResults.gmat = _.cloneDeep(this.originalGmat);\r\n }\r\n\r\n cancelTestGre(test: any, originalTest: any) {\r\n this.testResults.gre = _.cloneDeep(this.originalGre);\r\n }\r\n\r\n cancelTestLsat(test: any, originalTest: any) {\r\n this.testResults.lsat = _.cloneDeep(this.originalLsat);\r\n }\r\n\r\n cancelTestMcat(test: any, originalTest: any) {\r\n this.testResults.mcat = _.cloneDeep(this.originalMcat);\r\n }\r\n\r\n cancelTestEdit(test: any, originalTest: any) {\r\n console.log(\"did you even run this function?\");\r\n console.log(test);\r\n console.log(originalTest);\r\n test = _.cloneDeep(originalTest);\r\n test = ng.copy(originalTest);\r\n }\r\n\r\n cancelEditIBTests = (itemToRemove: any, index: any): void => {\r\n console.log(itemToRemove);\r\n console.log(index);\r\n if (itemToRemove.id != 0) {\r\n var originalName = this.testResults.ibTests.tests[index];\r\n itemToRemove.editMode = false;\r\n itemToRemove.name = originalName;\r\n\r\n } else {\r\n this.editIBTests.splice(index, 1);\r\n };\r\n };\r\n\r\n checkSatValues() {\r\n if (this.hasScorePsat) {\r\n this.psatTotal = Number(this.testResults.psat.reading) + Number(this.testResults.psat.math) + Number(this.testResults.psat.writing);\r\n }\r\n if (this.hasScoreSat)\r\n this.testResults.sat.composite = Number(this.testResults.sat.reading) + Number(this.testResults.sat.math) + Number(this.testResults.sat.writing);\r\n }\r\n\r\n checkACTValues() {\r\n if (this.hasScoreAct) {\r\n this.testResults.act.composite = Math.round(((Number(this.testResults.act.english) + Number(this.testResults.act.math) + Number(this.testResults.act.reading) + Number(this.testResults.act.science)) / 4));\r\n this.checkActDate();\r\n }\r\n if (this.hasScoreExplore)\r\n this.exploreComposite = Math.round(((Number(this.testResults.explore.english) + Number(this.testResults.explore.math) + Number(this.testResults.explore.reading) + Number(this.testResults.explore.science)) / 4));\r\n if (this.hasScorePlan)\r\n this.planComposite = Math.round(((Number(this.testResults.plan.english) + Number(this.testResults.plan.math) + Number(this.testResults.plan.reading) + Number(this.testResults.plan.science)) / 4));\r\n }\r\n\r\n checkActDate() {\r\n this.newActVersion = moment(this.testResults.act.date).isAfter(moment('2015-08-31 23:59:59'));\r\n }\r\n\r\n cancelEdit = (editArray: any, originalArray: any, itemToRemove: any, index: any): void => {\r\n if (itemToRemove.id != 0) {\r\n var originalName = _.cloneDeep(originalArray[index]);\r\n itemToRemove.editMode = false;\r\n itemToRemove.score = originalName.score;\r\n itemToRemove.date = moment(originalName.date).toDate();\r\n itemToRemove = _.cloneDeep(originalName);\r\n\r\n } else {\r\n editArray.splice(index, 1);\r\n };\r\n };\r\n\r\n fixTestDate(editTest: any) {\r\n editTest.date = moment(editTest.date).toDate();\r\n }\r\n\r\n removeFromList(listObject: any, index: any) {\r\n listObject.splice(index, 1);\r\n }\r\n\r\n saveAccuplacer() {\r\n this.testResults.accuplacer.readingComp = this.testResults.accuplacer.readingComp != null ? this.testResults.accuplacer.readingComp.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.accuplacer.sentenceSkills = this.testResults.accuplacer.sentenceSkills != null ? this.testResults.accuplacer.sentenceSkills.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.accuplacer.arithmetic = this.testResults.accuplacer.arithmetic != null ? this.testResults.accuplacer.arithmetic.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.accuplacer.elemAlgebra = this.testResults.accuplacer.elemAlgebra != null ? this.testResults.accuplacer.elemAlgebra.replace(/^0+(?!\\.|$)/, '') : null;\r\n var test = {\r\n ReadingComp: this.testResults.accuplacer.readingComp,\r\n SentenceSkills: this.testResults.accuplacer.sentenceSkills,\r\n Arithmetic: this.testResults.accuplacer.arithmetic,\r\n ElemAlgebra: this.testResults.accuplacer.elemAlgebra,\r\n Date: this.testResults.accuplacer.date\r\n }\r\n this.Restangular.all(\"TestScores/AddAccuplacer\").post(test).then((results) => {\r\n this.originalAccuplacer = _.cloneDeep(this.testResults.accuplacer);\r\n this.logSuccess(\"Accuplacer scores saved.\", \"\", true);\r\n }, (reason) => {\r\n console.error(reason);\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n saveACT() {\r\n this.checkACTValues();\r\n this.testResults.act.english = this.testResults.act.english != null ? this.testResults.act.english.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.act.mechanics = this.testResults.act.mechanics != null ? this.testResults.act.mechanics.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.act.rhetoricalSkills = this.testResults.act.rhetoricalSkills != null ? this.testResults.act.rhetoricalSkills.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.act.math = this.testResults.act.math != null ? this.testResults.act.math.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.act.reading = this.testResults.act.reading != null ? this.testResults.act.reading.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.act.science = this.testResults.act.science != null ? this.testResults.act.science.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.act.preAlgebra = this.testResults.act.preAlgebra != null ? this.testResults.act.preAlgebra.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.act.intermediateAlgebra = this.testResults.act.intermediateAlgebra != null ? this.testResults.act.intermediateAlgebra.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.act.planGeometry = this.testResults.act.planGeometry != null ? this.testResults.act.planGeometry.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.act.socialStudies = this.testResults.act.socialStudies != null ? this.testResults.act.socialStudies.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.act.artsLit = this.testResults.act.artsLit != null ? this.testResults.act.artsLit.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.act.englishWriting = this.testResults.act.englishWriting != null ? this.testResults.act.englishWriting.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.act.writing = this.testResults.act.writing != null ? this.testResults.act.writing.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.act.prepareHighMath != null ? this.testResults.act.prepareHighMath.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.act.numberQuantity != null ? this.testResults.act.numberQuantity.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.act.functions != null ? this.testResults.act.functions.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.act.integratingSkills != null ? this.testResults.act.integratingSkills.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.act.modeling != null ? this.testResults.act.modeling.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.act.dataInterpretation != null ? this.testResults.act.dataInterpretation.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.act.scientificInvestigation != null ? this.testResults.act.scientificInvestigation.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.act.modelEvaluation != null ? this.testResults.act.modelEvaluation.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.act.writingProduction != null ? this.testResults.act.writingProduction.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.act.languageKnowledge != null ? this.testResults.act.languageKnowledge.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.act.englishConventions != null ? this.testResults.act.englishConventions.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.act.keyIdeasDetails != null ? this.testResults.act.keyIdeasDetails.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.act.craftStructure != null ? this.testResults.act.craftStructure.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.act.integratingKnowledge != null ? this.testResults.act.integratingKnowledge.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.act.understandingComplexTexts != null ? this.testResults.act.understandingComplexTexts.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.act.ideasAnalysis != null ? this.testResults.act.ideasAnalysis.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.act.developmentSupport != null ? this.testResults.act.developmentSupport.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.act.organization != null ? this.testResults.act.organization.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.act.languageConventions != null ? this.testResults.act.languageConventions.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.act.geometry != null ? this.testResults.act.geometry.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.act.algebra != null ? this.testResults.act.algebra.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.act.statistics != null ? this.testResults.act.statistics.replace(/^0+(?!\\.|$)/, '') : null;\r\n var test = {\r\n English: this.testResults.act.english,\r\n Mechanics: this.testResults.act.mechanics,\r\n RhetoricalSkills: this.testResults.act.rhetoricalSkills,\r\n Math: this.testResults.act.math,\r\n Reading: this.testResults.act.reading,\r\n Science: this.testResults.act.science,\r\n PreAlgebra: this.testResults.act.preAlgebra,\r\n Geometry: this.testResults.act.geometry,\r\n IntermediateAlgebra: this.testResults.act.intermediateAlgebra,\r\n PlanGeometry: this.testResults.act.planGeometry,\r\n SocialStudies: this.testResults.act.socialStudies,\r\n ArtsLit: this.testResults.act.artsLit,\r\n EnglishWriting: this.testResults.act.englishWriting,\r\n Writing: this.testResults.act.writing,\r\n PrepareHighMath: this.testResults.act.prepareHighMath,\r\n NumberQuantity: this.testResults.act.numberQuantity,\r\n Functions: this.testResults.act.functions,\r\n IntegratingSkills: this.testResults.act.integratingSkills,\r\n Modeling: this.testResults.act.modeling,\r\n DataInterpretation: this.testResults.act.dataInterpretation,\r\n ScientificInvestigation: this.testResults.act.scientificInvestigation,\r\n ModelEvaluation: this.testResults.act.modelEvaluation,\r\n WritingProduction: this.testResults.act.writingProduction,\r\n LanguageKnowledge: this.testResults.act.languageKnowledge,\r\n EnglishConventions: this.testResults.act.englishConventions,\r\n KeyIdeasDetails: this.testResults.act.keyIdeasDetails,\r\n CraftStructure: this.testResults.act.craftStructure,\r\n IntegratingKnowledge: this.testResults.act.integratingKnowledge,\r\n UnderstandingComplexTexts: this.testResults.act.understandingComplexTexts,\r\n IdeasAnalysis: this.testResults.act.ideasAnalysis,\r\n DevelopmentSupport: this.testResults.act.developmentSupport,\r\n Organization: this.testResults.act.organization,\r\n LanguageConventions: this.testResults.act.languageConventions,\r\n Algebra: this.testResults.act.algebra,\r\n Statistics: this.testResults.act.statistics,\r\n Composite: this.testResults.act.composite,\r\n Date: this.testResults.act.date\r\n }\r\n this.Restangular.all(\"TestScores/AddACT\").post(test).then((results) => {\r\n this.checkACTValues();\r\n this.originalAct = _.cloneDeep(this.testResults.act);\r\n this.logSuccess(\"ACT scores saved.\", \"\", true);\r\n }, (reason) => {\r\n console.error(reason);\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n addTestToList(testType: any, scoreList: any, originalList: any, editList: any, newTest: any, index: any) {\r\n var newTestIndex = _.findIndex(scoreList, { 'code': newTest.scoreID });\r\n var found = _.findIndex(scoreList, ['scoreID', newTest.scoreID]);\r\n if (found == -1) {\r\n editList[index].testName = scoreList[newTestIndex].name;\r\n this.saveListTest(testType, newTest);\r\n newTest.editMode = false;\r\n originalList = _.cloneDeep(editList);\r\n }\r\n else {\r\n this.logError(\"Test is already in the list\", \"\", true);\r\n }\r\n }\r\n\r\n saveListTest(testID: any, newTest: any) {\r\n newTest.score = newTest.score.replace(/^0+(?!\\.|$)/, '');\r\n var test = {\r\n Id: newTest.id,\r\n TestID: testID,\r\n ScoreID: parseInt(newTest.scoreID),\r\n Score: newTest.score,\r\n Date: newTest.date\r\n }\r\n this.Restangular.all(\"TestScores/AddListTest\").post(test).then((results) => {\r\n this.logSuccess(\"Test saved.\", \"\", true);\r\n newTest.id = results;\r\n }, (reason) => {\r\n console.error(reason);\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n saveAsset() {\r\n this.testResults.asset.writingSkills = this.testResults.asset.writingSkills != null ? this.testResults.asset.writingSkills.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.asset.readingSkills = this.testResults.asset.readingSkills != null ? this.testResults.asset.readingSkills.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.asset.numericalSkills = this.testResults.asset.numericalSkills != null ? this.testResults.asset.numericalSkills.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.asset.elemAlgebra = this.testResults.asset.elemAlgebra != null ? this.testResults.asset.elemAlgebra.replace(/^0+(?!\\.|$)/, '') : null;\r\n var test = {\r\n WritingSkills: this.testResults.asset.writingSkills,\r\n ReadingSkills: this.testResults.asset.readingSkills,\r\n NumericalSkills: this.testResults.asset.numericalSkills,\r\n ElemAlgebra: this.testResults.asset.elemAlgebra,\r\n Date: this.testResults.asset.date\r\n }\r\n this.Restangular.all(\"TestScores/AddAsset\").post(test).then((results) => {\r\n this.originalAsset = _.cloneDeep(this.testResults.asset);\r\n this.logSuccess(\"Asset scores saved.\", \"\", true);\r\n }, (reason) => {\r\n console.error(reason);\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n saveCompass() {\r\n this.testResults.compass.writingSkills = this.testResults.compass.writingSkills != null ? this.testResults.compass.writingSkills.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.compass.readingSkills = this.testResults.compass.readingSkills != null ? this.testResults.compass.readingSkills.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.compass.numericalSkills = this.testResults.compass.numericalSkills != null ? this.testResults.compass.numericalSkills.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.compass.algebra = this.testResults.compass.algebra != null ? this.testResults.compass.algebra.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.compass.collegeAlgebra = this.testResults.compass.collegeAlgebra != null ? this.testResults.compass.collegeAlgebra.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.compass.geometry = this.testResults.compass.geometry != null ? this.testResults.compass.geometry.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.compass.trigonometry = this.testResults.compass.trigonometry != null ? this.testResults.compass.trigonometry.replace(/^0+(?!\\.|$)/, '') : null;\r\n var test = {\r\n WritingSkills: this.testResults.compass.writingSkills,\r\n ReadingSkills: this.testResults.compass.readingSkills,\r\n NumericalSkills: this.testResults.compass.numericalSkills,\r\n Algebra: this.testResults.compass.algebra,\r\n CollegeAlgebra: this.testResults.compass.collegeAlgebra,\r\n Geometry: this.testResults.compass.geometry,\r\n Trigonometry: this.testResults.compass.trigonometry,\r\n Date: this.testResults.compass.date\r\n }\r\n this.Restangular.all(\"TestScores/AddCompass\").post(test).then((results) => {\r\n this.originalCompass = _.cloneDeep(this.testResults.compass);\r\n this.logSuccess(\"Compass scores saved.\", \"\", true);\r\n }, (reason) => {\r\n console.error(reason);\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n saveExplore() {\r\n this.testResults.explore.english = this.testResults.explore.english != null ? this.testResults.explore.english.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.explore.mechanics = this.testResults.explore.mechanics != null ? this.testResults.explore.mechanics.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.explore.rhetoricalSkills = this.testResults.explore.rhetoricalSkills != null ? this.testResults.explore.rhetoricalSkills.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.explore.math = this.testResults.explore.math != null ? this.testResults.explore.math.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.explore.reading = this.testResults.explore.reading != null ? this.testResults.explore.reading.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.explore.science = this.testResults.explore.science != null ? this.testResults.explore.science.replace(/^0+(?!\\.|$)/, '') : null;\r\n var test = {\r\n English: this.testResults.explore.english,\r\n Mechanics: this.testResults.explore.mechanics,\r\n RhetoricalSkills: this.testResults.explore.rhetoricalSkills,\r\n Math: this.testResults.explore.math,\r\n Reading: this.testResults.explore.reading,\r\n Science: this.testResults.explore.science,\r\n Date: this.testResults.explore.date\r\n }\r\n this.Restangular.all(\"TestScores/AddExplore\").post(test).then((results) => {\r\n this.checkACTValues();\r\n this.logSuccess(\"Explore scores saved.\", \"\", true);\r\n this.originalExplore = _.cloneDeep(this.testResults.explore);\r\n }, (reason) => {\r\n console.error(reason);\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n savePlan() {\r\n this.testResults.plan.english = this.testResults.plan.english != null ? this.testResults.plan.english.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.plan.mechanics = this.testResults.plan.mechanics != null ? this.testResults.plan.mechanics.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.plan.rhetoricalSkills = this.testResults.plan.rhetoricalSkills != null ? this.testResults.plan.rhetoricalSkills.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.plan.math = this.testResults.plan.math != null ? this.testResults.plan.math.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.plan.reading = this.testResults.plan.reading != null ? this.testResults.plan.reading.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.plan.science = this.testResults.plan.science != null ? this.testResults.plan.science.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.plan.preAlgebra = this.testResults.plan.preAlgebra != null ? this.testResults.plan.preAlgebra.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.plan.geometry = this.testResults.plan.geometry != null ? this.testResults.plan.geometry.replace(/^0+(?!\\.|$)/, '') : null;\r\n var test = {\r\n English: this.testResults.plan.english,\r\n Mechanics: this.testResults.plan.mechanics,\r\n RhetoricalSkills: this.testResults.plan.rhetoricalSkills,\r\n Math: this.testResults.plan.math,\r\n Reading: this.testResults.plan.reading,\r\n Science: this.testResults.plan.science,\r\n PreAlgebra: this.testResults.plan.preAlgebra,\r\n Geometry: this.testResults.plan.geometry,\r\n Date: this.testResults.plan.date\r\n }\r\n this.Restangular.all(\"TestScores/AddPlan\").post(test).then((results) => {\r\n this.checkACTValues();\r\n this.logSuccess(\"Plan scores saved.\", \"\", true);\r\n this.originalPlan = _.cloneDeep(this.testResults.plan);\r\n }, (reason) => {\r\n console.error(reason);\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n savePSAT() {\r\n this.testResults.psat.reading = this.testResults.psat.reading != null ? this.testResults.psat.reading.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.psat.math = this.testResults.psat.math != null ? this.testResults.psat.math.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.psat.writing = this.testResults.psat.writing != null ? this.testResults.psat.writing.replace(/^0+(?!\\.|$)/, '') : null;\r\n var test = {\r\n Reading: this.testResults.psat.reading,\r\n Math: this.testResults.psat.math,\r\n Writing: this.testResults.psat.writing,\r\n Date: this.testResults.psat.date\r\n }\r\n this.Restangular.all(\"TestScores/AddPSAT\").post(test).then((results) => {\r\n this.logSuccess(\"PSAT scores saved.\", \"\", true);\r\n this.originalPsat = _.cloneDeep(this.testResults.psat);\r\n this.psatTotal = Number(this.testResults.sat.reading) + Number(this.testResults.sat.math) + Number(this.testResults.sat.writing);\r\n }, (reason) => {\r\n console.error(reason);\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n saveSAT() {\r\n this.checkSatValues();\r\n this.testResults.sat.reading = this.testResults.sat.reading != null ? this.testResults.sat.reading.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.sat.math = this.testResults.sat.math != null ? this.testResults.sat.math.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.sat.writing = this.testResults.sat.writing != null ? this.testResults.sat.writing.replace(/^0+(?!\\.|$)/, '') : null;\r\n var test = {\r\n Reading: this.testResults.sat.reading,\r\n Math: this.testResults.sat.math,\r\n Writing: this.testResults.sat.writing,\r\n Composite: this.testResults.sat.composite,\r\n Date: this.testResults.sat.date\r\n }\r\n this.Restangular.all(\"TestScores/AddSAT\").post(test).then((results) => {\r\n this.logSuccess(\"SAT scores saved.\", \"\", true);\r\n this.originalSat = _.cloneDeep(this.testResults.sat);\r\n }, (reason) => {\r\n console.error(reason);\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n saveTOEFL() {\r\n this.testResults.toefl.ibtTotal = this.testResults.toefl.ibtTotal != null ? this.testResults.toefl.ibtTotal.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.toefl.ibtListening = this.testResults.toefl.ibtListening != null ? this.testResults.toefl.ibtListening.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.toefl.ibtReading = this.testResults.toefl.ibtReading != null ? this.testResults.toefl.ibtReading.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.toefl.ibtSpeaking = this.testResults.toefl.ibtSpeaking != null ? this.testResults.toefl.ibtSpeaking.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.toefl.ibtWriting = this.testResults.toefl.ibtWriting != null ? this.testResults.toefl.ibtWriting.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.toefl.pbtTotal = this.testResults.toefl.pbtTotal != null ? this.testResults.toefl.pbtTotal.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.toefl.pbtListeningComp = this.testResults.toefl.pbtListeningComp != null ? this.testResults.toefl.pbtListeningComp.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.toefl.pbtWritten = this.testResults.toefl.pbtWritten != null ? this.testResults.toefl.pbtWritten.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.toefl.pbtReadingComp = this.testResults.toefl.pbtReadingComp != null ? this.testResults.toefl.pbtReadingComp.replace(/^0+(?!\\.|$)/, '') : null;\r\n var test = {\r\n IBTTotal: this.testResults.toefl.ibtTotal,\r\n IBTListening: this.testResults.toefl.ibtListening,\r\n IBTReading: this.testResults.toefl.ibtReading,\r\n IBTSpeaking: this.testResults.toefl.ibtSpeaking,\r\n IBTWriting: this.testResults.toefl.ibtWriting,\r\n PBTTotal: this.testResults.toefl.pbtTotal,\r\n PBTListeningComp: this.testResults.toefl.pbtListeningComp,\r\n PBTWritten: this.testResults.toefl.pbtWritten,\r\n PBTReadingComp: this.testResults.toefl.pbtReadingComp,\r\n Date: this.testResults.toefl.date\r\n }\r\n this.Restangular.all(\"TestScores/AddTOEFL\").post(test).then((results) => {\r\n this.logSuccess(\"TOEFL scores saved.\", \"\", true);\r\n this.originalToefl = _.cloneDeep(this.testResults.toefl);\r\n }, (reason) => {\r\n console.error(reason);\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n saveWorkKeys() {\r\n this.testResults.workKeys.appMath = this.testResults.workKeys.appMath != null ? this.testResults.workKeys.appMath.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.workKeys.appMathScale = this.testResults.workKeys.appMathScale != null ? this.testResults.workKeys.appMathScale.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.workKeys.locatingInfo = this.testResults.workKeys.locatingInfo != null ? this.testResults.workKeys.locatingInfo.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.workKeys.locatingInfoScale = this.testResults.workKeys.locatingInfoScale != null ? this.testResults.workKeys.locatingInfoScale.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.workKeys.readingInfo = this.testResults.workKeys.readingInfo != null ? this.testResults.workKeys.readingInfo.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.workKeys.readingInfoScale = this.testResults.workKeys.readingInfoScale != null ? this.testResults.workKeys.readingInfoScale.replace(/^0+(?!\\.|$)/, '') : null;\r\n var test = {\r\n AppMath: this.testResults.workKeys.appMath,\r\n AppMathScale: this.testResults.workKeys.appMathScale,\r\n LocatingInfo: this.testResults.workKeys.locatingInfo,\r\n LocatingInfoScale: this.testResults.workKeys.locatingInfoScale,\r\n ReadingInfo: this.testResults.workKeys.readingInfo,\r\n ReadingInfoScale: this.testResults.workKeys.readingInfoScale,\r\n Date: this.testResults.workKeys.date\r\n }\r\n this.Restangular.all(\"TestScores/AddWorkKeys\").post(test).then((results) => {\r\n this.logSuccess(\"WorkKeys scores saved.\", \"\", true);\r\n this.originalWorkkeys = _.cloneDeep(this.testResults.workKeys);\r\n }, (reason) => {\r\n console.error(reason);\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n saveGMAT() {\r\n this.testResults.gmat.total = this.testResults.gmat.total != null ? this.testResults.gmat.total.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.gmat.quantitative = this.testResults.gmat.quantitative != null ? this.testResults.gmat.quantitative.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.gmat.analytical = this.testResults.gmat.analytical != null ? this.testResults.gmat.analytical.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.gmat.verbal = this.testResults.gmat.verbal != null ? this.testResults.gmat.verbal.replace(/^0+(?!\\.|$)/, '') : null;\r\n var test = {\r\n Total: this.testResults.gmat.total,\r\n Quantitative: this.testResults.gmat.quantitative,\r\n Analytical: this.testResults.gmat.analytical,\r\n Verbal: this.testResults.gmat.verbal,\r\n Date: this.testResults.gmat.date\r\n }\r\n this.Restangular.all(\"TestScores/AddGMAT\").post(test).then((results) => {\r\n this.logSuccess(\"GMAT scores saved.\", \"\", true);\r\n this.originalGmat = _.cloneDeep(this.testResults.gmat);\r\n }, (reason) => {\r\n console.error(reason);\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n saveGRE() {\r\n this.testResults.gre.verbalReasoning = this.testResults.gre.verbalReasoning != null ? this.testResults.gre.verbalReasoning.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.gre.quanReasoning = this.testResults.gre.quanReasoning != null ? this.testResults.gre.quanReasoning.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.gre.analyticalWriting = this.testResults.gre.analyticalWriting != null ? this.testResults.gre.analyticalWriting.replace(/^0+(?!\\.|$)/, '') : null;\r\n var test = {\r\n VerbalReasoning: this.testResults.gre.verbalReasoning,\r\n QuanReasoning: this.testResults.gre.quanReasoning,\r\n AnalyticalWriting: this.testResults.gre.analyticalWriting,\r\n Date: this.testResults.gre.date\r\n }\r\n this.Restangular.all(\"TestScores/AddGRE\").post(test).then((results) => {\r\n this.logSuccess(\"GRE scores saved.\", \"\", true);\r\n this.originalGre = _.cloneDeep(this.testResults.gre);\r\n }, (reason) => {\r\n console.error(reason);\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n saveLSAT() {\r\n this.testResults.lsat.score = this.testResults.lsat.score != null ? this.testResults.lsat.score.replace(/^0+(?!\\.|$)/, '') : null;\r\n var test = {\r\n Score: this.testResults.lsat.score,\r\n Date: this.testResults.lsat.date\r\n }\r\n this.Restangular.all(\"TestScores/AddLSAT\").post(test).then((results) => {\r\n this.logSuccess(\"LSAT scores saved.\", \"\", true);\r\n this.originalLsat = _.cloneDeep(this.testResults.lsat);\r\n }, (reason) => {\r\n console.error(reason);\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n saveMCAT() {\r\n this.testResults.mcat.total = this.testResults.mcat.total != null ? this.testResults.mcat.total.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.mcat.physicalScience = this.testResults.mcat.physicalScience != null ? this.testResults.mcat.physicalScience.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.mcat.biologicalScience = this.testResults.mcat.biologicalScience != null ? this.testResults.mcat.biologicalScience.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.mcat.verbalReasoning = this.testResults.mcat.verbalReasoning != null ? this.testResults.mcat.verbalReasoning.replace(/^0+(?!\\.|$)/, '') : null;\r\n this.testResults.mcat.writingSample = this.testResults.mcat.writingSample != null ? this.testResults.mcat.writingSample.replace(/^0+(?!\\.|$)/, '') : null;\r\n var test = {\r\n Total: this.testResults.mcat.total,\r\n PhysicalScience: this.testResults.mcat.physicalScience,\r\n BiologicalScience: this.testResults.mcat.biologicalScience,\r\n VerbalReasoning: this.testResults.mcat.verbalReasoning,\r\n WritingSample: this.testResults.mcat.writingSample,\r\n Date: this.testResults.mcat.date\r\n }\r\n this.Restangular.all(\"TestScores/AddMCAT\").post(test).then((results) => {\r\n this.originalMcat = _.cloneDeep(this.testResults.mcat);\r\n this.logSuccess(\"MCAT scores saved.\", \"\", true);\r\n }, (reason) => {\r\n console.error(reason);\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n\r\n removeTest(testId: any) {\r\n switch (testId)\r\n {\r\n case 1:\r\n this.testResults.accuplacer = null;\r\n this.hasScoreAccuplacer = false;\r\n break;\r\n case 2:\r\n this.testResults.act = null;\r\n this.hasScoreAct = false;\r\n break;\r\n case 4:\r\n this.testResults.asset = null;\r\n this.hasScoreAsset = false;\r\n break;\r\n case 5:\r\n this.testResults.compass = null;\r\n this.hasScoreCompass = false;\r\n break;\r\n case 6:\r\n this.testResults.explore = null;\r\n this.hasScoreExplore = false;\r\n break;\r\n case 8:\r\n this.testResults.plan = null;\r\n this.hasScorePlan = false;\r\n break;\r\n case 9:\r\n this.testResults.psat = null;\r\n this.hasScorePsat = false;\r\n break;\r\n case 10:\r\n this.testResults.sat = null;\r\n this.hasScoreSat = false;\r\n break;\r\n case 12:\r\n this.testResults.toefl = null;\r\n this.hasScoreToefl = false;\r\n break;\r\n case 13:\r\n this.testResults.workKeys = null;\r\n this.hasScoreWorkKeys = false;\r\n break;\r\n case 14:\r\n this.testResults.gmat = null;\r\n this.hasScoreGmat = false;\r\n break;\r\n case 15:\r\n this.testResults.gre = null;\r\n this.hasScoreGre = false;\r\n break;\r\n case 16:\r\n this.testResults.lsat = null;\r\n this.hasScoreLsat = false;\r\n break;\r\n case 17:\r\n this.testResults.mcat = null;\r\n this.hasScoreMcat = false;\r\n break;\r\n }\r\n }\r\n\r\n deleteTest(testId: number, scoreId: any, test: any, hasTestValue: boolean) {\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/testScores/ConfirmModal.html',\r\n size: 'sm',\r\n controller: 'ConfirmModal',\r\n });\r\n modalInstance.result.then((val: boolean) => {\r\n if (val) {\r\n var testModel = { TestID: testId, ScoreID: scoreId };\r\n this.Restangular.all(\"TestScores/deleteTestScore\").post(testModel).then((results) => {\r\n this.removeTest(testId);\r\n this.logSuccess('Test Deleted', '', true);\r\n }, (reason) => {\r\n console.error(reason);\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n });\r\n }\r\n\r\n deleteListTest(testId: number, scoreId: any, hasTestValue: boolean, editList: any, originalList: any, index: number) {\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/testScores/ConfirmModal.html',\r\n size: 'sm',\r\n controller: 'ConfirmModal',\r\n });\r\n modalInstance.result.then((val: boolean) => {\r\n if (val) {\r\n var testModel = { TestID: testId, ScoreID: scoreId };\r\n this.Restangular.all(\"TestScores/deleteTestScore\").post(testModel).then((results) => {\r\n this.removeFromList(editList, index);\r\n originalList = _.cloneDeep(editList);\r\n if(editList.length == 0)\r\n hasTestValue = false;\r\n this.logSuccess('Test Deleted', '', true);\r\n }, (reason) => {\r\n console.error(reason);\r\n this.logError(reason, reason, true);\r\n });\r\n }\r\n });\r\n }\r\n\r\n print = ($event) => {\r\n this.pdfButtonDisable = true;\r\n var location: any = window.location;\r\n var headHtml = \"\";\r\n $(this.$document[0][\"head\"]).children(\"link\").each((i: number, l: any) => {\r\n headHtml += l.outerHTML;\r\n });\r\n var html = \"\" + headHtml + \"\" + $event.currentTarget.parentElement.parentElement.innerHTML + \"\";\r\n this.helper.openFile(this.config.apiHost + \"/pdf/download\", { html: encodeURIComponent(html), url: location.origin }).then(() => {\r\n this.pdfButtonDisable = false;\r\n });\r\n\r\n };\r\n\r\n email = ($event) => {\r\n this.emailButtonDisable = true;\r\n var location: any = window.location;\r\n var headHtml = \"\";\r\n $(this.$document[0][\"head\"]).children(\"link\").each((i: number, l: any) => {\r\n headHtml += l.outerHTML;\r\n });\r\n var html = \"\" + headHtml + \"\" + $event.currentTarget.parentElement.parentElement.innerHTML + \"\";\r\n this.Restangular.all(\"pdf\").all(\"email\").post({ html: encodeURIComponent(html), url: location.origin })\r\n .then((response) => {\r\n this.emailButtonDisable = false;\r\n this.logSuccess(\"Email has been sent to the email address associated with your CFNC profile.\", \"Email has been sent to the email address associated with your CFNC profile.\", true);\r\n }, (reason) => {\r\n console.log(reason);\r\n this.logError(\"There was a problem sending your email. Please try again later.\", reason, true);\r\n }, (state) => {\r\n });\r\n }\r\n\r\n \r\n }\r\n\r\n angular.module(\"app\").controller(TestScore.controllerId, TestScore);\r\n}","namespace Cfnc {\r\n \"use strict\";\r\n\r\n interface ITranscriptModalScope extends ng.IScope {\r\n close: () => void;\r\n }\r\n\r\n interface ITranscriptModal {\r\n\r\n }\r\n\r\n class TranscriptModal implements ITranscriptModal {\r\n static $inject: Array = [\"$uibModalInstance\", \"common\", \"Restangular\", \"$scope\", \"$resource\"];\r\n static controllerId: string = \"TranscriptModal\";\r\n selectedDate: any;\r\n dateEvents: any;\r\n private log;\r\n constructor(private $uibModalInstance: ng.ui.bootstrap.IModalServiceInstance, private common: ICommonFactory, private Restangular: Restangular.IService, private $scope: ITranscriptModalScope, private $resource: ng.resource.IResourceService) {\r\n this.log = common.logger.getLogFn(TranscriptModal.controllerId);\r\n $scope.close = () => this.close();\r\n }\r\n\r\n close() {\r\n this.$uibModalInstance.dismiss();\r\n }\r\n }\r\n\r\n angular.module(\"app\").controller(TranscriptModal.controllerId, TranscriptModal);\r\n}","namespace Cfnc {\r\n \"use strict\";\r\n\r\n interface ITranscriptSchoolScope extends ng.IScope {\r\n vm: TranscriptSchool;\r\n }\r\n\r\n interface ITranscriptSchool {\r\n }\r\n\r\n class TranscriptSchool implements ITranscriptSchool {\r\n static controllerId: string = \"transcriptSchool\";\r\n static $inject: Array = [\"config\", \"$location\", \"common\", \"Restangular\", \"$scope\", \"$uibModal\", \"$http\", \"helper\"];\r\n private log;\r\n logError: (msg, data?, showToast?) => void;\r\n logSuccess: (msg, data?, showToast?) => void;\r\n loaded: boolean;\r\n pageNumber: number;\r\n totalSchools: number;\r\n startRow: number;\r\n endRow: number;\r\n schoolList: any;\r\n searchString: any;\r\n apiHost: any;\r\n\r\n constructor(private config: IConfig,\r\n private $location: ng.ILocationService,\r\n private common: ICommonFactory,\r\n private Restangular: Restangular.IService,\r\n private $scope: ITranscriptSchoolScope,\r\n private $uibModal: ng.ui.bootstrap.IModalService,\r\n private $http: ng.IHttpService,\r\n private helper: IHelper) {\r\n\r\n this.log = common.logger.getLogFn(TranscriptSchool.controllerId);\r\n this.logError = common.logger.getLogFn(TranscriptSchool.controllerId, \"error\");\r\n this.logSuccess = common.logger.getLogFn(TranscriptSchool.controllerId, \"success\");\r\n this.apiHost = this.config.apiHost;\r\n this.loaded = false;\r\n this.pageNumber = 1;\r\n this.searchString = \"\";\r\n \r\n this.activate();\r\n\r\n }\r\n\r\n activate() {\r\n var promises = [];\r\n this.common.activateController(promises, TranscriptSchool.controllerId)\r\n .then(() => {\r\n this.log(\"Activated E-Transcript School List View\");\r\n this.getTranscriptSchools(\"\");\r\n });\r\n }\r\n\r\n getTranscriptSchools(baseString: string) {\r\n var params = { pageNumber: this.pageNumber, startsWith: baseString };\r\n this.Restangular.one(\"transcripts/getTranscriptSchools\").get(params)\r\n .then((result: any) => {\r\n this.loaded = true;\r\n this.schoolList = result.schools;\r\n this.totalSchools = result.totalSchools;\r\n\r\n if (result.totalSchools > 0) {\r\n this.startRow = this.pageNumber === 1 ? 1 : (25 * (this.pageNumber - 1)) + 1;\r\n this.endRow = (this.startRow - 1) + result.schools.length;\r\n } else {\r\n this.startRow = 0;\r\n this.endRow = 0;\r\n }\r\n\r\n }, (reason) => {\r\n console.log(reason);\r\n this.logError(\"An error occurred while getting the list of schools.\", reason, true);\r\n });\r\n }\r\n\r\n GetTranscriptSchoolsFile() {\r\n this.Restangular.one(\"transcripts/getTranscriptSchoolsExport\").get()\r\n .then((result: any) => {\r\n }, (reason) => {\r\n console.log(reason);\r\n this.logError(\"An error occurred while getting the export.\", reason, true);\r\n });\r\n }\r\n\r\n checkCleared() {\r\n if (this.searchString == \"\")\r\n this.getTranscriptSchools(\"\");\r\n }\r\n\r\n openTranscriptModal() {\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/transcriptSchools/TranscriptModal.html',\r\n controller: 'TranscriptModal',\r\n size: 'lg'\r\n });\r\n }\r\n\r\n openFile = (httpPath, data) => {\r\n this.helper.openFile(httpPath).then(() => { },\r\n (reason) => {\r\n this.logError(\"An error occurred while saving the file\", reason);\r\n });\r\n }\r\n }\r\n\r\n angular.module(\"app\").controller(TranscriptSchool.controllerId, TranscriptSchool);\r\n}","/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n export interface IAddressService {\r\n countryList: Array;\r\n ncCountyList: Array;\r\n stateList: Array;\r\n validate: (addresses: Array) => ng.IPromise> ;\r\n }\r\n\r\n export interface IAddressListItem {\r\n label: string;\r\n value: string;\r\n }\r\n\r\n export class ValidationAddress implements IAddress {\r\n addressType: string;\r\n firstName: string;\r\n lastName: string;\r\n street: string;\r\n street2: string;\r\n city: string;\r\n state: string;\r\n postalCode: string;\r\n country: string;\r\n county: string;\r\n isVerified: boolean;\r\n resultCodes: string;\r\n userOverride: boolean;\r\n signature: string;\r\n key: string;\r\n }\r\n\r\n class VerifyAddressResults implements IVerifyAddressResultsViewModel {\r\n firstName: string;\r\n lastName: string;\r\n action: string;\r\n providedAddressHasErrors: boolean;\r\n key: string;\r\n providedAddress: ValidationAddress;\r\n suggestedAddress: ValidationAddress;\r\n\r\n }\r\n\r\n class AddressService implements IAddressService {\r\n static serviceId: string = \"addressService\";\r\n static $inject = [\"Restangular\", \"$q\", \"$uibModal\"];\r\n countryList: Array;\r\n ncCountyList: Array;\r\n stateList: Array\r\n\r\n constructor(private Restangular: Restangular.IService, private $q: ng.IQService, private $uibModal) {\r\n this.countryList = this.getCountryList();\r\n this.stateList = this.getStateList();\r\n this.ncCountyList = this.getNCCountyList();\r\n \r\n }\r\n\r\n validate(addresses: Array): ng.IPromise> {\r\n var q = [];\r\n var addressErrorResults = new Array();\r\n var results = new Array();\r\n var defer = this.$q.defer >();\r\n\r\n addresses.forEach((address) => {\r\n q.push(this.validateAddress(address));\r\n });\r\n\r\n this.$q.all(q).then((responses) => {\r\n responses.forEach((response: VerifyAddressResults, index: number) => {\r\n if (response !== null) {\r\n response.key = addresses[index].key || index.toString();\r\n\r\n if (response.providedAddressHasErrors) {\r\n addressErrorResults.push(response);\r\n }\r\n else {\r\n response.providedAddress.key = response.key;\r\n results.push(response.providedAddress);\r\n }\r\n }\r\n });\r\n\r\n if (addressErrorResults.length > 0) {\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/directives/cfncSelectAddress/cfncSelectAddressModal.html',\r\n controller: 'cfncSelectAddressModal',\r\n size: \"lg\",\r\n keyboard: false,\r\n backdrop: \"static\",\r\n resolve: {\r\n model: function () {\r\n return addressErrorResults;\r\n }\r\n },\r\n });\r\n\r\n modalInstance.result.then((selectedAddress) => {\r\n selectedAddress.forEach((selection) => {\r\n results.push(selection);\r\n });\r\n\r\n defer.resolve(results);\r\n }, (selectedAddress) => {\r\n selectedAddress.forEach((selection) => {\r\n results.push(selection);\r\n });\r\n\r\n defer.reject({ message: \"User Cancelled\", addresses: results });\r\n });\r\n\r\n } else {\r\n\r\n defer.resolve(results);\r\n }\r\n }, (reason) => {\r\n \r\n });\r\n\r\n return defer.promise;\r\n }\r\n\r\n private validateAddress(address: IAddress): ng.IPromise {\r\n var defer = this.$q.defer();\r\n if ([\"US\", \"CA\"].indexOf(address.country) > -1) {\r\n defer.promise = this.Restangular.all(\"Address\").all(\"Validate\").post(address)\r\n }\r\n else {\r\n defer.resolve(null);\r\n }\r\n\r\n return defer.promise;\r\n }\r\n\r\n private getCountryList(): Array {\r\n return [{ label: \"Afghanistan\", value: \"AF\" },\r\n { label: \"Albania\", value: \"AL\" },\r\n { label: \"Algeria\", value: \"DZ\" },\r\n { label: \"American Samoa\", value: \"AS\" },\r\n { label: \"Andorra\", value: \"AD\" },\r\n { label: \"Angola\", value: \"AO\" },\r\n { label: \"Anguilla\", value: \"AI\" },\r\n { label: \"Antarctica\", value: \"AQ\" },\r\n { label: \"Antigua and Barbuda\", value: \"AG\" },\r\n { label: \"Argentina\", value: \"AR\" },\r\n { label: \"Armenia\", value: \"AM\" },\r\n { label: \"Aruba\", value: \"AW\" },\r\n { label: \"Australia\", value: \"AU\" },\r\n { label: \"Austria\", value: \"AT\" },\r\n { label: \"Azerbaijan\", value: \"AZ\" },\r\n { label: \"Bahamas\", value: \"BS\" },\r\n { label: \"Bahrain\", value: \"BH\" },\r\n { label: \"Bangladesh\", value: \"BD\" },\r\n { label: \"Barbados\", value: \"BB\" },\r\n { label: \"Belarus\", value: \"BY\" },\r\n { label: \"Belgium\", value: \"BE\" },\r\n { label: \"Belize\", value: \"BZ\" },\r\n { label: \"Benin\", value: \"BJ\" },\r\n { label: \"Bermuda\", value: \"BM\" },\r\n { label: \"Bhutan\", value: \"BT\" },\r\n { label: \"Bolivia\", value: \"BO\" },\r\n { label: \"Bosnia and Herzegovina\", value: \"BA\" },\r\n { label: \"Botswana\", value: \"BW\" },\r\n { label: \"Bouvet Island\", value: \"BV\" },\r\n { label: \"Brazil\", value: \"BR\" },\r\n { label: \"British Indian Ocean Territory\", value: \"IO\" },\r\n { label: \"Brunei Darussalam\", value: \"BN\" },\r\n { label: \"Bulgaria\", value: \"BG\" },\r\n { label: \"Burkina Faso\", value: \"BF\" },\r\n { label: \"Burundi\", value: \"BI\" },\r\n { label: \"Cambodia\", value: \"KH\" },\r\n { label: \"Cameroon\", value: \"CM\" },\r\n { label: \"Canada\", value: \"CA\" },\r\n { label: \"Cape Verde\", value: \"CV\" },\r\n { label: \"Cayman Islands\", value: \"KY\" },\r\n { label: \"Central African Republic\", value: \"CF\" },\r\n { label: \"Chad\", value: \"TD\" },\r\n { label: \"Chile\", value: \"CL\" },\r\n { label: \"China\", value: \"CN\" },\r\n { label: \"Christmas Island\", value: \"CX\" },\r\n { label: \"Cocos (Keeling) Islands\", value: \"CC\" },\r\n { label: \"Colombia\", value: \"CO\" },\r\n { label: \"Comoros\", value: \"KM\" },\r\n { label: \"Congo\", value: \"CG\" },\r\n { label: \"Congo, The Democratic Republic of the\", value: \"CD\" },\r\n { label: \"Cook Islands\", value: \"CK\" },\r\n { label: \"Costa Rica\", value: \"CR\" },\r\n { label: \"Cote D'Ivoire\", value: \"CI\" },\r\n { label: \"Croatia\", value: \"HR\" },\r\n { label: \"Cuba\", value: \"CU\" },\r\n { label: \"Cyprus\", value: \"CY\" },\r\n { label: \"Czech Republic\", value: \"CZ\" },\r\n { label: \"Denmark\", value: \"DK\" },\r\n { label: \"Djibouti\", value: \"DJ\" },\r\n { label: \"Dominica\", value: \"DM\" },\r\n { label: \"Dominican Republic\", value: \"DO\" },\r\n { label: \"East Timor\", value: \"TP\" },\r\n { label: \"Ecuador\", value: \"EC\" },\r\n { label: \"Egypt\", value: \"EG\" },\r\n { label: \"El Salvador\", value: \"SV\" },\r\n { label: \"Equatorial Guinea\", value: \"GQ\" },\r\n { label: \"Eritrea\", value: \"ER\" },\r\n { label: \"Estonia\", value: \"EE\" },\r\n { label: \"Ethiopia\", value: \"ET\" },\r\n { label: \"Falkland Islands (Malvinas)\", value: \"FK\" },\r\n { label: \"Faroe Islands\", value: \"FO\" },\r\n { label: \"Fiji\", value: \"FJ\" },\r\n { label: \"Finland\", value: \"FI\" },\r\n { label: \"France\", value: \"FR\" },\r\n { label: \"French Guiana\", value: \"GF\" },\r\n { label: \"French Polynesia\", value: \"PF\" },\r\n { label: \"French Southern Territories\", value: \"TF\" },\r\n { label: \"Gabon\", value: \"GA\" },\r\n { label: \"Gambia\", value: \"GM\" },\r\n { label: \"Georgia\", value: \"GE\" },\r\n { label: \"Germany\", value: \"DE\" },\r\n { label: \"Ghana\", value: \"GH\" },\r\n { label: \"Gibraltar\", value: \"GI\" },\r\n { label: \"Greece\", value: \"GR\" },\r\n { label: \"Greenland\", value: \"GL\" },\r\n { label: \"Grenada\", value: \"GD\" },\r\n { label: \"Guadeloupe\", value: \"GP\" },\r\n { label: \"Guam\", value: \"GU\" },\r\n { label: \"Guatemala\", value: \"GT\" },\r\n { label: \"Guinea\", value: \"GN\" },\r\n { label: \"Guinea-Bissau\", value: \"GW\" },\r\n { label: \"Guyana\", value: \"GY\" },\r\n { label: \"Haiti\", value: \"HT\" },\r\n { label: \"Heard Island and Mcdonald Islands\", value: \"HM\" },\r\n { label: \"Holy See (Vatican City State)\", value: \"VA\" },\r\n { label: \"Honduras\", value: \"HN\" },\r\n { label: \"Hong Kong\", value: \"HK\" },\r\n { label: \"Hungary\", value: \"HU\" },\r\n { label: \"Iceland\", value: \"IS\" },\r\n { label: \"India\", value: \"IN\" },\r\n { label: \"Indonesia\", value: \"ID\" },\r\n { label: \"Iran, Islamic Republic of\", value: \"IR\" },\r\n { label: \"Iraq\", value: \"IQ\" },\r\n { label: \"Ireland\", value: \"IE\" },\r\n { label: \"Israel\", value: \"IL\" },\r\n { label: \"Italy\", value: \"IT\" },\r\n { label: \"Jamaica\", value: \"JM\" },\r\n { label: \"Japan\", value: \"JP\" },\r\n { label: \"Jordan\", value: \"JO\" },\r\n { label: \"Kazakstan\", value: \"KZ\" },\r\n { label: \"Kenya\", value: \"KE\" },\r\n { label: \"Kiribati\", value: \"KI\" },\r\n { label: \"Korea, Democratic People's Republic of\", value: \"KP\" },\r\n { label: \"Korea, Republic of\", value: \"KR\" },\r\n { label: \"Kuwait\", value: \"KW\" },\r\n { label: \"Kyrgyzstan\", value: \"KG\" },\r\n { label: \"Lao People's Democratic Republic\", value: \"LA\" },\r\n { label: \"Latvia\", value: \"LV\" },\r\n { label: \"Lebanon\", value: \"LB\" },\r\n { label: \"Lesotho\", value: \"LS\" },\r\n { label: \"Liberia\", value: \"LR\" },\r\n { label: \"Libyan Arab Jamahiriya\", value: \"LY\" },\r\n { label: \"Liechtenstein\", value: \"LI\" },\r\n { label: \"Lithuania\", value: \"LT\" },\r\n { label: \"Luxembourg\", value: \"LU\" },\r\n { label: \"Macau\", value: \"MO\" },\r\n { label: \"Macedonia, The Former Yugoslav Republic of\", value: \"MK\" },\r\n { label: \"Madagascar\", value: \"MG\" },\r\n { label: \"Malawi\", value: \"MW\" },\r\n { label: \"Malaysia\", value: \"MY\" },\r\n { label: \"Maldives\", value: \"MV\" },\r\n { label: \"Mali\", value: \"ML\" },\r\n { label: \"Malta\", value: \"MT\" },\r\n { label: \"Marshall Islands\", value: \"MH\" },\r\n { label: \"Martinique\", value: \"MQ\" },\r\n { label: \"Mauritania\", value: \"MR\" },\r\n { label: \"Mauritius\", value: \"MU\" },\r\n { label: \"Mayotte\", value: \"YT\" },\r\n { label: \"Mexico\", value: \"MX\" },\r\n { label: \"Micronesia, Federated States of\", value: \"FM\" },\r\n { label: \"Moldova, Republic of\", value: \"MD\" },\r\n { label: \"Monaco\", value: \"MC\" },\r\n { label: \"Mongolia\", value: \"MN\" },\r\n { label: \"Montserrat\", value: \"MS\" },\r\n { label: \"Morocco\", value: \"MA\" },\r\n { label: \"Mozambique\", value: \"MZ\" },\r\n { label: \"Myanmar\", value: \"MM\" },\r\n { label: \"Namibia\", value: \"NA\" },\r\n { label: \"Nauru\", value: \"NR\" },\r\n { label: \"Nepal\", value: \"NP\" },\r\n { label: \"Netherlands\", value: \"NL\" },\r\n { label: \"Netherlands Antilles\", value: \"AN\" },\r\n { label: \"New Caledonia\", value: \"NC\" },\r\n { label: \"New Zealand\", value: \"NZ\" },\r\n { label: \"Nicaragua\", value: \"NI\" },\r\n { label: \"Niger\", value: \"NE\" },\r\n { label: \"Nigeria\", value: \"NG\" },\r\n { label: \"Niue\", value: \"NU\" },\r\n { label: \"Norfolk Island\", value: \"NF\" },\r\n { label: \"Northern Mariana Islands\", value: \"MP\" },\r\n { label: \"Norway\", value: \"NO\" },\r\n { label: \"Oman\", value: \"OM\" },\r\n { label: \"Pakistan\", value: \"PK\" },\r\n { label: \"Palau\", value: \"PW\" },\r\n { label: \"Palestinian Territory, Occupied\", value: \"PS\" },\r\n { label: \"Panama\", value: \"PA\" },\r\n { label: \"Papua New Guinea\", value: \"PG\" },\r\n { label: \"Paraguay\", value: \"PY\" },\r\n { label: \"Peru\", value: \"PE\" },\r\n { label: \"Philippines\", value: \"PH\" },\r\n { label: \"Pitcairn\", value: \"PN\" },\r\n { label: \"Poland\", value: \"PL\" },\r\n { label: \"Portugal\", value: \"PT\" },\r\n { label: \"Puerto Rico\", value: \"PR\" },\r\n { label: \"Qatar\", value: \"QA\" },\r\n { label: \"Reunion\", value: \"RE\" },\r\n { label: \"Romania\", value: \"RO\" },\r\n { label: \"Russian Federation\", value: \"RU\" },\r\n { label: \"Rwanda\", value: \"RW\" },\r\n { label: \"Saint Helena\", value: \"SH\" },\r\n { label: \"Saint Kitts and Nevis\", value: \"KN\" },\r\n { label: \"Saint Lucia\", value: \"LC\" },\r\n { label: \"Saint Pierre and Miquelon\", value: \"PM\" },\r\n { label: \"Saint Vincent and the Grenadines\", value: \"VC\" },\r\n { label: \"Samoa\", value: \"WS\" },\r\n { label: \"San Marino\", value: \"SM\" },\r\n { label: \"Sao Tome and Principe\", value: \"ST\" },\r\n { label: \"Saudi Arabia\", value: \"SA\" },\r\n { label: \"Senegal\", value: \"SN\" },\r\n { label: \"Serbia and Montenegro\", value: \"CS\" },\r\n { label: \"Seychelles\", value: \"SC\" },\r\n { label: \"Sierra Leone\", value: \"SL\" },\r\n { label: \"Singapore\", value: \"SG\" },\r\n { label: \"Slovakia\", value: \"SK\" },\r\n { label: \"Slovenia\", value: \"SI\" },\r\n { label: \"Solomon Islands\", value: \"SB\" },\r\n { label: \"Somalia\", value: \"SO\" },\r\n { label: \"South Africa\", value: \"ZA\" },\r\n { label: \"South Georgia and the South Sandwich Islands\", value: \"GS\" },\r\n { label: \"Spain\", value: \"ES\" },\r\n { label: \"Sri Lanka\", value: \"LK\" },\r\n { label: \"Sudan\", value: \"SD\" },\r\n { label: \"Suriname\", value: \"SR\" },\r\n { label: \"Svalbard and Jan Mayen\", value: \"SJ\" },\r\n { label: \"Swaziland\", value: \"SZ\" },\r\n { label: \"Sweden\", value: \"SE\" },\r\n { label: \"Switzerland\", value: \"CH\" },\r\n { label: \"Syrian Arab Republic\", value: \"SY\" },\r\n { label: \"Taiwan\", value: \"TW\" },\r\n { label: \"Tajikistan\", value: \"TJ\" },\r\n { label: \"Tanzania, United Republic of\", value: \"TZ\" },\r\n { label: \"Thailand\", value: \"TH\" },\r\n { label: \"Togo\", value: \"TG\" },\r\n { label: \"Tokelau\", value: \"TK\" },\r\n { label: \"Tonga\", value: \"TO\" },\r\n { label: \"Trinidad and Tobago\", value: \"TT\" },\r\n { label: \"Tunisia\", value: \"TN\" },\r\n { label: \"Turkey\", value: \"TR\" },\r\n { label: \"Turkmenistan\", value: \"TM\" },\r\n { label: \"Turks and Caicos Islands\", value: \"TC\" },\r\n { label: \"Tuvalu\", value: \"TV\" },\r\n { label: \"Uganda\", value: \"UG\" },\r\n { label: \"Ukraine\", value: \"UA\" },\r\n { label: \"United Arab Emirates\", value: \"AE\" },\r\n { label: \"United Kingdom\", value: \"GB\" },\r\n { label: \"United States\", value: \"US\" },\r\n { label: \"United States Minor Outlying Islands\", value: \"UM\" },\r\n { label: \"Uruguay\", value: \"UY\" },\r\n { label: \"Uzbekistan\", value: \"UZ\" },\r\n { label: \"Vanuatu\", value: \"VU\" },\r\n { label: \"Venezuela\", value: \"VE\" },\r\n { label: \"Viet Nam\", value: \"VN\" },\r\n { label: \"Virgin Islands, British\", value: \"VG\" },\r\n { label: \"Virgin Islands, U.S.\", value: \"VI\" },\r\n { label: \"Wallis and Futuna\", value: \"WF\" },\r\n { label: \"Western Sahara\", value: \"EH\" },\r\n { label: \"Yemen\", value: \"YE\" },\r\n { label: \"Yugoslavia\", value: \"YU\" },\r\n { label: \"Zambia\", value: \"ZM\" },\r\n { label: \"Zimbabwe\", value: \"ZW\" }];\r\n }\r\n\r\n private getStateList(): Array {\r\n return [{ value: \"AL\", label: \"Alabama\" },\r\n { value: \"AK\", label: \"Alaska\" },\r\n { value: \"AS\", label: \"American Samoa\" },\r\n { value: \"AZ\", label: \"Arizona\" },\r\n { value: \"AR\", label: \"Arkansas\" },\r\n { value: \"AA\", label: \"Armed Forces Americas (AA)\" },\r\n { value: \"AP\", label: \"Armed Forces Pacific (AP)\" },\r\n { value: \"AE\", label: \"Armed Forces Other (AE)\" },\r\n { value: \"CA\", label: \"California\" },\r\n { value: \"CO\", label: \"Colorado\" },\r\n { value: \"CT\", label: \"Connecticut\" },\r\n { value: \"DE\", label: \"Delaware\" },\r\n { value: \"DC\", label: \"District of Columbia\" },\r\n { value: \"FM\", label: \"Federated States of Micronesia\" },\r\n { value: \"FL\", label: \"Florida\" },\r\n { value: \"GA\", label: \"Georgia\" },\r\n { value: \"GU\", label: \"Guam\" },\r\n { value: \"HI\", label: \"Hawaii\" },\r\n { value: \"ID\", label: \"Idaho\" },\r\n { value: \"IL\", label: \"Illinois\" },\r\n { value: \"IN\", label: \"Indiana\" },\r\n { value: \"IA\", label: \"Iowa\" },\r\n { value: \"KS\", label: \"Kansas\" },\r\n { value: \"KY\", label: \"Kentucky\" },\r\n { value: \"LA\", label: \"Louisiana\" },\r\n { value: \"ME\", label: \"Maine\" },\r\n { value: \"MH\", label: \"Marshall Islands\" },\r\n { value: \"MD\", label: \"Maryland\" },\r\n { value: \"MA\", label: \"Massachusetts\" },\r\n { value: \"MI\", label: \"Michigan\" },\r\n { value: \"MN\", label: \"Minnesota\" },\r\n { value: \"MS\", label: \"Mississippi\" },\r\n { value: \"MO\", label: \"Missouri\" },\r\n { value: \"MT\", label: \"Montana\" },\r\n { value: \"NE\", label: \"Nebraska\" },\r\n { value: \"NV\", label: \"Nevada\" },\r\n { value: \"NH\", label: \"New Hampshire\" },\r\n { value: \"NJ\", label: \"New Jersey\" },\r\n { value: \"NM\", label: \"New Mexico\" },\r\n { value: \"NY\", label: \"New York\" },\r\n { value: \"NC\", label: \"North Carolina\" },\r\n { value: \"ND\", label: \"North Dakota\" },\r\n { value: \"MP\", label: \"Northern Mariana Islands\" },\r\n { value: \"OH\", label: \"Ohio\" },\r\n { value: \"OK\", label: \"Oklahoma\" },\r\n { value: \"OR\", label: \"Oregon\" },\r\n { value: \"PA\", label: \"Pennsylvania\" },\r\n { value: \"PR\", label: \"Puerto Rico\" },\r\n { value: \"PW\", label: \"Palau\" },\r\n { value: \"RI\", label: \"Rhode Island\" },\r\n { value: \"SC\", label: \"South Carolina\" },\r\n { value: \"SD\", label: \"South Dakota\" },\r\n { value: \"TN\", label: \"Tennessee\" },\r\n { value: \"TX\", label: \"Texas\" },\r\n { value: \"UT\", label: \"Utah\" },\r\n { value: \"VT\", label: \"Vermont\" },\r\n { value: \"VI\", label: \"Virgin Islands\" },\r\n { value: \"VA\", label: \"Virginia\" },\r\n { value: \"WA\", label: \"Washington\" },\r\n { value: \"WV\", label: \"West Virginia\" },\r\n { value: \"WI\", label: \"Wisconsin\" },\r\n { value: \"WY\", label: \"Wyoming\" }];\r\n }\r\n\r\n private getNCCountyList(): Array {\r\n return [{ label: \"Alamance\", value: \"001\" },\r\n { label: \"Alexander\", value: \"002\" },\r\n { label: \"Alleghany\", value: \"003\" },\r\n { label: \"Anson\", value: \"004\" },\r\n { label: \"Ashe\", value: \"005\" },\r\n { label: \"Avery\", value: \"006\" },\r\n { label: \"Beaufort\", value: \"007\" },\r\n { label: \"Bertie\", value: \"008\" },\r\n { label: \"Bladen\", value: \"009\" },\r\n { label: \"Brunswick\", value: \"010\" },\r\n { label: \"Buncombe\", value: \"011\" },\r\n { label: \"Burke\", value: \"012\" },\r\n { label: \"Cabarrus\", value: \"013\" },\r\n { label: \"Caldwell\", value: \"014\" },\r\n { label: \"Camden\", value: \"015\" },\r\n { label: \"Carteret\", value: \"016\" },\r\n { label: \"Caswell\", value: \"017\" },\r\n { label: \"Catawba\", value: \"018\" },\r\n { label: \"Chatham\", value: \"019\" },\r\n { label: \"Cherokee\", value: \"020\" },\r\n { label: \"Chowan\", value: \"021\" },\r\n { label: \"Clay\", value: \"022\" },\r\n { label: \"Cleveland\", value: \"023\" },\r\n { label: \"Columbus\", value: \"024\" },\r\n { label: \"Craven\", value: \"025\" },\r\n { label: \"Cumberland\", value: \"026\" },\r\n { label: \"Currituck\", value: \"027\" },\r\n { label: \"Dare\", value: \"028\" },\r\n { label: \"Davidson\", value: \"029\" },\r\n { label: \"Davie\", value: \"030\" },\r\n { label: \"Duplin\", value: \"031\" },\r\n { label: \"Durham\", value: \"032\" },\r\n { label: \"Edgecombe\", value: \"033\" },\r\n { label: \"Forsyth\", value: \"034\" },\r\n { label: \"Franklin\", value: \"035\" },\r\n { label: \"Gaston\", value: \"036\" },\r\n { label: \"Gates\", value: \"037\" },\r\n { label: \"Graham\", value: \"038\" },\r\n { label: \"Granville\", value: \"039\" },\r\n { label: \"Greene\", value: \"040\" },\r\n { label: \"Guilford\", value: \"041\" },\r\n { label: \"Halifax\", value: \"042\" },\r\n { label: \"Harnett\", value: \"043\" },\r\n { label: \"Haywood\", value: \"044\" },\r\n { label: \"Henderson\", value: \"045\" },\r\n { label: \"Hertford\", value: \"046\" },\r\n { label: \"Hoke\", value: \"047\" },\r\n { label: \"Hyde\", value: \"048\" },\r\n { label: \"Iredell\", value: \"049\" },\r\n { label: \"Jackson\", value: \"050\" },\r\n { label: \"Johnston\", value: \"051\" },\r\n { label: \"Jones\", value: \"052\" },\r\n { label: \"Lee\", value: \"053\" },\r\n { label: \"Lenoir\", value: \"054\" },\r\n { label: \"Lincoln\", value: \"055\" },\r\n { label: \"Macon\", value: \"056\" },\r\n { label: \"Madison\", value: \"057\" },\r\n { label: \"Martin\", value: \"058\" },\r\n { label: \"McDowell\", value: \"059\" },\r\n { label: \"Mecklenburg\", value: \"060\" },\r\n { label: \"Mitchell\", value: \"061\" },\r\n { label: \"Montgomery\", value: \"062\" },\r\n { label: \"Moore\", value: \"063\" },\r\n { label: \"Nash\", value: \"064\" },\r\n { label: \"New Hanover\", value: \"065\" },\r\n { label: \"Northampton\", value: \"066\" },\r\n { label: \"Onslow\", value: \"067\" },\r\n { label: \"Orange\", value: \"068\" },\r\n { label: \"Pamlico\", value: \"069\" },\r\n { label: \"Pasquotank\", value: \"070\" },\r\n { label: \"Pender\", value: \"071\" },\r\n { label: \"Perquimans\", value: \"072\" },\r\n { label: \"Person\", value: \"073\" },\r\n { label: \"Pitt\", value: \"074\" },\r\n { label: \"Polk\", value: \"075\" },\r\n { label: \"Randolph\", value: \"076\" },\r\n { label: \"Richmond\", value: \"077\" },\r\n { label: \"Robeson\", value: \"078\" },\r\n { label: \"Rockingham\", value: \"079\" },\r\n { label: \"Rowan\", value: \"080\" },\r\n { label: \"Rutherford\", value: \"081\" },\r\n { label: \"Sampson\", value: \"082\" },\r\n { label: \"Scotland\", value: \"083\" },\r\n { label: \"Stanly\", value: \"084\" },\r\n { label: \"Stokes\", value: \"085\" },\r\n { label: \"Surry\", value: \"086\" },\r\n { label: \"Swain\", value: \"087\" },\r\n { label: \"Transylvania\", value: \"088\" },\r\n { label: \"Tyrrell\", value: \"089\" },\r\n { label: \"Union\", value: \"090\" },\r\n { label: \"Vance\", value: \"091\" },\r\n { label: \"Wake\", value: \"092\" },\r\n { label: \"Warren\", value: \"093\" },\r\n { label: \"Washington\", value: \"094\" },\r\n { label: \"Watauga\", value: \"095\" },\r\n { label: \"Wayne\", value: \"096\" },\r\n { label: \"Wilkes\", value: \"097\" },\r\n { label: \"Wilson\", value: \"098\" },\r\n { label: \"Yadkin\", value: \"099\" },\r\n { label: \"Yancey\", value: \"100\" }];\r\n }\r\n\r\n }\r\n\r\n angular.module(\"app\").service(AddressService.serviceId, AddressService);\r\n}","/// \r\nnamespace Cfnc {\r\n export interface IApplicationsDataService {\r\n getApplications: () => ng.IPromise;\r\n getUserApplications: () => ng.IPromise;\r\n getDirectAdmissionEligibility: (lastName: string, studentNumber: string) => ng.IPromise;\r\n getDirectAdmissionApplications: (studentNumber: string) => ng.IPromise;\r\n }\r\n\r\n export class ApplicationsDataService implements IApplicationsDataService {\r\n static serviceId: string = \"applicationsDataService\";\r\n\r\n constructor(private Restangular: Restangular.IService, private common: ICommonFactory, private $http: ng.IHttpService) {\r\n }\r\n\r\n getApplications() {\r\n var deferred = this.common.$q.defer();\r\n this.Restangular.all(\"application/organizations\").getList()\r\n .then((result) => {\r\n deferred.resolve(result);\r\n },\r\n (reason) => {\r\n deferred.reject(reason);\r\n });\r\n return deferred.promise;\r\n }\r\n\r\n getUserApplications() {\r\n var deferred = this.common.$q.defer();\r\n this.Restangular.one(\"application/user\").get()\r\n .then((results) => {\r\n deferred.resolve(results);\r\n },\r\n (reason) => {\r\n deferred.reject(reason);\r\n });\r\n return deferred.promise;\r\n }\r\n\r\n getUserApplicationById(id: string) {\r\n var deferred = this.common.$q.defer();\r\n this.Restangular.one(\"application/\", id).get()\r\n .then((results) => {\r\n deferred.resolve(results);\r\n },\r\n (reason) => {\r\n deferred.reject(reason);\r\n });\r\n return deferred.promise;\r\n }\r\n\r\n getDirectAdmissionEligibility(lastName:string, studentNumber: string) {\r\n var deferred = this.common.$q.defer();\r\n var params = { studentNumber: studentNumber, lastName: lastName };\r\n this.Restangular.one(\"application/getDirectAdmissionEligibility\").get(params)\r\n .then((results) => {\r\n deferred.resolve(results);\r\n },\r\n (reason) => {\r\n deferred.reject(reason);\r\n });\r\n return deferred.promise;\r\n }\r\n\r\n getDirectAdmissionApplications(studentNumber: string) {\r\n var deferred = this.common.$q.defer();\r\n var params = { studentNumber: studentNumber };\r\n this.Restangular.one(\"application/getDirectAdmissionApplications\", studentNumber).get()\r\n .then((results) => {\r\n deferred.resolve(results);\r\n },\r\n (reason) => {\r\n deferred.reject(reason);\r\n });\r\n return deferred.promise;\r\n }\r\n\r\n\r\n }\r\n\r\n angular.module(\"app\").factory(ApplicationsDataService.serviceId, [\"Restangular\", \"common\", \"$http\", (Restangular: Restangular.IService, common: ICommonFactory, $http: ng.IHttpService) =>\r\n new ApplicationsDataService(Restangular, common, $http)\r\n ]);\r\n}","/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n export interface ICalendarServiceClient {\r\n saveStudentEvent: (newEvent: IEvent) => ng.IPromise;\r\n getAllEvents: () => ng.IPromise;\r\n updateStudentEvent: (event: IEvent) => ng.IPromise;\r\n deleteStudentEvent: (eventId: string) => ng.IPromise;\r\n }\r\n\r\n export class CalendarServiceClient implements ICalendarServiceClient {\r\n static serviceId: string = \"calendarServiceClient\";\r\n constructor(private Restangular: Restangular.IService, private common: ICommonFactory, private $http: ng.IHttpService) {\r\n }\r\n\r\n public saveStudentEvent(newEvent: EventDetails) {\r\n\r\n var event: IEvent = {\r\n name: newEvent.name,\r\n category: newEvent.category,\r\n start: newEvent.start,\r\n end: newEvent.end,\r\n allDayEvent: newEvent.allDayEvent,\r\n description: newEvent.description\r\n }\r\n var deferred = this.common.$q.defer();\r\n\r\n\r\n this.Restangular.all(\"Calendar/saveStudentEvent\").post(event).then((result) => {\r\n deferred.resolve(result);\r\n }, (reason) => {\r\n deferred.reject(reason);\r\n })\r\n \r\n return deferred.promise;\r\n }\r\n\r\n getAllEvents() {\r\n var deferred = this.common.$q.defer();\r\n\r\n return deferred.promise;\r\n }\r\n\r\n updateStudentEvent(event: EventDetails) {\r\n var deferred = this.common.$q.defer();\r\n this.Restangular.all(\"Calendar/updateStudentEvent\").post(event).then((result) => {\r\n deferred.resolve(result);\r\n }, (reason) => {\r\n deferred.reject(reason);\r\n });\r\n return deferred.promise;\r\n }\r\n\r\n deleteStudentEvent(eventId: string) {\r\n var deferred = this.common.$q.defer();\r\n\r\n this.Restangular.one(\"Calendar/deleteStudentEvent/\" + eventId).get().then((result: boolean) => {\r\n if (result)\r\n deferred.resolve(result);\r\n }, (reason) => {\r\n deferred.reject(reason);\r\n });\r\n\r\n return deferred.promise;\r\n }\r\n }\r\n\r\n angular.module(\"app\").factory(CalendarServiceClient.serviceId, [\"Restangular\", \"common\", \"$http\", (Restangular: Restangular.IService, common: ICommonFactory, $http: ng.IHttpService) => new CalendarServiceClient(Restangular, common, $http)]);\r\n}","/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n export interface ICampusSearchDataService {\r\n filterDefinition: IAvailableFilters;\r\n getInstitutions: () => ng.IPromise;\r\n getInstitutionsByFilter: (any, page, pageSize, sortBy, sortAsc, occCode) => ng.IPromise;\r\n getNCinstitutionNames: (any) => ng.IPromise;\r\n saveCampusSearch: (SavedSearch) => ng.IPromise\r\n loadSavedSearches: () => ng.IPromise;\r\n getMajorClusters: () => ng.IPromise;\r\n }\r\n\r\n export class CampusSearchDataService implements ICampusSearchDataService {\r\n static serviceId: string = \"campusSearchDataService\";\r\n filterDefinition: IAvailableFilters;\r\n\r\n constructor(private Restangular: Restangular.IService, private common: ICommonFactory, private $http: ng.IHttpService) {\r\n this.filterDefinition = this.createFilterDefinition();\r\n }\r\n\r\n getInstitutions(): ng.IPromise> {\r\n return this.Restangular.all(\"campusSearch/institutions\").getList().then((result) => {\r\n return result;\r\n }, (reason) => {\r\n return null;\r\n });\r\n }\r\n\r\n getMajorClusters() {\r\n var deferred = this.common.$q.defer();\r\n\r\n return this.Restangular.all(\"campusSearch/majorClusters\").getList().then((result) => {\r\n return result;\r\n }, (reason) => {\r\n return null;\r\n });\r\n }\r\n\r\n getInstitutionsByFilter(filter: ISearchSet, page: number = 1, pageSize: number = 10, sortBy: string = \"Name\", sortDesc: boolean = false, occCode = null) {\r\n var deferred = this.common.$q.defer();\r\n\r\n var searchSet: ISearchGroupSet = {\r\n page: page,\r\n pageSize: pageSize,\r\n sortBy: sortBy,\r\n sortDesc: sortDesc,\r\n occCode: occCode\r\n };\r\n\r\n this.Restangular.all(\"campusSearch/institutionFilters\").post(filter, searchSet).then((result) => {\r\n deferred.resolve(result);\r\n }, (reason) => {\r\n deferred.reject(reason);\r\n });\r\n\r\n return deferred.promise;\r\n }\r\n\r\n getNCinstitutionNames(filter: ISearchSet) {\r\n\r\n var deferred = this.common.$q.defer();\r\n\r\n this.Restangular.all(\"campusSearch/institutionNames\").post(filter).then((result) => {\r\n deferred.resolve(result);\r\n }, (reason) => {\r\n deferred.reject(reason);\r\n });\r\n\r\n return deferred.promise;\r\n }\r\n\r\n saveCampusSearch(savedSearch: SavedSearch) {\r\n var deferred = this.common.$q.defer();\r\n var stringifiedSearch = {\r\n search: JSON.stringify(savedSearch.filters),\r\n name: savedSearch.name\r\n };\r\n\r\n this.Restangular.all(\"campusSearch/saveCampusSearch\").post(stringifiedSearch).then((result) => {\r\n deferred.resolve(result);\r\n }, (reason) => {\r\n deferred.reject(reason);\r\n });\r\n\r\n return deferred.promise;\r\n }\r\n\r\n loadSavedSearches(): ng.IPromise> {\r\n\r\n return this.Restangular.one(\"campusSearch/loadSavedSearches\").get().then((result) => {\r\n return result.searches;\r\n }, (reason) => {\r\n return null;\r\n });\r\n }\r\n\r\n\r\n private createFilterDefinition(): IAvailableFilters {\r\n var filters: IAvailableFilters = {\r\n keyFacts: {\r\n schoolType: {\r\n key: \"SchoolType\",\r\n category: \"KeyFacts\",\r\n filters: [\r\n {\r\n pillText: \"Two Year\",\r\n displayName: \"Two Year\",\r\n key: \"TwoYear\"\r\n }, {\r\n pillText: \"Four Year\",\r\n displayName: \"Four Year\",\r\n key: \"FourYear\"\r\n }, {\r\n pillText: \"Graduate\",\r\n displayName: \"Graduate\",\r\n key: \"Graduate\"\r\n }\r\n ]\r\n },\r\n programType: {\r\n key: \"ProgramType\",\r\n category: \"KeyFacts\",\r\n filters: [\r\n {\r\n pillText: \"Certificate\",\r\n displayName: \"Certificate\",\r\n key: \"Certificate\"\r\n }, {\r\n pillText: \"Diploma\",\r\n displayName: \"Diploma\",\r\n key: \"Diploma\"\r\n }, {\r\n pillText: \"Associate\",\r\n displayName: \"Associate\",\r\n key: \"Associate\"\r\n }, {\r\n pillText: \"Bachelors\",\r\n displayName: \"Bachelors\",\r\n key: \"Bachelors\"\r\n }, {\r\n pillText: \"Masters\",\r\n displayName: \"Masters\",\r\n key: \"Masters\"\r\n }, {\r\n pillText: \"Doctoral\",\r\n displayName: \"Doctoral\",\r\n key: \"Doctoral\"\r\n }\r\n ]\r\n },\r\n publicPrivate: {\r\n key: \"PublicPrivate\",\r\n category: \"KeyFacts\",\r\n filters: [\r\n {\r\n pillText: \"Public\",\r\n displayName: \"Public\",\r\n key: \"Public\"\r\n }, {\r\n pillText: \"Private/Non-Religious\",\r\n displayName: \"Private/Non-Religious\",\r\n key: \"Private\"\r\n }, {\r\n pillText: \"Private/Religious\",\r\n displayName: \"Private/Religious\",\r\n key: \"PrivateReligious\"\r\n }\r\n ]\r\n },\r\n religions: {\r\n key: \"Religions\",\r\n category: \"KeyFacts\",\r\n filters: [\r\n {\r\n pillText: \"Adventist\",\r\n displayName: \"Adventist\",\r\n key: \"Adventist\"\r\n }, {\r\n pillText: \"African Methodist-Episcopal\",\r\n displayName: \"African Methodist-Episcopal\",\r\n key: \"AfricanMethodistEpiscopal\"\r\n }, {\r\n pillText: \"Assembly of God\",\r\n displayName: \"Assembly of God\",\r\n key: \"AssemblyofGod\"\r\n }, {\r\n pillText: \"Baptist\",\r\n displayName: \"Baptist\",\r\n key: \"Baptist\"\r\n }, {\r\n pillText: \"Christian & Missionary Alliance\",\r\n displayName: \"Christian & Missionary Alliance\",\r\n key: \"ChristianMissionaryAlliance\"\r\n }, {\r\n pillText: \"Christian Science\",\r\n displayName: \"Christian Science\",\r\n key: \"ChristianScience\"\r\n }, {\r\n pillText: \"Church of Christ\",\r\n displayName: \"Church of Christ\",\r\n key: \"ChurchofChrist\"\r\n }, {\r\n pillText: \"Church of God\",\r\n displayName: \"Church of God\",\r\n key: \"ChurchofGod\"\r\n }, {\r\n pillText: \"Church of the Brethren\",\r\n displayName: \"Church of the Brethren\",\r\n key: \"ChurchoftheBrethren\"\r\n }, {\r\n pillText: \"Congregational (United Church of Christ)\",\r\n displayName: \"Congregational (United Church of Christ)\",\r\n key: \"Congregational\"\r\n }, {\r\n pillText: \"Disciples of Christ\",\r\n displayName: \"Disciples of Christ\",\r\n key: \"DisciplesofChrist\"\r\n }, {\r\n pillText: \"Episcopal (Anglican)\",\r\n displayName: \"Episcopal (Anglican)\",\r\n key: \"Episcopal\"\r\n }, {\r\n pillText: \"Evangelical\",\r\n displayName: \"Evangelical\",\r\n key: \"Evangelical\"\r\n }, {\r\n pillText: \"Islamic\",\r\n displayName: \"Islamic\",\r\n key: \"Islamic\"\r\n }, {\r\n pillText: \"Interdenominational Christian\",\r\n displayName: \"Interdenominational Christian\",\r\n key: \"Interdenominational\"\r\n }, {\r\n pillText: \"Jewish\",\r\n displayName: \"Jewish\",\r\n key: \"Jewish\"\r\n }, {\r\n pillText: \"Lutheran\",\r\n displayName: \"Lutheran\",\r\n key: \"Lutheran\"\r\n }, {\r\n pillText: \"Mennonite\",\r\n displayName: \"Mennonite\",\r\n key: \"Mennonite\"\r\n }, {\r\n pillText: \"Methodist\",\r\n displayName: \"Methodist\",\r\n key: \"Methodist\"\r\n }, {\r\n pillText: \"Moravian\",\r\n displayName: \"Moravian\",\r\n key: \"Moravian\"\r\n }, {\r\n pillText: \"Mormon\",\r\n displayName: \"Mormon\",\r\n key: \"Mormon\"\r\n }, {\r\n pillText: \"Nondenominational Christian\",\r\n displayName: \"Nondenominational Christian\",\r\n key: \"Nondenominational\"\r\n }, {\r\n pillText: \"Other\",\r\n displayName: \"Other\",\r\n key: \"Other\"\r\n }, {\r\n pillText: \"Other Christian\",\r\n displayName: \"Other Christian\",\r\n key: \"OtherChristian\"\r\n }, {\r\n pillText: \"Plymouth Brethren\",\r\n displayName: \"Plymouth Brethren\",\r\n key: \"PlymouthBrethren\"\r\n }, {\r\n pillText: \"Presbyterian\",\r\n displayName: \"Presbyterian\",\r\n key: \"Presbyterian\"\r\n }, {\r\n pillText: \"Quaker(Society of Friends)\",\r\n displayName: \"Quaker(Society of Friends)\",\r\n key: \"Quaker\"\r\n }, {\r\n pillText: \"Reformed\",\r\n displayName: \"Reformed\",\r\n key: \"Reformed\"\r\n }, {\r\n pillText: \"Roman Catholic\",\r\n displayName: \"Roman Catholic\",\r\n key: \"Catholic\"\r\n }, {\r\n pillText: \"Wesleyan\",\r\n displayName: \"Wesleyan\",\r\n key: \"Wesleyan\"\r\n }\r\n ]\r\n },\r\n campusSetting: {\r\n key: \"CampusSetting\",\r\n category: \"KeyFacts\",\r\n filters: [\r\n {\r\n pillText: \"Urban\",\r\n displayName: \"Urban\",\r\n key: \"Urban\"\r\n }, {\r\n pillText: \"Suburban\",\r\n displayName: \"Suburban\",\r\n key: \"Suburban\"\r\n }, {\r\n pillText: \"Small Town\",\r\n displayName: \"Small Town\",\r\n key: \"SmallTown\"\r\n }, {\r\n pillText: \"Rural\",\r\n displayName: \"Rural\",\r\n key: \"Rural\"\r\n }\r\n ]\r\n },\r\n studentPopulation: {\r\n key: \"StudentPopulation\",\r\n category: \"KeyFacts\",\r\n filters: [\r\n {\r\n pillText: \"Population <= 2,500\",\r\n displayName: \"Fewer than or equal to 2,500\",\r\n key: \"XS\",\r\n value: \"Ix1,Ix2500\"\r\n }, {\r\n pillText: \"Population between 2,501 - 5,000\",\r\n displayName: \"2,501 - 5,000\",\r\n key: \"S\",\r\n value: \"Ix2501,Ix5000\"\r\n }, {\r\n pillText: \"Population between 5,001 - 10,000\",\r\n displayName: \"5,001 - 10,000\",\r\n key: \"M\",\r\n value: \"Ix5001,Ix10000\"\r\n }, {\r\n pillText: \"Population between 10,001 - 15,000\",\r\n displayName: \"10,001 - 15,000\",\r\n key: \"L\",\r\n value: \"Ix10001,Ix15000\"\r\n }, {\r\n pillText: \"Population between 10,001 - 15,000\",\r\n displayName: \"15,001 - 20,000\",\r\n key: \"XL\",\r\n value: \"Ix15001,Ix20000\"\r\n }, {\r\n pillText: \"Population > 20,000\",\r\n displayName: \"Greater than 20,000\",\r\n key: \"XXL\",\r\n value: \"Ix20001\"\r\n }\r\n ]\r\n },\r\n SingleSexOrCoed: {\r\n key: \"SingleSexOrCoed\",\r\n category: \"KeyFacts\",\r\n filters: [\r\n {\r\n pillText: \"Men's College\",\r\n displayName: \"Men's College\",\r\n key: \"Mens\"\r\n }, {\r\n pillText: \"Women's College\",\r\n displayName: \"Women's College\",\r\n key: \"Womens\"\r\n }, {\r\n pillText: \"Coed\",\r\n displayName: \"Coed\",\r\n key: \"Coed\"\r\n }\r\n ]\r\n },\r\n historicallyBlack: {\r\n key: \"HistoricallyBlack\",\r\n category: \"KeyFacts\",\r\n filters: [\r\n {\r\n pillText: \"Historically Black\",\r\n displayName: \"Historically Black (NC only)\",\r\n key: \"HistoricallyBlack\",\r\n toolTip: \"Use this filter to find only Historically Black Institutions.\"\r\n }\r\n ]\r\n },\r\n \r\n withinRangeOf: {\r\n key: \"WithinRangeOf\",\r\n category: \"KeyFacts\",\r\n filters: [{\r\n pillText: \"Distance from Zipcode\",\r\n key: \"WithinRangeOf\",\r\n }]\r\n }, outsideRangeOf: {\r\n key: \"OutsideRangeOf\",\r\n category: \"KeyFacts\",\r\n filters: [{\r\n pillText: \"Minimum Distance from Zipcode\",\r\n key: \"OutsideRangeOf\"\r\n }]\r\n }\r\n \r\n },\r\n admissions: {\r\n entranceDifficulty: {\r\n key: \"EntranceDifficulty\",\r\n category: \"Admissions\",\r\n filters: [{\r\n displayText: \"Entrance Difficulty\",\r\n pillText: \"Entrance Difficulty\",\r\n key: \"EntranceDifficulty\"\r\n }]\r\n }, actScores: {\r\n key: \"ActScores\",\r\n category: \"Admissions\",\r\n filters: [{\r\n pillText: \"ACT Scores\",\r\n key: \"ActScores\"\r\n }]\r\n }, satMath: {\r\n key: \"SatMath\",\r\n category: \"Admissions\",\r\n filter: {\r\n pillText: \"SAT Math Scores\",\r\n key: \"SatMath\"\r\n }\r\n }, satReading: {\r\n key: \"SatReading\",\r\n category: \"Admissions\",\r\n filter: {\r\n pillText: \"SAT Reading Scores\",\r\n key: \"SatReading\"\r\n }\r\n }, satWriting: {\r\n key: \"SatWriting\",\r\n category: \"Admissions\",\r\n filter: {\r\n pillText: \"SAT Writing Scores\",\r\n key: \"SatWriting\"\r\n }\r\n }, admissionsPolicies: {\r\n key: \"AdmissionsPolicies\",\r\n category: \"Admissions\",\r\n filters: [\r\n {\r\n pillText: \"Early action\",\r\n displayName: \"Early action\",\r\n key: \"EarlyAction\",\r\n toolTip: \"Early Action allows students to apply and be notified of an admission decision well in advance of the regular notification dates.\"\r\n }, {\r\n pillText: \"Early decision\",\r\n displayName: \"Early decision\",\r\n key: \"EarlyDecision\",\r\n toolTip: \"Early Decision allows students to apply and be notified of an admission decision well in advance of the regular notification dates. Applicants agree to accept the offer of admission.\"\r\n }, {\r\n pillText: \"Deferred admission\",\r\n displayName: \"Deferred admission\",\r\n key: \"DeferredAdmission\",\r\n toolTip: \"Deferred Admission allows admitted students to postpone enrollment, usually for a period of one academic term or one year.\"\r\n }, {\r\n pillText: \"Concurrent enrollment for high school\",\r\n displayName: \"Concurrent enrollment for high school\",\r\n key: \"ConcurrentEnrollment\",\r\n toolTip: \"Concurrent Enrollment for High School allows high school students to take college courses while in high school.\"\r\n }\r\n ]\r\n }\r\n },\r\n costAndFinancialAid: {\r\n inStateTuition: {\r\n key: \"InStateTuition\",\r\n category: \"CostAndFinancialAid\",\r\n filters: [{\r\n pillText: \"In-state Tuition\",\r\n key: \"InStateTuition\"\r\n }]\r\n },\r\n outStateTuition: {\r\n key: \"OutStateTuition\",\r\n category: \"CostAndFinancialAid\",\r\n filters: [{\r\n pillText: \"Out-of-state Tuition\",\r\n key: \"OutStateTuition\"\r\n }]\r\n },\r\n financialAid: {\r\n key: \"FinancialAid\",\r\n category: \"CostAndFinancialAid\",\r\n filters: [\r\n {\r\n pillText: \"Academic scholarships\",\r\n displayName: \"Academic scholarships (NC only)\",\r\n key: \"AcademicScholarships\"\r\n }, {\r\n pillText: \"Athletic scholarships\",\r\n displayName: \"Athletic scholarships (NC only)\",\r\n key: \"AthleticScholarships\"\r\n }, {\r\n pillText: \"Federal work study\",\r\n displayName: \"Federal work study\",\r\n key: \"FederalWorkStudy\"\r\n }, {\r\n displayName: \"Federal/State grants\",\r\n key: \"FederalStateGrants\",\r\n filters: [\r\n {\r\n pillText: \"Federal/state grants\",\r\n key: \"FederalGrantsAndScholarship\"\r\n },\r\n {\r\n pillText: \"Federal/state grants\",\r\n key: \"StateGrantsAndScholarship\"\r\n }\r\n ]\r\n }, {\r\n displayName: \"Federal/state grants\",\r\n pillText: \"Federal/state grants\",\r\n key: \"FederalGrantsAndScholarship\"\r\n },\r\n {\r\n displayName: \"Federal/state grants\",\r\n pillText: \"Federal/state grants\",\r\n key: \"StateGrantsAndScholarship\"\r\n }, {\r\n pillText: \"Institutional grants\",\r\n displayName: \"Institutional grants\",\r\n key: \"InstitutionalGrants\"\r\n }, {\r\n pillText: \"Parent loans\",\r\n displayName: \"Parent loans (NC only)\",\r\n key: \"ParentLoans\"\r\n }\r\n ]\r\n }\r\n },\r\n academics: {\r\n programsMajors: {\r\n key: \"ProgramsMajors\",\r\n category: \"Academics\",\r\n filters: [\r\n {\r\n key: \"AgricultureFoodandNaturalResources\",\r\n displayName: \"Agriculture, Food and Natural Resources\",\r\n pillText: \"Agriculture, Food and Natural Resources\",\r\n toolTip: \"Producing, processing, marketing, distributing, financing and developing agricultural commodities and resources, including food, fiber, wood products, natural resources, horticulture and other plant and animal products and resources.\"\r\n },\r\n {\r\n key: \"ArchitectureAndConstruction\",\r\n displayName: \"Architecture and Construction\",\r\n pillText: \"Architecture and Construction\",\r\n toolTip: \"Designing, planning, managing, building, and maintaining the built environment.\"\r\n },\r\n {\r\n key: \"ArtsAudioVideoTechnologyAndCommunications\",\r\n displayName: \"Arts, Audio-Video Technology and Communications\",\r\n pillText: \"Arts, Audio-Video Technology and Communications\",\r\n toolTip: \"Designing, producing, exhibiting, performing, writing and publishing multimedia content, including visual and performing arts and design, journalism and entertainment services.\"\r\n },\r\n {\r\n key: \"BusinessManagementAdministration\",\r\n displayName: \"Business, Management and Administration\",\r\n pillText: \"Business, Management and Administration\",\r\n toolTip: \"Planning, organizing, directing and evaluating business functions essential to efficient and productive business operations.\"\r\n },\r\n {\r\n key: \"EducationAndTraining\",\r\n displayName: \"Education and Training\",\r\n pillText: \"Education and Training\",\r\n toolTip: \"Planning, managing and providing education and training services, and related learning support services.\"\r\n },\r\n {\r\n key: \"Finance\",\r\n displayName: \"Finance\",\r\n pillText: \"Finance\",\r\n toolTip: \"Planning and providing services for financial and investment planning, banking, insurance and business financial management.\"\r\n },\r\n {\r\n key: \"GovernmentAndPublicAdministration\",\r\n displayName: \"Government and Public Administration\",\r\n pillText: \"Government and Public Administration\",\r\n toolTip: \"Executing governmental functions including governance, national security, foreign service, planning, revenue and taxation, regulation, and management and administration at the local, state and federal levels.\"\r\n },\r\n {\r\n key: \"HealthScience\",\r\n displayName: \"Health Science\",\r\n pillText: \"Health Science\",\r\n toolTip: \"Planning, managing and providing therapeutic services, diagnostic services, health informatics, support services, and biotechnology research and development.\"\r\n },\r\n {\r\n key: \"HospitalityAndTourism\",\r\n displayName: \"Hospitality and Tourism\",\r\n pillText: \"Hospitality and Tourism\",\r\n toolTip: \"Managing, marketing and operating restaurants and other food services, lodgings, attractions, recreation events and travel-related services.\"\r\n },\r\n {\r\n key: \"HumanServices\",\r\n displayName: \"Human Services\",\r\n pillText: \"Human Services\",\r\n toolTip: \"Preparing individuals for employment in career pathways that relate to families and human needs.\"\r\n },\r\n {\r\n key: \"InformationTechnology\",\r\n displayName: \"Information Technology\",\r\n pillText: \"Information Technology\",\r\n toolTip: \"Designing, developing, supporting and managing hardware, software, multimedia and system integration services.\"\r\n },\r\n {\r\n key: \"LawPublicSafetyCorrectionsSecurity\",\r\n displayName: \"Law, Public Safety, Corrections and Security\",\r\n pillText: \"Law, Public Safety, Corrections and Security\",\r\n toolTip: \"Planning, managing and providing legal, public safety, protective and homeland security services, including professional and technical support services.\"\r\n },\r\n {\r\n key: \"Manufacturing\",\r\n displayName: \"Manufacturing\",\r\n pillText: \"Manufacturing\",\r\n toolTip: \"Planning, managing and performing the processing of materials into intermediate or final products, including related professional and technical support activities such as production planning and control, maintenance and manufacturing/process engineering.\"\r\n },\r\n {\r\n key: \"Marketing\",\r\n displayName: \"Marketing\",\r\n pillText: \"Marketing\",\r\n toolTip: \"Planning, managing and performing marketing activities to reach organizational objectives.\"\r\n },\r\n {\r\n key: \"ScienceTechEngineeringMath\",\r\n displayName: \"Science, Technology, Engineering and Mathematics\",\r\n pillText: \"Science, Technology, Engineering and Mathematics\",\r\n toolTip: \"Planning, managing and providing scientific research and professional and technical services (such as physical science, social science, engineering), including laboratory and testing services, and research and development services.\"\r\n },\r\n {\r\n key: \"TransportationDistributionLogistics\",\r\n displayName: \"Transportation, Distribution and Logistics\",\r\n pillText: \"Transportation, Distribution and Logistics\",\r\n toolTip: \"Planning, managing and moving people, materials and goods by road, pipeline, air, rail and water, including related professional and technical support services such as transportation infrastructure planning and management, logistics services, mobile equipment and facility maintenance.\"\r\n },\r\n ]\r\n },\r\n major: {\r\n key: \"Major\",\r\n category: \"Academics\",\r\n filters: [\r\n {\r\n pillText: \"\",\r\n key: \"MajorName\",\r\n value: \"\"\r\n },\r\n {\r\n pillText: \"\",\r\n key: \"ProgramName\",\r\n value: \"\"\r\n }\r\n ]\r\n },\r\n specialPrograms: {\r\n key: \"SpecialPrograms\",\r\n category: \"Academics\",\r\n filters: [\r\n {\r\n pillText: \"Accelerated study\",\r\n displayName: \"Accelerated study\",\r\n key: \"AcceleratedStudy\"\r\n }, {\r\n pillText: \"Distance learning\",\r\n displayName: \"Distance learning\",\r\n key: \"DistanceLearning\"\r\n }, {\r\n pillText: \"Double majors\",\r\n displayName: \"Double majors\",\r\n key: \"DoubleMajors\"\r\n }, {\r\n pillText: \"Honors program\",\r\n displayName: \"Honors program\",\r\n key: \"HonorsProgram\"\r\n }, {\r\n pillText: \"Independent study\",\r\n displayName: \"Independent study\",\r\n key: \"IndependentStudy\"\r\n }, {\r\n pillText: \"Internships\",\r\n displayName: \"Internships\",\r\n key: \"Internships\"\r\n }, {\r\n pillText: \"Self-designed majors\",\r\n displayName: \"Self-designed majors\",\r\n key: \"SelfdesignedMajors\"\r\n }, {\r\n pillText: \"Study abroad\",\r\n displayName: \"Study abroad\",\r\n key: \"StudyAbroad\"\r\n }\r\n ]\r\n }, studentFacultyRatio: {\r\n key: \"StudentFacultyRatio\",\r\n category: \"Academics\",\r\n filters: [{\r\n pillText: \"Student:Faculty\",\r\n key: \"StudentFacultyRatio\"\r\n }],\r\n }, onlineEducation: {\r\n key: \"OnlineEducation\",\r\n category: \"Academics\",\r\n filters: [\r\n {\r\n pillText: \"Some online degree programs\",\r\n displayName: \"Some online degree programs\",\r\n key: \"OnlineDegreeCourses\"\r\n }, {\r\n pillText: \"All programs available online\",\r\n displayName: \"All programs available online\",\r\n key: \"OnlineDegreePrograms\"\r\n }, {\r\n pillText: \"Entirely online school\",\r\n displayName: \"Entirely online school\",\r\n key: \"EntirelyOnlineSchool\"\r\n }\r\n ]\r\n }\r\n },\r\n interCollegiateSports: {\r\n sports: {\r\n key: \"Sports\",\r\n category: \"Sports\",\r\n sport: {\r\n key: \"Sport\",\r\n filter: {\r\n pillText: \"Sports\",\r\n key: \"Sport\"\r\n }\r\n },\r\n sportsGender: {\r\n key: \"SportsGender\",\r\n filter: {\r\n key: \"SportsGender\",\r\n }\r\n },\r\n sportsDivision: {\r\n key: \"SportsDivision\",\r\n filter: {\r\n key: \"SportsDivision\"\r\n }\r\n },\r\n scholarshipsAvailable: {\r\n key: \"ScholarshipsAvailable\",\r\n filters: [\r\n {\r\n key: \"ScholarshipsAvailable\",\r\n displayName: \"Scholarships Available\"\r\n }\r\n ]\r\n },\r\n selected: false\r\n }\r\n },\r\n campusLife: {\r\n extraCurricular: {\r\n key: \"ExtraCurricular\",\r\n category: \"CampusLife\",\r\n filters: [\r\n {\r\n pillText: \"Student newspaper\",\r\n displayName: \"Student newspaper\",\r\n key: \"StudentNewspaper\"\r\n }, {\r\n pillText: \"Radio station\",\r\n displayName: \"Radio station\",\r\n key: \"RadioStation\"\r\n }, {\r\n pillText: \"Television station\",\r\n displayName: \"Television station\",\r\n key: \"TelevisionStation\"\r\n }, {\r\n pillText: \"Fraternities\",\r\n displayName: \"Fraternities\",\r\n key: \"Fraternities\"\r\n }, {\r\n pillText: \"Sororities\",\r\n displayName: \"Sororities\",\r\n key: \"Sororities\"\r\n }, {\r\n pillText: \"Club/Intramural sports\",\r\n displayName: \"Club/Intramural sports\",\r\n key: \"ClubIntramuralSports\"\r\n }, {\r\n displayName: \"ROTC\",\r\n key: \"ROTC\",\r\n filters: [\r\n {\r\n pillText: \"ROTC\",\r\n key: \"ArmyROTC\"\r\n },\r\n {\r\n pillText: \"ROTC\",\r\n key: \"NavyROTC\"\r\n },\r\n {\r\n pillText: \"ROTC\",\r\n key: \"AirForceROTC\"\r\n }\r\n ]\r\n }, {\r\n pillText: \"Music (Performing Arts)\",\r\n displayName: \"Music (Performing Arts)\",\r\n key: \"Music\"\r\n }\r\n ]\r\n }, studentHousing: {\r\n key: \"StudentHousing\",\r\n category: \"CampusLife\",\r\n filters: [\r\n {\r\n pillText: \"Men-only Housing\",\r\n displayName: \"Men-only\",\r\n key: \"Menonly\"\r\n }, {\r\n pillText: \"Women-only Housing\",\r\n displayName: \"Women-only\",\r\n key: \"Womenonly\"\r\n }, {\r\n pillText: \"Coed residence halls\",\r\n displayName: \"Coed residence halls\",\r\n key: \"CoedDorms\"\r\n }, {\r\n pillText: \"Cooperative housing\",\r\n displayName: \"Cooperative housing\",\r\n key: \"CoopHouse\"\r\n }, {\r\n displayName: \"Fraternity/Sorority housing (NC only)\",\r\n key: \"GreekHousing\",\r\n filters: [\r\n {\r\n pillText: \"Fraternity/Sorority housing\",\r\n key: \"FraternityHousingAvailable\"\r\n }, {\r\n pillText: \"Fraternity/Sorority housing\",\r\n key: \"SororityHousingAvailable\"\r\n }\r\n ]\r\n }, {\r\n displayName: \"Fraternity/Sorority housing\",\r\n pillText: \"Fraternity/Sorority housing\",\r\n key: \"FraternityHousingAvailable\"\r\n }, {\r\n displayName: \"Fraternity/Sorority housing\",\r\n pillText: \"Fraternity/Sorority housing\",\r\n key: \"SororityHousingAvailable\"\r\n }, {\r\n pillText: \"Special housing\",\r\n displayName: \"Special housing\",\r\n key: \"SpecialHousing\"\r\n }\r\n ]\r\n }, additionalServices: {\r\n key: \"AdditionalServices\",\r\n category: \"CampusLife\",\r\n filters: [\r\n {\r\n pillText: \"Daycare\",\r\n displayName: \"Daycare (NC only)\",\r\n key: \"DayCare\"\r\n }, {\r\n pillText: \"Alcohol/Substance abuse counseling\",\r\n displayName: \"Alcohol/Substance abuse counseling (NC only)\",\r\n key: \"AbuseCounseling\"\r\n }, {\r\n pillText: \"Personal/Psychological counseling\",\r\n displayName: \"Personal/Psychological counseling\",\r\n key: \"PsychCounseling\"\r\n }, {\r\n pillText: \"Health services\",\r\n displayName: \"Health services\",\r\n key: \"HealthServices\"\r\n }, {\r\n displayName: \"Learning assistance services\",\r\n pillText: \"Learning assistance services\",\r\n key: \"LearningDisabled\"\r\n }, {\r\n pillText: \"Work study\",\r\n displayName: \"Work study\",\r\n key: \"WorkStudy\"\r\n }\r\n ]\r\n }\r\n },\r\n additionalFilters: {\r\n state: {\r\n key: \"State\",\r\n filters: [\r\n {\r\n key: \"State\",\r\n }\r\n ]\r\n },\r\n name: {\r\n key: \"Name\",\r\n filter: {\r\n key: \"Name\"\r\n }\r\n }\r\n }\r\n }\r\n return filters;\r\n }\r\n }\r\n\r\n angular.module(\"app\").factory(CampusSearchDataService.serviceId, [\"Restangular\", \"common\", \"$http\", (Restangular: Restangular.IService, common: ICommonFactory, $http: ng.IHttpService) => new CampusSearchDataService(Restangular, common, $http)]);\r\n}","/// \r\nnamespace Cfnc {\r\n export interface ICommunityCollege {\r\n name: string;\r\n applicationDefinitionId: string;\r\n }\r\n\r\n export interface ICommunityCollegeService {\r\n getCommunityColleges: () => ICommunityCollege[];\r\n }\r\n\r\n export class CommunityCollegeService implements ICommunityCollegeService {\r\n static serviceId: string = \"communityCollegeService\";\r\n\r\n constructor() { }\r\n\r\n getCommunityColleges() {\r\n return [\r\n {\r\n name: \"Alamance Community College\",\r\n applicationDefinitionId: \"organizations/1/programs/1/applications/1\"\r\n },\r\n {\r\n name: \"Asheville-Buncombe Technical Community College\",\r\n applicationDefinitionId: \"organizations/289/programs/148/applications/163\"\r\n },\r\n {\r\n name: \"Beaufort County Community College\",\r\n applicationDefinitionId: \"organizations/291/programs/214/applications/229\"\r\n },\r\n {\r\n name: \"Bladen Community College\",\r\n applicationDefinitionId: \"organizations/294/programs/223/applications/238\"\r\n },\r\n {\r\n name: \"Blue Ridge Community College\",\r\n applicationDefinitionId: \"organizations/295/programs/226/applications/241\"\r\n },\r\n {\r\n name: \"Brunswick Community College\",\r\n applicationDefinitionId: \"organizations/297/programs/232/applications/247\"\r\n },\r\n {\r\n name: \"Caldwell Community College and Technical Institute\",\r\n applicationDefinitionId: \"organizations/299/programs/238/applications/253\"\r\n },\r\n {\r\n name: \"Cape Fear Community College\",\r\n applicationDefinitionId: \"organizations/301/programs/244/applications/259\"\r\n },\r\n {\r\n name: \"Carolinas College of Health Sciences\",\r\n applicationDefinitionId: \"organizations/999/programs/999/applications/999\"\r\n },\r\n {\r\n name: \"Carteret Community College\",\r\n applicationDefinitionId: \"organizations/302/programs/247/applications/262\"\r\n },\r\n {\r\n name: \"Catawba Valley Community College\",\r\n applicationDefinitionId: \"organizations/304/programs/253/applications/268\"\r\n },\r\n {\r\n name: \"Central Carolina Community College\",\r\n applicationDefinitionId: \"organizations/305/programs/256/applications/271\"\r\n },\r\n {\r\n name: \"Central Piedmont Community College\",\r\n applicationDefinitionId: \"organizations/306/programs/259/applications/274\"\r\n },\r\n {\r\n name: \"Cleveland Community College\",\r\n applicationDefinitionId: \"organizations/308/programs/265/applications/280\"\r\n },\r\n {\r\n name: \"Coastal Carolina Community College\",\r\n applicationDefinitionId: \"organizations/309/programs/268/applications/283\"\r\n },\r\n {\r\n name: \"College of The Albemarle\",\r\n applicationDefinitionId: \"organizations/310/programs/271/applications/286\"\r\n },\r\n {\r\n name: \"Craven Community College\",\r\n applicationDefinitionId: \"organizations/311/programs/274/applications/289\"\r\n },\r\n {\r\n name: \"Davidson County Community College\",\r\n applicationDefinitionId: \"organizations/313/programs/280/applications/295\"\r\n },\r\n {\r\n name: \"Durham Technical Community College\",\r\n applicationDefinitionId: \"organizations/315/programs/286/applications/301\"\r\n },\r\n {\r\n name: \"Edgecombe Community College\",\r\n applicationDefinitionId: \"organizations/317/programs/292/applications/307\"\r\n },\r\n {\r\n name: \"Fayetteville Technical Community College\",\r\n applicationDefinitionId: \"organizations/321/programs/304/applications/319\"\r\n },\r\n {\r\n name: \"Forsyth Technical Community College\",\r\n applicationDefinitionId: \"organizations/322/programs/307/applications/322\"\r\n },\r\n {\r\n name: \"Gaston College\",\r\n applicationDefinitionId: \"organizations/324/programs/313/applications/328\"\r\n },\r\n {\r\n name: \"Guilford Technical Community College\",\r\n applicationDefinitionId: \"organizations/353/programs/151/applications/166\"\r\n },\r\n {\r\n name: \"Halifax Community College\",\r\n applicationDefinitionId: \"organizations/385/programs/154/applications/169\"\r\n },\r\n {\r\n name: \"Haywood Community College\",\r\n applicationDefinitionId: \"organizations/386/programs/157/applications/172\"\r\n },\r\n {\r\n name: \"Isothermal Community College\",\r\n applicationDefinitionId: \"organizations/999/programs/999/applications/999\"\r\n },\r\n {\r\n name: \"James Sprunt Community College\",\r\n applicationDefinitionId: \"organizations/389/programs/166/applications/181\"\r\n },\r\n {\r\n name: \"Johnston Community College\",\r\n applicationDefinitionId: \"organizations/392/programs/175/applications/190\"\r\n },\r\n {\r\n name: \"Lenoir Community College\",\r\n applicationDefinitionId: \"organizations/394/programs/181/applications/196\"\r\n },\r\n {\r\n name: \"Martin Community College\",\r\n applicationDefinitionId: \"organizations/399/programs/196/applications/211\"\r\n },\r\n {\r\n name: \"Mayland Community College\",\r\n applicationDefinitionId: \"organizations/400/programs/199/applications/214\"\r\n },\r\n {\r\n name: \"McDowell Technical Community College\",\r\n applicationDefinitionId: \"organizations/401/programs/202/applications/217\"\r\n },\r\n {\r\n name: \"Mitchell Community College\",\r\n applicationDefinitionId: \"organizations/418/programs/325/applications/340\"\r\n },\r\n {\r\n name: \"Montgomery Community College\",\r\n applicationDefinitionId: \"organizations/419/programs/328/applications/343\"\r\n },\r\n {\r\n name: \"Nash Community College\",\r\n applicationDefinitionId: \"organizations/422/programs/340/applications/355\"\r\n },\r\n {\r\n name: \"Pamlico Community College\",\r\n applicationDefinitionId: \"organizations/430/programs/364/applications/379\"\r\n },\r\n {\r\n name: \"Piedmont Community College\",\r\n applicationDefinitionId: \"organizations/432/programs/370/applications/385\"\r\n },\r\n {\r\n name: \"Pitt Community College\",\r\n applicationDefinitionId: \"organizations/433/programs/373/applications/388\"\r\n },\r\n {\r\n name: \"Randolph Community College\",\r\n applicationDefinitionId: \"organizations/449/programs/388/applications/400\"\r\n },\r\n {\r\n name: \"Richmond Community College\",\r\n applicationDefinitionId: \"organizations/450/programs/391/applications/403\"\r\n },\r\n {\r\n name: \"Roanoke-Chowan Community College\",\r\n applicationDefinitionId: \"organizations/451/programs/397/applications/406\"\r\n },\r\n {\r\n name: \"Robeson Community College\",\r\n applicationDefinitionId: \"organizations/260/programs/121/applications/139\"\r\n },\r\n {\r\n name: \"Rockingham Community College\",\r\n applicationDefinitionId: \"organizations/259/programs/118/applications/136\"\r\n },\r\n {\r\n name: \"Rowan-Cabarrus Community College\",\r\n applicationDefinitionId: \"organizations/258/programs/115/applications/133\"\r\n },\r\n {\r\n name: \"Sampson Community College\",\r\n applicationDefinitionId: \"organizations/230/programs/106/applications/124\"\r\n },\r\n {\r\n name: \"Sandhills Community College\",\r\n applicationDefinitionId: \"organizations/229/programs/103/applications/121\"\r\n },\r\n {\r\n name: \"South Piedmont Community College\",\r\n applicationDefinitionId: \"organizations/227/programs/97/applications/115\"\r\n },\r\n {\r\n name: \"Southeastern Community College\",\r\n applicationDefinitionId: \"organizations/226/programs/94/applications/112\"\r\n },\r\n {\r\n name: \"Southwestern Community College\",\r\n applicationDefinitionId: \"organizations/225/programs/91/applications/109\"\r\n },\r\n {\r\n name: \"Stanly Community College\",\r\n applicationDefinitionId: \"organizations/210/programs/85/applications/100\"\r\n },\r\n {\r\n name: \"Surry Community College\",\r\n applicationDefinitionId: \"organizations/209/programs/82/applications/97\"\r\n },\r\n {\r\n name: \"Tri-County Community College\",\r\n applicationDefinitionId: \"organizations/208/programs/79/applications/94\"\r\n },\r\n {\r\n name: \"Vance-Granville Community College\",\r\n applicationDefinitionId: \"organizations/201/programs/49/applications/64\"\r\n },\r\n {\r\n name: \"Wake Technical Community College\",\r\n applicationDefinitionId: \"organizations/199/programs/43/applications/58\"\r\n },\r\n {\r\n name: \"Warren Wilson College\",\r\n applicationDefinitionId: \"organizations/198/programs/40/applications/55\"\r\n },\r\n {\r\n name: \"Wayne Community College\",\r\n applicationDefinitionId: \"organizations/197/programs/37/applications/52\"\r\n },\r\n {\r\n name: \"Western Piedmont Community College\",\r\n applicationDefinitionId: \"organizations/196/programs/76/applications/91\"\r\n },\r\n {\r\n name: \"Wilkes Community College\",\r\n applicationDefinitionId: \"organizations/195/programs/34/applications/49\"\r\n },\r\n {\r\n name: \"Wilson Technical Community College\",\r\n applicationDefinitionId: \"organizations/999/programs/999/applications/999\"\r\n }\r\n ];\r\n\r\n }\r\n\r\n }\r\n\r\n angular.module(\"app\").service(CommunityCollegeService.serviceId, CommunityCollegeService);\r\n}","/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n export interface IGetRecruitedService {\r\n getRecruitedAfterLogin: (organizationId: string, getRecruited?: boolean) => boolean;\r\n clear: () => void;\r\n\r\n getRecruited: boolean;\r\n orginizationId: string;\r\n\r\n }\r\n \r\n class GetRecruitedService implements IGetRecruitedService {\r\n static $inject: string[] = [];\r\n static serviceId: string = \"getRecruitedService\";\r\n getRecruited: boolean = false;\r\n orginizationId: string;\r\n\r\n constructor() {\r\n }\r\n\r\n getRecruitedAfterLogin = (organizationId: string, getRecruited?: boolean) => {\r\n if (getRecruited != null) {\r\n this.getRecruited = true;\r\n this.orginizationId = organizationId;\r\n return false;\r\n }\r\n else {\r\n if (organizationId == this.orginizationId && this.getRecruited == true) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n };\r\n\r\n clear = () => {\r\n this.getRecruited = false;\r\n this.orginizationId = \"\";\r\n };\r\n }\r\n\r\n angular.module(\"app\").service(GetRecruitedService.serviceId, GetRecruitedService);\r\n}","/// \r\nnamespace Cfnc {\r\n\r\n export interface IHelper {\r\n isType: (entityType: IType, match: string) => boolean;\r\n openFile: (httpPath, data?) => angular.IPromise;\r\n\r\n }\r\n\r\n export class Helper implements IHelper {\r\n static serviceId: string = \"helper\";\r\n static $inject: string[] = [\"$http\"];\r\n\r\n constructor(private $http: angular.IHttpService) {\r\n }\r\n\r\n isType(entityType: IType, match: string) {\r\n var result = false;\r\n if (entityType) {\r\n if (entityType.name === match) {\r\n result = true;\r\n } else if (entityType.baseType) {\r\n result = this.isType(entityType.baseType, match);\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n openFile = (httpPath, data?) => {\r\n \r\n return this.$http({ url: httpPath, data: data, responseType: \"arraybuffer\", method: data ? \"POST\" : \"GET\" })\r\n .then((response) => {\r\n var octetStreamMime = \"application/octet-stream\";\r\n\r\n // Get the headers\r\n var headerValues = response.headers();\r\n\r\n // Get the filename from the x-filename header or default to \"download.bin\"\r\n var filename = headerValues[\"x-filename\"] || \"download.pdf\";\r\n\r\n // Determine the content type from the header or default to \"application/octet-stream\"\r\n var contentType = headerValues[\"content-type\"] || octetStreamMime;\r\n var blob = new Blob([response.data], { type: contentType });\r\n\r\n saveAs(blob, filename);\r\n\r\n },\r\n (reason) => {\r\n console.log(`Request failed with status: ${status}`, reason);\r\n });\r\n };\r\n\r\n }\r\n\r\n angular.module(\"app\").service(Helper.serviceId, Helper);\r\n}","/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n export interface IHesFactory {\r\n \r\n }\r\n\r\n \r\n class HesFactory implements IHesFactory {\r\n static serviceId: string = \"hesfactory\";\r\n static $inject = [\"$window\"];\r\n\r\n constructor($window: angular.IWindowService) {\r\n if (!$window.assessmentClient) {\r\n console.log(\"Hes script not loaded.\")\r\n }\r\n\r\n return $window.assessmentClient;\r\n \r\n }\r\n\r\n \r\n\r\n }\r\n\r\n angular.module(\"app\").factory(HesFactory.serviceId, HesFactory);\r\n}","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n export interface IHttpBuffer {\r\n append: (config, deferred: ng.IDeferred) => void;\r\n rejectAll: (reason?: {}) => void;\r\n retryAll: (updater?: (buffer?) => any) => void;\r\n }\r\n\r\n httpBuffer.$inject = [\"$injector\"];\r\n\r\n function httpBuffer($injector: ng.auto.IInjectorService): IHttpBuffer {\r\n /** Holds all the requests, so they can be re-requested in future. */\r\n var buffer = [];\r\n\r\n /** Service initialized later because of circular dependency problem. */\r\n var $http;\r\n\r\n function retryHttpRequest(config, deferred) {\r\n $http = $http || $injector.get('$http');\r\n\r\n $http(config).then((response) => {\r\n deferred.resolve(response);\r\n }, (reason) => {\r\n deferred.reject(reason);\r\n });\r\n }\r\n\r\n function append(config, deferred) {\r\n buffer.push({\r\n config: config,\r\n deferred: deferred\r\n });\r\n }\r\n\r\n /**\r\n * Abandon or reject (if reason provided) all the buffered requests.\r\n */\r\n function rejectAll(reason?: {}) {\r\n if (reason) {\r\n for (var i = 0; i < buffer.length; ++i) {\r\n buffer[i].deferred.reject(reason);\r\n }\r\n }\r\n buffer = [];\r\n }\r\n\r\n /**\r\n * Retries all the buffered requests clears the buffer.\r\n */\r\n function retryAll(updater?: (buffer?) => any) {\r\n for (var i = 0; i < buffer.length; ++i) {\r\n var _cfg = updater(buffer[i].config);\r\n if (_cfg !== false)\r\n retryHttpRequest(_cfg, buffer[i].deferred);\r\n }\r\n buffer = [];\r\n }\r\n\r\n\r\n var service: IHttpBuffer = {\r\n append: append,\r\n rejectAll: rejectAll,\r\n retryAll: retryAll\r\n };\r\n\r\n return service;\r\n }\r\n\r\n\r\n angular.module(\"app\").factory(\"httpBuffer\", httpBuffer);\r\n}","/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n\r\n export interface ILoginCredentials {\r\n loginInfo: ILoginBindingModel;\r\n updatePhone: boolean;\r\n updatePassword: boolean;\r\n }\r\n\r\n class LoginCredentials implements ILoginCredentials {\r\n static serviceId: string = \"loginCredentials\";\r\n public loginInfo: ILoginBindingModel;\r\n public updatePhone: boolean;\r\n public updatePassword: boolean;\r\n \r\n }\r\n\r\n angular.module(\"app\").factory(LoginCredentials.serviceId, [() => new LoginCredentials()]);\r\n\r\n}","/// \r\nnamespace Cfnc {\r\n export interface IOrganizationDataService {\r\n getOrganizations: () => ng.IPromise;\r\n getOrganizationById: (id: string) => ng.IPromise;\r\n }\r\n\r\n export class OrganizationDataService implements IOrganizationDataService {\r\n static serviceId: string = \"organizationDataService\";\r\n\r\n constructor(private Restangular: Restangular.IService, private common: ICommonFactory, private $http: ng.IHttpService) {\r\n }\r\n\r\n getOrganizations() {\r\n var deferred = this.common.$q.defer();\r\n this.Restangular.all(\"organizations\").getList()\r\n .then((result) => {\r\n deferred.resolve(result);\r\n },\r\n (reason) => {\r\n deferred.reject(reason);\r\n });\r\n return deferred.promise;\r\n }\r\n\r\n getOrganizationById(id: string) {\r\n var deferred = this.common.$q.defer();\r\n this.Restangular.one(id).get()\r\n .then((results) => {\r\n deferred.resolve(results);\r\n },\r\n (reason) => {\r\n deferred.reject(reason);\r\n });\r\n return deferred.promise;\r\n }\r\n }\r\n\r\n angular.module(\"app\").factory(OrganizationDataService.serviceId, [\"Restangular\", \"common\", \"$http\", (Restangular: Restangular.IService, common: ICommonFactory, $http: ng.IHttpService) =>\r\n new OrganizationDataService(Restangular, common, $http)\r\n ]);\r\n}","/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n export interface IProspectServiceClient {\r\n saveProspect: (ITaapProspectView) => ng.IPromise;\r\n userHasProspect: () => ng.IPromise;\r\n getUncSchools: () => ng.IPromise;\r\n getTaapProfile: () => ng.IPromise;\r\n }\r\n \r\n export class ProspectServiceClient implements IProspectServiceClient {\r\n static $inject: string[] = [\"Restangular\", \"common\", \"$http\"];\r\n\r\n constructor(private Restangular: Restangular.IService, private common: ICommonFactory, private $http: ng.IHttpService) {\r\n }\r\n\r\n saveProspect(taapProspectView: ITaapProspectView) {\r\n\r\n var deferred = this.common.$q.defer();\r\n\r\n if (taapProspectView.AdditionalData.deniedAdmission && !taapProspectView.AdditionalData.acceptedToUncInstitution)\r\n taapProspectView.AdditionalData.eligible = true;\r\n else\r\n taapProspectView.AdditionalData.eligible = false;\r\n\r\n this.Restangular.all(\"Prospect/insertprospecttaap\").post(taapProspectView).then((result) => {\r\n deferred.resolve(result);\r\n }, (reason) => {\r\n deferred.reject(reason);\r\n });\r\n\r\n return deferred.promise;\r\n }\r\n\r\n userHasProspect() {\r\n var deferred = this.common.$q.defer();\r\n this.Restangular.one(\"Prospect/isProspectSubmitted\").get().then((result) => {\r\n deferred.resolve(result);\r\n }, (reason) => {\r\n deferred.reject(reason);\r\n });\r\n return deferred.promise;\r\n }\r\n\r\n getUncSchools() {\r\n var deferred = this.common.$q.defer();\r\n this.Restangular.all(\"institutions/getUncSchools\").getList().then((result) => {\r\n deferred.resolve(result);\r\n }, (reason) => {\r\n deferred.reject(reason);\r\n });\r\n return deferred.promise;\r\n }\r\n\r\n getTaapProfile() {\r\n var deferred = this.common.$q.defer();\r\n this.Restangular.one(\"Prospect/getTaapProfile\").get().then((data) => {\r\n deferred.resolve(data);\r\n }, (reason) => {\r\n deferred.reject(reason);\r\n });\r\n return deferred.promise;\r\n }\r\n }\r\n\r\n angular.module(\"app\").service(\"prospectServiceClient\", ProspectServiceClient);\r\n}","/// \r\nmodule Cfnc.Security {\r\n \"use strict\";\r\n\r\n \r\n class RedirectService implements IRedirectService {\r\n static $inject: string[] = [\"$window\", \"$location\"];\r\n static serviceId: string = \"redirectService\";\r\n\r\n private redirectUrl: string;\r\n\r\n constructor(private $window: angular.IWindowService, private $location: angular.ILocationService) {\r\n }\r\n\r\n redirect(url?: string): void {\r\n if (url) {\r\n this.redirectUrl = url;\r\n }\r\n else {\r\n if (this.isExternal(this.redirectUrl))\r\n {\r\n this.$window.location.href = this.redirectUrl;\r\n } else {\r\n this.$location.url(this.redirectUrl);\r\n }\r\n this.clear();\r\n }\r\n }\r\n\r\n clear(): void {\r\n this.redirectUrl = null;\r\n }\r\n\r\n isExternal(url): boolean {\r\n var regex = /https?:\\/\\/((?:[\\w\\d-]+\\.)+[\\w\\d]{2,})/i;\r\n var test = regex.exec(url);\r\n\r\n return test !== null && test[1] !== this.$location.host();\r\n }\r\n }\r\n\r\n angular.module(\"authentication\").service(RedirectService.serviceId, RedirectService);\r\n}","/// \r\n\r\nnamespace Cfnc {\r\n\r\n export interface IResponseInterceptor {\r\n response: (response) => ng.IPromise;\r\n responseError: (rejection) => ng.IPromise;\r\n }\r\n\r\n export class ResponseInterceptor implements IResponseInterceptor {\r\n static serviceId: string = \"responseInterceptor\";\r\n\r\n four0oneCount = 0; \r\n common: ICommonFactory;\r\n\r\n constructor(private $q: ng.IQService, private $injector: ng.auto.IInjectorService, private httpBuffer: IHttpBuffer) {\r\n }\r\n\r\n response = (response) => {\r\n this.four0oneCount = 0;\r\n return response;\r\n }\r\n\r\n responseError = (rejection) => {\r\n\r\n this.common = this.common || this.$injector.get(\"common\") as ICommonFactory;\r\n\r\n var deferred = this.$q.defer();\r\n\r\n if (rejection.status === 401) {\r\n if (this.four0oneCount >= 10) {\r\n this.common.authentication.silentLogout().then(() => {\r\n this.common.authentication.login();\r\n });\r\n }\r\n\r\n this.four0oneCount += 1;\r\n\r\n var authService: Security.IAuthenticationService = this.$injector.get(\"authentication\") as Security.IAuthenticationService;\r\n\r\n authService.authenticate(true).then(() => {\r\n this.httpBuffer.append(rejection.config, deferred);\r\n this.httpBuffer.retryAll(config => {\r\n return config;\r\n });\r\n })\r\n }\r\n else {\r\n deferred.reject(rejection);\r\n }\r\n\r\n return deferred.promise;\r\n\r\n }\r\n }\r\n\r\n angular.module(\"app\").factory(ResponseInterceptor.serviceId,\r\n [\"$q\", \"$injector\", \"httpBuffer\", ($q, $injector, httpBuffer, common) => new ResponseInterceptor($q, $injector, httpBuffer)]);\r\n}\r\n","namespace Cfnc {\r\n export interface ICfncRootScope extends angular.IRootScopeService {\r\n title: string;\r\n }\r\n\r\n export interface IRouteMediator {\r\n setRoutingHandlers: () => void;\r\n breadCrumbs: IRoute[];\r\n }\r\n\r\n\r\n export class RouteMediator implements IRouteMediator {\r\n static serviceId: string = \"routemediator\";\r\n\r\n // Define the functions and properties to reveal.\r\n handleRouteChangeError = false;\r\n\r\n breadCrumbs: IRoute[];\r\n\r\n constructor(\r\n private $location: angular.ILocationService,\r\n private $rootScope: ICfncRootScope,\r\n private Title,\r\n private config: IConfig,\r\n private logger: ILogger,\r\n private $routeParams: angular.route.IRouteParamsService,\r\n private routes: IRoute[],\r\n private common: ICommonFactory) {\r\n\r\n }\r\n\r\n setRoutingHandlers() {\r\n this.updateDocTitle();\r\n this.handleRoutingErrors();\r\n this.updateBreadCrumbs();\r\n }\r\n\r\n handleRoutingErrors() {\r\n this.$rootScope.$on(\"$routeChangeError\",\r\n (event, current, previous, rejection) => {\r\n if (this.handleRouteChangeError) { return; }\r\n this.handleRouteChangeError = true;\r\n var msg = \"Error routing: \" + (current && current.name)\r\n + \". \" + (rejection.msg || \"\");\r\n this.logger.logWarning(msg, current, RouteMediator.serviceId, true);\r\n this.$location.path(\"/\");\r\n });\r\n }\r\n\r\n updateDocTitle() {\r\n var self = this;\r\n self.$rootScope.$on(\"$routeChangeSuccess\",\r\n (event, current, previous) => {\r\n\r\n this.handleRouteChangeError = false;\r\n var title = this.config.docTitle + \" \" + (this.common.interpolateTitle(current.title) || \"\");\r\n this.Title.value(title);\r\n this.Title.store(true);\r\n this.Title.original(title);\r\n });\r\n }\r\n\r\n updateBreadCrumbs() {\r\n this.$rootScope.$on(\"$routeChangeSuccess\",\r\n (event, current, previous) => {\r\n this.breadCrumbs = [];\r\n\r\n var route = this.routes.filter(r => r.url == current.$$route.originalPath)[0];\r\n\r\n this.breadCrumbs.push(route);\r\n\r\n while (route) {\r\n var routes = this.routes.filter(r => r.config.settings.breadCrumb != null && r.config.settings.breadCrumb == route.config.settings.parent)\r\n if (routes.length > 0) {\r\n route = routes[0];\r\n this.breadCrumbs.unshift(routes[0]);\r\n }\r\n else {\r\n route = null;\r\n }\r\n }\r\n\r\n this.breadCrumbs.unshift({\r\n url: this.config.umbracoUrl,\r\n config: {\r\n title: \"Home\",\r\n templateUrl: null,\r\n settings: {}\r\n }\r\n });\r\n });\r\n }\r\n\r\n\r\n //interpolateTitle(title: string) {\r\n // if (title.indexOf(\":\") > -1) {\r\n // var params = title.match(/\\:([a-zA-Z0-9])+/g);\r\n // params.forEach((v) => title = title.replace(v, this.$routeParams[v.substr(1)]));\r\n // }\r\n // return title;\r\n //};\r\n\r\n }\r\n\r\n\r\n angular.module(\"app\").factory(RouteMediator.serviceId, [\"$location\", \"$rootScope\", \"Title\", \"config\", \"logger\", \"$routeParams\", \"routes\", \"common\",\r\n ($location, $rootScope, Title, config, logger, $routeParams, routes, common) =>\r\n new RouteMediator($location, $rootScope, Title, config, logger, $routeParams, routes, common)\r\n ]);\r\n}","/// \r\nnamespace Cfnc {\r\n\r\n export interface IsavedSearchService {\r\n name: string;\r\n setName: (value: string) => void;\r\n getName: () => string;\r\n }\r\n\r\n export class SavedSearchService implements IsavedSearchService {\r\n name: string;\r\n\r\n public setName(value: string) {\r\n this.name = value;\r\n }\r\n\r\n public getName() {\r\n return this.name == \"undefined\" ? null : this.name;\r\n }\r\n }\r\n\r\n angular.module(\"app\").service(\"savedSearchService\", SavedSearchService);\r\n}","/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n export interface ISaveSchoolService {\r\n saveSchoolAfterLogin: (organizationId: string, getRecruited?: boolean) => boolean;\r\n clear: () => void;\r\n\r\n saveSchool: boolean;\r\n orginizationId: string;\r\n\r\n }\r\n \r\n class SaveSchoolService implements ISaveSchoolService {\r\n static $inject: string[] = [];\r\n static serviceId: string = \"saveSchoolService\";\r\n saveSchool: boolean = false;\r\n orginizationId: string;\r\n\r\n constructor() {\r\n }\r\n\r\n saveSchoolAfterLogin = (organizationId: string, getRecruited?: boolean) => {\r\n if (getRecruited != null) {\r\n this.saveSchool = true;\r\n this.orginizationId = organizationId;\r\n return false;\r\n }\r\n else {\r\n if (organizationId == this.orginizationId && this.saveSchool == true) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n };\r\n\r\n clear = () => {\r\n this.saveSchool = false;\r\n this.orginizationId = \"\";\r\n };\r\n }\r\n\r\n angular.module(\"app\").service(SaveSchoolService.serviceId, SaveSchoolService);\r\n}","/// \r\nnamespace Cfnc {\r\n export interface ISport {\r\n sportName: string;\r\n sportCode: string;\r\n }\r\n\r\n export interface ISportList {\r\n getSports: () => ISport[];\r\n }\r\n\r\n export class SportList implements ISportList {\r\n static serviceId: string = \"sportList\";\r\n\r\n constructor() {\r\n }\r\n\r\n getSports() {\r\n return [\r\n {\r\n sportName: \"Archery\",\r\n sportCode: \"ARCH\"\r\n },\r\n {\r\n sportName: \"Badminton\",\r\n sportCode: \"BADMI\"\r\n },\r\n {\r\n sportName: \"Baseball\",\r\n sportCode: \"BASEB\"\r\n },\r\n {\r\n sportName: \"Basketball\",\r\n sportCode: \"BSKTB\"\r\n },\r\n {\r\n sportName: \"Bicycling\",\r\n sportCode: \"BICYC\"\r\n },\r\n {\r\n sportName: \"Bowling\",\r\n sportCode: \"BOWLG\"\r\n },\r\n {\r\n sportName: \"Cheerleading\",\r\n sportCode: \"CHEER\"\r\n },\r\n {\r\n sportName: \"Crew\",\r\n sportCode: \"CREW\"\r\n },\r\n {\r\n sportName: \"Cross-Country\",\r\n sportCode: \"XRUN\"\r\n },\r\n {\r\n sportName: \"Equestrian Sports\",\r\n sportCode: \"EQUES\"\r\n },\r\n {\r\n sportName: \"Fencing\",\r\n sportCode: \"FENCE\"\r\n },\r\n {\r\n sportName: \"Field Hockey\",\r\n sportCode: \"FHOCK\"\r\n },\r\n {\r\n sportName: \"Football\",\r\n sportCode: \"FOOTB\"\r\n },\r\n {\r\n sportName: \"Golf\",\r\n sportCode: \"GOLF\"\r\n },\r\n {\r\n sportName: \"Gymnastics\",\r\n sportCode: \"GYMNA\"\r\n },\r\n {\r\n sportName: \"Ice Hockey\",\r\n sportCode: \"HOCKE\"\r\n },\r\n {\r\n sportName: \"Lacrosse\",\r\n sportCode: \"LACRO\"\r\n },\r\n {\r\n sportName: \"Racquetball\",\r\n sportCode: \"RACQU\"\r\n },\r\n {\r\n sportName: \"Riflery\",\r\n sportCode: \"RIFLE\"\r\n },\r\n {\r\n sportName: \"Rugby\",\r\n sportCode: \"RUGBY\"\r\n },\r\n {\r\n sportName: \"Sailing\",\r\n sportCode: \"SAILG\"\r\n },\r\n {\r\n sportName: \"Skiing (downhill)\",\r\n sportCode: \"SKIIN\"\r\n },\r\n {\r\n sportName: \"Soccer\",\r\n sportCode: \"SOCCR\"\r\n },\r\n {\r\n sportName: \"Softball\",\r\n sportCode: \"SOFTB\"\r\n },\r\n {\r\n sportName: \"Squash\",\r\n sportCode: \"SQUAS\"\r\n },\r\n {\r\n sportName: \"Strength & Conditioning\",\r\n sportCode: \"STRE3\"\r\n },\r\n {\r\n sportName: \"Swimming\",\r\n sportCode: \"SWIM\"\r\n },\r\n {\r\n sportName: \"Tennis\",\r\n sportCode: \"TENNI\"\r\n },\r\n {\r\n sportName: \"Track and Field\",\r\n sportCode: \"TRACK\",\r\n },\r\n {\r\n sportName: \"Ultimate Frisbee\",\r\n sportCode: \"ULTIM\"\r\n },\r\n {\r\n sportName: \"Volleyball\",\r\n sportCode: \"VOLLB\"\r\n },\r\n {\r\n sportName: \"Water Polo\",\r\n sportCode: \"WPOLO\"\r\n },\r\n {\r\n sportName: \"Water Skiing\",\r\n sportCode: \"00024\"\r\n },\r\n {\r\n sportName: \"Weight Lifting\",\r\n sportCode: \"WLIFT\"\r\n },\r\n {\r\n sportName: \"Winter (Indoor) Track\",\r\n sportCode: \"00031\"\r\n },\r\n {\r\n sportName: \"Wrestling\",\r\n sportCode: \"WREST\"\r\n }\r\n ];\r\n }\r\n }\r\n\r\n angular.module(\"app\").service(SportList.serviceId, SportList);\r\n}","/// \r\nnamespace Cfnc {\r\n\r\n export interface IStartApplicationService {\r\n schoolId: string;\r\n \r\n clear: () => void;\r\n }\r\n\r\n export class StartApplicationService implements IStartApplicationService {\r\n schoolId: string;\r\n\r\n public clear() {\r\n this.schoolId = null;\r\n }\r\n }\r\n\r\n angular.module(\"app\").service(\"startApplicationService\", StartApplicationService);\r\n}","/// \r\nnamespace Cfnc {\r\n export interface ITranscriptDataService {\r\n requestTranscript: (TranscriptRequest) => ng.IPromise;\r\n getParticipatingApplications: () => ng.IPromise;\r\n getSubmittedTranscripts: () => ng.IPromise;\r\n }\r\n\r\n export class TranscriptRequest {\r\n userId: number;\r\n applicationIds: Array;\r\n ceeb: string;\r\n }\r\n\r\n export class TranscriptDataService implements ITranscriptDataService {\r\n static serviceId: string = \"transcriptDataService\";\r\n\r\n constructor(private common: ICommonFactory, private $http: ng.IHttpService, private Restangular: Restangular.IService) {\r\n }\r\n\r\n requestTranscript = (transcriptRequest: TranscriptRequest) => {\r\n var deferred = this.common.$q.defer();\r\n this.Restangular.all(\"transcripts/sendtranscript\").post(transcriptRequest).then((result) => {\r\n deferred.resolve(result);\r\n },(reason) => {\r\n deferred.reject(reason);\r\n });\r\n\r\n return deferred.promise;\r\n };\r\n\r\n getParticipatingApplications = () => {\r\n var deferred = this.common.$q.defer();\r\n this.Restangular.all(\"transcripts/participatingapplications\").getList()\r\n .then((result) => {\r\n deferred.resolve(result);\r\n },\r\n (reason) => {\r\n deferred.reject(reason);\r\n });\r\n return deferred.promise;\r\n };\r\n\r\n getSubmittedTranscripts = () => {\r\n var deferred = this.common.$q.defer();\r\n this.Restangular.all(\"transcripts\").getList()\r\n .then((result) => {\r\n deferred.resolve(result);\r\n },(reason) => {\r\n deferred.reject(reason);\r\n });\r\n return deferred.promise;\r\n };\r\n\r\n\r\n }\r\n\r\n angular.module(\"app\").factory(TranscriptDataService.serviceId, [\"common\", \"$http\", \"Restangular\", (common: ICommonFactory, $http: ng.IHttpService, Restangular) =>\r\n new TranscriptDataService(common, $http, Restangular)\r\n ]);\r\n}","/// \r\n/// \r\n/// \r\nmodule Cfnc\r\n{\r\n \"use strict\";\r\n\r\n export class ActScores extends SubCatAccordion implements IsubCatAccordion\r\n {\r\n difficulty: string;\r\n toolTipHeader: string = \"Find colleges where your ACT scores are similar to recently admitted students.\";\r\n\r\n typeCbs = [{ type: \"ACT scores <= 15\", isChecked: false },\r\n { type: \"ACT scores 16 - 19\", isChecked: false },\r\n { type: \"ACT scores 20 - 23\", isChecked: false },\r\n { type: \"ACT scores 24 - 28\", isChecked: false },\r\n { type: \"ACT scores >= 29\", isChecked: false }];\r\n\r\n public getSelectedTypes(): string[]\r\n {\r\n var selectedTypes = new Array();\r\n this.selected = false;\r\n\r\n if ( this.difficulty !== 'undefined' )\r\n {\r\n switch ( this.difficulty )\r\n {\r\n case \"ACT scores <= 15\":\r\n this.typeCbs[0].isChecked = true;\r\n this.typeCbs[1].isChecked = false;\r\n this.typeCbs[2].isChecked = false;\r\n this.typeCbs[3].isChecked = false;\r\n this.typeCbs[4].isChecked = false;\r\n break;\r\n case \"ACT scores 16 - 19\":\r\n this.typeCbs[0].isChecked = false;\r\n this.typeCbs[1].isChecked = true;\r\n this.typeCbs[2].isChecked = false;\r\n this.typeCbs[3].isChecked = false;\r\n this.typeCbs[4].isChecked = false;\r\n break;\r\n case \"ACT scores 20 - 23\":\r\n this.typeCbs[0].isChecked = false;\r\n this.typeCbs[1].isChecked = false;\r\n this.typeCbs[2].isChecked = true;\r\n this.typeCbs[3].isChecked = false;\r\n this.typeCbs[4].isChecked = false;\r\n break;\r\n case \"ACT scores 24 - 28\":\r\n this.typeCbs[0].isChecked = false;\r\n this.typeCbs[1].isChecked = false;\r\n this.typeCbs[2].isChecked = false;\r\n this.typeCbs[3].isChecked = true;\r\n this.typeCbs[4].isChecked = false;\r\n break;\r\n case \"ACT scores >= 29\":\r\n this.typeCbs[0].isChecked = false;\r\n this.typeCbs[1].isChecked = false;\r\n this.typeCbs[2].isChecked = false;\r\n this.typeCbs[3].isChecked = false;\r\n this.typeCbs[4].isChecked = true;\r\n break;\r\n }\r\n selectedTypes.push(this.difficulty );\r\n this.selected = true;\r\n }\r\n return selectedTypes;\r\n }\r\n\r\n public reset()\r\n {\r\n this.difficulty = null;\r\n this.selected = false;\r\n }\r\n \r\n }\r\n} ","/// \r\n/// \r\n/// \r\nmodule Cfnc\r\n{\r\n \"use strict\";\r\n\r\n export class AdditionalServices extends SubCatAccordion implements IsubCatAccordion\r\n {\r\n typeCbs = [{ type: \"Daycare\", isChecked: false },\r\n { type: \"Alcohol/Substance Abuse Counseling\", isChecked: false },\r\n { type: \"Personal/psychological Counseling\", isChecked: false },\r\n { type: \"Health Services\", isChecked: false },\r\n { type: \"Learning Assistance Services\", isChecked: false },\r\n { type: \"Work-Study\", isChecked: false }\r\n ];\r\n\r\n public getSelectedTypes(): Array\r\n {\r\n var selectedTypes = new Array();\r\n this.selected = false;\r\n for ( var i in this.typeCbs )\r\n {\r\n if ( this.typeCbs[i].isChecked )\r\n {\r\n selectedTypes.push( this.typeCbs[i].type );\r\n this.selected = true;\r\n }\r\n }\r\n return selectedTypes;\r\n }\r\n }\r\n}","/// \r\n/// \r\n/// \r\nmodule Cfnc\r\n{\r\n \"use strict\";\r\n\r\n export class AdmissPolicies extends SubCatAccordion implements IsubCatAccordion\r\n {\r\n toolTipHeader: string = \"What admissions policies are important to you?\";\r\n\r\n typeCbs = [{ type: \"Early action\", isChecked: false },\r\n { type: \"Early Decision\", isChecked: false },\r\n { type: \"Deferred admission\", isChecked: false },\r\n { type: \"Concurrent enrollment for high school\", isChecked: false }];\r\n\r\n public getSelectedTypes(): Array\r\n {\r\n var selectedTypes = new Array();\r\n this.selected = false;\r\n for ( var i in this.typeCbs )\r\n {\r\n if ( this.typeCbs[i].isChecked )\r\n {\r\n selectedTypes.push( this.typeCbs[i].type );\r\n this.selected = true;\r\n }\r\n }\r\n return selectedTypes;\r\n }\r\n }\r\n}","/// \r\n/// \r\n/// \r\nmodule Cfnc\r\n{\r\n \"use strict\";\r\n\r\n export class CampusSettings extends SubCatAccordion implements IsubCatAccordion\r\n {\r\n typeCbs = [{ type: \"Urban\", isChecked: false },\r\n { type: \"Suburban\", isChecked: false },\r\n { type: \"Small Town\", isChecked: false },\r\n { type: \"Rural\", isChecked: false }];\r\n\r\n public getSelectedTypes(): Array\r\n {\r\n //returnFilters: Filters;\r\n var jsonObj = [];\r\n var selectedTypes = new Array();\r\n this.selected = false;\r\n \r\n for ( var i in this.typeCbs )\r\n {\r\n if ( this.typeCbs[i].isChecked )\r\n {\r\n jsonObj\r\n selectedTypes.push( this.typeCbs[i].type );\r\n this.selected = true;\r\n }\r\n }\r\n return selectedTypes;\r\n }\r\n }\r\n}","/// \r\n/// \r\n/// \r\nmodule Cfnc\r\n{\r\n \"use strict\";\r\n export class NumericRadio\r\n {\r\n label: string;\r\n num: number;\r\n }\r\n\r\n export class DistanceOptions extends SubCatAccordion implements IsubCatAccordion\r\n {\r\n distances: NumericRadio[];\r\n distances2: NumericRadio[];\r\n zipCode: string;\r\n selectedDistance: NumericRadio;\r\n selectedDistance2: NumericRadio;\r\n selectedWithin: boolean;\r\n selectedRanges: Array;\r\n distance: number;\r\n\r\n constructor()\r\n {\r\n super();\r\n this.distances = [{ label: \"< 25 miles\", num: 24 },\r\n { label: \"< 50 miles\", num: 49 },\r\n { label: \"< 100 miles\", num: 99 },\r\n { label: \">= 100 miles\", num: 100 }];\r\n\r\n this.distances2 = [{ label: \"Less than 25 miles\", num: 24 },\r\n { label: \"Less than 50 miles\", num: 49 },\r\n { label: \"Less than 100 miles\", num: 99 },\r\n { label: \"Greater than 100 miles\", num: 100 }];\r\n\r\n this.selectedDistance = this.distances[2];\r\n this.selectedDistance2 = this.distances2[2];\r\n\r\n this.selectedRanges = new Array();\r\n }\r\n\r\n public updatedSelected(range: number)\r\n {\r\n switch ( range )\r\n {\r\n case 24:\r\n this.selectedDistance = this.distances[0];\r\n this.selectedDistance2 = this.distances2[0];\r\n break;\r\n case 49:\r\n this.selectedDistance = this.distances[1];\r\n this.selectedDistance2 = this.distances2[1];\r\n break;\r\n case 99:\r\n this.selectedDistance = this.distances[2];\r\n this.selectedDistance2 = this.distances2[2];\r\n break;\r\n case 100:\r\n this.selectedDistance = this.distances[3];\r\n this.selectedDistance2 = this.distances2[3];\r\n break;\r\n default:\r\n this.selectedDistance = this.distances[2];\r\n this.selectedDistance2 = this.distances2[2];\r\n break;\r\n }\r\n }\r\n\r\n public getSelectedTypes(): string[]\r\n {\r\n \r\n this.selected = false;\r\n this.selectedRanges.length = 0;\r\n if ( typeof this.zipCode !== \"undefined\" && this.zipCode.length == 5 )\r\n {\r\n this.selectedRanges.push( this.selectedDistance.label + \" from \" + this.zipCode );\r\n this.selected = true;\r\n return this.selectedRanges;\r\n }\r\n else\r\n return null;\r\n }\r\n }\r\n}","/// \r\n/// \r\n/// \r\nmodule Cfnc\r\n{\r\n \"use strict\";\r\n\r\n export class EntranceDifficulty extends SubCatAccordion implements IsubCatAccordion\r\n {\r\n difficulty: string;\r\n toolTipHeader: string = \"How selective are the schools you are looking for? (Selectivity covers the class rank, GPA, SAT scores and ACT scores of the incoming freshmen as well as the percentage of applicants who were accepted.)\";\r\n popoverBigheader: string = \"How selective are the schools you are looking for? (Selectivity covers the class rank, GPA, SAT scores and ACT scores of the incoming freshmen as well as the percentage of applicants who were accepted.)
  • Most Difficult (about 30% or fewer of all applicants accepted)
  • Very Difficult (about 60% or fewer of all applicants accepted)
  • Moderately Difficult (about 85% or fewer of all applicants accepted.)
  • Minimally Difficult (up to 95% of applicants accepted (not 100%).
  • Noncompetitive (virtually all applicants accepted regardless of high school rank or test scores).
\";\r\n\r\n typeCbs = [{ type: \"Most Difficult\", isChecked: false },\r\n { type: \"Very Difficult\", isChecked: false },\r\n { type: \"Moderately Difficult\", isChecked: false },\r\n { type: \"Minimally Difficult\", isChecked: false },\r\n { type: \"Noncompetitive\", isChecked: false }];\r\n\r\n public getSelectedTypes(): string[]\r\n {\r\n var selectedTypes = new Array();\r\n this.selected = false;\r\n\r\n if ( this.difficulty !== 'undefined' )\r\n {\r\n switch ( this.difficulty )\r\n {\r\n case \"Most Difficult\":\r\n this.typeCbs[0].isChecked = true;\r\n this.typeCbs[1].isChecked = false;\r\n this.typeCbs[2].isChecked = false;\r\n this.typeCbs[3].isChecked = false;\r\n this.typeCbs[4].isChecked = false;\r\n break;\r\n case \"Very Difficult\":\r\n this.typeCbs[0].isChecked = false;\r\n this.typeCbs[1].isChecked = true;\r\n this.typeCbs[2].isChecked = false;\r\n this.typeCbs[3].isChecked = false;\r\n this.typeCbs[4].isChecked = false;\r\n break;\r\n case \"Moderately Difficult\":\r\n this.typeCbs[0].isChecked = false;\r\n this.typeCbs[1].isChecked = false;\r\n this.typeCbs[2].isChecked = true;\r\n this.typeCbs[3].isChecked = false;\r\n this.typeCbs[4].isChecked = false;\r\n break;\r\n case \"Minimally Difficult\":\r\n this.typeCbs[0].isChecked = false;\r\n this.typeCbs[1].isChecked = false;\r\n this.typeCbs[2].isChecked = false;\r\n this.typeCbs[3].isChecked = true;\r\n this.typeCbs[4].isChecked = false;\r\n break;\r\n case \"Noncompetitive\":\r\n this.typeCbs[0].isChecked = false;\r\n this.typeCbs[1].isChecked = false;\r\n this.typeCbs[2].isChecked = false;\r\n this.typeCbs[3].isChecked = false;\r\n this.typeCbs[4].isChecked = true;\r\n break;\r\n }\r\n selectedTypes.push( this.difficulty );\r\n this.selected = true;\r\n }\r\n return selectedTypes;\r\n }\r\n\r\n public reset()\r\n {\r\n this.difficulty = null;\r\n this.selected = false;\r\n }\r\n }\r\n} ","/// \r\n/// \r\n/// \r\nmodule Cfnc\r\n{\r\n \"use strict\";\r\n\r\n export class Extracurriculars extends SubCatAccordion implements IsubCatAccordion\r\n {\r\n typeCbs = [\r\n { type: \"Student Newspaper\", isChecked: false },\r\n { type: \"Radio Station\", isChecked: false },\r\n { type: \"Television Station\", isChecked: false },\r\n { type: \"Fraternities\", isChecked: false },\r\n { type: \"Sororities\", isChecked: false },\r\n { type: \"Club/Intramural Sports\", isChecked: false },\r\n { type: \"ROTC\", isChecked: false },\r\n { type: \"Music (Performing Arts)\", isChecked: false }\r\n ];\r\n\r\n public getSelectedTypes(): Array\r\n {\r\n var selectedTypes = new Array();\r\n this.selected = false;\r\n for ( var i in this.typeCbs )\r\n {\r\n if ( this.typeCbs[i].isChecked )\r\n {\r\n selectedTypes.push( this.typeCbs[i].type );\r\n this.selected = true;\r\n }\r\n }\r\n return selectedTypes;\r\n }\r\n }\r\n}","/// \r\n/// \r\n/// \r\nmodule Cfnc\r\n{\r\n \"use strict\";\r\n\r\n export class FinancialAid extends SubCatAccordion implements IsubCatAccordion\r\n {\r\n toolTipHeader: string = \"Which financial aid programs/opportunities interest you?\";\r\n\r\n typeCbs = [{ type: \"Academic Scholarships\", isChecked: false },\r\n { type: \"Athletic Scholarships\", isChecked: false },\r\n { type: \"Federal Work Study\", isChecked: false },\r\n { type: \"Federal/State Grants\", isChecked: false },\r\n { type: \"Institutional Grants\", isChecked: false },\r\n { type: \"Parent Loans\", isChecked: false }];\r\n\r\n public getSelectedTypes(): Array\r\n {\r\n var selectedTypes = new Array();\r\n this.selected = false;\r\n for ( var i in this.typeCbs )\r\n {\r\n if ( this.typeCbs[i].isChecked )\r\n {\r\n selectedTypes.push( this.typeCbs[i].type );\r\n this.selected = true;\r\n }\r\n }\r\n return selectedTypes;\r\n }\r\n }\r\n}","/// \r\n/// \r\n/// \r\nmodule Cfnc\r\n{\r\n \"use strict\";\r\n\r\n export class HistoricallyBlacks extends SubCatAccordion implements IsubCatAccordion\r\n {\r\n typeCbs = [{ type: \"Historically Black\", isChecked: false }];\r\n\r\n public getSelectedTypes(): Array\r\n {\r\n var selectedTypes = new Array();\r\n this.selected = false;\r\n if ( this.typeCbs[0].isChecked )\r\n {\r\n selectedTypes.push( this.typeCbs[0].type );\r\n this.selected = true;\r\n }\r\n\r\n return selectedTypes;\r\n }\r\n }\r\n}","/// \r\n/// \r\n/// \r\nmodule Cfnc\r\n{\r\n \"use strict\";\r\n\r\n export class ProgramsMajors extends SubCatAccordion implements IsubCatAccordion\r\n {\r\n typeCbs = [{ type: \" \tApplied Mathematics, General\", isChecked: false },\r\n { type: \"Information Technology\", isChecked: false },\r\n { type: \"Bioengineering and Biomedical Engineering\", isChecked: false },\r\n { type: \"Computer Engineering, General\", isChecked: false },\r\n { type: \"Engineering Science\", isChecked: false }\r\n ];\r\n\r\n public getSelectedTypes(): Array\r\n {\r\n var selectedTypes = new Array();\r\n this.selected = false;\r\n for ( var i in this.typeCbs )\r\n {\r\n if ( this.typeCbs[i].isChecked )\r\n {\r\n selectedTypes.push( this.typeCbs[i].type );\r\n this.selected = true;\r\n }\r\n }\r\n return selectedTypes;\r\n }\r\n }\r\n} ","/// \r\n/// \r\n/// \r\nmodule Cfnc\r\n{\r\n \"use strict\";\r\n\r\n export class PublicPrivates extends SubCatAccordion implements IsubCatAccordion\r\n {\r\n selection: string;\r\n disabled: boolean = true;\r\n \r\n typeCbs = [{ type: \"Public\", isChecked: false },\r\n { type: \"Private\", isChecked: false },\r\n { type: \"Religious Private\", isChecked: false }\r\n ];\r\n\r\n religions: string[] = [\r\n \"Adventist\",\r\n \"African Methodist-Episcopal\",\r\n \"Assembly of God\",\r\n \"Baptist\",\r\n \"Christian & Missionary Alliance\",\r\n \"Christian Science\",\r\n \"Church of Christ\",\r\n \"Church of God\",\r\n \"Church of the Brethren\",\r\n \"Congregational( United Church of Christ )\",\r\n \"Disciples of Christ\",\r\n \"Episcopal( Anglican )\",\r\n \"Evangelical\",\r\n \"Interdenominational Christian\",\r\n \"Jewish\",\r\n \"Lutheran\",\r\n \"Mennonite\",\r\n \"Methodist\",\r\n \"Moravian\",\r\n \"Mormon\",\r\n \"Nondenominational Christian\",\r\n \"Other\",\r\n \"Other Christian\",\r\n \"Plymouth Brethren\",\r\n \"Presbyterian\",\r\n \"Quaker( Society of Friends )\",\r\n \"Reformed\",\r\n \"Roman Catholic\",\r\n \"Wesleyan\",\r\n \"Private/Religious\"];\r\n\r\n public getSelectedTypes(): Array\r\n {\r\n var selectedTypes = new Array();\r\n var jsonObj = [];\r\n this.selected = false;\r\n for ( var i = 0; i < 2; i++ )\r\n {\r\n if ( this.typeCbs[i].isChecked )\r\n {\r\n\r\n selectedTypes.push( this.typeCbs[i].type );\r\n this.selected = true;\r\n }\r\n }\r\n return selectedTypes;\r\n }\r\n\r\n public checkPublicPrivateSelected()\r\n {\r\n this.selected = false;\r\n for ( var i in this.typeCbs )\r\n {\r\n if ( this.typeCbs[i].isChecked )\r\n {\r\n this.selected = true;\r\n }\r\n }\r\n }\r\n }\r\n}","/// \r\n/// \r\n/// \r\nmodule Cfnc\r\n{\r\n \"use strict\";\r\n\r\n export class MinMaxScore\r\n {\r\n min: number;\r\n max: number;\r\n\r\n constructor( min: number, max: number )\r\n {\r\n this.min = min;\r\n this.max = max;\r\n }\r\n }\r\n\r\n export class SatScores \r\n {\r\n difficulty: string;\r\n toolTipHeader: string = \"Find colleges where your SAT scores are similar to recently admitted students.\";\r\n selectedReading: string;\r\n selectedMath: string;\r\n selectedWriting: string;\r\n selected: boolean = false;\r\n\r\n scoreRanges = [{ type: \"Score\", scoreRange: new MinMaxScore( 0, 0 ) },\r\n { type: \"200-400\", scoreRange: new MinMaxScore( 200, 400 ) },\r\n { type: \"410-470\", scoreRange: new MinMaxScore( 410, 470 ) },\r\n { type: \"480-530\", scoreRange: new MinMaxScore( 480, 530 ) },\r\n { type: \"540-600\", scoreRange: new MinMaxScore( 540, 600 ) },\r\n { type: \"610-800\", scoreRange: new MinMaxScore( 610, 800 ) }];\r\n\r\n typeCbsMath = [{ type: \"Score\", isChecked: false },\r\n { type: \"200-400\", isChecked: false },\r\n { type: \"410-470\", isChecked: false },\r\n { type: \"480-530\", isChecked: false },\r\n { type: \"540-600\", isChecked: false },\r\n { type: \"610-800\", isChecked: false }];\r\n\r\n typeCbsWriting = [{ type: \"Score\", isChecked: false },\r\n { type: \"200-400\", isChecked: false },\r\n { type: \"410-470\", isChecked: false },\r\n { type: \"480-530\", isChecked: false },\r\n { type: \"540-600\", isChecked: false },\r\n { type: \"610-800\", isChecked: false }];\r\n\r\n\r\n constructor()\r\n {\r\n this.selectedReading = this.scoreRanges[0].type;\r\n this.selectedMath = this.scoreRanges[0].type;\r\n this.selectedWriting = this.scoreRanges[0].type;\r\n }\r\n public reset( filterToRemove: string )\r\n {\r\n if ( filterToRemove.indexOf( \"SAT Reading\" ) >= 0 )\r\n this.resetReading();\r\n else if ( filterToRemove.indexOf( \"SAT Math\" ) >= 0 )\r\n this.resetMath();\r\n else if ( filterToRemove.indexOf( \"SAT Writing\" ) >= 0 )\r\n this.resetWriting();\r\n }\r\n public resetReading()\r\n {\r\n this.selectedReading = this.scoreRanges[0].type;\r\n this.checkSelected();\r\n }\r\n\r\n public resetMath()\r\n {\r\n this.selectedMath = this.scoreRanges[0].type;\r\n this.checkSelected();\r\n }\r\n\r\n public resetWriting()\r\n {\r\n this.selectedWriting = this.scoreRanges[0].type;\r\n this.checkSelected();\r\n }\r\n\r\n private checkSelected()\r\n {\r\n if ( this.selectedReading !== \"Score\" || this.selectedMath !== \"Score\" || this.selectedWriting !== \"Score\" )\r\n this.selected = true;\r\n else\r\n this.selected = false;\r\n }\r\n }\r\n} ","/// \r\n/// \r\n/// \r\nmodule Cfnc\r\n{\r\n \"use strict\";\r\n\r\n export class SpecialPrograms extends SubCatAccordion implements IsubCatAccordion\r\n {\r\n toolTipHeader: string = \"What special academic programs are a must-have at the college you choose?\";\r\n\r\n typeCbs = [{\r\n type: \"Accelerated Study\", isChecked: false\r\n },\r\n { type: \"Distance Learning\", isChecked: false },\r\n { type: \"Double Majors\", isChecked: false },\r\n { type: \"Honors Program\", isChecked: false },\r\n { type: \"Independent Study\", isChecked: false },\r\n { type: \"Internships\", isChecked: false },\r\n { type: \"Self-designed majors\", isChecked: false },\r\n { type: \"Study Abroad\", isChecked: false }];\r\n\r\n public getSelectedTypes(): Array\r\n {\r\n var selectedTypes = new Array();\r\n this.selected = false;\r\n for ( var i in this.typeCbs )\r\n {\r\n if ( this.typeCbs[i].isChecked )\r\n {\r\n selectedTypes.push( this.typeCbs[i].type );\r\n this.selected = true;\r\n }\r\n }\r\n return selectedTypes;\r\n }\r\n }\r\n}","/// \r\n/// \r\n/// \r\nmodule Cfnc\r\n{\r\n \"use strict\";\r\n\r\n export class StudentHousing extends SubCatAccordion implements IsubCatAccordion\r\n {\r\n typeCbs = [{ type: \"Men Only\", isChecked: false },\r\n { type: \"Women Only\", isChecked: false },\r\n { type: \"Coed Resident Halls\", isChecked: false },\r\n { type: \"Cooperative Housing\", isChecked: false },\r\n { type: \"Fraternity/Sorority Housing\", isChecked: false },\r\n { type: \"Special Housing\", isChecked: false }\r\n ];\r\n\r\n public getSelectedTypes(): Array\r\n {\r\n var selectedTypes = new Array();\r\n this.selected = false;\r\n for ( var i in this.typeCbs )\r\n {\r\n if ( this.typeCbs[i].isChecked )\r\n {\r\n selectedTypes.push( this.typeCbs[i].type );\r\n this.selected = true;\r\n }\r\n }\r\n return selectedTypes;\r\n }\r\n }\r\n}","/// \r\n/// \r\n/// \r\nmodule Cfnc\r\n{\r\n \"use strict\";\r\n\r\n export class StudentPops extends SubCatAccordion implements IsubCatAccordion\r\n { \r\n typeCbs = [{ type: \"< 2,500\", isChecked: false },\r\n { type: \"2,501 - 5,000\", isChecked: false },\r\n { type: \"5,001 - 10,000\", isChecked: false },\r\n { type: \"10,001 - 15,000\", isChecked: false },\r\n { type: \"15,001 - 20,000\", isChecked: false },\r\n { type: \"> 20,000\", isChecked: false }\r\n ];\r\n\r\n public getSelectedTypes(): Array\r\n {\r\n var selectedTypes = new Array();\r\n this.selected = false;\r\n for ( var i in this.typeCbs )\r\n {\r\n if ( this.typeCbs[i].isChecked )\r\n {\r\n selectedTypes.push( this.typeCbs[i].type );\r\n this.selected = true;\r\n }\r\n }\r\n return selectedTypes;\r\n }\r\n }\r\n}","/// \r\n/// \r\n/// \r\nmodule Cfnc\r\n{\r\n \"use strict\";\r\n\r\n export class Tuition \r\n {\r\n difficulty: string;\r\n toolTipHeader: string = \"What yearly tuition range would you like to search on?.\";\r\n selectedInState = { type: \"No Preference\", cost: \"\" };\r\n selectedOutState = { type: \"No Preference\", cost: \"\" };\r\n selected: boolean = false;\r\n\r\n tuitionRanges =\r\n [{ type: \"Less than or Equal to $5,000\", cost: \"Dx0,Dx5000\" },\r\n { type: \"Less than or Equal to $10,000\", cost: \"Dx0,Dx10000\" },\r\n { type: \"Less than or Equal to $15,000\", cost: \"Dx0,Dx15000\" },\r\n { type: \"Less than or Equal to $20,000\", cost: \"Dx0,Dx20000\" },\r\n { type: \"Less than or Equal to $25,000\", cost: \"Dx0,Dx25000\" },\r\n { type: \"Less than or Equal to $30,000\", cost: \"Dx0,Dx30000\" },\r\n { type: \"Less than or Equal to $35,000\", cost: \"Dx0,Dx35000\" },\r\n { type: \"Less than or Equal to $40,000\", cost: \"Dx0,Dx40000\"},\r\n { type: \"Less than or Equal to $45,000\", cost: \"Dx0,Dx45000\" },\r\n { type: \"Less than or Equal to $50,000\", cost: \"Dx0,Dx50000\" },\r\n { type: \"Greater than $50,000\", cost: \"Dx50001,Dx1000000\" }];\r\n\r\n constructor()\r\n {\r\n \r\n }\r\n public reset( filterToRemove: string )\r\n {\r\n if ( filterToRemove.indexOf( \"In-state Tuition \" ) >= 0 )\r\n this.resetInState();\r\n else if ( filterToRemove.indexOf( \"Out-of-state Tuition\" ) >= 0 )\r\n this.resetOutState();\r\n }\r\n public resetInState()\r\n {\r\n this.selectedInState = this.tuitionRanges[0];\r\n this.checkSelected();\r\n }\r\n\r\n public resetOutState()\r\n {\r\n this.selectedOutState = this.tuitionRanges[0];\r\n this.checkSelected();\r\n }\r\n\r\n private checkSelected()\r\n {\r\n if ( this.selectedInState.type !== \"Any Cost\" || this.selectedOutState.type !== \"Any Cost\" )\r\n this.selected = true;\r\n else\r\n this.selected = false;\r\n }\r\n }\r\n} ","/// \r\nmodule Cfnc\r\n{\r\n \"use strict\";\r\n\r\n interface IclearModalScope extends ng.IScope {\r\n vm: IclearModal;\r\n yes: () => void;\r\n no: () => void;\r\n }\r\n\r\n interface IclearModal { }\r\n\r\n class ClearModalCtrl implements IclearModal {\r\n static controllerId: string = 'clearModalCtrl';\r\n private log;\r\n\r\n constructor(private common: ICommonFactory, private $scope: IclearModalScope, private $uibModalInstance: ng.ui.bootstrap.IModalServiceInstance) {\r\n this.log = common.logger.getLogFn(ClearModalCtrl.controllerId);\r\n this.activate();\r\n this.$scope.yes = () => this.yes();\r\n this.$scope.no = () => this.no();\r\n }\r\n\r\n yes() {\r\n this.$uibModalInstance.close(true);\r\n }\r\n\r\n no() {\r\n this.$uibModalInstance.dismiss();\r\n }\r\n\r\n activate() {\r\n var promises = [];\r\n this.common.activateController(promises, ClearModalCtrl.controllerId).then(() => {\r\n this.log(\"Activated Modal\");\r\n });\r\n }\r\n }\r\n\r\n angular.module(\"app\").controller(ClearModalCtrl.controllerId, ['common', \"$scope\", \"$uibModalInstance\", (common: ICommonFactory, $scope: IclearModalScope, $uibModalInstance: ng.ui.bootstrap.IModalServiceInstance) =>\r\n new ClearModalCtrl(common, $scope, $uibModalInstance)\r\n ]);\r\n} ","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IMajorsModalScope extends ng.IScope {\r\n vm: IMajorsModal;\r\n }\r\n\r\n interface IMajorsModal {\r\n selectedFilters: Array;\r\n majorClusters: Array;\r\n majorCip: string;\r\n majorsGroup: IAvaliableFiltersGroup;\r\n results: Array;\r\n cancel: () => void;\r\n ok: () => void;\r\n clusterOpen: boolean;\r\n }\r\n\r\n class MajorsModalCtrl implements IMajorsModal {\r\n static controllerId: string = \"majorsModalCtrl\";\r\n static $inject: Array = [\"campusSearchDataService\", \"common\", \"$scope\", \"$uibModalInstance\", \"selectedFilters\", \"majorsGroup\", \"majorFilter\", \"Restangular\", \"config\"];\r\n private log;\r\n selectedFilters: Array;\r\n majorClusters: Array;\r\n majorCip: string;\r\n majorsGroup: IAvaliableFiltersGroup;\r\n results: Array;\r\n clusterOpen: boolean;\r\n transitionsUrl: string;\r\n majorName: string;\r\n clonedFilters: any;\r\n\r\n constructor(private campusSearchDataService: ICampusSearchDataService, private common: ICommonFactory, private $scope: IMajorsModalScope, private $uibModalInstance: ng.ui.bootstrap.IModalServiceInstance, selectedFilters: IAvaliableFiltersGroup[], majorsGroup: IAvaliableFiltersGroup, majorFilter: any, private Restangular: Restangular.IService, private config: IConfig) {\r\n\r\n this.log = common.logger.getLogFn(MajorsModalCtrl.controllerId);\r\n this.activate();\r\n this.selectedFilters = selectedFilters;\r\n this.majorsGroup = majorsGroup;\r\n this.clonedFilters = _.cloneDeep(this.selectedFilters);\r\n \r\n if (this.selectedFilters[0].filters[0] && this.selectedFilters[0].filters[0].key ==\"MajorName\")\r\n this.majorName = this.selectedFilters[0].filters[0].value;\r\n else\r\n this.majorName = '';\r\n }\r\n\r\n activate() {\r\n var promises = [];\r\n this.common.activateController(promises, MajorsModalCtrl.controllerId).then(() => {\r\n this.log(\"Activated Modal\");\r\n this.transitionsUrl = this.config.transitionsUrl;\r\n });\r\n }\r\n\r\n checkArray() {\r\n if (_.find(this.selectedFilters, function (o) { return o.key == \"ProgramsMajors\" }))\r\n return this.selectedFilters[0].filters.length == 0 || _.find(this.selectedFilters[0].filters, { key: \"MajorName\" });\r\n else return true;\r\n }\r\n\r\n cancel() {\r\n this.$uibModalInstance.dismiss('cancel');\r\n }\r\n\r\n ok() {\r\n if (this.majorName != '') {\r\n var majorPillText = this.majorName.length > 20 ? \"Major: \" + this.majorName.substr(0, 20) + \"...\" : \"Major: \" + this.majorName;\r\n var filter = {\r\n key: `_${this.majorName}`,\r\n pillText: majorPillText,\r\n value: this.majorName\r\n }\r\n this.selectedFilters = []\r\n this.selectedFilters.push({ filters: [filter] });\r\n \r\n }\r\n else if (!this.majorName) {\r\n _.remove(this.selectedFilters[0].filters, (o: any) => { return o.key == \"MajorName\" });\r\n }\r\n this.$uibModalInstance.close(this.selectedFilters);\r\n }\r\n\r\n }\r\n\r\n angular.module(\"app\").controller(MajorsModalCtrl.controllerId, MajorsModalCtrl);\r\n}","/// \r\n\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IPublicPrivateModalScope extends ng.IScope {\r\n vm: IPublicPrivateModal;\r\n }\r\n\r\n interface IPublicPrivateModal {\r\n selectedFilters: Array;\r\n religiousFilters: IAvaliableFiltersGroup;\r\n religions1: Array;\r\n religions2: Array;\r\n PrivateReligiousChecked: boolean;\r\n cancel: () => void;\r\n ok: () => void;\r\n }\r\n\r\n class PublicPrivateModalCtrl implements IPublicPrivateModal {\r\n static controllerId: string = \"publicPrivateModalCtrl\";\r\n static $inject: Array = [\"common\", \"$scope\", \"$uibModalInstance\", \"selectedFilters\", \"religions\"];\r\n private log;\r\n selectedFilters: Array;\r\n religiousFilters: IAvaliableFiltersGroup;\r\n religions1: Array;\r\n religions2: Array;\r\n PrivateReligiousChecked: boolean;\r\n\r\n constructor(private common: ICommonFactory, private $scope: IPublicPrivateModalScope, private $uibModalInstance: ng.ui.bootstrap.IModalServiceInstance, selectedFilters: IAvaliableFiltersGroup[], religions: IAvaliableFiltersGroup) {\r\n\r\n var cutOff: number;\r\n\r\n this.log = common.logger.getLogFn(PublicPrivateModalCtrl.controllerId);\r\n this.activate();\r\n this.selectedFilters = selectedFilters;\r\n this.religiousFilters = religions;\r\n\r\n cutOff = (religions.filters.length / 2) + 1;\r\n this.religions1 = religions.filters.slice(0, cutOff);\r\n this.religions2 = religions.filters.slice(cutOff);\r\n }\r\n\r\n activate() {\r\n var promises = [];\r\n this.common.activateController(promises, PublicPrivateModalCtrl.controllerId).then(() => {\r\n this.log(\"Activated Modal\");\r\n });\r\n }\r\n\r\n cancel() {\r\n //this.privateNonRelgiousSelected();\r\n this.$uibModalInstance.dismiss('cancel');\r\n }\r\n\r\n ok() {\r\n //this.privateNonRelgiousSelected();\r\n this.$uibModalInstance.close(this.selectedFilters);\r\n }\r\n\r\n privateNonRelgiousSelected = () => {\r\n var hasPrivateSelected = _.some(this.selectedFilters, (group: IAvaliableFiltersGroup) => {\r\n return group.key == \"PublicPrivate\" && _.some(group.filters, (f: IAvailableFilterOption) => { return f.key == \"Private\"})\r\n });\r\n if (hasPrivateSelected)\r\n {\r\n var group: IAvaliableFiltersGroup = _.find(this.selectedFilters, (g: IAvaliableFiltersGroup) => { return g.key == \"Religions\" })\r\n\r\n if (group) {\r\n group.filters.push({\r\n pillText: \"\",\r\n displayName: \"\",\r\n key: \"NullReligion\"\r\n })\r\n }\r\n }\r\n };\r\n }\r\n\r\n angular.module(\"app\").controller(PublicPrivateModalCtrl.controllerId, PublicPrivateModalCtrl);\r\n}","/// \r\nmodule Cfnc\r\n{\r\n \"use strict\";\r\n\r\n interface ISaveModalScope extends ng.IScope {\r\n vm: IsaveModal;\r\n save: () => void;\r\n cancel: () => void;\r\n savedSearchName: string;\r\n \r\n }\r\n\r\n interface IsaveModal { }\r\n\r\n class SaveSearchModalCtrl implements IsaveModal {\r\n static controllerId: string = 'saveSearchModalCtrl';\r\n private log;\r\n \r\n constructor(private common: ICommonFactory, private $scope: ISaveModalScope, private $uibModalInstance: ng.ui.bootstrap.IModalServiceInstance) {\r\n this.log = common.logger.getLogFn(SaveSearchModalCtrl.controllerId);\r\n this.activate();\r\n this.$scope.cancel = () => this.cancel();\r\n this.$scope.save = () => this.save();\r\n this.$scope.savedSearchName = \"\";\r\n }\r\n\r\n save() {\r\n if (this.$scope.savedSearchName && this.$scope.savedSearchName.length > 0)\r\n this.$uibModalInstance.close(this.$scope.savedSearchName);\r\n }\r\n\r\n cancel() {\r\n this.$uibModalInstance.dismiss();\r\n }\r\n\r\n activate() {\r\n var promises = [];\r\n this.common.activateController(promises, SaveSearchModalCtrl.controllerId).then(() => {\r\n this.log(\"Activated Modal\");\r\n });\r\n }\r\n }\r\n\r\n angular.module(\"app\").controller(SaveSearchModalCtrl.controllerId, ['common', \"$scope\", \"$uibModalInstance\", (common: ICommonFactory, $scope: ISaveModalScope, $uibModalInstance: ng.ui.bootstrap.IModalServiceInstance) =>\r\n new SaveSearchModalCtrl(common, $scope, $uibModalInstance)\r\n ]);\r\n} ","/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface ISportsModalScope extends ng.IScope {\r\n vm: ISportsModal;\r\n }\r\n\r\n interface ISportsModal {\r\n selectedFilters: Array;\r\n disabled: boolean;\r\n newSport: any;\r\n selected: string;\r\n selectedSports: Array;\r\n sports: Array;\r\n\r\n cancel: () => void;\r\n ok: () => void;\r\n\r\n setGenderFilter: (string) => void;\r\n\r\n pushSport: () => void;\r\n popSport: (index: number) => void;\r\n }\r\n\r\n class SportsModalCtrl implements ISportsModal {\r\n static controllerId: string = \"sportsModalCtrl\";\r\n static $inject: Array = [\"common\", \"$scope\", \"$uibModalInstance\", \"selectedFilters\", \"collegeSports\", \"sportList\"];\r\n private log;\r\n\r\n selectedFilters: Array;\r\n sportsFilters: IAvailableFilters;\r\n disabled: boolean;\r\n newSport: any;\r\n selected: string;\r\n selectedSports: Array;\r\n sports: Array;\r\n\r\n setGenderFilter: (string) => void;\r\n\r\n constructor(private common: ICommonFactory, private $scope: ISportsModalScope, private $uibModalInstance: ng.ui.bootstrap.IModalServiceInstance, selectedFilters: IAvaliableFiltersGroup[], private collegeSports: IAvailableFilters, private sportList: ISportList) {\r\n this.log = common.logger.getLogFn(SportsModalCtrl.controllerId); \r\n this.selectedSports = [];\r\n this.selectedFilters = selectedFilters || [];\r\n this.buildSportsList();\r\n\r\n this.buildSelectedSportsList();\r\n\r\n this.activate();\r\n\r\n this.disabled = false;\r\n }\r\n\r\n activate() {\r\n var promises = [];\r\n this.common.activateController(promises, SportsModalCtrl.controllerId).then(() => {\r\n this.log(\"Activated Modal\");\r\n });\r\n }\r\n\r\n cancel() {\r\n this.$uibModalInstance.dismiss('cancel');\r\n }\r\n\r\n ok() {\r\n this.$uibModalInstance.close(this.selectedFilters);\r\n }\r\n\r\n pushSport() {\r\n this.selectedSports.push({\r\n key: this.getNextSportKey(),\r\n name: this.newSport.sport.sportName,\r\n code: this.newSport.sport.sportCode,\r\n gender: this.newSport.gender == \"0\" ? null : this.newSport.gender,\r\n division: this.newSport.division == \"0\" ? null : this.newSport.division,\r\n scholarship: this.newSport.scholarship\r\n });\r\n\r\n this.newSport = {};\r\n }\r\n\r\n popSport(index: number) {\r\n //for (var i = 0; i < this.selectedSports.length; i++) {\r\n // if (this.selectedSports[i].selected) {\r\n // this.selectedFilters;\r\n // _.pull(this.selectedFilters, _.filter(this.selectedFilters, { key: this.selectedSports[i].key })[0]);\r\n // this.selectedFilters;\r\n // this.selectedSports.splice(i, 1);\r\n // }\r\n //}\r\n _.pull(this.selectedFilters, _.filter(this.selectedFilters, { key: this.selectedSports[index].key })[0]);\r\n this.selectedSports.splice(index, 1);\r\n\r\n }\r\n\r\n buildSelectedSportsList() {\r\n var sportsFilterGroups = _.filter(this.selectedFilters, (value) => {\r\n return value.key.match(new RegExp('^Sports'));\r\n });\r\n if (_.isArray(sportsFilterGroups)) {\r\n angular.forEach(sportsFilterGroups, (value, key) => {\r\n var sport = {\r\n key: value.key,\r\n code: _.map(_.filter(value.filters, { key: \"Sport\" }), \"value\")[0],\r\n name: _.find(this.sports, { sportCode: _.map(_.filter(value.filters, { key: \"Sport\" }), \"value\")[0] }).sportName,\r\n gender: _.map(_.filter(value.filters, { key: \"SportsGender\" }), \"value\")[0],\r\n division: _.map(_.filter(value.filters, { key: \"SportsDivision\" }), \"value\")[0],\r\n scholarship: _.map(_.filter(value.filters, { key: \"ScholarshipsAvailable\" }), \"value\")[0]\r\n };\r\n this.selectedSports.push(sport);\r\n });\r\n }\r\n\r\n }\r\n\r\n getNextSportKey(): string {\r\n var sportNumber = 1;\r\n if (this.selectedSports.length > 0) {\r\n sportNumber = Number(_.last(this.selectedSports).key.replace(\"Sports\", \"\")) + 1;\r\n }\r\n \r\n return \"Sports\" + sportNumber;\r\n }\r\n\r\n buildSportsList() {\r\n this.sports = this.sportList.getSports();\r\n }\r\n }\r\n\r\n angular.module(\"app\").controller(SportsModalCtrl.controllerId, SportsModalCtrl);\r\n}"," /// \r\nmodule Cfnc\r\n{\r\n \"use strict\";\r\n\r\n interface ItipsModalScope extends ng.IScope {\r\n vm: ItipsModal;\r\n close: () => void;\r\n }\r\n\r\n interface ItipsModal { }\r\n\r\n class TipsModalCtrl implements ItipsModal {\r\n static controllerId: string = \"tipsModalCtrl\";\r\n private log;\r\n\r\n constructor(private common: ICommonFactory, private $scope: ItipsModalScope, private $uibModalInstance: ng.ui.bootstrap.IModalServiceInstance) {\r\n this.log = common.logger.getLogFn(TipsModalCtrl.controllerId);\r\n this.activate();\r\n this.$scope.close = () => this.close();\r\n }\r\n\r\n close() {\r\n this.$uibModalInstance.dismiss();\r\n }\r\n\r\n activate() {\r\n var promises = [];\r\n this.common.activateController(promises, TipsModalCtrl.controllerId).then(() => {\r\n this.log(\"Activated Modal\");\r\n });\r\n }\r\n }\r\n\r\n angular.module(\"app\").controller(TipsModalCtrl.controllerId, ['common', \"$scope\", \"$uibModalInstance\", (common: ICommonFactory, $scope: ItipsModalScope, $uibModalInstance: ng.ui.bootstrap.IModalServiceInstance) =>\r\n new TipsModalCtrl(common, $scope, $uibModalInstance)\r\n ]);\r\n} ","namespace Cfnc {\r\n interface ICampusSearchFilter extends ng.IDirective {\r\n\r\n }\r\n\r\n interface ICampusSearchFilterScope extends ng.IScope {\r\n filterGroup: IAvaliableFiltersGroup;\r\n filter: IAvailableFilterOption;\r\n ngModel: string;\r\n filterGroups: IAvaliableFiltersGroup[];\r\n filterGroupKey: string;\r\n }\r\n\r\n class CampusSearchFilter implements ICampusSearchFilter {\r\n static directiveId: string = \"campusSearchFilter\";\r\n restrict: string = \"A\";\r\n scope: any = {\r\n ngModel: \"=\",\r\n filterGroup: \"=\",\r\n filter: \"=\",\r\n filterGroups: \"=campusSearchFilter\",\r\n filterGroupKey: \"=\"\r\n };\r\n\r\n constructor(private $window: ng.IWindowService) {\r\n\r\n }\r\n\r\n link = (scope: ICampusSearchFilterScope, element, attrs) => {\r\n\r\n scope.$watch(\"filterGroups\", (newValue: Array, oldValue) => {\r\n //if (newValue !== oldValue) {\r\n if (scope.filterGroup.key !== \"Sports\") {\r\n var index = _.findIndex(newValue,(x: any) => { return x.key == scope.filterGroup.key; });\r\n\r\n if (index > -1) {\r\n var value = newValue[index].filters[0].value;\r\n if (scope.ngModel !== value)\r\n scope.ngModel = value;\r\n } else {\r\n scope.ngModel = null;\r\n }\r\n }\r\n //}\r\n }, true);\r\n\r\n scope.$watch(\"ngModel\",(newValue: string) => {\r\n var groups = scope.filterGroups && scope.filterGroups.length > 0 ? _.filter(scope.filterGroups, { key: scope.filterGroupKey ? scope.filterGroupKey : scope.filterGroup.key }) : null;\r\n if (newValue && newValue !== \"\") {\r\n scope.filter.value = newValue;\r\n if (!groups || groups.length < 1) {\r\n var newGroup: IAvaliableFiltersGroup = {\r\n key: scope.filterGroupKey ? scope.filterGroupKey : scope.filterGroup.key,\r\n category: scope.filterGroup.category,\r\n filters: []\r\n }\r\n\r\n if (scope.filter.key === \"Sport\")\r\n scope.filter.pillText = newValue;\r\n\r\n newGroup.filters.push(_.clone(scope.filter));\r\n scope.filterGroups.push(newGroup);\r\n } else {\r\n var group = groups[0];\r\n var existingFilters = _.filter(group.filters, { key: scope.filter.key });\r\n\r\n if (scope.filter.key === \"Sport\")\r\n scope.filter.pillText = newValue;\r\n\r\n if (!existingFilters || existingFilters.length < 1) {\r\n group.filters.push(_.clone(scope.filter));\r\n } else {\r\n existingFilters[0].value = scope.filter.value;\r\n }\r\n }\r\n } else {\r\n if ((groups && groups.length > 0) && scope.filter.key !== \"State\") {\r\n var group = groups[0];\r\n\r\n _.remove(group.filters, { key: scope.filter.key });\r\n\r\n if (group.filters.length < 1) {\r\n _.remove(scope.filterGroups, { key: group.key });\r\n }\r\n }\r\n }\r\n });\r\n };\r\n }\r\n\r\n angular.module(\"app\").directive(CampusSearchFilter.directiveId, [\"$window\", $window =>\r\n new CampusSearchFilter($window)\r\n ]);\r\n}","/// \r\nnamespace Cfnc {\r\n\r\n interface ICampusSearchFilterCheckbox extends ng.IDirective {\r\n\r\n }\r\n\r\n interface ICampusSearchFilterCheckboxScope extends ng.IScope {\r\n filterGroup: IAvaliableFiltersGroup;\r\n filter: IAvailableFilterOption;\r\n ngModel: IAvaliableFiltersGroup[];\r\n selected: boolean;\r\n ngDisabled: boolean;\r\n vm: any;\r\n }\r\n\r\n class CampusSearchFilterCheckbox implements ICampusSearchFilterCheckbox {\r\n static directiveId: string = \"campusSearchFilterCheckbox\";\r\n templateUrl = \"/app/directives/campusSearchFilter/campusSearchFilterCheckbox.html\";\r\n replace: boolean = true;\r\n restrict: string = \"E\";\r\n scope: any =\r\n {\r\n ngModel: \"=\",\r\n filterGroup: \"=\",\r\n filter: \"=\",\r\n action: \"&\",\r\n ngDisabled: \"=\"\r\n };\r\n\r\n constructor(private $window: ng.IWindowService) {\r\n }\r\n\r\n link = (scope: ICampusSearchFilterCheckboxScope, element, attrs) => {\r\n scope.vm = {\r\n filterGroup: scope.filterGroup,\r\n filter: scope.filter,\r\n selected: true,\r\n ngDisabled: scope.ngDisabled\r\n }\r\n\r\n scope.selected = false;\r\n\r\n scope.$watch(\"filter\",(newValue) => {\r\n scope.vm.filter = newValue;\r\n });\r\n\r\n scope.$watch(\"ngModel\",(newValue: Array) => {\r\n var index = _.findIndex(newValue,function(x) { return x.key == scope.vm.filterGroup.key; });\r\n if (index > -1) {\r\n if (scope.vm.filter.key === \"ROTC\" && _.findKey(newValue[index].filters,function(x) { return x.key == \"ArmyROTC\" }))\r\n scope.selected = true;\r\n else if (scope.vm.filter.key === \"GreekHousing\" && _.findKey(newValue[index].filters,function(x) { return x.key == \"FraternityHousingAvailable\" }))\r\n scope.selected = true;\r\n else if (scope.vm.filter.key === \"FederalStateGrants\" && _.findKey(newValue[index].filters,function(x) { return x.key == \"FederalGrantsAndScholarship\" }))\r\n scope.selected = true;\r\n else {\r\n var filterIndex = _.findIndex(newValue[index].filters,(f: any) => { return f.key == scope.vm.filter.key });\r\n scope.selected = filterIndex > -1 ? true : false;\r\n }\r\n } else {\r\n scope.selected = false;\r\n }\r\n }, true);\r\n\r\n scope.$watch(\"selected\",(newValue) => {\r\n if (scope.ngModel) {\r\n var groups = scope.ngModel.length > 0 ? _.filter(scope.ngModel, { key: scope.filterGroup.key }) : null;\r\n if (newValue) {\r\n if (!groups || groups.length < 1) {\r\n var newGroup: IAvaliableFiltersGroup = {\r\n key: scope.filterGroup.key,\r\n category: scope.filterGroup.category,\r\n filters: []\r\n }\r\n\r\n if (scope.filter.filters) {\r\n Array.prototype.push.apply(newGroup.filters, scope.filter.filters);\r\n } else {\r\n newGroup.filters.push(scope.filter);\r\n }\r\n\r\n scope.ngModel.push(newGroup);\r\n } else {\r\n var group = groups[0];\r\n var filterIndex = _.findIndex(group.filters, (f: any) => { return f.key == scope.filter.key });\r\n if (scope.filter.filters) {\r\n Array.prototype.push.apply(group.filters, scope.filter.filters);\r\n } else if (filterIndex === -1) {\r\n group.filters.push(scope.filter);\r\n }\r\n }\r\n } else {\r\n if (groups && groups.length > 0) {\r\n var group = groups[0];\r\n\r\n if (scope.filter.filters) {\r\n angular.forEach(scope.filter.filters,(filter) => {\r\n _.remove(group.filters, { key: filter.key });\r\n });\r\n } else {\r\n _.remove(group.filters, { key: scope.filter.key });\r\n if (scope.filter.key === \"PrivateReligious\") {\r\n _.remove(scope.ngModel, { key: \"Religions\" });\r\n }\r\n\r\n }\r\n\r\n if (group.filters.length < 1) {\r\n _.remove(scope.ngModel, { key: group.key });\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n angular.module(\"app\").directive(CampusSearchFilterCheckbox.directiveId, [\"$window\", $window =>\r\n new CampusSearchFilterCheckbox($window)\r\n ]);\r\n}","namespace Cfnc {\r\n\r\n interface IcategoryCheckMark extends ng.IDirective {\r\n\r\n }\r\n\r\n interface IcategoryCheckMarkScope extends ng.IScope {\r\n filterGroup: IAvaliableFiltersGroup;\r\n ngModel: IAvaliableFiltersGroup[];\r\n selected: boolean;\r\n vm: any;\r\n }\r\n\r\n class CategoryCheckMark implements IcategoryCheckMark {\r\n static directiveId: string = \"categoryCheckMark\";\r\n templateUrl = \"/app/directives/campusSearchFilter/categoryCheckMark.html\";\r\n replace: boolean = true;\r\n restrict: string = \"E\";\r\n scope: any =\r\n {\r\n ngModel: \"=\",\r\n filterGroup: \"=\"\r\n };\r\n\r\n constructor(private $window: ng.IWindowService) {\r\n }\r\n\r\n link = (scope: IcategoryCheckMarkScope, element, attrs) => {\r\n scope.vm = {\r\n selected: true,\r\n filterGroup: scope.filterGroup,\r\n }\r\n\r\n scope.selected = false;\r\n\r\n scope.$watch(\"ngModel\",(newValue: Array) => {\r\n \r\n var catIndex = _.findIndex(newValue,(x: any) => {\r\n return x.category === scope.vm.filterGroup.category;\r\n });\r\n\r\n if (catIndex > -1) {\r\n scope.selected = true;\r\n } else {\r\n scope.selected = false;\r\n }\r\n\r\n }, true);\r\n };\r\n }\r\n\r\n angular.module(\"app\").directive(CategoryCheckMark.directiveId, [\"$window\", $window =>\r\n new CategoryCheckMark($window)\r\n ]);\r\n}","namespace Cfnc {\r\n\r\n interface IcheckMarkIcon extends ng.IDirective {\r\n\r\n }\r\n\r\n interface IcheckMarkIconScope extends ng.IScope {\r\n filterGroup: IAvaliableFiltersGroup;\r\n ngModel: IAvaliableFiltersGroup[];\r\n selected: boolean;\r\n categorySelected: any;\r\n vm: any;\r\n }\r\n\r\n class CheckMarkIcon implements IcheckMarkIcon {\r\n static directiveId: string = \"checkMarkIcon\";\r\n templateUrl = \"/app/directives/campusSearchFilter/checkMarkIcon.html\";\r\n replace: boolean = true;\r\n restrict: string = \"E\";\r\n scope: any =\r\n {\r\n ngModel: \"=\",\r\n filterGroup: \"=\",\r\n categorySelected: '='\r\n };\r\n\r\n constructor(private $window: ng.IWindowService) {\r\n }\r\n\r\n link = (scope: IcheckMarkIconScope, element, attrs) => {\r\n scope.vm = {\r\n selected: true,\r\n filterGroup: scope.filterGroup,\r\n }\r\n\r\n scope.selected = false;\r\n\r\n scope.$watch(\"ngModel\",(newValue: Array) => {\r\n if (scope.vm.filterGroup.key === \"SatReading\") {\r\n var index = _.findIndex(newValue,(x: any) => { return x.key === \"SatReading\" || x.key === \"SatMath\" || x.key === \"SatWriting\" });\r\n if (index > -1) {\r\n scope.selected = true;\r\n }\r\n else {\r\n scope.selected = false;\r\n }\r\n } else if (scope.vm.filterGroup.key === \"InStateTuition\") {\r\n var index = _.findIndex(newValue,(x: any) => { return x.key === \"InStateTuition\" || x.key === \"OutStateTuition\" });\r\n if (index > -1) {\r\n scope.selected = true;\r\n }\r\n else {\r\n scope.selected = false;\r\n }\r\n } else {\r\n var index = _.findIndex(newValue,(x: any) => { return x.key === scope.vm.filterGroup.key; });\r\n if (index > -1) {\r\n scope.selected = true;\r\n }\r\n else {\r\n scope.selected = false;\r\n }\r\n }\r\n var catIndex = _.findIndex(newValue,(x: any) => {\r\n return x.category === scope.vm.filterGroup.category;\r\n });\r\n\r\n if (catIndex > -1) {\r\n scope.categorySelected.selected = true;\r\n } else {\r\n scope.categorySelected.selected = false;\r\n }\r\n\r\n }, true);\r\n };\r\n }\r\n\r\n angular.module(\"app\").directive(CheckMarkIcon.directiveId, [\"$window\", $window =>\r\n new CheckMarkIcon($window)\r\n ]);\r\n}","// Install the angularjs.TypeScript.DefinitelyTyped NuGet package\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IfilterWatch extends ng.IDirective {\r\n }\r\n\r\n interface IfilterWatchScope extends ng.IScope {\r\n filters: Array;\r\n onChange: () => void;\r\n currentPage: number;\r\n }\r\n\r\n class FilterWatch implements IfilterWatch {\r\n static directiveId: string = \"filterWatch\";\r\n restrict: string = \"A\";\r\n scope: any = {\r\n filters: \"=filterWatch\",\r\n onChange: \"&\",\r\n currentPage: \"=\"\r\n };\r\n\r\n constructor($window: ng.IWindowService){\r\n \r\n }\r\n\r\n link = (scope: IfilterWatchScope, element, attrs) => {\r\n scope.$watch(\"filters\", (newValue, oldValue) => {\r\n scope.currentPage = 1;\r\n scope.onChange();\r\n }, true);\r\n };\r\n\r\n }\r\n\r\n angular.module(\"app\").directive(FilterWatch.directiveId, [\"$window\", $window =>\r\n new FilterWatch($window)\r\n ]);\r\n}","/// \r\nnamespace Cfnc {\r\n\r\n interface IsearchByZip extends ng.IDirective {\r\n\r\n }\r\n\r\n interface IsearchByZipScope extends ng.IScope {\r\n filterGroup: IAvaliableFiltersGroup;\r\n filter: IAvailableFilterOption;\r\n ngModel: IAvaliableFiltersGroup[];\r\n selected: boolean;\r\n range: string;\r\n zipCode: string;\r\n\r\n updateRange: (string) => void;\r\n\r\n vm: any;\r\n }\r\n\r\n class searchByZip implements IsearchByZip {\r\n static directiveId: string = \"searchByZip\";\r\n static $inject: Array = [\"$window\"];\r\n templateUrl = \"/app/directives/campusSearchFilter/searchByZip.html\";\r\n replace: boolean = true;\r\n restrict: string = \"E\";\r\n range: string = \"50\";\r\n zipCode: string;\r\n $q: ng.IQService;\r\n\r\n scope: any =\r\n {\r\n ngModel: \"=\",\r\n filterGroup: \"=\",\r\n filter: \"=\",\r\n action: \"&\"\r\n };\r\n\r\n constructor(private $window: ng.IWindowService) {\r\n }\r\n\r\n link = (scope: IsearchByZipScope, element, attrs, $q) => {\r\n scope.range = \"50\";\r\n\r\n scope.vm = {\r\n filterGroup: scope.filterGroup,\r\n filter: scope.filter,\r\n range: scope.range,\r\n zipCode: scope.zipCode\r\n }\r\n\r\n scope.$watch(\"ngModel\",(newValue: Array) => {\r\n var index = _.findIndex(newValue,(x: any) => { return x.key == scope.vm.filterGroup.key; });\r\n if (index > -1) {\r\n var values = _.get(_.find(newValue[index].filters, {\r\n key: scope.vm.filter.key\r\n }), \"value\", \"\");\r\n var splitValue = values.split(\",\");\r\n scope.range = splitValue[0];\r\n scope.zipCode = splitValue[1];\r\n } else {\r\n scope.range = \"50\";\r\n scope.zipCode = \"\";\r\n }\r\n });\r\n\r\n scope.$watch(\"filter\",(newValue) => {\r\n scope.vm.filter = newValue;\r\n });\r\n\r\n scope.$watch(\"zipCode\",(zipCode) => {\r\n this.buildFilter(scope);\r\n });\r\n\r\n scope.$watch(\"range\",(range) => {\r\n this.buildFilter(scope);\r\n });\r\n\r\n scope.updateRange = (distance: string) => {\r\n scope.range = distance;\r\n }\r\n };\r\n\r\n private buildFilter(scope: IsearchByZipScope) {\r\n if (scope.zipCode && scope.zipCode.length === 5) {\r\n\r\n scope.filter.value = scope.range + \",\" + scope.zipCode;\r\n var groups = scope.ngModel.length > 0 ? _.filter(scope.ngModel, { key: scope.filterGroup.key }) : null;\r\n if (!groups || groups.length < 1) {\r\n\r\n var newGroup: IAvaliableFiltersGroup = {\r\n key: scope.filterGroup.key,\r\n category: scope.filterGroup.category,\r\n filters: []\r\n }\r\n\r\n newGroup.filters.push(scope.filter);\r\n scope.ngModel.push(newGroup);\r\n } else {\r\n var group = groups[0];\r\n var existingFilters = _.filter(group.filters, { key: scope.filter.key });\r\n if (!existingFilters || existingFilters.length < 1) {\r\n group.filters.push(scope.filter);\r\n } else {\r\n existingFilters[0].value = scope.filter.value;\r\n }\r\n }\r\n } else {\r\n if (groups && groups.length > 0) {\r\n var group = groups[0];\r\n\r\n _.remove(group.filters, { key: scope.filter.key });\r\n\r\n if (group.filters.length < 1) {\r\n _.remove(scope.ngModel, { key: group.key });\r\n }\r\n }\r\n }\r\n }\r\n\r\n //private buildFilterValue(zipCode, range): string {\r\n // var latLong: any = {};\r\n // var filterValue: string;\r\n\r\n // this.getGeoCodeForZip(zipCode);\r\n\r\n // filterValue = range + \",\" + latLong.latitude + \",\" + latLong.longitude;\r\n\r\n // return filterValue;\r\n //}\r\n\r\n //private getGeoCodeForZip(zipCode: string) {\r\n // var promise = this.getGeoCodeForZipAsync(zipCode);\r\n // promise.then(function (latLong: any) {\r\n // return latLong;\r\n // }, function (reason) {\r\n // return \"GetGeoCode Status is \" + reason;\r\n // });\r\n //}\r\n\r\n //private getGeoCodeForZipAsync(zipCode: string) {\r\n \r\n // var d = this.$q.defer();\r\n // var geocoder = new google.maps.Geocoder();\r\n // var latlong: any = {};\r\n // var result = geocoder.geocode({ address: zipCode },(results, status): any => {\r\n // if (status == google.maps.GeocoderStatus.OK) {\r\n // latlong.latitude = results[0].geometry.location.lat();\r\n // latlong.longitude = results[0].geometry.location.lng();\r\n // d.resolve(latlong);\r\n // }\r\n // else {\r\n // d.reject(status);\r\n // }\r\n // });\r\n\r\n // return d.promise;\r\n\r\n //}\r\n }\r\n\r\n // Update the app1 variable name to be that of your module variable\r\n angular.module(\"app\").directive(searchByZip.directiveId, ['$window', $window =>\r\n new searchByZip($window)\r\n ]);\r\n}\r\n","/// \r\nnamespace Cfnc {\r\n interface IcfncAcademicCalendar extends ng.IDirective {\r\n replace: boolean;\r\n transclude: boolean;\r\n template: string;\r\n }\r\n\r\n interface IcfncAcademicCalendarScope extends ng.IScope {\r\n open: () => void;\r\n schoolid: string;\r\n\r\n }\r\n\r\n interface IcfncAcademicCalendarAttributes extends ng.IAttributes {\r\n\r\n\r\n }\r\n\r\n class cfncAcademicCalendar implements IcfncAcademicCalendar {\r\n static directiveId: string = \"cfncAcademicCalendar\";\r\n replace: boolean = true;\r\n transclude: boolean = true;\r\n parentScope: IcfncAcademicCalendarScope;\r\n scope: any = {\r\n schoolid: \"=\"\r\n };\r\n\r\n\r\n\r\n template: string = \"\";\r\n\r\n link = (scope: IcfncAcademicCalendarScope, element, attrs: IcfncAcademicCalendarAttributes) => {\r\n\r\n scope.open = () => {\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/directives/cfncAcademicCalendar/cfncCalendarModal.html',\r\n controller: 'calendarModal',\r\n size: \"lg\",\r\n resolve: {\r\n schoolid: function () {\r\n return scope.schoolid;\r\n }\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n\r\n constructor(private $uibModal: ng.ui.bootstrap.IModalService) {\r\n }\r\n\r\n\r\n }\r\n\r\n angular.module(\"app\").directive(cfncAcademicCalendar.directiveId, [\"$uibModal\", ($uibModal: ng.ui.bootstrap.IModalService) =>\r\n new cfncAcademicCalendar($uibModal)\r\n ]);\r\n\r\n} ","/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface ICalendarModalScope extends ng.IScope {\r\n\r\n schoolid: any;\r\n uiConfig: any;\r\n eventSources: any[];\r\n vm: any;\r\n eventRender: any;\r\n eventWell: any;\r\n toggleLock: boolean;\r\n \r\n close: () => void;\r\n setEventWell: (id: string, eventName: string, category: string, startDate: string, endDate: string, isAllDay: string, description: string) => void;\r\n clearEventWell: () => void;\r\n lockWell: () => void;\r\n }\r\n\r\n interface ICalendarModal {\r\n }\r\n\r\n class CalendarModal implements ICalendarModal {\r\n static controllerId: string = \"calendarModal\";\r\n uiConfig: any;\r\n private log;\r\n eventSources: any[];\r\n locked: boolean;\r\n \r\n eventWell: EventDetails;\r\n lockedWell: EventDetails;\r\n\r\n static $inject: string[] = [\"$window\", \"$uibModalInstance\", \"$scope\", \"$filter\", \"common\", \"config\", \"Restangular\", \"schoolid\", \"uiCalendarConfig\", \"$compile\"];\r\n\r\n constructor(\r\n private $window: ng.IWindowService,\r\n private $uibModalInstance: ng.ui.bootstrap.IModalServiceInstance,\r\n private $scope: ICalendarModalScope,\r\n private $filter: ng.IFilterService,\r\n private common: ICommonFactory,\r\n private config: IConfig,\r\n private Restangular: Restangular.IService,\r\n schoolid: string,\r\n private uiCalendarConfig,\r\n private $compile: ng.ICompileService) {\r\n \r\n this.locked = false;\r\n var date = new Date();\r\n var d = date.getDate();\r\n var m = date.getMonth();\r\n var y = date.getFullYear();\r\n this.$scope.eventRender = this.eventRender;\r\n\r\n this.uiConfig = {\r\n calendar: {\r\n editable: false,\r\n header: {\r\n left: \"prev,next\",\r\n center: \"title\",\r\n right: \"month,agendaWeek,agendaDay\"\r\n },\r\n timezone: \"local\",\r\n eventRender: this.$scope.eventRender,\r\n }\r\n };\r\n\r\n this.log = common.logger.getLogFn(CalendarModal.controllerId);\r\n $scope.close = this.close;\r\n $scope.setEventWell = this.setEventWell;\r\n $scope.clearEventWell = this.clearEventWell;\r\n $scope.lockWell = this.lockWell;\r\n $scope.eventWell = this.eventWell;\r\n $scope.uiConfig = this.uiConfig;\r\n $scope.schoolid = schoolid;\r\n $scope.eventSources = [this.getEvents];\r\n $scope.vm = {\r\n uiConfig: this.uiConfig,\r\n eventSources: [this.getEvents],\r\n eventWell: {}\r\n };\r\n this.activate();\r\n }\r\n\r\n activate = () => {\r\n this.common.activateController([], \"calendar\")\r\n .then(result => {\r\n this.log(\"Activated Calendar View\");\r\n });\r\n };\r\n\r\n getEvents = (start, end, timezone, callback): void => {\r\n if (!start || !end) {\r\n return;\r\n }\r\n\r\n var queryParams = {\r\n organizationId: this.$scope.schoolid,\r\n beginDate: moment(start).toISOString(),\r\n endDate: moment(end).toISOString()\r\n };\r\n\r\n\r\n this.Restangular.all(\"Calendar/getCalendarEvents\").getList(queryParams).then((result: any) => {\r\n callback(_.map(result, this.mapToFullCalendar));\r\n return result.results;\r\n }, (reason) => {\r\n this.log(reason);\r\n });\r\n };\r\n\r\n mapToFullCalendar = (event: any): any => {\r\n\r\n return {\r\n id: event.id,\r\n title: event.name,\r\n category: event.category,\r\n start: event.start,\r\n end: event.end,\r\n allDay: event.allDayEvent,\r\n desc: event.description\r\n };\r\n };\r\n\r\n eventRender = (event, element) => {\r\n\r\n var eventStart = event.start === null ? event.start : event.start._i;\r\n var eventEnd = event.end === null ? event.end : event.end._i;\r\n var eventDesc = event.desc === null ? event.desc : event.desc.replace(\"'\", \"'\");\r\n\r\n var setEventWellCall: string = \"setEventWell('\"\r\n + event.id + \"', '\"\r\n + event.title.replace(\"'\", \"'\") + \"', '\"\r\n + event.category + \"', '\" + eventStart + \"', '\"\r\n + eventEnd + \"', '\"\r\n + event.allDay + \"', '\"\r\n + eventDesc\r\n + \"' )\";\r\n\r\n element.attr({\r\n \"ng-mouseover\": setEventWellCall,\r\n \"ng-focus\": setEventWellCall,\r\n \"ng-mouseleave\": \"clearEventWell()\",\r\n \"ng-blur\": \"clearEventWell()\",\r\n \"ng-click\": \"lockWell()\",\r\n \"href\": \"\"\r\n });\r\n this.$compile(element)(this.$scope);\r\n };\r\n\r\n close = () => {\r\n this.$uibModalInstance.close();\r\n }\r\n\r\n setEventWell(id: string, eventName: string, category: string, startDate: string, endDate: string, isAllDay: string, description: string) {\r\n if (this.eventWell == null || this.eventWell.id !== id) {\r\n \r\n if (this.locked)\r\n this.lockedWell = this.eventWell;\r\n\r\n var setEndDate = endDate != \"null\" ? new Date(endDate) : null;\r\n\r\n this.eventWell = {\r\n id: id,\r\n schoolName: \"\",\r\n userId: \"\",\r\n applicationDefinitionId: \"\",\r\n name: eventName.replace(\"'\", \"'\"),\r\n category: category,\r\n start: new Date(startDate),\r\n end: setEndDate,\r\n allDayEvent: (isAllDay === \"true\"),\r\n description: description.replace(\"'\", \"'\")\r\n }\r\n }\r\n }\r\n\r\n lockWell() {\r\n this.lockedWell = this.eventWell;\r\n this.locked = !this.locked;\r\n }\r\n\r\n clearEventWell() {\r\n if (!this.locked)\r\n this.eventWell = null;\r\n else\r\n this.eventWell = this.lockedWell\r\n }\r\n }\r\n\r\n\r\n angular.module(\"app\").controller(CalendarModal.controllerId, CalendarModal);\r\n} ","// Install the angularjs.TypeScript.DefinitelyTyped NuGet package\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface ICfncAddress extends angular.IDirective {\r\n templateUrl: string;\r\n }\r\n\r\n interface ICfncAddressScope extends angular.IScope {\r\n ngModel: any;\r\n ncCounties: Array;\r\n states: Array;\r\n countries: Array;\r\n addressType: string;\r\n showSameAsAbove: boolean;\r\n sameAsAbove: boolean;\r\n copyFrom: Address;\r\n common: ICommonFactory;\r\n disableCounty: boolean;\r\n disableCountry: boolean;\r\n\r\n stateChanged: (oldValue, newValue) => void;\r\n countryChanged: (oldValue) => void;\r\n copyFromAbove: () => void;\r\n }\r\n\r\n interface ICfncAddressAttributes extends angular.IAttributes {\r\n firstName: string;\r\n lastName: string;\r\n addressType: string;\r\n copyFrom: string;\r\n disableCounty: string;\r\n disableCountry: string;\r\n }\r\n\r\n class Address implements IAddress {\r\n addressType: string;\r\n firstName: string;\r\n lastName: string;\r\n street: string;\r\n street2: string;\r\n city: string;\r\n state: string;\r\n postalCode: string;\r\n country: string\r\n county: string;\r\n isVerified: boolean;\r\n resultCodes: string;\r\n userOverride: boolean;\r\n signature: string;\r\n key: string;\r\n }\r\n\r\n CfncAddress.$inject = [\"addressService\", \"common\"];\r\n\r\n function CfncAddress(addressService: IAddressService, common: ICommonFactory): ICfncAddress {\r\n\r\n // Usage:\r\n // \r\n // Creates:\r\n // \r\n\r\n return {\r\n restrict: \"EA\",\r\n require: \"ngModel\",\r\n link: link,\r\n templateUrl: \"/app/directives/cfncAddress/cfncAddress.html\",\r\n scope: {\r\n ngModel: \"=\",\r\n copyFrom: \"=\"\r\n }\r\n\r\n }\r\n\r\n function link(scope: ICfncAddressScope, element: angular.IAugmentedJQuery, attrs: ICfncAddressAttributes) {\r\n scope.common = common;\r\n scope.ncCounties = addressService.ncCountyList;\r\n scope.states = addressService.stateList;\r\n scope.countries = addressService.countryList;\r\n scope.addressType = attrs.addressType;\r\n scope.showSameAsAbove = attrs.copyFrom ? true : false;\r\n scope.sameAsAbove = false;\r\n\r\n scope.disableCounty = attrs.disableCounty ? true : false;\r\n scope.disableCountry = attrs.disableCountry ? true : false;\r\n\r\n scope.stateChanged = function stateChanged(oldValue, newValue) {\r\n if (oldValue === \"NC\" || newValue === \"NC\") {\r\n scope.ngModel.county = null;\r\n }\r\n }\r\n\r\n scope.countryChanged = function countryChanged(oldValue) {\r\n if (oldValue == \"US\") {\r\n scope.ngModel.county = null;\r\n }\r\n }\r\n\r\n scope.$watch(\"copyFrom\", (newValue, oldValue, originalScope) => {\r\n if (scope.sameAsAbove) {\r\n console.log(\"inside the debounce\");\r\n var addressType = scope.ngModel.addressType;\r\n copyAddress(scope.copyFrom, scope.ngModel);\r\n scope.ngModel.addressType = addressType;\r\n }\r\n }, true);\r\n\r\n scope.$watch(\"sameAsAbove\", (newValue, oldValue, originalScope) => {\r\n if (newValue) {\r\n var addressType = scope.ngModel.addressType;\r\n copyAddress(scope.copyFrom, scope.ngModel);\r\n scope.ngModel.addressType = addressType;\r\n }\r\n scope.$applyAsync();\r\n });\r\n }\r\n\r\n function copyAddress(source: Address, destination: Address) {\r\n destination.street = source.street;\r\n destination.street2 = source.street2;\r\n destination.city = source.city;\r\n destination.state = source.state;\r\n destination.postalCode = source.postalCode;\r\n destination.country = source.country;\r\n destination.county = source.county;\r\n };\r\n\r\n }\r\n\r\n angular.module(\"app\").directive(\"cfncAddress\", CfncAddress);\r\n}","/// \r\nnamespace Cfnc {\r\n interface IcfncApplyToSchool extends ng.IDirective {\r\n replace: boolean;\r\n restrict: string;\r\n transclude: boolean;\r\n template: string;\r\n }\r\n\r\n interface IcfncApplyToSchoolScope extends ng.IScope {\r\n open: () => void;\r\n schoolid: string;\r\n modalClosed: (value) => void;\r\n }\r\n\r\n interface IcfncApplyToSchoolAttributes extends ng.IAttributes {\r\n modalClosed: void\r\n\r\n }\r\n\r\n class cfncApplyToSchool implements IcfncApplyToSchool {\r\n static directiveId: string = \"cfncApplyToSchool\";\r\n replace: boolean = true;\r\n restrict: string = \"E\";\r\n transclude: boolean = true;\r\n parentScope: IcfncApplyToSchoolScope;\r\n scope: any = {\r\n schoolid: \"=\",\r\n modalClosed: \"=\"\r\n };\r\n\r\n\r\n\r\n template: string = \"\";\r\n\r\n link = (scope: IcfncApplyToSchoolScope, element, attrs: IcfncApplyToSchoolAttributes) => {\r\n scope.open = () => {\r\n this.common.authentication.authenticate(true).then(result => {\r\n if (result) {\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/directives/cfncApplyToSchool/startNewAppModal.html',\r\n controller: 'startNewAppModal',\r\n size: \"lg\",\r\n backdrop: \"static\",\r\n resolve: {\r\n schoolid: function () {\r\n return scope.schoolid;\r\n }\r\n }\r\n });\r\n modalInstance.result.then((result) => {\r\n if (scope.modalClosed) {\r\n scope.modalClosed.call(scope.$parent, result.window);\r\n }\r\n });\r\n }\r\n else {\r\n\r\n this.startApplicationService.schoolId = scope.schoolid;\r\n\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n if (this.startApplicationService.schoolId) {\r\n scope.schoolid = _.clone(this.startApplicationService.schoolId);\r\n this.startApplicationService.clear();\r\n scope.open();\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n constructor(private $uibModal: ng.ui.bootstrap.IModalService, private common: ICommonFactory, private startApplicationService: IStartApplicationService) {\r\n }\r\n\r\n\r\n }\r\n\r\n angular.module(\"app\").directive(cfncApplyToSchool.directiveId, [\"$uibModal\", \"common\", \"startApplicationService\", ($uibModal: ng.ui.bootstrap.IModalService, common: ICommonFactory, startApplicationService: IStartApplicationService) =>\r\n new cfncApplyToSchool($uibModal, common, startApplicationService)\r\n ]);\r\n\r\n}\r\n","/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface IStartNewAppScope extends ng.IScope {\r\n organizations: Array;\r\n limitSchools: number;\r\n close: () => void;\r\n schoolid: number;\r\n crossroadsUrl: string;\r\n selectedApp: string;\r\n openApp: (selectedApp) => void;\r\n hasApplications: (organization: any) => boolean;\r\n }\r\n\r\n interface IStartNewApp {\r\n }\r\n\r\n class StartNewApp implements IStartNewApp {\r\n static controllerId: string = \"startNewAppModal\";\r\n private log;\r\n\r\n constructor(\r\n private $window: ng.IWindowService,\r\n private organizationDataService: IOrganizationDataService,\r\n private $uibModalInstance: ng.ui.bootstrap.IModalServiceInstance,\r\n private $scope: IStartNewAppScope,\r\n private common: ICommonFactory,\r\n private config: IConfig,\r\n schoolid: string,\r\n private Restanuglar: Restangular.IService) {\r\n\r\n $scope.organizations = [];\r\n $scope.crossroadsUrl = config.crossroadsUrl;\r\n this.log = common.logger.getLogFn(StartNewApp.controllerId);\r\n if (schoolid) {\r\n organizationDataService.getOrganizationById(schoolid).then((data) => {\r\n if (data) {\r\n $scope.organizations.push(data);\r\n }\r\n });\r\n }\r\n else {\r\n organizationDataService.getOrganizations().then((data) => {\r\n\r\n $scope.organizations = data;\r\n });\r\n }\r\n\r\n $scope.limitSchools = 10;\r\n $scope.close = this.close;\r\n $scope.hasApplications = this.hasApplications;\r\n \r\n this.$scope.$root.$on(config.events.logout, (data: any): void => {\r\n this.$uibModalInstance.close();\r\n \r\n });\r\n\r\n $scope.openApp = (selectedApp) => {\r\n var url = selectedApp.split(\",\")[0];\r\n var appId = selectedApp.split(\",\")[1];\r\n\r\n \r\n var appWindow = $window.open(config.crossroadsUrl + \"/application/\" + url, \"_blank\");\r\n this.$uibModalInstance.close({ window: appWindow });\r\n }, () => {\r\n this.$uibModalInstance.close();\r\n };\r\n }\r\n\r\n hasApplications = (organization: any) => {\r\n var hasApps = false;\r\n if (organization.programs.length > 0) {\r\n organization.programs.forEach((program) => {\r\n if (program.applications.length > 0) {\r\n hasApps = true;\r\n }\r\n })\r\n\r\n }\r\n\r\n return hasApps;\r\n }\r\n\r\n close = () => {\r\n this.$uibModalInstance.close();\r\n }\r\n }\r\n\r\n\r\n angular.module(\"app\").controller(StartNewApp.controllerId, [\"$window\", \"organizationDataService\", \"$uibModalInstance\", \"$scope\", \"common\", \"config\", \"schoolid\", \"Restangular\", (\r\n $window: ng.IWindowService,\r\n organizationDataService: IOrganizationDataService,\r\n $uibModalInstance: ng.ui.bootstrap.IModalServiceInstance,\r\n $scope: IStartNewAppScope,\r\n common: ICommonFactory,\r\n config: IConfig,\r\n schoolid: string,\r\n Restangular: Restangular.IService) =>\r\n new StartNewApp($window, organizationDataService, $uibModalInstance, $scope, common, config, schoolid, Restangular)\r\n ]);\r\n}","/// \r\nnamespace Cfnc {\r\n interface ICfncCountries extends ng.IDirective {\r\n\r\n }\r\n\r\n\r\n interface ICfncCountriesScope extends ng.IScope {\r\n mode: string;\r\n modelValue: any;\r\n placeholder: string;\r\n maxLength: number;\r\n selected: any;\r\n multiDisplay: Array;\r\n countries: Array;\r\n countryChanged: (newValue) => void;\r\n multiAdd: (item, model) => void;\r\n multiRemove: (item, model) => void;\r\n }\r\n\r\n class CfncCountries implements ICfncCountries {\r\n static directiveId: string = \"cfncCountries\";\r\n restrict: string = \"E\";\r\n replace: boolean = true;\r\n scope: any = {\r\n mode: \"@type\", //types: display, select\r\n modelValue: \"=\",\r\n placeholder: \"@\",\r\n maxLength: \"=\"\r\n };\r\n\r\n templateUrl: string = \"/app/directives/cfncCountries/cfncCountries.html\";\r\n\r\n constructor(private addressService: IAddressService) {\r\n }\r\n\r\n link = (scope: ICfncCountriesScope, element, attrs) => {\r\n if (scope.mode == \"multiSelect\") {\r\n scope.modelValue = scope.modelValue || [];\r\n }\r\n\r\n if (scope.mode == \"multiSelect\") {\r\n scope.$watch(\"modelValue\", (newValue, oldValue) => {\r\n if (angular.isDefined(attrs.maxLength) && attrs.maxLength < scope.modelValue.length) {\r\n scope.modelValue = oldValue;\r\n }\r\n });\r\n }\r\n\r\n\r\n scope.countryChanged = (newValue): void => {\r\n scope.modelValue = newValue.value;\r\n };\r\n\r\n\r\n scope.countries = this.addressService.countryList;\r\n\r\n\r\n scope.$watch(\"modelValue\", (newValue, oldValue) => {\r\n if (Array.isArray(scope.modelValue)) {\r\n scope.multiDisplay = [];\r\n scope.modelValue.forEach((item) => {\r\n var selected = _.find(scope.countries, (c: any) => {\r\n return c.value == item;\r\n });\r\n if (selected) {\r\n scope.multiDisplay.push(selected);\r\n }\r\n });\r\n\r\n\r\n }\r\n else {\r\n scope.selected = _.find(scope.countries, (c: any) => {\r\n return c.value == scope.modelValue;\r\n }) || {\r\n name: \"\",\r\n value: null\r\n };\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n angular.module(\"app\").directive(CfncCountries.directiveId, [\"addressService\", (addressService: IAddressService) =>\r\n new CfncCountries(addressService)\r\n ]);\r\n}","/// \r\nnamespace Cfnc {\r\n interface IcfncCustomerSelector extends ng.IDirective {\r\n restrict: string;\r\n replace: boolean;\r\n require;\r\n modal: ng.ui.bootstrap.IModalService;\r\n hideCategorySelector: boolean;\r\n }\r\n\r\n interface IcfncCustomerSelectorScope extends ng.IScope {\r\n open: () => void;\r\n onChange: (value) => (value) => void;\r\n ngModel: any;\r\n defaultCategory: string;\r\n\r\n }\r\n\r\n interface ISelectorAttributes extends ng.IAttributes {\r\n ngModel: string;\r\n defaultCategory: string;\r\n hideCategorySelector: boolean;\r\n onChange: string;\r\n text: string;\r\n cssClass: string;\r\n }\r\n\r\n class cfncCustomerSelector implements IcfncCustomerSelector {\r\n\r\n static directiveId: string = \"cfncCustomerSelector\";\r\n restrict: string = \"E\";\r\n replace: boolean = true;\r\n require = \"?ngModel\";\r\n modal: ng.ui.bootstrap.IModalService;\r\n hideCategorySelector: boolean;\r\n scope: any = {\r\n ngModel: \"=\",\r\n onChange: \"=\",\r\n defaultCategory: \"=\",\r\n text: \"@\",\r\n cssClass: \"@\"\r\n };\r\n\r\n template = \"\";\r\n\r\n\r\n constructor(private $uibModal: ng.ui.bootstrap.IModalService, private $timeout: ng.ITimeoutService) {\r\n\r\n }\r\n\r\n link = (scope: IcfncCustomerSelectorScope, element, attrs: ISelectorAttributes, ngModelCtrl) => {\r\n this.hideCategorySelector = attrs.hideCategorySelector;\r\n if (attrs.text == null || attrs.text == \"\") {\r\n attrs.text = \"Find\";\r\n }\r\n \r\n\r\n if (attrs.cssClass == null || attrs.cssClass == \"\") {\r\n attrs.cssClass = \"btn btn-default\";\r\n }\r\n \r\n\r\n scope.open = () => {\r\n var self = this;\r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/directives/cfnccustomerselector/customerSelectorModalTemplate.html',\r\n controller: 'customerSelectorModal',\r\n size: \"lg\",\r\n resolve: {\r\n options: function () {\r\n var options = { category: scope.defaultCategory, hideCategories: self.hideCategorySelector };\r\n return options;\r\n }\r\n },\r\n });\r\n \r\n modalInstance.result.then((selectedSchool) => {\r\n // would normally use scope.$apply but it keeps getting $digest already in progress error\r\n this.$timeout(() => {\r\n scope.ngModel = selectedSchool;\r\n\r\n });\r\n\r\n if (scope.onChange) {\r\n scope.onChange.call(scope.$parent, selectedSchool);\r\n \r\n }\r\n },() => {\r\n ngModelCtrl.$setDirty();\r\n });\r\n };\r\n }\r\n }\r\n\r\n angular.module(\"app\").directive(cfncCustomerSelector.directiveId, [\"$uibModal\", \"$timeout\", ($uibModal: ng.ui.bootstrap.IModalService, $timeout: ng.ITimeoutService) =>\r\n new cfncCustomerSelector($uibModal, $timeout)\r\n ]);\r\n}\r\n","/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface ICustomerSelectorModalScope extends ng.IScope {\r\n close;\r\n getData;\r\n selectSchool;\r\n hasError: boolean;\r\n selectedSchool: any;\r\n searchSchools: (value: any) => void;\r\n resetSchools: () => void;\r\n category: string;\r\n hideCategories: boolean;\r\n customers: Array;\r\n }\r\n\r\n interface ICustomerSelectorModal {\r\n\r\n }\r\n\r\n interface ICustomerSelectorModalOptions {\r\n category: string;\r\n hideCategories: string;\r\n }\r\n\r\n class CustomerSelectorModal implements ICustomerSelectorModal {\r\n static controllerId: string = \"customerSelectorModal\";\r\n private log;\r\n constructor(private $uibModalInstance: ng.ui.bootstrap.IModalServiceInstance,\r\n private common: ICommonFactory,\r\n private $scope: ICustomerSelectorModalScope,\r\n private Restangular: Restangular.IService,\r\n private options: ICustomerSelectorModalOptions) {\r\n\r\n this.log = common.logger.getLogFn(CustomerSelectorModal.controllerId);\r\n $scope.category = this.options.category || \"PK-12\";\r\n $scope.close = () => this.close();\r\n $scope.selectSchool = () => this.selectSchool();\r\n $scope.searchSchools = (value: any) => this.searchSchools(value);\r\n $scope.hasError = false;\r\n $scope.resetSchools = () => this.resetSchools();\r\n $scope.hideCategories = this.options.hideCategories == \"true\";\r\n $scope.customers = [];\r\n }\r\n\r\n\r\n close() {\r\n this.$uibModalInstance.dismiss();\r\n }\r\n\r\n selectSchool = () => {\r\n if (this.$scope.selectedSchool != null || this.$scope.selectedSchool.name == \"My School or Program is not listed\") {\r\n this.$uibModalInstance.close(this.$scope.selectedSchool);\r\n this.log(\"Selected \" + this.$scope.selectedSchool);\r\n }\r\n else {\r\n this.$scope.hasError = true;\r\n }\r\n };\r\n\r\n searchSchools(value: any) {\r\n var query = { startsWith: value, type: this.$scope.category };\r\n return this.Restangular.all(\"customers/getbytype\").getList(query).then((results) => {\r\n this.$scope.hasError = false;\r\n this.$scope.customers = results;\r\n return results;\r\n }, (reason) => {\r\n console.error(reason);\r\n });\r\n\r\n };\r\n\r\n resetSchools = () => {\r\n this.$scope.customers = [];\r\n }\r\n }\r\n\r\n\r\n angular.module(\"app\").controller(CustomerSelectorModal.controllerId, [\"$uibModalInstance\", \"common\", \"$scope\", \"Restangular\", \"options\",\r\n ($uibModalInstance: ng.ui.bootstrap.IModalServiceInstance,\r\n common: ICommonFactory,\r\n $scope: ICustomerSelectorModalScope,\r\n Restangular,\r\n options: ICustomerSelectorModalOptions) =>\r\n new CustomerSelectorModal($uibModalInstance, common, $scope, Restangular, options)\r\n ]);\r\n\r\n var data = [];\r\n}\r\n","namespace Cfnc {\r\n \"use strict\";\r\n\r\n interface ICfncPassword extends angular.IDirective {\r\n templateUrl: string;\r\n }\r\n\r\n interface ICfncPasswordScope extends angular.IScope {\r\n password: any;\r\n confirmPassword: any;\r\n formGroupCssClass: string[];\r\n labelCssClass: string[];\r\n inputCssClass: string[];\r\n passwordLabel: string;\r\n confirmPasswordLabel: string;\r\n inlineForm: boolean;\r\n\r\n required: boolean;\r\n maxlength: number;\r\n minlength: number;\r\n\r\n \r\n }\r\n\r\n interface ICfncPasswordAttributes extends angular.IAttributes {\r\n formGroupCss: string;\r\n labelCss: string;\r\n inputCss: string;\r\n passwordLabel: string;\r\n confirmPasswordLabel: string;\r\n inlineForm: string;\r\n }\r\n\r\n \r\n\r\n CfncPassword.$inject = [];\r\n\r\n function CfncPassword(): ICfncPassword {\r\n\r\n // Usage:\r\n // \r\n\r\n return {\r\n restrict: \"EA\",\r\n link: link,\r\n templateUrl: \"/app/directives/cfncPassword/cfncPassword.html\",\r\n controller: cfncPasswordCtrl,\r\n controllerAs: \"vm\",\r\n bindToController: true,\r\n scope: {\r\n password: \"=\",\r\n confirmPassword: \"=\"\r\n }\r\n\r\n }\r\n\r\n function link(scope: ICfncPasswordScope, element: angular.IAugmentedJQuery, attrs: ICfncPasswordAttributes) {\r\n scope.formGroupCssClass = attrs.formGroupCss ? attrs.formGroupCss.split(\" \") : [];\r\n scope.labelCssClass = attrs.labelCss ? attrs.labelCss.split(\" \") : [];\r\n scope.inputCssClass = attrs.inputCss ? attrs.inputCss.split(\" \") : [];\r\n scope.passwordLabel = attrs.passwordLabel || \"Password\";\r\n scope.confirmPasswordLabel = attrs.confirmPasswordLabel || \"Confirm Password\";\r\n scope.inlineForm = (attrs.inlineForm && attrs.inlineForm == \"false\") ? false : true;\r\n \r\n //validation values\r\n scope.required = true;\r\n scope.minlength = 8;\r\n scope.maxlength = 200;\r\n }\r\n\r\n function cfncPasswordCtrl() {}\r\n \r\n \r\n }\r\n\r\n angular.module(\"app\").directive(\"cfncPassword\", CfncPassword);\r\n}","/// \r\n\r\ninterface ICfncReligions extends ng.IDirective {\r\n \r\n}\r\n\r\ninterface ICfncReligionsScope extends ng.IScope {\r\n mode: string;\r\n ngModel: number;\r\n selected: any;\r\n religions: Array;\r\n religionChanged: (newValue) => void;\r\n}\r\n\r\nclass CfncReligions implements ICfncReligions {\r\n static directiveId: string = \"cfncReligions\";\r\n restrict: string = \"E\";\r\n replace: boolean = true;\r\n scope: any = {\r\n mode: \"@type\", //types: display, select \r\n ngModel: \"=\"\r\n };\r\n \r\n templateUrl: string = \"/app/directives/cfncReligions/cfncReligions.html\";\r\n\r\n constructor() {\r\n }\r\n\r\n link = (scope: ICfncReligionsScope, element, attrs) => {\r\n scope.religionChanged = (newValue): void => {\r\n scope.ngModel = newValue.value;\r\n };\r\n\r\n scope.religions = this.getReligions();\r\n \r\n scope.$watch(\"ngModel\", (newValue, oldValue) => {\r\n scope.selected = _.find(scope.religions, (r: any) => {\r\n return r.value == scope.ngModel;\r\n }) || {\r\n name: \"\",\r\n value: null\r\n };\r\n });\r\n }\r\n\r\n \r\n getReligions = ():Array => {\r\n return [\r\n { name: \"Select a religion\", value: null },\r\n { name: \"African Methodist Episcopal\", value: 1 },\r\n { name: \"Agnostic\", value: 2 },\r\n { name: \"Anglican\", value: 3 },\r\n { name: \"Apostolic Christian\", value: 4 },\r\n { name: \"Assemblies of God\", value: 5 },\r\n { name: \"Atheist\", value: 6 },\r\n { name: \"Baha'I Faith\", value: 7 },\r\n { name: \"Baptist\", value: 8 },\r\n { name: \"Baptist (Conservative)\", value: 9 },\r\n { name: \"Baptist (Other)\", value: 10 },\r\n { name: \"Baptist (Southern)\", value: 11 },\r\n { name: \"Buddhist\", value: 12 },\r\n { name: \"Campus Crusade for Christ\", value: 13 },\r\n { name: \"Catholic\", value: 14 },\r\n { name: \"Catholic (Greek)\", value: 15 },\r\n { name: \"Catholic (Other)\", value: 16 },\r\n { name: \"Catholic (Roman)\", value: 17 },\r\n { name: \"Christian\", value: 18 },\r\n { name: \"Christian (Disciples of Christ)\", value: 19 },\r\n { name: \"Christian (Other)\", value: 20 },\r\n { name: \"Christian Brethren (Plymouth Brethren)\", value: 21 },\r\n { name: \"Christian Reformed\", value: 22 },\r\n { name: \"Christian Science\", value: 23 },\r\n { name: \"Church of Christ\", value: 24 },\r\n { name: \"Church of God\", value: 25 },\r\n { name: \"Church of the Nazarene\", value: 26 },\r\n { name: \"Congregational\", value: 27 },\r\n { name: \"Coptic\", value: 28 },\r\n { name: \"Eastern Christian Orthodox\", value: 29 },\r\n { name: \"Episcopal\", value: 30 },\r\n { name: \"Evangelist\", value: 31 },\r\n { name: \"First Christian\", value: 32 },\r\n { name: \"Grace Reformed\", value: 33 },\r\n { name: \"Great Commission\", value: 34 },\r\n { name: \"Hindu\", value: 35 },\r\n { name: \"Interdenominational\", value: 36 },\r\n { name: \"Intervarsity Christian Fellowship\", value: 37 },\r\n { name: \"Jain\", value: 38 },\r\n { name: \"Jehovah's Witnesses\", value: 39 },\r\n { name: \"Jewish\", value: 40 },\r\n { name: \"Jewish (Conservative)\", value: 41 },\r\n { name: \"Jewish (Orthodox)\", value: 42 },\r\n { name: \"Jewish (Other)\", value: 43 },\r\n { name: \"Jewish (Reform)\", value: 44 },\r\n { name: \"Latter-day Saint (Mormon)\", value: 45 },\r\n { name: \"Lutheran (Missouri Synod)\", value: 46 },\r\n { name: \"Lutheran (National Conference)\", value: 47 },\r\n { name: \"Lutheran (Unspecified)\", value: 48 },\r\n { name: \"Lutheran (Wisconsin)\", value: 49 },\r\n { name: \"Mennonite\", value: 50 },\r\n { name: \"Methodist\", value: 51 },\r\n { name: \"Muslim\", value: 52 },\r\n { name: \"Navigators\", value: 53 },\r\n { name: \"Non-Christian (Other)\", value: 54 },\r\n { name: \"None\", value: 55 },\r\n { name: \"Other\", value: 56 },\r\n { name: \"Pentecostal\", value: 57 },\r\n { name: \"Presbyterian\", value: 58 },\r\n { name: \"Presbyterian (Reformed)\", value: 59 },\r\n { name: \"Protestant\", value: 60 },\r\n { name: \"Protestant (Other)\", value: 61 },\r\n { name: \"Reorganized Latter-day Saint\", value: 62 },\r\n { name: \"Seventh-Day Adventist\", value: 63 },\r\n { name: \"Sikh\", value: 64 },\r\n { name: \"Society of Friends\", value: 65 },\r\n { name: \"Trinity Church\", value: 66 },\r\n { name: \"Unification\", value: 67 },\r\n { name: \"Unified Family\", value: 68 },\r\n { name: \"Unitarian Universalists\", value: 69 },\r\n { name: \"United Church\", value: 70 },\r\n { name: \"Wesleyan\", value: 71 },\r\n { name: \"World Wide Discipleship\", value: 72 }];\r\n }\r\n}\r\n\r\nangular.module(\"app\").directive(CfncReligions.directiveId, [() =>\r\n new CfncReligions()\r\n]);\r\n","/// \r\nnamespace Cfnc {\r\n\r\n interface ICfncSelectAddress extends ng.IDirective {\r\n\r\n }\r\n\r\n interface ICfncSelectAddressScope extends ng.IScope {\r\n showSelector: boolean;\r\n okCallback: (value) => (value) => void;\r\n cancelCallback: (value) => (value) => void;\r\n ngModel: any;\r\n open: () => void;\r\n }\r\n\r\n class CfncSelectAddress implements ICfncSelectAddress {\r\n static directiveId: string = \"cfncSelectAddress\";\r\n restrict: string = \"E\";\r\n require: string = \"?ngModel\";\r\n scope: any = {\r\n showSelector: \"=\",\r\n ngModel: \"=\",\r\n okCallback: \"=\",\r\n cancelCallback: \"=\"\r\n }\r\n\r\n constructor(private $parse: ng.IParseService, private $uibModal: ng.ui.bootstrap.IModalService, private $timeout: ng.ITimeoutService, private common: Cfnc.ICommonFactory) {\r\n }\r\n\r\n link = (scope: ICfncSelectAddressScope, element, attrs, controller) => {\r\n var self = this;\r\n scope.$watch(() => { return scope.showSelector; },(show) => {\r\n if (show) {\r\n scope.open();\r\n }\r\n });\r\n\r\n scope.open = () => {\r\n \r\n var modalInstance = this.$uibModal.open({\r\n templateUrl: '/app/directives/cfncSelectAddress/cfncSelectAddressModal.html',\r\n controller: 'cfncSelectAddressModal',\r\n size: \"lg\",\r\n keyboard: false,\r\n backdrop: \"static\",\r\n resolve: {\r\n model: function () {\r\n return scope.ngModel;\r\n }\r\n },\r\n });\r\n\r\n modalInstance.result.then((selectedAddress) => {\r\n // would normally use scope.$apply but it keeps getting $digest already in progress error\r\n \r\n this.$timeout(() => {\r\n scope.showSelector = false;\r\n });\r\n\r\n if (scope.okCallback) {\r\n scope.okCallback.call(scope.$parent, selectedAddress);\r\n\r\n }\r\n },(selectedAddress) => {\r\n this.$timeout(() => {\r\n scope.showSelector = false;\r\n });\r\n\r\n if (scope.cancelCallback) {\r\n scope.cancelCallback.call(scope.$parent, selectedAddress);\r\n }\r\n });\r\n };\r\n };\r\n }\r\n\r\n angular.module(\"app\").directive(CfncSelectAddress.directiveId, [\"$parse\", \"$uibModal\", \"$timeout\", \"common\",\r\n ($parse: ng.IParseService, $uibModal: ng.ui.bootstrap.IModalService, $timeout: ng.ITimeoutService, common: Cfnc.ICommonFactory) =>\r\n new CfncSelectAddress($parse, $uibModal, $timeout, common)\r\n ]);\r\n}","/// \r\nvar that;\r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n interface ICfncSelectAddressModalScope extends ng.IScope {\r\n model: Array;\r\n selectedAddress: Array;\r\n ok: () => void;\r\n confirmOk: () => void;\r\n confirmCancel: () => void;\r\n addressChanged: (string, boolean) => void;\r\n errorMessages: any;\r\n askToConfirm: any;\r\n showConfirm: boolean;\r\n selectAddressResults: Array;\r\n ncCounties: Array;\r\n }\r\n\r\n interface ICfncSelectAddressModal {\r\n \r\n }\r\n\r\n export interface ICfncSelectAddressModel {\r\n addressResults: Array;\r\n errorCodes: any;\r\n }\r\n\r\n export class CfncSelectAddressModel implements ICfncSelectAddressModal {\r\n addressResults: Array;\r\n errorCodes: any;\r\n }\r\n\r\n export interface ICfncAddressResult {\r\n key: string;\r\n addresses: Array;\r\n original: IAddress;\r\n userOverride: boolean;\r\n selectedIndex?: number;\r\n }\r\n \r\n export interface IErrorCode {\r\n key: string;\r\n codes: Array;\r\n }\r\n\r\n class Address implements IAddress {\r\n addressType: string;\r\n firstName: string;\r\n lastName: string;\r\n street: string;\r\n street2: string;\r\n city: string;\r\n state: string;\r\n postalCode: string;\r\n country: string;\r\n county: string;\r\n isVerified: boolean;\r\n resultCodes: string;\r\n userOverride: boolean;\r\n signature: string;\r\n key: string;\r\n }\r\n\r\n class VerifyAddressResults {\r\n firstName: string;\r\n lastName: string;\r\n action: string;\r\n providedAddressHasErrors: boolean;\r\n selectedIndex: number;\r\n key: string;\r\n providedAddress: Address;\r\n suggestedAddress: Address;\r\n \r\n }\r\n\r\n class CfncSelectAddressModal implements ICfncSelectAddressModal {\r\n static controllerId: string = \"cfncSelectAddressModal\";\r\n private log;\r\n \r\n constructor(private $uibModalInstance: ng.ui.bootstrap.IModalServiceInstance,\r\n private common: ICommonFactory,\r\n private $scope: ICfncSelectAddressModalScope,\r\n private model: Array,\r\n private addressService: IAddressService) {\r\n $scope.model = model;\r\n $scope.errorMessages = this.createErrorMessages();\r\n $scope.ok = this.ok;\r\n $scope.addressChanged = this.addressChanged;\r\n $scope.askToConfirm = {};\r\n $scope.showConfirm = false;\r\n $scope.confirmOk = this.confirmOk;\r\n $scope.confirmCancel = this.confirmCancel;\r\n this.$scope.selectAddressResults = new Array
();\r\n this.$scope.ncCounties = this.addressService.ncCountyList;\r\n }\r\n\r\n ok = () => {\r\n var dismiss = false;\r\n var annoy = false;\r\n this.model.forEach((result) => {\r\n if (result.selectedIndex == 0) {\r\n \r\n annoy = true;\r\n\r\n this.$scope.selectAddressResults.push({\r\n key: result.key,\r\n street: result.providedAddress.street,\r\n street2: null,\r\n city: result.providedAddress.city,\r\n state: result.providedAddress.state,\r\n postalCode: result.providedAddress.postalCode,\r\n country: result.providedAddress.country,\r\n county: result.providedAddress.county,\r\n resultCodes: result.providedAddress.resultCodes,\r\n signature: result.providedAddress.signature,\r\n addressType: result.providedAddress.addressType,\r\n userOverride: true,\r\n isVerified: false\r\n });\r\n }\r\n else if (result.selectedIndex == -1) {\r\n dismiss = true;\r\n }\r\n else {\r\n this.$scope.selectAddressResults.push({\r\n key: result.key,\r\n street: result.suggestedAddress.street,\r\n street2: null,\r\n city: result.suggestedAddress.city,\r\n state: result.suggestedAddress.state,\r\n postalCode: result.suggestedAddress.postalCode,\r\n country: result.suggestedAddress.country,\r\n county: result.suggestedAddress.county,\r\n resultCodes: result.suggestedAddress.resultCodes,\r\n signature: result.suggestedAddress.signature,\r\n addressType: result.suggestedAddress.addressType,\r\n userOverride: false,\r\n isVerified: true\r\n });\r\n }\r\n\r\n });\r\n\r\n if (!dismiss && !annoy) {\r\n this.$uibModalInstance.close(this.$scope.selectAddressResults);\r\n }\r\n else if (!dismiss && annoy) {\r\n this.$scope.showConfirm = true;\r\n }\r\n else {\r\n this.$uibModalInstance.dismiss(this.$scope.selectAddressResults);\r\n }\r\n };\r\n\r\n confirmOk = () => {\r\n this.$uibModalInstance.close(this.$scope.selectAddressResults);\r\n };\r\n\r\n confirmCancel = () => {\r\n this.$scope.showConfirm = false;\r\n };\r\n\r\n addressChanged = (key: string, askToConfirm: boolean) => {\r\n this.$scope.askToConfirm[key] = askToConfirm; \r\n \r\n };\r\n\r\n createErrorMessages = () => {\r\n\r\n var key = this.model[0].key;\r\n var postalCode = this.model[0].providedAddress.country == \"US\" ? \"ZIP\" : \"postal\";\r\n var state = this.model[0].providedAddress.country == \"US\" ? \"state\" : \"province\";\r\n \r\n return {\r\n AC01: \"The \" + postalCode + \" code has been changed.\",\r\n AC02: \"The \" + state + \" has been changed.\",\r\n AC03: \"The city name has been changed.\",\r\n AC04: \"The address has been found to be an alternate address and has been changed to the preferred version.\",\r\n AC05: \"The abbreviation provided for the street name has been changed to the preferred version.\",\r\n AC10: \"The street name has been changed.\",\r\n AC11: \"The street type (e.g., St, Rd) has been changed.\",\r\n AC12: \"The street direction (e.g., N, E, SW) has been changed.\",\r\n AC13: \"The suite/apartment type has been changed.\",\r\n AC14: \"The suite/apartment number has been changed.\",\r\n AC20: \"The street address number has been changed.\",\r\n AE01: \"The provided \" + postalCode + \" code is not valid.\",\r\n AE02: \"The provided street could not be matched to a unique street name.\",\r\n AE03: \"The combination of street direction (N, E, SW, etc.) and street type (AVE, ST, etc.) is not correct.\",\r\n AE04: \"The address provided must be a valid address to which mail can be delivered.\",\r\n AE05: \"The information provided matches more than one address.\",\r\n AE06: \"The address cannot currently be verified, but is identified as a possible future address.\",\r\n AE07: \"The address must have at least one address line and the \" + postalCode + \" code, or the city and \" + state + \", to be validated.\",\r\n AE08: \"The street address has been found but the suite/apartment number is invalid.\",\r\n AE09: \"The street address has been found but the suite/apartment number is missing.\",\r\n AE10: \"The number for the street address is not valid.\",\r\n AE11: \"The number for the street address is missing.\",\r\n AE12: \"The PO, Rural Route, or Highway Contract Box number is invalid.\",\r\n AE13: \"The PO, Rural Route, or Highway Contract Box number is missing.\",\r\n AE14: \"The address is a Commercial Mail Receiving Agency and the Private Mail Box number is missing.\",\r\n AE17: \"The provided suite/apartment number is not valid for the street address.\"\r\n };\r\n }\r\n }\r\n\r\n\r\n angular.module(\"app\").controller(CfncSelectAddressModal.controllerId, [\"$uibModalInstance\", \"common\", \"$scope\", \"model\", \"addressService\",\r\n ($uibModalInstance: ng.ui.bootstrap.IModalServiceInstance,\r\n common: ICommonFactory,\r\n $scope: ICfncSelectAddressModalScope,\r\n model: any,\r\n addressService: IAddressService) =>\r\n new CfncSelectAddressModal($uibModalInstance, common, $scope, model, addressService)\r\n ]);\r\n}\r\n","/// \r\nnamespace Cfnc {\r\n \"use strict\";\r\n\r\n export interface IUserLink extends ng.IDirective {\r\n\r\n }\r\n\r\n export interface IUserLinkScope extends ng.IScope {\r\n userInfo: IUserInfoView;\r\n logoff();\r\n logon: () => void;\r\n }\r\n\r\n export class UserLink implements IUserLink {\r\n static directiveId: string = \"userLink\";\r\n restrict: string = \"E\";\r\n replace: boolean = true;\r\n scope: any = {};\r\n templateUrl: string = \"/app/directives/userLink/userLink.html\";\r\n\r\n constructor(private $rootScope: ng.IRootScopeService,\r\n private $timeout: ng.ITimeoutService,\r\n private config: IConfig,\r\n private authentication: Security.IAuthenticationService,\r\n private $location: ng.ILocationService) {\r\n }\r\n\r\n link = (scope: IUserLinkScope, element?, attr?) => {\r\n var self = this;\r\n scope.userInfo = self.authentication.user;\r\n scope.logoff = () => {\r\n scope.userInfo = undefined;\r\n this.$location.path(\"/logout\");\r\n };\r\n\r\n scope.logon = () => {\r\n this.authentication.clearRedirect();\r\n this.authentication.authenticate(true);\r\n };\r\n\r\n this.$rootScope.$on(this.config.events.login,\r\n (event, data) => {\r\n this.$timeout(() => {\r\n var eventData: any = data; // converts the IAngularEvent back to a dynamic type so we can view the \"show\" property that was set by the ICommonService\r\n scope.userInfo = eventData;\r\n });\r\n });\r\n this.$rootScope.$on(this.config.events.reloadUser,\r\n (event, data) => {\r\n var eventData: any = data; // converts the IAngularEvent back to a dynamic type so we can view the \"show\" property that was set by the ICommonService\r\n this.$timeout(() => {\r\n scope.userInfo = eventData;\r\n });\r\n });\r\n this.$rootScope.$on(this.config.events.logout,\r\n () => {\r\n this.$timeout(() => {\r\n scope.userInfo = null;\r\n });\r\n });\r\n this.$rootScope.$on(\"$routeChangeSuccess\",\r\n () => {\r\n this.$timeout(() => {\r\n scope.userInfo = self.authentication.user;\r\n });\r\n });\r\n }\r\n }\r\n\r\n angular.module(\"app\").directive(UserLink.directiveId, [\"$rootScope\", \"$timeout\", \"config\", \"authentication\", \"$location\", ($rootScope, $timeout, config, authentication, $location) =>\r\n new UserLink($rootScope, $timeout, config, authentication, $location)\r\n ]);\r\n\r\n}","module Cfnc\r\n{\r\n \"use strict\";\r\n\r\n export interface IloadSavedModalScope extends ng.IScope\r\n {\r\n vm: IloadSavedModal;\r\n selectSearch: ( selectedsearch: string ) => void;\r\n cancel: () => void;\r\n savedSearches: SavedSearch[];\r\n //selectSearch: () => void;\r\n }\r\n\r\n export interface IloadSavedModal { }\r\n\r\n export class LoadSavedModalCtrl implements IloadSavedModal\r\n {\r\n static controllerId: string = 'loadSavedModalCtrl';\r\n private log;\r\n \r\n\r\n constructor( private common: ICommonFactory, private $scope: IloadSavedModalScope, private $modalInstance: ng.ui.bootstrap.IModalServiceInstance, savedSearch: Cfnc.SavedSearch[] )\r\n {\r\n this.log = common.logger.getLogFn( LoadSavedModalCtrl.controllerId );\r\n this.$scope.cancel = () => this.cancel();\r\n this.$scope.savedSearches = savedSearch;\r\n this.$scope.selectSearch = ( selectedsearch: string ) => this.selectSearch( selectedsearch);\r\n }\r\n\r\n selectSearch( selectedsearch: string)\r\n {\r\n this.$modalInstance.close( selectedsearch );\r\n }\r\n\r\n cancel()\r\n {\r\n this.$modalInstance.dismiss();\r\n }\r\n\r\n activate()\r\n {\r\n var promises = [];\r\n this.common.activateController( promises, LoadSavedModalCtrl.controllerId ).then( () =>\r\n {\r\n this.log( \"Activated Modal\" );\r\n });\r\n }\r\n } \r\n} "]}