{"version":3,"sources":["webpack:///node_modules/moment/locale sync ^\\.\\/.*$","webpack:///src/$_lazy_route_resource lazy namespace object","webpack:///src/app/app-routing.module.ts","webpack:///src/app/app.component.ts","webpack:///src/app/app.component.html","webpack:///src/app/app.module.ts","webpack:///src/app/components/admin/admin-nav.component.ts","webpack:///src/app/components/admin/admin-nav.component.html","webpack:///src/app/components/admin/apt-caws.component.ts","webpack:///src/app/components/admin/apt-caws.component.html","webpack:///src/app/components/admin/business-lines.component.ts","webpack:///src/app/components/admin/business-lines.component.html","webpack:///src/app/components/admin/clients.component.ts","webpack:///src/app/components/admin/clients.component.html","webpack:///src/app/components/admin/impersonate.component.ts","webpack:///src/app/components/admin/impersonate.component.html","webpack:///src/app/components/admin/industries.component.ts","webpack:///src/app/components/admin/industries.component.html","webpack:///src/app/components/admin/inspection-team-roles.component.ts","webpack:///src/app/components/admin/inspection-team-roles.component.html","webpack:///src/app/components/admin/offices.component.ts","webpack:///src/app/components/admin/offices.component.html","webpack:///src/app/components/admin/projects.component.ts","webpack:///src/app/components/admin/projects.component.html","webpack:///src/app/components/admin/security-roles.component.ts","webpack:///src/app/components/admin/security-roles.component.html","webpack:///src/app/components/admin/specialty-reviewer-types.component.ts","webpack:///src/app/components/admin/specialty-reviewer-types.component.html","webpack:///src/app/components/admin/standard-question-options.component.ts","webpack:///src/app/components/admin/standard-question-options.component.html","webpack:///src/app/components/admin/tags.component.ts","webpack:///src/app/components/admin/tags.component.html","webpack:///src/app/components/engagement-management/data-grids/engagements.component.ts","webpack:///src/app/components/engagement-management/data-grids/engagements.component.html","webpack:///src/app/components/engagement-management/forms/engagement-editor.component.html","webpack:///src/app/components/engagement-management/forms/engagement-editor.component.ts","webpack:///src/app/components/engagement-management/tree-viewers/engagement-tree-node-viewer.component.ts","webpack:///src/app/components/engagement-management/tree-viewers/engagement-tree-node-viewer.component.html","webpack:///src/app/components/engagement-management/tree-viewers/tree-node-viewer.component.ts","webpack:///src/app/components/engagement-management/tree-viewers/tree-node-viewer.component.html","webpack:///src/app/components/error/not-active.component.ts","webpack:///src/app/components/error/not-active.component.html","webpack:///src/app/components/home/data-grids/home.component.ts","webpack:///src/app/components/home/data-grids/home.component.html","webpack:///src/app/components/home/forms/inspection-tree-node-viewer.component.ts","webpack:///src/app/components/home/forms/inspection-tree-node-viewer.component.html","webpack:///src/app/components/home/forms/inspection.component.html","webpack:///src/app/components/home/forms/inspection.component.ts","webpack:///src/app/components/home/home-pager.component.ts","webpack:///src/app/components/home/home-pager.component.html","webpack:///src/app/components/nav-menu/nav-menu.component.ts","webpack:///src/app/components/nav-menu/nav-menu.component.html","webpack:///src/app/components/profile-management/data-grids/inspection-profiles.component.ts","webpack:///src/app/components/profile-management/data-grids/inspection-profiles.component.html","webpack:///src/app/components/profile-management/data-grids/profile-questions.component.ts","webpack:///src/app/components/profile-management/data-grids/profile-questions.component.html","webpack:///src/app/components/profile-management/data-grids/profile-sections.component.ts","webpack:///src/app/components/profile-management/data-grids/profile-sections.component.html","webpack:///src/app/components/profile-management/forms/inspection-dragdrop/inspection-dragdrop.component.ts","webpack:///src/app/components/profile-management/forms/inspection-dragdrop/inspection-dragdrop.component.html","webpack:///src/app/components/profile-management/forms/inspection-profile-editor.component.ts","webpack:///src/app/components/profile-management/forms/inspection-profile-editor.component.html","webpack:///src/app/components/profile-management/forms/question-editor.component.ts","webpack:///src/app/components/profile-management/forms/question-editor.component.html","webpack:///src/app/components/profile-management/forms/tree-node-editor.component.ts","webpack:///src/app/components/profile-management/forms/tree-node-editor.component.html","webpack:///src/app/components/profile-management/profile-nav.component.ts","webpack:///src/app/components/reports/export-questions-and-responses.component.ts","webpack:///src/app/components/reports/export-questions-and-responses.component.html","webpack:///src/app/components/reports/reports-nav.component.ts","webpack:///src/app/components/reports/reports-nav.component.html","webpack:///src/app/components/session-timeout/session-timeout.component.ts","webpack:///src/app/components/session-timeout/session-timeout.component.html","webpack:///src/app/components/shared/access-denied/access-denied.component.ts","webpack:///src/app/components/shared/access-denied/access-denied.component.html","webpack:///src/app/components/shared/confirmation-dialog/confirmation-dialog.component.ts","webpack:///src/app/components/shared/confirmation-dialog/confirmation-dialog.component.html","webpack:///src/app/components/shared/confirmation-dialog/confirmation-dialog.constants.ts","webpack:///src/app/components/shared/employee-search/employee-search.component.ts","webpack:///src/app/components/shared/employee-search/employee-search.component.html","webpack:///src/app/components/shared/grid-pager.component.ts","webpack:///src/app/components/shared/grid-pager.component.html","webpack:///src/app/components/shared/section-list-viewer.component.ts","webpack:///src/app/components/shared/section-list-viewer.component.html","webpack:///src/app/components/signout/signout-component.ts","webpack:///src/app/components/signout/signout.component.html","webpack:///src/app/components/team-inspections/data-grids/team-inspections.component.ts","webpack:///src/app/components/team-inspections/data-grids/team-inspections.component.html","webpack:///src/app/components/team-inspections/forms/engagement-tree-node-viewer.component.ts","webpack:///src/app/components/team-inspections/forms/engagement-tree-node-viewer.component.html","webpack:///src/app/components/team-inspections/forms/inspection.component.ts","webpack:///src/app/components/team-inspections/forms/inspection.component.html","webpack:///src/app/guards/app-guard/app.guard.ts","webpack:///src/app/guards/auth/require-authenticated-user.guard.ts","webpack:///src/app/guards/auth/role-guard.ts","webpack:///src/app/guards/breeze-setup/breeze-setup.guard.ts","webpack:///src/app/guards/generic-can-deactivate/generic-can-deactivate.guard.ts","webpack:///src/app/services/application-insights/application-insights.service.ts","webpack:///src/app/services/breeze-validators/breeze-validators.service.ts","webpack:///src/app/services/breeze-validators/default-breeze-validators.ts","webpack:///src/app/services/bridge/bridge.service.ts","webpack:///src/app/services/config.ts","webpack:///src/app/services/dialog-helper.ts","webpack:///src/app/services/entity-manager-provider/entity-manager-provider.service.ts","webpack:///src/app/services/file-service/file-service.service.ts","webpack:///src/app/services/filtered-questions/filtered-questions.service.ts","webpack:///src/app/services/global-error-handler.ts","webpack:///src/app/services/is-busy/is-busy.service.ts","webpack:///src/app/services/model-builder/model-builder.service.ts","webpack:///src/app/services/repository.ts","webpack:///src/app/services/server-side-config-data/server-side-config-data.service.ts","webpack:///src/app/services/shared-data/shared-data.service.ts","webpack:///src/app/services/strings.ts","webpack:///src/app/services/unit-of-work/unit-of-work.service.ts","webpack:///src/app/services/utilities.ts","webpack:///src/environments/environment.prod.ts","webpack:///src/environments/environment.ts","webpack:///src/hmr.ts","webpack:///src/main.ts","webpack:///src/model/modelEnums.ts","webpack:///src/model/role.ts"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","webpackContextKeys","Object","resolve","module","exports","webpackEmptyAsyncContext","Promise","then","routes","path","canActivate","children","data","order","name","requiresQcAdmin","roles","nationalQcAdmin","admin","pathMatch","redirectTo","component","canDeactivate","requiresAdmin","basic","AppRoutingModule","forRoot","imports","AppComponent","msalGuardConfig","msalBroadcastService","title","currentYear","Date","getFullYear","_destroying$","inProgress$","pipe","status","None","subscribe","result","hideLoadingScreen","next","complete","selector","templateUrl","styleUrls","init","reject","isIE","window","navigator","userAgent","indexOf","environment","production","clientId","authority","redirectUrl","document","location","host","logoutRedirectUri","MSALInstanceFactory","auth","redirectUri","postLogoutRedirectUri","cache","cacheLocation","LocalStorage","storeAuthStateInCookie","MSALInterceptorConfigFactory","protectedResourceMap","Map","set","interactionType","Redirect","MSALGuardConfigFactory","AppModule","provide","useClass","useFactory","multi","withServerTransition","appId","timeOut","toastrTimeoutMs","positionClass","preventDuplicates","countDuplicates","declarations","entryComponents","providers","bootstrap","AdminNavMenu","sharedData","navItems","env","inputs","defaultLimit","AptCawsAdminComponent","uow","appInsights","errorHandler","activeRoute","isBusy","dialogHelper","aptCaws","page","limit","rowCount","pageCount","pageLimitOptions","idFilter","nameFilter","clientFilter","logPageView","filter","m","entityAspect","entityState","isDeleted","isDetached","sort","a","b","localeCompare","params","routeParams","Number","isNaN","parseInt","updateDataGrid","hasChanges","value","proceed","confirm","rollback","all","getAptCawsCount","getAptCaws","reason","handleError","Math","ceil","clearFilters","tabKey","BusinessLinesAdminComponent","businessLines","newBusinessLineName","getBusinessLines","businessLine","message","saveChanges","newBusinessLine","createEntity","trim","push","saveBusinessLineChanges","cancelChanges","setDeleted","createBusinessLine","ClientsAdminComponent","clients","getClientsCount","getClients","ImpersonateAdminComponent","toastr","$event","role","isSuccess","success","log","styles","IndustriesAdminComponent","industries","newIndustryName","getIndustries","industry","newIndustry","saveIndustryChanges","createIndustry","InspectionTeamRolesAdminComponent","inspectionTeamRoles","newRoleName","getInspectionTeamRoles","newRole","saveInspectionTeamRoleChanges","createRole","OfficesAdminComponent","offices","getOffices","ProjectsAdminComponent","projects","getProjectsCount","getProjects","SecurityRolesAdminComponent","router","employees","employeeSearchResults","selectedEmployeeId","showCaptains","showAdmins","handleSecurity","getEmployees","isActive","searchTerm","x","me","isAdmin","navigate","employeeChanged","searchSpecificEmployee","searchAllEmployees","SpecialtyReviewerTypesAdminComponent","reviewerTypes","newReviewerTypeName","newDescription","getSpecialtyReviewerTypes","newReviewerType","specialtyReviewerTypes","description","saveReviewerTypeChanges","reviewerType","isReviewerTypeAssigned","error","index","splice","createReviewerType","StandardQuestionOptionsAdminComponent","standardQuestionOptions","newOptionName","newOptionValue","answerSetOptions","noAnswerNeededName","getStandardQuestionOptions","forEach","Key","Value","answerSetCode","length","questionOption","aso","find","createdAnswerSetOption","standardQuestionOptionId","updateAnswerSetOptions","newQuestionOption","saveQuestionOptionChanges","createQuestionOption","TagsAdminComponent","tags","newTagName","getTags","tag","newTag","saveTagChanges","createTag","loadingKey","saveKey","EngagementsComponent","modalService","isLoading","isLockedForCleanup","engagementDtos","filters","codeFilter","officeFilter","regionFilter","yearFilter","weekFilter","businessLineFilter","industryFilter","inspectorFilter","inspectionYears","inspectionYear","engagementStatusesLabel","engagementStatuses","confirmMessage","queryParams","getInspectionYears","updateFilters","engagement","client","event","target","removeFilter","key","i","findIndex","statuses","some","isSelected","join","getPageCount","getEngagements","getEngagementStatusName","rating","getEngagementRatingName","getAllEngagementsSummary","JSON","stringify","getEngagementsPageCount","canRemove","archived","engagements","showConfirmDeleteModal","open","confirmDeleteModal","ariaLabelledBy","draft","saveEngagementChanges","closeResult","getDismissReason","console","confirmCleanupStepOneModal","confirmCleanupStepTwoModal","cleanupEngagements","clear","ESC","BACKDROP_CLICK","engagementDto","totalSections","completedSections","yearDropdownChange","updateStatusFilters","clearStatusFilters","LOADING_KEY","SAVING_KEY","CLONING_KEY","MIN_SEARCH_LENGTH","BUFFER_SIZE","NUMBER_OF_ITEMS_FROM_END_BEFORE_FETCHING_MORE","SEARCH_TIMEOUT","EngagementAdminComponent","injector","dialog","msalService","clientsLoading","clientIdLoading","clientName","clientsCount","clientsPage","clientSearchTimer","clientIds","projectsLoading","projectName","projectsCount","projectsPage","projectSearchTimer","availableProjects","aptCawsLoading","aptCawName","aptCawsCount","aptCawsPage","aptCawSearchTimer","availableAptCaws","availableIndustries","regions","availableTags","inspectionProfiles","availableInspectionEmployees","availableEngagementEmployees","oldInspectionEmployeeId","teamMemberRoles","selectedEngagementSections","highLevelEngagementSections","highLevelProfileSections","selectedProfileSections","cloneProfileNow","disableBusinessLine","showQuestionViewer","previewEngagement","isPublishing","selectedProject","selectedAptCaw","selectedIndustry","selectedTag","selectedInspectionTeamId","selectedEngagementTeamId","inspectionTeamMemberProfileSections","inspectionTeamMemberEngagementSections","get","getInspectionProfiles","getEngagement","getAvailableIndustries","inspectionProfile","profileSections","parentSectionId","sortByDisplayOrder","engagementSections","inspectionTeamMembers","engagementTeamMembers","regionCode","inspectionTeamMemberId","es","engagementSection","parentSection","profileSection","reviewerTypeId","type","assignedInspectionTeamMembers","tm","specialtyReviewerTypeId","engagementAptCaws","c","engagementIndustries","d","engagementProjects","f","p","ep","projectId","ea","aptCawId","ei","industryId","getActiveIndustries","getRegions","onlyUnique","sortByValue","getActiveTags","inspectionLeadId","n","employeeId","term","toLocaleLowerCase","item","count","fetchMoreClients","end","searchClients","clearTimeout","setTimeout","concat","setAvailableProjects","fetchMoreProjects","searchProjects","setAvailableAptCaws","fetchMoreAptCaws","searchAptCaws","getInspectionProfilesForEngagement","inspectionProfileId","getInspectionProfileForEngagementById","ip","setHighLevelProfileSections","businessLineId","officeId","taxReviewerId","isReviewerId","marketCap","totalEngagementHours","pending","def","getEngagementById","setHighLevelEngagementSections","getHighLevelInspectionTeamMemberProfileSections","getHighLevelInspectionTeamMemberEngagementSections","relativeTo","parent","match","sortByName","isCollapsed","questions","getInspectionProfileById","office","itm","employee","engagementId","teamMember","fullName","etm","projectIds","engagementProject","getTotalEmployeeProjectHours","totalEmployeeProjectHours","hours","inspectionTeamRoleId","operatingUnit","region","department","departmentName","engProj","isAddedModifiedOrDeleted","rejectChanges","getEmployeeProjectHours","eph","inspectionTeamRole","toLowerCase","round","engagementType","clientEntityType","clientFiscalYearEnd","fiscalYearEnd","engApt","inds","split","ind","addIndustry","duplicateIndustry","industryName","engInd","commitAfterAdd","engagementQuestions","engagementQuestion","question","profileQuestionActivatingTags","activatingTag","engagementQuestionOptions","option","t","tagId","questionId","questionOptionId","eqat","engagementQuestionActivatingTags","engagementQuestionOption","engagementQuestionOptionId","commit","tmidx","isAdded","engAptCaw","industryCount","removeIndustry","selectedSection","addInspectionTeamMemberEngagementSection","profileSectionId","engagementSectionId","newSection","addFirstLevelChildInspectionTeamMemberEngagementSections","ps","addFirstLevelChildInspectionTeamMemberProfileSections","sections","teamMemberId","section","existingInspectionTeamMemberSection","removeChildInspectionTeamMemberEngegementSections","removeChildInspectionTeamMemberProfileSections","updateTaxAndISReviewers","taxReviewer","specialtyReviewerType","isReviewer","itmps","addTeamCaptainToTeamIfNecessary","updateChildInspectionTeamMemberProfileSections","updateActivatedEngagementQuestions","setMyEngagements","cloneInspectionProfileIntoEngagement","publishEngagement","addEngagementQuestionActivatingTag","convertInspectionTeamMemberProfileSectionsToEngagementSections","content","afterClosed","toPromise","response","teamCaptainReviewComplete","signOffEmployeeId","instance","getAllAccounts","idTokenClaims","employeeID","signOffDate","getCurrentDate","changesRequired","format","goHome","updateClientFields","onClientsSearch","onClientsScrollToEnd","addProject","onProjectsSearch","onProjectsScrollToEnd","addAptCaw","onAptCawsSearch","onAptCawsScrollToEnd","updateRegionCode","syncMetadataFromProfile","expandAll","collapseAll","searchEmployees","addInspectionTeamMember","addEngagementTeamMember","EngagementSectionViewTreeNode","node","childSections","context","activeEngagementQuestion","substr","toggleSection","ProfileSectionViewTreeNode","activeQuestion","NoLoginFoundComponent","DEFAULT_LIMIT","MyInspectionsComponent","serverData","engagementsCount","myInspectionsSummary","clientNames","engagementCodes","subscriptions","add","configDataLoaded$","configData","engagementClient","getRowCount","getItems","getMyInspectionsCount","getMyInspections","getProgressStatusName","inspection","assignedToMeOnly","myAssignedSections","myCompletedSections","applyPrimaryFilters","clearPrimaryFilters","EngagementQuestionStatus","InspectionViewerTreeNode","filteredQuestionsService","filteredQuestions","meetsFilterCriteris","isActivated","hasActionableContent","getFilteredQuestions","changes","_filterIsActive","filterIsActive","currentValue","isComplete","selectedOptionId","setActiveSection","setActiveQuestion","inspectionTeamMember","questionHasChanges","filterCriteria","property","checkQuestionAgainstFilter","doesNotMeetFiltercriteria","values","criteria","checkQuestionStatus","selectedOption","standardQuestionOption","text","hasTag","questionTags","questionStatus","notComplete","saved","withComments","engagementQuestionComments","hasNestedFilteredQuestions","childNodes","q","questionIsFilteredAndActive","cn","UPDATING_KEY","NO_ANSWER_NEEDED_NAME","MyInspectionComponent","http","sectionId","commentText","currentComment","questionNumber","currentFilteredQuestionNumber","currentQuestion","hoverSectionName","currentSection","previousSection","nextSection","currentFilteredSection","nextQuestionDisabled","prevQuestionDisabled","nextAssignedSection","questionFilters","allEngagementOptions","filteredEngagementQuestions","cachedData","myEngagements","sid","qid","findSectionById","getAllEngagementOptions","setNextQuestionDisable","setPrevQuestionDisable","typingTimer","doneTypingInterval","self","commentEdit","saveComment","temp","setCurrentFilteredSection","setCurrentFilteredQuestionNumber","getMyEngagementNodeViewerById","setAvailableTags","numerator","denominator","active","isTeamCaptain","s","disable","myRootSections","filteredSection","displayOrder","rootSection","rs","hasContent","findNearestActiveParentSection","resetComment","setPreviousSection","setHoverText","clearQuestionSelection","element","getElementById","toString","scrollIntoView","behavior","block","inline","$","scrollLeft","currentQ","firstActiveQuestionInSection","getQuestion","checkParentSection","hasNoAnswerNeededQuestionOption","naOption","commentIsRequired","saveResponseForm","siblings","currentSectionIndex","sibling","previousSibling","sectionHasChildren","childrenOfChildSections","lastIndex","checkParentSectionForSiblings","checkPrevSiblingSectForFilteredQuests","checkNextSiblingSectForFilteredQuests","checkChildSections","siblingsOfParent","indexOfParent","rootSectionIndex","rootEngagementSections","checkSiblingSections","j","sectionHasFilteredQuestions","questSection","questionLoaded","isFullyLoaded","loadActiveComment","checkQuestionForNoAnswerOption","getEngagementQuestionById","eq","activeComment","questNumber","engagementSectFilteredQuestions","questNumberIncremented","foundNextFilteredQuestion","nextFilteredQuestionId","engQuestion","commentRequired","engagementQuestionId","comment","clearResponseForm","markAsComplete","checkQuestionForExistingResponse","existingAnswerModal","saveQuestionResponse","commentChanges","originalText","replaceExisting","respondingTeamMemberId","respondingTeamMember","responseDate","completedDate","getSelectedOptionActivatingTags","results","updatedSections","allEQO","engagementSectionEngagementQuestionOptions","qo","every","updateQuestionResponse","reloadEngagementTree","updateActivatedEngagementQuestionsByActivatingTags","isModified","eventValue","setFilterIsActive","filterIsNotNull","undefined","getIndexOfFilteredQuestion","filteredQuestLength","indexOfCurrentQuestion","statusFilter","answerFilter","tagFilter","currentUrl","origin","responseType","link","createElement","msSaveOrOpenBlob","fileName","click","URL","createObjectURL","printReport","populateFilterObject","HomeGridPager","NavMenuComponent","broadcastService","cd","serverSide","appTitle","isNationalQcAdmin","hasICSAccess","showMenu","userSub","account","includes","icsAccess","acct","loadServerSideData","getRoutes","logoutRedirect","unsubscribe","foundRoutes","config","route","childRoute","url","importKey","InspectionProfilesComponent","fileService","inspectionProfileSummaries","getStatusName","getInspectionProfilesSummary","getInspectionProfilesPageCount","profile","saveInspectionProfileChanges","newName","prompt","cloneInspectionProfile","newProfile","files","alert","formData","FormData","append","importQuestionnaire","ProfileQuestionsComponent","profileFilter","sectionFilter","tagsFilter","getQuestions","getQuestionsPageCount","saveProfileQuestionChanges","clone","helpText","questionOptions","opt","profileSectionQuestionOptions","psqo","pqo","qt","questionTag","ProfileSectionsComponent","getProfileSections","getProfileSectionsPageCount","saveProfileSectionChanges","InspectionDragdropComponent","displayEditQuestion","allProfileSectionIds","unsortedProfileSections","rootProfileSections","sortSectionAndChildren","isQuestion","initialIndex","initialSection","container","resetDisplayOrder","previousContainer","previousIndex","currentIndex","confirmation","undoAllChanges","sq","undoMove","reorderQuestions","reorderSections","moved","max","saveReorderChanges","cancelReorderChanges","closeReorderChanges","encapsulation","InspectionProfileAdminComponent","inspectionProfileStatuses","standardOptions","unassignedQuestions","activatingTags","questionToCloneId","isExistingQuestion","getUnassignedQuestions","getInspectionProfile","getChanges","isEditing","activeSection","psQuestions","currentQuestionIndex","nextQuest","currentPSIndex","newPS","previousQuest","inspectionProfileStatus","clearQuestionEditor","maxNodeOrder","propagateProfileSectionChanges","nodes","apply","options","maxOptionOrder","$select","val","prop","selectedTagId","pqat","associatedSectionActivatingOption","eseqo","setModified","associatedEngagementQuestionActivatingTag","propagateQuestionChanges","maxQuestionOrder","toNextQuestion","editQuestion","newQuestion","newOpt","isNRF","newPSQO","newQTag","isNewQuestion","loadUnassignedQuestion","questionToClone","silent","ProfileQuestionAdminComponent","profileSectionsForQuestionOptions","wasPreviouslyUnassigned","selectedSectionId","getSectionsForProfile","getInspectionProfilesForLookup","getProfileSectionsForLookup","getSectionsForInspectionProfile","getProfileSectionsForSection","getMaxQuestionDisplayOrder","getQuestionById","saveNow","getDisplayText","addOption","addTag","ProfileSectionTreeNode","addSection","removeSection","addQuestion","removeQuestion","duplicateQuestion","saveSectionChanges","ProfileNavMenu","template","ExportQuestionsAndResponsesComponent","csv","csvField","engagementCode","teamCaptainId","teamCaptainName","project","answer","answeredBy","download","Blob","setAttribute","style","visibility","body","appendChild","removeChild","getExportEngagementQuestionsByYear","createExportFile","endLine","ReportsNavMenu","SessionTimeoutComponent","dialogRef","secondsLeft","timer","countDown","close","minutes","AccessDeniedComponent","accessType","ConfirmationDialogComponent","serverSideConfig","onlyShowOk","debug","encodeURIComponent","display","DIALOG_YES","DIALOG_NO","DIALOG_OK","DIALOG_CANCEL","DIALOG_CLOSE","EmployeeSearchComponent","list","debouncer","subs","Array","showButton","required","errorMessage","buttonScreenReaderText","debounceTime","modelChange","onChange","buttonClick","onSearch","filteredList","emit","_model","employeeList","sub","model","emitChange","search","GridPager","SectionListItem","SignoutComponent","TeamInspectionsComponent","teamCaptains","selectedCaptain","groupBy","assignChildSections","groupByMode","teamMembers","selectedOffices","selectedRegions","selectedBusinessLines","inspectionStatusesLabel","progressStatusesLabel","clientNameFilter","sectionNameFilter","sectionStatusFilter","assignedOnFilter","assignedToFilter","questionNameFilter","hasCommentsFilter","isNrfFilter","hasObservationsFilter","groupByModes","yesNoOptions","getTeamCaptains","activeEngagements","activeEngagementSections","activeEngagementQuestions","progressStatuses","toggle","assignedTeamMembers","teamMembersModal","selected","previouslySelectedTeamMembers","teamMemberWasRemoved","updateAssignedSections","engagementStatusOptions","setStatusModal","engagementsToUpdate","updateEngagementStatus","selectedEngagementStatus","applyNow","clearSecondaryFilters","clearInspectionStatusFilters","clearProgressStatusFilters","getEngagementsCount","getEngagementSectionsCount","getEngagementQuestionsCount","getEngagementSections","getEngagementQuestions","getEngagementsForMyTeams","getEngagementsCountForMyTeams","getEngagementSectionsForMyTeams","getEngagementSectionsCountForMyTeams","getEngagementQuestionsForMyTeams","getEngagementQuestionsCountForMyTeams","EngagementViewerTreeNode","TeamCaptainInspectionComponent","getMyTeamsEngagementById","reloadSections","AppGuard","msalGuard","breezeGuard","authService","state","err","reroute","providedIn","RequireAuthenticatedUserGuard","RoleGuard","hasAccess","canSignIn","BreezeSetupGuard","entityManagerProvider","uowService","GenericCanDeactivateGuard","currentRoute","currentState","nextState","disableClose","undoChanges","ApplicationInsightsService","loaded","instrumentationKey","appInsightsKey","envProps","appInsightsEnv","downloadAndSetup","setAuthenticatedUserContext","properties","props","hasOwnProperty","measurements","duration","trackPageView","getProps","trackEvent","exception","handledAt","severityLevel","trackException","trackTrace","BreezeValidatorsService","validators","projectValidators","entityType","nameProp","getProperty","entity","entityManager","getEntities","isValid","messageTemplate","entityTypes","metaData","metadataStore","getEntityType","validator","shortName","bind","DefaultBreezeValidators","fn","defaultContext","v","ctxt","intValidator","minValue","maxValue","floor","parseFloat","min","patt","RegExp","regex","test","cc","replace","luhn","sum","charAt","meta","valFn","int16Validator","int32Validator","int64Validator","numValidator","requiredErrorMessage","removeValidator","requiredValidator","range","rangeValidator","regEx","regexValidator","expression","displayName","myType","emailValidator","currencyValidator","urlValidator","creditCardValidator","BridgeService","_http","_entityManagerProvider","obj","resourceName","manager","serviceName","post","query","from","isEmpty","withParameters","executeQuery","postParams","$method","$encoding","$data","getWithParams","where","orderBy","using","FromServer","httpGet","searchValue","showOnlyAdmins","showOnlyCaptains","includeAll","gridFilters","profileId","optionId","origProfileId","assignedSections","httpPost","engagementStatus","updateActivatedEngagementQuestionsByActivatingTagsDto","Config","exec","href","decodeURI","queryParam","openIdConfigUri","virtualDirRoot","configApi","resource","hasQueryParam","configureImpersonate","camelCase","setAsDefault","parseDateFromServer","source","toDate","_normalizeServiceName","slice","storeExpirationMs","dayMs","throttleMs","skipFieldsForMessage","stateKeys","metadataHash","annotatedMetadataHash","lookupsHash","breezeMetadata","lookups","annotatedMetadata","savedRoute","hashes","currentMetadataHash","currentAnnotatedMetadataHash","currentLookupsHash","DialogHelper","EntityManagerProviderService","modelBuilder","breezeValidators","rights","isUnmapped","nameOnServer","dataType","Undefined","masterManager","saveOptions","allowConcurrentSaves","cachedMetadataHash","localStorage","getItem","cachedAnnotatedMetadataHash","cachedLookupsHash","hydrateMetadata","extendMetadata","hydrateLookups","hydrateAnnotatedMetadata","metadata","fetchMetadata","cacheMetadata","importMetadata","valueAsPromise","exportMetadata","setItem","cacheLookups","importEntities","exportEntities","annotated","parseAnnotatedMetadata","cacheAnnotatedMetadata","parse","metaEntity","entityProps","getProperties","entityProp","metaProp","setupEFValidators","setupCustomValidators","_manager","createEmptyCopy","enableSaveQueuing","buildManager","initialized","prepare","FileService","rootUrl","FilteredQuestionsService","GlobalErrorHandler","previousErrors","showDialog","httpResponse","parseHttpError","parseQueuedSaveFailedError","stack","properMessage","innerError","entityErrors","oldestErrorTimestamp","timestamp","isSameOrAfter","removeOldErrors","prevError","IsBusyService","isBusySubscribers","isBusyBs","css","fadeOut","toast","isSubscriberIndex","info","extendedTimeOut","existing","toastId","ModelBuilderService","propNames","func","subject","propertyChanged","propertyName","myEntityCtor","myEntityInitializer","myEntity","firstName","lastName","registerEntityTypeCtor","sumQuestions","array","businessLineName","sectionCount","questionCount","sumSections","profileName","sectionName","tagName","canSave","leadInspector","inspectionLead","na","sectionStatus","percentComplete","completed","notStarted","inProgress","total","completedQuestions","totalQuestions","nrfs","oberservations","displayValue","label","extendEmployee","extendInspectionProfile","extendProfileSection","extendQuestion","extendQuestionTag","extendQuestionOption","extendEngagement","extendEngagementSection","extendEngagementQuestionComment","extendEngagementQuestionOption","extendProject","extendClient","extendAptCaw","Repository","entityTypeName","updateHasChanges","eventArgs","getMetastore","setProperties","defaultResourceName","setEntityTypeForResourceName","hasChangesChanged","fetchEntityByKey","predicate","executeCacheQuery","entities","allCached","Added","detachEntity","executeQueryLocally","createdDate","getTime","createdByUserId","added","addEntity","modified","Deleted","Modified","fieldsSaving","fieldsSavingEntityState","originalValues","saveResult","toasts","savedData","isPartial","entityCallback","dto","getEntityByKey","attachEntity","mapToEntity","setUnchanged","propInfo","isNavigationProperty","mapToEntityAlt","ServerSideConfigDataService","setMe","SharedDataService","Strings","changesPending","errorSavingData","errorGettingData","invalidRoute","welcomeMsg","retrievedData","canceledData","invalidData","entityAdded","entityDeleted","errors","nocallback","noroute","queryfailed","savefailed","actions","undoDelete","validation","date","guid","integer","integerRange","maxLength","stringLength","labels","pager","cancel","save","submit","validationSummary","view","back","copy","cancelCopy","newLabel","undo","noUsersAuthorized","noUsersFound","yes","no","footer","titles","home","loadingMsgs","reports","reportname","UnitOfWorkService","bridge","provider","entityChanged","notActivated","engagementRatings","veryPoor","poor","acceptable","veryGood","excellent","evt","createRepo","engagementQuestionTags","entityName","entityId","cachedItems","inspectionStatus","engagementRating","progressStatus","getQuestionOptions","getMyEngagementById","teamMemberIds","clearCache","saveQuestionComment","engagementIds","getMaxProfileSectionDisplayOrder","testApplicationException","testException","getEngagementReport","getInspectionTeamMemberProfileSections","getInspectionTeamMemberEngagementSections","LOADING_SCREEN_CLASS","LOADING_SHELL_CLASS","Utilities","hasClass","removeClass","addClass","html","txt","innerHTML","y","parts","toFixed","propName","valueQueue","field","orig","isSaved","delMsg","addMsg","fieldName","fieldValue","actualField","actualEntity","substring","defaultValue","groups","el","emptyPromise","Store","expires1Day","expires30Days","removeItem","isSameOrBefore","expires","sessionStorage","store","ListPicker","mapToStringCallback","expand","selectAll","isAutoDeselecting","availableBase","available","allData","items","mapToString","updateData","availableItems","selectedItems","DateRangePicker","mapToDateCallback","minDate","maxDate","mapToDate","isBefore","isAfter","endOf","hmr","hmrBootstrap","ngModule","hot","accept","mod","dispose","appRef","elements","components","nativeElement","makeVisible","destroy","getBaseUrl","getElementsByTagName","deps","bootstrapModule","InspectionProfileStatus","EngagementRating","EngagementStatus","ProgressStatus","Role"],"mappings":"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;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;;AA6FO,aAASC,IAAT,GAAa;AAChB,aAAO,YAAoB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","file":"main-es5.js","sourcesContent":["var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-in\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-in.js\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-sg\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./en-sg.js\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fil\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fil.js\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-deva\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-deva.js\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ku.js\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./oc-lnc\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./oc-lnc.js\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-mo\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-mo.js\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { Role } from '../model/role';\r\nimport { AptCawsAdminComponent } from './components/admin/apt-caws.component';\r\nimport { BusinessLinesAdminComponent } from './components/admin/business-lines.component';\r\nimport { ClientsAdminComponent } from './components/admin/clients.component';\r\nimport { ImpersonateAdminComponent } from './components/admin/impersonate.component';\r\nimport { IndustriesAdminComponent } from './components/admin/industries.component';\r\nimport { InspectionTeamRolesAdminComponent } from './components/admin/inspection-team-roles.component';\r\nimport { OfficesAdminComponent } from './components/admin/offices.component';\r\nimport { ProjectsAdminComponent } from './components/admin/projects.component';\r\nimport { StandardQuestionOptionsAdminComponent } from './components/admin/standard-question-options.component';\r\nimport { TagsAdminComponent } from './components/admin/tags.component';\r\nimport { EngagementsComponent } from './components/engagement-management/data-grids/engagements.component';\r\nimport { EngagementAdminComponent } from './components/engagement-management/forms/engagement-editor.component';\r\nimport { NoLoginFoundComponent } from './components/error/not-active.component';\r\nimport { MyInspectionsComponent } from './components/home/data-grids/home.component';\r\nimport { MyInspectionComponent } from './components/home/forms/inspection.component';\r\nimport { InspectionProfilesComponent } from './components/profile-management/data-grids/inspection-profiles.component';\r\nimport { ProfileQuestionsComponent } from './components/profile-management/data-grids/profile-questions.component';\r\nimport { ProfileSectionsComponent } from './components/profile-management/data-grids/profile-sections.component';\r\nimport { InspectionProfileAdminComponent } from './components/profile-management/forms/inspection-profile-editor.component';\r\nimport { ProfileQuestionAdminComponent } from './components/profile-management/forms/question-editor.component';\r\nimport { AccessDeniedComponent } from './components/shared/access-denied/access-denied.component';\r\nimport { SignoutComponent } from './components/signout/signout-component';\r\nimport { TeamInspectionsComponent } from './components/team-inspections/data-grids/team-inspections.component';\r\nimport { TeamCaptainInspectionComponent } from './components/team-inspections/forms/inspection.component';\r\nimport { ExportQuestionsAndResponsesComponent } from './components/reports/export-questions-and-responses.component';\r\nimport { AppGuard } from './guards/app-guard/app.guard';\r\nimport { RoleGuard } from './guards/auth/role-guard';\r\nimport { GenericCanDeactivateGuard } from './guards/generic-can-deactivate/generic-can-deactivate.guard';\r\nimport { SecurityRolesAdminComponent } from './components/admin/security-roles.component';\r\nimport { SpecialtyReviewerTypesAdminComponent } from './components/admin/specialty-reviewer-types.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n canActivate: [AppGuard],\r\n children: [\r\n {\r\n path: 'engagement-management',\r\n canActivate: [RoleGuard],\r\n data: { order: 3, name: 'Inspection Code Setup', requiresQcAdmin: true, roles: [Role.nationalQcAdmin, Role.admin] },\r\n children: [\r\n {\r\n path: '',\r\n pathMatch: 'full',\r\n redirectTo: 'engagements'\r\n },\r\n {\r\n path: 'engagements',\r\n component: EngagementsComponent\r\n },\r\n {\r\n path: 'edit',\r\n component: EngagementAdminComponent,\r\n canDeactivate: [GenericCanDeactivateGuard]\r\n }\r\n ]\r\n },\r\n {\r\n path: 'profile-management',\r\n canActivate: [RoleGuard],\r\n data: { order: 4, name: 'Engagement Review Questionnaires', requiresAdmin: true, roles: [Role.admin] },\r\n children: [\r\n {\r\n path: '',\r\n pathMatch: 'full',\r\n redirectTo: 'inspection-profiles'\r\n },\r\n {\r\n path: 'inspection-profiles',\r\n component: InspectionProfilesComponent\r\n },\r\n {\r\n path: 'inspection-profile',\r\n component: InspectionProfileAdminComponent,\r\n canDeactivate: [GenericCanDeactivateGuard]\r\n },\r\n {\r\n path: 'profile-sections',\r\n component: ProfileSectionsComponent\r\n },\r\n {\r\n path: 'profile-questions',\r\n component: ProfileQuestionsComponent\r\n },\r\n {\r\n path: 'profile-question',\r\n component: ProfileQuestionAdminComponent,\r\n canDeactivate: [GenericCanDeactivateGuard]\r\n }\r\n ]\r\n },\r\n {\r\n path: 'admin',\r\n canActivate: [RoleGuard],\r\n data: { order: 5, name: 'Admin', requiresAdmin: true, roles: [Role.admin] },\r\n children: [\r\n {\r\n path: '',\r\n pathMatch: 'full',\r\n redirectTo: 'business-lines'\r\n },\r\n {\r\n path: 'apt-caws',\r\n component: AptCawsAdminComponent\r\n },\r\n {\r\n path: 'business-lines',\r\n component: BusinessLinesAdminComponent\r\n },\r\n {\r\n path: 'clients',\r\n component: ClientsAdminComponent\r\n },\r\n {\r\n path: 'industries',\r\n component: IndustriesAdminComponent\r\n },\r\n {\r\n path: 'offices',\r\n component: OfficesAdminComponent\r\n },\r\n {\r\n path: 'projects',\r\n component: ProjectsAdminComponent\r\n },\r\n {\r\n path: 'standard-question-options',\r\n component: StandardQuestionOptionsAdminComponent\r\n },\r\n {\r\n path: 'inspection-team-roles',\r\n component: InspectionTeamRolesAdminComponent\r\n },\r\n {\r\n path: 'tags',\r\n component: TagsAdminComponent\r\n },\r\n {\r\n path: 'impersonate',\r\n component: ImpersonateAdminComponent\r\n },\r\n {\r\n path: 'security-roles',\r\n component: SecurityRolesAdminComponent\r\n },\r\n {\r\n path: 'specialty-reviewer-types',\r\n component: SpecialtyReviewerTypesAdminComponent\r\n }\r\n ]\r\n },\r\n {\r\n path: 'reports',\r\n canActivate: [RoleGuard],\r\n data: { order: 5, name: 'Reports', requiresAdmin: true, roles: [Role.admin] },\r\n children: [\r\n {\r\n path: '',\r\n pathMatch: 'full',\r\n redirectTo: 'export-questions-and-responses'\r\n },\r\n {\r\n path: 'export-questions-and-responses',\r\n component: ExportQuestionsAndResponsesComponent\r\n }\r\n ]\r\n },\r\n {\r\n path: 'my-assignments',\r\n canActivate: [RoleGuard],\r\n data: { order: 1, name: 'My Assignments', requiresAdmin: false, requiresQcAdmin: false, roles: [Role.basic, Role.nationalQcAdmin, Role.admin] },\r\n children: [\r\n {\r\n path: '',\r\n pathMatch: 'full',\r\n component: MyInspectionsComponent\r\n },\r\n {\r\n path: 'inspection',\r\n component: MyInspectionComponent,\r\n canDeactivate: [GenericCanDeactivateGuard]\r\n }\r\n ]\r\n },\r\n { path: '', redirectTo: 'my-assignments', pathMatch: 'full' }\r\n ]\r\n },\r\n { path: 'access-denied', component: AccessDeniedComponent },\r\n { path: 'signout', component: SignoutComponent },\r\n { path: 'no-login-found', component: NoLoginFoundComponent },\r\n { path: '**', redirectTo: 'my-assignments', pathMatch: 'full' },\r\n]\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MsalBroadcastService, MsalGuardConfiguration, MsalService, MSAL_GUARD_CONFIG } from '@azure/msal-angular';\r\nimport { AccountInfo, InteractionStatus, RedirectRequest } from '@azure/msal-browser';\r\nimport { Subject } from 'rxjs';\r\nimport { filter, takeUntil } from 'rxjs/operators'\r\nimport Utilities from './services/utilities';\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.less']\r\n})\r\nexport class AppComponent implements OnInit {\r\n title = 'app';\r\n currentYear = new Date().getFullYear();\r\n\r\n private readonly _destroying$ = new Subject();\r\n\r\n constructor(@Inject(MSAL_GUARD_CONFIG) private msalGuardConfig: MsalGuardConfiguration,\r\n private msalBroadcastService: MsalBroadcastService) { }\r\n\r\n ngOnInit(): void {\r\n this.msalBroadcastService.inProgress$\r\n .pipe(\r\n filter((status: InteractionStatus) => status === InteractionStatus.None),\r\n takeUntil(this._destroying$)\r\n )\r\n .subscribe((result) => {\r\n Utilities.hideLoadingScreen();\r\n });\r\n }\r\n\r\n ngOnDestory(): void {\r\n this._destroying$.next(null);\r\n this._destroying$.complete();\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n © Copyright BDO USA, P.C., a Virginia Professional Service Corporation {{ currentYear }}. All Rights Reserved.\r\n
\r\n
\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { NgModule, APP_INITIALIZER, ErrorHandler } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { NgIdleModule } from '@ng-idle/core';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { ClipboardModule } from 'ngx-clipboard';\r\n\r\nimport { AccessDeniedComponent } from './components/shared/access-denied/access-denied.component';\r\nimport { AppComponent } from './app.component';\r\nimport { ConfirmationDialogComponent } from './components/shared/confirmation-dialog/confirmation-dialog.component';\r\nimport { NavMenuComponent } from './components/nav-menu/nav-menu.component';\r\nimport { SessionTimeoutComponent } from './components/session-timeout/session-timeout.component';\r\nimport { SignoutComponent } from './components/signout/signout-component';\r\n\r\nimport { UnitOfWorkService } from './services/unit-of-work/unit-of-work.service';\r\n\r\nimport { BreezeBridgeHttpClientModule } from 'breeze-bridge2-angular';\r\nimport { ModalModule } from 'ngx-bootstrap';\r\nimport { ToastrModule } from 'ngx-toastr';\r\n\r\nimport { RequireAuthenticatedUserGuard } from './guards/auth/require-authenticated-user.guard';\r\n\r\nimport { ApplicationInsightsService } from './services/application-insights/application-insights.service';\r\nimport { BridgeService } from './services/bridge/bridge.service';\r\nimport { EntityManagerProviderService } from './services/entity-manager-provider/entity-manager-provider.service';\r\nimport { IsBusyService } from './services/is-busy/is-busy.service';\r\nimport { ServerSideConfigDataService } from './services/server-side-config-data/server-side-config-data.service';\r\nimport { GlobalErrorHandler } from './services/global-error-handler';\r\n\r\nimport { NoLoginFoundComponent } from './components/error/not-active.component';\r\nimport { MyInspectionsComponent } from './components/home/data-grids/home.component';\r\nimport { MyInspectionComponent } from './components/home/forms/inspection.component';\r\nimport { InspectionViewerTreeNode } from './components/home/forms/inspection-tree-node-viewer.component';\r\n\r\n\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\n\r\nimport { TeamInspectionsComponent } from './components/team-inspections/data-grids/team-inspections.component';\r\nimport { TeamCaptainInspectionComponent } from './components/team-inspections/forms/inspection.component';\r\nimport { EngagementViewerTreeNode } from './components/team-inspections/forms/engagement-tree-node-viewer.component';\r\n\r\nimport { EngagementsComponent } from './components/engagement-management/data-grids/engagements.component';\r\nimport { EngagementAdminComponent } from './components/engagement-management/forms/engagement-editor.component';\r\nimport { EngagementSectionViewTreeNode } from './components/engagement-management/tree-viewers/engagement-tree-node-viewer.component';\r\nimport { ProfileSectionViewTreeNode } from './components/engagement-management/tree-viewers/tree-node-viewer.component';\r\n\r\nimport { InspectionProfilesComponent } from './components/profile-management/data-grids/inspection-profiles.component';\r\nimport { InspectionProfileAdminComponent } from './components/profile-management/forms/inspection-profile-editor.component';\r\n\r\nimport { ProfileSectionsComponent } from './components/profile-management/data-grids/profile-sections.component';\r\n\r\nimport { ProfileQuestionsComponent } from './components/profile-management/data-grids/profile-questions.component';\r\nimport { ProfileQuestionAdminComponent } from './components/profile-management/forms/question-editor.component';\r\n\r\nimport { AptCawsAdminComponent } from './components/admin/apt-caws.component';\r\nimport { BusinessLinesAdminComponent } from './components/admin/business-lines.component';\r\nimport { ClientsAdminComponent } from './components/admin/clients.component';\r\nimport { IndustriesAdminComponent } from './components/admin/industries.component';\r\nimport { InspectionTeamRolesAdminComponent } from './components/admin/inspection-team-roles.component';\r\nimport { OfficesAdminComponent } from './components/admin/offices.component';\r\nimport { ProjectsAdminComponent } from './components/admin/projects.component';\r\nimport { StandardQuestionOptionsAdminComponent } from './components/admin/standard-question-options.component';\r\nimport { TagsAdminComponent } from './components/admin/tags.component';\r\nimport { ImpersonateAdminComponent } from './components/admin/impersonate.component';\r\nimport { SecurityRolesAdminComponent } from './components/admin/security-roles.component';\r\nimport { SpecialtyReviewerTypesAdminComponent } from './components/admin/specialty-reviewer-types.component';\r\nimport { AdminNavMenu } from './components/admin/admin-nav.component';\r\n\r\nimport { ExportQuestionsAndResponsesComponent } from './components/reports/export-questions-and-responses.component';\r\nimport { ReportsNavMenu } from './components/reports/reports-nav.component';\r\n\r\nimport { ProfileSectionTreeNode } from './components/profile-management/forms/tree-node-editor.component';\r\nimport { ProfileNavMenu } from './components/profile-management/profile-nav.component';\r\n\r\nimport { SectionListItem } from './components/shared/section-list-viewer.component';\r\nimport { GridPager } from './components/shared/grid-pager.component';\r\nimport { HomeGridPager } from './components/home/home-pager.component';\r\nimport { DialogHelper } from './services/dialog-helper';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\nimport { InspectionDragdropComponent } from './components/profile-management/forms/inspection-dragdrop/inspection-dragdrop.component';\r\nimport Config from './services/config';\r\nimport { EmployeeSearchComponent } from './components/shared/employee-search/employee-search.component';\r\n\r\nimport { IPublicClientApplication, PublicClientApplication, InteractionType, BrowserCacheLocation } from '@azure/msal-browser';\r\nimport { MsalGuard, MsalInterceptor, MsalBroadcastService, MsalInterceptorConfiguration, MsalModule, MsalService, MSAL_GUARD_CONFIG, MSAL_INSTANCE, MSAL_INTERCEPTOR_CONFIG, MsalGuardConfiguration, MsalRedirectComponent } from '@azure/msal-angular';\r\nimport { AppRoutingModule } from './app-routing.module';\r\n\r\n\r\n\r\nexport function init(): () => Promise {\r\n return (): Promise => {\r\n return new Promise((resolve, reject) => {\r\n Config.init();\r\n resolve(null);\r\n });\r\n };\r\n}\r\n\r\nconst isIE = window.navigator.userAgent.indexOf('MSIE ') > -1 || window.navigator.userAgent.indexOf('Trident/') > -1;\r\n\r\nconst environment = {\r\n production: false,\r\n clientId: '72969031-1fef-4778-a15f-9c3689cb1c05',\r\n authority: 'https://login.microsoftonline.com/6e57fc1a-413e-4050-91da-7d2dc8543e3c/',\r\n redirectUrl: `https://${document.location.host}/`,\r\n logoutRedirectUri: `https://${document.location.host}/signout`\r\n}\r\n\r\nexport function MSALInstanceFactory(): IPublicClientApplication {\r\n return new PublicClientApplication({\r\n auth: {\r\n clientId: environment.clientId,\r\n authority: environment.authority,\r\n redirectUri: environment.redirectUrl,\r\n postLogoutRedirectUri: environment.logoutRedirectUri\r\n },\r\n cache: {\r\n cacheLocation: BrowserCacheLocation.LocalStorage,\r\n storeAuthStateInCookie: isIE, // set to true for IE 11\r\n }\r\n });\r\n}\r\n\r\nexport function MSALInterceptorConfigFactory(): MsalInterceptorConfiguration {\r\n const protectedResourceMap = new Map>();\r\n protectedResourceMap.set('https://graph.microsoft.com/v1.0/me', ['user.read']);\r\n protectedResourceMap.set(`https://${document.location.host}/`, [`${environment.clientId}/user_impersonation`])\r\n\r\n return {\r\n interactionType: InteractionType.Redirect,\r\n protectedResourceMap\r\n };\r\n}\r\n\r\nexport function MSALGuardConfigFactory(): MsalGuardConfiguration {\r\n return { interactionType: InteractionType.Redirect };\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n NavMenuComponent,\r\n MyInspectionsComponent,\r\n MyInspectionComponent,\r\n InspectionViewerTreeNode,\r\n SectionListItem,\r\n SessionTimeoutComponent,\r\n SignoutComponent,\r\n AccessDeniedComponent,\r\n NoLoginFoundComponent,\r\n TeamInspectionsComponent,\r\n TeamCaptainInspectionComponent,\r\n EngagementViewerTreeNode,\r\n EngagementsComponent,\r\n EngagementAdminComponent,\r\n EngagementSectionViewTreeNode,\r\n InspectionProfilesComponent,\r\n InspectionProfileAdminComponent,\r\n ProfileSectionsComponent,\r\n ProfileQuestionsComponent,\r\n ProfileQuestionAdminComponent,\r\n AptCawsAdminComponent,\r\n BusinessLinesAdminComponent,\r\n ClientsAdminComponent,\r\n IndustriesAdminComponent,\r\n InspectionTeamRolesAdminComponent,\r\n OfficesAdminComponent,\r\n ProjectsAdminComponent,\r\n StandardQuestionOptionsAdminComponent,\r\n SpecialtyReviewerTypesAdminComponent,\r\n TagsAdminComponent,\r\n ImpersonateAdminComponent,\r\n SecurityRolesAdminComponent,\r\n ProfileSectionTreeNode,\r\n ProfileSectionViewTreeNode,\r\n ProfileNavMenu,\r\n AdminNavMenu,\r\n GridPager,\r\n HomeGridPager,\r\n InspectionDragdropComponent,\r\n ConfirmationDialogComponent,\r\n EmployeeSearchComponent,\r\n ExportQuestionsAndResponsesComponent,\r\n ReportsNavMenu\r\n\r\n ],\r\n imports: [\r\n BrowserModule.withServerTransition({ appId: 'ng-cli-universal' }),\r\n HttpClientModule,\r\n FormsModule,\r\n AppRoutingModule,\r\n BreezeBridgeHttpClientModule,\r\n BrowserAnimationsModule,\r\n MatDialogModule,\r\n ModalModule.forRoot(),\r\n MatButtonModule,\r\n NgbModule,\r\n NgSelectModule,\r\n DragDropModule,\r\n ClipboardModule,\r\n NgIdleModule.forRoot(),\r\n ToastrModule.forRoot({\r\n timeOut: Config.toastrTimeoutMs,\r\n positionClass: 'toast-bottom-right',\r\n preventDuplicates: true,\r\n countDuplicates: true\r\n }),\r\n MsalModule\r\n ],\r\n entryComponents: [\r\n SessionTimeoutComponent,\r\n ConfirmationDialogComponent\r\n ],\r\n providers: [\r\n ApplicationInsightsService,\r\n BridgeService,\r\n EntityManagerProviderService,\r\n IsBusyService,\r\n ServerSideConfigDataService,\r\n UnitOfWorkService,\r\n GlobalErrorHandler,\r\n RequireAuthenticatedUserGuard,\r\n {\r\n provide: ErrorHandler,\r\n useClass: GlobalErrorHandler\r\n },\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: init,\r\n multi: true\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: MsalInterceptor,\r\n multi: true\r\n },\r\n {\r\n provide: MSAL_INSTANCE,\r\n useFactory: MSALInstanceFactory\r\n },\r\n {\r\n provide: MSAL_GUARD_CONFIG,\r\n useFactory: MSALGuardConfigFactory\r\n },\r\n {\r\n provide: MSAL_INTERCEPTOR_CONFIG,\r\n useFactory: MSALInterceptorConfigFactory\r\n },\r\n DialogHelper,\r\n MsalService,\r\n MsalGuard,\r\n MsalBroadcastService\r\n ],\r\n bootstrap: [AppComponent, MsalRedirectComponent]\r\n})\r\nexport class AppModule { }\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { SharedDataService } from '../../services/shared-data/shared-data.service';\r\n\r\ndeclare var window: any;\r\n@Component({\r\n selector: 'admin-nav-menu',\r\n inputs: ['currentTab'],\r\n templateUrl: './admin-nav.component.html'\r\n})\r\nexport class AdminNavMenu implements OnInit {\r\n @Input() currentTab: string;\r\n\r\n navItems = [\r\n { id: 'apt-caws', title: 'APT CAW' },\r\n { id: 'business-lines', title: 'Business Lines' },\r\n { id: 'clients', title: 'Clients' },\r\n { id: 'industries', title: 'Industries' },\r\n { id: 'inspection-team-roles', title: 'Engagement Team Roles' },\r\n { id: 'offices', title: 'Offices' },\r\n { id: 'projects', title: 'Projects' },\r\n { id: 'standard-question-options', title: 'Standard Question Options' },\r\n { id: 'tags', title: 'Tags' },\r\n { id: 'security-roles', title: 'Security Roles' },\r\n { id: 'specialty-reviewer-types', title: 'Specialty Reviewer Types' }\r\n ];\r\n\r\n constructor(\r\n private sharedData: SharedDataService\r\n ) { }\r\n\r\n ngOnInit() {\r\n const env = window.location.host;\r\n //if ((!env.includes('inspections') || !env.includes('prod')) && this.sharedData.me.value.isNationalQcAdmin) {\r\n // this.navItems.push({ id: 'impersonate', title: 'Impersonate' });\r\n //}\r\n\r\n }\r\n}\r\n","\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { UnitOfWorkService } from '../../services/unit-of-work/unit-of-work.service';\r\nimport { ApplicationInsightsService } from '../../services/application-insights/application-insights.service';\r\nimport { Observable } from 'rxjs';\r\nimport { DialogHelper } from '../../services/dialog-helper';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { IsBusyService } from '../../services/is-busy/is-busy.service';\r\nimport * as model from '../../../model/model';\r\nimport { GlobalErrorHandler } from '../../services/global-error-handler';\r\n\r\nconst defaultLimit: number = 100;\r\n\r\n@Component({\r\n selector: 'app-apt-caws',\r\n templateUrl: './apt-caws.component.html',\r\n})\r\nexport class AptCawsAdminComponent implements OnInit {\r\n\r\n aptCaws: model.AptCaw[] = [];\r\n page: number = 1;\r\n limit: number = defaultLimit;\r\n rowCount: number = 0;\r\n pageCount: number = 1;\r\n pageLimitOptions = [15, 25, 50, 100];\r\n\r\n idFilter: string = null;\r\n nameFilter: string = null;\r\n clientFilter: string = null;\r\n\r\n get activeAptCaws() {\r\n return this.aptCaws.filter(m => !m.entityAspect.entityState.isDeleted() && !m.entityAspect.entityState.isDetached()).sort((a, b) => { return a.name.localeCompare(b.name); });\r\n }\r\n\r\n\r\n constructor(\r\n\t\tprivate uow: UnitOfWorkService,\r\n private appInsights: ApplicationInsightsService,\r\n private errorHandler: GlobalErrorHandler,\r\n\t\tprivate activeRoute: ActivatedRoute,\r\n\t\tpublic isBusy: IsBusyService,\r\n\t\tpublic dialogHelper: DialogHelper\r\n\t) {\r\n appInsights.logPageView();\r\n }\r\n\r\n ngOnInit() {\r\n this.activeRoute.params.subscribe(routeParams => {\r\n this.page = routeParams.page && !Number.isNaN(routeParams.page) ? parseInt(routeParams.page) : 1;\r\n this.limit = routeParams.limit && !Number.isNaN(routeParams.limit) ? parseInt(routeParams.limit) : defaultLimit;\r\n\r\n this.updateDataGrid();\r\n });\r\n }\r\n\r\n canDeactivate(): Observable | boolean {\r\n if (this.uow.hasChanges.value) {\r\n let proceed = this.dialogHelper.confirm();\r\n\r\n proceed.subscribe(result => {\r\n if (result) {\r\n this.uow.rollback();\r\n }\r\n })\r\n\r\n return proceed;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n clearFilters() {\r\n this.idFilter = null;\r\n this.nameFilter = null;\r\n this.clientFilter = null;\r\n\r\n this.updateDataGrid();\r\n }\r\n\r\n updateDataGrid() {\r\n this.isBusy.set('admin:loadData', true, 'Loading data');\r\n Promise.all([\r\n this.getAptCawsCount(),\r\n this.getAptCaws()\r\n ])\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set('admin:loadData', false);\r\n });\r\n }\r\n\r\n getAptCaws() {\r\n return this.uow.getAptCaws(this.idFilter, this.nameFilter, null, this.clientFilter, this.page, this.limit)\r\n .then(result => {\r\n this.aptCaws = result;\r\n });\r\n }\r\n\r\n getAptCawsCount() {\r\n return this.uow.getAptCawsCount(this.idFilter, this.nameFilter, null, this.clientFilter)\r\n .then(result => {\r\n this.rowCount = result[0];\r\n this.pageCount = Math.ceil(this.rowCount / this.limit);\r\n if (this.pageCount < 1) {\r\n this.pageCount = 1;\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n

Admin

\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n APT CAWs\r\n

\r\n {{rowCount}} {{(rowCount == 1 ? 'record' : 'records')}} found\r\n

\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
IdNameClient
\r\n \r\n
\r\n \r\n \r\n No data to display…\r\n \r\n
{{aptCaws.id}}{{aptCaws.name}}{{aptCaws.client ? aptCaws.client.name : '---'}}
\r\n\r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { UnitOfWorkService } from '../../services/unit-of-work/unit-of-work.service';\r\nimport { ApplicationInsightsService } from '../../services/application-insights/application-insights.service';\r\nimport { Observable } from 'rxjs';\r\nimport { DialogHelper } from '../../services/dialog-helper';\r\nimport { IsBusyService } from '../../services/is-busy/is-busy.service';\r\nimport * as model from '../../../model/model';\r\nimport { GlobalErrorHandler } from '../../services/global-error-handler';\r\n\r\nconst tabKey: string = 'admin:active-tab';\r\n\r\n@Component({\r\n selector: 'app-business-lines',\r\n templateUrl: './business-lines.component.html',\r\n})\r\nexport class BusinessLinesAdminComponent implements OnInit {\r\n businessLines: model.BusinessLine[] = [];\r\n\r\n newBusinessLineName: string = null;\r\n\r\n get activeBusinessLines() {\r\n return this.businessLines.filter(m => !m.entityAspect.entityState.isDeleted() && !m.entityAspect.entityState.isDetached()).sort((a, b) => { return a.name.localeCompare(b.name); });\r\n }\r\n\r\n constructor(\r\n\t\tprivate uow: UnitOfWorkService,\r\n private appInsights: ApplicationInsightsService,\r\n private errorHandler: GlobalErrorHandler,\r\n\t\tpublic isBusy: IsBusyService,\r\n\t\tpublic dialogHelper: DialogHelper\r\n\t) {\r\n appInsights.logPageView();\r\n }\r\n\r\n ngOnInit() {\r\n this.isBusy.set('admin:loadData', true, 'Loading data');\r\n Promise.all([\r\n this.getBusinessLines()\r\n ])\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set('admin:loadData', false);\r\n });\r\n }\r\n\r\n canDeactivate(): Observable | boolean {\r\n if (this.uow.hasChanges.value) {\r\n let proceed = this.dialogHelper.confirm();\r\n\r\n proceed.subscribe(result => {\r\n if (result) {\r\n this.uow.rollback();\r\n }\r\n })\r\n\r\n return proceed;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n \r\n getBusinessLines() {\r\n return this.uow.getBusinessLines(true)\r\n .then(result => {\r\n this.businessLines = result;\r\n });\r\n }\r\n \r\n\r\n saveBusinessLineChanges(businessLine: model.BusinessLine, message: string) {\r\n this.isBusy.set('admin:saveBusinessLine', true, message);\r\n this.uow.businessLines.saveChanges([businessLine])\r\n .then(() => {\r\n this.newBusinessLineName = null;\r\n })\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set('admin:saveBusinessLine', false);\r\n });\r\n }\r\n\r\n createBusinessLine() {\r\n if (this.newBusinessLineName) {\r\n const newBusinessLine = this.uow.businessLines.createEntity();\r\n newBusinessLine.name = this.newBusinessLineName.trim();\r\n this.businessLines.push(newBusinessLine);\r\n\r\n this.saveBusinessLineChanges(newBusinessLine, 'Saving business line');\r\n }\r\n }\r\n\r\n updateBusinessLine(businessLine: model.BusinessLine) {\r\n this.saveBusinessLineChanges(businessLine, 'Updating business line');\r\n }\r\n\r\n destroyBusinessLine(businessLine: model.BusinessLine) {\r\n if (businessLine) {\r\n if (confirm('Are you sure you want to remove \"' + businessLine.name + '\"?')) {\r\n this.uow.businessLines.cancelChanges(businessLine);\r\n businessLine.entityAspect.setDeleted();\r\n\r\n this.saveBusinessLineChanges(businessLine, 'Removing business line \"' + businessLine.name + '\"');\r\n }\r\n }\r\n }\r\n}\r\n","
\r\n

Admin

\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n Business Lines\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
IdName
\r\n \r\n \r\n No data to display…\r\n \r\n
\r\n \r\n \r\n \r\n {{businessLine.id}}\r\n \r\n Name is required.\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { UnitOfWorkService } from '../../services/unit-of-work/unit-of-work.service';\r\nimport { ApplicationInsightsService } from '../../services/application-insights/application-insights.service';\r\nimport { Observable } from 'rxjs';\r\nimport { DialogHelper } from '../../services/dialog-helper';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { IsBusyService } from '../../services/is-busy/is-busy.service';\r\nimport * as model from '../../../model/model';\r\nimport { GlobalErrorHandler } from '../../services/global-error-handler';\r\n\r\nconst defaultLimit: number = 100;\r\n\r\n@Component({\r\n selector: 'app-clients',\r\n templateUrl: './clients.component.html',\r\n})\r\nexport class ClientsAdminComponent implements OnInit {\r\n\r\n clients: model.Client[] = [];\r\n page: number = 1;\r\n limit: number = defaultLimit;\r\n rowCount: number = 0;\r\n pageCount: number = 1;\r\n pageLimitOptions = [15, 25, 50, 100];\r\n\r\n idFilter: string = null;\r\n nameFilter: string = null;\r\n\r\n get activeClients() {\r\n return this.clients.filter(m => !m.entityAspect.entityState.isDeleted() && !m.entityAspect.entityState.isDetached()).sort((a, b) => { return a.name.localeCompare(b.name); });\r\n }\r\n\r\n\r\n constructor(\r\n\t\tprivate uow: UnitOfWorkService,\r\n private appInsights: ApplicationInsightsService,\r\n private errorHandler: GlobalErrorHandler,\r\n\t\tprivate activeRoute: ActivatedRoute,\r\n\t\tpublic isBusy: IsBusyService,\r\n\t\tpublic dialogHelper: DialogHelper\r\n\t) {\r\n appInsights.logPageView();\r\n }\r\n\r\n ngOnInit() {\r\n this.activeRoute.params.subscribe(routeParams => {\r\n this.page = routeParams.page && !Number.isNaN(routeParams.page) ? parseInt(routeParams.page) : 1;\r\n this.limit = routeParams.limit && !Number.isNaN(routeParams.limit) ? parseInt(routeParams.limit) : defaultLimit;\r\n\r\n this.updateDataGrid();\r\n });\r\n }\r\n\r\n canDeactivate(): Observable | boolean {\r\n if (this.uow.hasChanges.value) {\r\n let proceed = this.dialogHelper.confirm();\r\n\r\n proceed.subscribe(result => {\r\n if (result) {\r\n this.uow.rollback();\r\n }\r\n })\r\n\r\n return proceed;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n clearFilters() {\r\n this.idFilter = null;\r\n this.nameFilter = null;\r\n\r\n this.updateDataGrid();\r\n }\r\n\r\n updateDataGrid() {\r\n this.isBusy.set('admin:loadData', true, 'Loading data');\r\n Promise.all([\r\n this.getClientsCount(),\r\n this.getClients()\r\n ])\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set('admin:loadData', false);\r\n });\r\n }\r\n\r\n getClients() {\r\n return this.uow.getClients(this.idFilter, this.nameFilter, this.page, this.limit)\r\n .then(result => {\r\n this.clients = result;\r\n });\r\n }\r\n\r\n getClientsCount() {\r\n return this.uow.getClientsCount(this.idFilter, this.nameFilter)\r\n .then(result => {\r\n this.rowCount = result[0];\r\n this.pageCount = Math.ceil(this.rowCount / this.limit);\r\n if (this.pageCount < 1) {\r\n this.pageCount = 1;\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n

Admin

\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n Clients\r\n

\r\n {{rowCount}} {{(rowCount == 1 ? 'record' : 'records')}} found\r\n

\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
IdName
\r\n \r\n
\r\n \r\n \r\n No data to display…\r\n \r\n
{{client.id}}{{client.name}}
\r\n\r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ApplicationInsightsService } from '../../services/application-insights/application-insights.service';\r\nimport { GlobalErrorHandler } from '../../services/global-error-handler';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\ndeclare var window: any;\r\n@Component({\r\n selector: 'app-impersonate',\r\n templateUrl: './impersonate.component.html',\r\n styles: [`\r\n table {\r\n max-width: 30rem;\r\n }\r\n .table td {\r\n vertical-align: middle;\r\n }\r\n input {\r\n font-size: small;\r\n }\r\n `]\r\n})\r\nexport class ImpersonateAdminComponent implements OnInit {\r\n basic: string = '';\r\n admin: string = '';\r\n\r\n constructor(\r\n private appInsights: ApplicationInsightsService,\r\n private errorHandler: GlobalErrorHandler,\r\n private toastr: ToastrService\r\n\t) {\r\n appInsights.logPageView();\r\n }\r\n\r\n ngOnInit() {\r\n this.basic = 'https://' + window.location.host + '/?e2e&impersonate=hjackman@bdo.com&code=n@11!mpPwd';\r\n this.admin = 'https://' + window.location.host + '/?e2e&impersonate=bwillis@bdo.com&code=n@11!mpPwd';\r\n }\r\n\r\n log($event, role) {\r\n if ($event.isSuccess) {\r\n this.toastr.success(`Copied ${role} URL to clipboard`, '', { timeOut: 2000 });\r\n }\r\n }\r\n}\r\n","
\r\n

Admin

\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n Impersonate\r\n \r\n To impersonate a role, please copy the URL and paste it in a new tab or window.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Type of RoleURL
\r\n \r\n Basic\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n Admin\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { UnitOfWorkService } from '../../services/unit-of-work/unit-of-work.service';\r\nimport { ApplicationInsightsService } from '../../services/application-insights/application-insights.service';\r\nimport { Observable } from 'rxjs';\r\nimport { DialogHelper } from '../../services/dialog-helper';\r\nimport { IsBusyService } from '../../services/is-busy/is-busy.service';\r\nimport * as model from '../../../model/model';\r\nimport { GlobalErrorHandler } from '../../services/global-error-handler';\r\n\r\n@Component({\r\n selector: 'app-industries',\r\n templateUrl: './industries.component.html',\r\n})\r\nexport class IndustriesAdminComponent implements OnInit {\r\n\r\n industries: model.Industry[] = [];\r\n \r\n newIndustryName: string = null;\r\n\r\n\r\n get activeIndustries() {\r\n return this.industries.filter(m => !m.entityAspect.entityState.isDeleted() && !m.entityAspect.entityState.isDetached()).sort((a, b) => { return a.name.localeCompare(b.name); });\r\n }\r\n\r\n\r\n constructor(\r\n\t\tprivate uow: UnitOfWorkService,\r\n private appInsights: ApplicationInsightsService,\r\n private errorHandler: GlobalErrorHandler,\r\n\t\tpublic isBusy: IsBusyService,\r\n\t\tpublic dialogHelper: DialogHelper\r\n\t) {\r\n appInsights.logPageView();\r\n }\r\n\r\n ngOnInit() {\r\n this.isBusy.set('admin:loadData', true, 'Loading data');\r\n Promise.all([\r\n this.getIndustries()\r\n ])\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set('admin:loadData', false);\r\n });\r\n }\r\n\r\n canDeactivate(): Observable | boolean {\r\n if (this.uow.hasChanges.value) {\r\n let proceed = this.dialogHelper.confirm();\r\n\r\n proceed.subscribe(result => {\r\n if (result) {\r\n this.uow.rollback();\r\n }\r\n })\r\n\r\n return proceed;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n\r\n getIndustries() {\r\n return this.uow.getIndustries(true)\r\n .then(result => {\r\n this.industries = result;\r\n });\r\n }\r\n\r\n\r\n saveIndustryChanges(industry: model.Industry, message: string) {\r\n this.isBusy.set('admin:saveIndustry', true, message);\r\n this.uow.industries.saveChanges([industry])\r\n .then(() => {\r\n this.newIndustryName = null;\r\n })\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set('admin:saveIndustry', false);\r\n });\r\n }\r\n\r\n createIndustry() {\r\n if (this.newIndustryName) {\r\n const newIndustry = this.uow.industries.createEntity();\r\n newIndustry.name = this.newIndustryName.trim();\r\n this.industries.push(newIndustry);\r\n\r\n this.saveIndustryChanges(newIndustry, 'Saving industry');\r\n }\r\n }\r\n\r\n updateIndustry(industry: model.Industry) {\r\n this.saveIndustryChanges(industry, 'Updating industry');\r\n }\r\n\r\n destroyIndustry(industry: model.Industry) {\r\n if (industry) {\r\n if (confirm('Are you sure you want to remove \"' + industry.name + '\"?')) {\r\n this.uow.industries.cancelChanges(industry);\r\n industry.entityAspect.setDeleted();\r\n\r\n this.saveIndustryChanges(industry, 'Removing industry \"' + industry.name + '\"');\r\n }\r\n }\r\n }\r\n}\r\n","
\r\n

Admin

\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n Industries\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
IdName
\r\n \r\n \r\n No data to display…\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{industry.id}}\r\n \r\n Name is required.\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { UnitOfWorkService } from '../../services/unit-of-work/unit-of-work.service';\r\nimport { ApplicationInsightsService } from '../../services/application-insights/application-insights.service';\r\nimport { Observable } from 'rxjs';\r\nimport { DialogHelper } from '../../services/dialog-helper';\r\nimport { IsBusyService } from '../../services/is-busy/is-busy.service';\r\nimport * as model from '../../../model/model';\r\nimport { GlobalErrorHandler } from '../../services/global-error-handler';\r\n\r\n@Component({\r\n selector: 'app-inspection-team-roles',\r\n templateUrl: './inspection-team-roles.component.html',\r\n})\r\nexport class InspectionTeamRolesAdminComponent implements OnInit {\r\n inspectionTeamRoles: model.InspectionTeamRole[] = [];\r\n \r\n newRoleName: string = null;\r\n \r\n get activeInspectionTeamRoles() {\r\n return this.inspectionTeamRoles.filter(m => !m.entityAspect.entityState.isDeleted() && !m.entityAspect.entityState.isDetached()).sort((a, b) => { return a.name.localeCompare(b.name); });\r\n }\r\n\r\n\r\n constructor(\r\n\t\tprivate uow: UnitOfWorkService,\r\n private appInsights: ApplicationInsightsService,\r\n private errorHandler: GlobalErrorHandler,\r\n\t\tpublic isBusy: IsBusyService,\r\n\t\tpublic dialogHelper: DialogHelper\r\n\t) {\r\n appInsights.logPageView();\r\n }\r\n\r\n ngOnInit() {\r\n this.isBusy.set('admin:loadData', true, 'Loading data');\r\n Promise.all([\r\n this.getInspectionTeamRoles()\r\n ])\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set('admin:loadData', false);\r\n });\r\n }\r\n\r\n canDeactivate(): Observable | boolean {\r\n if (this.uow.hasChanges.value) {\r\n let proceed = this.dialogHelper.confirm();\r\n\r\n proceed.subscribe(result => {\r\n if (result) {\r\n this.uow.rollback();\r\n }\r\n })\r\n\r\n return proceed;\r\n }\r\n\r\n return true;\r\n }\r\n \r\n\r\n getInspectionTeamRoles() {\r\n return this.uow.getInspectionTeamRoles(true)\r\n .then(result => {\r\n this.inspectionTeamRoles = result;\r\n });\r\n }\r\n \r\n\r\n saveInspectionTeamRoleChanges(role: model.InspectionTeamRole, message: string) {\r\n this.isBusy.set('admin:saveRole', true, message);\r\n this.uow.inspectionTeamRoles.saveChanges([role])\r\n .then(() => {\r\n this.newRoleName = null;\r\n })\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set('admin:saveRole', false);\r\n });\r\n }\r\n\r\n createRole() {\r\n if (this.newRoleName) {\r\n let newRole = this.uow.inspectionTeamRoles.createEntity();\r\n newRole.name = this.newRoleName.trim();\r\n this.inspectionTeamRoles.push(newRole);\r\n\r\n this.saveInspectionTeamRoleChanges(newRole, 'Saving role');\r\n }\r\n }\r\n\r\n updateRole(role: model.InspectionTeamRole) {\r\n this.saveInspectionTeamRoleChanges(role, 'Updating role \"' + role.name + '\"');\r\n }\r\n\r\n destroyRole(role: model.InspectionTeamRole) {\r\n if (role) {\r\n if (confirm('Are you sure you want to remove \"' + role.name + '\"?')) {\r\n this.uow.inspectionTeamRoles.cancelChanges(role);\r\n role.entityAspect.setDeleted();\r\n\r\n this.saveInspectionTeamRoleChanges(role, 'Removing role \"' + role.name + '\"');\r\n }\r\n }\r\n }\r\n}\r\n","
\r\n

Admin

\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n Inspection Team Roles\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
IdName
\r\n \r\n \r\n No data to display…\r\n \r\n
\r\n \r\n \r\n \r\n {{role.id}}\r\n \r\n Name is required.\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { UnitOfWorkService } from '../../services/unit-of-work/unit-of-work.service';\r\nimport { ApplicationInsightsService } from '../../services/application-insights/application-insights.service';\r\nimport { Observable } from 'rxjs';\r\nimport { DialogHelper } from '../../services/dialog-helper';\r\nimport { IsBusyService } from '../../services/is-busy/is-busy.service';\r\nimport * as model from '../../../model/model';\r\nimport { GlobalErrorHandler } from '../../services/global-error-handler';\r\n\r\n@Component({\r\n selector: 'app-offices',\r\n templateUrl: './offices.component.html',\r\n})\r\nexport class OfficesAdminComponent implements OnInit {\r\n\r\n offices: model.Office[] = [];\r\n\r\n get activeOffices() {\r\n return this.offices.filter(m => !m.entityAspect.entityState.isDeleted() && !m.entityAspect.entityState.isDetached()).sort((a, b) => { return a.name.localeCompare(b.name); });\r\n }\r\n\r\n\r\n constructor(\r\n\t\tprivate uow: UnitOfWorkService,\r\n private appInsights: ApplicationInsightsService,\r\n private errorHandler: GlobalErrorHandler,\r\n\t\tpublic isBusy: IsBusyService,\r\n\t\tpublic dialogHelper: DialogHelper\r\n\t) {\r\n appInsights.logPageView();\r\n }\r\n\r\n ngOnInit() {\r\n this.isBusy.set('admin:loadData', true, 'Loading data');\r\n Promise.all([\r\n this.getOffices()\r\n ])\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set('admin:loadData', false);\r\n });\r\n }\r\n\r\n canDeactivate(): Observable | boolean {\r\n if (this.uow.hasChanges.value) {\r\n let proceed = this.dialogHelper.confirm();\r\n\r\n proceed.subscribe(result => {\r\n if (result) {\r\n this.uow.rollback();\r\n }\r\n })\r\n\r\n return proceed;\r\n }\r\n\r\n return true;\r\n }\r\n \r\n\r\n getOffices() {\r\n return this.uow.getOffices()\r\n .then(result => {\r\n this.offices = result;\r\n });\r\n }\r\n}\r\n","
\r\n

Admin

\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n Offices\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
IdRegionName
\r\n \r\n \r\n No data to display…\r\n \r\n
{{office.id}}{{office.regionCode}}{{office.name}}
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { UnitOfWorkService } from '../../services/unit-of-work/unit-of-work.service';\r\nimport { ApplicationInsightsService } from '../../services/application-insights/application-insights.service';\r\nimport { Observable } from 'rxjs';\r\nimport { DialogHelper } from '../../services/dialog-helper';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { IsBusyService } from '../../services/is-busy/is-busy.service';\r\nimport * as model from '../../../model/model';\r\nimport { GlobalErrorHandler } from '../../services/global-error-handler';\r\n\r\nconst defaultLimit: number = 100;\r\n\r\n@Component({\r\n selector: 'app-projects',\r\n templateUrl: './projects.component.html',\r\n})\r\nexport class ProjectsAdminComponent implements OnInit {\r\n\r\n projects: model.Project[] = [];\r\n page: number = 1;\r\n limit: number = defaultLimit;\r\n rowCount: number = 0;\r\n pageCount: number = 1;\r\n pageLimitOptions = [15, 25, 50, 100];\r\n\r\n idFilter: string = null;\r\n nameFilter: string = null;\r\n clientFilter: string = null;\r\n\r\n get activeProjects() {\r\n return this.projects.filter(m => !m.entityAspect.entityState.isDeleted() && !m.entityAspect.entityState.isDetached()).sort((a, b) => { return a.name.localeCompare(b.name); });\r\n }\r\n\r\n\r\n constructor(\r\n\t\tprivate uow: UnitOfWorkService,\r\n private appInsights: ApplicationInsightsService,\r\n private errorHandler: GlobalErrorHandler,\r\n\t\tprivate activeRoute: ActivatedRoute,\r\n\t\tpublic isBusy: IsBusyService,\r\n\t\tpublic dialogHelper: DialogHelper\r\n\t) {\r\n appInsights.logPageView();\r\n }\r\n\r\n ngOnInit() {\r\n this.activeRoute.params.subscribe(routeParams => {\r\n this.page = routeParams.page && !Number.isNaN(routeParams.page) ? parseInt(routeParams.page) : 1;\r\n this.limit = routeParams.limit && !Number.isNaN(routeParams.limit) ? parseInt(routeParams.limit) : defaultLimit;\r\n\r\n this.updateDataGrid();\r\n });\r\n }\r\n\r\n canDeactivate(): Observable | boolean {\r\n if (this.uow.hasChanges.value) {\r\n let proceed = this.dialogHelper.confirm();\r\n\r\n proceed.subscribe(result => {\r\n if (result) {\r\n this.uow.rollback();\r\n }\r\n })\r\n\r\n return proceed;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n clearFilters() {\r\n this.idFilter = null;\r\n this.nameFilter = null;\r\n this.clientFilter = null;\r\n\r\n this.updateDataGrid();\r\n }\r\n\r\n updateDataGrid(){\r\n this.isBusy.set('admin:loadData', true, 'Loading data');\r\n Promise.all([\r\n this.getProjectsCount(),\r\n this.getProjects()\r\n ])\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set('admin:loadData', false);\r\n });\r\n }\r\n\r\n getProjects() {\r\n return this.uow.getProjects(this.idFilter, this.nameFilter, null, this.clientFilter, this.page, this.limit)\r\n .then(result => {\r\n this.projects = result;\r\n });\r\n }\r\n\r\n getProjectsCount() {\r\n return this.uow.getProjectsCount(this.idFilter, this.nameFilter, null, this.clientFilter)\r\n .then(result => {\r\n this.rowCount = result[0];\r\n this.pageCount = Math.ceil(this.rowCount / this.limit);\r\n if (this.pageCount < 1) {\r\n this.pageCount = 1;\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n

Admin

\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n Projects\r\n

\r\n {{rowCount}} {{(rowCount == 1 ? 'record' : 'records')}} found\r\n

\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
IdNameClient
\r\n \r\n
\r\n \r\n \r\n No data to display…\r\n \r\n
{{project.id}}{{project.name}}{{project.client ? project.client.name : '---'}}
\r\n\r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { UnitOfWorkService } from '../../services/unit-of-work/unit-of-work.service';\r\nimport { ApplicationInsightsService } from '../../services/application-insights/application-insights.service';\r\nimport { Observable } from 'rxjs';\r\nimport { DialogHelper } from '../../services/dialog-helper';\r\nimport { IsBusyService } from '../../services/is-busy/is-busy.service';\r\nimport * as model from '../../../model/model';\r\nimport { GlobalErrorHandler } from '../../services/global-error-handler';\r\nimport { SharedDataService } from '../../services/shared-data/shared-data.service';\r\n\r\n@Component({\r\n selector: 'app-security-roles',\r\n templateUrl: './security-roles.component.html',\r\n})\r\nexport class SecurityRolesAdminComponent implements OnInit {\r\n\r\n employees: model.Employee[] = [];\r\n employeeSearchResults: model.Employee[] = [];\r\n\r\n selectedEmployeeId: string = '';\r\n\r\n showCaptains: boolean = false;\r\n showAdmins: boolean = false;\r\n\r\n constructor(\r\n private uow: UnitOfWorkService,\r\n private appInsights: ApplicationInsightsService,\r\n private errorHandler: GlobalErrorHandler,\r\n public isBusy: IsBusyService,\r\n public dialogHelper: DialogHelper,\r\n private sharedData: SharedDataService,\r\n private router: Router\r\n ) {\r\n appInsights.logPageView();\r\n }\r\n\r\n ngOnInit() {\r\n this.handleSecurity();\r\n }\r\n\r\n searchAllEmployees() {\r\n return this.uow.getEmployees(null, null, this.showAdmins, this.showCaptains)\r\n .then(result => {\r\n this.employeeSearchResults = result.filter(m => m.isActive);\r\n });\r\n }\r\n\r\n searchSpecificEmployee(searchTerm: string) {\r\n return this.uow.getEmployees(searchTerm)\r\n .then(result => {\r\n this.employees = result.filter(m => m.isActive);\r\n });\r\n }\r\n\r\n employeeChanged() {\r\n this.employeeSearchResults = this.employees.filter(x => x.id === this.selectedEmployeeId);\r\n }\r\n\r\n save() {\r\n this.isBusy.set('admin:saveSecurityRole', true, \"Saving Changes\");\r\n this.uow.employees.saveChanges()\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set('admin:saveSecurityRole', false);\r\n this.handleSecurity();\r\n });\r\n }\r\n\r\n handleSecurity() {\r\n if (!this.sharedData.me.value.isAdmin) {\r\n this.router.navigate(['']);\r\n }\r\n }\r\n}\r\n","
\r\n

Admin

\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n Security Roles\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
IdNameUserCaptainAdmin
\r\n \r\n \r\n No results…\r\n \r\n
\r\n {{employee.id}}\r\n \r\n {{employee.fullName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { UnitOfWorkService } from '../../services/unit-of-work/unit-of-work.service';\r\nimport { ApplicationInsightsService } from '../../services/application-insights/application-insights.service';\r\nimport { Observable } from 'rxjs';\r\nimport { DialogHelper } from '../../services/dialog-helper';\r\nimport { IsBusyService } from '../../services/is-busy/is-busy.service';\r\nimport * as model from '../../../model/model';\r\nimport { GlobalErrorHandler } from '../../services/global-error-handler';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-specialty-reviewer-types',\r\n templateUrl: './specialty-reviewer-types.component.html',\r\n})\r\nexport class SpecialtyReviewerTypesAdminComponent implements OnInit {\r\n\r\n reviewerTypes: model.SpecialtyReviewerType[] = [];\r\n newReviewerTypeName: string = null;\r\n newDescription: string = null;\r\n\r\n constructor(\r\n private uow: UnitOfWorkService,\r\n private appInsights: ApplicationInsightsService,\r\n private errorHandler: GlobalErrorHandler,\r\n public isBusy: IsBusyService,\r\n public dialogHelper: DialogHelper,\r\n private toastr: ToastrService\r\n ) {\r\n appInsights.logPageView();\r\n }\r\n\r\n ngOnInit() {\r\n this.isBusy.set('admin:loadData', true, 'Loading data');\r\n Promise.all([\r\n this.getSpecialtyReviewerTypes()\r\n ])\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set('admin:loadData', false);\r\n });\r\n }\r\n\r\n getSpecialtyReviewerTypes() {\r\n return this.uow.getSpecialtyReviewerTypes(true)\r\n .then(result => {\r\n this.reviewerTypes = result;\r\n });\r\n }\r\n\r\n createReviewerType() {\r\n if (this.newReviewerTypeName) {\r\n const newReviewerType = this.uow.specialtyReviewerTypes.createEntity();\r\n\r\n newReviewerType.name = this.newReviewerTypeName.trim();\r\n newReviewerType.description = this.newDescription.trim();\r\n\r\n this.reviewerTypes.push(newReviewerType);\r\n\r\n this.saveReviewerTypeChanges(newReviewerType, 'Saving Specialty Reviewer Type');\r\n }\r\n }\r\n\r\n updateReviewerType(reviewerType: model.SpecialtyReviewerType) {\r\n this.saveReviewerTypeChanges(reviewerType, 'Updating Specialty Reviewer Type \"' + reviewerType.name + '\"');\r\n }\r\n\r\n saveReviewerTypeChanges(reviewerType: model.SpecialtyReviewerType, message: string) {\r\n this.isBusy.set('admin:saveSpecialtyReviewerType', true, message);\r\n this.uow.specialtyReviewerTypes.saveChanges([reviewerType])\r\n .then(() => {\r\n this.newReviewerTypeName = null;\r\n this.newDescription = null;\r\n })\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set('admin:saveSpecialtyReviewerType', false);\r\n });\r\n }\r\n\r\n destroyReviewerType(reviewerType: model.SpecialtyReviewerType) {\r\n if (reviewerType) {\r\n\r\n this.isReviewerTypeAssigned(reviewerType)\r\n .then(result => {\r\n if (result[0]) {\r\n this.toastr.error('You can\\'t delete assigned Specialty Reviewer Types.');\r\n return;\r\n }\r\n\r\n if (confirm('Are you sure you want to remove \"' + reviewerType.name + '\"?')) {\r\n let index = this.reviewerTypes.indexOf(reviewerType);\r\n this.reviewerTypes.splice(index, 1);\r\n\r\n this.uow.specialtyReviewerTypes.cancelChanges(reviewerType);\r\n reviewerType.entityAspect.setDeleted();\r\n\r\n this.saveReviewerTypeChanges(reviewerType, 'Removing Specialty Reviewer Type \"' + reviewerType.name + '\"');\r\n\r\n\r\n }\r\n });\r\n\r\n \r\n }\r\n }\r\n\r\n isReviewerTypeAssigned(reviewerType: model.SpecialtyReviewerType) {\r\n return this.uow.isReviewerTypeAssigned(reviewerType.id);\r\n }\r\n}\r\n","
\r\n

Admin

\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n Specialty Reviewer Types\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
IdName
\r\n \r\n \r\n No data to display…\r\n \r\n
\r\n \r\n \r\n \r\n {{type.id}}\r\n \r\n Name is required.\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { UnitOfWorkService } from '../../services/unit-of-work/unit-of-work.service';\r\nimport { ApplicationInsightsService } from '../../services/application-insights/application-insights.service';\r\nimport { Observable } from 'rxjs';\r\nimport { DialogHelper } from '../../services/dialog-helper';\r\nimport { IsBusyService } from '../../services/is-busy/is-busy.service';\r\nimport * as model from '../../../model/model';\r\nimport { GlobalErrorHandler } from '../../services/global-error-handler';\r\n\r\n@Component({\r\n selector: 'app-standard-question-options',\r\n templateUrl: './standard-question-options.component.html',\r\n})\r\nexport class StandardQuestionOptionsAdminComponent implements OnInit {\r\n\r\n standardQuestionOptions: model.StandardQuestionOption[] = [];\r\n\r\n newOptionName: string = null;\r\n newOptionValue: string = null;\r\n\r\n answerSetOptions = [];\r\n\r\n noAnswerNeededName: string = 'No answer needed';\r\n\r\n get activeStandardOptions() {\r\n return this.standardQuestionOptions.filter(m => !m.entityAspect.entityState.isDeleted() && !m.entityAspect.entityState.isDetached()).sort((a, b) => { return a.name.localeCompare(b.value); });\r\n }\r\n\r\n constructor(\r\n\t\tprivate uow: UnitOfWorkService,\r\n private appInsights: ApplicationInsightsService,\r\n private errorHandler: GlobalErrorHandler,\r\n\t\tpublic isBusy: IsBusyService,\r\n\t\tpublic dialogHelper: DialogHelper\r\n\t) {\r\n appInsights.logPageView();\r\n }\r\n\r\n ngOnInit() {\r\n this.isBusy.set('admin:loadData', true, 'Loading data');\r\n Promise.all([\r\n this.getStandardQuestionOptions()\r\n ])\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set('admin:loadData', false);\r\n });\r\n }\r\n\r\n canDeactivate(): Observable | boolean {\r\n if (this.uow.hasChanges.value) {\r\n let proceed = this.dialogHelper.confirm();\r\n\r\n proceed.subscribe(result => {\r\n if (result) {\r\n this.uow.rollback();\r\n }\r\n })\r\n\r\n return proceed;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n\r\n getStandardQuestionOptions() {\r\n return this.uow.getStandardQuestionOptions()\r\n .then(result => {\r\n this.standardQuestionOptions = result.sort((a, b) => (a.id < b.id || a.name === this.noAnswerNeededName ? -1 : 1));\r\n\r\n this.standardQuestionOptions.forEach(o => {\r\n\r\n this.answerSetOptions[o.id] = [\r\n { Key: 'A', Value: o.answerSetOptions.filter(x => x.answerSetCode == 'A').length > 0 },\r\n { Key: 'B', Value: o.answerSetOptions.filter(x => x.answerSetCode == 'B').length > 0 },\r\n { Key: 'C', Value: o.answerSetOptions.filter(x => x.answerSetCode == 'C').length > 0 },\r\n { Key: 'D', Value: o.answerSetOptions.filter(x => x.answerSetCode == 'D').length > 0 },\r\n { Key: 'E', Value: o.answerSetOptions.filter(x => x.answerSetCode == 'E').length > 0 },\r\n { Key: 'F', Value: o.answerSetOptions.filter(x => x.answerSetCode == 'F').length > 0 }\r\n ];\r\n });\r\n });\r\n }\r\n\r\n updateAnswerSetOptions(questionOption: model.StandardQuestionOption) {\r\n\r\n this.answerSetOptions[questionOption.id].forEach(a => {\r\n\r\n let aso = questionOption.answerSetOptions.find(x => x.answerSetCode == a.Key);\r\n\r\n if (a.Value && !aso) {\r\n let createdAnswerSetOption = this.uow.answerSetOptions.createEntity();\r\n\r\n createdAnswerSetOption.answerSetCode = a.Key;\r\n createdAnswerSetOption.standardQuestionOptionId = questionOption.id;\r\n\r\n questionOption.answerSetOptions.push(createdAnswerSetOption);\r\n this.uow.answerSetOptions.saveChanges();\r\n } else if (!a.Value && !!aso) {\r\n \r\n let index = questionOption.answerSetOptions.indexOf(aso);\r\n questionOption.answerSetOptions.splice(index, 1);\r\n\r\n aso.entityAspect.setDeleted();\r\n this.uow.answerSetOptions.saveChanges([aso]);\r\n }\r\n });\r\n }\r\n\r\n\r\n saveQuestionOptionChanges(questionOption: model.StandardQuestionOption, message: string) {\r\n this.isBusy.set('admin:saveQuestionOption', true, message);\r\n this.uow.standardQuestionOptions.saveChanges([questionOption])\r\n .then(() => {\r\n this.newOptionName = null;\r\n this.newOptionValue = null;\r\n\r\n this.updateAnswerSetOptions(questionOption);\r\n })\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set('admin:saveQuestionOption', false);\r\n });\r\n }\r\n\r\n\r\n createQuestionOption() {\r\n if (this.newOptionName.trim() != '' && this.newOptionValue.trim() != '') {\r\n let newQuestionOption = this.uow.standardQuestionOptions.createEntity();\r\n newQuestionOption.name = this.newOptionName.trim();\r\n newQuestionOption.value = this.newOptionValue.trim();\r\n\r\n this.standardQuestionOptions.push(newQuestionOption);\r\n\r\n this.saveQuestionOptionChanges(newQuestionOption, 'Saving standard question option');\r\n }\r\n }\r\n\r\n updateQuestionOption(questionOption: model.StandardQuestionOption) {\r\n this.saveQuestionOptionChanges(questionOption, 'Updating standard question option');\r\n }\r\n\r\n destroyQuestionOption(questionOption: model.StandardQuestionOption) {\r\n if (questionOption) {\r\n if (confirm('Are you sure you want to remove \"' + questionOption.value + '\"?')) {\r\n this.uow.standardQuestionOptions.cancelChanges(questionOption);\r\n questionOption.entityAspect.setDeleted();\r\n\r\n this.saveQuestionOptionChanges(questionOption, 'Removing standard question option \"' + questionOption.value + '\"');\r\n }\r\n }\r\n }\r\n}\r\n","
\r\n

Admin

\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n Standard Question Options\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Associated Answer Set
IdNameDescriptionABCDEF
\r\n \r\n \r\n No data to display…\r\n \r\n
\r\n \r\n \r\n \r\n {{option.id}}\r\n \r\n Name is required.\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { UnitOfWorkService } from '../../services/unit-of-work/unit-of-work.service';\r\nimport { ApplicationInsightsService } from '../../services/application-insights/application-insights.service';\r\nimport { Observable } from 'rxjs';\r\nimport { DialogHelper } from '../../services/dialog-helper';\r\nimport { IsBusyService } from '../../services/is-busy/is-busy.service';\r\nimport * as model from '../../../model/model';\r\nimport { GlobalErrorHandler } from '../../services/global-error-handler';\r\n\r\n@Component({\r\n selector: 'app-tags',\r\n templateUrl: './tags.component.html',\r\n})\r\nexport class TagsAdminComponent implements OnInit {\r\n\r\n tags: model.Tag[] = [];\r\n\r\n newTagName: string = null;\r\n\r\n get activeTags() {\r\n return this.tags.filter(m => !m.entityAspect.entityState.isDeleted() && !m.entityAspect.entityState.isDetached()).sort((a, b) => { return a.name.localeCompare(b.name); });\r\n }\r\n\r\n constructor(\r\n\t\tprivate uow: UnitOfWorkService,\r\n private appInsights: ApplicationInsightsService,\r\n private errorHandler: GlobalErrorHandler,\r\n\t\tpublic isBusy: IsBusyService,\r\n\t\tpublic dialogHelper: DialogHelper\r\n\t) {\r\n appInsights.logPageView();\r\n }\r\n\r\n ngOnInit() {\r\n this.isBusy.set('admin:loadData', true, 'Loading data');\r\n Promise.all([\r\n this.getTags()\r\n ])\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set('admin:loadData', false);\r\n });\r\n }\r\n\r\n canDeactivate(): Observable | boolean {\r\n if (this.uow.hasChanges.value) {\r\n let proceed = this.dialogHelper.confirm();\r\n\r\n proceed.subscribe(result => {\r\n if (result) {\r\n this.uow.rollback();\r\n }\r\n })\r\n\r\n return proceed;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n\r\n getTags() {\r\n return this.uow.getTags()\r\n .then(result => {\r\n this.tags = result;\r\n });\r\n }\r\n\r\n\r\n saveTagChanges(tag: model.Tag, message: string) {\r\n this.isBusy.set('admin:saveTag', true, message);\r\n this.uow.tags.saveChanges([tag])\r\n .then(() => {\r\n this.newTagName = null;\r\n })\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set('admin:saveTag', false);\r\n });\r\n }\r\n\r\n createTag() {\r\n if (this.newTagName) {\r\n const newTag = this.uow.tags.createEntity();\r\n newTag.name = this.newTagName.trim();\r\n this.tags.push(newTag);\r\n\r\n this.saveTagChanges(newTag, 'Saving tag');\r\n }\r\n }\r\n\r\n updateTag(tag: model.Tag) {\r\n this.saveTagChanges(tag, 'Updating tag \"' + tag.name + '\"');\r\n }\r\n\r\n destroyTag(tag: model.Tag) {\r\n if (tag) {\r\n if (confirm('Are you sure you want to remove \"' + tag.name + '\"?')) {\r\n this.uow.tags.cancelChanges(tag);\r\n tag.entityAspect.setDeleted();\r\n\r\n this.saveTagChanges(tag, 'Removing tag \"' + tag.name + '\"');\r\n }\r\n }\r\n }\r\n}\r\n","
\r\n

Admin

\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n Tags\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
IdName
\r\n \r\n \r\n No data to display…\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{tag.id}}\r\n \r\n Name is required.\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { UnitOfWorkService } from '../../../services/unit-of-work/unit-of-work.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { ApplicationInsightsService } from '../../../services/application-insights/application-insights.service';\r\nimport { Observable } from 'rxjs';\r\nimport { DialogHelper } from '../../../services/dialog-helper';\r\nimport { NgbModal, ModalDismissReasons } from '@ng-bootstrap/ng-bootstrap';\r\nimport { IsBusyService } from '../../../services/is-busy/is-busy.service';\r\nimport * as model from '../../../../model/model';\r\nimport * as modelDto from '../../../../model/modelDto';\r\nimport * as modelEnum from '../../../../model/modelEnums';\r\nimport { GlobalErrorHandler } from '../../../services/global-error-handler';\r\n\r\nconst loadingKey: string = 'engagements:loadData';\r\nconst saveKey: string = 'engagements:saveInspectionProfile';\r\nconst defaultLimit: number = 15;\r\n\r\n@Component({\r\n selector: 'app-engagement-admin',\r\n templateUrl: './engagements.component.html',\r\n})\r\nexport class EngagementsComponent implements OnInit {\r\n @ViewChild('confirmDeleteModal', { static: true }) confirmDeleteModal: TemplateRef; // Note: TemplateRef\r\n @ViewChild('confirmCleanupStepOneModal', { static: true }) confirmCleanupStepOneModal: TemplateRef; // Note: TemplateRef\r\n @ViewChild('confirmCleanupStepTwoModal', { static: true }) confirmCleanupStepTwoModal: TemplateRef; // Note: TemplateRef\r\n\r\n isLoading: boolean = false;\r\n isLockedForCleanup: boolean = false;\r\n\r\n //engagements: model.Engagement[] = [];\r\n engagementDtos: modelDto.AllEngagementsSummaryDto[] = [];\r\n page: number = 1;\r\n limit: number = defaultLimit;\r\n pageCount: number = 1;\r\n pageLimitOptions = [15, 25, 50, 100];\r\n\r\n filters: modelDto.GridFilter[] = [];\r\n codeFilter: string = null;\r\n nameFilter: string = null;\r\n officeFilter: string = null;\r\n regionFilter: string = null;\r\n yearFilter: string = null;\r\n weekFilter: string = null;\r\n businessLineFilter: string = null;\r\n industryFilter: string = null;\r\n inspectorFilter: string = null;\r\n inspectionYears: number[] = [];\r\n inspectionYear: number = new Date().getFullYear();\r\n\r\n engagementStatusesLabel: string = 'Filter by...';\r\n engagementStatuses: modelEnum.EngagementStatus[] = [];\r\n\r\n confirmMessage: string = null;\r\n\r\n constructor(private uow: UnitOfWorkService,\r\n private appInsights: ApplicationInsightsService,\r\n private errorHandler: GlobalErrorHandler,\r\n private activeRoute: ActivatedRoute,\r\n public router: Router,\r\n\t\tpublic isBusy: IsBusyService,\r\n public dialogHelper: DialogHelper,\r\n private modalService: NgbModal) {\r\n appInsights.logPageView();\r\n }\r\n\r\n ngOnInit() {\r\n this.activeRoute.queryParams.subscribe(routeParams => {\r\n this.page = routeParams.page && !Number.isNaN(routeParams.page) ? parseInt(routeParams.page) : 1;\r\n this.limit = routeParams.limit && !Number.isNaN(routeParams.limit) ? parseInt(routeParams.limit) : defaultLimit;\r\n this.getInspectionYears();\r\n this.updateFilters('year', this.inspectionYear);\r\n });\r\n }\r\n\r\n canDeactivate(): Observable | boolean {\r\n if (this.uow.hasChanges.value) {\r\n const proceed = this.dialogHelper.confirm();\r\n\r\n proceed.subscribe(result => {\r\n if (result) {\r\n this.uow.rollback();\r\n }\r\n })\r\n\r\n return proceed;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n\r\n get activeEngagementsDto() {\r\n return this.engagementDtos\r\n .sort((a, b) => { return a.engagement.client.name.localeCompare(b.engagement.client.name); });\r\n }\r\n\r\n get statuses() {\r\n return this.uow.engagementStatuses;\r\n }\r\n\r\n getInspectionYears() {\r\n return this.uow.getInspectionYears()\r\n .then(result => {\r\n this.inspectionYears = result;\r\n });\r\n }\r\n\r\n public yearDropdownChange(event) {\r\n if (event.target.value == 0) {\r\n this.removeFilter('year');\r\n this.updateDataGrid();\r\n return;\r\n }\r\n this.updateFilters('year', event.target.value); \r\n }\r\n\r\n\r\n removeFilter(key: string) {\r\n const i = this.filters.findIndex(m => m.key == key);\r\n if (i >= 0) {\r\n this.filters.splice(i, 1);\r\n }\r\n }\r\n\r\n updateStatusFilters(e: any) {\r\n if (e == false) {\r\n if (this.statuses.some(m => m.isSelected)) {\r\n this.engagementStatusesLabel = this.statuses.filter(m => m.isSelected).map(m => m.title).join(', ');\r\n this.updateFilters('status', this.statuses.filter(m => m.isSelected).map(m => m.status).join(','));\r\n }\r\n else {\r\n this.engagementStatusesLabel = 'Filter by...';\r\n this.updateFilters('status', null);\r\n }\r\n }\r\n }\r\n\r\n clearStatusFilters() {\r\n this.statuses.filter(m => m.isSelected = false);\r\n }\r\n\r\n updateFilters(key: string, value: any) {\r\n if (this.filters.some(m => m.key == key)) {\r\n const filter = this.filters.find(m => m.key == key);\r\n filter.value = value;\r\n }\r\n else {\r\n this.filters.push({ key: key, value: value } as modelDto.GridFilter)\r\n }\r\n\r\n this.updateDataGrid();\r\n }\r\n\r\n clearFilters() {\r\n this.filters = [];\r\n this.codeFilter = null;\r\n this.nameFilter = null;\r\n this.officeFilter = null;\r\n this.regionFilter = null;\r\n this.yearFilter = null;\r\n this.weekFilter = null;\r\n this.engagementStatusesLabel = null;\r\n this.businessLineFilter = null;\r\n this.industryFilter = null;\r\n this.inspectorFilter = null;\r\n this.inspectionYear = 0;\r\n\r\n this.updateDataGrid();\r\n }\r\n\r\n updateDataGrid() {\r\n this.isBusy.set(loadingKey, true, 'Loading data');\r\n Promise\r\n .all([\r\n this.getPageCount(this.limit),\r\n this.getEngagements(this.page, this.limit)])\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set(loadingKey, false);\r\n });\r\n }\r\n\r\n getStatusName(status: modelEnum.EngagementStatus) {\r\n return this.uow.getEngagementStatusName(status);\r\n }\r\n\r\n getRatingName(rating: modelEnum.EngagementRating) {\r\n return this.uow.getEngagementRatingName(rating);\r\n }\r\n\r\n getEngagements(page: number = 1, limit: number = defaultLimit) {\r\n return this.uow.getAllEngagementsSummary(page, limit, JSON.stringify(this.filters))\r\n .then(result => {\r\n this.engagementDtos = result;\r\n });\r\n }\r\n\r\n getPageCount(limit: number = defaultLimit) {\r\n return this.uow.getEngagementsPageCount(limit, JSON.stringify(this.filters))\r\n .then(result => {\r\n this.pageCount = result[0];\r\n });\r\n }\r\n\r\n canRemoveEngagement(engagement: model.Engagement): boolean {\r\n let canRemove = true;\r\n\r\n if (engagement) {\r\n canRemove = engagement.status != modelEnum.EngagementStatus.archived;\r\n }\r\n\r\n return canRemove;\r\n }\r\n\r\n saveEngagementChanges(engagement: model.Engagement, message: string) {\r\n this.isBusy.set(saveKey, true, message);\r\n this.uow.engagements.saveChanges([engagement])\r\n .then(() => {\r\n this.updateDataGrid();\r\n })\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set(saveKey, false);\r\n });\r\n }\r\n\r\n destroyEngagement(engagement: model.Engagement) {\r\n if (engagement) {\r\n this.showConfirmDeleteModal(engagement);\r\n }\r\n }\r\n\r\n showConfirmDeleteModal(engagement: model.Engagement) {\r\n this.confirmMessage = 'Are you sure you want to remove \"' + engagement.code + ' ' + engagement.client.name + '\"?';\r\n\r\n this.modalService.open(this.confirmDeleteModal, { ariaLabelledBy: 'modal-basic-title' })\r\n .result\r\n .then((result) => {\r\n if (result == 'confirm') {\r\n if (engagement.status > modelEnum.EngagementStatus.draft) {\r\n this.confirmMessage = 'You are about to delete an active inspection. By confirming below, you acknowledge that there ' +\r\n 'is no longer a need for the assigned inspection team to complete this inspection ' +\r\n '(e.g. the inspection was created as a test, or the inspection was setup erroneously and ' +\r\n 'a new inspection has been created in its place).';\r\n\r\n this.modalService.open(this.confirmDeleteModal, { ariaLabelledBy: 'modal-basic-title' })\r\n .result\r\n .then((result) => {\r\n if (result == 'confirm') {\r\n const i = this.engagementDtos.findIndex(e => e.engagement.id == engagement.id);\r\n this.engagementDtos.splice(i, 1);\r\n engagement.entityAspect.setDeleted();\r\n\r\n this.saveEngagementChanges(engagement, 'Removing engagement \"' + engagement.code + '\"');\r\n }\r\n });\r\n }\r\n else {\r\n const i = this.engagementDtos.findIndex(e => e.engagement.id == engagement.id);\r\n this.engagementDtos.splice(i, 1);\r\n engagement.entityAspect.setDeleted();\r\n\r\n this.saveEngagementChanges(engagement, 'Removing engagement \"' + engagement.code + '\"');\r\n }\r\n }\r\n }, (reason) => {\r\n const closeResult = `Dismissed ${this.getDismissReason(reason)}`;\r\n\r\n console.log('Reason: ' + closeResult);\r\n });\r\n }\r\n\r\n\r\n runCleanup() {\r\n this.modalService.open(this.confirmCleanupStepOneModal, { ariaLabelledBy: 'modal-basic-title' })\r\n .result\r\n .then((result) => {\r\n if (result == 'confirm') {\r\n\r\n this.modalService.open(this.confirmCleanupStepTwoModal, { ariaLabelledBy: 'modal-basic-title' })\r\n .result\r\n .then((result) => {\r\n if (result == 'confirm') {\r\n this.isLockedForCleanup = true;\r\n this.engagementDtos = [];\r\n\r\n this.uow.cleanupEngagements()\r\n .then(() => {\r\n this.uow.clear();\r\n this.updateDataGrid();\r\n })\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isLockedForCleanup = false;\r\n });\r\n }\r\n });\r\n }\r\n }, (reason) => {\r\n const closeResult = `Dismissed ${this.getDismissReason(reason)}`;\r\n\r\n console.log('Reason: ' + closeResult);\r\n });\r\n }\r\n\r\n\r\n private getDismissReason(reason: any): string {\r\n if (reason == ModalDismissReasons.ESC) {\r\n return 'by pressing ESC';\r\n } else if (reason == ModalDismissReasons.BACKDROP_CLICK) {\r\n return 'by clicking on a backdrop';\r\n } else {\r\n return `with: ${reason}`;\r\n }\r\n }\r\n\r\n calculatePercentComplete(engagementDto: modelDto.AllEngagementsSummaryDto): number {\r\n if (engagementDto.totalSections > 0) {\r\n return engagementDto.completedSections / engagementDto.totalSections;\r\n }\r\n return 0.0;\r\n }\r\n}\r\n","
\r\n

Inspection Code Setup

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Create\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
CodeNameTeam CaptainOfficeRegionYearStatus
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n No data to display…\r\n \r\n \r\n Please wait while we load your inspections…\r\n \r\n \r\n \r\n Please wait while we process your inspections — table will reload when process is complete.\r\n \r\n
\r\n
\r\n \r\n \r\n Edit\r\n \r\n \r\n
\r\n
{{engagementDto.engagement.code}}{{engagementDto.engagement.client.name}}{{engagementDto.engagement.leadInspector()}}{{engagementDto.engagement.officeId}} - {{engagementDto.engagement.office.name}}{{engagementDto.engagement.regionCode}}{{engagementDto.engagement.inspectionYear}}{{getStatusName(engagementDto.engagement.status)}}
\r\n
\r\n\r\n \r\n\r\n\r\n
\r\n
\r\n \r\n Please Confirm\r\n
\r\n \r\n
\r\n
\r\n

{{ confirmMessage }}

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n Please Confirm\r\n
\r\n \r\n
\r\n
\r\n

\r\n Use this tool to correct any inspections which may appear to be out of sync with\r\n their source engagement review questionnaires.\r\n

\r\n
Warning:
\r\n

\r\n Using this option will potentially remove sections from active inspections, if they are deemed to be\r\n duplicates or deleted from the source questionnaire.\r\n

\r\n

Continue? You will be asked to confirm once more before cleanup proceeds.

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n Confirm Inspection Cleanup\r\n
\r\n \r\n
\r\n
\r\n

\r\n Proceed with inspection cleanup?\r\n

\r\n

\r\n Use the Confirm option below to continue, or use the Cancel option\r\n to abort this action.\r\n

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n","
\r\n

Inspection Code Setup

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Please note: * indicates a required field\r\n
\r\n
\r\n
\r\n Metadata\r\n
\r\n
\r\n \r\n
\r\n

{{getStatusName(engagement.status)}}

\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n Invalid\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n Engagement Code is invalid.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Loaded {{clients.length}} of {{clientsCount}}\r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n Client is invalid.\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Loaded {{projects.length}} of {{projectsCount}}\r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {{engProj?.project.label}}
\r\n Project is invalid.\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Loaded {{aptCaws.length}} of {{aptCawsCount}}\r\n \r\n \r\n {{item.label}}\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {{engApt.aptCaw.label}}
\r\n APT CAW is invalid.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n Client Fiscal Year End is invalid.\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Total Engagement Hours is invalid.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Office is invalid.\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Region is invalid.\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Business Line is invalid.\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {{engInd.industryName || engInd.industry.name}}
\r\n Industry is invalid.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Market Cap is invalid.\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n Start of Inspection Fieldwork is invalid.\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n End of Inspection Fieldwork is invalid.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Engagement Review Questionnaire\r\n
\r\n \r\n
\r\n 0 && engagement.status > 0\"\r\n required\r\n (change)=\"syncMetadataFromProfile()\">\r\n \r\n {{item.name}}\r\n \r\n \r\n \r\n \r\n Engagement Review Questionnaire is invalid.\r\n \r\n
    \r\n
  • \r\n \r\n The Engagement Review Questionnaire defines the sections and questions associated with this engagement.\r\n
  • \r\n
  • 0\">\r\n \r\n Engagement Review Questionnaire cannot be changed once engagement is active.\r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  1. \r\n \r\n
  2. \r\n
\r\n
\r\n
\r\n
0\">\r\n
\r\n
    \r\n
  1. \r\n \r\n
  2. \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Inspection Team\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
NameSpecialty ReviewerSections Assigned
\r\n \r\n \r\n Engagement contains no inspection team members…\r\n \r\n
\r\n \r\n TC\r\n \r\n {{teamMember.employee?.fullName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {{section.profileSection.name}}
\r\n
0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {{section.engagementSection.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Engagement Team\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
NameHoursRole *
\r\n \r\n \r\n Engagement contains no engagement team members…\r\n \r\n
\r\n \r\n {{teamMember.employee?.fullName}}\r\n \r\n \r\n \r\n Role is invalid.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Comments\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Injector } from '@angular/core';\r\nimport { UnitOfWorkService } from '../../../services/unit-of-work/unit-of-work.service';\r\nimport Utilities from '../../../services/utilities';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { ApplicationInsightsService } from '../../../services/application-insights/application-insights.service';\r\nimport { Observable } from 'rxjs';\r\nimport { DialogHelper } from '../../../services/dialog-helper';\r\nimport { NgbDateAdapter, NgbDateNativeAdapter } from '@ng-bootstrap/ng-bootstrap';\r\nimport { IsBusyService } from '../../../services/is-busy/is-busy.service';\r\nimport * as moment from 'moment';\r\nimport * as model from '../../../../model/model';\r\nimport * as modelEnum from '../../../../model/modelEnums';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ConfirmationDialogComponent } from '../../shared/confirmation-dialog/confirmation-dialog.component';\r\nimport { GlobalErrorHandler } from '../../../services/global-error-handler';\r\nimport { SharedDataService } from '../../../services/shared-data/shared-data.service';\r\nimport { MsalService } from '@azure/msal-angular';\r\nimport { Profile } from '../../../../typings';\r\n\r\nconst LOADING_KEY: string = 'engagement-editor:loadData';\r\nconst SAVING_KEY: string = 'engagement-editor:saveChangesStageOne';\r\nconst CLONING_KEY: string = 'engagement-editor:saveChangesStageTwo';\r\n\r\nconst MIN_SEARCH_LENGTH: number = 3;\r\nconst BUFFER_SIZE: number = 50;\r\nconst NUMBER_OF_ITEMS_FROM_END_BEFORE_FETCHING_MORE: number = 10;\r\nconst SEARCH_TIMEOUT: number = 300;\r\n\r\n@Component({\r\n selector: 'app-engagement-editor',\r\n templateUrl: './engagement-editor.component.html',\r\n providers: [{ provide: NgbDateAdapter, useClass: NgbDateNativeAdapter }]\r\n})\r\nexport class EngagementAdminComponent implements OnInit {\r\n\r\n clientsLoading: boolean = false;\r\n clientIdLoading: boolean = false;\r\n clientName: string = null;\r\n clientsCount: number = 0;\r\n clientsPage: number = 0;\r\n clientSearchTimer = null;\r\n clients: model.Client[] = [];\r\n clientIds: model.Client[] = [];\r\n\r\n projectsLoading: boolean = false;\r\n projectName: string = null;\r\n projectsCount: number = 0;\r\n projectsPage: number = 0;\r\n projectSearchTimer = null;\r\n projects: model.Project[] = [];\r\n availableProjects: model.Project[] = [];\r\n\r\n aptCawsLoading: boolean = false;\r\n aptCawName: string = null;\r\n aptCawsCount: number = 0;\r\n aptCawsPage: number = 0;\r\n aptCawSearchTimer = null;\r\n aptCaws: model.AptCaw[] = [];\r\n availableAptCaws: model.AptCaw[] = [];\r\n\r\n engagementStatuses: { status: modelEnum.EngagementStatus, title: string }[] = [];\r\n\r\n industries: model.Industry[] = [];\r\n availableIndustries: model.Industry[] = [];\r\n\r\n businessLines: model.BusinessLine[] = [];\r\n offices: model.Office[] = [];\r\n regions: string[] = [];\r\n tags: model.Tag[] = [];\r\n availableTags: model.Tag[] = [];\r\n inspectionProfiles: model.InspectionProfile[] = [];\r\n employees: model.Employee[] = [];\r\n availableInspectionEmployees: model.Employee[] = [];\r\n availableEngagementEmployees: model.Employee[] = [];\r\n oldInspectionEmployeeId: string = null;\r\n teamMemberRoles: model.InspectionTeamRole[] = [];\r\n specialtyReviewerTypes: model.SpecialtyReviewerType[] = [];\r\n selectedEngagementSections: model.EngagementSection[] = [];\r\n highLevelEngagementSections: model.EngagementSection[] = [];\r\n highLevelProfileSections: model.ProfileSection[] = [];\r\n selectedProfileSections: model.ProfileSection[] = [];\r\n\r\n\r\n id: string = null;\r\n engagement: model.Engagement = {} as model.Engagement;\r\n isLoading: boolean = true;\r\n cloneProfileNow: boolean = false;\r\n disableBusinessLine: boolean = false;\r\n\r\n showQuestionViewer: boolean = false;\r\n previewEngagement: boolean = false;\r\n isPublishing = false; \r\n\r\n selectedProject: model.Project = null;\r\n selectedAptCaw: model.AptCaw = null;\r\n selectedIndustry: model.Industry = null;\r\n selectedTag: model.Tag = null;\r\n selectedInspectionTeamId: string = null;\r\n selectedEngagementTeamId: string = null;\r\n\r\n inspectionTeamMemberProfileSections: model.InspectionTeamMemberProfileSection[] = [];\r\n inspectionTeamMemberEngagementSections: model.InspectionTeamMemberEngagementSection[] = [];\r\n\r\n constructor(\r\n private activeRoute: ActivatedRoute,\r\n private uow: UnitOfWorkService,\r\n private appInsights: ApplicationInsightsService,\r\n private errorHandler: GlobalErrorHandler,\r\n public router: Router,\r\n public isBusy: IsBusyService,\r\n public dialogHelper: DialogHelper,\r\n private injector: Injector,\r\n private dialog: MatDialog,\r\n private sharedData: SharedDataService,\r\n private msalService: MsalService\r\n ) {\r\n appInsights.logPageView();\r\n this.dialog = this.injector.get(MatDialog);\r\n this.engagementStatuses = this.uow.engagementStatuses;\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.activeRoute.queryParams.subscribe(routeParams => {\r\n this.isLoading = true;\r\n this.isBusy.set(LOADING_KEY, true, 'Loading engagement data');\r\n Promise\r\n .all([\r\n this.getInspectionProfiles(),\r\n this.getBusinessLines(),\r\n this.getOffices(),\r\n this.getTags(),\r\n this.getIndustries(),\r\n this.getInspectionTeamRoles(),\r\n this.getSpecialtyReviewerTypes(),\r\n ])\r\n .then(() => {\r\n this.isBusy.set(LOADING_KEY, false);\r\n this.getEngagement(routeParams.id);\r\n this.getAvailableIndustries();\r\n })\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isLoading = false;\r\n });\r\n });\r\n }\r\n\r\n canDeactivate(): Observable | boolean {\r\n if (this.uow.hasChanges.value) {\r\n const proceed = this.dialogHelper.confirm();\r\n\r\n proceed.subscribe(result => {\r\n if (result) {\r\n this.uow.rollback();\r\n }\r\n })\r\n\r\n return proceed;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n\r\n get rootProfileSections() {\r\n return this.engagement && this.engagement.inspectionProfile && this.engagement.inspectionProfile.profileSections ? this.engagement.inspectionProfile.profileSections.filter(m => !m.parentSectionId).sort(Utilities.sortByDisplayOrder) : [];\r\n }\r\n\r\n get rootEngagementSections() {\r\n return this.engagement && this.engagement.engagementSections ? this.engagement.engagementSections.filter(m => !m.parentSectionId).sort(Utilities.sortByDisplayOrder) : [];\r\n }\r\n\r\n\r\n get assignedInspectionTeamMembers() {\r\n return this.engagement && this.engagement.inspectionTeamMembers ? this.engagement.inspectionTeamMembers.filter(m => !m.isDeleted) : [];\r\n }\r\n\r\n get assignedEngagementTeamMembers() {\r\n return this.engagement && this.engagement.engagementTeamMembers ? this.engagement.engagementTeamMembers.filter(m => !m.isDeleted) : [];\r\n }\r\n\r\n get availableOffices() {\r\n return this.engagement && this.engagement.regionCode ? this.offices.filter(m => m.isActive && m.regionCode != 'NATL') : this.offices;\r\n }\r\n\r\n getHighLevelInspectionTeamMemberEngagementSections(inspectionTeamMemberId) {\r\n return this.inspectionTeamMemberEngagementSections\r\n .filter(es => es.inspectionTeamMemberId == inspectionTeamMemberId && (!es.engagementSection.parentSectionId || (es.engagementSection.parentSection && !es.engagementSection.parentSection.parentSectionId)))\r\n .sort((a, b) => { return a.engagementSection.name.localeCompare(b.engagementSection.name); });\r\n }\r\n\r\n getInspectionTeamMemberProfileSections(inspectionTeamMemberId) {\r\n return this.inspectionTeamMemberProfileSections\r\n .filter(es => es.inspectionTeamMemberId == inspectionTeamMemberId)\r\n .sort((a, b) => { return a.profileSection.name.localeCompare(b.profileSection.name); });\r\n }\r\n\r\n availableSpecialtyReviewerTypes(reviewerTypeId) {\r\n return this.specialtyReviewerTypes.filter(type => (reviewerTypeId == type.id || (!this.assignedInspectionTeamMembers.some(tm => tm.specialtyReviewerTypeId == type.id))));\r\n }\r\n\r\n get hasChanges() {\r\n const a = this.uow.engagements.hasChanges.value;\r\n const b = this.uow.engagementAptCaws.hasChanges.value;\r\n const c = this.uow.engagementIndustries.hasChanges.value;\r\n const d = this.uow.engagementProjects.hasChanges.value;\r\n const f = this.uow.engagementTeamMembers.hasChanges.value;\r\n\r\n return a || b || c || d || f;\r\n }\r\n\r\n undoChanges() {\r\n if (this.hasChanges) {\r\n this.uow.rollback();\r\n }\r\n }\r\n\r\n setAvailableProjects() {\r\n if (this.engagement && this.engagement.client && this.engagement.engagementProjects && this.projects) {\r\n this.availableProjects = this.projects.filter(p => !this.engagement.engagementProjects.find(ep => ep.projectId == p.id));\r\n } else {\r\n this.availableProjects = this.projects;\r\n }\r\n }\r\n\r\n setAvailableAptCaws() {\r\n if (this.engagement && this.engagement.client && this.engagement.engagementAptCaws && this.aptCaws) {\r\n this.availableAptCaws = this.aptCaws.filter(a => !this.engagement.engagementAptCaws.find(ea => ea.aptCawId == a.id));\r\n } else {\r\n this.availableAptCaws = this.aptCaws;\r\n }\r\n }\r\n\r\n getAvailableIndustries() {\r\n if (this.engagement && this.engagement.engagementIndustries) {\r\n this.availableIndustries = this.industries.filter(i => !this.engagement.engagementIndustries.find(ei => ei.industryId == i.id));\r\n } else {\r\n this.availableIndustries = this.industries;\r\n }\r\n }\r\n\r\n getBusinessLines() {\r\n return this.uow.getBusinessLines()\r\n .then(result => {\r\n this.businessLines = result;\r\n });\r\n }\r\n\r\n getIndustries() {\r\n return this.uow.getActiveIndustries()\r\n .then(result => {\r\n this.industries = result;\r\n });\r\n }\r\n\r\n getInspectionTeamRoles() {\r\n return this.uow.getInspectionTeamRoles()\r\n .then(result => {\r\n this.teamMemberRoles = result;\r\n });\r\n }\r\n\r\n getOffices() {\r\n return this.uow.getOffices()\r\n .then(result => {\r\n this.offices = result;\r\n this.getRegions();\r\n });\r\n }\r\n\r\n getRegions() {\r\n this.regions = this.offices.map(o => o.regionCode)\r\n .filter(Utilities.onlyUnique)\r\n .sort(Utilities.sortByValue);\r\n }\r\n\r\n getTags() {\r\n return this.uow.getActiveTags()\r\n .then(result => {\r\n this.tags = result;\r\n });\r\n }\r\n\r\n getSpecialtyReviewerTypes() {\r\n return this.uow.getSpecialtyReviewerTypes()\r\n .then(result => {\r\n this.specialtyReviewerTypes = result;\r\n });\r\n }\r\n\r\n searchEmployees(searchTerm: string) {\r\n return this.uow.getEmployees(searchTerm)\r\n .then(result => {\r\n this.employees = result.filter(m => m.isActive)\r\n if (this.engagement && this.engagement.inspectionTeamMembers) {\r\n this.availableInspectionEmployees = this.employees.filter(m => !m.isDeleted && m.id !== this.engagement.inspectionLeadId && !this.engagement.inspectionTeamMembers.some(n => n.employeeId == m.id));\r\n }\r\n else {\r\n this.availableInspectionEmployees = this.employees.filter(m => !m.isDeleted && m.id !== this.engagement.inspectionLeadId);\r\n }\r\n\r\n if (this.engagement && this.engagement.engagementTeamMembers) {\r\n this.availableEngagementEmployees = this.employees.filter(m => !m.isDeleted && !this.engagement.engagementTeamMembers.some(n => n.employeeId == m.id));\r\n }\r\n else {\r\n this.availableEngagementEmployees = this.employees.filter(m => !m.isDeleted);\r\n }\r\n });\r\n }\r\n\r\n employeeSearch(e) {\r\n e.term = e.term.toLocaleLowerCase();\r\n\r\n return e.item.name.toLocaleLowerCase().indexOf(e.term) > -1 || e.item.id.toLocaleLowerCase() == e.term;\r\n }\r\n\r\n updateClientFields() {\r\n if (this.engagement) {\r\n if (this.engagement.clientId) {\r\n if (this.engagement.engagementProjects) {\r\n this.engagement.engagementProjects.forEach(p => p.entityAspect.setDeleted());\r\n }\r\n\r\n if (this.engagement.engagementAptCaws) {\r\n this.engagement.engagementAptCaws.forEach(a => a.entityAspect.setDeleted());\r\n }\r\n }\r\n\r\n this.getProjects();\r\n this.getAptCaws();\r\n }\r\n }\r\n\r\n getClients() {\r\n return this.uow.getClientsCount(this.engagement.clientId).then(count => {\r\n this.clientsCount = count[0];\r\n\r\n return this.uow.getClients(this.engagement.clientId, null, this.clientsPage, BUFFER_SIZE)\r\n .then(result => {\r\n this.clients = result;\r\n });\r\n });\r\n }\r\n\r\n onClientsScrollToEnd() {\r\n this.fetchMoreClients();\r\n }\r\n\r\n onClientsScroll({ end }) {\r\n if (this.clientsLoading || this.clientsCount <= this.clients.length) {\r\n return;\r\n }\r\n\r\n if (end + NUMBER_OF_ITEMS_FROM_END_BEFORE_FETCHING_MORE >= this.clients.length) {\r\n this.fetchMoreClients();\r\n }\r\n }\r\n\r\n onClientsSearch(e) {\r\n //if (!e.items || e.items.length == 0) {\r\n this.clientName = e.term;\r\n this.searchClients();\r\n //}\r\n }\r\n\r\n searchClients(): void {\r\n if (this.clientSearchTimer) clearTimeout(this.clientSearchTimer);\r\n\r\n this.clientSearchTimer = setTimeout(() => {\r\n if (this.clientName && this.clientName.length >= MIN_SEARCH_LENGTH) {\r\n this.clientsPage = 0;\r\n\r\n this.clientsLoading = true;\r\n\r\n return this.uow.getClientsCount(null, this.clientName).then(count => {\r\n this.clientsCount = count[0];\r\n\r\n return this.uow.getClients(null, this.clientName, this.clientsPage, BUFFER_SIZE)\r\n .then(result => {\r\n this.clientsLoading = false;\r\n this.clients = result;\r\n });\r\n });\r\n \r\n }\r\n }, SEARCH_TIMEOUT);\r\n }\r\n\r\n private fetchMoreClients() {\r\n this.clientsPage++;\r\n\r\n this.clientsLoading = true;\r\n\r\n return this.uow.getClients(null, this.clientName, this.clientsPage, BUFFER_SIZE)\r\n .then(result => {\r\n this.clientsLoading = false;\r\n this.clients = this.clients.concat(result);\r\n });\r\n }\r\n\r\n\r\n getProjects() {\r\n return this.uow.getProjectsCount(null, null, this.engagement.clientId, null).then(count => {\r\n this.projectsCount = count[0];\r\n\r\n return this.uow.getProjects(null, null, this.engagement.clientId, null, this.projectsPage, BUFFER_SIZE)\r\n .then(result => {\r\n this.projects = result;\r\n this.setAvailableProjects();\r\n });\r\n });\r\n }\r\n\r\n onProjectsScrollToEnd() {\r\n this.fetchMoreProjects();\r\n }\r\n\r\n onProjectsScroll({ end }) {\r\n if (this.projectsLoading || this.projectsCount <= this.projects.length || this.projectsCount <= 50) {\r\n return;\r\n }\r\n\r\n if (end + NUMBER_OF_ITEMS_FROM_END_BEFORE_FETCHING_MORE >= this.projects.length) {\r\n this.fetchMoreProjects();\r\n }\r\n }\r\n\r\n onProjectsSearch(e) {\r\n //if (!e.items || e.items.length == 0) {\r\n this.projectName = e.term;\r\n this.searchProjects();\r\n //}\r\n }\r\n\r\n searchProjects(): void {\r\n clearTimeout(this.projectSearchTimer);\r\n\r\n this.projectSearchTimer = setTimeout(() => {\r\n if (this.projectName) {\r\n this.projectsPage = 0;\r\n\r\n this.projectsLoading = true;\r\n\r\n return this.uow.getProjectsCount(null, this.projectName, null).then(count => {\r\n this.projectsCount = count[0];\r\n\r\n return this.uow.getProjects(null, this.projectName, this.engagement.clientId, null, this.projectsPage, BUFFER_SIZE)\r\n .then(result => {\r\n this.projectsLoading = false;\r\n this.projects = result;\r\n this.setAvailableProjects();\r\n });\r\n });\r\n }\r\n }, SEARCH_TIMEOUT);\r\n }\r\n\r\n //projectsSearch(term: string, item: model.Client) {\r\n // term = term.toLocaleLowerCase();\r\n\r\n // return item.name.toLocaleLowerCase().indexOf(term) > -1 || item.id.toLocaleLowerCase() == term;\r\n //}\r\n\r\n private fetchMoreProjects() {\r\n this.projectsPage++;\r\n\r\n this.projectsLoading = true;\r\n\r\n return this.uow.getProjects(null, this.projectName, this.engagement.clientId, null, this.projectsPage, BUFFER_SIZE)\r\n .then(result => {\r\n this.projectsLoading = false;\r\n this.projects = this.projects.concat(result);\r\n this.setAvailableProjects();\r\n });\r\n }\r\n\r\n\r\n getAptCaws() {\r\n this.aptCawsLoading = true;\r\n\r\n return this.uow.getAptCawsCount(null, null, this.engagement.clientId, null).then(count => {\r\n this.aptCawsCount = count[0];\r\n\r\n return this.uow.getAptCaws(null, null, this.engagement.clientId, null, this.aptCawsPage, BUFFER_SIZE)\r\n .then(result => {\r\n this.aptCaws = result;\r\n this.setAvailableAptCaws();\r\n this.aptCawsLoading = false;\r\n });\r\n });\r\n }\r\n\r\n onAptCawsScrollToEnd() {\r\n this.fetchMoreAptCaws();\r\n }\r\n\r\n onAptCawsScroll(event) {\r\n if (this.aptCawsLoading || this.aptCawsCount <= this.aptCaws.length || this.aptCawsCount <= 50) {\r\n return;\r\n }\r\n\r\n if (event.end + NUMBER_OF_ITEMS_FROM_END_BEFORE_FETCHING_MORE >= this.aptCaws.length) {\r\n this.fetchMoreAptCaws();\r\n }\r\n }\r\n\r\n onAptCawsSearch(e) {\r\n //if (!e.items || e.items.length == 0) {\r\n this.aptCawName = e.term;\r\n this.searchAptCaws();\r\n //}\r\n }\r\n\r\n searchAptCaws(): void {\r\n clearTimeout(this.aptCawSearchTimer);\r\n\r\n this.aptCawSearchTimer = setTimeout(() => {\r\n if (this.aptCawName) {\r\n this.aptCawsPage = 0;\r\n\r\n this.aptCawsLoading = true;\r\n\r\n return this.uow.getAptCawsCount(null, this.aptCawName, this.engagement.clientId).then(count => {\r\n this.aptCawsCount = count[0];\r\n\r\n return this.uow.getAptCaws(null, this.aptCawName, this.engagement.clientId, null, this.aptCawsPage, BUFFER_SIZE)\r\n .then(result => {\r\n this.aptCawsLoading = false;\r\n this.aptCaws = result;\r\n this.setAvailableAptCaws();\r\n });\r\n });\r\n }\r\n }, SEARCH_TIMEOUT);\r\n }\r\n\r\n private fetchMoreAptCaws() {\r\n this.aptCawsPage++;\r\n\r\n this.aptCawsLoading = true;\r\n\r\n return this.uow.getAptCaws(null, null, this.engagement.clientId, null, this.aptCawsPage, BUFFER_SIZE)\r\n .then(result => {\r\n this.aptCawsLoading = false;\r\n this.aptCaws = this.aptCaws.concat(result);\r\n this.setAvailableAptCaws();\r\n });\r\n }\r\n\r\n\r\n getInspectionProfiles() {\r\n return this.uow.getInspectionProfilesForEngagement()\r\n .then(result => {\r\n this.inspectionProfiles = result;\r\n });\r\n }\r\n\r\n getInspectionProfileById(previewEngagement: boolean = true) {\r\n if (this.engagement.inspectionProfileId) {\r\n this.isBusy.set(LOADING_KEY, true);\r\n return this.uow.getInspectionProfileForEngagementById(this.engagement.inspectionProfileId)\r\n .then(result => {\r\n if (result) {\r\n let ip = this.inspectionProfiles.find(i => i.id == result[0].id);\r\n ip = result[0];\r\n this.previewEngagement = previewEngagement;\r\n this.engagement.inspectionProfile = ip;\r\n\r\n this.setHighLevelProfileSections();\r\n }\r\n })\r\n .finally(() => {\r\n this.isBusy.set(LOADING_KEY, false);\r\n });\r\n }\r\n }\r\n\r\n getEngagement(id: string) {\r\n this.id = id;\r\n this.cloneProfileNow = false;\r\n\r\n this.isBusy.set(LOADING_KEY, true, 'Loading engagement');\r\n if (id == 'new') {\r\n this.engagement = this.uow.engagements.createEntity();\r\n this.engagement.inspectionYear = new Date().getFullYear();\r\n this.engagement.businessLineId = null;\r\n this.engagement.inspectionProfileId = null;\r\n this.engagement.inspectionLeadId = null;\r\n this.engagement.officeId = null;\r\n this.engagement.regionCode = null;\r\n this.engagement.clientId = null;\r\n this.engagement.taxReviewerId = null;\r\n this.engagement.isReviewerId = null;\r\n this.engagement.marketCap = null;\r\n this.engagement.totalEngagementHours = null;\r\n this.engagement.status = modelEnum.EngagementStatus.draft;\r\n this.engagement.rating = modelEnum.EngagementRating.pending;\r\n const def = this.businessLines.find(m => m.name == 'Assurance');\r\n if (def) {\r\n this.engagement.businessLineId = def.id;\r\n this.disableBusinessLine = true;\r\n }\r\n return this.getClients()\r\n .finally(() => {\r\n this.isBusy.set(LOADING_KEY, false);\r\n });\r\n } else {\r\n return this.uow.getEngagementById(parseInt(id))\r\n .then(result => {\r\n if (result && result.length > 0) {\r\n this.engagement = result[0];\r\n this.oldInspectionEmployeeId = this.engagement.inspectionLeadId;\r\n\r\n const def = this.businessLines.find(m => m.name == 'Assurance');\r\n if (def) {\r\n this.engagement.businessLineId = def.id;\r\n this.disableBusinessLine = true;\r\n }\r\n\r\n this.setHighLevelEngagementSections();\r\n\r\n this.setHighLevelProfileSections();\r\n\r\n return this.uow.getHighLevelInspectionTeamMemberProfileSections(this.engagement.id)\r\n .then(result => {\r\n this.inspectionTeamMemberProfileSections = result;\r\n\r\n return Promise.resolve();\r\n //return this.getClients()\r\n // .then(() => {\r\n // this.getProjects();\r\n // this.getAptCaws();\r\n // });\r\n })\r\n .then(() => this.uow.getHighLevelInspectionTeamMemberEngagementSections(this.engagement.id))\r\n .then(result => {\r\n this.inspectionTeamMemberEngagementSections = result;\r\n\r\n return Promise.resolve();\r\n })\r\n .then(() => this.getClients())\r\n .then(() => {\r\n this.getProjects();\r\n this.getAptCaws();\r\n }).finally(() => {\r\n this.isBusy.set(LOADING_KEY, false);\r\n }); \r\n }\r\n else {\r\n this.router.navigate(['./engagements'], { relativeTo: this.activeRoute.parent });\r\n }\r\n });\r\n }\r\n }\r\n\r\n getStatusName(status: modelEnum.EngagementStatus) {\r\n const match = this.engagementStatuses.find(m => m.status == status);\r\n return match ? match.title : 'N/A';\r\n }\r\n\r\n setHighLevelProfileSections() {\r\n this.highLevelProfileSections = this.engagement.inspectionProfile && this.engagement.inspectionProfile.profileSections\r\n ? this.engagement.inspectionProfile.profileSections.filter(m => !m.parentSectionId || !m.parentSection.parentSectionId)\r\n .sort(Utilities.sortByName)\r\n : [];\r\n }\r\n\r\n setHighLevelEngagementSections() {\r\n this.highLevelEngagementSections = this.engagement.engagementSections\r\n .filter(es => !es.parentSectionId || !es.parentSection.parentSectionId)\r\n .sort(Utilities.sortByName);\r\n }\r\n\r\n expandAll() {\r\n if (this.engagement) {\r\n if (this.engagement.status > modelEnum.EngagementStatus.draft) {\r\n if (this.engagement.engagementSections && this.engagement.engagementSections.length) {\r\n this.engagement.engagementSections.forEach((m) => { m.isCollapsed = false; });\r\n }\r\n }\r\n else {\r\n if (this.engagement.inspectionProfile && this.engagement.inspectionProfile.profileSections) {\r\n this.engagement.inspectionProfile.profileSections.forEach((m) => { m.isCollapsed = false; });\r\n }\r\n }\r\n }\r\n }\r\n\r\n collapseAll() {\r\n if (this.engagement) {\r\n if (this.engagement.status > modelEnum.EngagementStatus.draft) {\r\n if (this.engagement.engagementSections && this.engagement.engagementSections.length) {\r\n this.engagement.engagementSections.forEach((m) => { m.isCollapsed = true; });\r\n }\r\n }\r\n else {\r\n if (this.engagement.inspectionProfile && this.engagement.inspectionProfile.profileSections) {\r\n this.engagement.inspectionProfile.profileSections.forEach((m) => { m.isCollapsed = true; });\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n syncMetadataFromProfile() {\r\n this.previewEngagement = false;\r\n const ip = this.inspectionProfiles.find(i => i.id == this.engagement.inspectionProfileId);\r\n if (ip.profileSections && ip.profileSections.some(p => p.questions && p.questions.length >= 0)) {\r\n //this.previewEngagement = true;\r\n //this.engagement.inspectionProfile = ip;\r\n\r\n this.getInspectionProfileById();\r\n } else {\r\n this.getInspectionProfileById(false);\r\n }\r\n if (this.engagement.inspectionProfileId) {\r\n if (!this.disableBusinessLine && !this.engagement.businessLineId) {\r\n this.engagement.businessLineId = this.engagement.inspectionProfile.businessLineId;\r\n }\r\n }\r\n }\r\n\r\n updateRegionCode() {\r\n if (this.engagement) {\r\n if (this.engagement.officeId) {\r\n const office = this.offices.find(m => m.id == this.engagement.officeId);\r\n if (office) {\r\n this.engagement.regionCode = office.regionCode;\r\n }\r\n else {\r\n this.engagement.regionCode = null;\r\n }\r\n }\r\n else {\r\n this.engagement.regionCode = null;\r\n }\r\n }\r\n }\r\n\r\n addTeamCaptainToTeamIfNecessary() {\r\n if (this.engagement) {\r\n if (this.engagement.inspectionLeadId) {\r\n if (!this.engagement.inspectionTeamMembers.some(m => m.employeeId == this.engagement.inspectionLeadId)) {\r\n const itm = this.uow.inspectionTeamMembers.createEntity();\r\n const employee = this.employees.find(m => m.id == this.engagement.inspectionLeadId);\r\n if (employee) {\r\n itm.employee = employee;\r\n itm.employeeId = employee.id;\r\n itm.engagement = this.engagement;\r\n itm.engagementId = this.engagement.id;\r\n this.engagement.inspectionTeamMembers.push(itm);\r\n }\r\n }\r\n\r\n this.oldInspectionEmployeeId = this.engagement.inspectionLeadId;\r\n }\r\n }\r\n }\r\n\r\n addInspectionTeamMember() {\r\n if (this.selectedInspectionTeamId) {\r\n if (!this.engagement.inspectionTeamMembers.some(m => m.employeeId == this.selectedInspectionTeamId)) {\r\n const itm = this.uow.inspectionTeamMembers.createEntity();\r\n const employee = this.employees.find(m => m.id == this.selectedInspectionTeamId);\r\n if (employee) {\r\n itm.employee = employee;\r\n itm.employeeId = employee.id;\r\n itm.engagement = this.engagement;\r\n itm.engagementId = this.engagement.id;\r\n this.engagement.inspectionTeamMembers.push(itm);\r\n }\r\n else {\r\n this.uow.inspectionTeamMembers.cancelChanges(itm);\r\n }\r\n }\r\n }\r\n\r\n this.selectedInspectionTeamId = null;\r\n }\r\n\r\n removeInspectionTeamMember(teamMember: model.InspectionTeamMember) {\r\n if (confirm('Remove \"' + teamMember.employee.fullName + '\" from the inspection team?')) {\r\n if (teamMember.id > 0) {\r\n teamMember.entityAspect.setDeleted();\r\n }\r\n else {\r\n this.uow.inspectionTeamMembers.cancelChanges(teamMember);\r\n }\r\n }\r\n }\r\n\r\n\r\n async addEngagementTeamMember() {\r\n if (this.selectedEngagementTeamId) {\r\n if (!this.engagement.engagementTeamMembers.some(m => m.employeeId == this.selectedEngagementTeamId)) {\r\n const etm = this.uow.engagementTeamMembers.createEntity();\r\n const employee = this.employees.find(m => m.id == this.selectedEngagementTeamId);\r\n if (employee) {\r\n let projectIds: string[] = [];\r\n this.engagement.engagementProjects.forEach(engagementProject => projectIds.push(engagementProject.projectId));\r\n let totalEmployeeProjectHours;\r\n\r\n await this.uow.getTotalEmployeeProjectHours(projectIds, employee.id)\r\n .then(result => totalEmployeeProjectHours = result[0])\r\n .catch(error => console.log(error));\r\n\r\n etm.employee = employee;\r\n etm.hours = totalEmployeeProjectHours ? totalEmployeeProjectHours : null;\r\n etm.inspectionTeamRoleId = null;\r\n etm.engagement = this.engagement;\r\n }\r\n else {\r\n this.uow.engagementTeamMembers.cancelChanges(etm);\r\n }\r\n }\r\n }\r\n\r\n this.selectedEngagementTeamId = null;\r\n }\r\n\r\n removeEngagementTeamMember(teamMember: model.EngagementTeamMember) {\r\n if (confirm('Remove \"' + teamMember.employee.fullName + '\" from the engagement team?')) {\r\n if (teamMember.id > 0) {\r\n teamMember.entityAspect.setDeleted();\r\n }\r\n else {\r\n this.uow.engagementTeamMembers.cancelChanges(teamMember);\r\n }\r\n }\r\n }\r\n\r\n addProject() {\r\n if (!this.selectedProject)\r\n return;\r\n if (!this.engagement.engagementProjects.find(p => p.projectId == this.selectedProject.id)) {\r\n if (!this.engagement.engagementProjects.length) {\r\n this.engagement.office = this.selectedProject.operatingUnit;\r\n this.engagement.regionCode = this.selectedProject.region;\r\n this.engagement.department = this.selectedProject.departmentName;\r\n }\r\n const engProj = this.uow.engagementProjects.createEntity();\r\n engProj.engagementId = this.engagement.id;\r\n engProj.engagement = this.engagement;\r\n engProj.projectId = this.selectedProject.id;\r\n this.engagement.engagementProjects.push(engProj);\r\n }\r\n if (this.selectedProject.entityAspect.entityState.isAddedModifiedOrDeleted()) {\r\n this.selectedProject.entityAspect.rejectChanges();\r\n }\r\n\r\n this.isBusy.set(LOADING_KEY, true, \"Loading project hours\");\r\n this.uow.getEmployeeProjectHours(this.selectedProject.id)\r\n .then(result => {\r\n if (result) {\r\n result.forEach(eph => {\r\n if (!this.engagement.engagementTeamMembers.find(tm => tm.employeeId == eph.employeeId)) {\r\n const etm = this.uow.engagementTeamMembers.createEntity({\r\n employeeId: eph.employeeId,\r\n inspectionTeamRole: this.teamMemberRoles.find(e => e.name.toLowerCase() == 'other')\r\n } as model.EngagementTeamMember);\r\n this.engagement.engagementTeamMembers.push(etm);\r\n }\r\n });\r\n }\r\n })\r\n .then(() => {\r\n if (this.engagement.engagementTeamMembers.length > 0) {\r\n this.engagement.totalEngagementHours = 0;\r\n this.engagement.engagementTeamMembers.forEach(async teamMember => {\r\n let projectIds: string[] = [];\r\n this.engagement.engagementProjects.forEach(engagementProject => projectIds.push(engagementProject.projectId));\r\n\r\n await this.uow.getTotalEmployeeProjectHours(projectIds, teamMember.employeeId)\r\n .then(result => {\r\n teamMember.hours = result[0];\r\n this.engagement.totalEngagementHours += teamMember.hours;\r\n this.engagement.totalEngagementHours = Math.round(this.engagement.totalEngagementHours * 100) / 100;\r\n })\r\n .catch(error => console.log(error));\r\n })\r\n }\r\n })\r\n .catch(error => console.log(error))\r\n .finally(() => this.isBusy.set(LOADING_KEY, false));\r\n\r\n setTimeout(() => this.selectedProject = null, 1);\r\n this.setAvailableProjects();\r\n }\r\n\r\n addAptCaw() {\r\n if (!this.selectedAptCaw)\r\n return;\r\n\r\n if (!this.engagement.engagementAptCaws.find(a => a.aptCawId == this.selectedAptCaw.id)) {\r\n if (!this.engagement.engagementAptCaws.length) {\r\n this.engagement.engagementType = this.selectedAptCaw.engagementType;\r\n this.engagement.clientEntityType = this.selectedAptCaw.clientEntityType;\r\n this.engagement.clientFiscalYearEnd = this.selectedAptCaw.fiscalYearEnd;\r\n }\r\n const engApt = this.uow.engagementAptCaws.createEntity();\r\n engApt.engagementId = this.engagement.id;\r\n engApt.engagement = this.engagement;\r\n engApt.aptCawId = this.selectedAptCaw.id;\r\n this.engagement.engagementAptCaws.push(engApt);\r\n }\r\n if (this.selectedAptCaw.entityAspect.entityState.isAddedModifiedOrDeleted()) {\r\n this.selectedAptCaw.entityAspect.rejectChanges();\r\n }\r\n const inds = (this.selectedAptCaw.industry || '').split('|');\r\n inds.forEach(i => {\r\n if (i) {\r\n const ind = this.industries.find(e => e.name == i);\r\n if (ind) {\r\n this.selectedIndustry = ind;\r\n this.addIndustry();\r\n }\r\n else {\r\n this.addIndustry(i);\r\n }\r\n }\r\n });\r\n setTimeout(() => this.selectedAptCaw = null, 1);\r\n this.setAvailableAptCaws();\r\n }\r\n\r\n addIndustry(name?: string) {\r\n let duplicateIndustry = this.engagement.engagementIndustries.filter(i => i.industryName == name && i.industryName != null)\r\n if (duplicateIndustry && duplicateIndustry.length > 0) {\r\n return;\r\n }\r\n if (name) {\r\n const engInd = this.uow.engagementIndustries.createEntity();\r\n engInd.engagementId = this.engagement.id;\r\n engInd.engagement = this.engagement;\r\n engInd.industryName = name;\r\n this.engagement.engagementIndustries.push(engInd);\r\n }\r\n else {\r\n if (!this.selectedIndustry)\r\n return;\r\n if (this.selectedIndustry && !this.engagement.engagementIndustries.find(i => i.industryId == this.selectedIndustry.id)) {\r\n const engInd = this.uow.engagementIndustries.createEntity();\r\n engInd.engagementId = this.engagement.id;\r\n engInd.engagement = this.engagement;\r\n engInd.industryId = this.selectedIndustry.id;\r\n this.engagement.engagementIndustries.push(engInd);\r\n }\r\n if (this.selectedIndustry.entityAspect.entityState.isAddedModifiedOrDeleted()) {\r\n this.selectedIndustry.entityAspect.rejectChanges();\r\n }\r\n setTimeout(() => this.selectedIndustry = null, 1);\r\n }\r\n }\r\n\r\n addEngagementQuestionActivatingTag(engagement, commitAfterAdd) {\r\n // add EngagementQuestionActivating tag when new EngagementTag is created\r\n engagement.engagementSections.forEach(engagementSection => {\r\n engagementSection.engagementQuestions.forEach(engagementQuestion => {\r\n engagementQuestion.question.profileQuestionActivatingTags.forEach(activatingTag => {\r\n engagementQuestion.engagementQuestionOptions.forEach(option => {\r\n this.tags.forEach(t => {\r\n if (activatingTag.tagId == t.id && activatingTag.questionId == engagementQuestion.questionId && activatingTag.questionOptionId == option.questionOptionId) {\r\n const eqat = this.uow.engagementQuestionActivatingTags.createEntity();\r\n\r\n eqat.tag = t;\r\n eqat.tagId = t.id;\r\n eqat.engagementQuestionOption = option;\r\n eqat.engagementQuestionOptionId = option.id;\r\n\r\n option.engagementQuestionActivatingTags.push(eqat);\r\n }\r\n });\r\n });\r\n });\r\n });\r\n });\r\n\r\n if (commitAfterAdd) {\r\n this.uow.commit();\r\n }\r\n }\r\n\r\n removeProject(engProj: model.EngagementProject) {\r\n const ind = this.engagement.engagementProjects.findIndex(p => p.projectId == engProj.projectId);\r\n if (ind >= 0) {\r\n this.uow.getEmployeeProjectHours(this.engagement.engagementProjects[ind].projectId)\r\n .then(result => {\r\n if (result) {\r\n result.forEach(eph => {\r\n const tmidx = this.engagement.engagementTeamMembers.findIndex(tm => !tm.entityAspect.entityState.isDeleted() && tm.employeeId == eph.employeeId);\r\n if (tmidx >= 0) {\r\n this.engagement.engagementTeamMembers[tmidx].hours -= eph.hours;\r\n this.engagement.totalEngagementHours -= eph.hours;\r\n if (this.engagement.engagementTeamMembers[tmidx].hours <= 0) {\r\n this.engagement.engagementTeamMembers[tmidx].entityAspect.setDeleted();\r\n }\r\n }\r\n });\r\n if (this.engagement.totalEngagementHours < 0)\r\n this.engagement.totalEngagementHours = 0;\r\n this.engagement.totalEngagementHours = Math.round(this.engagement.totalEngagementHours * 100) / 100;\r\n }\r\n })\r\n if (engProj.entityAspect.entityState.isAdded()) {\r\n this.engagement.engagementProjects[ind].entityAspect.rejectChanges();\r\n } else {\r\n this.engagement.engagementProjects[ind].entityAspect.setDeleted();\r\n }\r\n if (!this.engagement.engagementProjects.length) {\r\n this.engagement.officeId = null;\r\n this.engagement.regionCode = null;\r\n this.engagement.department = null;\r\n this.engagement.totalEngagementHours = 0;\r\n }\r\n }\r\n this.setAvailableProjects();\r\n }\r\n\r\n removeAptCaw(engAptCaw: model.EngagementAptCaw) {\r\n const ind = this.engagement.engagementAptCaws.findIndex(a => a.aptCawId == engAptCaw.aptCawId);\r\n if (ind >= 0) {\r\n if (engAptCaw.entityAspect.entityState.isAdded()) {\r\n this.engagement.engagementAptCaws[ind].entityAspect.rejectChanges();\r\n } else {\r\n this.engagement.engagementAptCaws[ind].entityAspect.setDeleted();\r\n }\r\n if (!this.engagement.engagementAptCaws.length) {\r\n this.engagement.engagementType = null;\r\n this.engagement.clientEntityType = null;\r\n this.engagement.clientFiscalYearEnd = null;\r\n const industryCount = this.engagement.engagementIndustries.length;\r\n for (let i = 0; i < industryCount; i++) {\r\n this.removeIndustry(this.engagement.engagementIndustries[0]);\r\n }\r\n }\r\n }\r\n this.setAvailableAptCaws();\r\n }\r\n\r\n removeIndustry(engInd: model.EngagementIndustry) {\r\n const ind = this.engagement.engagementIndustries.findIndex(i => i.industryId == engInd.industryId);\r\n if (ind >= 0) {\r\n if (engInd.entityAspect.entityState.isAdded()) {\r\n this.engagement.engagementIndustries[ind].entityAspect.rejectChanges();\r\n } else {\r\n this.engagement.engagementIndustries[ind].entityAspect.setDeleted();\r\n }\r\n }\r\n }\r\n\r\n addInspectionTeamMemberEngagementSectionByIndex(index, inspectionTeamMemberId) {\r\n\r\n let selectedSection = this.selectedEngagementSections[index];\r\n\r\n this.addInspectionTeamMemberEngagementSection(selectedSection, inspectionTeamMemberId);\r\n\r\n setTimeout(() => this.selectedEngagementSections[index] = null, 1);\r\n }\r\n\r\n addInspectionTeamMemberEngagementSectionByProfileSectionId(profileSectionId, inspectionTeamMemberId) {\r\n let selectedSection = this.highLevelEngagementSections.find(es => es.profileSectionId == profileSectionId);\r\n\r\n this.addInspectionTeamMemberEngagementSection(selectedSection, inspectionTeamMemberId);\r\n }\r\n\r\n addInspectionTeamMemberEngagementSection(engagementSection: model.EngagementSection, inspectionTeamMemberId) {\r\n if (!engagementSection) {\r\n return;\r\n }\r\n\r\n if (engagementSection && !this.inspectionTeamMemberEngagementSections.find(es => es.engagementSectionId == engagementSection.id && es.inspectionTeamMemberId == inspectionTeamMemberId)) {\r\n const newSection = this.uow.inspectionTeamMemberEngagementSections.createEntity();\r\n newSection.inspectionTeamMemberId = inspectionTeamMemberId;\r\n newSection.engagementSectionId = engagementSection.id;\r\n\r\n this.inspectionTeamMemberEngagementSections.push(newSection);\r\n\r\n if (engagementSection.parentSectionId == null) {\r\n this.addFirstLevelChildInspectionTeamMemberEngagementSections(this.engagement.engagementSections.filter(es => es.parentSectionId == newSection.engagementSectionId), inspectionTeamMemberId);\r\n }\r\n }\r\n\r\n if (engagementSection.entityAspect.entityState.isAddedModifiedOrDeleted()) {\r\n engagementSection.entityAspect.rejectChanges();\r\n }\r\n }\r\n\r\n addInspectionTeamMemberProfileSection(index, inspectionTeamMemberId) {\r\n let selectedSection = this.selectedProfileSections[index];\r\n\r\n if (!selectedSection) {\r\n return;\r\n }\r\n\r\n if (selectedSection && !this.inspectionTeamMemberProfileSections.find(ps => ps.profileSectionId == selectedSection.id && ps.inspectionTeamMemberId == inspectionTeamMemberId)) {\r\n const newSection = this.uow.inspectionTeamMemberProfileSections.createEntity();\r\n newSection.inspectionTeamMemberId = inspectionTeamMemberId;\r\n newSection.profileSectionId = selectedSection.id;\r\n\r\n this.inspectionTeamMemberProfileSections.push(newSection);\r\n\r\n if (selectedSection.parentSectionId == null) {\r\n this.addFirstLevelChildInspectionTeamMemberProfileSections(this.engagement.inspectionProfile.profileSections.filter(ps => ps.parentSectionId == newSection.profileSectionId), inspectionTeamMemberId);\r\n }\r\n\r\n }\r\n\r\n if (selectedSection.entityAspect.entityState.isAddedModifiedOrDeleted()) {\r\n selectedSection.entityAspect.rejectChanges();\r\n }\r\n\r\n setTimeout(() => this.selectedProfileSections[index] = null, 1);\r\n }\r\n\r\n addFirstLevelChildInspectionTeamMemberProfileSections(sections: model.ProfileSection[], teamMemberId: number) {\r\n sections.forEach(section => {\r\n if (teamMemberId) {\r\n let existingInspectionTeamMemberSection = this.inspectionTeamMemberProfileSections.find(ps => ps.profileSectionId == section.id && ps.inspectionTeamMemberId == teamMemberId);\r\n\r\n if (!existingInspectionTeamMemberSection) {\r\n const newSection = this.uow.inspectionTeamMemberProfileSections.createEntity();\r\n newSection.inspectionTeamMemberId = teamMemberId;\r\n newSection.profileSectionId = section.id;\r\n\r\n this.inspectionTeamMemberProfileSections.push(newSection);\r\n }\r\n }\r\n });\r\n }\r\n\r\n addFirstLevelChildInspectionTeamMemberEngagementSections(sections: model.EngagementSection[], teamMemberId: number) {\r\n sections.forEach(section => {\r\n if (teamMemberId) {\r\n let existingInspectionTeamMemberSection = this.inspectionTeamMemberEngagementSections.find(es => es.engagementSectionId == section.id && es.inspectionTeamMemberId == teamMemberId);\r\n\r\n if (!existingInspectionTeamMemberSection) {\r\n const newSection = this.uow.inspectionTeamMemberEngagementSections.createEntity();\r\n newSection.inspectionTeamMemberId = teamMemberId;\r\n newSection.engagementSectionId = section.id;\r\n\r\n this.inspectionTeamMemberEngagementSections.push(newSection);\r\n }\r\n }\r\n });\r\n }\r\n\r\n removeChildInspectionTeamMemberEngegementSections(sections: model.EngagementSection[], teamMemberId) {\r\n sections.forEach(section => {\r\n\r\n this.removeChildInspectionTeamMemberEngegementSections(this.engagement.engagementSections.filter(es => !es.isDeleted && es.parentSectionId == section.id), teamMemberId);\r\n\r\n let index = this.inspectionTeamMemberEngagementSections.findIndex(es => es.engagementSectionId == section.id && es.inspectionTeamMemberId == teamMemberId);\r\n\r\n if (index >= 0) {\r\n if (this.inspectionTeamMemberEngagementSections[index].entityAspect.entityState.isAdded()) {\r\n this.inspectionTeamMemberEngagementSections[index].entityAspect.rejectChanges();\r\n this.inspectionTeamMemberEngagementSections.splice(index, 1);\r\n } else {\r\n this.inspectionTeamMemberEngagementSections[index].entityAspect.setDeleted();\r\n this.inspectionTeamMemberEngagementSections.splice(index, 1);\r\n }\r\n }\r\n });\r\n }\r\n\r\n removeInspectionTeamMemberEngagementSection(section: model.InspectionTeamMemberEngagementSection) {\r\n\r\n this.removeChildInspectionTeamMemberEngegementSections(this.engagement.engagementSections.filter(es => !es.isDeleted && es.parentSectionId == section.engagementSectionId), section.inspectionTeamMemberId);\r\n\r\n const index = this.inspectionTeamMemberEngagementSections.findIndex(es => es.engagementSectionId == section.engagementSectionId && es.inspectionTeamMemberId == section.inspectionTeamMemberId);\r\n\r\n if (index >= 0) {\r\n if (section.entityAspect.entityState.isAdded()) {\r\n this.inspectionTeamMemberEngagementSections[index].entityAspect.rejectChanges();\r\n this.inspectionTeamMemberEngagementSections.splice(index, 1);\r\n } else {\r\n this.inspectionTeamMemberEngagementSections[index].entityAspect.setDeleted();\r\n this.inspectionTeamMemberEngagementSections.splice(index, 1);\r\n }\r\n }\r\n }\r\n\r\n removeChildInspectionTeamMemberProfileSections(sections: model.ProfileSection[], teamMemberId) {\r\n sections.forEach(section => {\r\n\r\n this.removeChildInspectionTeamMemberProfileSections(this.engagement.inspectionProfile.profileSections.filter(ps => !ps.isDeleted && ps.parentSectionId == section.id), teamMemberId);\r\n\r\n let index = this.inspectionTeamMemberProfileSections.findIndex(ps => ps.profileSectionId == section.id && ps.inspectionTeamMemberId == teamMemberId);\r\n\r\n if (index >= 0) {\r\n if (this.inspectionTeamMemberProfileSections[index].entityAspect.entityState.isAdded()) {\r\n this.inspectionTeamMemberProfileSections[index].entityAspect.rejectChanges();\r\n this.inspectionTeamMemberProfileSections.splice(index, 1);\r\n } else {\r\n this.inspectionTeamMemberProfileSections[index].entityAspect.setDeleted();\r\n this.inspectionTeamMemberProfileSections.splice(index, 1);\r\n }\r\n }\r\n });\r\n }\r\n\r\n removeInspectionTeamMemberProfileSection(section) {\r\n\r\n this.removeChildInspectionTeamMemberProfileSections(this.engagement.inspectionProfile.profileSections.filter(ps => !ps.isDeleted && ps.parentSectionId == section.profileSectionId), section.inspectionTeamMemberId);\r\n\r\n const index = this.inspectionTeamMemberProfileSections.findIndex(ps => ps.profileSectionId == section.profileSectionId && ps.inspectionTeamMemberId == section.inspectionTeamMemberId);\r\n\r\n if (index >= 0) {\r\n if (section.entityAspect.entityState.isAdded()) {\r\n this.inspectionTeamMemberProfileSections[index].entityAspect.rejectChanges();\r\n this.inspectionTeamMemberProfileSections.splice(index, 1);\r\n } else {\r\n this.inspectionTeamMemberProfileSections[index].entityAspect.setDeleted();\r\n this.inspectionTeamMemberProfileSections.splice(index, 1);\r\n }\r\n }\r\n }\r\n\r\n specialtyReviewerTypeAdded() {\r\n setTimeout(() => this.updateTaxAndISReviewers(), 1);\r\n }\r\n\r\n updateTaxAndISReviewers() {\r\n let taxReviewer = this.assignedInspectionTeamMembers.find(tm => tm.specialtyReviewerType && tm.specialtyReviewerType.name == 'Tax Reviewer');\r\n let isReviewer = this.assignedInspectionTeamMembers.find(tm => tm.specialtyReviewerType && tm.specialtyReviewerType.name == 'IS Reviewer');\r\n\r\n if ((taxReviewer && this.engagement.taxReviewerId != taxReviewer.employeeId) || this.engagement.taxReviewerId) {\r\n this.engagement.taxReviewerId = taxReviewer ? taxReviewer.employeeId : null;\r\n }\r\n\r\n if ((isReviewer && this.engagement.isReviewerId != isReviewer.employeeId) || this.engagement.isReviewerId) {\r\n this.engagement.isReviewerId = isReviewer ? isReviewer.employeeId : null;\r\n }\r\n }\r\n\r\n convertInspectionTeamMemberProfileSectionsToEngagementSections() {\r\n let engagementSections = this.engagement.engagementSections;\r\n\r\n this.inspectionTeamMemberProfileSections\r\n .forEach(itmps => {\r\n let selectedSection = engagementSections.find(es => es.profileSectionId == itmps.profileSectionId);\r\n\r\n if (selectedSection && !this.inspectionTeamMemberEngagementSections.find(es => es.engagementSectionId == selectedSection.id && es.inspectionTeamMemberId == itmps.inspectionTeamMemberId)) {\r\n const newSection = this.uow.inspectionTeamMemberEngagementSections.createEntity();\r\n newSection.inspectionTeamMemberId = itmps.inspectionTeamMemberId;\r\n newSection.engagementSectionId = selectedSection.id;\r\n\r\n this.inspectionTeamMemberEngagementSections.push(newSection);\r\n\r\n }\r\n\r\n if (selectedSection && selectedSection.entityAspect.entityState.isAddedModifiedOrDeleted()) {\r\n selectedSection.entityAspect.rejectChanges();\r\n }\r\n });\r\n }\r\n\r\n saveChanges() {\r\n // Make sure team captain is an inspection team member before saving\r\n this.addTeamCaptainToTeamIfNecessary();\r\n\r\n //const changes = this.uow.getChanges();\r\n //changes.forEach(change => {\r\n // change.entityAspect.validateEntity();\r\n // const errors = change.entityAspect.getValidationErrors();\r\n //});\r\n\r\n this.isBusy.set(SAVING_KEY, true, 'Saving engagement');\r\n \r\n this.uow.commit()\r\n .then(() => {\r\n\r\n this.uow.inspectionTeamMembers.saveChanges();\r\n return this.uow.commit()\r\n .then(() => this.uow.updateChildInspectionTeamMemberProfileSections(this.engagement.id))\r\n .then(() => {\r\n\r\n if (this.id != 'new') {\r\n this.uow.updateActivatedEngagementQuestions(this.engagement.id);\r\n this.sharedData.setMyEngagements(null);\r\n }\r\n if (!confirm('Engagement saved! Continue editing this engagement?')) {\r\n this.router.navigate(['./engagements'], { relativeTo: this.activeRoute.parent });\r\n }\r\n else {\r\n if (this.id == 'new') {\r\n this.router.navigate(['./edit'], { queryParams: { id: this.engagement.id }, relativeTo: this.activeRoute.parent });\r\n }\r\n }\r\n });\r\n })\r\n .catch(reason => {\r\n console.error(reason);\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set(SAVING_KEY, false);\r\n });\r\n }\r\n\r\n publishEngagement() {\r\n if (confirm(\"Publish now? This will apply the selected questionnaire to this engagement and set the engagement as Active.\")) {\r\n this.cloneProfileNow = true;\r\n\r\n this.cloneInspectionProfileIntoEngagement();\r\n }\r\n }\r\n\r\n cloneInspectionProfileIntoEngagement() {\r\n if (this.engagement && this.engagement.inspectionProfile) {\r\n // Make sure team captain is an inspection team member before saving\r\n this.addTeamCaptainToTeamIfNecessary();\r\n\r\n this.isBusy.set(CLONING_KEY, true, 'Applying questionnaire \"' + this.engagement.inspectionProfile.name + '\" to this engagement');\r\n // Save any changes to the engagement, then clone the inspection profile\r\n return this.uow.commit()\r\n .then(() => {\r\n this.isPublishing = true;\r\n return this.uow.publishEngagement(this.engagement.id)\r\n .then((result) => {\r\n const engagement = result[0];\r\n this.addEngagementQuestionActivatingTag(engagement, true);\r\n this.uow.updateActivatedEngagementQuestions(this.engagement.id);\r\n\r\n this.setHighLevelEngagementSections();\r\n\r\n this.setHighLevelProfileSections();\r\n\r\n this.convertInspectionTeamMemberProfileSectionsToEngagementSections();\r\n return this.uow.commit();\r\n })\r\n .then(() => this.uow.updateChildInspectionTeamMemberProfileSections(this.engagement.id))\r\n .then(() => {\r\n if (!confirm('Engagement published! Continue editing this engagement?')) {\r\n this.router.navigate(['./engagements'], { relativeTo: this.activeRoute.parent });\r\n }\r\n else {\r\n this.router.navigate(['./edit'], { queryParams: { id: this.engagement.id }, relativeTo: this.activeRoute.parent });\r\n }\r\n })\r\n .catch(reason => {\r\n console.error(reason);\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isPublishing = false;\r\n this.isBusy.set(CLONING_KEY, false);\r\n });\r\n })\r\n .catch(reason => {\r\n console.error(reason);\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set(CLONING_KEY, false);\r\n });\r\n }\r\n }\r\n\r\n markReviewComplete() {\r\n this.dialog.open(ConfirmationDialogComponent, {\r\n data: {\r\n title: \"Confirm\",\r\n content: \"Changes cannot be undone. Would you like to continue?\"\r\n }\r\n })\r\n .afterClosed().toPromise().then(response => {\r\n if (response == \"Yes\") {\r\n this.engagement.status = modelEnum.EngagementStatus.teamCaptainReviewComplete;\r\n this.engagement.signOffEmployeeId = (this.msalService.instance.getAllAccounts()[0] as Profile).idTokenClaims.employeeID;\r\n this.engagement.signOffDate = Utilities.getCurrentDate();\r\n this.uow.engagements.saveChanges([this.engagement]);\r\n }\r\n });\r\n }\r\n\r\n markRequiresChanges() {\r\n this.dialog.open(ConfirmationDialogComponent, {\r\n data: {\r\n title: \"Confirm\",\r\n content: \"Changes cannot be undone. Would you like to continue?\"\r\n }\r\n })\r\n .afterClosed().toPromise().then(response => {\r\n if (response == \"Yes\") {\r\n this.engagement.status = modelEnum.EngagementStatus.changesRequired;\r\n this.engagement.signOffEmployeeId = null;\r\n this.engagement.signOffDate = null;\r\n this.uow.engagements.saveChanges([this.engagement]);\r\n }\r\n });\r\n }\r\n\r\n markArchived() {\r\n this.dialog.open(ConfirmationDialogComponent, {\r\n data: {\r\n title: \"Confirm\",\r\n content: \"Changes cannot be undone. Would you like to continue?\"\r\n }\r\n })\r\n .afterClosed().toPromise().then(response => {\r\n if (response == \"Yes\") {\r\n this.engagement.status = modelEnum.EngagementStatus.archived;\r\n this.uow.engagements.saveChanges([this.engagement]);\r\n }\r\n });\r\n }\r\n\r\n\r\n formatDate(value: any): string {\r\n return moment(value).format('YYYY-MM-DD hh:mm A Z');\r\n }\r\n\r\n\r\n goHome() {\r\n this.router.navigate(['./engagements'], { relativeTo: this.activeRoute.parent });\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport Utilities from '../../../services/utilities';\r\nimport { EngagementSection, EngagementQuestion } from '../../../../model/model';\r\n\r\n@Component({\r\n selector: 'engagement-section-tree-node-viewer',\r\n inputs: ['node', 'i'],\r\n templateUrl: './engagement-tree-node-viewer.component.html'\r\n})\r\nexport class EngagementSectionViewTreeNode implements OnInit {\r\n @Input() node: EngagementSection;\r\n @Input() i: number;\r\n @Input() context: any;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n get currentNodes() {\r\n return this.node.childSections ? this.node.childSections.filter(m => !m.isDeleted).sort(Utilities.sortByDisplayOrder) : [];\r\n }\r\n\r\n get questions() {\r\n return this.node.engagementQuestions ? this.node.engagementQuestions.filter(m => !m.isDeleted).sort(Utilities.sortByDisplayOrder) : [];\r\n }\r\n\r\n\r\n toggleSection() {\r\n if (this.node) {\r\n this.node.isCollapsed = !this.node.isCollapsed;\r\n }\r\n }\r\n\r\n\r\n viewQuestion(question: EngagementQuestion) {\r\n this.context.activeEngagementQuestion = question;\r\n\r\n this.context.showQuestionViewer = true;\r\n }\r\n\r\n\r\n getDisplayText(question: EngagementQuestion) {\r\n return question.name || question.description.substr(0, 40) + '...';\r\n }\r\n}\r\n","
\r\n
{{node.name}}
\r\n
\r\n

Section contains no questions

\r\n
    0\" class=\"question-list mb-2\">\r\n
  1. {{getDisplayText(question)}}
  2. \r\n
\r\n
    0\">\r\n
  1. \r\n \r\n
  2. \r\n
\r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport Utilities from '../../../services/utilities';\r\nimport { ProfileSection, Question } from '../../../../model/model';\r\n\r\n@Component({\r\n selector: 'section-tree-node-viewer',\r\n inputs: ['node', 'i'],\r\n templateUrl: './tree-node-viewer.component.html'\r\n})\r\nexport class ProfileSectionViewTreeNode implements OnInit {\r\n @Input() node: ProfileSection;\r\n @Input() i: number;\r\n @Input() context: any;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n get currentNodes() {\r\n return this.node.childSections ? this.node.childSections.filter(m => !m.isDeleted).sort(Utilities.sortByDisplayOrder) : [];\r\n }\r\n\r\n get questions() {\r\n return this.node.questions ? this.node.questions.filter(m => !m.isDeleted).sort(Utilities.sortByDisplayOrder) : [];\r\n }\r\n\r\n\r\n toggleSection() {\r\n if (this.node) {\r\n this.node.isCollapsed = !this.node.isCollapsed;\r\n }\r\n }\r\n\r\n\r\n viewQuestion(question: Question) {\r\n this.context.activeQuestion = question;\r\n\r\n this.context.showQuestionViewer = true;\r\n }\r\n\r\n getDisplayText(question: Question) {\r\n return question.name || question.description.substr(0, 40) + '...';\r\n }\r\n}\r\n","
\r\n
{{node.name}}
\r\n
\r\n

Section contains no questions

\r\n
    0\" class=\"question-list mb-2\">\r\n
  1. {{getDisplayText(question)}}
  2. \r\n
\r\n
    0\">\r\n
  1. \r\n \r\n
  2. \r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { UnitOfWorkService } from '../../services/unit-of-work/unit-of-work.service';\r\nimport { ApplicationInsightsService } from '../../services/application-insights/application-insights.service';\r\nimport { Observable } from 'rxjs';\r\nimport { DialogHelper } from '../../services/dialog-helper';\r\n\r\n\r\n@Component({\r\n selector: 'app-user-not-active',\r\n templateUrl: './not-active.component.html',\r\n})\r\nexport class NoLoginFoundComponent implements OnInit {\r\n\r\n constructor(\r\n private uow: UnitOfWorkService,\r\n private appInsights: ApplicationInsightsService,\r\n public dialogHelper: DialogHelper\r\n ) {\r\n appInsights.logPageView();\r\n }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n canDeactivate(): Observable | boolean {\r\n if (this.uow.hasChanges.value) {\r\n let proceed = this.dialogHelper.confirm();\r\n\r\n proceed.subscribe(result => {\r\n if (result) {\r\n this.uow.rollback();\r\n }\r\n })\r\n\r\n return proceed;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n}\r\n","\r\n
\r\n

\r\n \r\n User Not Found\r\n

\r\n

\r\n We're sorry. We could not find an active account matching your credentials. Please contact your administrator if you believe this to be incorrect.\r\n

\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { UnitOfWorkService } from '../../../services/unit-of-work/unit-of-work.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { ApplicationInsightsService } from '../../../services/application-insights/application-insights.service';\r\nimport { ServerSideConfigDataService } from '../../../services/server-side-config-data/server-side-config-data.service';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { DialogHelper } from '../../../services/dialog-helper';\r\nimport { IsBusyService } from '../../../services/is-busy/is-busy.service';\r\nimport { Employee } from '../../../../model/model';\r\nimport { MyInspectionsSummaryDto, GridFilter } from '../../../../model/modelDto';\r\nimport { ProgressStatus } from '../../../../model/modelEnums';\r\nimport { GlobalErrorHandler } from '../../../services/global-error-handler';\r\n\r\nconst LOADING_KEY: string = 'my-inspections:loadData';\r\nconst SAVING_KEY: string = 'my-inspections:saveData';\r\nconst DEFAULT_LIMIT: number = 15;\r\n\r\n@Component({\r\n selector: 'app-my-inspections',\r\n templateUrl: './home.component.html',\r\n})\r\nexport class MyInspectionsComponent implements OnInit {\r\n me: Employee;\r\n\r\n isLoading: boolean = false;\r\n currentYear = new Date().getFullYear();\r\n\r\n page: number = 1;\r\n limit: number = DEFAULT_LIMIT;\r\n pageCount: number = 1;\r\n rowCount: number = 0;\r\n engagementsCount: number = 0;\r\n pageLimitOptions = [15, 25, 50, 100];\r\n inspectionYears: number[] = [];\r\n inspectionYear: number = this.currentYear;\r\n\r\n filters: GridFilter[] = [];\r\n\r\n myInspectionsSummary: MyInspectionsSummaryDto[] = [];\r\n\r\n clientNames: string = null;\r\n engagementCodes: string = null;\r\n\r\n private subscriptions = new Subscription();\r\n\r\n constructor(private uow: UnitOfWorkService,\r\n private appInsights: ApplicationInsightsService,\r\n private errorHandler: GlobalErrorHandler,\r\n private activeRoute: ActivatedRoute,\r\n public router: Router,\r\n\t\tpublic isBusy: IsBusyService,\r\n public dialogHelper: DialogHelper,\r\n private serverData: ServerSideConfigDataService\r\n ) {\r\n appInsights.logPageView();\r\n }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(this.serverData.configDataLoaded$.subscribe(() => {\r\n this.me = this.serverData.configData.me;\r\n }));\r\n this.activeRoute.queryParams.subscribe(routeParams => {\r\n this.page = routeParams.page && !Number.isNaN(routeParams.page) ? parseInt(routeParams.page) : 1;\r\n this.limit = routeParams.limit && !Number.isNaN(routeParams.limit) ? parseInt(routeParams.limit) : DEFAULT_LIMIT;\r\n this.updateFilters('year', this.inspectionYear);\r\n this.updateDataGrid();\r\n });\r\n }\r\n\r\n canDeactivate(): Observable | boolean {\r\n if (this.uow.hasChanges.value) {\r\n const proceed = this.dialogHelper.confirm();\r\n\r\n proceed.subscribe(result => {\r\n if (result) {\r\n this.uow.rollback();\r\n }\r\n })\r\n\r\n return proceed;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n\r\n get activeInspections() {\r\n return this.myInspectionsSummary.sort((a, b) => { return a.engagementClient.localeCompare(b.engagementClient); });\r\n }\r\n\r\n\r\n updateDataGrid() {\r\n this.isLoading = true;\r\n this.isBusy.set(LOADING_KEY, true, 'Loading your inspections');\r\n Promise\r\n .all([\r\n this.getRowCount(),\r\n this.getItems(this.page, this.limit)])\r\n .then(() => {\r\n this.getPageCount(this.limit);\r\n this.getInspectionYears();\r\n })\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set(LOADING_KEY, false);\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n updateFilters(key: string, value: any) {\r\n if (key) {\r\n if (!value || value == '') {\r\n this.removeFilter(key);\r\n } else {\r\n if (this.filters.some(m => m.key == key)) {\r\n const filter = this.filters.find(m => m.key == key);\r\n filter.value = value;\r\n }\r\n else {\r\n this.filters.push({ key: key, value: value } as GridFilter)\r\n }\r\n }\r\n }\r\n }\r\n\r\n removeFilter(key: string) {\r\n const i = this.filters.findIndex(m => m.key == key);\r\n if (i >= 0) {\r\n this.filters.splice(i, 1);\r\n }\r\n }\r\n\r\n getPageCount(limit: number = DEFAULT_LIMIT) {\r\n if (this.rowCount > 0) {\r\n this.pageCount = Math.ceil(this.rowCount / limit);\r\n if (this.pageCount == 0) {\r\n this.pageCount = 1;\r\n }\r\n } else {\r\n this.pageCount = 1;\r\n }\r\n }\r\n\r\n getRowCount() {\r\n this.updateFilters('code', this.engagementCodes);\r\n if (this.inspectionYear != 0) {\r\n this.updateFilters('year', this.inspectionYear);\r\n }\r\n else {\r\n this.removeFilter('year');\r\n }\r\n return this.uow.getMyInspectionsCount(JSON.stringify(this.filters))\r\n .then(result => {\r\n this.rowCount = result[0];\r\n });\r\n }\r\n\r\n getItems(page: number = 1, limit: number = DEFAULT_LIMIT) {\r\n if (this.inspectionYear == 0) this.removeFilter('year');\r\n return this.uow.getMyInspections(page, limit, JSON.stringify(this.filters))\r\n .then(result => {\r\n this.myInspectionsSummary = result;\r\n });\r\n }\r\n\r\n getInspectionYears() {\r\n return this.uow.getInspectionYears()\r\n .then(result => {\r\n this.inspectionYears = result;\r\n });\r\n }\r\n\r\n applyPrimaryFilters() {\r\n this.updateFilters('code', this.engagementCodes);\r\n this.updateFilters('year', this.inspectionYear);\r\n this.updateDataGrid();\r\n }\r\n\r\n clearPrimaryFilters() {\r\n this.engagementCodes = '';\r\n this.inspectionYear = this.currentYear;\r\n this.updateDataGrid();\r\n }\r\n\r\n getProgressStatusName(status: ProgressStatus) {\r\n return this.uow.getProgressStatusName(status);\r\n }\r\n\r\n calculatePercentComplete(inspection: MyInspectionsSummaryDto, assignedToMeOnly: boolean): number {\r\n if (assignedToMeOnly && inspection.myAssignedSections > 0) {\r\n return inspection.myCompletedSections / inspection.myAssignedSections;\r\n }\r\n if (inspection.totalSections > 0) {\r\n return inspection.completedSections / inspection.totalSections;\r\n }\r\n return 0.0\r\n }\r\n}\r\n","
\r\n

My Assignments

\r\n
\r\n\r\n
\r\n
\r\n Search My Inspections\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

\r\n {{rowCount}} {{(rowCount == 1 ? 'record' : 'records')}} found\r\n

\r\n\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
Engagement CodeClient NameYearStatusMy Assigned SectionsMy Completed Sections
\r\n \r\n No data to display…\r\n \r\n \r\n Please wait while we load your inspections…\r\n \r\n
\r\n \r\n {{inspection.engagementCode}}\r\n \r\n \r\n \r\n {{inspection.engagementClient}}\r\n \r\n {{inspection.inspectionYear}}{{getProgressStatusName(inspection.status)}} 0\">{{inspection.myAssignedSections | number : '1.0-0'}}--- 0\">{{inspection.myCompletedSections | number : '1.0-0'}}---
\r\n
\r\n \r\n
\r\n
\r\n","import { Component, Input, Output, EventEmitter, SimpleChanges, SimpleChange } from '@angular/core';\r\nimport { EngagementQuestion, EngagementSection } from '../../../../model/model';\r\nimport { QuestionFilters } from '../../../../model/modelDto';\r\nimport Utilities from '../../../services/utilities';\r\nimport { FilteredQuestionsService } from '../../../services/filtered-questions/filtered-questions.service';\r\nimport * as modelEnum from '../../../../model/modelEnums';\r\n\r\nenum EngagementQuestionStatus {\r\n complete = 'complete',\r\n notComplete = 'not complete',\r\n saved = 'saved',\r\n withComments = 'with comments'\r\n}\r\n\r\n@Component({\r\n selector: 'inspection-tree-node-viewer',\r\n inputs: ['node', 'i'],\r\n templateUrl: './inspection-tree-node-viewer.component.html'\r\n})\r\nexport class InspectionViewerTreeNode {\r\n @Input() node: EngagementSection;\r\n @Input() i: number;\r\n @Input() context: any;\r\n @Input() filters: QuestionFilters;\r\n @Input() filterIsActive: boolean;\r\n _filterIsActive: boolean;\r\n filteredQuestions: object = {};\r\n meetsFilterCriteris: boolean = true;\r\n\r\n constructor(private filteredQuestionsService: FilteredQuestionsService) {}\r\n \r\n get assignedActivatedNodes() {\r\n return this.node.childSections ? this.node.childSections.filter(m => m.isActivated && this.context.hasActionableContent(m)).sort(Utilities.sortByDisplayOrder) : [];\r\n }\r\n\r\n get questions() {\r\n return this.node.engagementQuestions ? this.node.engagementQuestions.sort(Utilities.sortByDisplayOrder) : [];\r\n }\r\n\r\n getfilteredQuestions(): void {\r\n this.filteredQuestions = this.filteredQuestionsService.getFilteredQuestions\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this._filterIsActive = changes.filterIsActive ? changes.filterIsActive.currentValue : false;\r\n }\r\n\r\n getTooltip(question) {\r\n if (question.isComplete) {\r\n return 'Completed Question';\r\n }\r\n if (question.selectedOptionId != null && !question.isComplete) {\r\n return 'Question with a response not marked Complete';\r\n }\r\n return '';\r\n }\r\n\r\n toggleSection() {\r\n if (this.node) {\r\n this.node.isCollapsed = !this.node.isCollapsed;\r\n }\r\n }\r\n\r\n setActiveSection(node: EngagementSection) {\r\n this.context.setActiveSection(node);\r\n }\r\n\r\n setActiveQuestion(question: EngagementQuestion) {\r\n question.isSelected = true;\r\n this.context.setActiveQuestion(question);\r\n }\r\n\r\n getDisplayText(question: EngagementQuestion) {\r\n return question.name || question.description.substr(0, 40) + '...';\r\n }\r\n\r\n isAssignedToMe(node: EngagementSection) {\r\n return node.inspectionTeamMemberEngagementSections.some(o => o.inspectionTeamMember && o.inspectionTeamMember.employeeId == this.context.me.id);\r\n }\r\n\r\n questionHasChanges(question: EngagementQuestion) {\r\n return this.context.questionHasChanges(question);\r\n }\r\n\r\n questionIsFilteredAndActive(question: EngagementQuestion) {\r\n let filterCriteria = {\r\n isComplete: true,\r\n selectedOptionId: true,\r\n tag: true\r\n };\r\n for(const property in this.filters) {\r\n if(this.filters[property]) {\r\n filterCriteria[property] = this.checkQuestionAgainstFilter(question, property);\r\n }\r\n if(this._filterIsActive && filterCriteria[property]) {\r\n this.filteredQuestionsService.add(question);\r\n }\r\n }\r\n const doesNotMeetFiltercriteria = Object.values(filterCriteria).some(criteria => criteria == false || criteria == null); \r\n return doesNotMeetFiltercriteria || question.isActivated == false ? false : true;\r\n }\r\n \r\n checkQuestionAgainstFilter(question: EngagementQuestion, property) {\r\n switch (property) {\r\n case 'isComplete':\r\n return this.checkQuestionStatus(question, property);\r\n \r\n case 'selectedOptionId':\r\n if(question.selectedOption != null) {\r\n if(question.selectedOption.standardQuestionOption) {\r\n return question.selectedOption.standardQuestionOption.name == this.filters[property];\r\n } else {\r\n return question.selectedOption.text == this.filters[property];\r\n }\r\n } else {\r\n return false;\r\n }\r\n case 'tag':\r\n const hasTag = question.question.questionTags.find(t => t.tag.name == this.filters[property]) ? true : false;\r\n return hasTag;\r\n }\r\n }\r\n\r\n checkQuestionStatus(question: EngagementQuestion, property) {\r\n const questionStatus = this.filters[property];\r\n let {complete, notComplete, saved, withComments} = EngagementQuestionStatus;\r\n switch (questionStatus) {\r\n case complete:\r\n return question.isComplete;\r\n case notComplete:\r\n return !question.isComplete && !question.selectedOptionId;\r\n case saved:\r\n return question.selectedOptionId && !question.isComplete;\r\n case withComments:\r\n return question.engagementQuestionComments.filter(x => !x.isDeleted).length > 0;\r\n }\r\n }\r\n\r\n showNode() {\r\n return this.node.isActivated && this.hasNestedFilteredQuestions(this.node);\r\n }\r\n\r\n hasNestedFilteredQuestions(node: EngagementSection) {\r\n let childNodes = node.childSections ? node.childSections.filter(m => m.isActivated): [];\r\n\r\n return node.engagementQuestions.some(q => this.questionIsFilteredAndActive(q)) || childNodes.some(cn => this.hasNestedFilteredQuestions(cn));\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n \r\n {{node.name}}\r\n \r\n
\r\n
\r\n
    0\" class=\"question-list mb-2\">\r\n \r\n
  1. \r\n \r\n {{getDisplayText(question)}}\r\n \r\n
  2. \r\n
    \r\n
\r\n
    0\">\r\n
  1. \r\n \r\n
  2. \r\n
\r\n
\r\n
\r\n","
\r\n

My Assignments

\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
    \r\n
  1. \r\n \r\n
  2. \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Engagement Code:{{engagement.code}}
Client Name:{{engagement.client?.name}}
 
Team Captain:{{engagement.inspectionLead?.fullName}}
Office:{{engagement.office?.name}}Year:{{engagement.inspectionYear}}
Region:{{engagement.regionCode}}
Focus Section:{{getFocusSection()}}
\r\n
\r\n\r\n
\r\n

Please select a section to complete. 0\">Your actionable sections are:

\r\n
    0\">\r\n
  • \r\n \r\n
  • \r\n
\r\n
\r\n \r\n \r\n Return to inspections list\r\n \r\n
\r\n\r\n
\r\n
\r\n Section:{{currentSection.name}}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {{hoverSectionName}}\r\n
\r\n\r\n
\r\n\r\n
\r\n
0\">\r\n \r\n \r\n \r\n Question {{questionNumber}} of {{numberOfActiveQuestionsInSection}}\r\n \r\n \r\n \r\n Question {{currentFilteredQuestionNumber}} of {{currentFilteredSection.filteredEngagementQuestions.length}}\r\n \r\n \r\n \r\n ( Completed by {{currentQuestion.respondingTeamMember?.employee?.fullName}} on {{formatDate(currentQuestion.responseDate)}})\r\n \r\n \r\n ( Answered by {{currentQuestion.respondingTeamMember?.employee?.fullName}} on {{formatDate(currentQuestion.responseDate)}})\r\n \r\n\r\n \r\n Next up:\r\n \r\n \r\n
\r\n\r\n

\r\n {{currentQuestion.name}}\r\n

\r\n\r\n
\r\n

{{currentQuestion.description}}

\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n Comment is required.\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Comments ({{(currentQuestion && currentComments ? currentComments.length : 0)}})\r\n \r\n \r\n
\r\n
    \r\n
  • \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n

    {{comment.originalText}}

    \r\n
    \r\n
    \r\n

    {{comment.modifiedByUser?.fullName || comment.createdByUser?.fullName}}

    \r\n

    {{formatDate(comment.modifiedDate || comment.createdDate)}}

    \r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Help\r\n \r\n \r\n
\r\n
\r\n
\r\n Questionnaire Navigation\r\n
\r\n

\r\n Use the left sidebar to view a section or question.\r\n

\r\n

\r\n Your assigned sections are indicated by the icon.\r\n Completed questions are indicated by the icon.\r\n The icon indicates a question with a response which is\r\n not marked as complete.\r\n

\r\n
\r\n\r\n
\r\n
\r\n Question Help\r\n
\r\n

{{ currentQuestion.helpText }}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
Please confirm
\r\n \r\n
\r\n
\r\n

\r\n This question has an existing response from another team member. Continue saving? This will\r\n replace the existing response with your submission.\r\n

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { UnitOfWorkService } from '../../../services/unit-of-work/unit-of-work.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { ApplicationInsightsService } from '../../../services/application-insights/application-insights.service';\r\nimport { ServerSideConfigDataService } from '../../../services/server-side-config-data/server-side-config-data.service';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { DialogHelper } from '../../../services/dialog-helper';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { IsBusyService } from '../../../services/is-busy/is-busy.service';\r\nimport Utilities from '../../../services/utilities';\r\nimport * as moment from 'moment';\r\nimport { SharedDataService } from '../../../services/shared-data/shared-data.service';\r\nimport * as model from '../../../../model/model';\r\nimport { QuestionFilters } from '../../../../model/modelDto';\r\nimport * as modelEnum from '../../../../model/modelEnums';\r\nimport { GlobalErrorHandler } from '../../../services/global-error-handler';\r\nimport { EngagementQuestion } from '../../../../model/model';\r\nimport { FilteredQuestionsService } from '../../../services/filtered-questions/filtered-questions.service';\r\nimport 'isomorphic-fetch';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nconst LOADING_KEY: string = 'inspection:loadData';\r\nconst SAVING_KEY: string = 'inspection:saveData';\r\nconst UPDATING_KEY: string = 'inspection:updateData';\r\nconst NO_ANSWER_NEEDED_NAME: string = 'No answer needed';\r\n\r\n@Component({\r\n selector: 'app-my-inspection-admin',\r\n templateUrl: './inspection.component.html',\r\n styleUrls: ['./inspection.component.less']\r\n})\r\nexport class MyInspectionComponent implements OnInit {\r\n @ViewChild('existingAnswerModal', { static: true }) existingAnswerModal: TemplateRef; // Note: TemplateRef\r\n\r\n me: model.Employee;\r\n\r\n isLoading = true;\r\n\r\n engagement: model.Engagement = {} as model.Engagement;\r\n engagementId: number = null;\r\n allEngagementOptions: Array;\r\n sectionId: number = null;\r\n questionId: number = null;\r\n commentText: string = null;\r\n currentComment: model.EngagementQuestionComment = null;\r\n tags: model.Tag[] = [];\r\n availableTags: model.Tag[] = [];\r\n engagementQuestionActivatingTags: number[] = [];\r\n\r\n questionNumber: number = null;\r\n currentFilteredQuestionNumber: number = null;\r\n currentQuestion: model.EngagementQuestion = null;\r\n\r\n hoverSectionName: string = null;\r\n\r\n parentSection: model.EngagementSection = null;\r\n\r\n currentSection: model.EngagementSection = null\r\n previousSection: model.EngagementSection = null;\r\n nextSection: model.EngagementSection = null;\r\n currentFilteredSection: any = {};\r\n\r\n nextQuestionDisabled: boolean = false;\r\n prevQuestionDisabled: boolean = false;\r\n\r\n nextAssignedSection: model.EngagementSection = null;\r\n\r\n public questionFilters: QuestionFilters;\r\n public filterIsActive: boolean = false;\r\n filteredQuestions: object = {};\r\n typingTimer: NodeJS.Timeout;//timer identifier\r\n\r\n private subscriptions = new Subscription();\r\n\r\n constructor(\r\n private uow: UnitOfWorkService,\r\n private appInsights: ApplicationInsightsService,\r\n private errorHandler: GlobalErrorHandler,\r\n private activeRoute: ActivatedRoute,\r\n public router: Router,\r\n public isBusy: IsBusyService,\r\n public dialogHelper: DialogHelper,\r\n private modalService: NgbModal,\r\n private serverData: ServerSideConfigDataService,\r\n private sharedData: SharedDataService,\r\n private filteredQuestionsService: FilteredQuestionsService,\r\n private http: HttpClient\r\n ) {\r\n this.appInsights.logPageView();\r\n this.questionFilters = {\r\n isComplete: null,\r\n selectedOptionId: null,\r\n tag: null\r\n }\r\n this.allEngagementOptions = [];\r\n this.currentFilteredSection.filteredEngagementQuestions = [];\r\n }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(this.serverData.configDataLoaded$.subscribe(() => {\r\n this.me = this.serverData.configData.me;\r\n }));\r\n\r\n this.activeRoute.queryParams.subscribe(routeParams => {\r\n const cachedData = this.sharedData.myEngagements.value;\r\n if (!cachedData || cachedData.id != routeParams.id) {\r\n this.isBusy.set(LOADING_KEY, true, 'Loading engagement data');\r\n Promise\r\n .all([\r\n this.getEngagementById(routeParams.id, routeParams.sid, routeParams.qid),\r\n ])\r\n .then(() => {\r\n this.findSectionById();\r\n this.getAllEngagementOptions();\r\n })\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set(LOADING_KEY, false);\r\n });\r\n } else {\r\n this.engagement = cachedData;\r\n this.getTags()\r\n this.getAllEngagementOptions();\r\n }\r\n });\r\n this.setNextQuestionDisable();\r\n this.setPrevQuestionDisable();\r\n\r\n }\r\n\r\n commentKeyDown() {\r\n\r\n clearTimeout(this.typingTimer);\r\n\r\n }\r\n\r\n commentKeyUp() {\r\n var doneTypingInterval = 1000 //time in ms, 5 second for example\r\n var self = this as any;\r\n clearTimeout(this.typingTimer);\r\n this.commentEdit()\r\n this.typingTimer = setTimeout(function () { self.saveComment() }, doneTypingInterval);\r\n }\r\n\r\n get orderedEngagementQuestionOptions() {\r\n const temp = this.currentQuestion.engagementQuestionOptions ? this.currentQuestion.engagementQuestionOptions.filter(o => !o.isDeleted && (!o.standardQuestionOption || o.standardQuestionOption.name !== NO_ANSWER_NEEDED_NAME)).sort(Utilities.sortByDisplayOrder) : [];\r\n return temp;\r\n }\r\n\r\n ngDoCheck() {\r\n if (Object.keys(this.filteredQuestions).length !== 0) {\r\n this.setCurrentFilteredSection();\r\n }\r\n if (this.filterIsActive && this.currentQuestion) {\r\n this.setCurrentFilteredQuestionNumber();\r\n this.setNextQuestionDisable();\r\n this.setPrevQuestionDisable();\r\n }\r\n }\r\n\r\n ngAfterViewChecked() {\r\n if (this.filterIsActive) {\r\n this.getFilteredQuestions();\r\n }\r\n }\r\n\r\n getFilteredQuestions(): void {\r\n this.filteredQuestionsService.getFilteredQuestions()\r\n .subscribe(filteredQuestions => this.filteredQuestions = filteredQuestions);\r\n }\r\n\r\n canDeactivate(): Observable | boolean {\r\n if (this.uow.hasChanges.value) {\r\n const proceed = this.dialogHelper.confirm();\r\n\r\n proceed.subscribe(result => {\r\n if (result) {\r\n this.uow.rollback();\r\n }\r\n })\r\n\r\n return proceed;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n setAvailableTags() {\r\n this.availableTags = this.tags; \r\n }\r\n\r\n\r\n getEngagementById(id: number, sid?: number, qid?: number) {\r\n this.isBusy.set(LOADING_KEY, true, 'Loading engagement data');\r\n return this.uow.getMyEngagementNodeViewerById(id)\r\n .then(result => {\r\n this.getTags()\r\n if (result && result.length > 0) {\r\n this.engagement = result[0];\r\n this.setAvailableTags();\r\n this.sharedData.setMyEngagements(this.engagement);\r\n\r\n this.engagementId = id;\r\n this.sectionId = sid;\r\n this.questionId = qid;\r\n } else {\r\n this.router.navigate(['./inspections'], { relativeTo: this.activeRoute.parent });\r\n }\r\n this.isBusy.set(LOADING_KEY, false);\r\n });\r\n }\r\n\r\n\r\n getEngagementStatusName(status: modelEnum.EngagementStatus) {\r\n return this.uow.getEngagementStatusName(status);\r\n }\r\n\r\n getProgressStatusName(status: modelEnum.ProgressStatus) {\r\n return this.uow.getProgressStatusName(status);\r\n }\r\n\r\n formatDate(value: any): string {\r\n return moment(value).format('YYYY-MM-DD hh:mm A Z');\r\n }\r\n\r\n\r\n calculatePercentComplete(numerator: number, denominator: number): number {\r\n let value = 0.0;\r\n\r\n if (denominator > 0) {\r\n value = numerator / denominator;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n\r\n expandAll() {\r\n if (this.engagement) {\r\n if (this.engagement.engagementSections && this.engagement.engagementSections.length) {\r\n this.engagement.engagementSections.forEach(m => m.isCollapsed = false);\r\n }\r\n }\r\n }\r\n\r\n collapseAll() {\r\n if (this.engagement) {\r\n if (this.engagement.engagementSections && this.engagement.engagementSections.length) {\r\n this.engagement.engagementSections.forEach(m => m.isCollapsed = true);\r\n }\r\n }\r\n }\r\n\r\n get teamMember(): model.InspectionTeamMember {\r\n return this.engagement && this.engagement.inspectionTeamMembers && this.engagement.inspectionTeamMembers.filter(t => t.employeeId == this.me.id)\r\n ? this.engagement.inspectionTeamMembers.filter(t => t.employeeId == this.me.id)[0] : null;\r\n }\r\n\r\n get isTeamCaptain(): boolean {\r\n return this.engagement ? this.engagement.inspectionLeadId == this.me.id : false;\r\n }\r\n\r\n get canSubmitResponse(): boolean {\r\n return this.engagement && (this.engagement.status == modelEnum.EngagementStatus.active || this.isTeamCaptain);\r\n }\r\n\r\n\r\n get rootEngagementSections() {\r\n return this.engagement && this.engagement.engagementSections && this.engagement.engagementSections.length ? this.engagement.engagementSections\r\n .filter(m => m.parentSectionId == null && m.isActivated)\r\n .sort(Utilities.sortByDisplayOrder) : [];\r\n }\r\n\r\n get myRootSections() {\r\n return this.engagement && this.engagement.engagementSections && this.engagement.engagementSections.length ? this.engagement.engagementSections\r\n .filter(m => m.parentSectionId == null && m.isActivated && m.inspectionTeamMemberEngagementSections.filter(s => s.inspectionTeamMemberId == (this.teamMember.id || null)) && this.hasActionableContent(m))\r\n .sort(Utilities.sortByDisplayOrder) : [];\r\n }\r\n\r\n get currentQuestionOptions() {\r\n return this.currentQuestion && this.currentQuestion.engagementQuestionOptions ? this.currentQuestion.engagementQuestionOptions.sort(Utilities.sortByDisplayOrder) : [];\r\n }\r\n\r\n get currentComments() {\r\n return this.currentQuestion && this.currentQuestion.engagementQuestionComments ? this.currentQuestion.engagementQuestionComments.filter(c => !c.isDeleted && !c.entityAspect.entityState.isAdded()).sort(Utilities.sortByDisplayOrder) : [];\r\n }\r\n\r\n get hasChanges() {\r\n const a = this.uow.engagements.hasChanges.value;\r\n const b = this.uow.engagementSections.hasChanges.value;\r\n const c = this.uow.engagementQuestionComments.hasChanges.value;\r\n const d = this.uow.engagementQuestions.hasChanges.value;\r\n\r\n return a || b || c || d;\r\n }\r\n\r\n get prevSectionNavigationDisabled() {\r\n let disable = true;\r\n if (this.currentSection.parentSection && this.myRootSections.length > 0) {\r\n this.myRootSections[0].childSections.forEach(filteredSection => {\r\n if (this.currentSection.displayOrder > filteredSection.displayOrder || this.myRootSections.some(rootSection => rootSection.id == this.currentSection.parentSection.id)) {\r\n disable = false;\r\n }\r\n });\r\n } else if(this.myRootSections.length > 0 && this.myRootSections.filter(rs => rs.isActivated).findIndex(rs => rs.id == this.currentSection.id) > 0) {\r\n disable = false;\r\n } else {\r\n disable = true;\r\n }\r\n\r\n return disable;\r\n }\r\n\r\n get numberOfActiveQuestionsInSection() {\r\n return this.currentSection.engagementQuestions.filter(q => q.isActivated).length;\r\n }\r\n\r\n undoChanges() {\r\n if (this.hasChanges) {\r\n this.uow.rollback();\r\n }\r\n }\r\n\r\n hasActionableContent(section: model.EngagementSection): boolean {\r\n let hasContent = false;\r\n\r\n if (section.isActivated) {\r\n if (section.engagement.inspectionLeadId == this.me.id) { // show all sections if user is team lead\r\n hasContent = true;\r\n } else if (section.engagementQuestions && section.engagementQuestions.length > 0) {\r\n hasContent = section.inspectionTeamMemberEngagementSections.some(s => { // show section if user is assigned to the section\r\n if( s.inspectionTeamMember != null) {\r\n return s.inspectionTeamMember.employeeId == this.me.id\r\n } else {\r\n return false;\r\n }\r\n });\r\n }\r\n else {\r\n hasContent = section.childSections && section.childSections.some(m => this.hasActionableContent(m));\r\n }\r\n }\r\n\r\n return hasContent;\r\n }\r\n\r\n\r\n reloadEngagementTree() {\r\n this.getEngagementById(this.engagementId);\r\n }\r\n\r\n findSectionById() {\r\n if (this.sectionId) {\r\n if (this.engagement.engagementSections && this.engagement.engagementSections.length) {\r\n this.setActiveSection(this.engagement.engagementSections.find(m => m.id == this.sectionId));\r\n }\r\n else {\r\n this.setActiveSection(null);\r\n }\r\n }\r\n else {\r\n this.setActiveSection(null);\r\n }\r\n }\r\n\r\n findNearestActiveParentSection(section: model.EngagementSection) {\r\n if (section) {\r\n this.parentSection = section.parentSection;\r\n if (this.parentSection) {\r\n if (!this.parentSection.isActivated) {\r\n this.parentSection = this.findNearestActiveParentSection(this.parentSection);\r\n }\r\n }\r\n }\r\n else {\r\n this.parentSection = null;\r\n }\r\n\r\n return this.parentSection;\r\n }\r\n\r\n getFocusSection() {\r\n if (this.currentSection == null || this.currentSection.parentSection == null) {\r\n return \"\";\r\n }\r\n\r\n var temp = this.currentSection;\r\n while (temp.parentSection.parentSection != null) {\r\n temp = temp.parentSection;\r\n }\r\n return temp.name;\r\n\r\n }\r\n\r\n setActiveSection(section: model.EngagementSection) {\r\n this.resetComment();\r\n this.setPreviousSection(section);\r\n this.currentSection = section;\r\n this.setCurrentFilteredSection();\r\n this.setHoverText(null);\r\n\r\n\r\n\r\n this.clearQuestionSelection();\r\n if (this.engagement.engagementSections && this.engagement.engagementSections.length) {\r\n if (section) {\r\n var element = document.getElementById('Node_' + section.id.toString());\r\n if (element != null) {\r\n element.scrollIntoView({ behavior: 'auto', block: 'start', inline: 'start' });\r\n $('#question-scrollbar').scrollLeft(0);\r\n }\r\n }\r\n if (this.currentSection) {\r\n this.sectionId = this.currentSection.id;\r\n\r\n // Check if there is an active question. How is there an active question?\r\n // 1. User selected a Question from either list - left nav (inspection-tree-node-viewer) or center nav (section-list-item)\r\n // 2. User clicked on the section navigator arrow\r\n if (this.questionId) {\r\n if (this.currentSection.engagementQuestions && this.currentSection.engagementQuestions.length) {\r\n const currentQ = this.currentSection.engagementQuestions.find(m => m.id == this.questionId);\r\n // if clicking on a different section while question is selected\r\n if (!currentQ) {\r\n this.questionNumber = 1;\r\n const firstActiveQuestionInSection = this.currentSection.engagementQuestions.find(q => q.isActivated);\r\n if (firstActiveQuestionInSection) {\r\n this.getQuestion(firstActiveQuestionInSection.id)\r\n .then(() => {\r\n this.checkParentSection();\r\n this.setNextQuestionDisable();\r\n this.setPrevQuestionDisable();\r\n });\r\n } else {\r\n this.checkParentSection();\r\n this.setNextQuestionDisable();\r\n this.setPrevQuestionDisable();\r\n }\r\n } else {\r\n // clicking on a question\r\n this.getQuestion(currentQ.id)\r\n .then(() => {\r\n this.questionNumber = this.currentSection.engagementQuestions.filter(q => q.isActivated).indexOf(this.currentQuestion) + 1;\r\n this.checkParentSection();\r\n this.setNextQuestionDisable();\r\n this.setPrevQuestionDisable();\r\n });\r\n }\r\n } else {\r\n this.checkParentSection();\r\n }\r\n } else {\r\n // if no question is currently selected\r\n if (this.currentSection.engagementQuestions && this.currentSection.engagementQuestions.length) {\r\n // user clicks on a Section that has questions\r\n this.getQuestion(this.currentSection.engagementQuestions.find(q => q.isActivated).id)\r\n .then(() => {\r\n this.questionNumber = 1;\r\n this.checkParentSection();\r\n this.setNextQuestionDisable();\r\n this.setPrevQuestionDisable();\r\n });\r\n } else {\r\n // user clicks on a section that has no immediate child question\r\n this.checkParentSection();\r\n }\r\n }\r\n\r\n\r\n\r\n } else {\r\n this.resetComment();\r\n this.sectionId = null;\r\n this.questionId = null;\r\n\r\n this.parentSection = null;\r\n this.currentQuestion = null;\r\n this.previousSection = null;\r\n this.nextSection = null;\r\n this.nextAssignedSection = null;\r\n }\r\n } else {\r\n this.resetComment();\r\n this.sectionId = null;\r\n this.questionId = null;\r\n\r\n this.parentSection = null;\r\n this.currentQuestion = null;\r\n this.previousSection = null;\r\n this.nextSection = null;\r\n this.nextAssignedSection = null;\r\n }\r\n }\r\n\r\n checkQuestionForNoAnswerOption() {\r\n if (this.currentQuestion\r\n && (!this.currentQuestion.selectedOptionId || !this.currentQuestion.isComplete)\r\n && this.hasNoAnswerNeededQuestionOption()) {\r\n let naOption = this.currentQuestion.engagementQuestionOptions.find(x => x.standardQuestionOption.name === NO_ANSWER_NEEDED_NAME);\r\n naOption.commentIsRequired = false;\r\n this.currentQuestion.selectedOptionId = naOption.id;\r\n this.saveResponseForm(true);\r\n }\r\n }\r\n\r\n setPreviousSection(section: model.EngagementSection) {\r\n if (section && section.parentSection) {\r\n // check for sibling children and iteravily check children of children\r\n const siblings = this.findNearestActiveParentSection(section).childSections.filter(m => m.isActivated).sort(Utilities.sortByDisplayOrder);\r\n const currentSectionIndex = siblings.findIndex(sibling => sibling.id == section.id);\r\n\r\n if (siblings.length > 1 && currentSectionIndex != 0) {\r\n const previousSibling = siblings[currentSectionIndex - 1];\r\n\r\n if (previousSibling.childSections.filter(m => m.isActivated).length == 0) {\r\n this.previousSection = previousSibling;\r\n } else {\r\n let childSections = previousSibling.childSections.filter(m => m.isActivated).sort(Utilities.sortByDisplayOrder);\r\n let sectionHasChildren = childSections.length > 0;\r\n\r\n // iteravily check children of children\r\n while (sectionHasChildren) {\r\n let childrenOfChildSections = childSections[childSections.length - 1].childSections.filter(m => m.isActivated);\r\n\r\n if (childrenOfChildSections.length > 0) {\r\n childSections = childrenOfChildSections\r\n } else {\r\n sectionHasChildren = false;\r\n }\r\n }\r\n this.previousSection = childSections[childSections.length - 1];\r\n }\r\n } else if (currentSectionIndex == 0) {\r\n this.previousSection = section.parentSection;\r\n\r\n }\r\n }\r\n }\r\n\r\n checkChildSections() {\r\n const childSections = this.currentSection.childSections.filter(m => m.isActivated).sort(Utilities.sortByDisplayOrder);\r\n this.nextSection = childSections[0];\r\n }\r\n\r\n checkSiblingSections() {\r\n const siblings = this.parentSection.childSections.filter(m => m.isActivated).sort(Utilities.sortByDisplayOrder);\r\n\r\n if (siblings) {\r\n const i = siblings.indexOf(this.currentSection);\r\n const lastIndex = siblings.length - 1;\r\n\r\n if (i == lastIndex) {\r\n this.checkParentSectionForSiblings();\r\n } else {\r\n if (i > 0) {\r\n if (this.filterIsActive) {\r\n this.checkPrevSiblingSectForFilteredQuests(siblings, i);\r\n }\r\n }\r\n\r\n if (i < lastIndex) {\r\n if (this.filterIsActive) {\r\n this.checkNextSiblingSectForFilteredQuests(siblings, i);\r\n } else {\r\n this.nextSection = siblings[i + 1];\r\n }\r\n } else {\r\n this.nextSection = null;\r\n }\r\n }\r\n } else if (this.currentSection.childSections.length > 0) {\r\n this.checkChildSections();\r\n }\r\n }\r\n\r\n checkParentSectionForSiblings() {\r\n if (this.parentSection.parentSection) {\r\n const siblingsOfParent = this.findNearestActiveParentSection(this.parentSection).childSections.filter(m => m.isActivated).sort(Utilities.sortByDisplayOrder);\r\n const indexOfParent = siblingsOfParent.findIndex(sibling => sibling.id == this.currentSection.parentSectionId);\r\n\r\n if (indexOfParent < siblingsOfParent.length - 1) {\r\n this.nextSection = siblingsOfParent[indexOfParent + 1];\r\n }\r\n } else {\r\n this.nextSection = null;\r\n }\r\n }\r\n\r\n checkParentSection() {\r\n this.parentSection = this.findNearestActiveParentSection(this.currentSection);\r\n const rootSectionIndex = this.rootEngagementSections.filter(rs => rs.isActivated).findIndex(rs => rs.id == this.currentSection.id);\r\n\r\n if (this.parentSection) {\r\n if (this.currentSection.parentSectionId == this.parentSection.id) {\r\n if (this.currentSection.childSections.filter(m => m.isActivated).length > 0) {\r\n this.checkChildSections();\r\n } else if (this.parentSection.childSections.filter(m => m.isActivated).length > 1) {\r\n this.checkSiblingSections();\r\n } else {\r\n this.checkParentSectionForSiblings();\r\n }\r\n } else {\r\n this.previousSection = null;\r\n this.nextSection = null;\r\n }\r\n } else if (rootSectionIndex >= 0 && !this.currentSection.childSections.filter(s => s.isActivated).length) {\r\n this.previousSection = this.rootEngagementSections.filter(rs => rs.isActivated)[rootSectionIndex - 1];\r\n this.nextSection = this.rootEngagementSections.filter(rs => rs.isActivated)[rootSectionIndex + 1];\r\n } else {\r\n // if rootsection and does have children\r\n if (rootSectionIndex >= 0) {\r\n this.previousSection = rootSectionIndex ? this.rootEngagementSections.filter(rs => rs.isActivated)[rootSectionIndex - 1] : null;\r\n this.nextSection = this.rootEngagementSections.filter(rs => rs.isActivated)[rootSectionIndex + 1];\r\n }\r\n this.checkChildSections();\r\n }\r\n }\r\n\r\n checkPrevSiblingSectForFilteredQuests(siblings, i) {\r\n let j = i - 1;\r\n let sectionHasFilteredQuestions = false;\r\n while (j >= 0 && !sectionHasFilteredQuestions) {\r\n for (let key in this.filteredQuestions) {\r\n if (siblings[j].id.toString() == key) {\r\n sectionHasFilteredQuestions = true;\r\n }\r\n }\r\n\r\n if (sectionHasFilteredQuestions) {\r\n this.previousSection = siblings[j];\r\n } else if (j == 0 && !sectionHasFilteredQuestions) {\r\n this.previousSection = null;\r\n } if (j > -1 && !sectionHasFilteredQuestions) {\r\n j--;\r\n }\r\n }\r\n }\r\n\r\n checkNextSiblingSectForFilteredQuests(siblings, i) {\r\n let j = i + 1;\r\n let sectionHasFilteredQuestions = false;\r\n while (j < siblings.length && !sectionHasFilteredQuestions) {\r\n for (let key in this.filteredQuestions) {\r\n if (siblings[j].id.toString() == key) {\r\n sectionHasFilteredQuestions = true;\r\n }\r\n }\r\n\r\n if (sectionHasFilteredQuestions) {\r\n this.previousSection = siblings[j];\r\n } else if (j == siblings.length - 1 && !sectionHasFilteredQuestions) {\r\n this.nextSection = null;\r\n } if (j < siblings.length && !sectionHasFilteredQuestions) {\r\n j++;\r\n }\r\n }\r\n }\r\n\r\n closeSection() {\r\n this.setActiveSection(null);\r\n }\r\n\r\n setHoverText(section: model.EngagementSection) {\r\n if (section) {\r\n if (section.name.length > 40) {\r\n this.hoverSectionName = section.name.substr(0, 40) + '...';\r\n } else {\r\n this.hoverSectionName = section.name;\r\n }\r\n }\r\n else {\r\n this.hoverSectionName = null;\r\n }\r\n }\r\n\r\n getQuestion(id: number): Promise {\r\n this.questionId = id;\r\n const questSection = this.engagement.engagementSections.find(s => s.engagementQuestions && s.engagementQuestions.filter(q => q.id == id).length > 0);\r\n const questionLoaded = questSection.engagementQuestions.find(q => q.id == id && q.isActivated);\r\n if (questionLoaded && questionLoaded.isFullyLoaded) {\r\n this.currentQuestion = questionLoaded;\r\n this.currentQuestion.isSelected = true;\r\n this.setNextQuestionDisable();\r\n this.setPrevQuestionDisable();\r\n this.loadActiveComment();\r\n this.checkQuestionForNoAnswerOption();\r\n return new Promise((resolve) => {\r\n resolve(this.currentQuestion);\r\n });\r\n } else {\r\n this.isBusy.set(LOADING_KEY, true);\r\n return this.uow.getEngagementQuestionById(id)\r\n .then((result) => {\r\n this.isBusy.set(LOADING_KEY, false);\r\n if (result[0] && result[0].isActivated) {\r\n const question = result[0];\r\n let eq = this.engagement.engagementSections.find(s => s.id == question.engagementSectionId).engagementQuestions.find(q => q.id == question.id);\r\n eq = question;\r\n this.currentQuestion = eq;\r\n this.currentQuestion.isSelected = true;\r\n this.currentQuestion.isFullyLoaded = true;\r\n this.loadActiveComment();\r\n this.sharedData.setMyEngagements(this.engagement);\r\n if (this.filterIsActive) {\r\n this.setCurrentFilteredQuestionNumber();\r\n }\r\n this.setNextQuestionDisable();\r\n this.setPrevQuestionDisable();\r\n\r\n this.checkQuestionForNoAnswerOption();\r\n return eq;\r\n }\r\n return null;\r\n });\r\n }\r\n }\r\n\r\n loadActiveComment() {\r\n if (this.currentQuestion && this.currentQuestion.engagementQuestionComments && this.currentQuestion.engagementQuestionComments.length) {\r\n const activeComment = this.currentQuestion.engagementQuestionComments.find(c => c.entityAspect.entityState.isAddedModifiedOrDeleted());\r\n if (activeComment) {\r\n this.currentComment = activeComment;\r\n this.commentText = this.currentComment.text;\r\n }\r\n }\r\n }\r\n\r\n loadQuestion(questNumber: number) {\r\n this.resetComment();\r\n if (this.currentQuestion) {\r\n this.clearQuestionSelection();\r\n }\r\n if (this.filterIsActive) {\r\n const engagementSectionId = this.currentSection.id;\r\n const engagementSectFilteredQuestions = this.filteredQuestions[engagementSectionId];\r\n\r\n let questNumberIncremented = questNumber;\r\n let foundNextFilteredQuestion = false;\r\n // nextFilteredQuestionId should be displayOrder = questionNumberIncrememted - 1\r\n // displayOrder should be the question.displayOrder not engagementQuestion.displayOrder\r\n // else this.current this.currentSection.engagementQuestions[questNumberIncremented - 1].id\r\n let nextFilteredQuestionId = this.currentSection.engagementQuestions.filter(q => q.isActivated)[questNumberIncremented - 1].id;\r\n let i = 0;\r\n\r\n while (i < engagementSectFilteredQuestions.length) {\r\n questNumberIncremented++;\r\n i++;\r\n foundNextFilteredQuestion = engagementSectFilteredQuestions.some(q => q.id == nextFilteredQuestionId && q.isActivated);\r\n }\r\n\r\n var element = document.getElementById('Q_' + nextFilteredQuestionId.toString());\r\n if (element != null) {\r\n //console.log(\"Moved to question \" + nextFilteredQuestionId);\r\n element.scrollIntoView({ behavior: 'auto', block: 'nearest', inline: 'start' });\r\n $('#question-scrollbar').scrollLeft(0);\r\n\r\n }\r\n\r\n return this.getQuestion(nextFilteredQuestionId)\r\n .then(() => {\r\n this.questionNumber = questNumber;\r\n\r\n });\r\n }\r\n if (this.currentSection.engagementQuestions.filter(q => q.isActivated)[questNumber - 1] && !this.filterIsActive) {\r\n this.getQuestion(this.currentSection.engagementQuestions.filter(q => q.isActivated)[questNumber - 1].id)\r\n .then(() => {\r\n\r\n var id = this.currentSection.engagementQuestions.filter(q => q.isActivated)[questNumber - 1].id\r\n var element = document.getElementById('Q_' + id.toString());\r\n if (element != null) {\r\n //console.log(\"Moved to question \" + id);\r\n element.scrollIntoView();\r\n }\r\n\r\n this.questionNumber = questNumber;\r\n this.setNextQuestionDisable();\r\n this.setPrevQuestionDisable();\r\n });\r\n }\r\n }\r\n\r\n setActiveQuestion(engQuestion: model.EngagementQuestion) {\r\n this.resetComment();\r\n\r\n if (this.currentQuestion) {\r\n this.clearQuestionSelection();\r\n }\r\n\r\n this.questionId = engQuestion.id;\r\n this.sectionId = engQuestion.engagementSectionId;\r\n this.findSectionById();\r\n }\r\n\r\n clearQuestionSelection() {\r\n if (this.engagement.engagementSections && this.engagement.engagementSections.length) {\r\n this.engagement.engagementSections.forEach(s => {\r\n if (s.engagementQuestions && s.engagementQuestions.length) {\r\n s.engagementQuestions.map(q => q.isSelected = false);\r\n }\r\n });\r\n }\r\n }\r\n\r\n getCurrentQuestionOptions() {\r\n return this.currentQuestion ? this.currentQuestion.engagementQuestionOptions.sort(Utilities.sortByDisplayOrder) : [];\r\n }\r\n\r\n updateCommentLabel(option: model.EngagementQuestionOption) {\r\n if (this.currentQuestion) {\r\n this.currentQuestion.selectedOption = option;\r\n this.currentQuestion.commentRequired = option.commentIsRequired;\r\n }\r\n }\r\n\r\n commentEdit() {\r\n // create new comment entity if new comment\r\n if (!this.currentComment) {\r\n this.currentComment = this.uow.engagementQuestionComments.createEntity();\r\n this.currentComment.engagementQuestionId = this.currentQuestion.id;\r\n this.currentComment.engagementQuestion = this.currentQuestion;\r\n this.currentComment.inspectionTeamMemberId = this.teamMember.id || null;\r\n this.currentComment.inspectionTeamMember = this.teamMember || null;\r\n this.currentQuestion.engagementQuestionComments.push(this.currentComment);\r\n } \r\n if (this.commentText != null) {\r\n this.currentComment.text = this.commentText;\r\n }\r\n }\r\n\r\n editComment(comment: model.EngagementQuestionComment) {\r\n this.currentComment = comment;\r\n this.commentText = comment.text;\r\n }\r\n\r\n deleteComment(comment: model.EngagementQuestionComment) {\r\n const proceed = this.dialogHelper.confirm('Are you sure you would like to delete the comment?');\r\n\r\n proceed.subscribe(result => {\r\n if (result) {\r\n comment.entityAspect.setDeleted()\r\n this.uow.engagementQuestionComments.saveChanges([comment]).then(() => {\r\n if (comment.id == this.currentComment.id) {\r\n this.resetComment();\r\n }\r\n });\r\n }\r\n })\r\n\r\n }\r\n\r\n clearClicked() {\r\n this.clearResponseForm();\r\n\r\n this.saveResponseForm(this.hasNoAnswerNeededQuestionOption());\r\n }\r\n\r\n saveResponseForm(markAsComplete: boolean) {\r\n this.isBusy.set(SAVING_KEY, true, 'Verifying response');\r\n\r\n return this.uow.checkQuestionForExistingResponse(this.currentQuestion.id, this.currentQuestion.selectedOptionId)\r\n .then(result => {\r\n if (result[0] == true) {\r\n this.modalService.open(this.existingAnswerModal, { ariaLabelledBy: 'modal-basic-title' })\r\n .result\r\n .then((response) => {\r\n if (response == 'save') {\r\n return this.saveQuestionResponse(markAsComplete, true);\r\n }\r\n });\r\n }\r\n else {\r\n return this.saveQuestionResponse(markAsComplete, false);\r\n }\r\n })\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set(SAVING_KEY, false);\r\n });\r\n }\r\n\r\n showExistingAnswerModal(): any {\r\n this.modalService.open(this.existingAnswerModal, { ariaLabelledBy: 'modal-basic-title' })\r\n .result\r\n .then((result) => {\r\n return result;\r\n });\r\n }\r\n\r\n\r\n\r\n resetQuestion() {\r\n this.uow.engagementQuestions.cancelChanges(this.currentQuestion);\r\n }\r\n\r\n private async saveComment() {\r\n this.isBusy.set('saving_comment', true);\r\n const commentChanges = this.currentQuestion.engagementQuestionComments.filter(c => c && c.entityAspect.entityState.isAddedModifiedOrDeleted());\r\n if (commentChanges) {\r\n //this.currentQuestion.engagementQuestionComments[1].\r\n commentChanges.forEach(c => c.originalText = c.text);\r\n await this.uow.engagementQuestionComments.saveChanges(this.currentQuestion.engagementQuestionComments)\r\n .then(() => /*this.resetComment()*/ { })\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set('saving_comment', false);\r\n });\r\n } else {\r\n this.isBusy.set('saving_comment', false);\r\n }\r\n }\r\n private async saveQuestionResponse(markAsComplete: boolean, replaceExisting: boolean) {\r\n this.isBusy.set(SAVING_KEY, true, 'Saving your response');\r\n\r\n this.currentQuestion.isComplete = markAsComplete;\r\n this.currentQuestion.respondingTeamMemberId = this.teamMember.id;\r\n this.currentQuestion.respondingTeamMember = this.teamMember;\r\n this.currentQuestion.responseDate = new Date();\r\n this.currentQuestion.completedDate = markAsComplete ? new Date() : null;\r\n\r\n await this.uow.getSelectedOptionActivatingTags(this.engagement.id, this.currentQuestion.id)\r\n .then(results => {\r\n this.engagementQuestionActivatingTags = results.map(tag => tag.tagId);\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n\r\n await this.uow.engagementQuestions.saveChanges([this.currentQuestion])\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n });\r\n\r\n const commentChanges = this.currentQuestion.engagementQuestionComments.filter(c => c && c.entityAspect.entityState.isAddedModifiedOrDeleted());\r\n if (commentChanges) {\r\n commentChanges.forEach(c => c.originalText = c.text);\r\n await this.uow.engagementQuestionComments.saveChanges(this.currentQuestion.engagementQuestionComments)\r\n .then(() => /*this.resetComment()*/ { })\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n });\r\n }\r\n\r\n const updatedSections: model.EngagementSection[] = [];\r\n // Update triggered sections\r\n if (this.currentQuestion.engagementQuestionOptions && this.currentQuestion.engagementQuestionOptions.length) {\r\n const allEQO = this.currentQuestion.engagementQuestionOptions.filter(o => o.engagementSectionEngagementQuestionOptions && o.engagementSectionEngagementQuestionOptions.length);\r\n if (allEQO && allEQO.length) {\r\n allEQO.forEach(o => {\r\n o.engagementSectionEngagementQuestionOptions.forEach(qo => {\r\n if (this.currentQuestion.selectedOptionId == qo.engagementQuestionOptionId) {\r\n qo.engagementSection.isActivated = true;\r\n } else {\r\n qo.engagementSection.isActivated = false;\r\n }\r\n if (!updatedSections.find(s => s.id == qo.engagementSection.id)) {\r\n updatedSections.push(qo.engagementSection);\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n if (this.currentSection && this.currentSection.id == this.currentQuestion.engagementSectionId) {\r\n if (this.currentSection.engagementQuestions.every(q => q.isComplete)) {\r\n if (!updatedSections.find(s => s.id == this.currentSection.id)) {\r\n updatedSections.push(this.currentSection);\r\n }\r\n }\r\n }\r\n\r\n if (updatedSections.length > 0) {\r\n await this.uow.engagementSections.saveChanges(updatedSections)\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n });\r\n }\r\n\r\n if (replaceExisting) {\r\n return this.uow.updateQuestionResponse(this.currentQuestion.id, markAsComplete, new Date(), this.currentQuestion.selectedOptionId, this.commentText, replaceExisting)\r\n .then(result => {\r\n this.resetComment();\r\n\r\n const question = result[0];\r\n\r\n if (question && question.id > 0) {\r\n this.currentQuestion.isComplete = question.isComplete;\r\n this.currentQuestion.selectedOptionId = question.selectedOptionId;\r\n this.currentQuestion.respondingTeamMemberId = question.respondingTeamMemberId;\r\n this.currentQuestion.respondingTeamMember = question.respondingTeamMember;\r\n this.currentQuestion.responseDate = question.responseDate;\r\n this.currentQuestion.engagementQuestionComments = question.engagementQuestionComments;\r\n }\r\n\r\n // Reload the sidebar tree-view, since new sections may have ben activated\r\n this.reloadEngagementTree();\r\n })\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set(SAVING_KEY, false);\r\n });\r\n }\r\n\r\n if (this.engagementQuestionActivatingTags.length) {\r\n this.isBusy.set(UPDATING_KEY, true, 'Updating active questions');\r\n this.uow.updateActivatedEngagementQuestionsByActivatingTags(this.engagement.id, this.engagementQuestionActivatingTags)\r\n .then((result) => {\r\n this.reloadEngagementTree();\r\n })\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set(UPDATING_KEY, false);\r\n })\r\n } else {\r\n this.reloadEngagementTree();\r\n }\r\n }\r\n\r\n resetComment() {\r\n this.currentComment = null;\r\n this.commentText = null;\r\n }\r\n\r\n questionHasChanges(question = this.currentQuestion): boolean {\r\n if (question) {\r\n const a = question.entityAspect.entityState.isModified();\r\n const b = question.engagementQuestionComments && question.engagementQuestionComments.length\r\n ? question.engagementQuestionComments.some(c => c.entityAspect.entityState.isAddedModifiedOrDeleted() || c == this.currentComment)\r\n : false;\r\n const c = this.currentComment && this.currentComment.engagementQuestionId == question.id ? this.currentComment.entityAspect.entityState.isAddedModifiedOrDeleted() : false;\r\n return a || b || c;\r\n }\r\n return false;\r\n }\r\n\r\n cancelChanges(question = this.currentQuestion) {\r\n if (question) {\r\n if (!this.hasNoAnswerNeededQuestionOption()) {\r\n question.entityAspect.rejectChanges();\r\n }\r\n \r\n if (question.engagementQuestionComments && question.engagementQuestionComments.length) {\r\n question.engagementQuestionComments.forEach(c => {\r\n if (c && c.entityAspect.entityState.isAddedModifiedOrDeleted()) {\r\n c.entityAspect.rejectChanges();\r\n }\r\n });\r\n }\r\n if (this.currentComment && this.currentComment.entityAspect.entityState.isAddedModifiedOrDeleted()) {\r\n this.currentComment.entityAspect.rejectChanges();\r\n }\r\n this.currentComment = null;\r\n this.commentText = null;\r\n }\r\n }\r\n\r\n clearResponseForm() {\r\n this.cancelChanges();\r\n\r\n if (!this.hasNoAnswerNeededQuestionOption()) {\r\n this.currentQuestion.selectedOptionId = null;\r\n }\r\n }\r\n\r\n hasNoAnswerNeededQuestionOption() {\r\n return this.currentQuestion\r\n && this.currentQuestion.engagementQuestionOptions\r\n && this.currentQuestion.engagementQuestionOptions\r\n .filter(x => x.standardQuestionOption && x.standardQuestionOption.name === NO_ANSWER_NEEDED_NAME).length > 0;\r\n }\r\n\r\n populateFilterObject(eventValue, property) {\r\n switch (property) {\r\n case 'isComplete':\r\n this.questionFilters.isComplete = eventValue == false ? null : eventValue;\r\n break;\r\n\r\n case 'selectedOptionId':\r\n this.questionFilters.selectedOptionId = eventValue == false ? null : eventValue;\r\n break;\r\n\r\n case 'tag':\r\n this.questionFilters.tag = eventValue == false ? null : eventValue;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n this.setFilterIsActive();\r\n }\r\n\r\n setFilterIsActive() {\r\n let filterIsNotNull = false;\r\n for (const property in this.questionFilters) {\r\n if (this.questionFilters[property]) {\r\n filterIsNotNull = true;\r\n }\r\n }\r\n\r\n this.filterIsActive = filterIsNotNull ? true : false\r\n\r\n if (!this.filterIsActive && this.currentQuestion) {\r\n this.checkParentSection();\r\n }\r\n }\r\n\r\n setCurrentFilteredSection() {\r\n if (this.currentSection != null) {\r\n this.currentFilteredSection = {\r\n ...this.currentSection,\r\n filteredEngagementQuestions: this.filteredQuestions[this.currentSection.id] == undefined ? [] : this.filteredQuestions[this.currentSection.id].filter(q => q.isActivated)\r\n }\r\n }\r\n }\r\n\r\n setCurrentFilteredQuestionNumber() {\r\n this.currentFilteredQuestionNumber = this.getIndexOfFilteredQuestion() + 1;\r\n }\r\n\r\n getIndexOfFilteredQuestion() {\r\n return this.currentFilteredSection.filteredEngagementQuestions.findIndex((question, index) => {\r\n return question.id == this.currentQuestion.id;\r\n });\r\n }\r\n\r\n setNextQuestionDisable() {\r\n if (this.currentSection == null) {\r\n this.nextQuestionDisabled = true;\r\n } else if (!this.filterIsActive) {\r\n this.nextQuestionDisabled = this.questionNumber == this.currentSection.engagementQuestions.filter(q => q.isActivated).length;\r\n } else {\r\n const filteredQuestLength = this.currentFilteredSection.filteredEngagementQuestions.filter(q => q.isActivated).length;\r\n this.nextQuestionDisabled = this.currentQuestion.displayOrder == filteredQuestLength;\r\n }\r\n }\r\n\r\n setPrevQuestionDisable() {\r\n if (!this.filterIsActive) {\r\n this.prevQuestionDisabled = this.questionNumber == 1\r\n } else {\r\n const indexOfCurrentQuestion = this.getIndexOfFilteredQuestion();\r\n this.prevQuestionDisabled = indexOfCurrentQuestion == 0 ? true : false;\r\n }\r\n }\r\n\r\n getTags() {\r\n return this.uow.getActiveTags()\r\n .then(result => {\r\n this.tags = result;\r\n });\r\n }\r\n\r\n getAllEngagementOptions() {\r\n for (let section of this.engagement.engagementSections) {\r\n for (let question of section.engagementQuestions) {\r\n for (let option of question.engagementQuestionOptions) {\r\n if (!this.allEngagementOptions.find(o => o.standardQuestionOptionId == option.standardQuestionOptionId)) {\r\n this.allEngagementOptions.push(option);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n filterQuestions(question: EngagementQuestion) {\r\n const engagementSectionId = question.engagementSectionId;\r\n\r\n if (!this.filteredQuestions[question.engagementSectionId]) {\r\n this.filteredQuestions = {\r\n ...this.filteredQuestions,\r\n [engagementSectionId]: [question],\r\n }\r\n } else if (!this.filteredQuestions[question.engagementSectionId].some(q => q.id == question.id)) {\r\n this.filteredQuestions[question.engagementSectionId].push(question)\r\n }\r\n }\r\n\r\n printReport() {\r\n const engagementId = this.engagement.id;\r\n const statusFilter = this.questionFilters.isComplete == 'null' ? '' : this.questionFilters.isComplete\r\n const answerFilter = this.questionFilters.selectedOptionId == 'null' ? '' : this.questionFilters.selectedOptionId\r\n const tagFilter = this.questionFilters.tag == 'null' ? '' : this.questionFilters.tag;\r\n const currentUrl = window.location.origin;\r\n\r\n this.http.get(\r\n `${currentUrl}/breeze/getEngagementReport?engagementId=${engagementId}&statusFilter=${statusFilter}&answerFilter=${answerFilter}&tagFilter=${tagFilter}`,\r\n { responseType: 'blob' }\r\n )\r\n .toPromise()\r\n .then(response => {\r\n var link = document.createElement('a');\r\n\r\n //use if user is on IE\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n link.target = \"_blank\";\r\n var fileName = `${this.engagement.name}.pdf`;\r\n link.click();\r\n window.navigator.msSaveOrOpenBlob(response, fileName);\r\n } else {\r\n window.open(URL.createObjectURL(response), '_blank');\r\n }\r\n }).catch(e => {\r\n console.error(e);\r\n });\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'home-grid-pager',\r\n inputs: ['page', 'limit', 'pageCount', 'limits'],\r\n templateUrl: './home-pager.component.html'\r\n})\r\nexport class HomeGridPager implements OnInit {\r\n @Input() page: number;\r\n @Input() limit: number;\r\n @Input() pageCount: number;\r\n @Input() limits: number[];\r\n\r\n ngOnInit() {\r\n }\r\n}\r\n","\r\n","import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport Config from '../../services/config';\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { Role } from '../../../model/role';\r\nimport { Router, Route } from '@angular/router';\r\nimport { MsalBroadcastService, MsalService } from '@azure/msal-angular';\r\nimport { filter } from 'rxjs/operators';\r\nimport { InteractionStatus } from '@azure/msal-browser';\r\nimport { Profile } from '../../../typings';\r\nimport { SharedDataService } from '../../services/shared-data/shared-data.service';\r\nimport { ServerSideConfigDataService } from '../../services/server-side-config-data/server-side-config-data.service';\r\n\r\n@Component({\r\n selector: 'app-nav-menu',\r\n templateUrl: './nav-menu.component.html',\r\n styleUrls: ['./nav-menu.component.less']\r\n})\r\nexport class NavMenuComponent implements OnDestroy, OnInit {\r\n appTitle = Config.appTitle;\r\n name: BehaviorSubject = new BehaviorSubject(\"\");\r\n showMenu: boolean;\r\n private userSub: Subscription;\r\n\r\n isAdmin: BehaviorSubject = new BehaviorSubject(false);\r\n isNationalQcAdmin: BehaviorSubject = new BehaviorSubject(false);\r\n isActive: BehaviorSubject = new BehaviorSubject(false);\r\n hasICSAccess: BehaviorSubject = new BehaviorSubject(false);\r\n\r\n routes: Route[] = [];\r\n\r\n constructor(private router: Router, private broadcastService: MsalBroadcastService, private msalService: MsalService, private cd: ChangeDetectorRef, private sharedData: SharedDataService, private serverSide: ServerSideConfigDataService) {\r\n this.showMenu = false;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.userSub = this.broadcastService.inProgress$\r\n .pipe(filter((status: InteractionStatus) => status === InteractionStatus.None))\r\n .subscribe(() => {\r\n this.showMenu = true;\r\n\r\n const account: Profile = this.msalService.instance.getAllAccounts()[0];\r\n\r\n this.name.next(account.idTokenClaims.name);\r\n this.isAdmin.next(account.idTokenClaims && account.idTokenClaims.roles && account.idTokenClaims.roles.includes(Role.admin));\r\n this.isNationalQcAdmin.next(account.idTokenClaims && account.idTokenClaims.roles && account.idTokenClaims.roles.includes(Role.nationalQcAdmin));\r\n this.hasICSAccess.next(account.idTokenClaims && account.idTokenClaims.roles && account.idTokenClaims.roles.includes(Role.icsAccess));\r\n this.isActive.next(account.idTokenClaims.acct === '0');\r\n this.serverSide\r\n .loadServerSideData()\r\n .then(() => { this.getRoutes(); });\r\n });\r\n }\r\n\r\n signOut(): void {\r\n this.msalService.logoutRedirect();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.userSub) {\r\n this.userSub.unsubscribe();\r\n }\r\n }\r\n\r\n getRoutes(): void {\r\n const foundRoutes: Route[] = [];\r\n\r\n if (this.router) {\r\n this.router.config.forEach(route => {\r\n if (route.data && route.data[\"order\"]) { \r\n foundRoutes.push(route);\r\n }\r\n\r\n if (route.children && route.children.length) {\r\n route.children.forEach(childRoute => {\r\n if (childRoute.data && childRoute.data[\"order\"]) {\r\n if (childRoute.data['requiresAdmin'] === true) {\r\n if (this.sharedData.me.value.isAdmin) {\r\n foundRoutes.push(childRoute);\r\n }\r\n } else if (childRoute.data['requiresQcAdmin'] === true) {\r\n if (this.sharedData.me.value.isAdmin || this.sharedData.me.value.isNationalQcAdmin) {\r\n foundRoutes.push(childRoute);\r\n }\r\n } else {\r\n foundRoutes.push(childRoute);\r\n }\r\n }\r\n })\r\n }\r\n })\r\n }\r\n this.routes = foundRoutes.sort((a, b) => {\r\n return Number(a.data[\"order\"]) == Number(b.data[\"order\"]) ? 0 : Number(a.data[\"order\"]) < Number(b.data[\"order\"]) ? -1 : 1;\r\n });\r\n }\r\n\r\n isSelfOrParentRoute(route: Route): boolean {\r\n if (route) {\r\n return this.router.isActive(route.path, true) || (route.path != \"\" && this.router.url.includes(route.path));\r\n }\r\n\r\n return false;\r\n }\r\n\r\n}\r\n\r\n","
\r\n
\r\n
\r\n {{appTitle}}\r\n
\r\n
\r\n
\r\n {{name | async}}\r\n (Logout)\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { UnitOfWorkService } from '../../../services/unit-of-work/unit-of-work.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { ApplicationInsightsService } from '../../../services/application-insights/application-insights.service';\r\nimport { Observable } from 'rxjs';\r\nimport { DialogHelper } from '../../../services/dialog-helper';\r\nimport { IsBusyService } from '../../../services/is-busy/is-busy.service';\r\nimport * as model from '../../../../model/model';\r\nimport * as modelDto from '../../../../model/modelDto';\r\nimport * as modelEnum from '../../../../model/modelEnums';\r\nimport { GlobalErrorHandler } from '../../../services/global-error-handler';\r\nimport { FileService } from '../../../services/file-service/file-service.service';\r\n\r\nconst loadingKey: string = 'inspection-profiles:loadData';\r\nconst saveKey: string = 'inspection-profiles:saveInspectionProfile';\r\nconst importKey: string = 'inspection-profiles:importQuestionnaire'\r\nconst defaultLimit: number = 15;\r\n\r\n@Component({\r\n selector: 'app-inspection-profiles',\r\n templateUrl: './inspection-profiles.component.html',\r\n})\r\nexport class InspectionProfilesComponent implements OnInit {\r\n inspectionProfileSummaries: modelDto.AllInspectionsSummaryDto[] = [];\r\n page: number = 1;\r\n limit: number = defaultLimit;\r\n pageCount: number = 1;\r\n pageLimitOptions = [15, 25, 50, 100];\r\n\r\n filters: modelDto.GridFilter[] = [];\r\n nameFilter: string = null;\r\n statusFilter: string = null;\r\n businessLineFilter: string = null;\r\n\r\n\r\n constructor(\r\n\t\tprivate uow: UnitOfWorkService,\r\n private appInsights: ApplicationInsightsService,\r\n private errorHandler: GlobalErrorHandler,\r\n\t\tprivate activeRoute: ActivatedRoute,\r\n\t\tpublic router: Router,\r\n\t\tpublic isBusy: IsBusyService,\r\n\t\tpublic dialogHelper: DialogHelper,\r\n public fileService: FileService\r\n\t) {\r\n appInsights.logPageView();\r\n }\r\n\r\n ngOnInit() {\r\n this.activeRoute.queryParams.subscribe(routeParams => {\r\n this.page = routeParams.page && !Number.isNaN(routeParams.page) ? parseInt(routeParams.page) : 1;\r\n this.limit = routeParams.limit && !Number.isNaN(routeParams.limit) ? parseInt(routeParams.limit) : defaultLimit;\r\n\r\n this.updateDataGrid();\r\n });\r\n }\r\n\r\n canDeactivate(): Observable | boolean {\r\n if (this.uow.hasChanges.value) {\r\n const proceed = this.dialogHelper.confirm();\r\n\r\n proceed.subscribe(result => {\r\n if (result) {\r\n this.uow.rollback();\r\n }\r\n })\r\n\r\n return proceed;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n\r\n get activeInspectionProfiles() {\r\n return this.inspectionProfileSummaries.sort((a, b) => { return a.inspectionProfile.name.localeCompare(b.inspectionProfile.name); });\r\n }\r\n\r\n\r\n updateFilters(key: string, value: any) {\r\n if (this.filters.some(m => m.key == key)) {\r\n const filter = this.filters.find(m => m.key == key);\r\n filter.value = value;\r\n }\r\n else {\r\n this.filters.push({ key: key, value: value } as modelDto.GridFilter)\r\n }\r\n\r\n this.updateDataGrid();\r\n }\r\n\r\n clearFilters() {\r\n this.filters = [];\r\n this.nameFilter = null;\r\n this.statusFilter = null;\r\n this.businessLineFilter = null;\r\n\r\n this.updateDataGrid();\r\n }\r\n\r\n updateDataGrid() {\r\n this.isBusy.set(loadingKey, true, 'Loading data');\r\n Promise\r\n .all([\r\n this.getPageCount(this.limit),\r\n this.getInspectionProfiles(this.page, this.limit)])\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set(loadingKey, false);\r\n });\r\n }\r\n\r\n getStatusName(status: modelEnum.InspectionProfileStatus) {\r\n return this.uow.getStatusName(status);\r\n }\r\n\r\n getInspectionProfiles(page: number = 1, limit: number = defaultLimit) {\r\n return this.uow.getInspectionProfilesSummary(page, limit, JSON.stringify(this.filters))\r\n .then(result => {\r\n this.inspectionProfileSummaries = result;\r\n });\r\n }\r\n\r\n getPageCount(limit: number = defaultLimit) {\r\n return this.uow.getInspectionProfilesPageCount(limit, JSON.stringify(this.filters))\r\n .then(result => {\r\n this.pageCount = result[0];\r\n });\r\n }\r\n\r\n saveInspectionProfileChanges(profile: modelDto.AllInspectionsSummaryDto, message: string) {\r\n this.isBusy.set(saveKey, true, message);\r\n this.uow.inspectionProfiles.saveChanges([profile.inspectionProfile])\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set(saveKey, false);\r\n });\r\n }\r\n\r\n destroyInspectionProfile(profile: modelDto.AllInspectionsSummaryDto) {\r\n if (profile) {\r\n if (confirm('Are you sure you want to remove \"' + profile.inspectionProfile.name + '\"?')) {\r\n profile.inspectionProfile.entityAspect.setDeleted();\r\n const ind = this.inspectionProfileSummaries.findIndex(i => i.inspectionProfile.id == profile.inspectionProfile.id);\r\n this.inspectionProfileSummaries.splice(ind, 1);\r\n this.saveInspectionProfileChanges(profile, 'Removing questionnaire \"' + profile.inspectionProfile.name + '\"');\r\n }\r\n }\r\n }\r\n\r\n cloneInspectionProfile(profile: modelDto.AllInspectionsSummaryDto) {\r\n if (profile) {\r\n const newName: string = prompt('Please enter a name for the new questionnaire:', profile.inspectionProfile.name);\r\n if (newName && newName.trim() != '') {\r\n this.isBusy.set(saveKey, true, 'Saving copy of \"' + profile.inspectionProfile.name + '\" as \"' + newName + '\"');\r\n this.uow.cloneInspectionProfile(profile.inspectionProfile.id, newName)\r\n .then((newProfile) => {\r\n if (newProfile && newProfile.length > 0) {\r\n this.inspectionProfileSummaries.push(newProfile[0]);\r\n }\r\n })\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n this.isBusy.set(saveKey, false);\r\n })\r\n .finally(() => {\r\n this.isBusy.set(saveKey, false);\r\n });\r\n }\r\n }\r\n }\r\n\r\n import(files) {\r\n if (!files) {\r\n alert('No file selected');\r\n return;\r\n }\r\n\r\n if (files.length > 1) {\r\n alert('Unable to import using multiple files');\r\n return;\r\n }\r\n\r\n this.isBusy.set(importKey, true, 'Performing Import');\r\n\r\n var formData = new FormData();\r\n formData.append(\"file\", files[0]);\r\n\r\n this.fileService.importQuestionnaire(formData)\r\n .then(() => {\r\n this.getInspectionProfiles();\r\n })\r\n .finally(() => {\r\n this.isBusy.set(importKey, false);\r\n });\r\n }\r\n}\r\n","
\r\n

Engagement Review Questionnaires

\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n

Questionnaires

\r\n
\r\n \r\n \r\n Create\r\n \r\n \r\n \r\n
\r\n\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
NameStatusBusiness LineSectionsQuestions
\r\n \r\n
\r\n \r\n \r\n No data to display…\r\n \r\n
\r\n
0\">\r\n \r\n \r\n Edit\r\n \r\n \r\n \r\n
\r\n
{{profile.inspectionProfile.name}}{{getStatusName(profile.inspectionProfile.inspectionProfileStatus)}}{{profile.inspectionProfile.businessLineName()}}{{profile.sectionsCount}}{{profile.questionsCount}}
\r\n
\r\n\r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { UnitOfWorkService } from '../../../services/unit-of-work/unit-of-work.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { ApplicationInsightsService } from '../../../services/application-insights/application-insights.service';\r\nimport { Observable } from 'rxjs';\r\nimport { DialogHelper } from '../../../services/dialog-helper';\r\nimport { IsBusyService } from '../../../services/is-busy/is-busy.service';\r\nimport * as model from '../../../../model/model';\r\nimport * as modelDto from '../../../../model/modelDto';\r\nimport { GlobalErrorHandler } from '../../../services/global-error-handler';\r\n\r\nconst loadingKey: string = 'profile-questions:loadData';\r\nconst saveKey: string = 'profile-questions:saveChanges';\r\nconst defaultLimit: number = 15;\r\n\r\n@Component({\r\n selector: 'app-profile-questions',\r\n templateUrl: './profile-questions.component.html',\r\n})\r\nexport class ProfileQuestionsComponent implements OnInit {\r\n\r\n questions: model.Question[] = [];\r\n page: number = 1;\r\n limit: number = defaultLimit;\r\n pageCount: number = 1;\r\n pageLimitOptions = [15, 25, 50, 100];\r\n\r\n filters: modelDto.GridFilter[] = [];\r\n nameFilter: string = null;\r\n profileFilter: string = null;\r\n sectionFilter: string = null;\r\n tagsFilter: string = null;\r\n\r\n\r\n constructor(\r\n\t\tprivate uow: UnitOfWorkService,\r\n private appInsights: ApplicationInsightsService,\r\n private errorHandler: GlobalErrorHandler,\r\n\t\tprivate activeRoute: ActivatedRoute,\r\n\t\tpublic router: Router,\r\n\t\tpublic isBusy: IsBusyService,\r\n\t\tpublic dialogHelper: DialogHelper\r\n\t) {\r\n appInsights.logPageView();\r\n }\r\n\r\n ngOnInit() {\r\n this.activeRoute.queryParams.subscribe(routeParams => {\r\n this.page = routeParams.page && !Number.isNaN(routeParams.page) ? parseInt(routeParams.page) : 1;\r\n this.limit = routeParams.limit && !Number.isNaN(routeParams.limit) ? parseInt(routeParams.limit) : defaultLimit;\r\n\r\n this.updateDataGrid();\r\n });\r\n }\r\n\r\n canDeactivate(): Observable | boolean {\r\n if (this.uow.hasChanges.value) {\r\n let proceed = this.dialogHelper.confirm();\r\n\r\n proceed.subscribe(result => {\r\n if (result) {\r\n this.uow.rollback();\r\n }\r\n })\r\n\r\n return proceed;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n\r\n get activeProfileQuestions() {\r\n return this.questions.filter(m => !m.entityAspect.entityState.isDeleted() && !m.entityAspect.entityState.isDetached());\r\n }\r\n\r\n getQuestions(page: number = 1, limit: number = defaultLimit) {\r\n return this.uow.getQuestions(page, limit, JSON.stringify(this.filters))\r\n .then(result => {\r\n this.questions = result;\r\n });\r\n }\r\n\r\n getPageCount(limit: number = defaultLimit) {\r\n return this.uow.getQuestionsPageCount(limit, JSON.stringify(this.filters))\r\n .then(result => {\r\n this.pageCount = result[0];\r\n });\r\n }\r\n\r\n updateFilters(key: string, value: any) {\r\n if (this.filters.some(m => m.key == key)) {\r\n let filter = this.filters.find(m => m.key == key);\r\n filter.value = value;\r\n }\r\n else {\r\n this.filters.push({ key: key, value: value } as modelDto.GridFilter)\r\n }\r\n\r\n this.updateDataGrid();\r\n }\r\n\r\n clearFilters() {\r\n this.filters = [];\r\n this.nameFilter = null;\r\n this.profileFilter = null;\r\n this.sectionFilter = null;\r\n this.tagsFilter = null;\r\n\r\n this.updateDataGrid();\r\n }\r\n\r\n updateDataGrid() {\r\n this.isBusy.set(loadingKey, true, 'Loading data');\r\n Promise\r\n .all([\r\n this.getPageCount(this.limit),\r\n this.getQuestions(this.page, this.limit)\r\n ])\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set(loadingKey, false);\r\n });\r\n }\r\n\r\n getDisplayText(question: model.Question) {\r\n return question.name || question.description.substr(0, 40) + '...';\r\n }\r\n\r\n saveProfileQuestionChanges(question: model.Question, message: string) {\r\n this.isBusy.set(saveKey, true, message);\r\n this.uow.questions.saveChanges([question])\r\n .then(() => {\r\n })\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set(saveKey, false);\r\n });\r\n }\r\n\r\n destroyProfileQuestion(question: model.Question) {\r\n if (question) {\r\n if (confirm('Are you sure you want to remove \"' + question.name + '\"?')) {\r\n question.entityAspect.setDeleted();\r\n this.saveProfileQuestionChanges(question, 'Removing question \"' + question.name + '\"');\r\n }\r\n }\r\n }\r\n\r\n cloneProfileQuestion(question: model.Question) {\r\n let uow = this.uow;\r\n if (question) {\r\n let newName: string = prompt('Please enter a name for the new question:', question.name);\r\n if (newName && newName.trim() != '') {\r\n let clone = uow.questions.createEntity();\r\n clone.name = question.name;\r\n clone.description = question.description;\r\n clone.helpText = question.helpText;\r\n clone.profileSection = question.profileSection;\r\n\r\n if (question.questionOptions) {\r\n question.questionOptions.forEach(function (opt) {\r\n let option = uow.questionOptions.createEntity();\r\n option.text = opt.text;\r\n option.standardQuestionOptionId = opt.standardQuestionOptionId;\r\n option.question = clone;\r\n\r\n opt.profileSectionQuestionOptions.forEach(function (psqo) {\r\n let pqo = uow.profileSectionQuestionOptions.createEntity();\r\n pqo.questionOption = option;\r\n pqo.profileSection = psqo.profileSection;\r\n\r\n option.profileSectionQuestionOptions.push(pqo);\r\n });\r\n\r\n clone.questionOptions.push(option);\r\n });\r\n }\r\n\r\n if (question.questionTags) {\r\n question.questionTags.forEach(function (qt) {\r\n let questionTag = uow.questionTags.createEntity();\r\n questionTag.question = clone;\r\n questionTag.tag = qt.tag;\r\n question.questionTags.push(questionTag);\r\n });\r\n }\r\n \r\n this.isBusy.set(saveKey, true, 'Saving copy of \"' + question.name + '\" as \"' + clone.name + '\"');\r\n this.uow.questions.saveChanges([clone])\r\n .then(() => {\r\n this.questions.push(clone);\r\n })\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set(saveKey, false);\r\n });\r\n }\r\n }\r\n }\r\n}\r\n","
\r\n

Engagement Review Questionnaires

\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n

Questions

\r\n \r\n\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
NameQuestionnaireSectionTags
\r\n \r\n
\r\n \r\n \r\n No data to display…\r\n \r\n
\r\n
0\">\r\n \r\n \r\n Edit\r\n \r\n \r\n
\r\n
{{getDisplayText(question)}}\r\n {{question.profileName()}}\r\n \r\n ---\r\n {{question.sectionName()}}\r\n \r\n {{qt.tag.name}}\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { UnitOfWorkService } from '../../../services/unit-of-work/unit-of-work.service';\r\nimport { Router, Route, ActivatedRoute } from '@angular/router';\r\nimport { ApplicationInsightsService } from '../../../services/application-insights/application-insights.service';\r\nimport { Observable } from 'rxjs';\r\nimport { DialogHelper } from '../../../services/dialog-helper';\r\nimport { IsBusyService } from '../../../services/is-busy/is-busy.service';\r\nimport * as model from '../../../../model/model';\r\nimport * as modelDto from '../../../../model/modelDto';\r\nimport { GlobalErrorHandler } from '../../../services/global-error-handler';\r\n\r\nconst loadingKey: string = 'profile-sections:loadData';\r\nconst saveKey: string = 'profile-sections:saveChanges';\r\nconst defaultLimit: number = 15;\r\n\r\n@Component({\r\n selector: 'app-profile-sections',\r\n templateUrl: './profile-sections.component.html',\r\n})\r\nexport class ProfileSectionsComponent implements OnInit {\r\n\r\n profileSections: model.ProfileSection[] = [];\r\n page: number = 1;\r\n limit: number = defaultLimit;\r\n pageCount: number = 1;\r\n pageLimitOptions = [15, 25, 50, 100];\r\n\r\n filters: modelDto.GridFilter[] = [];\r\n nameFilter: string = null;\r\n profileFilter: string = null;\r\n\r\n\r\n constructor(\r\n\t\tprivate uow: UnitOfWorkService,\r\n private appInsights: ApplicationInsightsService,\r\n private errorHandler: GlobalErrorHandler,\r\n\t\tprivate activeRoute: ActivatedRoute,\r\n\t\tpublic router: Router,\r\n\t\tpublic isBusy: IsBusyService,\r\n\t\tpublic dialogHelper: DialogHelper\r\n\t) {\r\n appInsights.logPageView();\r\n }\r\n\r\n ngOnInit() {\r\n this.activeRoute.queryParams.subscribe(routeParams => {\r\n this.page = routeParams.page && !Number.isNaN(routeParams.page) ? parseInt(routeParams.page) : 1;\r\n this.limit = routeParams.limit && !Number.isNaN(routeParams.limit) ? parseInt(routeParams.limit) : defaultLimit;\r\n\r\n this.updateDataGrid();\r\n });\r\n }\r\n\r\n canDeactivate(): Observable | boolean {\r\n if (this.uow.hasChanges.value) {\r\n let proceed = this.dialogHelper.confirm();\r\n\r\n proceed.subscribe(result => {\r\n if (result) {\r\n this.uow.rollback();\r\n }\r\n })\r\n\r\n return proceed;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n\r\n get activeProfileSections() {\r\n return this.profileSections.filter(m => !m.entityAspect.entityState.isDeleted() && !m.entityAspect.entityState.isDetached());\r\n }\r\n\r\n getProfileSections(page: number = 1, limit: number = defaultLimit) {\r\n return this.uow.getProfileSections(page, limit, JSON.stringify(this.filters))\r\n .then(result => {\r\n this.profileSections = result;\r\n });\r\n }\r\n\r\n getPageCount(limit: number = defaultLimit) {\r\n return this.uow.getProfileSectionsPageCount(limit, JSON.stringify(this.filters))\r\n .then(result => {\r\n this.pageCount = result[0];\r\n });\r\n }\r\n\r\n updateFilters(key: string, value: any) {\r\n if (this.filters.some(m => m.key == key)) {\r\n let filter = this.filters.find(m => m.key == key);\r\n filter.value = value;\r\n }\r\n else {\r\n this.filters.push({ key: key, value: value } as modelDto.GridFilter)\r\n }\r\n\r\n this.updateDataGrid();\r\n }\r\n\r\n clearFilters() {\r\n this.filters = [];\r\n this.nameFilter = null;\r\n this.profileFilter = null;\r\n\r\n this.updateDataGrid();\r\n }\r\n\r\n updateDataGrid() {\r\n this.isBusy.set(loadingKey, true, 'Loading data');\r\n Promise\r\n .all([\r\n this.getPageCount(this.limit),\r\n this.getProfileSections(this.page, this.limit)\r\n ])\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set(loadingKey, false);\r\n });\r\n }\r\n\r\n saveProfileSectionChanges(section: model.ProfileSection, message: string) {\r\n this.isBusy.set(saveKey, true, message);\r\n this.uow.profileSections.saveChanges([section])\r\n .then(() => {\r\n })\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set(saveKey, false);\r\n });\r\n }\r\n\r\n destroyProfileSection(section: model.ProfileSection) {\r\n if (section) {\r\n section.entityAspect.setDeleted();\r\n this.saveProfileSectionChanges(section, 'Removing profile section')\r\n }\r\n }\r\n}\r\n","
\r\n

Engagement Review Questionnaires

\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n

Questionnaire Sections

\r\n\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
NameQuestionnaireSectionsQuestions
\r\n \r\n
\r\n \r\n \r\n No data to display…\r\n \r\n
{{section.name}}\r\n {{section.profileName()}}\r\n {{section.sectionCount()}}{{section.questionCount()}}
\r\n
\r\n\r\n \r\n
\r\n
\r\n","import { Component, OnInit, Input, ViewEncapsulation } from '@angular/core';\r\nimport { ApplicationInsightsService } from '../../../../services/application-insights/application-insights.service';\r\nimport { DialogHelper } from '../../../../services/dialog-helper';\r\nimport { IsBusyService } from '../../../../services/is-busy/is-busy.service';\r\nimport { UnitOfWorkService } from '../../../../services/unit-of-work/unit-of-work.service';\r\nimport { CdkDragDrop, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\r\nimport Utilities from '../../../../services/utilities';\r\nimport { InspectionProfile, ProfileSection, Question } from '../../../../../model/model';\r\nimport { GlobalErrorHandler } from '../../../../services/global-error-handler';\r\nimport { Profile } from '../../../../../typings';\r\n\r\n@Component({\r\n selector: 'inspection-dragdrop',\r\n inputs: ['node', 'i', 'inspectionProfile'],\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: './inspection-dragdrop.component.html',\r\n styleUrls: ['./inspection-dragdrop.component.less']\r\n})\r\nexport class InspectionDragdropComponent implements OnInit {\r\n @Input() node: ProfileSection;\r\n @Input() i: number;\r\n @Input() inspectionProfile: InspectionProfile;\r\n @Input() context: any;\r\n @Input() isQuestion: boolean;\r\n\r\n displayEditQuestion: Question = null;\r\n allProfileSectionIds: string[] = [];\r\n unsortedProfileSections: ProfileSection[] = [];\r\n\r\n constructor(\r\n private uow: UnitOfWorkService,\r\n private appInsights: ApplicationInsightsService,\r\n private errorHandler: GlobalErrorHandler,\r\n public isBusy: IsBusyService,\r\n public dialogHelper: DialogHelper\r\n ) { }\r\n\r\n ngOnInit() {\r\n if (this.inspectionProfile && this.inspectionProfile.profileSections) {\r\n this.inspectionProfile.profileSections.forEach(s => this.allProfileSectionIds.push(s.id.toString()));\r\n }\r\n\r\n this.unsortedProfileSections = this.rootProfileSections;\r\n }\r\n\r\n get rootProfileSections() {\r\n if (this.inspectionProfile && this.inspectionProfile.profileSections) {\r\n this.inspectionProfile.profileSections.forEach(s => this.sortSectionAndChildren(s));\r\n return this.inspectionProfile.profileSections.filter(m => m.parentSectionId == null).sort(Utilities.sortByDisplayOrder)\r\n }\r\n\r\n return [];\r\n }\r\n\r\n get hasChanges() {\r\n if (this.isQuestion) {\r\n return this.inspectionProfile.entityAspect.entityState.isAddedModifiedOrDeleted()\r\n || this.inspectionProfile.profileSections.filter(s => s.entityAspect.entityState.isAddedModifiedOrDeleted() ||\r\n s.questions.some(q => q.entityAspect.entityState.isAddedModifiedOrDeleted() || q.initialIndex != null || q.initialSection != null)).length > 0;\r\n }\r\n else if (!this.isQuestion) {\r\n return this.inspectionProfile.entityAspect.entityState.isAddedModifiedOrDeleted()\r\n || this.inspectionProfile.profileSections.filter(s => s.entityAspect.entityState.isAddedModifiedOrDeleted() || s.initialIndex != null).length > 0;\r\n }\r\n }\r\n\r\n toggleSection(section: ProfileSection) {\r\n if (section) {\r\n section.isCollapsed = !section.isCollapsed;\r\n }\r\n }\r\n\r\n sortSectionAndChildren(section: ProfileSection) {\r\n if (section.childSections) {\r\n section.childSections.sort(Utilities.sortByDisplayOrder);\r\n section.childSections.forEach(s => this.sortSectionAndChildren(s));\r\n }\r\n }\r\n\r\n resetDisplayOrder(section: ProfileSection, container: ProfileSection[] = []) {\r\n if (this.isQuestion) {\r\n if (section && section.questions && section.questions.length) {\r\n let i = 1;\r\n section.questions.forEach(q => {\r\n q.displayOrder = i;\r\n i = i + 1;\r\n });\r\n }\r\n }\r\n else if (!this.isQuestion) {\r\n if (container) {\r\n let i = 1;\r\n container.forEach(c => {\r\n console.log(c.name, c.displayOrder, i);\r\n c.displayOrder = i;\r\n i = i + 1;\r\n\r\n this.resetDisplayOrder(null, c.childSections);\r\n });\r\n }\r\n }\r\n }\r\n\r\n checkMoved(section: ProfileSection, question: Question, i: number) {\r\n if (this.isQuestion) {\r\n const q = question.initialIndex != null && question.initialIndex != i && question.initialIndex >= 0;\r\n const s = question.initialSection != null && question.initialSection.id != section.id && section.id >= 0;\r\n return q || s;\r\n }\r\n else if (!this.isQuestion && section.initialIndex !== null && section.initialIndex >= 0) {\r\n return section.initialIndex !== i;\r\n }\r\n }\r\n\r\n undoMove(container: ProfileSection[], section: ProfileSection, question: Question, i: number) {\r\n if (this.isQuestion) {\r\n if (question && section && question.initialSection) {\r\n transferArrayItem(section.questions, question.initialSection.data, i, question.initialIndex);\r\n } else {\r\n moveItemInArray(section.questions, i, question.initialIndex);\r\n }\r\n question.initialIndex = null;\r\n question.initialSection = null;\r\n question.entityAspect.rejectChanges();\r\n }\r\n else if (!this.isQuestion) {\r\n if (container && section) {\r\n moveItemInArray(container, i, section.initialIndex);\r\n }\r\n\r\n section.initialIndex = null;\r\n section.entityAspect.rejectChanges();\r\n }\r\n }\r\n\r\n drop(event: CdkDragDrop) {\r\n if (event.previousContainer == event.container) {\r\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\r\n if (!event.item.data.initialIndex && event.item.data.initialIndex != 0) {\r\n event.item.data.initialIndex = event.previousIndex;\r\n }\r\n } else {\r\n transferArrayItem(event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex);\r\n if (!event.item.data.initialSection) {\r\n event.item.data.initialSection = event.previousContainer;\r\n }\r\n if (!event.item.data.initialIndex && event.item.data.initialIndex != 0) {\r\n event.item.data.initialIndex = event.previousIndex;\r\n }\r\n event.item.data.profileSectionId = event.container.id;\r\n }\r\n }\r\n\r\n // Undo move for all questions\r\n cancelReorderChanges() {\r\n const confirmation = this.dialogHelper.confirm('Undo all changes?');\r\n\r\n confirmation.subscribe(result => {\r\n if (result) {\r\n this.undoAllChanges();\r\n }\r\n });\r\n }\r\n\r\n undoAllChanges() {\r\n this.inspectionProfile.profileSections\r\n .filter(s => s.questions.some(q => q.initialIndex != null || q.initialSection != null))\r\n .forEach(s => {\r\n s.questions.filter(q => q.initialIndex != null || q.initialSection != null).forEach(q => {\r\n const ind = s.questions.findIndex(sq => sq.id == q.id);\r\n if (ind > -1) {\r\n this.undoMove(null, s, q, ind);\r\n }\r\n });\r\n });\r\n }\r\n\r\n closeReorderChanges() {\r\n this.context.reorderQuestions = false;\r\n this.context.reorderSections = false;\r\n }\r\n\r\n saveReorderChanges() {\r\n const confirmation = this.dialogHelper.confirm('Display orders will be reassigned in the current order for all modified sections. Would you like to save your changes?');\r\n confirmation.subscribe(result => {\r\n if (result && this.isQuestion) {\r\n this.isBusy.set('savingQuestions', true, 'Saving');\r\n const moved = this.inspectionProfile.profileSections.filter(s => s.entityAspect.entityState.isAddedModifiedOrDeleted() ||\r\n s.questions.some(q => q.entityAspect.entityState.isAddedModifiedOrDeleted() || q.initialIndex != null || q.initialSection != null));\r\n moved.forEach(s => this.resetDisplayOrder(s));\r\n this.uow.commit()\r\n .then(() => {\r\n this.inspectionProfile.profileSections.forEach(s => {\r\n s.questions.forEach(q => {\r\n q.initialIndex = null;\r\n q.initialSection = null;\r\n });\r\n });\r\n this.isBusy.set('savingQuestions', false, 'Success');\r\n })\r\n .catch((reason) => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set('savingQuestions', false);\r\n });\r\n }\r\n else if (result && !this.isQuestion) {\r\n this.isBusy.set('savingQuestions', true, 'Saving');\r\n const moved = this.inspectionProfile.profileSections.filter(s => s.entityAspect.entityState.isAddedModifiedOrDeleted() || s.initialIndex != null);\r\n moved.forEach(s => this.resetDisplayOrder(null, this.unsortedProfileSections));\r\n this.uow.commit()\r\n .then(() => {\r\n this.inspectionProfile.profileSections.forEach(s => {\r\n s.initialIndex = null;\r\n });\r\n this.isBusy.set('savingQuestions', false, 'Success');\r\n })\r\n .catch((reason) => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set('savingQuestions', false);\r\n });\r\n }\r\n });\r\n }\r\n\r\n setEditQuestion(question: Question) {\r\n if (question) {\r\n this.displayEditQuestion = question;\r\n }\r\n }\r\n\r\n saveDisplayQuestion(question: Question) {\r\n if (question && question.entityAspect.entityState.isModified()) {\r\n //console.log(question);\r\n }\r\n this.displayEditQuestion = null;\r\n }\r\n\r\n getDisplayText(question, max = 60) {\r\n if (question.name) {\r\n if (question.name.length > max) {\r\n return question.name.substr(0, max) + '...';\r\n }\r\n return question.name;\r\n }\r\n if (question.description) {\r\n if (question.description.length > max) {\r\n return question.description.substr(0, max) + '...';\r\n }\r\n return question.description;\r\n }\r\n return '';\r\n }\r\n\r\n}\r\n","
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{ getDisplayText(question) }}\r\n {{ question.displayOrder }}\r\n \r\n \r\n {{ getDisplayText(question) }}\r\n {{ section.name }}\r\n {{ question.displayOrder }}\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{section.name}}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
10\">\r\n \r\n \r\n \r\n
\r\n","import { Component, OnInit, Injector } from '@angular/core';\r\nimport { UnitOfWorkService } from '../../../services/unit-of-work/unit-of-work.service';\r\nimport Utilities from '../../../services/utilities';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { ApplicationInsightsService } from '../../../services/application-insights/application-insights.service';\r\nimport { DialogHelper } from '../../../services/dialog-helper';\r\nimport { Observable } from 'rxjs';\r\nimport { IsBusyService } from '../../../services/is-busy/is-busy.service';\r\nimport * as model from '../../../../model/model';\r\nimport * as modelEnum from '../../../../model/modelEnums';\r\nimport { GlobalErrorHandler } from '../../../services/global-error-handler';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ConfirmationDialogComponent } from '../../shared/confirmation-dialog/confirmation-dialog.component';\r\nimport { SharedDataService } from '../../../services/shared-data/shared-data.service';\r\nimport { FileService } from '../../../services/file-service/file-service.service';\r\n\r\nconst LOADING_KEY: string = 'inspection-profile:loadData';\r\nconst SAVING_KEY: string = 'inspection-profile:saveData';\r\n\r\n@Component({\r\n selector: 'app-inspection-profile',\r\n templateUrl: './inspection-profile-editor.component.html',\r\n})\r\nexport class InspectionProfileAdminComponent implements OnInit {\r\n\r\n inspectionProfileStatuses: { status: modelEnum.InspectionProfileStatus, title: string }[] = [];\r\n industries: model.Industry[] = [];\r\n businessLines: model.BusinessLine[] = [];\r\n standardOptions: model.StandardQuestionOption[] = [];\r\n unassignedQuestions: model.Question[] = [];\r\n tags: model.Tag[] = [];\r\n activatingTags: model.EngagementQuestionActivatingTag[] = [];\r\n\r\n questionToCloneId: number = null;\r\n isExistingQuestion: boolean = false;\r\n\r\n id: string = null;\r\n inspectionProfile: model.InspectionProfile = {} as model.InspectionProfile;\r\n isLoading: boolean = true;\r\n reorderQuestions: boolean = false;\r\n reorderSections: boolean = false;\r\n\r\n constructor(\r\n private activeRoute: ActivatedRoute,\r\n private uow: UnitOfWorkService,\r\n private appInsights: ApplicationInsightsService,\r\n private errorHandler: GlobalErrorHandler,\r\n public router: Router,\r\n public isBusy: IsBusyService,\r\n public dialogHelper: DialogHelper,\r\n private injector: Injector,\r\n private dialog: MatDialog,\r\n private sharedData: SharedDataService,\r\n private fileService: FileService\r\n ) {\r\n appInsights.logPageView();\r\n this.dialog = this.injector.get(MatDialog);\r\n this.inspectionProfileStatuses = uow.inspectionProfileStatuses;\r\n }\r\n\r\n ngOnInit() {\r\n this.activeRoute.queryParams.subscribe(routeParams => {\r\n this.isLoading = true;\r\n this.isBusy.set(LOADING_KEY, true, 'Loading questionnaire data');\r\n Promise\r\n .all([\r\n this.getBusinessLines(),\r\n this.getStandardQuestionOptions(),\r\n this.getUnassignedQuestions(),\r\n this.getTags(),\r\n ])\r\n .then(() => {\r\n this.getInspectionProfile(routeParams.id);\r\n })\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set(LOADING_KEY, false);\r\n this.isLoading = false;\r\n });\r\n });\r\n }\r\n\r\n canDeactivate(): Observable | boolean {\r\n if (this.uow.hasChanges.value) {\r\n console.log(this.uow.getChanges());\r\n let proceed = this.dialogHelper.confirm();\r\n\r\n proceed.subscribe(result => {\r\n if (result) {\r\n this.uow.rollback();\r\n }\r\n })\r\n\r\n return proceed;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n get rootProfileSections() {\r\n return this.inspectionProfile && this.inspectionProfile.profileSections ? this.inspectionProfile.profileSections.filter(m => !m.parentSectionId).sort(Utilities.sortByDisplayOrder) : [];\r\n }\r\n\r\n get currentUnassignedQuestions() {\r\n return this.unassignedQuestions ? this.unassignedQuestions.filter(m => !m.profileSectionId).sort(Utilities.sortByName) : [];\r\n }\r\n\r\n get activeSection(): model.ProfileSection {\r\n return this.inspectionProfile && this.inspectionProfile.profileSections ? this.inspectionProfile.profileSections.find(m => m.isEditing) : {} as model.ProfileSection;\r\n }\r\n\r\n get activeQuestion(): model.Question {\r\n return this.activeSection && this.activeSection.questions ? this.activeSection.questions.find(m => m.isEditing) : {} as model.Question;\r\n }\r\n\r\n get activeQuestionOptions() {\r\n return this.activeQuestion.questionOptions.filter(m => !m.isDeleted).sort(Utilities.sortByDisplayOrder);\r\n }\r\n\r\n get currentTags() {\r\n return this.activeQuestion && this.activeQuestion.questionTags ? this.activeQuestion.questionTags.filter(m => m.tag).sort(Utilities.sortByName) : [];\r\n }\r\n\r\n get canChangeStatus() {\r\n return this.inspectionProfile.id > 0 && (!this.inspectionProfile.engagements || !this.inspectionProfile.engagements.some(m => !m.isDeleted));\r\n }\r\n\r\n get nextQuestion(): model.Question {\r\n const psQuestions = this.activeSection ? this.activeSection.questions : null;\r\n if (psQuestions && this.activeQuestion.id !== psQuestions[psQuestions.length - 1].id) {\r\n const currentQuestionIndex = psQuestions.findIndex(q => q.id == this.activeQuestion.id);\r\n const nextQuest = currentQuestionIndex > -1 ? psQuestions[currentQuestionIndex + 1] : null;\r\n return nextQuest;\r\n } else if (psQuestions && this.activeQuestion.id == psQuestions[psQuestions.length - 1].id) {\r\n const currentPSIndex = this.inspectionProfile.profileSections.findIndex(ps => ps.id == this.activeSection.id);\r\n const newPS = currentPSIndex + 1 <= this.inspectionProfile.profileSections.length - 1 ? this.inspectionProfile.profileSections[currentPSIndex + 1] : null;\r\n if (newPS && newPS.questions.length > 0) {\r\n return newPS.questions[0];\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n get previousQuestion(): model.Question {\r\n const psQuestions = this.activeSection ? this.activeSection.questions : null;\r\n if (psQuestions && this.activeQuestion.id !== psQuestions[0].id) {\r\n const currentQuestionIndex = psQuestions.findIndex(q => q.id == this.activeQuestion.id);\r\n const previousQuest = currentQuestionIndex > -1 ? psQuestions[currentQuestionIndex - 1] : null;\r\n return previousQuest;\r\n } else if (psQuestions && this.activeQuestion.id == psQuestions[0].id) {\r\n const currentPSIndex = this.inspectionProfile.profileSections.findIndex(ps => ps.id == this.activeSection.id);\r\n const newPS = currentPSIndex - 1 >= 0 ? this.inspectionProfile.profileSections[currentPSIndex - 1] : null;\r\n if (newPS && newPS.questions.length > 0) {\r\n return newPS.questions[newPS.questions.length - 1];\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n get hasChanges() {\r\n const a = this.uow.inspectionProfiles.hasChanges.value;\r\n const b = this.uow.questions.hasChanges.value;\r\n const c = this.uow.profileSections.hasChanges.value;\r\n const d = this.uow.profileSectionQuestionOptions.hasChanges.value;\r\n const e = this.uow.questionTags.hasChanges.value;\r\n const f = this.uow.questionOptions.hasChanges.value;\r\n\r\n return a || b || c || d || e || f;\r\n }\r\n\r\n undoChanges() {\r\n if (this.hasChanges) {\r\n this.uow.rollback();\r\n }\r\n }\r\n\r\n getBusinessLines() {\r\n return this.uow.getBusinessLines()\r\n .then(result => {\r\n this.businessLines = result;\r\n });\r\n }\r\n\r\n getStandardQuestionOptions() {\r\n return this.uow.getStandardQuestionOptions()\r\n .then(result => {\r\n this.standardOptions = result;\r\n });\r\n }\r\n\r\n getUnassignedQuestions() {\r\n return this.uow.getUnassignedQuestions()\r\n .then(result => {\r\n this.unassignedQuestions = result;\r\n });\r\n }\r\n\r\n getTags() {\r\n return this.uow.getActiveTags()\r\n .then(result => {\r\n this.tags = result;\r\n });\r\n }\r\n\r\n getInspectionProfile(id: string) {\r\n this.id = id;\r\n\r\n if (id == 'new') {\r\n this.inspectionProfile = this.uow.inspectionProfiles.createEntity();\r\n this.inspectionProfile.inspectionProfileStatus = modelEnum.InspectionProfileStatus.draft;\r\n } else {\r\n this.isBusy.set('questData', true, 'Loading questions');\r\n return this.uow.getInspectionProfileById(parseInt(id))\r\n .then(result => {\r\n if (result && result.length > 0) {\r\n this.inspectionProfile = result[0];\r\n if (this.inspectionProfile.profileSections && this.inspectionProfile.profileSections.length) {\r\n this.inspectionProfile.profileSections.sort(Utilities.sortByDisplayOrder).forEach(s => s.questions.sort(Utilities.sortByDisplayOrder));\r\n }\r\n this.clearQuestionEditor();\r\n }\r\n else {\r\n this.router.navigate(['./inspection-profiles'], { relativeTo: this.activeRoute.parent });\r\n }\r\n })\r\n .catch((reason) => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set('questData', false);\r\n });\r\n }\r\n }\r\n\r\n\r\n addRootSection() {\r\n let name: string = null;\r\n if (name = prompt('Please enter new section name:')) {\r\n const newSection = this.uow.profileSections.createEntity();\r\n newSection.name = name;\r\n newSection.displayOrder = (this.maxNodeOrder(this.inspectionProfile.profileSections) || 0) + 1;\r\n newSection.inspectionProfile = this.inspectionProfile;\r\n\r\n this.uow.profileSections.saveChanges([newSection])\r\n .then(() => {\r\n this.setActiveSection(newSection);\r\n\r\n this.uow.propagateProfileSectionChanges(newSection.id);\r\n });\r\n }\r\n }\r\n\r\n addSection(parentSection: model.ProfileSection) {\r\n let name: string = prompt('Please enter new section name:');\r\n if (name != null) {\r\n const section = this.uow.profileSections.createEntity();\r\n section.name = name;\r\n section.parentSection = parentSection;\r\n section.displayOrder = (this.maxNodeOrder(parentSection.childSections) || 0) + 1;\r\n section.inspectionProfile = this.inspectionProfile;\r\n\r\n this.uow.profileSections.saveChanges([section])\r\n .then(() => {\r\n this.setActiveSection(section);\r\n\r\n this.uow.propagateProfileSectionChanges(section.id);\r\n });\r\n }\r\n }\r\n\r\n saveSectionChanges(section: model.ProfileSection) {\r\n return this.uow.profileSections.saveChanges([section])\r\n .then(() => {\r\n this.uow.propagateProfileSectionChanges(section.id);\r\n });\r\n }\r\n\r\n removeSection(section: model.ProfileSection) {\r\n if (section.id > 0) {\r\n section.entityAspect.setDeleted();\r\n\r\n this.uow.profileSections.saveChanges([section])\r\n .then(() => {\r\n this.uow.propagateProfileSectionChanges(section.id);\r\n });\r\n }\r\n else {\r\n this.uow.profileSections.cancelChanges(section);\r\n }\r\n }\r\n\r\n setActiveSection(section?: model.ProfileSection) {\r\n this.inspectionProfile.profileSections.forEach(m => {\r\n m.questions.forEach(q => q.isEditing = false);\r\n m.isEditing = false;\r\n });\r\n\r\n if (section) {\r\n section.isEditing = true;\r\n }\r\n\r\n this.clearQuestionEditor();\r\n }\r\n\r\n\r\n expandAll() {\r\n if (this.inspectionProfile && this.inspectionProfile.profileSections) {\r\n this.inspectionProfile.profileSections.forEach((m) => { m.isCollapsed = false; })\r\n }\r\n }\r\n\r\n collapseAll() {\r\n if (this.inspectionProfile && this.inspectionProfile.profileSections) {\r\n this.inspectionProfile.profileSections.forEach((m) => { m.isCollapsed = true; })\r\n }\r\n }\r\n\r\n openReorderQuestionComp() {\r\n this.reorderQuestions = true;\r\n }\r\n\r\n openReorderSectionComp() {\r\n this.reorderSections = true;\r\n }\r\n\r\n maxNodeOrder(nodes: model.ProfileSection[]): number {\r\n return nodes && nodes.length > 0 ? Math.max.apply(Math, nodes.map(function (o) { return o.displayOrder; })) : 0;\r\n }\r\n\r\n maxQuestionOrder(questions: model.Question[]): number {\r\n return questions && questions.length > 0 ? Math.max.apply(Math, questions.map(function (o) { return o.displayOrder; })) : 0;\r\n }\r\n\r\n maxOptionOrder(options: model.QuestionOption[]): number {\r\n return options && options.length > 0 ? Math.max.apply(Math, options.map(function (o) { return o.displayOrder; })) : 0;\r\n }\r\n\r\n\r\n addOption() {\r\n if (!this.activeQuestion.questionOptions) {\r\n this.activeQuestion.questionOptions = [];\r\n }\r\n\r\n const option = this.uow.questionOptions.createEntity();\r\n option.standardQuestionOptionId = null;\r\n option.displayOrder = (this.maxOptionOrder(this.activeQuestion.questionOptions) || 0) + 1;\r\n option.question = this.activeQuestion;\r\n }\r\n\r\n removeOption(option: model.QuestionOption) {\r\n if (confirm('Are you sure you want to remove this option?')) {\r\n if (option.id > 0) {\r\n option.isDeleted = true;\r\n }\r\n else {\r\n this.uow.questionOptions.cancelChanges(option);\r\n }\r\n }\r\n }\r\n\r\n checkOption(option: model.QuestionOption, section: model.ProfileSection) {\r\n if (option) {\r\n return this.activeSection && this.activeSection.id == section.id;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n\r\n addTriggeredSection(m: string, option: model.QuestionOption) {\r\n const $select = $(m);\r\n const id = $select.val();\r\n\r\n if (!option.profileSectionQuestionOptions) {\r\n option.profileSectionQuestionOptions = [];\r\n }\r\n\r\n if (!option.profileSectionQuestionOptions.some(m => m.profileSectionId == id)) {\r\n const psqo = this.uow.profileSectionQuestionOptions.createEntity();\r\n const section = this.inspectionProfile.profileSections.find(m => m.id == id);\r\n if (section) {\r\n psqo.profileSection = section\r\n psqo.questionOption = option;\r\n }\r\n\r\n option.profileSectionQuestionOptions.push(psqo);\r\n }\r\n\r\n $select.find('option:selected').prop('disabled', true);\r\n\r\n return $select.find('option:selected').val();\r\n }\r\n\r\n addTriggeredQuestionTag(tag: string, option: model.QuestionOption) {\r\n const $select = $(tag);\r\n const selectedTagId = $select.val();\r\n\r\n if (!option.profileQuestionActivatingTags) {\r\n option.profileQuestionActivatingTags = [];\r\n }\r\n\r\n if (!option.profileQuestionActivatingTags.some(m => m.tagId == selectedTagId)) {\r\n const pqat = this.uow.profileQuestionActivatingTags.createEntity();\r\n const question = option.question;\r\n const tag = this.tags.find(t => t.id == selectedTagId);\r\n\r\n pqat.question = question;\r\n pqat.questionOption = option;\r\n pqat.tag = tag;\r\n\r\n option.profileQuestionActivatingTags.push(pqat);\r\n }\r\n\r\n $select.find('option:selected').prop('disabled', true);\r\n\r\n return $select.find('option:selected').val();\r\n }\r\n\r\n removeSectionFromOption(m: string, option: model.QuestionOption, section: model.ProfileSectionQuestionOption) {\r\n const $select = $(m);\r\n $select.find('option[value=\"' + section.profileSectionId + '\"]').prop('disabled', false);\r\n\r\n if (section.id > 0) {\r\n const associatedSectionActivatingOption = section.profileSection.engagementSections.forEach(es => es.engagementSectionEngagementQuestionOptions.forEach(eseqo => {\r\n if (eseqo.engagementSectionId == es.id && eseqo.engagementQuestionOption.questionOptionId == section.questionOptionId) {\r\n eseqo.engagementSection.isActivated = true;\r\n eseqo.engagementSection.entityAspect.setModified();\r\n eseqo.entityAspect.setDeleted();\r\n }\r\n section.entityAspect.setDeleted();\r\n }));\r\n }\r\n else {\r\n this.uow.profileSectionQuestionOptions.cancelChanges(section);\r\n }\r\n }\r\n\r\n removeTagFromOption(m: string, option: model.QuestionOption, tag: model.ProfileQuestionActivatingTag) {\r\n const $select = $(m);\r\n $select.find('option[value=\"' + tag.id + '\"]').prop('disabled', false);\r\n\r\n if (tag.id > 0) {\r\n const associatedEngagementQuestionActivatingTag = tag.tag.engagementQuestionActivatingTags.find(eqat => eqat.tagId == tag.tagId && tag.questionOptionId == eqat.engagementQuestionOption.questionOptionId);\r\n if (associatedEngagementQuestionActivatingTag) {\r\n associatedEngagementQuestionActivatingTag.entityAspect.setDeleted();\r\n }\r\n tag.entityAspect.setDeleted();\r\n }\r\n else {\r\n this.uow.profileQuestionActivatingTags.cancelChanges(tag);\r\n }\r\n }\r\n\r\n addTag(tagId: number) {\r\n if (!this.activeQuestion.questionTags) {\r\n this.activeQuestion.questionTags = [];\r\n }\r\n\r\n if (!this.activeQuestion.questionTags.some(m => m.tagId == tagId)) {\r\n const qt = this.uow.questionTags.createEntity();\r\n const tag = this.tags.find(m => m.id == tagId);\r\n qt.tag = tag;\r\n qt.question = this.activeQuestion;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n removeTag(tag: model.QuestionTag) {\r\n if (tag.id > 0) {\r\n tag.entityAspect.setDeleted();\r\n }\r\n else {\r\n this.uow.questionTags.cancelChanges(tag);\r\n }\r\n }\r\n\r\n\r\n clearQuestionEditor() {\r\n if (this.activeQuestion) {\r\n this.activeQuestion.isEditing = false;\r\n }\r\n\r\n this.isExistingQuestion = false;\r\n }\r\n\r\n cancelQuestionChanges() {\r\n if (this.activeQuestion) {\r\n this.uow.rollback();\r\n }\r\n\r\n this.clearQuestionEditor();\r\n }\r\n\r\n saveQuestionChanges() {\r\n this.isBusy.set(SAVING_KEY, true, 'Saving changes to current question');\r\n\r\n return this.uow.commit()\r\n .then(() => {\r\n this.isBusy.set(SAVING_KEY, false);\r\n this.isBusy.set(SAVING_KEY, true, 'Done! Propagating question updates to engagements');\r\n\r\n return this.uow.propagateQuestionChanges(this.activeQuestion.id)\r\n .then(() => {\r\n this.clearQuestionEditor();\r\n })\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set(SAVING_KEY, false);\r\n });\r\n })\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set(SAVING_KEY, false);\r\n this.sharedData.setMyEngagements(null);\r\n });\r\n }\r\n\r\n addQuestion() {\r\n this.clearQuestionEditor();\r\n\r\n const question = this.uow.questions.createEntity();\r\n question.isEditing = true;\r\n question.displayOrder = (this.maxQuestionOrder(this.activeSection.questions) || 0) + 1;\r\n question.profileSection = this.activeSection;\r\n }\r\n\r\n editQuestion(question: model.Question) {\r\n this.clearQuestionEditor();\r\n question.isEditing = true;\r\n this.isExistingQuestion = true;\r\n }\r\n\r\n editNavigatedQuestion(question: model.Question) {\r\n if (this.activeQuestion.entityAspect.entityState.isModified()) {\r\n this.dialog.open(ConfirmationDialogComponent, {\r\n data: {\r\n title: \"Confirm\",\r\n content: `There are unsaved changes. Continue without saving?`\r\n }\r\n })\r\n .afterClosed().toPromise().then(response => {\r\n if (response == \"Yes\") {\r\n this.uow.rollback();\r\n this.toNextQuestion(question);\r\n }\r\n });\r\n } else {\r\n this.toNextQuestion(question);\r\n }\r\n }\r\n\r\n toNextQuestion(question: model.Question) {\r\n if (question.profileSectionId !== this.activeSection.id) {\r\n this.setActiveSection(question.profileSection);\r\n }\r\n this.editQuestion(question);\r\n }\r\n\r\n removeQuestion(question: model.Question) {\r\n this.isBusy.set('deleteQuestion', true, 'Deleting question');\r\n if (question.questionOptions.length) {\r\n question.questionOptions.forEach((opt) => {\r\n if (opt.profileSectionQuestionOptions.length) {\r\n while (opt.profileSectionQuestionOptions.length) {\r\n opt.profileSectionQuestionOptions[0].entityAspect.setDeleted();\r\n }\r\n }\r\n });\r\n while (question.questionOptions.length) {\r\n question.questionOptions[0].entityAspect.setDeleted();\r\n }\r\n }\r\n\r\n question.entityAspect.setDeleted();\r\n this.clearQuestionEditor();\r\n this.uow.commit(true)\r\n .then(() => {\r\n this.isBusy.set('deleteQuestion', false);\r\n });;\r\n }\r\n\r\n duplicateQuestion(question: model.Question) {\r\n this.isBusy.set('copyQuestion', true, 'Duplicating question');\r\n const newQuestion = this.uow.questions.createEntity();\r\n newQuestion.name = question.name;\r\n newQuestion.description = question.description;\r\n newQuestion.helpText = question.helpText;\r\n newQuestion.displayOrder = question.displayOrder;\r\n newQuestion.profileSectionId = question.profileSectionId;\r\n\r\n // duplicate all question options\r\n if (question.questionOptions.length) {\r\n question.questionOptions.forEach((option) => {\r\n const newOpt = this.uow.questionOptions.createEntity();\r\n newOpt.text = option.text;\r\n newOpt.displayOrder = option.displayOrder;\r\n newOpt.questionId = newQuestion.id;\r\n newOpt.standardQuestionOptionId = option.standardQuestionOptionId;\r\n newOpt.isNRF = option.isNRF;\r\n newOpt.commentIsRequired = option.commentIsRequired;\r\n\r\n if (option.profileSectionQuestionOptions.length) {\r\n option.profileSectionQuestionOptions.forEach((psqo) => {\r\n const newPSQO = this.uow.profileSectionQuestionOptions.createEntity();\r\n newPSQO.profileSectionId = psqo.profileSectionId;\r\n newPSQO.questionOptionId = newOpt.id;\r\n });\r\n }\r\n });\r\n }\r\n\r\n // duplicate all question tags\r\n if (question.questionTags.length) {\r\n question.questionTags.forEach((tag) => {\r\n const newQTag = this.uow.questionTags.createEntity();\r\n newQTag.questionId = newQuestion.id;\r\n newQTag.tagId = tag.id;\r\n });\r\n }\r\n\r\n const section = this.inspectionProfile.profileSections.find(s => s.id == question.profileSectionId);\r\n section.questions.push(newQuestion);\r\n section.questions.sort(Utilities.sortByDisplayOrder);\r\n newQuestion.isNewQuestion = true;\r\n\r\n this.uow.commit(true)\r\n .then(() => {\r\n this.isBusy.set('copyQuestion', false);\r\n setTimeout(() => newQuestion.isNewQuestion = false, 1000);\r\n });\r\n }\r\n\r\n loadQuestionFromExisting() {\r\n if (this.questionToCloneId) {\r\n if (this.activeQuestion) {\r\n if (this.activeQuestion.name || this.activeQuestion.description || this.activeQuestion.helpText || this.activeQuestion.questionOptions) {\r\n if (confirm('Selecting an unassigned question will override the current values. Continue?')) {\r\n this.loadUnassignedQuestion(this.questionToCloneId);\r\n }\r\n }\r\n else {\r\n this.loadUnassignedQuestion(this.questionToCloneId);\r\n }\r\n }\r\n else {\r\n this.loadUnassignedQuestion(this.questionToCloneId);\r\n }\r\n }\r\n }\r\n\r\n loadUnassignedQuestion(id: number) {\r\n this.uow.questions.cancelChanges(this.activeQuestion);\r\n const questionToClone = this.unassignedQuestions.find(m => m.id == id);\r\n if (questionToClone) {\r\n questionToClone.profileSection = this.activeSection;\r\n questionToClone.isEditing = true;\r\n questionToClone.displayOrder = (this.maxQuestionOrder(this.activeSection.questions) || 0) + 1;\r\n this.isExistingQuestion = false;\r\n }\r\n }\r\n\r\n\r\n getStatusName(status: modelEnum.InspectionProfileStatus) {\r\n const match = this.inspectionProfileStatuses.find(m => m.status == status);\r\n return match ? match.title : 'N/A';\r\n }\r\n\r\n\r\n saveChanges(silent: boolean = false) {\r\n this.uow.inspectionProfiles.saveChanges([this.inspectionProfile])\r\n .then(() => {\r\n if (!confirm('Questionnaire saved! Continue editing \"' + this.inspectionProfile.name + '\"?')) {\r\n this.router.navigate(['./inspection-profiles'], { relativeTo: this.activeRoute.parent });\r\n }\r\n else {\r\n if (this.id == 'new') {\r\n this.router.navigate(['./edit'], { queryParams: { id: this.inspectionProfile.id }, relativeTo: this.activeRoute.parent });\r\n }\r\n }\r\n })\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n });\r\n }\r\n\r\n goHome() {\r\n this.router.navigate(['./inspection-profiles'], { relativeTo: this.activeRoute.parent });\r\n }\r\n}\r\n","
\r\n

Engagement Review Questionnaires

\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n

Manage Questionnaire

\r\n
\r\n

Please note: * indicates a required field

\r\n
\r\n Metadata\r\n
\r\n \r\n
\r\n \r\n Questionnaire name is required.\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

\r\n \r\n Questionnaire sections and questions can be added once Metadata has been saved.\r\n

\r\n
\r\n
0\" [disabled]=\"isLoading\">\r\n Sections & Questions\r\n\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
    \r\n
  1. \r\n \r\n
  2. \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
0 && activeQuestion && activeQuestion.isEditing && !reorderQuestions\">\r\n
Edit question
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n Use this option to assign an existing unassigned question to this section\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n Question text is required.\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n Help text is invalid.\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Standard optionTextEnables sectionEnables questions with tag:
\r\n \r\n \r\n Question contains no options\r\n \r\n
\r\n \r\n \r\n \r\n Select a standard option\r\n \r\n \r\n Required for custom text option\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {{section.profileSection.name}}
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {{activatingTag.tag.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
    \r\n
  • \r\n \r\n \r\n {{qt.tag.name}}\r\n \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
0 && !activeQuestion?.isEditing && reorderQuestions\">\r\n \r\n
\r\n
\r\n
\r\n
0 && !activeQuestion?.isEditing && reorderSections\">\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { UnitOfWorkService } from '../../../services/unit-of-work/unit-of-work.service';\r\nimport Utilities from '../../../services/utilities';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { ApplicationInsightsService } from '../../../services/application-insights/application-insights.service';\r\nimport { Observable } from 'rxjs';\r\nimport { DialogHelper } from '../../../services/dialog-helper';\r\nimport { IsBusyService } from '../../../services/is-busy/is-busy.service';\r\nimport * as model from '../../../../model/model';\r\nimport * as modelDto from '../../../../model/modelDto';\r\nimport { GlobalErrorHandler } from '../../../services/global-error-handler';\r\n\r\nconst LOADING_KEY: string = 'profile-question:loadData';\r\nconst SAVING_KEY: string = 'profile-question:saveChanges';\r\n\r\n@Component({\r\n selector: 'app-profile-question',\r\n templateUrl: './question-editor.component.html',\r\n})\r\nexport class ProfileQuestionAdminComponent implements OnInit {\r\n\r\n inspectionProfileId: number = null;\r\n standardOptions: model.StandardQuestionOption[] = [];\r\n inspectionProfiles: modelDto.InspectionProfileDto[] = [];\r\n profileSections: model.ProfileSection[] = [];\r\n profileSectionsForQuestionOptions: model.ProfileSection[] = [];\r\n tags: model.Tag[] = [];\r\n\r\n id: string = null;\r\n question: model.Question;\r\n isLoading: boolean = true;\r\n wasPreviouslyUnassigned: boolean = false;\r\n\r\n selectedSectionId: number = null;\r\n\r\n constructor(private activeRoute: ActivatedRoute,\r\n private uow: UnitOfWorkService,\r\n private appInsights: ApplicationInsightsService,\r\n private errorHandler: GlobalErrorHandler,\r\n public router: Router,\r\n\t\tpublic isBusy: IsBusyService,\r\n public dialogHelper: DialogHelper\r\n\t) {\r\n appInsights.logPageView();\r\n this.question = uow.questions.createEntity();\r\n }\r\n\r\n ngOnInit() {\r\n this.activeRoute.queryParams.subscribe(routeParams => {\r\n this.isLoading = true;\r\n this.isBusy.set(LOADING_KEY, true, 'Loading data');\r\n Promise\r\n .all([\r\n this.getStandardQuestionOptions(),\r\n this.getInspectionProfiles(),\r\n this.getSectionsForProfile(),\r\n this.getTags()\r\n ])\r\n .then(() => {\r\n this.getQuestion(routeParams.id);\r\n })\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set(LOADING_KEY, false);\r\n this.isLoading = false;\r\n });\r\n });\r\n }\r\n\r\n canDeactivate(): Observable | boolean {\r\n if (this.uow.hasChanges.value) {\r\n let proceed = this.dialogHelper.confirm();\r\n\r\n proceed.subscribe(result => {\r\n if (result) {\r\n this.uow.rollback();\r\n }\r\n })\r\n\r\n return proceed;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n\r\n getStandardQuestionOptions() {\r\n return this.uow.getStandardQuestionOptions()\r\n .then(result => {\r\n this.standardOptions = result;\r\n });\r\n }\r\n\r\n getInspectionProfiles() {\r\n return this.uow.getInspectionProfilesForLookup()\r\n .then(result => {\r\n this.inspectionProfiles = result;\r\n });\r\n }\r\n\r\n getProfileSections() {\r\n return this.uow.getProfileSectionsForLookup()\r\n .then(result => {\r\n this.profileSections = result;\r\n });\r\n }\r\n\r\n getTags() {\r\n return this.uow.getActiveTags()\r\n .then(result => {\r\n this.tags = result;\r\n });\r\n }\r\n\r\n getDisplayText(question: model.Question) {\r\n return question.name || question.description.substr(0, 40) + '...';\r\n }\r\n\r\n\r\n get activeInspectionProfiles() {\r\n return this.inspectionProfiles.sort(Utilities.sortByName);\r\n }\r\n\r\n get activeProfileSections() {\r\n return this.profileSections.sort(Utilities.sortByName);\r\n }\r\n\r\n get availableProfileSections() {\r\n return this.profileSectionsForQuestionOptions.sort(Utilities.sortByName);\r\n }\r\n\r\n get activeQuestionOptions() {\r\n return this.question.questionOptions.filter(m => !m.isDeleted).sort(Utilities.sortByDisplayOrder);\r\n }\r\n\r\n get activeQuestionTags() {\r\n return this.question.questionTags.filter(m => !m.isDeleted).sort(Utilities.sortByName);\r\n }\r\n\r\n get hasChanges() {\r\n const a = this.uow.hasChanges.value;\r\n return a;\r\n }\r\n\r\n undoChanges() {\r\n if (this.hasChanges) {\r\n this.uow.rollback();\r\n }\r\n }\r\n\r\n\r\n maxOptionOrder(options: model.QuestionOption[]): number {\r\n return options && options.length > 0 ? Math.max.apply(Math, options.map(function (o) { return o.displayOrder; })) : 0;\r\n }\r\n\r\n\r\n getSectionsForProfile() {\r\n if (this.inspectionProfileId) {\r\n if (this.question.profileSection && this.question.profileSection.inspectionProfileId !== this.inspectionProfileId) {\r\n this.question.profileSectionId = null;\r\n }\r\n\r\n return this.uow.getSectionsForInspectionProfile(this.inspectionProfileId)\r\n .then(result => {\r\n this.profileSections = result;\r\n });\r\n }\r\n else {\r\n this.question.profileSectionId = null;\r\n this.profileSections = [];\r\n }\r\n }\r\n\r\n getProfileSectionsForSection() {\r\n if (this.question && this.question.profileSectionId > 0) {\r\n return this.uow.getProfileSectionsForSection(this.question.profileSectionId)\r\n .then(result => {\r\n this.profileSectionsForQuestionOptions = result;\r\n\r\n this.uow.getMaxQuestionDisplayOrder(this.question.profileSectionId)\r\n .then(result => {\r\n this.question.displayOrder = result[0];\r\n });\r\n });\r\n }\r\n else {\r\n this.profileSectionsForQuestionOptions = [];\r\n }\r\n }\r\n\r\n getQuestion(id: string) {\r\n this.id = id;\r\n this.uow.questions.cancelChanges(this.question);\r\n\r\n if (id == 'new') {\r\n this.question = this.uow.questions.createEntity();\r\n this.question.displayOrder = 0;\r\n\r\n this.getProfileSectionsForSection();\r\n } else {\r\n const qid = parseInt(id);\r\n if (!isNaN(qid)) {\r\n return this.uow.getQuestionById(qid)\r\n .then(result => {\r\n if (result && result.length > 0) {\r\n this.question = result[0];\r\n\r\n if (this.question) {\r\n if (this.question.profileSection) {\r\n this.inspectionProfileId = this.question.profileSection.inspectionProfileId;\r\n\r\n this.getSectionsForProfile();\r\n }\r\n else {\r\n this.wasPreviouslyUnassigned = true;\r\n\r\n this.getProfileSectionsForSection();\r\n }\r\n }\r\n else {\r\n this.router.navigate(['./profile-questions'], { relativeTo: this.activeRoute.parent });\r\n }\r\n }\r\n else {\r\n this.router.navigate(['./profile-questions'], { relativeTo: this.activeRoute.parent });\r\n }\r\n });\r\n }\r\n else {\r\n this.router.navigate(['./profile-questions'], { relativeTo: this.activeRoute.parent });\r\n }\r\n }\r\n }\r\n\r\n\r\n addOption() {\r\n const option = this.uow.questionOptions.createEntity();\r\n option.text = null;\r\n option.standardQuestionOptionId = null;\r\n option.displayOrder = (this.maxOptionOrder(this.question.questionOptions) || 0) + 1;\r\n option.question = this.question;\r\n }\r\n\r\n removeOption(option: model.QuestionOption) {\r\n if (confirm('Are you sure you want to remove this option?')) {\r\n if (option.id > 0) {\r\n option.isDeleted = true;\r\n }\r\n else {\r\n this.uow.questionOptions.cancelChanges(option);\r\n }\r\n }\r\n }\r\n\r\n checkOption(options: model.ProfileSectionQuestionOption[], section: model.ProfileSection) {\r\n if (options) {\r\n return options.some(m => m.profileSectionId == section.id);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n addTriggeredSection(m: string, option: model.QuestionOption) {\r\n const $select = $(m);\r\n const id = $select.val();\r\n\r\n if (!option.profileSectionQuestionOptions.some(m => m.profileSectionId == id)) {\r\n const psqo = this.uow.profileSectionQuestionOptions.createEntity();\r\n const section = this.profileSectionsForQuestionOptions.find(m => m.id == id);\r\n if (section) {\r\n psqo.profileSection = section\r\n psqo.questionOption = option;\r\n }\r\n\r\n option.profileSectionQuestionOptions.push(psqo);\r\n }\r\n\r\n\r\n $select.find('option:selected').prop('disabled', true);\r\n\r\n return $select.find('option:selected').val();\r\n }\r\n\r\n removeSectionFromOption(m: string, option: model.QuestionOption, section: model.ProfileSectionQuestionOption) {\r\n const $select = $(m);\r\n $select.find('option[value=\"' + section.profileSectionId + '\"]').prop('disabled', false);\r\n\r\n if (section.id > 0) {\r\n section.entityAspect.setDeleted();\r\n }\r\n else {\r\n this.uow.profileSectionQuestionOptions.cancelChanges(section);\r\n }\r\n }\r\n\r\n addTag(tagId: number) {\r\n if (!this.question.questionTags.some(m => m.tagId == tagId)) {\r\n const qt = this.uow.questionTags.createEntity();\r\n const tag = this.tags.find(m => m.id == tagId);\r\n qt.tag = tag;\r\n qt.question = this.question;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n removeTag(tag: model.QuestionTag) {\r\n if (confirm('Are you sure you want to remove tag \"' + tag.tag.name + '\"?')) {\r\n if (tag.id > 0) {\r\n tag.entityAspect.setDeleted();\r\n }\r\n else {\r\n this.uow.questionTags.cancelChanges(tag);\r\n }\r\n }\r\n }\r\n\r\n\r\n saveChanges() {\r\n this.isBusy.set(SAVING_KEY, true, 'Saving question');\r\n\r\n // Is this a new question?\r\n if (this.id == 'new') {\r\n if (this.question.profileSectionId) {\r\n this.uow.getMaxQuestionDisplayOrder(this.question.profileSectionId)\r\n .then(result => {\r\n this.question.displayOrder = result[0];\r\n\r\n return this.saveNow();\r\n })\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set(SAVING_KEY, false);\r\n });\r\n }\r\n else {\r\n return this.saveNow();\r\n }\r\n }\r\n else {\r\n return this.saveNow();\r\n }\r\n\r\n }\r\n\r\n\r\n saveNow() {\r\n return this.uow.commit()\r\n .then(() => {\r\n if (this.question.profileSectionId) {\r\n this.isBusy.set(SAVING_KEY, true, 'Propagating question updates to engagements');\r\n\r\n return this.uow.propagateQuestionChanges(this.question.id)\r\n .then(() => {\r\n if (!confirm('Done! Continue editing \"' + this.getDisplayText(this.question) + '\"?')) {\r\n this.router.navigate(['./profile-questions'], { relativeTo: this.activeRoute.parent });\r\n }\r\n else {\r\n if (this.id == 'new') {\r\n this.router.navigate(['./profile-question'], { queryParams: { id: this.question.id }, relativeTo: this.activeRoute.parent });\r\n }\r\n }\r\n })\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set(SAVING_KEY, false);\r\n });\r\n }\r\n else {\r\n if (!confirm('Done! Continue editing \"' + this.getDisplayText(this.question) + '\"?')) {\r\n this.router.navigate(['./profile-questions'], { relativeTo: this.activeRoute.parent });\r\n }\r\n else {\r\n if (this.id == 'new') {\r\n this.router.navigate(['./profile-question'], { queryParams: { id: this.question.id }, relativeTo: this.activeRoute.parent });\r\n }\r\n }\r\n }\r\n })\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set(SAVING_KEY, false);\r\n });\r\n }\r\n\r\n\r\n goHome() {\r\n this.router.navigate(['./profile-questions'], { relativeTo: this.activeRoute.parent });\r\n }\r\n}\r\n","
\r\n

Engagement Review Questionnaire Management

\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n

Manage Question

\r\n
\r\n
\r\n
\r\n \r\n \r\n Please note: * indicates a required field\r\n
\r\n
\r\n

\r\n Can be left empty if creating an unassigned question\r\n

\r\n
\r\n \r\n
\r\n 0 && question.profileSectionId != null\"\r\n [(ngModel)]=\"inspectionProfileId\"\r\n (change)=\"getSectionsForProfile()\">\r\n \r\n {{item.name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n 0 && question.profileSectionId != null\"\r\n [(ngModel)]=\"question.profileSectionId\"\r\n (change)=\"getProfileSectionsForSection()\">\r\n \r\n {{item.name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n Question text is required.\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n Help text is invalid.\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Standard optionTextEnables sectionEnables questions with tag:
\r\n \r\n \r\n Question contains no options\r\n \r\n
\r\n \r\n \r\n \r\n Select a standard option\r\n \r\n \r\n Required for custom text option\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {{section.profileSection.name}}
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {{section.profileSection.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
    \r\n
  • \r\n \r\n \r\n {{qt.tag.name}}\r\n \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport Utilities from '../../../services/utilities';\r\nimport { ProfileSection, InspectionProfile, Question } from '../../../../model/model';\r\nimport { ConfirmationDialogComponent } from '../../shared/confirmation-dialog/confirmation-dialog.component';\r\n\r\n@Component({\r\n selector: 'section-tree-node-editor',\r\n inputs: ['node', 'i', 'inspectionProfile'],\r\n templateUrl: './tree-node-editor.component.html'\r\n})\r\n\r\nexport class ProfileSectionTreeNode implements OnInit {\r\n @Input() node: ProfileSection;\r\n @Input() i: number;\r\n @Input() inspectionProfile: InspectionProfile;\r\n @Input() context: any;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n this.setActiveSection();\r\n }\r\n\r\n get currentNodes() {\r\n return this.node.childSections ? this.node.childSections.filter(m => !m.isDeleted).sort(Utilities.sortByDisplayOrder) : [];\r\n }\r\n\r\n setActiveSection() {\r\n this.context.setActiveSection(this.node);\r\n }\r\n\r\n toggleSection() {\r\n this.node.isCollapsed = !this.node.isCollapsed;\r\n }\r\n\r\n addSection() {\r\n this.context.addSection(this.node);\r\n }\r\n\r\n remove() {\r\n if (confirm('Are you sure you want to remove \"' + this.node.name + '\"?')) {\r\n this.context.removeSection(this.node);\r\n }\r\n }\r\n\r\n addQuestion() {\r\n this.setActiveSection();\r\n\r\n this.context.addQuestion();\r\n }\r\n\r\n editQuestion(question: Question) {\r\n this.setActiveSection();\r\n\r\n this.context.editQuestion(question);\r\n }\r\n\r\n removeQuestion(question: Question) {\r\n this.context.dialog.open(ConfirmationDialogComponent, {\r\n data: {\r\n title: \"Confirm\",\r\n content: `Are you sure you want to remove \"${this.getDisplayText(question)}\"?`\r\n }\r\n })\r\n .afterClosed().toPromise().then(response => {\r\n if (response == \"Yes\") {\r\n this.context.removeQuestion(question);\r\n }\r\n });\r\n }\r\n\r\n duplicateQuestion(question: Question) {\r\n this.context.dialog.open(ConfirmationDialogComponent, {\r\n data: {\r\n title: \"Confirm\",\r\n content: `Are you sure you want to duplicate \"${this.getDisplayText(question)}\"?`\r\n }\r\n })\r\n .afterClosed().toPromise().then(response => {\r\n if (response == \"Yes\") {\r\n this.context.duplicateQuestion(question);\r\n }\r\n });\r\n }\r\n\r\n getDisplayText(question: Question) {\r\n return question.name || question.description.substr(0, 40) + '...';\r\n }\r\n\r\n saveSectionChanges() {\r\n return this.context.saveSectionChanges(this.node);\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n 0 || node.questions.length > 0\"\r\n class=\"input-group-text\"\r\n [placement]=\"['top', 'auto']\"\r\n ngbTooltip=\"To be removed, this section must have no child sections or questions\" container=\"body\">\r\n \r\n \r\n
\r\n
\r\n Section name is required.\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
    0\">\r\n
  1. \r\n \r\n
  2. \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'profile-nav-menu',\r\n inputs: ['currentTab'],\r\n template: ``\r\n})\r\nexport class ProfileNavMenu implements OnInit {\r\n @Input() currentTab: string;\r\n\r\n ngOnInit() {\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { ApplicationInsightsService } from '../../services/application-insights/application-insights.service';\r\nimport { UnitOfWorkService } from '../../services/unit-of-work/unit-of-work.service';\r\nimport { IsBusyService } from '../../services/is-busy/is-busy.service';\r\nimport { ExportEngagementQuestionsDto } from '../../../model/modelDto';\r\nimport { GlobalErrorHandler } from '../../services/global-error-handler';\r\n\r\n@Component({\r\n selector: 'app-export-questions-and-responses',\r\n templateUrl: './export-questions-and-responses.component.html',\r\n})\r\nexport class ExportQuestionsAndResponsesComponent implements OnInit {\r\n\r\n inspectionYears: number[] = [];\r\n inspectionYear: number = new Date().getFullYear();\r\n\r\n constructor(\r\n private uow: UnitOfWorkService,\r\n private appInsights: ApplicationInsightsService,\r\n public isBusy: IsBusyService,\r\n private errorHandler: GlobalErrorHandler\r\n ) {\r\n appInsights.logPageView();\r\n }\r\n\r\n ngOnInit() {\r\n this.getInspectionYears();\r\n }\r\n\r\n getInspectionYears() {\r\n return this.uow.getInspectionYears()\r\n .then(result => {\r\n this.inspectionYears = result;\r\n });\r\n }\r\n\r\n createExportFile(questions: ExportEngagementQuestionsDto[]) {\r\n\r\n var fileName = \"Questionnaire \" + this.inspectionYear + \".csv\";\r\n\r\n var csv = \"sep=| \\r\\n\\\"Database\\\"|\\\"EngagementCode\\\"|\\\"Client\\\"|\\\"TeamCaptainId\\\"|\\\"TeamCaptain\\\"|\" +\r\n \"\\\"Office\\\"|\\\"Region\\\"|\\\"ClientFiscalYearEnd\\\"|\\\"InspectionYear\\\"|\\\"Project\\\"|\\\"Section\\\"|\\\"Name\\\"|\" +\r\n \"\\\"Question\\\"|\\\"Answer\\\"|\\\"AnsweredBy\\\"|\\\"Comment\\\"|\\\"QuestionId\\\"|\\\"Tag\\\"\\r\\n\";\r\n\r\n questions.forEach(q => {\r\n csv += this.csvField('NationalAssuranceInspections');\r\n csv += this.csvField(q.engagementCode);\r\n csv += this.csvField(q.clientName);\r\n csv += this.csvField(q.teamCaptainId);\r\n csv += this.csvField(q.teamCaptainName);\r\n csv += this.csvField(q.office);\r\n csv += this.csvField(q.region);\r\n csv += this.csvField(q.clientFiscalYearEnd ? moment(q.clientFiscalYearEnd).format('YYYY-MM-DD') : null);\r\n csv += this.csvField(q.inspectionYear);\r\n csv += this.csvField(q.project);\r\n csv += this.csvField(q.section);\r\n csv += this.csvField(q.name);\r\n csv += this.csvField(q.question);\r\n csv += this.csvField(q.answer);\r\n csv += this.csvField(q.answeredBy);\r\n csv += this.csvField(q.comment);\r\n csv += this.csvField(q.id);\r\n csv += this.csvField(q.tag, true); \r\n });\r\n\r\n var link = document.createElement(\"a\");\r\n\r\n if ((link).download !== undefined) { //Non IE\r\n var url = URL.createObjectURL(new Blob([csv], { type: 'text/csv;charset=utf-8' }));\r\n link.setAttribute(\"href\", url);\r\n link.setAttribute(\"download\", fileName);\r\n link.style.visibility = \"hidden\";\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n\r\n return csv;\r\n }\r\n\r\n export() {\r\n\r\n this.isBusy.set('admin:loadData', true, 'Loading data');\r\n this.uow.getExportEngagementQuestionsByYear(this.inspectionYear)\r\n .then(questions => {\r\n return this.createExportFile(questions);\r\n })\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set('admin:loadData', false);\r\n });\r\n }\r\n\r\n csvField(val: string, endLine?: boolean) {\r\n if (!val && endLine) {\r\n return \"\\\"NULL\\\"\\r\\n\";\r\n }\r\n\r\n if (!val) {\r\n return \"\\\"NULL\\\"|\";\r\n }\r\n\r\n return '\"' + val + '\"' + (endLine ? \"\\r\\n\" : \"|\");\r\n }\r\n}\r\n","
\r\n

Reports

\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n Export Questions and Responses\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { SharedDataService } from '../../services/shared-data/shared-data.service';\r\n\r\ndeclare var window: any;\r\n@Component({\r\n selector: 'reports-nav-menu',\r\n inputs: ['currentTab'],\r\n templateUrl: './reports-nav.component.html'\r\n})\r\nexport class ReportsNavMenu implements OnInit {\r\n @Input() currentTab: string;\r\n\r\n navItems = [\r\n { id: 'export-questions-and-responses', title: 'Export Questions and Responses' }\r\n ];\r\n\r\n constructor(\r\n private sharedData: SharedDataService\r\n ) { }\r\n\r\n ngOnInit() {\r\n const env = window.location.host;\r\n }\r\n}\r\n","\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { timer, Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-session-timeout',\r\n templateUrl: './session-timeout.component.html',\r\n styleUrls: ['./session-timeout.component.less']\r\n})\r\nexport class SessionTimeoutComponent {\r\n secondsLeft: number;\r\n countDown: Observable;\r\n\r\n get timeLeft(): string {\r\n const minutes = Math.ceil(this.secondsLeft / 60);\r\n\r\n return minutes > 1 ? `${minutes} minutes` : `${this.secondsLeft} second${this.secondsLeft == 1 ? \"\" : \"s\"}`;\r\n }\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.secondsLeft = data.timer;\r\n this.countDown = timer(0, 1000);\r\n this.countDown.subscribe(val => {\r\n this.secondsLeft -= 1;\r\n\r\n if (this.secondsLeft == 0) {\r\n this.dialogRef.close(false);\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n
Are you still there?
\r\n
\r\n
\r\n

Your session will expire in {{timeLeft}}. Please select an option:

\r\n
\r\n
\r\n \r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { SharedDataService } from '../../../services/shared-data/shared-data.service';\r\nimport Utilities from '../../../services/utilities';\r\n\r\n@Component({\r\n selector: 'app-access-denied',\r\n templateUrl: './access-denied.component.html',\r\n styleUrls: ['./access-denied.component.less']\r\n})\r\nexport class AccessDeniedComponent implements OnInit {\r\n constructor(private sharedData: SharedDataService) { }\r\n\r\n get accessType(): string {\r\n return !this.sharedData ? 'site' : this.sharedData.accessType;\r\n }\r\n\r\n ngOnInit(): void {\r\n Utilities.hideLoadingScreen();\r\n }\r\n}\r\n","
\r\n
\r\n

Oh no!

\r\n
\r\n

(∩╹□╹∩)

\r\n
\r\n
\r\n
\r\n

It looks like you don't have access to this {{accessType}}. Please contact the site administrator to request access.

\r\n
\r\n
\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { ServerSideConfigDataService } from '../../../services/server-side-config-data/server-side-config-data.service';\r\nimport * as moment from 'moment';\r\nimport { DIALOG_CANCEL, DIALOG_CLOSE, DIALOG_NO, DIALOG_OK, DIALOG_YES } from './confirmation-dialog.constants';\r\n\r\n@Component({\r\n selector: 'app-confirmation-dialog',\r\n templateUrl: './confirmation-dialog.component.html',\r\n styleUrls: ['./confirmation-dialog.component.less']\r\n})\r\nexport class ConfirmationDialogComponent {\r\n title = '';\r\n content: string;\r\n onlyShowOk = false;\r\n debug: string;\r\n\r\n // used in HTML\r\n get DIALOG_CANCEL() { return DIALOG_CANCEL; }\r\n get DIALOG_CLOSE() { return DIALOG_CLOSE; }\r\n get DIALOG_NO() { return DIALOG_NO; }\r\n get DIALOG_OK() { return DIALOG_OK; }\r\n get DIALOG_YES() { return DIALOG_YES; }\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) data: any,\r\n serverSideConfig: ServerSideConfigDataService\r\n ) {\r\n this.title = data.title;\r\n this.content = data.content;\r\n this.onlyShowOk = data.onlyShowOk ? data.onlyShowOk : false;\r\n if (serverSideConfig.configData\r\n && ['Local', 'Development'].indexOf(serverSideConfig.configData.environment) > -1\r\n ) {\r\n this.debug = data.debug;\r\n } else {\r\n this.debug = null;\r\n }\r\n }\r\n\r\n downloadDebugData(): void {\r\n if (this.debug) {\r\n const element = document.createElement('a');\r\n element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(this.debug));\r\n element.setAttribute('download', `debug_${moment().format('MM-DD-YYYY_HH-mm-ss')}.html`);\r\n\r\n element.style.display = 'none';\r\n document.body.appendChild(element);\r\n\r\n element.click();\r\n\r\n document.body.removeChild(element);\r\n }\r\n }\r\n}\r\n","
\r\n
{{title}}
\r\n \r\n
\r\n
{{content}}
\r\n
\r\n \r\n \r\n
\r\n","export const DIALOG_YES = \"Yes\";\r\nexport const DIALOG_NO = \"No\";\r\nexport const DIALOG_OK = \"Ok\";\r\nexport const DIALOG_CANCEL = \"Cancel\";\r\nexport const DIALOG_CLOSE = \"Close\";\r\n","import { Component, EventEmitter, Input, OnInit, Output, OnDestroy } from '@angular/core';\r\nimport * as model from '../../../../model/model';\r\nimport { UnitOfWorkService } from '../../../services/unit-of-work/unit-of-work.service';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-employee-search',\r\n templateUrl: './employee-search.component.html',\r\n styleUrls: ['./employee-search.component.less']\r\n})\r\nexport class EmployeeSearchComponent implements OnInit, OnDestroy {\r\n private _model: any;\r\n list: model.Employee[] = [];\r\n debouncer = new Subject();\r\n subs = new Array();\r\n\r\n @Input()\r\n set employeeList(data: model.Employee[]) {\r\n if (data.length > 0) {\r\n this.list = data;\r\n }\r\n }\r\n @Input() showButton: boolean = false;\r\n @Input() required: boolean = false;\r\n @Input() errorMessage: string = null;\r\n @Input() buttonScreenReaderText: string = null;\r\n @Input() debounceTime = 500;\r\n @Input() \r\n get model(): any { return this._model; }\r\n set model(data: any) {\r\n this._model = data;\r\n this.uow.getEmployees(null, data).then(response => {\r\n this.employeeList = response;\r\n });\r\n }\r\n @Output() modelChange: EventEmitter = new EventEmitter();\r\n @Output() onChange: EventEmitter = new EventEmitter();\r\n @Output() buttonClick: EventEmitter = new EventEmitter();\r\n @Output() onSearch: EventEmitter = new EventEmitter();\r\n\r\n filteredList: model.Employee[] = [];\r\n\r\n constructor(private uow: UnitOfWorkService) {\r\n this.subs.push(this.debouncer\r\n .pipe(debounceTime(this.debounceTime))\r\n .subscribe(\r\n (value: string) => { this.onSearch.emit(value); },\r\n (error) => { console.log(error); }\r\n ));\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngOnDestroy() {\r\n for (const sub of this.subs) {\r\n sub.unsubscribe();\r\n }\r\n }\r\n\r\n emitChange() {\r\n this.modelChange.emit(this.model);\r\n this.onChange.emit();\r\n }\r\n\r\n buttonClicked() {\r\n this.buttonClick.emit();\r\n }\r\n\r\n search(e) {\r\n this.debouncer.next(e.term);\r\n //this.onSearch.emit(e.term);\r\n }\r\n}\r\n","
\r\n \r\n \r\n {{errorMessage}}\r\n
\r\n \r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'grid-pager',\r\n inputs: ['actionName', 'page', 'limit', 'pageCount', 'limits'],\r\n templateUrl: './grid-pager.component.html'\r\n})\r\nexport class GridPager implements OnInit {\r\n @Input() actionName: string;\r\n @Input() page: number;\r\n @Input() limit: number;\r\n @Input() pageCount: number;\r\n @Input() limits: number[];\r\n\r\n ngOnInit() {\r\n }\r\n}\r\n","\r\n","import { Component, Input } from '@angular/core';\r\nimport Utilities from '../../services/utilities';\r\nimport { EngagementSection } from '../../../model/model';\r\n\r\n@Component({\r\n selector: 'section-list-item',\r\n inputs: ['node'],\r\n templateUrl: './section-list-viewer.component.html'\r\n})\r\nexport class SectionListItem {\r\n @Input() node: EngagementSection;\r\n @Input() context: any;\r\n\r\n constructor() {\r\n }\r\n\r\n\r\n get activatedNodes() {\r\n return this.node.childSections ? this.node.childSections.filter(m => this.context.hasActionableContent(m)).sort(Utilities.sortByDisplayOrder) : [];\r\n }\r\n \r\n\r\n setActiveSection(node: EngagementSection) {\r\n this.context.setActiveSection(node);\r\n }\r\n}\r\n","\r\n\r\n
    0)\">\r\n
  • \r\n \r\n
  • \r\n
\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-signout',\r\n templateUrl: './signout.component.html'\r\n})\r\nexport class SignoutComponent { }\r\n\r\n// Keep this class here to prevent console errors\r\n","
\r\n You have successfully signed out.\r\n
\r\n","import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { UnitOfWorkService } from '../../../services/unit-of-work/unit-of-work.service';\r\nimport Utilities from '../../../services/utilities';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { ApplicationInsightsService } from '../../../services/application-insights/application-insights.service';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { DialogHelper } from '../../../services/dialog-helper';\r\nimport { NgbModal, ModalDismissReasons } from '@ng-bootstrap/ng-bootstrap';\r\nimport { IsBusyService } from '../../../services/is-busy/is-busy.service';\r\nimport * as model from '../../../../model/model';\r\nimport * as modelDto from '../../../../model/modelDto';\r\nimport * as modelEnum from '../../../../model/modelEnums';\r\nimport { GlobalErrorHandler } from '../../../services/global-error-handler';\r\nimport { MsalBroadcastService, MsalService } from '@azure/msal-angular';\r\nimport { InteractionStatus } from '@azure/msal-browser';\r\nimport { filter } from 'rxjs/operators';\r\nimport { Profile } from '../../../../typings';\r\nimport { Role } from '../../../../model/role';\r\n\r\nconst loadingKey: string = 'team-inspections:loadData';\r\nconst defaultLimit: number = 15;\r\n\r\n@Component({\r\n selector: 'app-team-inspections-admin',\r\n templateUrl: './team-inspections.component.html',\r\n})\r\nexport class TeamInspectionsComponent implements OnInit {\r\n @ViewChild('teamMembersModal', { static: true }) teamMembersModal: TemplateRef; // Note: TemplateRef\r\n @ViewChild('setStatusModal', { static: true }) setStatusModal: TemplateRef; // Note: TemplateRef\r\n\r\n isAdmin = new BehaviorSubject(false);\r\n teamCaptains: model.Employee[] = [];\r\n selectedCaptain: string = \"\";\r\n\r\n page: number = 1;\r\n limit: number = defaultLimit;\r\n pageCount: number = 1;\r\n rowCount: number = 0;\r\n engagementsCount: number = 0;\r\n pageLimitOptions = [15, 25, 50, 100];\r\n groupBy: string = 'section';\r\n\r\n assignChildSections: boolean = false;\r\n\r\n offices: model.Office[] = [];\r\n regions: string[] = [];\r\n businessLines: model.BusinessLine[] = [];\r\n\r\n groupByMode: string = 'section';\r\n\r\n engagements: modelDto.EngagementSummaryDto[] = [];\r\n engagementSections: modelDto.EngagementSectionSummaryDto[] = [];\r\n engagementQuestions: modelDto.EngagementQuestionSummaryDto[] = [];\r\n\r\n currentSection: modelDto.EngagementSectionSummaryDto = {} as modelDto.EngagementSectionSummaryDto;\r\n teamMembers: modelDto.InspectionTeamMemberDto[] = [];\r\n\r\n selectedEngagementStatus: modelEnum.EngagementStatus;\r\n\r\n filters: modelDto.GridFilter[] = [];\r\n\r\n // shared filter\r\n engagementCodes: string = null;\r\n\r\n // top-level filters\r\n inspectionYears: string = null;\r\n selectedOffices: string[] = [];\r\n selectedRegions: string[] = [];\r\n selectedBusinessLines: number[] = [];\r\n\r\n inspectionStatusesLabel: string = 'Filter by...';\r\n\r\n progressStatusesLabel: string = 'Filter by...';\r\n\r\n // engagement filters\r\n clientNameFilter: string = null;\r\n\r\n // section filters\r\n sectionNameFilter: string = null;\r\n sectionStatusFilter: string = null;\r\n assignedOnFilter: string = null;\r\n assignedToFilter: string = null;\r\n\r\n // questionFilters\r\n questionNameFilter: string = null;\r\n hasCommentsFilter: string = null;\r\n isNrfFilter: string = null;\r\n hasObservationsFilter: string = null;\r\n\r\n groupByModes = [\r\n { id: 'engagement-code', name: 'Engagement Code' },\r\n { id: 'section', name: 'Questionnaire Section' },\r\n { id: 'question', name: 'Question' }\r\n ];\r\n\r\n yesNoOptions = [\r\n { isSelected: false, name: \"Yes\", value: \"true\" },\r\n { isSelected: false, name: \"No\", value: \"false\" }\r\n ];\r\n\r\n\r\n constructor(private uow: UnitOfWorkService,\r\n private appInsights: ApplicationInsightsService,\r\n private errorHandler: GlobalErrorHandler,\r\n private activeRoute: ActivatedRoute,\r\n public router: Router,\r\n public isBusy: IsBusyService,\r\n public dialogHelper: DialogHelper,\r\n private modalService: NgbModal,\r\n private broadcastService: MsalBroadcastService,\r\n private msalService: MsalService) {\r\n appInsights.logPageView();\r\n }\r\n\r\n ngOnInit() {\r\n this.activeRoute.queryParams.subscribe(routeParams => {\r\n this.page = routeParams.page && !Number.isNaN(routeParams.page) ? parseInt(routeParams.page) : 1;\r\n this.limit = routeParams.limit && !Number.isNaN(routeParams.limit) ? parseInt(routeParams.limit) : defaultLimit;\r\n\r\n this.isBusy.set(loadingKey, true, 'Loading search data');\r\n Promise\r\n .all([\r\n this.getBusinessLines(),\r\n this.getOffices(),\r\n this.getTeamCaptains()\r\n ])\r\n .then(() => {\r\n this.updateDataGrid();\r\n })\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set(loadingKey, false);\r\n });\r\n });\r\n\r\n this.broadcastService.inProgress$\r\n .pipe(filter((status: InteractionStatus) => status === InteractionStatus.None))\r\n .subscribe(() => {\r\n const account: Profile = this.msalService.instance.getAllAccounts()[0];\r\n\r\n this.isAdmin.next(account.idTokenClaims && account.idTokenClaims.roles && account.idTokenClaims.roles.includes(Role.admin));\r\n }\r\n );\r\n }\r\n\r\n canDeactivate(): Observable | boolean {\r\n if (this.uow.hasChanges.value) {\r\n let proceed = this.dialogHelper.confirm();\r\n\r\n proceed.subscribe(result => {\r\n if (result) {\r\n this.uow.rollback();\r\n }\r\n })\r\n\r\n return proceed;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n\r\n get activeEngagements() {\r\n return this.engagements;\r\n }\r\n\r\n get activeEngagementSections() {\r\n return this.engagementSections;\r\n }\r\n\r\n get activeEngagementQuestions() {\r\n return this.engagementQuestions;\r\n }\r\n\r\n get hasSelections() {\r\n switch (this.groupBy) {\r\n case 'engagement-code':\r\n return this.activeEngagements.some(m => m.isSelected);\r\n\r\n case 'section':\r\n return this.activeEngagementSections.some(m => m.isSelected);\r\n\r\n case 'question':\r\n return this.activeEngagementQuestions.some(m => m.isSelected);\r\n }\r\n }\r\n\r\n get engagementStatusOptions() {\r\n return this.uow.engagementStatuses.filter(m => m.status > modelEnum.EngagementStatus.draft);\r\n }\r\n\r\n get engagementStatuses() {\r\n return this.uow.engagementStatuses.filter(m => m.status > modelEnum.EngagementStatus.draft);\r\n }\r\n\r\n get progressStatuses() {\r\n return this.uow.progressStatuses;\r\n }\r\n\r\n getTeamCaptains() {\r\n return this.uow.getTeamCaptains()\r\n .then(result => this.teamCaptains = result);\r\n }\r\n\r\n getBusinessLines() {\r\n return this.uow.getBusinessLines()\r\n .then(result => {\r\n this.businessLines = result;\r\n });\r\n }\r\n\r\n getOffices() {\r\n return this.uow.getOffices()\r\n .then(result => {\r\n this.offices = result;\r\n this.getRegions();\r\n });\r\n }\r\n\r\n getRegions() {\r\n this.regions = this.offices.map(o => o.regionCode)\r\n .filter(Utilities.onlyUnique)\r\n .sort((a, b) => { return a.localeCompare(b); });\r\n }\r\n\r\n\r\n selectAll() {\r\n let toggle: boolean = false;\r\n\r\n switch (this.groupBy) {\r\n case 'engagement-code':\r\n toggle = this.engagements.some(m => m.isSelected);\r\n this.engagements.forEach(m => m.isSelected = !toggle);\r\n break;\r\n\r\n case 'section':\r\n toggle = this.engagementSections.some(m => m.isSelected);\r\n this.engagementSections.forEach(m => m.isSelected = !toggle);\r\n break;\r\n\r\n case 'question':\r\n toggle = this.engagementQuestions.some(m => m.isSelected);\r\n this.engagementQuestions.forEach(m => m.isSelected = !toggle);\r\n break;\r\n }\r\n }\r\n\r\n setStatus() {\r\n alert(\"We're sorry. This feature has not been implemented yet.\");\r\n }\r\n\r\n assignTo() {\r\n alert(\"We're sorry. This feature has not been implemented yet.\");\r\n }\r\n\r\n\r\n showAssignSectionModal(section: modelDto.EngagementSectionSummaryDto) {\r\n this.currentSection = section;\r\n this.teamMembers = section.inspectionTeamMembers;\r\n\r\n this.teamMembers.forEach(m => { m.isSelected = section.assignedTeamMembers.some(n => n.id == m.id); });\r\n\r\n this.modalService.open(this.teamMembersModal, { ariaLabelledBy: 'modal-basic-title' })\r\n .result\r\n .then((result) => {\r\n if (result == 'save') {\r\n const selected = this.teamMembers.filter(m => m.isSelected).map(m => m.id);\r\n const previouslySelectedTeamMembers = section.assignedTeamMembers.length;\r\n const teamMemberWasRemoved = selected.length < previouslySelectedTeamMembers ? true : false;\r\n\r\n this.uow.updateAssignedSections(this.currentSection.sectionId, this.assignChildSections, selected, teamMemberWasRemoved)\r\n .then(() => {\r\n this.updateDataGrid();\r\n });\r\n }\r\n }, (reason) => {\r\n const closeResult = `Dismissed ${this.getDismissReason(reason)}`;\r\n\r\n console.log('Reason: ' + closeResult);\r\n });\r\n }\r\n\r\n showSetStatusModal() {\r\n this.engagementStatusOptions.forEach(m => m.isSelected = false);\r\n this.modalService.open(this.setStatusModal, { ariaLabelledBy: 'modal-basic-title' })\r\n .result\r\n .then((result) => {\r\n if (result == 'save') {\r\n let engagementsToUpdate: number[];\r\n\r\n switch (this.groupBy) {\r\n case 'engagement-code':\r\n engagementsToUpdate = this.engagements.filter(m => m.isSelected == true).map(m => m.engagementId);\r\n break;\r\n\r\n case 'section':\r\n engagementsToUpdate = this.engagementSections.filter(m => m.isSelected == true).map(m => m.engagementId);\r\n break;\r\n\r\n case 'question':\r\n engagementsToUpdate = this.engagementQuestions.filter(m => m.isSelected == true).map(m => m.engagementId);\r\n break;\r\n }\r\n\r\n if (engagementsToUpdate.length > 0) {\r\n this.uow.updateEngagementStatus(this.selectedEngagementStatus, engagementsToUpdate)\r\n .then(() => {\r\n this.updateDataGrid();\r\n });\r\n }\r\n }\r\n }, (reason) => {\r\n const closeResult = `Dismissed ${this.getDismissReason(reason)}`;\r\n\r\n console.log('Reason: ' + closeResult);\r\n });\r\n }\r\n\r\n private getDismissReason(reason: any): string {\r\n if (reason == ModalDismissReasons.ESC) {\r\n return 'by pressing ESC';\r\n } else if (reason == ModalDismissReasons.BACKDROP_CLICK) {\r\n return 'by clicking on a backdrop';\r\n } else {\r\n return `with: ${reason}`;\r\n }\r\n }\r\n\r\n\r\n updateInspectionStatusFilters(e: any) {\r\n if (e == false) {\r\n if (this.engagementStatuses.some(m => m.isSelected)) {\r\n this.inspectionStatusesLabel = this.engagementStatuses.filter(m => m.isSelected).map(m => m.title).join(', ');\r\n this.updateFilters('inspectionStatus', this.engagementStatuses.filter(m => m.isSelected).map(m => m.status).join(','), true);\r\n }\r\n else {\r\n this.inspectionStatusesLabel = 'Filter by...';\r\n this.updateFilters('inspectionStatus', null, true);\r\n }\r\n }\r\n }\r\n\r\n clearInspectionStatusFilters() {\r\n this.engagementStatuses.filter(m => m.isSelected = false);\r\n }\r\n\r\n\r\n updateProgressStatusFilters(e: any) {\r\n if (e == false) {\r\n if (this.progressStatuses.some(m => m.isSelected)) {\r\n this.progressStatusesLabel = this.progressStatuses.filter(m => m.isSelected).map(m => m.title).join(', ');\r\n this.updateFilters('progressStatus', this.progressStatuses.filter(m => m.isSelected).map(m => m.status).join(','), true);\r\n }\r\n else {\r\n this.inspectionStatusesLabel = 'Filter by...';\r\n this.updateFilters('progressStatus', null, true);\r\n }\r\n }\r\n }\r\n\r\n clearProgressStatusFilters() {\r\n this.progressStatuses.filter(m => m.isSelected = false);\r\n }\r\n\r\n\r\n updateFilters(key: string, value: any, applyNow: boolean = false) {\r\n if (key) {\r\n if (!value || value == '') {\r\n this.removeFilter(key);\r\n } else {\r\n if (this.filters.some(m => m.key == key)) {\r\n const filter = this.filters.find(m => m.key == key);\r\n filter.value = value;\r\n }\r\n else {\r\n this.filters.push({ key: key, value: value } as modelDto.GridFilter)\r\n }\r\n }\r\n }\r\n\r\n if (applyNow == true) {\r\n this.updateDataGrid();\r\n }\r\n }\r\n\r\n removeFilter(key: string) {\r\n const i = this.filters.findIndex(m => m.key == key);\r\n if (i >= 0) {\r\n this.filters.splice(i, 1);\r\n }\r\n }\r\n\r\n applyPrimaryFilters() {\r\n if (this.groupBy !== this.groupByMode) {\r\n this.clearSecondaryFilters();\r\n }\r\n\r\n this.groupBy = this.groupByMode;\r\n\r\n this.updateFilters('code', this.engagementCodes);\r\n this.updateFilters('year', this.inspectionYears);\r\n\r\n if (this.selectedOffices.length > 0) {\r\n const officeFilter = this.selectedOffices.join(',');\r\n this.updateFilters('officeId', officeFilter);\r\n } else {\r\n this.removeFilter('officeId');\r\n }\r\n\r\n if (this.selectedRegions.length > 0) {\r\n const regionFilter = this.selectedRegions.join(',');\r\n this.updateFilters('region', regionFilter);\r\n } else {\r\n this.removeFilter('region');\r\n }\r\n\r\n if (this.selectedBusinessLines.length > 0) {\r\n const businessLineFilter = this.selectedBusinessLines.join(',');\r\n this.updateFilters('businessLineId', businessLineFilter);\r\n } else {\r\n this.removeFilter('businessLineId');\r\n }\r\n\r\n if (this.selectedCaptain !== \"\") {\r\n this.updateFilters('selectedCaptainId', this.selectedCaptain);\r\n }\r\n\r\n this.updateDataGrid();\r\n }\r\n\r\n clearPrimaryFilters() {\r\n this.engagementCodes = null;\r\n this.inspectionYears = null;\r\n this.selectedOffices = [];\r\n this.selectedRegions = [];\r\n this.selectedBusinessLines = [];\r\n this.selectedCaptain = \"\";\r\n\r\n this.removeFilter('code');\r\n this.removeFilter('year');\r\n this.removeFilter('week');\r\n this.removeFilter('officeId');\r\n this.removeFilter('region');\r\n this.removeFilter('businessLineId');\r\n this.removeFilter('selectedCaptainId');\r\n\r\n this.groupByMode = 'section';\r\n\r\n this.groupBy = this.groupByMode;\r\n\r\n this.updateDataGrid();\r\n }\r\n\r\n\r\n clearSecondaryFilters() {\r\n this.engagementCodes = null;\r\n this.assignedOnFilter = null;\r\n this.assignedToFilter = null;\r\n this.sectionNameFilter = null;\r\n\r\n this.removeFilter('code');\r\n this.removeFilter('assignedOn');\r\n this.removeFilter('assignedTo');\r\n this.removeFilter('clientName');\r\n this.removeFilter('sectionName');\r\n this.removeFilter('questionName');\r\n this.removeFilter('nrfs');\r\n this.removeFilter('observations');\r\n this.removeFilter('hasComments');\r\n\r\n this.clearInspectionStatusFilters();\r\n this.inspectionStatusesLabel = 'Filter by...';\r\n this.removeFilter('inspectionStatus');\r\n\r\n this.clearProgressStatusFilters();\r\n this.progressStatusesLabel = 'Filter by...';\r\n this.removeFilter('progressStatus');\r\n\r\n this.updateDataGrid();\r\n }\r\n\r\n\r\n updateDataGrid() {\r\n this.isBusy.set(loadingKey, true, 'Loading data');\r\n Promise\r\n .all([\r\n this.getRowCount(),\r\n this.getItems(this.page, this.limit)])\r\n .then(() => {\r\n this.getPageCount(this.limit);\r\n })\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set(loadingKey, false);\r\n });\r\n }\r\n\r\n\r\n getEngagementStatusName(status: modelEnum.EngagementStatus) {\r\n return this.uow.getEngagementStatusName(status);\r\n }\r\n\r\n getProgressStatusName(status: modelEnum.ProgressStatus) {\r\n return this.uow.getProgressStatusName(status);\r\n }\r\n\r\n\r\n calculatePercentComplete(numerator: number, denominator: number): number {\r\n let value = 0.0;\r\n\r\n if (denominator > 0) {\r\n value = numerator / denominator;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n\r\n getPageCount(limit: number = defaultLimit) {\r\n if (this.rowCount > 0) {\r\n this.pageCount = Math.ceil(this.rowCount / limit);\r\n if (this.pageCount == 0) {\r\n this.pageCount = 1;\r\n }\r\n } else {\r\n this.pageCount = 1;\r\n }\r\n }\r\n\r\n getRowCount() {\r\n switch (this.groupBy) {\r\n case 'engagement-code':\r\n return this.getEngagementsCount();\r\n\r\n case 'section':\r\n return this.getEngagementSectionsCount();\r\n\r\n case 'question':\r\n return this.getEngagementQuestionsCount();\r\n }\r\n }\r\n\r\n getItems(page: number = 1, limit: number = defaultLimit) {\r\n switch (this.groupBy) {\r\n case 'engagement-code':\r\n return this.getEngagements(page, limit);\r\n\r\n case 'section':\r\n return this.getEngagementSections(page, limit);\r\n\r\n case 'question':\r\n return this.getEngagementQuestions(page, limit);\r\n }\r\n }\r\n\r\n\r\n getEngagements(page: number = 1, limit: number = defaultLimit) {\r\n return this.uow.getEngagementsForMyTeams(page, limit, JSON.stringify(this.filters))\r\n .then(result => {\r\n this.engagements = result;\r\n });\r\n }\r\n\r\n getEngagementsCount() {\r\n return this.uow.getEngagementsCountForMyTeams(JSON.stringify(this.filters))\r\n .then(result => {\r\n this.rowCount = result[0];\r\n });\r\n }\r\n\r\n\r\n getEngagementSections(page: number = 1, limit: number = defaultLimit) {\r\n return this.uow.getEngagementSectionsForMyTeams(page, limit, JSON.stringify(this.filters))\r\n .then(result => {\r\n this.engagementSections = result;\r\n });\r\n }\r\n\r\n getEngagementSectionsCount() {\r\n return this.uow.getEngagementSectionsCountForMyTeams(JSON.stringify(this.filters))\r\n .then(result => {\r\n this.rowCount = result[0];\r\n this.engagementsCount = result[1];\r\n });\r\n }\r\n\r\n\r\n getEngagementQuestions(page: number = 1, limit: number = defaultLimit) {\r\n return this.uow.getEngagementQuestionsForMyTeams(page, limit, JSON.stringify(this.filters))\r\n .then(result => {\r\n this.engagementQuestions = result;\r\n });\r\n }\r\n\r\n getEngagementQuestionsCount() {\r\n return this.uow.getEngagementQuestionsCountForMyTeams(JSON.stringify(this.filters))\r\n .then(result => {\r\n this.rowCount = result[0];\r\n this.engagementsCount = result[1];\r\n });\r\n }\r\n}\r\n","
\r\n

My Team's Inspections

\r\n
\r\n
\r\n
\r\n Search Inspections\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

\r\n {{rowCount}} {{(rowCount == 1 ? 'record' : 'records')}} found\r\n

\r\n\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
Engagement CodeClient NameInspection StatusProgress StatusSectionsCompleted Sections% CompleteNRFsObservations
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
0\">\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n No data to display…\r\n \r\n
\r\n \r\n \r\n \r\n {{engagement.code}}\r\n \r\n \r\n \r\n {{engagement.clientName}}\r\n \r\n {{getEngagementStatusName(engagement.inspectionStatus)}}{{getProgressStatusName(engagement.progressStatus)}}{{engagement.totalSections | number : '1.0-0'}}---{{engagement.completedSections | number : '1.0-0'}}---\r\n {{calculatePercentComplete(engagement.completedSections, engagement.totalSections) | percent : '1.1-2'}}\r\n ({{engagement.completedSections}}/{{engagement.totalSections}})\r\n ---{{engagement.nrfs | number : '1.0-0'}}---{{engagement.observations | number : '1.0-0'}}---
\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n

\r\n {{rowCount}} {{(rowCount == 1 ? 'record' : 'records')}} found from {{engagementsCount}} {{(engagementsCount == 1 ? 'inspection' : 'inspections')}}\r\n

\r\n\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
Assigned OnEngagement CodeEngagement StatusSectionProgress Status% CompleteNRFsObservationsAssigned To
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
0\">\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n No data to display…\r\n \r\n
\r\n \r\n 0\">{{section.assignedOn | date: short}}---\r\n \r\n {{section.engagementCode}}\r\n \r\n {{getEngagementStatusName(section.inspectionStatus)}}\r\n \r\n {{section.sectionName}}\r\n \r\n {{getProgressStatusName(section.progressStatus)}}\r\n {{calculatePercentComplete(section.completedQuestions, section.totalQuestions) | percent : '1.1-2'}}\r\n ({{section.completedQuestions}}/{{section.totalQuestions}})\r\n ---{{section.nrfs | number : '1.0-0'}}{{section.observations | number : '1.0-0'}}\r\n
    0\">\r\n
  • {{teamMember.fullName}}
  • \r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n

\r\n {{rowCount}} {{(rowCount == 1 ? 'record' : 'records')}} found from {{engagementsCount}} {{(engagementsCount == 1 ? 'inspection' : 'inspections')}}\r\n

\r\n\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
Engagement CodeEngagement StatusSectionNameStatusComments?
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
0\">\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
0\">\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n No data to display…\r\n \r\n
\r\n \r\n \r\n \r\n {{question.engagementCode}}\r\n \r\n {{getEngagementStatusName(question.inspectionStatus)}}\r\n \r\n {{question.sectionName}}\r\n \r\n \r\n \r\n {{question.questionName}}\r\n \r\n {{getProgressStatusName(question.progressStatus)}}\r\n ---\r\n \r\n \r\n \r\n ---\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
Assign Team Member(s)
\r\n \r\n
\r\n
\r\n

\r\n Please select one or more team members to assign to:\r\n

\r\n

\r\n {{currentSection.sectionName}}\r\n

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
Set Engagement Status
\r\n \r\n
\r\n
\r\n

\r\n Please select a status to assign to the selected engagements:\r\n

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport Utilities from '../../../services/utilities';\r\nimport { EngagementSectionDto, EngagementQuestionDto } from '../../../../model/modelDto';\r\n\r\n@Component({\r\n selector: 'engagement-tree-node-viewer',\r\n inputs: ['node', 'i', 'context'],\r\n templateUrl: './engagement-tree-node-viewer.component.html'\r\n})\r\nexport class EngagementViewerTreeNode implements OnInit {\r\n @Input() node: EngagementSectionDto;\r\n @Input() i: number;\r\n @Input() context: any;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n get currentNodes() {\r\n return this.node.childSections ? this.node.childSections.filter(m => m.isActivated).sort(Utilities.sortByDisplayOrder) : [];\r\n }\r\n\r\n get questions() {\r\n return this.node.questions ? this.node.questions.sort(Utilities.sortByDisplayOrder) : [];\r\n }\r\n\r\n getDisplayText(question: EngagementQuestionDto) {\r\n return question.name || question.description.substr(0, 40) + '...';\r\n }\r\n\r\n toggleSection() {\r\n if (this.node) {\r\n this.node.isCollapsed = !this.node.isCollapsed;\r\n }\r\n }\r\n\r\n\r\n setActiveSection(node: EngagementSectionDto) {\r\n this.context.setActiveSection(node);\r\n }\r\n\r\n setActiveQuestion(question: EngagementQuestionDto) {\r\n question.isSelected = true;\r\n this.context.setActiveQuestion(question);\r\n }\r\n}\r\n","
\r\n
\r\n \r\n\r\n {{node.name}}\r\n
\r\n\r\n
\r\n

Section contains no questions

\r\n
    0\" class=\"question-list mb-2\">\r\n
  1. \r\n \r\n {{getDisplayText(question)}}\r\n \r\n
  2. \r\n
\r\n
    0\">\r\n
  1. \r\n \r\n
  2. \r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { UnitOfWorkService } from '../../../services/unit-of-work/unit-of-work.service';\r\nimport Utilities from '../../../services/utilities';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { ApplicationInsightsService } from '../../../services/application-insights/application-insights.service';\r\nimport { Observable } from 'rxjs';\r\nimport { DialogHelper } from '../../../services/dialog-helper';\r\nimport { IsBusyService } from '../../../services/is-busy/is-busy.service';\r\nimport * as moment from 'moment';\r\nimport * as modelDto from '../../../../model/modelDto';\r\nimport * as modelEnum from '../../../../model/modelEnums';\r\nimport { GlobalErrorHandler } from '../../../services/global-error-handler';\r\n\r\nconst LOADING_KEY: string = 'inspection:loadData';\r\nconst SAVING_KEY: string = 'inspection:saveData';\r\nconst NO_ANSWER_NEEDED_NAME: string = 'No answer needed';\r\n\r\n@Component({\r\n selector: 'app-team-inspection-admin',\r\n templateUrl: './inspection.component.html',\r\n})\r\nexport class TeamCaptainInspectionComponent implements OnInit {\r\n\r\n isLoading: boolean = true;\r\n\r\n engagement: modelDto.EngagementDto = {} as modelDto.EngagementDto;\r\n engagementId: number = null;\r\n sectionId: number = null;\r\n questionId: number = null;\r\n commentText: string = null;\r\n\r\n questionNumber: number = null;\r\n currentQuestion: modelDto.EngagementQuestionDto = null;\r\n\r\n hoverSectionName: string = null;\r\n\r\n parentSection: modelDto.EngagementSectionDto = null;\r\n\r\n currentSection: modelDto.EngagementSectionDto = null;\r\n previousSection: modelDto.EngagementSectionDto = null;\r\n nextSection: modelDto.EngagementSectionDto = null;\r\n\r\n constructor(private uow: UnitOfWorkService,\r\n private appInsights: ApplicationInsightsService,\r\n private errorHandler: GlobalErrorHandler,\r\n private activeRoute: ActivatedRoute,\r\n public router: Router,\r\n public isBusy: IsBusyService,\r\n public dialogHelper: DialogHelper) {\r\n appInsights.logPageView();\r\n }\r\n\r\n ngOnInit() {\r\n this.activeRoute.queryParams.subscribe(routeParams => {\r\n this.isLoading = true;\r\n this.isBusy.set(LOADING_KEY, true, 'Loading engagement data');\r\n Promise\r\n .all([this.getMyTeamsEngagementById(routeParams.id, routeParams.sid, routeParams.qid)])\r\n .then(() => {\r\n this.findSectionById();\r\n })\r\n .catch(reason => {\r\n this.errorHandler.handleError(reason);\r\n })\r\n .finally(() => {\r\n this.isBusy.set(LOADING_KEY, false);\r\n this.isLoading = false;\r\n });\r\n });\r\n }\r\n\r\n canDeactivate(): Observable | boolean {\r\n if (this.uow.hasChanges.value) {\r\n let proceed = this.dialogHelper.confirm();\r\n\r\n proceed.subscribe(result => {\r\n if (result) {\r\n this.uow.rollback();\r\n }\r\n })\r\n\r\n return proceed;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n\r\n get rootEngagementSections() {\r\n return this.engagement && this.engagement.sections ? this.engagement.sections.filter(m => !m.parentSectionId).sort(Utilities.sortByDisplayOrder) : [];\r\n }\r\n\r\n get currentQuestionOptions() {\r\n return this.currentQuestion && this.currentQuestion.options ? this.currentQuestion.options.filter(o => o.text !== NO_ANSWER_NEEDED_NAME).sort(Utilities.sortByDisplayOrder) : [];\r\n }\r\n\r\n get hasChanges() {\r\n const a = this.uow.engagements.hasChanges.value;\r\n const b = this.uow.engagementTeamMembers.hasChanges.value;\r\n const c = this.uow.engagementSections.hasChanges.value;\r\n\r\n return a || b || c;\r\n }\r\n\r\n undoChanges() {\r\n if (this.hasChanges) {\r\n this.uow.rollback();\r\n }\r\n }\r\n\r\n getMyTeamsEngagementById(id: number, sid?: number, qid?: number) {\r\n return this.uow.getMyTeamsEngagementById(id)\r\n .then(result => {\r\n if (result && result.length > 0) {\r\n this.engagement = result[0];\r\n\r\n this.engagementId = id;\r\n this.sectionId = sid;\r\n this.questionId = qid;\r\n }\r\n else {\r\n this.router.navigate(['./inspections'], { relativeTo: this.activeRoute.parent });\r\n }\r\n });\r\n }\r\n\r\n\r\n getEngagementStatusName(status: modelEnum.EngagementStatus) {\r\n return this.uow.getEngagementStatusName(status);\r\n }\r\n\r\n getProgressStatusName(status: modelEnum.ProgressStatus) {\r\n return this.uow.getProgressStatusName(status);\r\n }\r\n\r\n formatDate(value: any): string {\r\n return moment(value).format('YYYY-MM-DD hh:mm A Z');\r\n }\r\n\r\n calculatePercentComplete(numerator: number, denominator: number): number {\r\n let value = 0.0;\r\n\r\n if (denominator > 0) {\r\n value = numerator / denominator;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n\r\n reloadSections() {\r\n return this.uow.getMyTeamsEngagementById(this.engagementId)\r\n .then(result => {\r\n if (result && result.length > 0) {\r\n this.engagement = result[0];\r\n if (this.engagement.sections) {\r\n this.engagement.sections.forEach(s => {\r\n if (s.questions) {\r\n s.questions.forEach(q => q.isSelected = q.id == this.questionId);\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n findSectionById() {\r\n if (this.sectionId && this.engagement.sections) {\r\n this.setActiveSection(this.engagement.sections.find(m => m.id == this.sectionId));\r\n }\r\n else {\r\n this.setActiveSection(null);\r\n }\r\n }\r\n\r\n findNearestActiveParentSection(section: modelDto.EngagementSectionDto) {\r\n if (section) {\r\n this.parentSection = section.parentSection;\r\n if (this.parentSection) {\r\n if (!this.parentSection.isActivated) {\r\n this.parentSection = this.findNearestActiveParentSection(this.parentSection);\r\n }\r\n }\r\n }\r\n else {\r\n this.parentSection = null;\r\n }\r\n\r\n return this.parentSection;\r\n }\r\n\r\n setActiveSection(section: modelDto.EngagementSectionDto) {\r\n this.currentSection = section;\r\n this.setHoverText(null);\r\n\r\n this.clearQuestionSelection();\r\n\r\n if (this.engagement.sections) {\r\n if (section) {\r\n this.sectionId = this.currentSection.id;\r\n\r\n if (this.questionId) {\r\n if (this.currentSection.questions) {\r\n this.currentQuestion = this.currentSection.questions.find(m => m.id == this.questionId);\r\n if (!this.currentQuestion) {\r\n this.questionNumber = 1;\r\n\r\n this.currentQuestion = this.currentSection.questions[0];\r\n if (this.currentQuestion) {\r\n this.questionId = this.currentQuestion.id;\r\n this.currentQuestion.isSelected = true;\r\n }\r\n else {\r\n this.clearQuestionSelection();\r\n }\r\n }\r\n else {\r\n this.questionNumber = this.currentSection.questions.indexOf(this.currentQuestion) + 1;\r\n this.currentQuestion.isSelected = true;\r\n }\r\n }\r\n else {\r\n this.clearQuestionSelection();\r\n }\r\n }\r\n else {\r\n if (this.currentSection.questions) {\r\n this.currentQuestion = this.currentSection.questions[0];\r\n this.questionNumber = 1;\r\n\r\n if (this.currentQuestion) {\r\n this.questionId = this.currentQuestion.id;\r\n this.currentQuestion.isSelected = true;\r\n }\r\n else {\r\n this.clearQuestionSelection();\r\n }\r\n }\r\n else {\r\n this.clearQuestionSelection();\r\n }\r\n }\r\n\r\n this.checkQuestionForNoAnswerOption();\r\n\r\n this.parentSection = this.findNearestActiveParentSection(this.currentSection);\r\n\r\n if (this.parentSection) {\r\n if (this.currentSection.parentSectionId == this.parentSection.id) {\r\n const siblings = this.parentSection.childSections.filter(m => m.isActivated).sort(Utilities.sortByDisplayOrder);\r\n const i = siblings.indexOf(this.currentSection);\r\n\r\n if (i > 0) {\r\n this.previousSection = siblings[i - 1];\r\n }\r\n else {\r\n this.previousSection = null;\r\n }\r\n\r\n if (i < siblings.length - 1) {\r\n this.nextSection = siblings[i + 1];\r\n }\r\n else {\r\n this.nextSection = null;\r\n }\r\n }\r\n else {\r\n this.previousSection = null;\r\n this.nextSection = null;\r\n }\r\n }\r\n else {\r\n const siblings = this.engagement.sections.filter(m => m.isActivated).sort(Utilities.sortByDisplayOrder);\r\n const i = siblings.indexOf(this.currentSection);\r\n\r\n if (i > 0) {\r\n this.previousSection = siblings[i - 1];\r\n }\r\n else {\r\n this.previousSection = null;\r\n }\r\n\r\n if (i < siblings.length - 1) {\r\n this.nextSection = siblings[i + 1];\r\n }\r\n else {\r\n this.nextSection = null;\r\n }\r\n }\r\n }\r\n else {\r\n this.sectionId = null;\r\n this.questionId = null;\r\n\r\n this.parentSection = null;\r\n this.currentQuestion = null;\r\n this.previousSection = null;\r\n this.nextSection = null;\r\n }\r\n }\r\n else {\r\n this.sectionId = null;\r\n this.questionId = null;\r\n\r\n this.parentSection = null;\r\n this.currentQuestion = null;\r\n this.previousSection = null;\r\n this.nextSection = null;\r\n }\r\n }\r\n\r\n checkQuestionForNoAnswerOption() {\r\n if (this.currentQuestion\r\n && this.currentQuestion.options\r\n && this.currentQuestion.options.filter(x => x.text === NO_ANSWER_NEEDED_NAME).length > 0) {\r\n let naOption = this.currentQuestion.options.find(x => x.text === NO_ANSWER_NEEDED_NAME);\r\n this.currentQuestion.selectedOptionId = naOption.id;\r\n }\r\n }\r\n\r\n closeSection() {\r\n this.setActiveSection(null);\r\n }\r\n\r\n setHoverText(section: modelDto.EngagementSectionDto) {\r\n if (section) {\r\n if (section.name.length > 40) {\r\n this.hoverSectionName = section.name.substr(0, 40) + '...';\r\n } else {\r\n this.hoverSectionName = section.name;\r\n }\r\n }\r\n else {\r\n this.hoverSectionName = null;\r\n }\r\n }\r\n\r\n\r\n loadQuestion(i: number) {\r\n if (this.currentQuestion) {\r\n this.currentQuestion.isSelected = false;\r\n }\r\n\r\n if (this.currentSection.questions) {\r\n if (this.currentSection.questions[i - 1]) {\r\n this.currentQuestion = this.currentSection.questions[i - 1];\r\n this.questionId = this.currentQuestion.id;\r\n this.questionNumber = i;\r\n this.currentQuestion.isSelected = true;\r\n\r\n this.checkQuestionForNoAnswerOption();\r\n }\r\n }\r\n }\r\n\r\n setActiveQuestion(question: modelDto.EngagementQuestionDto) {\r\n this.questionId = question.id;\r\n this.sectionId = question.sectionId;\r\n\r\n this.findSectionById();\r\n }\r\n\r\n clearQuestionSelection() {\r\n if (this.engagement.sections) {\r\n this.engagement.sections.forEach(s => {\r\n if (s.questions) {\r\n s.questions.forEach(q => q.isSelected = false);\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n expandAll() {\r\n if (this.engagement && this.engagement.sections) {\r\n this.engagement.sections.forEach((m) => { m.isCollapsed = false; });\r\n }\r\n }\r\n\r\n collapseAll() {\r\n if (this.engagement && this.engagement.sections) {\r\n this.engagement.sections.forEach((m) => { m.isCollapsed = true; });\r\n }\r\n }\r\n}\r\n","
\r\n

My Team's Inspections

\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
    \r\n
  1. \r\n \r\n
  2. \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Engagement Code:{{engagement.engagementCode}}
Client Name:{{engagement.clientName}}
 
Team Captain:{{engagement.teamCaptain}}
Office:{{engagement.officeName}}Year:{{engagement.inspectionYear}}
Region:{{engagement.regionCode}}
\r\n
\r\n\r\n
\r\n

Please select a section to review:

\r\n
    \r\n
  • \r\n \r\n
  • \r\n
\r\n
\r\n \r\n \r\n Return to inspections list\r\n \r\n
\r\n\r\n
\r\n
\r\n Section:{{currentSection.name}}\r\n
\r\n\r\n
\r\n \r\n

\r\n None\r\n

\r\n
    0\">\r\n
  • \r\n {{teamMember.fullName}}\r\n
  • \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n {{hoverSectionName}}\r\n
\r\n\r\n
\r\n\r\n
\r\n
0\">\r\n \r\n \r\n \r\n Question {{questionNumber}} of {{currentSection.questions.length}}\r\n \r\n
\r\n\r\n

\r\n {{currentQuestion.name}}\r\n

\r\n\r\n
\r\n

{{ currentQuestion.description }}

\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
Not Started
\r\n
In Progress
\r\n
Complete
\r\n
\r\n\r\n
\r\n \r\n
None
\r\n
{{currentQuestion.respondingTeamMemberName}} [{{formatDate(currentQuestion.responseDate)}}]
\r\n
\r\n\r\n
\r\n \r\n
    \r\n
  • None
  • \r\n
  • \r\n

    {{ comment.text }}

    \r\n
    \r\n

    {{comment.inspectionTeamMember?.fullName}}

    \r\n

    [{{formatDate(comment.timestamp)}}]

    \r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n

\r\n \r\n Help\r\n

\r\n
\r\n

{{ currentQuestion.helpText }}

\r\n
\r\n
\r\n
\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router } from '@angular/router';\r\nimport { MsalGuard, MsalService } from '@azure/msal-angular';\r\nimport { AccountInfo } from '@azure/msal-common';\r\nimport { RequireAuthenticatedUserGuard } from '../auth/require-authenticated-user.guard';\r\nimport { BreezeSetupGuard } from '../breeze-setup/breeze-setup.guard';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AppGuard implements CanActivate {\r\n constructor(\r\n private msalGuard: MsalGuard,\r\n private breezeGuard: BreezeSetupGuard,\r\n private router: Router,\r\n private authService: MsalService\r\n ) { }\r\n\r\n private reroute() {\r\n //this.router.navigate([\"/access-denied\"]);\r\n return false;\r\n }\r\n\r\n public async canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise {\r\n let account: AccountInfo = this.authService.instance.getAllAccounts()[0];\r\n\r\n if (await this.msalGuard.canActivate(next, state).toPromise().catch(err => this.reroute()) == false) {\r\n return this.reroute();\r\n }\r\n\r\n if (await this.breezeGuard.canActivate(next, state).catch(err => this.reroute()) == false) {\r\n return this.reroute();\r\n }\r\n\r\n return true;\r\n }\r\n\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router';\r\nimport { MsalGuardConfiguration, MsalService, MSAL_GUARD_CONFIG } from '@azure/msal-angular';\r\nimport { RedirectRequest } from '@azure/msal-browser';\r\nimport { AccountInfo } from '@azure/msal-common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RequireAuthenticatedUserGuard implements CanActivate {\r\n constructor(private authService: MsalService) { }\r\n\r\n async canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise {\r\n const account: AccountInfo = this.authService.instance.getAllAccounts()[0];\r\n if (account) {\r\n return Promise.resolve(true);\r\n } else {\r\n return Promise.resolve(false);\r\n }\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, CanActivate, Router } from \"@angular/router\";\r\nimport { MsalService } from \"@azure/msal-angular\";\r\nimport { AccountInfo } from \"@azure/msal-common\";\r\nimport { ServerSideConfigDataService } from '../../services/server-side-config-data/server-side-config-data.service';\r\nimport { SharedDataService } from '../../services/shared-data/shared-data.service';\r\nimport * as model from '../../../model/model';\r\n\r\ninterface Account extends AccountInfo {\r\n idTokenClaims?: {\r\n roles?: string[]\r\n }\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RoleGuard implements CanActivate {\r\n constructor(private msalService: MsalService, private router: Router, private serverSide: ServerSideConfigDataService, private sharedData: SharedDataService)\r\n {\r\n this.serverSide.loadServerSideData();\r\n }\r\n\r\n canActivate(route: ActivatedRouteSnapshot): boolean {\r\n const { roles } = route.data;\r\n const account: Account = this.msalService.instance.getAllAccounts()[0];\r\n const me: model.Employee = this.sharedData.me.value;\r\n \r\n\r\n let hasAccess = false;\r\n\r\n if (me && me.isActive) {\r\n\r\n if (me.isAdmin) {\r\n hasAccess = true;\r\n } else {\r\n roles.forEach(role => {\r\n\r\n if (role == 'NationalQcAdmin' && me.isNationalQcAdmin) {\r\n hasAccess = true;\r\n } else if (role == 'Basic' && (me.canSignIn || me.isNationalQcAdmin)) {\r\n hasAccess = true;\r\n }\r\n\r\n });\r\n } \r\n }\r\n if (!hasAccess) {\r\n this.router.navigate(['/access-denied'])\r\n }\r\n return hasAccess;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { EntityManagerProviderService } from '../../services//entity-manager-provider/entity-manager-provider.service';\r\nimport { ServerSideConfigDataService } from '../../services/server-side-config-data/server-side-config-data.service';\r\nimport { UnitOfWorkService } from '../../services/unit-of-work/unit-of-work.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BreezeSetupGuard implements CanActivate {\r\n constructor(\r\n private serverSide: ServerSideConfigDataService,\r\n private entityManagerProvider: EntityManagerProviderService,\r\n private uowService: UnitOfWorkService,\r\n ) { }\r\n\r\n async canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise {\r\n return this.serverSide\r\n .loadServerSideData()\r\n .then(() => this.entityManagerProvider.init())\r\n .then(() => {\r\n this.uowService.init();\r\n return true;\r\n });\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, RouterStateSnapshot, CanDeactivate } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ConfirmationDialogComponent } from '../../components/shared/confirmation-dialog/confirmation-dialog.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GenericCanDeactivateGuard implements CanDeactivate {\r\n constructor(private dialog: MatDialog) { }\r\n\r\n canDeactivate(component: ISaveUndoChanges, currentRoute: ActivatedRouteSnapshot, currentState: RouterStateSnapshot, nextState?: RouterStateSnapshot): Observable | Promise | boolean {\r\n if (!component.hasChanges) {\r\n return true;\r\n }\r\n\r\n return this.dialog\r\n .open(ConfirmationDialogComponent, {\r\n disableClose: true,\r\n data: {\r\n title: 'Pending Changes',\r\n //content: \"You have pending changes. Would you like to save these changes before you leave?\"\r\n content: \"There are unsaved changes. Continue without saving?\"\r\n }\r\n })\r\n .afterClosed()\r\n .toPromise()\r\n .then(result => {\r\n if (result == \"Yes\") {\r\n //return component.saveChanges();\r\n component.undoChanges();\r\n return true;\r\n }\r\n return false;\r\n });\r\n }\r\n}\r\n\r\nexport interface ISaveUndoChanges {\r\n hasChanges: boolean;\r\n saveChanges(): Promise;\r\n undoChanges(secondAction?: boolean): void;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MsalService } from '@azure/msal-angular';\r\nimport { AppInsights } from 'applicationinsights-js';\r\nimport { Profile } from '../../../typings';\r\nimport { ServerSideConfigDataService } from '../server-side-config-data/server-side-config-data.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApplicationInsightsService {\r\n private env: { [name: string]: string } = {};\r\n\r\n constructor(private serverSide: ServerSideConfigDataService, private msalService: MsalService) {\r\n this.serverSide.configDataLoaded$.subscribe(loaded => {\r\n if (loaded) {\r\n const config: Microsoft.ApplicationInsights.IConfig = {\r\n instrumentationKey: this.serverSide.configData.appInsightsKey\r\n };\r\n\r\n const envProps = this.serverSide.configData.appInsightsEnv.split(';');\r\n envProps.forEach(p => {\r\n const e: string[] = p.split(':');\r\n this.env[e[0]] = e[1];\r\n });\r\n\r\n if (!AppInsights.config) {\r\n AppInsights.downloadAndSetup(config);\r\n }\r\n\r\n const employeeId = (this.msalService.instance.getAllAccounts()[0] as Profile).idTokenClaims.employeeID;\r\n if (employeeId) {\r\n AppInsights.setAuthenticatedUserContext(employeeId);\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n private getProps(properties?: { [name: string]: string }) {\r\n const props = this.env;\r\n if (properties) {\r\n for (const p in properties) {\r\n if (properties.hasOwnProperty(p)) {\r\n props[p] = properties[p];\r\n }\r\n }\r\n }\r\n\r\n return props;\r\n }\r\n\r\n logPageView(name?: string, url?: string, properties?: { [name: string]: string }, measurements?: { [name: string]: number }, duration?: number) {\r\n AppInsights.trackPageView(name, url, this.getProps(properties), measurements, duration);\r\n }\r\n\r\n logEvent(name: string, properties?: { [name: string]: string }, measurements?: { [name: string]: number }) {\r\n AppInsights.trackEvent(name, this.getProps(properties), measurements);\r\n }\r\n\r\n logError(exception: Error, handledAt?: string, properties?: { [name: string]: string }, measurements?: { [name: string]: number }, severityLevel?: AI.SeverityLevel) {\r\n AppInsights.trackException(exception, handledAt, this.getProps(properties), measurements, severityLevel);\r\n }\r\n\r\n logTrace(message: string, properties?: { [name: string]: string }, severityLevel?: AI.SeverityLevel) {\r\n AppInsights.trackTrace(message, this.getProps(properties), severityLevel);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { EntityManager, Validator } from 'breeze-client';\r\nimport { AnnotatedMetadata, MetaEntityType } from '../../../model/metaEntity';\r\nimport { environment } from '../../../environments/environment.prod';\r\nimport { Project } from '../../../model/model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BreezeValidatorsService {\r\n private entityManager: EntityManager;\r\n\r\n /**\r\n * Register your validators here\r\n * \"EntityName\": validatorMethod\r\n */\r\n private readonly validators: IDictionary = {\r\n \"Project\": this.projectValidators\r\n };\r\n\r\n /**\r\n * These are custom validators. They will be called whenever saveChanges() or commit() is called.\r\n * This file might get pretty big, and you may want to consider breaking out each entity type\r\n * into it's own static file and reference them here\r\n */\r\n constructor() { }\r\n\r\n private projectValidators(entityType: MetaEntityType): ICustomValidator {\r\n const nameProp = entityType.getProperty(\"name\");\r\n if (!nameProp) {\r\n if (!environment.production) {\r\n console.log(`${entityType.name} returned null for getProperty(\"name\"), this is a bypass for testing purposes, but it's unclear why this happens`);\r\n }\r\n return;\r\n }\r\n\r\n nameProp.validators.push(new Validator(\r\n 'uniqueRequirement',\r\n (value: string, context) => {\r\n const entity: Project = (context).entity;\r\n\r\n if (!value) {\r\n return true;\r\n }\r\n\r\n const projects = this.entityManager.getEntities(\"Project\");\r\n\r\n const isValid = projects\r\n .filter(p =>\r\n p.id !== entity.id\r\n && p.name\r\n && p.name.trim().toLowerCase() == value.trim().toLowerCase()\r\n )\r\n .length == 0;\r\n\r\n return isValid;\r\n },\r\n {\r\n messageTemplate: `Project Name must be unique`\r\n }\r\n ));\r\n }\r\n\r\n /**\r\n * Sets up the above validators. Called from EntityManagerProficerService during app initialization\r\n * @param entityTypes\r\n * @param entityManager\r\n */\r\n public setupCustomValidators(entityTypes: Array, entityManager: EntityManager) {\r\n this.entityManager = entityManager;\r\n\r\n entityTypes.map(metaData => this.entityManager.metadataStore.getEntityType(metaData.key, true))\r\n .forEach((entityType: MetaEntityType) => {\r\n const validator = this.validators[entityType.shortName];\r\n if (validator) {\r\n (validator.bind(this))(entityType);\r\n }\r\n }, this);\r\n }\r\n}\r\n\r\ntype ICustomValidator = (entityType: MetaEntityType) => void;\r\n\r\ninterface IDictionary {\r\n [entity: string]: ICustomValidator;\r\n}\r\n","import { Validator } from \"breeze-client\";\r\nimport * as $ from 'jquery';\r\n\r\nexport default class DefaultBreezeValidators {\r\n private static removeValidator(validators, name) {\r\n let index = -1;\r\n\r\n $.each(validators, (i, val) => {\r\n if (val.name == name) {\r\n index = Number(i);\r\n return;\r\n }\r\n });\r\n\r\n if (index > -1) {\r\n validators.splice(index, 1);\r\n }\r\n }\r\n\r\n private static validator(context, messageTemplate, name, fn) {\r\n const defaultContext = { messageTemplate: messageTemplate };\r\n\r\n $.extend(defaultContext, context);\r\n\r\n return new Validator(\r\n name,\r\n fn,\r\n defaultContext\r\n );\r\n }\r\n\r\n private static int16Validator(v, ctxt) {\r\n return this.intValidator(v, ctxt, -32768, 32767);\r\n }\r\n\r\n private static int32Validator(v, ctxt) {\r\n return this.intValidator(v, ctxt, -2147483648, 2147483647);\r\n }\r\n\r\n static int64Validator(v, ctxt) {\r\n return this.intValidator(v, ctxt, -9223372036854775808, 9223372036854775807);\r\n }\r\n\r\n private static intValidator(v, ctxt, minValue, maxValue) {\r\n if (v == null || v == \"\") { return true; } // if empty string then required will validate empty string\r\n if (typeof v == \"string\") {\r\n v = parseInt(v, 0);\r\n }\r\n if ((typeof v == \"number\") && (!isNaN(v)) && Math.floor(v) == v) {\r\n if (minValue != null && v < minValue) {\r\n return false;\r\n }\r\n if (maxValue != null && v > maxValue) {\r\n return false;\r\n }\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n private static numValidator(v, ctxt) {\r\n if (v == null || v == \"\") { return true; } // if empty string then required will validate empty string\r\n if (typeof v == \"string\") {\r\n v = parseFloat(v);\r\n }\r\n if ((typeof v == \"number\") && !isNaN(v)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n private static requiredValidator(context) {\r\n return this.validator(context,\r\n '%displayName% is required',\r\n \"required\",\r\n (value, ctxt) => {\r\n if ((value !== 0 && !value) || value == null) { return false; } // '== null' matches null and empty string\r\n\r\n return true;\r\n }\r\n );\r\n }\r\n\r\n private static rangeValidator(context) {\r\n return this.validator(context,\r\n '%displayName% must be between ' + context.min + ' and ' + context.max,\r\n \"range_\" + context.min + '_and_' + context.max,\r\n (value, ctxt) => {\r\n if (!value || value == null) { return true; }\r\n\r\n if (value < context.min || value > context.max) { return false; }\r\n\r\n return true;\r\n }\r\n );\r\n }\r\n\r\n private static regexValidator(context) {\r\n return this.validator(context,\r\n '%displayName% is not in the correct format',\r\n 'regex_' + context.name,\r\n (value, ctxt) => {\r\n if (!value || value == null) { return true; }\r\n\r\n const patt = new RegExp(context.regex, 'igm');\r\n return patt.test(value);\r\n }\r\n );\r\n }\r\n\r\n private static currencyValidator(context) {\r\n return this.validator(context,\r\n '%displayName% must be entered as currency',\r\n 'currency',\r\n (value, ctxt) => {\r\n if (!value || value == null) { return true; }\r\n\r\n // Allows for US and International currency formats\r\n return new RegExp(/(?:^\\d{1,3}(?:\\.?\\d{3})*(?:,\\d{2})?$)|(?:^\\d{1,3}(?:,?\\d{3})*(?:\\.\\d{2})?$)/).test(value);\r\n }\r\n );\r\n }\r\n\r\n private static emailValidator(context) {\r\n return this.validator(context,\r\n '%displayName% must be a valid e-mail address',\r\n 'email',\r\n (value, ctxt) => {\r\n if (!value || value == null) { return true; }\r\n\r\n return new RegExp(/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i).test(value);\r\n }\r\n );\r\n }\r\n\r\n private static urlValidator(context) {\r\n return this.validator(context,\r\n '%displayName% must be a valid URL',\r\n 'url',\r\n (value, ctxt) => {\r\n if (!value || value == null) { return true; }\r\n\r\n return new RegExp(/[-a-zA-Z0-9@:%_\\+.~#?&//=]{2,256}\\.[a-z]{2,4}\\b(\\/[-a-zA-Z0-9@:%_\\+.~#?&//=]*)?/gi).test(value);\r\n }\r\n );\r\n }\r\n\r\n private static creditCardValidator(context) {\r\n return this.validator(context,\r\n '%displayName% is not a valid credit card number',\r\n 'creditCard',\r\n (value, ctxt) => {\r\n if (!value || value == null) { return true; }\r\n\r\n const cc = value.replace(/[^\\d]/g, '');\r\n\r\n if (this.luhn(cc)) {\r\n return new RegExp(/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$/).test(cc);\r\n }\r\n\r\n return false;\r\n }\r\n );\r\n }\r\n\r\n private static luhn(cc) {\r\n let sum = 0;\r\n let i;\r\n\r\n for (i = cc.length - 2; i >= 0; i -= 2) {\r\n sum += Array(0, 2, 4, 6, 8, 1, 3, 5, 7, 9)[parseInt(cc.charAt(i), 10)];\r\n }\r\n for (i = cc.length - 1; i >= 0; i -= 2) {\r\n sum += parseInt(cc.charAt(i), 10);\r\n }\r\n return (sum % 10) == 0;\r\n }\r\n\r\n // These validators are configured on the server side via EF\r\n public static setupEFValidators(validators, meta) {\r\n for (const index in validators) {\r\n if (validators.hasOwnProperty(index)) {\r\n switch (validators[index].name) {\r\n case \"int16\":\r\n validators[index].valFn = this.int16Validator.bind(this);\r\n break;\r\n case \"int32\":\r\n validators[index].valFn = this.int32Validator.bind(this);\r\n break;\r\n case \"int64\":\r\n validators[index].valFn = this.int64Validator.bind(this);\r\n break;\r\n case \"number\":\r\n validators[index].valFn = this.numValidator.bind(this);\r\n }\r\n }\r\n }\r\n\r\n if (meta.requiredErrorMessage) {\r\n this.removeValidator(validators, \"required\");\r\n validators.push(this.requiredValidator({ messageTemplate: meta.requiredErrorMessage }));\r\n }\r\n\r\n if (meta.range) {\r\n this.removeValidator(validators, \"range\");\r\n validators.push(this.rangeValidator({ min: meta.range.min, max: meta.range.max, messageTemplate: meta.range.errorMessage }));\r\n }\r\n\r\n if (meta.regEx) {\r\n validators.push(this.regexValidator({ regex: meta.regEx.expression, name: meta.displayName, messageTemplate: meta.regEx.errorMessage }));\r\n }\r\n\r\n if (meta.myType == \"EmailAddress\") {\r\n validators.push(this.emailValidator({ messageTemplate: meta.myType.errorMessage }));\r\n }\r\n\r\n if (meta.myType == \"Currency\") {\r\n validators.push(this.currencyValidator({ messageTemplate: meta.myType.errorMessage }));\r\n }\r\n\r\n if (meta.myType == \"Url\" || meta.myType == \"ImageUrl\") {\r\n validators.push(this.urlValidator({ messageTemplate: meta.myType.errorMessage }));\r\n }\r\n\r\n if (meta.myType == \"Currency\") {\r\n validators.push(this.creditCardValidator({ messageTemplate: meta.myType.errorMessage }));\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { Predicate, EntityQuery, FetchStrategy } from \"breeze-client\";\r\nimport { EntityManagerProviderService } from \"../entity-manager-provider/entity-manager-provider.service\";\r\nimport * as model from '../../../model/model';\r\nimport * as modelDto from '../../../model/modelDto';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BridgeService {\r\n constructor(private _http: HttpClient, private _entityManagerProvider: EntityManagerProviderService) { }\r\n\r\n private isEmpty(obj: Object): boolean {\r\n for(const prop in obj) {\r\n if (obj.hasOwnProperty(prop)) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private httpPost(resourceName: string, params: Object): Promise {\r\n const url = this._entityManagerProvider.manager().serviceName + resourceName;\r\n return this._http.post(url, params).toPromise();\r\n }\r\n\r\n private httpGet(resourceName: string, params: Object, sort?: string, filter?: Predicate) {\r\n let query = EntityQuery\r\n .from(resourceName);\r\n\r\n if (!this.isEmpty(params)) {\r\n query = query.withParameters(params);\r\n }\r\n\r\n return this.executeQuery(query, sort, filter);\r\n }\r\n\r\n private postWithParams(resourceName: string, params: Object, sort?: string, filter?: Predicate) {\r\n const postParams = { $method: 'POST', $encoding: 'JSON', $data: params };\r\n return this.getWithParams(resourceName, postParams, sort, filter);\r\n }\r\n\r\n private getWithParams(resourceName: string, params: Object, sort?: string, filter?: Predicate) {\r\n const query = EntityQuery\r\n .from(resourceName)\r\n .withParameters(params);\r\n\r\n return this.executeQuery(query, sort, filter);\r\n }\r\n\r\n private executeQuery(query: EntityQuery, sort?: string, filter?: Predicate) {\r\n if (filter) {\r\n query = query.where(filter);\r\n }\r\n\r\n if (sort) {\r\n query = query.orderBy(sort);\r\n }\r\n\r\n return this._entityManagerProvider.manager()\r\n .executeQuery(query.using(FetchStrategy.FromServer))\r\n .then((data) => {\r\n return data.results;\r\n });\r\n }\r\n \r\n lookups( sort?: string, filter?: Predicate) {\r\n const params = { };\r\n return this.httpGet('lookups', params, sort, filter);\r\n }\r\n\r\n getEmployees(searchValue: string, id: string, showOnlyAdmins: boolean, showOnlyCaptains: boolean,page: number,limit: number, sort?: string, filter?: Predicate) {\r\n const params = { searchValue: searchValue, id: id, showOnlyAdmins: showOnlyAdmins, showOnlyCaptains: showOnlyCaptains, page: page, limit: limit };\r\n return this.httpGet('getEmployees', params, sort, filter);\r\n }\r\n\r\n getActiveTags(includeAll: boolean, sort?: string, filter?: Predicate) {\r\n const params = { includeAll: includeAll };\r\n return this.httpGet('getActiveTags', params, sort, filter);\r\n }\r\n\r\n getTags(includeAll: boolean, sort?: string, filter?: Predicate) {\r\n const params = { includeAll: includeAll };\r\n return this.httpGet('getTags', params, sort, filter);\r\n }\r\n\r\n getInspectionTeamRoles(includeAll: boolean, sort?: string, filter?: Predicate) {\r\n const params = { includeAll: includeAll };\r\n return this.httpGet('getInspectionTeamRoles', params, sort, filter);\r\n }\r\n\r\n getActiveIndustries(includeAll: boolean, sort?: string, filter?: Predicate) {\r\n const params = { includeAll: includeAll };\r\n return this.httpGet('getActiveIndustries', params, sort, filter);\r\n }\r\n\r\n getIndustries(includeAll: boolean, sort?: string, filter?: Predicate) {\r\n const params = { includeAll: includeAll };\r\n return this.httpGet('getIndustries', params, sort, filter);\r\n }\r\n\r\n getOffices( sort?: string, filter?: Predicate) {\r\n const params = { };\r\n return this.httpGet('getOffices', params, sort, filter);\r\n }\r\n\r\n getRegions( sort?: string, filter?: Predicate) {\r\n const params = { };\r\n return this.httpGet('getRegions', params, sort, filter);\r\n }\r\n\r\n getBusinessLines(includeAll: boolean, sort?: string, filter?: Predicate) {\r\n const params = { includeAll: includeAll };\r\n return this.httpGet('getBusinessLines', params, sort, filter);\r\n }\r\n\r\n getStandardQuestionOptions(includeAll: boolean, sort?: string, filter?: Predicate) {\r\n const params = { includeAll: includeAll };\r\n return this.httpGet('getStandardQuestionOptions', params, sort, filter);\r\n }\r\n\r\n getClients(id: string,q: string,page: number,limit: number, sort?: string, filter?: Predicate) {\r\n const params = { id: id, q: q, page: page, limit: limit };\r\n return this.httpGet('getClients', params, sort, filter);\r\n }\r\n\r\n getClientsCount(id: string,q: string, sort?: string, filter?: Predicate) {\r\n const params = { id: id, q: q };\r\n return this.httpGet('getClientsCount', params, sort, filter);\r\n }\r\n\r\n getProjects(id: string,name: string,clientId: string,clientName: string,page: number,limit: number, sort?: string, filter?: Predicate) {\r\n const params = { id: id, name: name, clientId: clientId, clientName: clientName, page: page, limit: limit };\r\n return this.httpGet('getProjects', params, sort, filter);\r\n }\r\n\r\n getProjectsCount(id: string,name: string,clientId: string,clientName: string, sort?: string, filter?: Predicate) {\r\n const params = { id: id, name: name, clientId: clientId, clientName: clientName };\r\n return this.httpGet('getProjectsCount', params, sort, filter);\r\n }\r\n\r\n getAptCaws(id: string,name: string,clientId: string,clientName: string,page: number,limit: number, sort?: string, filter?: Predicate) {\r\n const params = { id: id, name: name, clientId: clientId, clientName: clientName, page: page, limit: limit };\r\n return this.httpGet('getAptCaws', params, sort, filter);\r\n }\r\n\r\n getAptCawsCount(id: string,name: string,clientId: string,clientName: string, sort?: string, filter?: Predicate) {\r\n const params = { id: id, name: name, clientId: clientId, clientName: clientName };\r\n return this.httpGet('getAptCawsCount', params, sort, filter);\r\n }\r\n\r\n getInspectionProfile(id: number, sort?: string, filter?: Predicate) {\r\n const params = { id: id };\r\n return this.httpGet('getInspectionProfile', params, sort, filter);\r\n }\r\n\r\n getInspectionProfilesSummary(page: number,limit: number,gridFilters: string, sort?: string, filter?: Predicate) {\r\n const params = { page: page, limit: limit, gridFilters: gridFilters };\r\n return this.httpGet('getInspectionProfilesSummary', params, sort, filter);\r\n }\r\n\r\n getInspectionProfilesPageCount(limit: number,gridFilters: string, sort?: string, filter?: Predicate) {\r\n const params = { limit: limit, gridFilters: gridFilters };\r\n return this.httpGet('getInspectionProfilesPageCount', params, sort, filter);\r\n }\r\n\r\n getInspectionProfilesForLookup( sort?: string, filter?: Predicate) {\r\n const params = { };\r\n return this.httpGet('getInspectionProfilesForLookup', params, sort, filter);\r\n }\r\n\r\n getInspectionProfilesForEngagement( sort?: string, filter?: Predicate) {\r\n const params = { };\r\n return this.httpGet('getInspectionProfilesForEngagement', params, sort, filter);\r\n }\r\n\r\n getInspectionProfileForEngagementById(id: number, sort?: string, filter?: Predicate) {\r\n const params = { id: id };\r\n return this.httpGet('getInspectionProfileForEngagementById', params, sort, filter);\r\n }\r\n\r\n getProfileSections(page: number,limit: number,gridFilters: string, sort?: string, filter?: Predicate) {\r\n const params = { page: page, limit: limit, gridFilters: gridFilters };\r\n return this.httpGet('getProfileSections', params, sort, filter);\r\n }\r\n\r\n getProfileSectionsPageCount(limit: number,gridFilters: string, sort?: string, filter?: Predicate) {\r\n const params = { limit: limit, gridFilters: gridFilters };\r\n return this.httpGet('getProfileSectionsPageCount', params, sort, filter);\r\n }\r\n\r\n getProfileSectionsForLookup( sort?: string, filter?: Predicate) {\r\n const params = { };\r\n return this.httpGet('getProfileSectionsForLookup', params, sort, filter);\r\n }\r\n\r\n getSectionsForInspectionProfile(profileId: number, sort?: string, filter?: Predicate) {\r\n const params = { profileId: profileId };\r\n return this.httpGet('getSectionsForInspectionProfile', params, sort, filter);\r\n }\r\n\r\n getProfileSectionsForSection(id: number, sort?: string, filter?: Predicate) {\r\n const params = { id: id };\r\n return this.httpGet('getProfileSectionsForSection', params, sort, filter);\r\n }\r\n\r\n getQuestions(page: number,limit: number,gridFilters: string, sort?: string, filter?: Predicate) {\r\n const params = { page: page, limit: limit, gridFilters: gridFilters };\r\n return this.httpGet('getQuestions', params, sort, filter);\r\n }\r\n\r\n getQuestionsPageCount(limit: number,gridFilters: string, sort?: string, filter?: Predicate) {\r\n const params = { limit: limit, gridFilters: gridFilters };\r\n return this.httpGet('getQuestionsPageCount', params, sort, filter);\r\n }\r\n\r\n getQuestion(id: number, sort?: string, filter?: Predicate) {\r\n const params = { id: id };\r\n return this.httpGet('getQuestion', params, sort, filter);\r\n }\r\n\r\n getUnassignedQuestions( sort?: string, filter?: Predicate) {\r\n const params = { };\r\n return this.httpGet('getUnassignedQuestions', params, sort, filter);\r\n }\r\n\r\n getQuestionOptions( sort?: string, filter?: Predicate) {\r\n const params = { };\r\n return this.httpGet('getQuestionOptions', params, sort, filter);\r\n }\r\n\r\n getSelectedOptionActivatingTags(id: number,selectedOptionId: number, sort?: string, filter?: Predicate) {\r\n const params = { id: id, selectedOptionId: selectedOptionId };\r\n return this.httpGet('getSelectedOptionActivatingTags', params, sort, filter);\r\n }\r\n\r\n getEngagement(id: number, sort?: string, filter?: Predicate) {\r\n const params = { id: id };\r\n return this.httpGet('getEngagement', params, sort, filter);\r\n }\r\n\r\n getAllEngagementsSummary(page: number,limit: number,gridFilters: string, sort?: string, filter?: Predicate) {\r\n const params = { page: page, limit: limit, gridFilters: gridFilters };\r\n return this.httpGet('getAllEngagementsSummary', params, sort, filter);\r\n }\r\n\r\n getEngagements(page: number,limit: number,gridFilters: string, sort?: string, filter?: Predicate) {\r\n const params = { page: page, limit: limit, gridFilters: gridFilters };\r\n return this.httpGet('getEngagements', params, sort, filter);\r\n }\r\n\r\n getEngagementsPageCount(limit: number,gridFilters: string, sort?: string, filter?: Predicate) {\r\n const params = { limit: limit, gridFilters: gridFilters };\r\n return this.httpGet('getEngagementsPageCount', params, sort, filter);\r\n }\r\n\r\n publishEngagement(id: number, sort?: string, filter?: Predicate) {\r\n const params = { id: id };\r\n return this.httpGet('publishEngagement', params, sort, filter);\r\n }\r\n\r\n getMyTeamsEngagementById(id: number, sort?: string, filter?: Predicate) {\r\n const params = { id: id };\r\n return this.httpGet('getMyTeamsEngagementById', params, sort, filter);\r\n }\r\n\r\n getEngagementsForMyTeams(page: number,limit: number,gridFilters: string, sort?: string, filter?: Predicate) {\r\n const params = { page: page, limit: limit, gridFilters: gridFilters };\r\n return this.httpGet('getEngagementsForMyTeams', params, sort, filter);\r\n }\r\n\r\n getEngagementsCountForMyTeams(gridFilters: string, sort?: string, filter?: Predicate) {\r\n const params = { gridFilters: gridFilters };\r\n return this.httpGet('getEngagementsCountForMyTeams', params, sort, filter);\r\n }\r\n\r\n getEngagementSectionsForMyTeams(page: number,limit: number,gridFilters: string, sort?: string, filter?: Predicate) {\r\n const params = { page: page, limit: limit, gridFilters: gridFilters };\r\n return this.httpGet('getEngagementSectionsForMyTeams', params, sort, filter);\r\n }\r\n\r\n getEngagementSectionsCountForMyTeams(gridFilters: string, sort?: string, filter?: Predicate) {\r\n const params = { gridFilters: gridFilters };\r\n return this.httpGet('getEngagementSectionsCountForMyTeams', params, sort, filter);\r\n }\r\n\r\n getEngagementQuestionsForMyTeams(page: number,limit: number,gridFilters: string, sort?: string, filter?: Predicate) {\r\n const params = { page: page, limit: limit, gridFilters: gridFilters };\r\n return this.httpGet('getEngagementQuestionsForMyTeams', params, sort, filter);\r\n }\r\n\r\n getEngagementQuestionsCountForMyTeams(gridFilters: string, sort?: string, filter?: Predicate) {\r\n const params = { gridFilters: gridFilters };\r\n return this.httpGet('getEngagementQuestionsCountForMyTeams', params, sort, filter);\r\n }\r\n\r\n getMyInspections(page: number,limit: number,gridFilters: string, sort?: string, filter?: Predicate) {\r\n const params = { page: page, limit: limit, gridFilters: gridFilters };\r\n return this.httpGet('getMyInspections', params, sort, filter);\r\n }\r\n\r\n getMyInspectionsCount(gridFilters: string, sort?: string, filter?: Predicate) {\r\n const params = { gridFilters: gridFilters };\r\n return this.httpGet('getMyInspectionsCount', params, sort, filter);\r\n }\r\n\r\n getEngagementQuestionById(id: number, sort?: string, filter?: Predicate) {\r\n const params = { id: id };\r\n return this.httpGet('getEngagementQuestionById', params, sort, filter);\r\n }\r\n\r\n getExportEngagementQuestionsByYear(inspectionYear: number, sort?: string, filter?: Predicate) {\r\n const params = { inspectionYear: inspectionYear };\r\n return this.httpGet('getExportEngagementQuestionsByYear', params, sort, filter);\r\n }\r\n\r\n getMyEngagementNodeViewerById(id: number, sort?: string, filter?: Predicate) {\r\n const params = { id: id };\r\n return this.httpGet('getMyEngagementNodeViewerById', params, sort, filter);\r\n }\r\n\r\n getMyEngagementById(id: number, sort?: string, filter?: Predicate) {\r\n const params = { id: id };\r\n return this.httpGet('getMyEngagementById', params, sort, filter);\r\n }\r\n\r\n updateQuestionResponse(id: number,isComplete: boolean,completedDate: Date,optionId: number,comment: string,replaceExisting: boolean, sort?: string, filter?: Predicate) {\r\n const params = { id: id, isComplete: isComplete, completedDate: completedDate, optionId: optionId, comment: comment, replaceExisting: replaceExisting };\r\n return this.httpGet('updateQuestionResponse', params, sort, filter);\r\n }\r\n\r\n checkQuestionForExistingResponse(id: number,optionId: number, sort?: string, filter?: Predicate) {\r\n const params = { id: id, optionId: optionId };\r\n return this.httpGet('checkQuestionForExistingResponse', params, sort, filter);\r\n }\r\n\r\n saveQuestionComment(id: number,text: string, sort?: string, filter?: Predicate) {\r\n const params = { id: id, text: text };\r\n return this.httpGet('saveQuestionComment', params, sort, filter);\r\n }\r\n\r\n propagateProfileSectionChanges(id: number, sort?: string, filter?: Predicate) {\r\n const params = { id: id };\r\n return this.httpGet('propagateProfileSectionChanges', params, sort, filter);\r\n }\r\n\r\n propagateQuestionChanges(id: number, sort?: string, filter?: Predicate) {\r\n const params = { id: id };\r\n return this.httpGet('propagateQuestionChanges', params, sort, filter);\r\n }\r\n\r\n getMaxProfileSectionDisplayOrder(id: number,parentSectionId: number, sort?: string, filter?: Predicate) {\r\n const params = { id: id, parentSectionId: parentSectionId };\r\n return this.httpGet('getMaxProfileSectionDisplayOrder', params, sort, filter);\r\n }\r\n\r\n getMaxQuestionDisplayOrder(id: number, sort?: string, filter?: Predicate) {\r\n const params = { id: id };\r\n return this.httpGet('getMaxQuestionDisplayOrder', params, sort, filter);\r\n }\r\n\r\n updateActivatedEngagementQuestions(id: number, sort?: string, filter?: Predicate) {\r\n const params = { id: id };\r\n return this.httpGet('updateActivatedEngagementQuestions', params, sort, filter);\r\n }\r\n\r\n cleanupEngagements( sort?: string, filter?: Predicate) {\r\n const params = { };\r\n return this.httpGet('cleanupEngagements', params, sort, filter);\r\n }\r\n\r\n testApplicationException( sort?: string, filter?: Predicate) {\r\n const params = { };\r\n return this.httpGet('testApplicationException', params, sort, filter);\r\n }\r\n\r\n testException( sort?: string, filter?: Predicate) {\r\n const params = { };\r\n return this.httpGet('testException', params, sort, filter);\r\n }\r\n\r\n cloneInspectionProfile(origProfileId: number,newName: string, sort?: string, filter?: Predicate) {\r\n const params = { origProfileId: origProfileId, newName: newName };\r\n return this.httpGet('cloneInspectionProfile', params, sort, filter);\r\n }\r\n\r\n getEmployeeProjectHours(projectId: string, sort?: string, filter?: Predicate) {\r\n const params = { projectId: projectId };\r\n return this.httpGet('getEmployeeProjectHours', params, sort, filter);\r\n }\r\n\r\n getTeamCaptains( sort?: string, filter?: Predicate) {\r\n const params = { };\r\n return this.httpGet('getTeamCaptains', params, sort, filter);\r\n }\r\n\r\n getInspectionYears( sort?: string, filter?: Predicate) {\r\n const params = { };\r\n return this.httpGet('getInspectionYears', params, sort, filter);\r\n }\r\n\r\n updateAssignedSections(assignedSections: modelDto.UpdateAssignedSectionsDto, sort?: string, filter?: Predicate) {\r\n const params = assignedSections;\r\n return this.httpPost('updateAssignedSections', params);\r\n }\r\n \r\n updateEngagementStatus(engagementStatus: modelDto.UpdateEngagementStatusDto, sort?: string, filter?: Predicate) {\r\n const params = engagementStatus;\r\n return this.httpPost('updateEngagementStatus', params);\r\n }\r\n \r\n updateActivatedEngagementQuestionsByActivatingTags(updateActivatedEngagementQuestionsByActivatingTagsDto: modelDto.UpdateActivatedEngagementQuestionsByActivatingTagsDto, sort?: string, filter?: Predicate) {\r\n const params = updateActivatedEngagementQuestionsByActivatingTagsDto;\r\n return this.httpPost('updateActivatedEngagementQuestionsByActivatingTags', params);\r\n }\r\n \r\n getTotalEmployeeProjectHours(totalEmployeeProjectHours: modelDto.TotalEmployeeProjectHoursDto, sort?: string, filter?: Predicate) {\r\n const params = totalEmployeeProjectHours;\r\n return this.httpPost('getTotalEmployeeProjectHours', params);\r\n }\r\n \r\n\r\n getEngagementReport(engagementId: number) {\r\n const params = { engagementId: engagementId };\r\n return this.httpGet('getEngagementReport', params);\r\n }\r\n\r\n getSpecialtyReviewerTypes(includeAll: boolean, sort?: string, filter?: Predicate) {\r\n const params = { includeAll: includeAll };\r\n return this.httpGet('getSpecialtyReviewerTypes', params, sort, filter);\r\n }\r\n\r\n isReviewerTypeAssigned(reviewerTypeId: number, sort?: string, filter?: Predicate) {\r\n const params = { reviewerTypeId: reviewerTypeId };\r\n return this.httpGet('isReviewerTypeAssigned', params, sort, filter);\r\n }\r\n\r\n getInspectionTeamMemberProfileSections(engagementId: number, sort?: string, filter?: Predicate) {\r\n const params = { engagementId: engagementId };\r\n return this.httpGet('getInspectionTeamMemberProfileSections', params, sort, filter);\r\n }\r\n\r\n getInspectionTeamMemberEngagementSections(engagementId: number, sort?: string, filter?: Predicate) {\r\n const params = { engagementId: engagementId };\r\n return this.httpGet('getInspectionTeamMemberEngagementSections', params, sort, filter);\r\n }\r\n\r\n getHighLevelInspectionTeamMemberProfileSections(engagementId: number, sort?: string, filter?: Predicate) {\r\n const params = { engagementId: engagementId };\r\n return this.httpGet('getHighLevelInspectionTeamMemberProfileSections', params, sort, filter);\r\n }\r\n\r\n getHighLevelInspectionTeamMemberEngagementSections(engagementId: number, sort?: string, filter?: Predicate) {\r\n const params = { engagementId: engagementId };\r\n return this.httpGet('getHighLevelInspectionTeamMemberEngagementSections', params, sort, filter);\r\n }\r\n\r\n updateChildInspectionTeamMemberProfileSections(engagementId: number, sort?: string, filter?: Predicate) {\r\n const params = { engagementId };\r\n return this.httpGet('updateChildInspectionTeamMemberProfileSections', params, sort, filter);\r\n }\r\n}\r\n","import * as moment from 'moment';\r\nimport { NamingConvention, DataType, DataService } from 'breeze-client';\r\n\r\nexport default class Config {\r\n static appTitle = \"BDO Measure\";\r\n static virtualDirRoot = window.location.origin + \"/\";\r\n static configApi = Config.virtualDirRoot + 'api/config';\r\n static serviceName = Config.virtualDirRoot + 'breeze';\r\n static storeExpirationMs = (1000 * 60 * 60 * 24 * 30); // 30 days\r\n static dayMs = (1000 * 60 * 60 * 24); // 1 day\r\n static throttleMs = 200;\r\n static toastrTimeoutMs = 4000; // 4 seconds\r\n static skipFieldsForMessage = [\"rights\", \"createdDate\", \"id\", \"createdByUserId\", \"modifiedDate\", \"modifiedByUserId\", \"relatedRecordId\", \"sortOrder\"];\r\n\r\n static params = window.location.search;\r\n static openIdConfigUri;\r\n static redirectUrl;\r\n static resource;\r\n\r\n //private static params = new URLSearchParams(window.location.search);\r\n //static openIdConfigUri = Config.params.has(\"e2e\") ? Config.virtualDirRoot + '.well-known/openid-configuration-alt' : Config.configApi + '/.well-known/openid-configuration';\r\n //static redirectUrl = Config.virtualDirRoot + \"signin-oidc\" + (Config.params.has(\"e2e\") ? \"?e2e\" : \"\");\r\n //static resource = Config.params.has(\"impersonate\") ? Config.params.get(\"impersonate\") + \":\" + Config.params.get(\"code\") : null;\r\n\r\n static stateKeys = {\r\n metadataHash: Config.appTitle + '-V2-metadataHash',\r\n annotatedMetadataHash: Config.appTitle + '-V2-annotatedMetadataHash',\r\n lookupsHash: Config.appTitle + '-V2-lookupsHash',\r\n breezeMetadata: Config.appTitle + '-V2-breezeMetadata',\r\n lookups: Config.appTitle + '-V2-lookups',\r\n annotatedMetadata: Config.appTitle + '-V2-annotatedMetadata',\r\n savedRoute: Config.appTitle + '-V2-savedRoute'\r\n };\r\n\r\n static hashes = {\r\n currentMetadataHash: '',\r\n currentAnnotatedMetadataHash: '',\r\n currentLookupsHash: ''\r\n };\r\n\r\n private static queryParam(name: string): string {\r\n const results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);\r\n if (results == null) {\r\n return null;\r\n } else {\r\n return decodeURI(results[1]) || null;\r\n }\r\n }\r\n\r\n private static hasQueryParam(name: string): boolean {\r\n return !!this.queryParam(name);\r\n }\r\n\r\n private static configureImpersonate(): void {\r\n this.openIdConfigUri = Config.params.includes(\"e2e\") ? Config.virtualDirRoot + '.well-known/openid-configuration-alt' : Config.configApi + '/.well-known/openid-configuration';\r\n this.redirectUrl = Config.virtualDirRoot + \"signin-oidc\" + (Config.params.includes(\"e2e\") ? \"?e2e\" : \"\");\r\n this.resource = this.hasQueryParam(\"impersonate\") ? this.queryParam(\"impersonate\") + \":\" + this.queryParam(\"code\") : null;\r\n }\r\n\r\n static init() {\r\n this.configureImpersonate();\r\n NamingConvention.camelCase.setAsDefault();\r\n DataType.parseDateFromServer = (source) => moment(source).toDate();\r\n\r\n /*\r\n (breeze.EntityType.prototype).getEntityCtor = function () {\r\n var origCtor = this.getEntityCtor.apply(this);\r\n\r\n var rightsProp = this.getDataProperty(\"rights\");\r\n if (!rightsProp) {\r\n this.addProperty(new breeze.DataProperty(this.rights));\r\n rightsProp = this.getDataProperty(\"rights\");\r\n }\r\n\r\n if (rightsProp.isUnmapped) {\r\n rightsProp.isUnmapped = false;\r\n }\r\n\r\n return origCtor;\r\n };\r\n */\r\n\r\n // Breeze does a bad thing and uses substr(-1) instead of slice(-1)\r\n // that is browser inconsistent. This implementation overrides the\r\n // default behavior\r\n (DataService)._normalizeServiceName = function (serviceName) {\r\n serviceName = serviceName.trim();\r\n if (serviceName.slice(-1) !== \"/\") {\r\n return serviceName + '/';\r\n } else {\r\n return serviceName;\r\n }\r\n };\r\n }\r\n}\r\n","import { Observable, of } from \"rxjs\";\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class DialogHelper {\r\n confirm(message?: string): Observable {\r\n const confirmation = window.confirm(message || 'There are unsaved changes. Continue without saving?');\r\n\r\n return of(confirmation);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from '../../../environments/environment';\r\nimport { AnnotatedMetadata, MetaEntityType, MetaProperty } from '../../../model/metaEntity';\r\nimport { ModelBuilderService } from '../model-builder/model-builder.service';\r\nimport { BreezeValidatorsService } from '../breeze-validators/breeze-validators.service';\r\nimport DefaultBreezeValidators from '../breeze-validators/default-breeze-validators';\r\nimport Config from '../config';\r\nimport Utilities from '../utilities';\r\nimport * as breeze from 'breeze-client';\r\nimport 'breeze-client-labs/breeze.savequeuing';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EntityManagerProviderService {\r\n private initialized: boolean;\r\n\r\n rights = {\r\n name: \"rights\",\r\n isUnmapped: true,\r\n nameOnServer: \"Rights\",\r\n dataType: breeze.DataType.Undefined\r\n };\r\n\r\n private serviceName: string = Config.serviceName;\r\n private masterManager: breeze.EntityManager = new breeze.EntityManager({\r\n serviceName: this.serviceName,\r\n saveOptions: new breeze.SaveOptions({\r\n allowConcurrentSaves: true\r\n })\r\n });\r\n\r\n private _manager: breeze.EntityManager;\r\n\r\n private cachedMetadataHash: string;\r\n private cachedAnnotatedMetadataHash: string;\r\n private cachedLookupsHash: string;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private modelBuilder: ModelBuilderService,\r\n private breezeValidators: BreezeValidatorsService\r\n ) { }\r\n\r\n private prepare() {\r\n this.cachedMetadataHash = localStorage.getItem(Config.stateKeys.metadataHash);\r\n this.cachedAnnotatedMetadataHash = localStorage.getItem(Config.stateKeys.annotatedMetadataHash);\r\n this.cachedLookupsHash = localStorage.getItem(Config.stateKeys.lookupsHash);\r\n\r\n return this.hydrateMetadata()\r\n .then(() => this.modelBuilder.extendMetadata(this.masterManager.metadataStore))\r\n .then(() => Promise.all([this.hydrateLookups(), this.hydrateAnnotatedMetadata()]));\r\n }\r\n\r\n private hydrateMetadata(): Promise {\r\n const metadata = localStorage.getItem(Config.stateKeys.breezeMetadata);\r\n\r\n if (!this.cachedMetadataHash || !metadata || this.cachedMetadataHash !== Config.hashes.currentMetadataHash) {\r\n return this.masterManager\r\n .fetchMetadata()\r\n .then(() => {\r\n this.cacheMetadata();\r\n return true;\r\n });\r\n }\r\n\r\n this.masterManager.metadataStore = breeze.MetadataStore.importMetadata(metadata);\r\n return Utilities.valueAsPromise(true);\r\n }\r\n\r\n private cacheMetadata() {\r\n const meta = this.masterManager.metadataStore.exportMetadata();\r\n localStorage.setItem(Config.stateKeys.breezeMetadata, meta);\r\n localStorage.setItem(Config.stateKeys.metadataHash, Config.hashes.currentMetadataHash);\r\n }\r\n\r\n private hydrateLookups(): Promise {\r\n const lookups = localStorage.getItem(Config.stateKeys.lookups);\r\n\r\n if (!this.cachedLookupsHash || !lookups || this.cachedLookupsHash !== Config.hashes.currentLookupsHash) {\r\n\r\n const query = breeze.EntityQuery\r\n .from('lookups');\r\n\r\n return this.masterManager\r\n .executeQuery(query)\r\n .then(() => {\r\n this.cacheLookups();\r\n return true;\r\n });\r\n }\r\n\r\n this.masterManager.importEntities(lookups);\r\n return Utilities.valueAsPromise(true);\r\n }\r\n\r\n private cacheLookups() {\r\n const lookups = this.masterManager.exportEntities();\r\n localStorage.setItem(Config.stateKeys.lookups, lookups);\r\n localStorage.setItem(Config.stateKeys.lookupsHash, Config.hashes.currentLookupsHash);\r\n }\r\n\r\n private hydrateAnnotatedMetadata(): Promise {\r\n const annotated = localStorage.getItem(Config.stateKeys.annotatedMetadata);\r\n\r\n if (!this.cachedAnnotatedMetadataHash || !annotated || this.cachedAnnotatedMetadataHash !== Config.hashes.currentAnnotatedMetadataHash) {\r\n return this.http.get>(this.serviceName + '/annotatedmetadata')\r\n .toPromise()\r\n .then((data) => {\r\n this.parseAnnotatedMetadata(data);\r\n this.cacheAnnotatedMetadata(JSON.stringify(data));\r\n return true;\r\n });\r\n }\r\n\r\n this.parseAnnotatedMetadata(>JSON.parse(annotated));\r\n return Utilities.valueAsPromise(true);\r\n }\r\n\r\n private cacheAnnotatedMetadata(data) {\r\n localStorage.setItem(Config.stateKeys.annotatedMetadata, data);\r\n localStorage.setItem(Config.stateKeys.annotatedMetadataHash, Config.hashes.currentAnnotatedMetadataHash);\r\n }\r\n\r\n private parseAnnotatedMetadata(data: Array) {\r\n const entityManager = this.masterManager;\r\n const metadataStore = entityManager.metadataStore;\r\n\r\n data.forEach((metaEntity: AnnotatedMetadata) => {\r\n const entityType = metadataStore.getEntityType(metaEntity.key, true);\r\n\r\n if (entityType) {\r\n metadataStore[entityType.shortName] = function () {\r\n return entityType;\r\n };\r\n\r\n entityType.displayName = metaEntity.value.meta.displayName;\r\n entityType.meta = metaEntity.value.meta;\r\n entityType.props = {};\r\n\r\n const entityProps = entityType.getProperties();\r\n entityProps.forEach((entityProp: MetaProperty) => {\r\n entityType.props[entityProp.name] = function () {\r\n return entityProp;\r\n };\r\n\r\n const metaProp = metaEntity.value.properties[entityProp.name];\r\n\r\n if (metaProp) {\r\n entityProp.displayName = metaProp.displayName;\r\n entityProp.meta = metaProp;\r\n\r\n DefaultBreezeValidators.setupEFValidators(entityProp.validators, entityProp.meta);\r\n }\r\n }, this);\r\n }\r\n });\r\n\r\n this.breezeValidators.setupCustomValidators(data, entityManager);\r\n }\r\n\r\n private buildManager(): void {\r\n this._manager = this.masterManager.createEmptyCopy();\r\n this._manager.saveOptions.allowConcurrentSaves = true;\r\n this._manager.enableSaveQueuing(true);\r\n\r\n // Populate with lookup data\r\n this._manager.importEntities(this.masterManager.exportEntities());\r\n }\r\n\r\n manager(): breeze.EntityManager {\r\n if (!this._manager) {\r\n this.buildManager();\r\n }\r\n\r\n return this._manager;\r\n }\r\n\r\n init(): Promise {\r\n if (this.initialized) {\r\n return Utilities.valueAsPromise(this.initialized);\r\n }\r\n\r\n this.masterManager.enableSaveQueuing(true);\r\n\r\n return this.prepare()\r\n .then(() => {\r\n this.buildManager();\r\n this.initialized = true;\r\n return true;\r\n })\r\n .catch((error) => {\r\n if (!environment.production) {\r\n console.log(error);\r\n }\r\n\r\n return Promise.reject(error);\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FileService {\r\n rootUrl = window.location.origin;\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n importQuestionnaire(formData: FormData) {\r\n return this.http.post(`${this.rootUrl}/file/importQuestionnaire`, formData).toPromise();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { add } from 'ngx-bootstrap/chronos';\r\nimport { EngagementQuestion } from '../../../model/model';\r\nimport { Observable, of } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FilteredQuestionsService {\r\n filteredQuestions: object = {};\r\n\r\n constructor() { }\r\n\r\n getFilteredQuestions(): Observable {\r\n return of(this.filteredQuestions);\r\n }\r\n\r\n add(question: EngagementQuestion) {\r\n const engagementSectionId = question.engagementSectionId;\r\n\r\n if(!this.filteredQuestions[question.engagementSectionId]) {\r\n this.filteredQuestions = {\r\n ...this.filteredQuestions,\r\n [engagementSectionId]: [question],\r\n }\r\n } else if(!this.filteredQuestions[question.engagementSectionId].some(q => q.id == question.id)) {\r\n this.filteredQuestions[question.engagementSectionId].push(question)\r\n }\r\n }\r\n}\r\n","import { Injectable, ErrorHandler, Injector } from '@angular/core';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ConfirmationDialogComponent } from '../components/shared/confirmation-dialog/confirmation-dialog.component';\nimport { ServerSideConfigDataService } from '../services/server-side-config-data/server-side-config-data.service';\nimport { QueuedSaveFailedError } from 'breeze-client';\nimport * as moment from 'moment';\nimport { environment } from '../../environments/environment';\n\n@Injectable()\nexport class GlobalErrorHandler implements ErrorHandler {\n private serverSideConfig: ServerSideConfigDataService;\n\n constructor(private injector: Injector) {\n this.serverSideConfig = this.injector.get(ServerSideConfigDataService);\n }\n\n private previousErrors: TrackedError[] = [];\n\n handleError(error: any): void {\n const dialog: MatDialog = this.injector.get(MatDialog);\n let showDialog = true;\n\n let message = \"\";\n let httpResponse = null;\n\n if (error instanceof HttpErrorResponse) {\n // Errors from HTTP Request\n const http = this.parseHttpError(error);\n message = http.message;\n if (http) {\r\n httpResponse = http.httpResponse;\n }\n } else if (error instanceof QueuedSaveFailedError) {\n // Errors from breeze\n message = this.parseQueuedSaveFailedError(error);\n } else {\n // Assuming these will be typical javascript errors\n // User most likely does not need to be notified\n // of these so we are not showing the dialog, but\n // will still pass the error on to the console as\n // normal\n const e: Error = (error);\n showDialog = false;\n // showDialog = !this.errorAlreadyOccurred(e);\n // message = e.message;\n console.error(e.message, e.name, e.stack);\n }\n\n if (showDialog) {\n dialog.open(ConfirmationDialogComponent, {\n disableClose: true,\n data: {\n title: 'An Error Has Occurred',\n content: message,\n onlyShowOk: true,\n debug: httpResponse\n }\n });\n }\n }\n\n private parseHttpError(response: HttpErrorResponse): { message: string; httpResponse?: HttpErrorResponse; } {\n if (this.serverSideConfig.configData\n && ['Local', 'Development'].indexOf(this.serverSideConfig.configData.environment) > -1\n && typeof response.error == 'string'\n && response.error.indexOf('') > -1\n ) {\n const regex = new RegExp(/
(.*?)<\\/div>/);\n const match = response.error.match(regex);\n\n return {\n message: match && match.length ? match[1] : \"An Exception has occurred\",\n httpResponse: response\n };\n }\n\n const properMessage = !environment.production && !response.error\n ? \"Check console log for details\"\n : response.error;\n\n return { message: properMessage };\n }\n\n private parseQueuedSaveFailedError(error: QueuedSaveFailedError): string {\n return error.innerError.entityErrors.map(e => e.errorMessage).join('\\n');\n }\n\n // The following two methods can be used to avoid handling repeated errors.\n // If a binding is wrong or something is misconfigured, Angular like to\n // throw an infinite number of errors in the console. The code below is\n // really just meant to mitigate that incase you want to show a dialog with\n // said error(s)\n private removeOldErrors() {\n if (this.previousErrors.length) {\n const oldestErrorTimestamp = moment().add(-2, 'seconds');\n this.previousErrors = this.previousErrors.filter(e => e.timestamp.isSameOrAfter(oldestErrorTimestamp));\n }\n }\n\n private errorAlreadyOccurred(error: Error) {\n this.removeOldErrors();\n\n const prevError = this.previousErrors.filter(e => e.error.message == error.message)[0];\n const i = this.previousErrors.indexOf(prevError);\n\n if (i > -1) {\n this.previousErrors[i].timestamp = moment();\n return true;\n } else {\n this.previousErrors.push({\n error: error,\n timestamp: moment()\n });\n return false;\n }\n }\n}\n\ninterface TrackedError {\n error: Error;\n timestamp: moment.Moment;\n}\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { ToastrService, ActiveToast } from 'ngx-toastr';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IsBusyService implements OnDestroy {\r\n private sub: Subscription;\r\n private isBusySubscribers: IsBusyValue[] = [];\r\n private isBusyBs = new BehaviorSubject(false);\r\n\r\n constructor(\r\n private toastr: ToastrService\r\n ) {\r\n this.sub = this.isBusyBs.subscribe((value) => {\r\n if (value == true) {\r\n $('.loading-bar-dots.loading-data').css('display', 'flex');\r\n } else {\r\n $('.loading-bar-dots.loading-data').fadeOut('slow');\r\n }\r\n });\r\n }\r\n\r\n get isBusy() {\r\n return this.isBusyBs.value;\r\n }\r\n\r\n set(key: string, isBusy: boolean, message?: string, toast?: ActiveToast) {\r\n const context = this;\r\n setTimeout(() => {\r\n const isSubscriberIndex = context.isBusySubscribers\r\n .map((e) => e.key)\r\n .indexOf(key);\r\n\r\n if (isBusy == true && isSubscriberIndex < 0) {\r\n if (message) {\r\n toast = context.toastr.info(message, \"\", { timeOut: 0, extendedTimeOut: 0 });\r\n }\r\n\r\n context.isBusySubscribers.push({\r\n key: key,\r\n isBusy: isBusy,\r\n message: message,\r\n toast: toast\r\n });\r\n } else if (isBusy == false && isSubscriberIndex >= 0) {\r\n const existing = context.isBusySubscribers[isSubscriberIndex];\r\n\r\n if (existing.toast) {\r\n context.toastr.clear(existing.toast.toastId);\r\n }\r\n\r\n context.isBusySubscribers.splice(isSubscriberIndex, 1);\r\n }\r\n\r\n context.isBusyBs.next(context.isBusySubscribers.length > 0);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.sub.unsubscribe();\r\n }\r\n}\r\n\r\nexport interface IsBusyValue {\r\n key: string;\r\n isBusy: boolean;\r\n message?: string;\r\n toast?: ActiveToast;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MetadataStore, Entity } from 'breeze-client';\r\nimport { Employee, ProfileSection, InspectionProfile, Question, QuestionTag, QuestionOption, Engagement, EngagementSection, EngagementQuestionComment, EngagementQuestionOption, Project, Client, AptCaw } from '../../../model/model';\r\nimport { ProgressStatus } from '../../../model/modelEnums';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ModelBuilderService {\r\n private metadataStore: MetadataStore;\r\n\r\n /**\r\n * Implement extended model properties here.\r\n * Declare them in modelExtended.d.ts\r\n */\r\n constructor() { }\r\n\r\n private computed(entity: T, propNames: string[], func: (entity: T) => Y): BehaviorSubject {\r\n const subject = new BehaviorSubject(func(entity));\r\n\r\n entity.entityAspect.propertyChanged.subscribe(p => {\r\n if (propNames.find(n => n == p.propertyName)) {\r\n subject.next(func(entity));\r\n }\r\n });\r\n\r\n return subject;\r\n }\r\n\r\n private extendEmployee() {\r\n const myEntityCtor = function () { };\r\n\r\n const myEntityInitializer = (myEntity: Employee) => {\r\n myEntity.fullName = `${myEntity.firstName} ${myEntity.lastName}`;\r\n }\r\n this.metadataStore.registerEntityTypeCtor('Employee', myEntityCtor, myEntityInitializer);\r\n }\r\n \r\n private extendInspectionProfile() {\r\n const myEntityCtor = function () { };\r\n\r\n function sumQuestions(array: ProfileSection[]): number {\r\n let count = 0;\r\n\r\n if (array.length > 0) {\r\n array.forEach(function (section) {\r\n count += section.questions.filter(m => !m.isDeleted).length;\r\n });\r\n }\r\n\r\n return count;\r\n }\r\n\r\n const myEntityInitializer = (myEntity: InspectionProfile) => {\r\n myEntity.businessLineName = () => {\r\n return myEntity.businessLine ? `${myEntity.businessLine.name}` : `---`;\r\n }\r\n myEntity.sectionCount = () => {\r\n if (myEntity.profileSections && myEntity.profileSections.length > 0) {\r\n // All sections have a reference to the profile, regardless of how deep the section -> child section reference is,\r\n // so just count the profile sections\r\n return myEntity.profileSections.filter(m => !m.isDeleted).length;\r\n }\r\n\r\n return 0;\r\n }\r\n myEntity.questionCount = () => {\r\n if (myEntity.profileSections && myEntity.profileSections.length > 0) {\r\n return sumQuestions(myEntity.profileSections.filter(m => !m.isDeleted));\r\n }\r\n\r\n return 0;\r\n }\r\n }\r\n\r\n this.metadataStore.registerEntityTypeCtor('InspectionProfile', myEntityCtor, myEntityInitializer);\r\n }\r\n\r\n private extendProfileSection() {\r\n const myEntityCtor = function () { };\r\n function sumQuestions(array: ProfileSection[]): number {\r\n let count = 0;\r\n\r\n if (array.length > 0) {\r\n array.forEach(function (section) {\r\n // Increment by one for current section\r\n count += section.questions != null ? section.questions.filter(m => !m.isDeleted).length : 0;\r\n // Get count of this section's children\r\n if (section.childSections) {\r\n count += sumQuestions(section.childSections);\r\n }\r\n });\r\n }\r\n\r\n return count;\r\n }\r\n\r\n function sumSections(array: ProfileSection[]): number {\r\n let count = 0;\r\n\r\n if (array.length > 0) {\r\n array.forEach(function (section) {\r\n // Increment by one for current section\r\n count += 1;\r\n // Get count of this section's children\r\n if (section.childSections) {\r\n count += sumSections(section.childSections);\r\n }\r\n });\r\n }\r\n\r\n return count;\r\n }\r\n\r\n const myEntityInitializer = (myEntity: ProfileSection) => {\r\n myEntity.profileName = () => {\r\n return myEntity.inspectionProfile ? `${myEntity.inspectionProfile.name}` : 'Unassigned';\r\n }\r\n myEntity.sectionCount = () => {\r\n if (myEntity.childSections) {\r\n return sumSections(myEntity.childSections.filter(m => !m.isDeleted));\r\n }\r\n\r\n return 0;\r\n }\r\n myEntity.questionCount = () => {\r\n let count: number = myEntity.questions ? myEntity.questions.length : 0;\r\n if (myEntity.childSections && myEntity.childSections.length > 0) {\r\n count += sumQuestions(myEntity.childSections.filter(m => !m.isDeleted));\r\n }\r\n\r\n return count;\r\n }\r\n }\r\n\r\n this.metadataStore.registerEntityTypeCtor('ProfileSection', myEntityCtor, myEntityInitializer);\r\n }\r\n\r\n private extendQuestion() {\r\n const myEntityCtor = function () { };\r\n\r\n const myEntityInitializer = (myEntity: Question) => {\r\n myEntity.profileName = () => {\r\n return myEntity.profileSection ? myEntity.profileSection.inspectionProfile ? `${myEntity.profileSection.inspectionProfile.name}` : `Unassigned` : `Unassigned`;\r\n }\r\n myEntity.sectionName = () => {\r\n return myEntity.profileSection ? `${myEntity.profileSection.name}` : `---`;\r\n }\r\n }\r\n\r\n this.metadataStore.registerEntityTypeCtor('Question', myEntityCtor, myEntityInitializer);\r\n }\r\n\r\n private extendQuestionTag() {\r\n const myEntityCtor = function () { };\r\n\r\n const myEntityInitializer = (myEntity: QuestionTag) => {\r\n myEntity.tagName = () => {\r\n return myEntity && myEntity.tag ? myEntity.tag.name : '';\r\n }\r\n myEntity.name = myEntity && myEntity.tag ? myEntity.tag.name: '';\r\n }\r\n\r\n this.metadataStore.registerEntityTypeCtor('QuestionTag', myEntityCtor, myEntityInitializer);\r\n }\r\n\r\n private extendQuestionOption() {\r\n const myEntityCtor = function () { };\r\n\r\n const myEntityInitializer = (myEntity: QuestionOption) => {\r\n myEntity.canSave = () => {\r\n return myEntity.standardQuestionOptionId > 0 || (myEntity.text && myEntity.text.trim() != '');\r\n }\r\n }\r\n\r\n this.metadataStore.registerEntityTypeCtor('QuestionOption', myEntityCtor, myEntityInitializer);\r\n }\r\n\r\n private extendEngagement() {\r\n const myEntityCtor = function () { };\r\n\r\n const myEntityInitializer = (myEntity: Engagement) => {\r\n myEntity.leadInspector = () => {\r\n return myEntity.inspectionLead ? myEntity.inspectionLead.fullName : '---';\r\n }\r\n }\r\n\r\n this.metadataStore.registerEntityTypeCtor('Engagement', myEntityCtor, myEntityInitializer);\r\n }\r\n\r\n private extendEngagementSection() {\r\n const myEntityCtor = function () { };\r\n\r\n const myEntityInitializer = (myEntity: EngagementSection) => {\r\n myEntity.status = () => {\r\n let questionStatus = ProgressStatus.na;\r\n let sectionStatus = ProgressStatus.na;\r\n\r\n if (myEntity.isActivated) {\r\n if (myEntity.engagementQuestions && myEntity.engagementQuestions.length) {\r\n if (myEntity.percentComplete() == 1) {\r\n questionStatus = ProgressStatus.completed;\r\n }\r\n else if (myEntity.percentComplete() == 0) {\r\n questionStatus = ProgressStatus.notStarted;\r\n }\r\n else {\r\n questionStatus = ProgressStatus.inProgress;\r\n }\r\n }\r\n\r\n if (myEntity.childSections && myEntity.childSections.filter(s => s.isActivated).length) {\r\n if (myEntity.childSections.every(s => s.isActivated && s.status() == ProgressStatus.completed)) {\r\n sectionStatus = ProgressStatus.completed;\r\n }\r\n else if (myEntity.childSections.some(s => s.isActivated && s.status() > ProgressStatus.notStarted)) {\r\n sectionStatus = ProgressStatus.inProgress;\r\n }\r\n else if (myEntity.childSections.some(s => s.isActivated && s.status() > ProgressStatus.na)) {\r\n sectionStatus = ProgressStatus.notStarted;\r\n }\r\n\r\n if (questionStatus > ProgressStatus.na) {\r\n if (questionStatus > ProgressStatus.notStarted) {\r\n if (questionStatus < sectionStatus) {\r\n sectionStatus = questionStatus;\r\n }\r\n }\r\n else {\r\n if (sectionStatus > ProgressStatus.notStarted) {\r\n if (sectionStatus != ProgressStatus.inProgress) {\r\n sectionStatus = ProgressStatus.inProgress;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n sectionStatus = questionStatus;\r\n }\r\n }\r\n\r\n return sectionStatus;\r\n }\r\n\r\n myEntity.percentComplete = () => {\r\n if (myEntity.engagementQuestions && myEntity.engagementQuestions.length) {\r\n const completed = myEntity.engagementQuestions.filter(q => q.isComplete).length;\r\n const total = myEntity.engagementQuestions.length;\r\n\r\n if (total) {\r\n return completed / total;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n myEntity.completedQuestions = () => {\r\n if (myEntity.engagementQuestions && myEntity.engagementQuestions.length) {\r\n return myEntity.engagementQuestions.filter(q => q.isComplete).length;\r\n }\r\n return null;\r\n }\r\n\r\n myEntity.totalQuestions = () => {\r\n if (myEntity.engagementQuestions && myEntity.engagementQuestions.length) {\r\n return myEntity.engagementQuestions.length;\r\n }\r\n return null;\r\n }\r\n\r\n myEntity.nrfs = () => {\r\n if (myEntity.engagementQuestions && myEntity.engagementQuestions.length) {\r\n return myEntity.engagementQuestions.filter(q => q.selectedOption && q.selectedOption.isNRF).length;\r\n }\r\n return null;\r\n }\r\n\r\n myEntity.oberservations = () => {\r\n if (myEntity.engagementQuestions && myEntity.engagementQuestions.length) {\r\n return myEntity.engagementQuestions.filter(q => q.selectedOption && q.selectedOption.commentIsRequired).length;\r\n }\r\n return null;\r\n }\r\n }\r\n\r\n this.metadataStore.registerEntityTypeCtor('EngagementSection', myEntityCtor, myEntityInitializer);\r\n }\r\n \r\n private extendEngagementQuestionComment() {\r\n const myEntityCtor = function () { };\r\n\r\n const myEntityInitializer = (myEntity: EngagementQuestionComment) => {\r\n myEntity.originalText = myEntity.text;\r\n }\r\n\r\n this.metadataStore.registerEntityTypeCtor('EngagementQuestionComment', myEntityCtor, myEntityInitializer);\r\n }\r\n\r\n private extendEngagementQuestionOption() {\r\n const myEntityCtor = function () { };\r\n\r\n const myEntityInitializer = (myEntity: EngagementQuestionOption) => {\r\n myEntity.displayValue = () => {\r\n return myEntity.text == null ? myEntity.standardQuestionOption.value : myEntity.text;\r\n }\r\n }\r\n\r\n this.metadataStore.registerEntityTypeCtor('EngagementQuestionOption', myEntityCtor, myEntityInitializer);\r\n }\r\n\r\n private extendProject() {\r\n const myEntityCtor = function () { };\r\n\r\n const myEntityInitializer = (myEntity: Project) => {\r\n myEntity.label = myEntity.id + ' - ' + myEntity.name;\r\n }\r\n\r\n this.metadataStore.registerEntityTypeCtor('Project', myEntityCtor, myEntityInitializer);\r\n }\r\n\r\n private extendClient() {\r\n const myEntityCtor = function () { };\r\n\r\n const myEntityInitializer = (myEntity: Client) => {\r\n myEntity.label = myEntity.id + ' - ' + myEntity.name;\r\n }\r\n\r\n this.metadataStore.registerEntityTypeCtor('Client', myEntityCtor, myEntityInitializer);\r\n }\r\n\r\n private extendAptCaw() {\r\n const myEntityCtor = function () { };\r\n\r\n const myEntityInitializer = (myEntity: AptCaw) => {\r\n myEntity.label = myEntity.name + ' (' + myEntity.id + ')';\r\n }\r\n\r\n this.metadataStore.registerEntityTypeCtor('AptCaw', myEntityCtor, myEntityInitializer);\r\n }\r\n\r\n extendMetadata(metadataStore: MetadataStore) {\r\n this.metadataStore = metadataStore;\r\n\r\n this.extendEmployee();\r\n this.extendInspectionProfile();\r\n this.extendProfileSection();\r\n this.extendQuestion();\r\n this.extendQuestionTag();\r\n this.extendQuestionOption();\r\n this.extendEngagement();\r\n this.extendEngagementSection();\r\n this.extendEngagementQuestionComment();\r\n this.extendEngagementQuestionOption();\r\n this.extendProject();\r\n this.extendClient();\r\n this.extendAptCaw();\r\n }\r\n}\r\n","import { EntityType, MetadataStore, Predicate, EntityQuery, EntityState, EntityManager, EntityKey, QueuedSaveFailedError } from \"breeze-client\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport { EntityManagerProviderService } from \"./entity-manager-provider/entity-manager-provider.service\";\r\nimport { MetaEntity } from '../../model/metaEntity';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { GlobalErrorHandler } from '../services/global-error-handler';\r\nimport Utilities from './utilities';\r\nimport Strings from './strings';\r\nimport { MergeableDto, MergeableDtoAlt } from '../../typings';\r\n\r\nexport class Repository {\r\n hasChanges = new BehaviorSubject(false);\r\n\r\n constructor(\r\n private entityManagerProvider: EntityManagerProviderService,\r\n private toastr: ToastrService,\r\n private errorHandler: GlobalErrorHandler,\r\n private entityTypeName: string,\r\n private resourceName: string\r\n ) {\r\n let entityType: EntityType;\r\n if (this.entityTypeName) {\r\n entityType = this.getMetastore().getEntityType(this.entityTypeName);\r\n entityType.setProperties({ defaultResourceName: this.resourceName });\r\n\r\n this.getMetastore().setEntityTypeForResourceName(this.resourceName, this.entityTypeName);\r\n }\r\n\r\n this.manager().hasChangesChanged.subscribe(this.updateHasChanges);\r\n\r\n if (!window[\"$ms\"]) {\r\n window[\"$ms\"] = this.manager().metadataStore;\r\n }\r\n }\r\n\r\n withId(key: string): Promise {\r\n if (!this.entityTypeName) {\r\n throw new Error(\"Repository must be created with an entity type specified\");\r\n }\r\n\r\n return this.manager().fetchEntityByKey(this.entityTypeName, key, true)\r\n .then(function (data) {\r\n if (!data.entity) {\r\n throw new Error(\"Entity not found!\");\r\n }\r\n return data.entity;\r\n });\r\n }\r\n\r\n findInCache(predicate: Predicate, sort?: string): T[] {\r\n let query = EntityQuery\r\n .from(this.resourceName)\r\n .where(predicate);\r\n\r\n if (sort) {\r\n query = query.orderBy(sort);\r\n }\r\n\r\n return this.executeCacheQuery(query);\r\n }\r\n\r\n allCached(sort?: string): T[] {\r\n let query = EntityQuery\r\n .from(this.resourceName);\r\n\r\n if (sort) {\r\n query = query.orderBy(sort);\r\n }\r\n\r\n return this.executeCacheQuery(query);\r\n }\r\n\r\n updateHasChanges = (eventArgs?) => {\r\n if (this.entityTypeName) {\r\n this.hasChanges.next(this.manager().hasChanges([this.entityTypeName]));\r\n }\r\n }\r\n\r\n cancelChanges(entity?: T): void {\r\n let entities: T[];\r\n const manager = this.manager();\r\n\r\n if (entity) {\r\n entities = [entity];\r\n } else {\r\n entities = this.allCached();\r\n }\r\n\r\n entities.forEach(function (e) {\r\n if (e.entityAspect.entityState == EntityState.Added) {\r\n manager.detachEntity(e);\r\n } else {\r\n e.entityAspect.rejectChanges();\r\n }\r\n });\r\n\r\n this.updateHasChanges();\r\n }\r\n\r\n executeCacheQuery(query: EntityQuery): T[] {\r\n return this.entityManagerProvider.manager()\r\n .executeQueryLocally(query);\r\n }\r\n\r\n getMetastore(): MetadataStore {\r\n return this.manager().metadataStore;\r\n }\r\n\r\n private manager(): EntityManager {\r\n return this.entityManagerProvider.manager();\r\n }\r\n\r\n createEntity(config?: {}): T {\r\n const e = this.manager().createEntity(this.entityTypeName, config);\r\n\r\n if ((e).createdDate != null) {\r\n (e).createdDate = new Date().getTime();\r\n }\r\n\r\n if ((e).createdByUserId != null) {\r\n (e).createdByUserId = \"client\";\r\n }\r\n\r\n return e;\r\n }\r\n\r\n addEntity(entity: T): T {\r\n const added = this.manager().addEntity(entity);\r\n this.updateHasChanges();\r\n return added;\r\n }\r\n\r\n saveChanges(entities?: Array): Promise {\r\n let modified: Array;\r\n\r\n if (entities) {\r\n modified = entities;\r\n } else {\r\n modified = this.allCached().filter((entity) => entity.entityAspect.entityState == EntityState.Added || entity.entityAspect.entityState == EntityState.Deleted || entity.entityAspect.entityState == EntityState.Modified);\r\n }\r\n\r\n modified.forEach((entity) => {\r\n (entity.entityAspect).fieldsSaving = {};\r\n (entity.entityAspect).fieldsSavingEntityState = entity.entityAspect.entityState;\r\n\r\n for (const prop in entity.entityAspect.originalValues) {\r\n if (entity.entityAspect.originalValues.hasOwnProperty(prop)) {\r\n (entity.entityAspect).fieldsSaving[prop] = entity.entityAspect.originalValues[prop];\r\n }\r\n }\r\n });\r\n\r\n return this.manager()\r\n .saveChanges(modified)\r\n .then((saveResult) => {\r\n this.updateHasChanges();\r\n\r\n this.toastr.success(Strings.toasts.savedData);\r\n })\r\n .catch((error: QueuedSaveFailedError) => {\r\n // Http request errors are handled in add-authorization-header-interceptor.ts\r\n if (!error.innerError.httpResponse) {\r\n this.errorHandler.handleError(error);\r\n }\r\n });\r\n }\r\n\r\n mergeEntityIntoCache(data: { results: MergeableDto[] }, isPartial?: boolean, entityCallback?: (entity: T, dto: MergeableDto) => void): T[] {\r\n const entityType = this.getMetastore().getEntityType(this.entityTypeName);\r\n const manager = this.manager();\r\n\r\n return data.results.map((dto) => {\r\n const id = dto.id;\r\n const key = new EntityKey(entityType, id);\r\n let entity = manager.getEntityByKey(key);\r\n if (!entity) {\r\n entity = entityType.createEntity();\r\n entity.id = id;\r\n manager.attachEntity(entity);\r\n entity.isPartial = isPartial == undefined ? true : isPartial;\r\n }\r\n\r\n this.mapToEntity(entity, dto);\r\n\r\n if (entityCallback) {\r\n entityCallback(entity, dto);\r\n }\r\n\r\n entity.entityAspect.setUnchanged();\r\n\r\n return entity;\r\n });\r\n }\r\n\r\n private mapToEntity(entity: T, dto: MergeableDto): MetaEntity {\r\n for (const prop in dto) {\r\n if (entity.hasOwnProperty(prop)) {\r\n const propInfo = entity.entityType.getProperty(prop, false);\r\n if (!propInfo || (propInfo && !propInfo.isNavigationProperty)) {\r\n entity[prop] = dto[prop];\r\n }\r\n }\r\n }\r\n\r\n return entity;\r\n }\r\n\r\n mergeEntityIntoCacheAlt(data: { results: MergeableDtoAlt[] }, isPartial?: boolean, entityCallback?: (entity: T, dto: MergeableDtoAlt) => void): T[] {\r\n const entityType = this.getMetastore().getEntityType(this.entityTypeName);\r\n const manager = this.manager();\r\n\r\n return data.results.map((dto) => {\r\n const id = dto.id;\r\n const key = new EntityKey(entityType, id);\r\n let entity = manager.getEntityByKey(key);\r\n if (!entity) {\r\n entity = entityType.createEntity();\r\n entity.id = id;\r\n manager.attachEntity(entity);\r\n entity.isPartial = isPartial == undefined ? true : isPartial;\r\n }\r\n\r\n this.mapToEntityAlt(entity, dto);\r\n\r\n if (entityCallback) {\r\n entityCallback(entity, dto);\r\n }\r\n\r\n entity.entityAspect.setUnchanged();\r\n\r\n return entity;\r\n });\r\n }\r\n\r\n private mapToEntityAlt(entity: T, dto: MergeableDtoAlt): MetaEntity {\r\n for (const prop in dto) {\r\n if (entity.hasOwnProperty(prop)) {\r\n const propInfo = entity.entityType.getProperty(prop, false);\r\n if (!propInfo || (propInfo && !propInfo.isNavigationProperty)) {\r\n entity[prop] = dto[prop];\r\n }\r\n }\r\n }\r\n\r\n return entity;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport Config from '../config';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport Utilities from '../utilities';\r\nimport { ServerSideConfigData } from '../../../typings';\r\nimport { SharedDataService } from '../shared-data/shared-data.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ServerSideConfigDataService {\r\n configData: ServerSideConfigData;\r\n configDataLoaded$ = new ReplaySubject(1);\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private sharedData: SharedDataService\r\n ) { }\r\n\r\n loadServerSideData(): Promise {\r\n if (!this.configData) {\r\n return this.http.get(`${Config.serviceName}/getServerSideConfigData`)\r\n .toPromise()\r\n .then((result) => {\r\n this.configData = result;\r\n\r\n Config.hashes.currentMetadataHash = result.hashes[0].metadataHash;\r\n Config.hashes.currentAnnotatedMetadataHash = result.hashes[0].annotatedMetadataHash;\r\n Config.hashes.currentLookupsHash = result.hashes[0].lookupsHash;\r\n\r\n this.sharedData.setMe(this.configData.me);\r\n this.configDataLoaded$.next(true);\r\n return true;\r\n })\r\n .catch(err => Promise.reject(err));\r\n } else {\r\n return Utilities.valueAsPromise(true);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport * as model from '../../../model/model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SharedDataService {\r\n public accessType: string;\r\n\r\n me = new BehaviorSubject(null);\r\n setMe = (data) => this.me.next(data);\r\n\r\n myEngagements = new BehaviorSubject(null);\r\n setMyEngagements = (data) => this.myEngagements.next(data);\r\n\r\n constructor() { }\r\n}\r\n","export default class Strings {\r\n static toasts = {\r\n changesPending: \"Please save or cancel your changes before leaving the page\",\r\n errorSavingData: \"Data could not be saved\",\r\n errorGettingData: \"toasts_errorGettingData\",\r\n invalidRoute: \"Could not retrieve data\",\r\n welcomeMsg: \"Welcome, {0}!\",\r\n retrievedData: \"Successfully Loaded {0}!\",\r\n savedData: \"Data saved successfully\",\r\n canceledData: \"Changes reverted back to original values\",\r\n invalidData: \"Some fields have invalid data, please correct them before continuing\",\r\n entityAdded: \"{0} Added\",\r\n entityDeleted: \"{0} Deleted\"\r\n };\r\n\r\n static errors = {\r\n nocallback: \"callback must be specified.\",\r\n noroute: \"No route was indicated.\",\r\n queryfailed: \"Query failed:\",\r\n savefailed: \"Save failed:\",\r\n };\r\n\r\n static actions = {\r\n undoDelete: \"action_undo_delete\"\r\n };\r\n\r\n static validation = {\r\n required: \"'%displayName%' is required\",\r\n date: \"'%displayName%' must be a date\",\r\n \"string\": \"'%displayName%' must be a string\",\r\n \"bool\": \"'%displayName%' must be a a 'true' or 'false' value\",\r\n guid: \"'%displayName%' must be a GUID\",\r\n \"number\": \"'%displayName%' must be a number\",\r\n integer: \"'%displayName%' must be an integer\",\r\n integerRange: \"'%displayName%' must be an integer between the values of %minValue% and %maxValue%\",\r\n maxLength: \"'%displayName%' must be a string with less than %maxLength% characters\",\r\n stringLength: \"'%displayName%' must be a string with between %minLength% and %maxLength% characters\"\r\n };\r\n\r\n static labels = {\r\n pager: \"Page {0} of {1}\",\r\n cancel: \"Cancel\",\r\n save: \"Save\",\r\n submit: \"Submit\",\r\n rollback: \"Rollback Status\",\r\n validationSummary: \"Validation Summary\",\r\n view: \"View:\",\r\n back: \"Back\",\r\n copy: \"Copy\",\r\n cancelCopy: \"Cancel\",\r\n newLabel: \"New\",\r\n add: \"Add\",\r\n undo: \"(Undo)\",\r\n noUsersAuthorized: \"label_noUsersAuthorized\",\r\n name: \"Name\",\r\n noUsersFound: \"label_noUsersFound\",\r\n new: \"New\",\r\n yes: \"Yes\",\r\n no: \"No\",\r\n footer: \"&copy; Copyright BDO USA, P.C., a Virginia Professional Service Corporation {0}. All Rights Reserved.\"\r\n };\r\n\r\n static titles = {\r\n home: \"My Projects\",\r\n admin: \"Admin\"\r\n };\r\n\r\n static loadingMsgs = {};\r\n\r\n static reports = {\r\n reportname: {\r\n name: \"report_controller_action\",\r\n title: \"Report_MyReportName_Title\",\r\n description: \"Report_MyReportName_Description\"\r\n }\r\n };\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { SaveOptions, QueuedSaveFailedError, SaveResult, EntityChangedEventArgs } from 'breeze-client';\r\nimport { Repository } from '../repository';\r\nimport { BridgeService } from '../bridge/bridge.service';\r\nimport { EntityManagerProviderService } from '../entity-manager-provider/entity-manager-provider.service';\r\nimport * as model from '../../../model/model';\r\nimport * as modelEnum from '../../../model/modelEnums';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { GlobalErrorHandler } from '../../services/global-error-handler';\r\nimport { MetaEntity } from '../../../model/metaEntity';\r\nimport Strings from '../strings';\r\n\r\nconst defaultLimit: number = 15;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UnitOfWorkService implements OnDestroy {\r\n hasChanges = new BehaviorSubject(false);\r\n entityChanged = new Subject();\r\n\r\n inspectionProfileStatuses = [\r\n { isSelected: false, status: modelEnum.InspectionProfileStatus.draft, title: 'Draft' },\r\n { isSelected: false, status: modelEnum.InspectionProfileStatus.active, title: 'Active' },\r\n { isSelected: false, status: modelEnum.InspectionProfileStatus.archived, title: 'Archived' }\r\n ];\r\n\r\n engagementStatuses = [\r\n { isSelected: false, status: modelEnum.EngagementStatus.draft, title: 'Draft' },\r\n { isSelected: false, status: modelEnum.EngagementStatus.active, title: 'Active' },\r\n { isSelected: false, status: modelEnum.EngagementStatus.changesRequired, title: 'Changes Required' },\r\n { isSelected: false, status: modelEnum.EngagementStatus.teamCaptainReviewComplete, title: 'Team Captain Review Complete' },\r\n { isSelected: false, status: modelEnum.EngagementStatus.archived, title: 'Archived' }\r\n ];\r\n\r\n progressStatuses = [\r\n { isSelected: false, status: modelEnum.ProgressStatus.na, title: '---' },\r\n { isSelected: false, status: modelEnum.ProgressStatus.notActivated, title: 'Not Activated' },\r\n { isSelected: false, status: modelEnum.ProgressStatus.notStarted, title: 'Not Started' },\r\n { isSelected: false, status: modelEnum.ProgressStatus.inProgress, title: 'In Progress' },\r\n { isSelected: false, status: modelEnum.ProgressStatus.completed, title: 'Completed' }\r\n ];\r\n\r\n engagementRatings = [\r\n { isSelected: false, status: modelEnum.EngagementRating.pending, title: 'Pending' },\r\n { isSelected: false, status: modelEnum.EngagementRating.veryPoor, title: 'Very Poor' },\r\n { isSelected: false, status: modelEnum.EngagementRating.poor, title: 'Poor' },\r\n { isSelected: false, status: modelEnum.EngagementRating.acceptable, title: 'Acceptable' },\r\n { isSelected: false, status: modelEnum.EngagementRating.veryGood, title: 'Very Good' },\r\n { isSelected: false, status: modelEnum.EngagementRating.excellent, title: 'Excellent' }\r\n ];\r\n\r\n // Declare repositories for entity types you need to create/read/update/delete\r\n employees: Repository;\r\n tags: Repository;\r\n inspectionTeamRoles: Repository;\r\n industries: Repository;\r\n offices: Repository;\r\n businessLines: Repository;\r\n standardQuestionOptions: Repository;\r\n inspectionProfiles: Repository;\r\n profileSections: Repository;\r\n questions: Repository;\r\n questionOptions: Repository;\r\n profileSectionQuestionOptions: Repository;\r\n profileQuestionActivatingTags: Repository;\r\n questionTags: Repository;\r\n clients: Repository;\r\n projects: Repository;\r\n aptCaws: Repository;\r\n\r\n engagements: Repository;\r\n engagementQuestions: Repository;\r\n engagementQuestionComments: Repository;\r\n engagementQuestionOptions: Repository;\r\n engagementQuestionTags: Repository;\r\n engagementQuestionActivatingTags: Repository;\r\n engagementSections: Repository;\r\n engagementSectionEngagementQuestionOptions: Repository;\r\n engagementTeamMembers: Repository;\r\n inspectionTeamMemberEngagementSections: Repository;\r\n inspectionTeamMemberProfileSections: Repository;\r\n inspectionTeamMembers: Repository;\r\n engagementAptCaws: Repository;\r\n engagementIndustries: Repository;\r\n engagementProjects: Repository;\r\n answerSetOptions: Repository;\r\n specialtyReviewerTypes: Repository;\r\n\r\n private initialized = false;\r\n\r\n constructor(\r\n private bridge: BridgeService,\r\n private provider: EntityManagerProviderService,\r\n private toastr: ToastrService,\r\n private errorHandler: GlobalErrorHandler\r\n ) {\r\n this.provider.manager().hasChangesChanged.subscribe((evt) => {\r\n this.hasChanges.next(evt.hasChanges);\r\n });\r\n\r\n this.provider.manager().entityChanged.subscribe((evt) => {\r\n this.entityChanged.next(evt);\r\n });\r\n }\r\n\r\n init() {\r\n if (this.initialized) {\r\n return;\r\n }\r\n\r\n // Initialize the above repositories\r\n this.employees = this.createRepo('Employee', 'employees');\r\n this.tags = this.createRepo('Tag', 'tags');\r\n this.inspectionTeamRoles = this.createRepo('InspectionTeamRole', 'inspectionTeamRoles');\r\n this.industries = this.createRepo('Industry', 'industries');\r\n this.offices = this.createRepo('Office', 'offices');\r\n this.businessLines = this.createRepo('BusinessLine', 'businessLines');\r\n this.standardQuestionOptions = this.createRepo('StandardQuestionOption', 'standardQuestionOptions');\r\n this.inspectionProfiles = this.createRepo('InspectionProfile', 'inspectionProfiles');\r\n this.profileSections = this.createRepo('ProfileSection', 'profileSections');\r\n this.questions = this.createRepo('Question', 'questions');\r\n this.questionOptions = this.createRepo('QuestionOption', 'questionOptions');\r\n this.profileSectionQuestionOptions = this.createRepo('ProfileSectionQuestionOption', 'profileSectionQuestionOptions');\r\n this.profileQuestionActivatingTags = this.createRepo('ProfileQuestionActivatingTag', 'profileQuestionActivatingTags');\r\n this.questionTags = this.createRepo('QuestionTag', 'questionTags');\r\n this.clients = this.createRepo('Client', 'clients');\r\n this.projects = this.createRepo('Project', 'projects');\r\n this.aptCaws = this.createRepo('AptCaw', 'aptCaws');\r\n this.engagements = this.createRepo('Engagement', 'engagements');\r\n this.engagementQuestions = this.createRepo('EngagementQuestion', 'engagementQuestions');\r\n this.engagementQuestionComments = this.createRepo('EngagementQuestionComment', 'engagementQuestionComments');\r\n this.engagementQuestionOptions = this.createRepo('EngagementQuestionOption', 'engagementQuestionOptions');\r\n this.engagementQuestionTags = this.createRepo('EngagementQuestionTag', 'engagementQuestionTags');\r\n this.engagementQuestionActivatingTags = this.createRepo('EngagementQuestionActivatingTag', 'engagementQuestionActivatingTags');\r\n this.engagementSections = this.createRepo('EngagementSection', 'engagementSections');\r\n this.engagementSectionEngagementQuestionOptions = this.createRepo('EngagementSectionEngagementQuestionOption', 'engagementSectionEngagementQuestionOptions');\r\n this.engagementTeamMembers = this.createRepo('EngagementTeamMember', 'engagementTeamMembers');\r\n this.inspectionTeamMemberEngagementSections = this.createRepo('InspectionTeamMemberEngagementSection', 'inspectionTeamMemberEngagementSections');\r\n this.inspectionTeamMemberProfileSections = this.createRepo('InspectionTeamMemberProfileSection', 'inspectionTeamMemberProfileSections');\r\n this.inspectionTeamMembers = this.createRepo('InspectionTeamMember', 'inspectionTeamMembers');\r\n this.engagementAptCaws = this.createRepo('EngagementAptCaw', 'engagementAptCaws');;\r\n this.engagementIndustries = this.createRepo('EngagementIndustry', 'engagementIndustries');\r\n this.engagementProjects = this.createRepo('EngagementProject', 'engagementProjects');\r\n this.answerSetOptions = this.createRepo('AnswerSetOption', 'answerSetOptions');\r\n this.specialtyReviewerTypes = this.createRepo('SpecialtyReviewerType', 'specialtyReviewerTypes');\r\n\r\n this.initialized = true;\r\n }\r\n\r\n private createRepo(entityTypeName: string, resourceName: string) {\r\n return new Repository(this.provider, this.toastr, this.errorHandler, entityTypeName, resourceName);\r\n }\r\n\r\n commit(silent = false) {\r\n const saveOptions = new SaveOptions({ resourceName: 'savechanges' });\r\n\r\n return this.provider.manager()\r\n .saveChanges(null, saveOptions)\r\n .then((saveResult: SaveResult) => {\r\n if (!silent) {\r\n this.toastr.success(Strings.toasts.savedData);\r\n }\r\n })\r\n .catch((error: QueuedSaveFailedError) => {\r\n // Http request errors are handled in add-authorization-header-interceptor.ts\r\n if (!error.innerError.httpResponse) {\r\n this.errorHandler.handleError(error);\r\n }\r\n });\r\n }\r\n\r\n rollback() {\r\n this.provider.manager().rejectChanges();\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n if (this.hasChanges) {\r\n this.hasChanges.unsubscribe();\r\n }\r\n\r\n if (this.entityChanged) {\r\n this.entityChanged.unsubscribe();\r\n }\r\n }\r\n\r\n clear() {\r\n this.provider.manager().clear();\r\n }\r\n\r\n getChanges() {\r\n return this.provider.manager().getChanges();\r\n }\r\n\r\n private clearCache(entityName, entityId = null) {\r\n var cachedItems = this.provider.manager().getEntities(entityName);\r\n // Todo: this should be a function of the Breeze EntityManager itself\r\n if (cachedItems == null || cachedItems.length == 0) return;\r\n\r\n if (entityId != null) {\r\n cachedItems = cachedItems.filter(x => x['id'] == entityId);\r\n }\r\n\r\n cachedItems.forEach((entity) => {\r\n this.provider.manager().detachEntity(entity);\r\n });\r\n }\r\n\r\n getStatusName(status: modelEnum.InspectionProfileStatus) {\r\n var inspectionStatus = this.inspectionProfileStatuses.filter(s => s.status == Number(status))[0];\r\n return inspectionStatus ? inspectionStatus.title : 'UNDEFINED';\r\n }\r\n\r\n getEngagementStatusName(status: modelEnum.EngagementStatus) {\r\n var engagementStatus = this.engagementStatuses.filter(s => s.status == Number(status))[0];\r\n return engagementStatus ? engagementStatus.title : 'UNDEFINED';\r\n }\r\n\r\n getEngagementRatingName(status: modelEnum.EngagementRating) {\r\n var engagementRating = this.engagementRatings.filter(s => s.status == Number(status))[0];\r\n return engagementRating ? engagementRating.title : 'UNDEFINED';\r\n }\r\n\r\n getProgressStatusName(status: modelEnum.ProgressStatus) {\r\n var progressStatus = this.progressStatuses.filter(s => s.status == Number(status))[0];\r\n return progressStatus ? progressStatus.title : 'UNDEFINED';\r\n }\r\n\r\n getEmployees(searchTerm: string, id: string = null, showOnlyAdmins: boolean = false, showOnlyCaptains: boolean = false) {\r\n return this.bridge.getEmployees(searchTerm, id, showOnlyAdmins, showOnlyCaptains, 1, 50);\r\n }\r\n\r\n getActiveTags(includeAll: boolean = false) {\r\n return this.bridge.getActiveTags(includeAll, null);\r\n }\r\n getTags(includeAll: boolean = false) {\r\n return this.bridge.getTags(includeAll, null);\r\n }\r\n\r\n getInspectionTeamRoles(includeAll: boolean = false) {\r\n return this.bridge.getInspectionTeamRoles(includeAll, null);\r\n }\r\n\r\n getActiveIndustries(includeAll: boolean = false) {\r\n return this.bridge.getActiveIndustries(includeAll, null);\r\n }\r\n getIndustries(includeAll: boolean = false) {\r\n return this.bridge.getIndustries(includeAll, null);\r\n }\r\n\r\n getOffices() {\r\n return this.bridge.getOffices(null);\r\n }\r\n\r\n getRegions() {\r\n return this.bridge.getRegions(null);\r\n }\r\n\r\n getBusinessLines(includeAll: boolean = false) {\r\n return this.bridge.getBusinessLines(includeAll, null);\r\n }\r\n\r\n getClients(id: string = null, q: string = null, page: number = 1, limit: number = 500) {\r\n return this.bridge.getClients(id, q, page, limit, null);\r\n }\r\n\r\n getClientsCount(id: string = null, q: string = null) {\r\n return this.bridge.getClientsCount(id, q, null);\r\n }\r\n\r\n getProjects(id: string = null, name: string = null, clientId: string = null, clientName: string = null, page: number = 1, limit: number = 500) {\r\n return this.bridge.getProjects(id, name, clientId, clientName, page, limit, null);\r\n }\r\n\r\n getProjectsCount(id: string = null, name: string = null, clientId: string = null, clientName: string = null) {\r\n return this.bridge.getProjectsCount(id, name, clientId, clientName, null);\r\n }\r\n\r\n getAptCaws(id: string = null, name: string = null, clientId: string = null, clientName: string = null, page: number = 1, limit: number = 500) {\r\n return this.bridge.getAptCaws(id, name, clientId, clientName, page, limit, null);\r\n }\r\n\r\n getAptCawsCount(id: string = null, name: string = null, clientId: string = null, clientName: string = null) {\r\n return this.bridge.getAptCawsCount(id, name, clientId, clientName, null);\r\n }\r\n\r\n getStandardQuestionOptions(includeAll: boolean = false) {\r\n return this.bridge.getStandardQuestionOptions(includeAll, null);\r\n }\r\n\r\n getInspectionProfileById(id: number) {\r\n return this.bridge.getInspectionProfile(id);\r\n }\r\n\r\n getInspectionProfilesForLookup() {\r\n return this.bridge.getInspectionProfilesForLookup(null);\r\n }\r\n\r\n getInspectionProfilesForEngagement() {\r\n return this.bridge.getInspectionProfilesForEngagement(null);\r\n }\r\n\r\n getInspectionProfileForEngagementById(id: number) {\r\n return this.bridge.getInspectionProfileForEngagementById(id);\r\n }\r\n\r\n getInspectionProfilesSummary(page: number = 1, limit: number = defaultLimit, gridFilters: string = null) {\r\n return this.bridge.getInspectionProfilesSummary(page, limit, gridFilters, null);\r\n }\r\n\r\n getInspectionProfilesPageCount(limit: number = defaultLimit, gridFilters: string = null) {\r\n return this.bridge.getInspectionProfilesPageCount(limit, gridFilters, null);\r\n }\r\n\r\n getProfileSections(page: number = 1, limit: number = defaultLimit, gridFilters: string = null) {\r\n return this.bridge.getProfileSections(page, limit, gridFilters, null);\r\n }\r\n\r\n getProfileSectionsPageCount(limit: number = defaultLimit, gridFilters: string = null) {\r\n return this.bridge.getProfileSectionsPageCount(limit, gridFilters, null);\r\n }\r\n\r\n getProfileSectionsForLookup() {\r\n return this.bridge.getProfileSectionsForLookup(null);\r\n }\r\n\r\n getSectionsForInspectionProfile(profileId: number) {\r\n return this.bridge.getSectionsForInspectionProfile(profileId, null);\r\n }\r\n\r\n getProfileSectionsForSection(id: number) {\r\n return this.bridge.getProfileSectionsForSection(id, null);\r\n }\r\n\r\n getQuestions(page: number = 1, limit: number = defaultLimit, gridFilters: string = null) {\r\n return this.bridge.getQuestions(page, limit, gridFilters, null);\r\n }\r\n\r\n getQuestionsPageCount(limit: number = defaultLimit, gridFilters: string = null) {\r\n return this.bridge.getQuestionsPageCount(limit, gridFilters, null);\r\n }\r\n\r\n getQuestionById(id: number) {\r\n return this.bridge.getQuestion(id);\r\n }\r\n\r\n getQuestionOptions() {\r\n return this.bridge.getQuestionOptions(null);\r\n }\r\n\r\n getUnassignedQuestions() {\r\n return this.bridge.getUnassignedQuestions(null);\r\n }\r\n\r\n getEngagementById(id: number) {\r\n return this.bridge.getEngagement(id);\r\n }\r\n\r\n getAllEngagementsSummary(page: number = 1, limit: number = defaultLimit, gridFilters: string = null) {\r\n return this.bridge.getAllEngagementsSummary(page, limit, gridFilters, null);\r\n }\r\n\r\n getEngagements(page: number = 1, limit: number = defaultLimit, gridFilters: string = null) {\r\n return this.bridge.getEngagements(page, limit, gridFilters, null);\r\n }\r\n\r\n getEngagementsPageCount(limit: number = defaultLimit, gridFilters: string = null) {\r\n return this.bridge.getEngagementsPageCount(limit, gridFilters, null);\r\n }\r\n\r\n\r\n getMyTeamsEngagementById(id: number) {\r\n return this.bridge.getMyTeamsEngagementById(id);\r\n }\r\n\r\n getEngagementsForMyTeams(page: number = 1, limit: number = defaultLimit, gridFilters: string = null) {\r\n return this.bridge.getEngagementsForMyTeams(page, limit, gridFilters, null);\r\n }\r\n\r\n getEngagementsCountForMyTeams(gridFilters: string = null) {\r\n return this.bridge.getEngagementsCountForMyTeams(gridFilters, null);\r\n }\r\n\r\n publishEngagement(id: number) {\r\n return this.bridge.publishEngagement(id, null);\r\n }\r\n\r\n getEngagementSectionsForMyTeams(page: number = 1, limit: number = defaultLimit, gridFilters: string = null) {\r\n return this.bridge.getEngagementSectionsForMyTeams(page, limit, gridFilters, null);\r\n }\r\n\r\n getEngagementSectionsCountForMyTeams(gridFilters: string = null) {\r\n return this.bridge.getEngagementSectionsCountForMyTeams(gridFilters, null);\r\n }\r\n\r\n\r\n getEngagementQuestionsForMyTeams(page: number = 1, limit: number = defaultLimit, gridFilters: string = null) {\r\n return this.bridge.getEngagementQuestionsForMyTeams(page, limit, gridFilters, null);\r\n }\r\n\r\n getEngagementQuestionsCountForMyTeams(gridFilters: string = null) {\r\n return this.bridge.getEngagementQuestionsCountForMyTeams(gridFilters, null);\r\n }\r\n\r\n\r\n getMyInspections(page: number = 1, limit: number = defaultLimit, gridFilters: string = null) {\r\n return this.bridge.getMyInspections(page, limit, gridFilters);\r\n }\r\n\r\n getMyInspectionsCount(gridFilters: string = null) {\r\n return this.bridge.getMyInspectionsCount(gridFilters, null);\r\n }\r\n\r\n getExportEngagementQuestionsByYear(inspectionYear: number) {\r\n return this.bridge.getExportEngagementQuestionsByYear(inspectionYear);\r\n }\r\n\r\n getEngagementQuestionById(id: number) {\r\n return this.bridge.getEngagementQuestionById(id);\r\n }\r\n\r\n getMyEngagementNodeViewerById(id: number) {\r\n return this.bridge.getMyEngagementNodeViewerById(id);\r\n }\r\n\r\n getMyEngagementById(id: number) {\r\n return this.bridge.getMyEngagementById(id);\r\n }\r\n\r\n getSelectedOptionActivatingTags(id: number, selectedOptionId: number) {\r\n return this.bridge.getSelectedOptionActivatingTags(id, selectedOptionId);\r\n }\r\n\r\n checkQuestionForExistingResponse(id: number, optionId: number) {\r\n return this.bridge.checkQuestionForExistingResponse(id, optionId);\r\n }\r\n\r\n updateAssignedSections(sectionId: number, assignChildSections: boolean, teamMemberIds: number[], teamMemberWasRemoved: boolean) {\r\n if (teamMemberWasRemoved) {\r\n this.clearCache('EngagementSection', sectionId);\r\n }\r\n const params = { sectionId: sectionId, assignChildSections: assignChildSections, teamMemberIds: teamMemberIds };\r\n return this.bridge.updateAssignedSections(params);\r\n }\r\n\r\n updateQuestionResponse(id: number, isComplete: boolean, completedDate: Date, optionId?: number, comment?: string, replaceExisting?: boolean) {\r\n return this.bridge.updateQuestionResponse(id, isComplete, completedDate, optionId, comment, replaceExisting);\r\n }\r\n\r\n saveQuestionComment(id: number, text: string) {\r\n return this.bridge.saveQuestionComment(id, text, null);\r\n }\r\n\r\n\r\n updateEngagementStatus(status: number, engagementIds: number[]) {\r\n const params = { status: status, engagementIds: engagementIds };\r\n return this.bridge.updateEngagementStatus(params);\r\n }\r\n\r\n updateActivatedEngagementQuestions(id: number) {\r\n return this.bridge.updateActivatedEngagementQuestions(id);\r\n }\r\n\r\n updateActivatedEngagementQuestionsByActivatingTags(engagementId: number, engagementQuestionActivatingTags: number[]) {\r\n const params = { engagementId: engagementId, engagementQuestionActivatingTags: engagementQuestionActivatingTags};\r\n return this.bridge.updateActivatedEngagementQuestionsByActivatingTags(params);\r\n }\r\n\r\n propagateProfileSectionChanges(id: number) {\r\n return this.bridge.propagateProfileSectionChanges(id, null);\r\n }\r\n\r\n propagateQuestionChanges(id: number) {\r\n return this.bridge.propagateQuestionChanges(id, null);\r\n }\r\n\r\n\r\n getMaxProfileSectionDisplayOrder(id: number, parentSectionId?: number) {\r\n return this.bridge.getMaxProfileSectionDisplayOrder(id, parentSectionId, null);\r\n }\r\n\r\n getMaxQuestionDisplayOrder(id: number) {\r\n return this.bridge.getMaxQuestionDisplayOrder(id, null);\r\n }\r\n\r\n\r\n cleanupEngagements() {\r\n return this.bridge.cleanupEngagements(null);\r\n }\r\n\r\n\r\n testApplicationException() {\r\n return this.bridge.testApplicationException();\r\n }\r\n\r\n testException() {\r\n return this.bridge.testException();\r\n }\r\n\r\n cloneInspectionProfile(origProfileId: number, newName: string) {\r\n return this.bridge.cloneInspectionProfile(origProfileId, newName);\r\n }\r\n\r\n getEngagementReport(engagementId: number) {\r\n return this.bridge.getEngagementReport(engagementId);\r\n }\r\n\r\n getTotalEmployeeProjectHours(projectIds: string[], employeeId: string) {\r\n const params = { projectIds: projectIds, employeeId: employeeId};\r\n return this.bridge.getTotalEmployeeProjectHours(params);\r\n }\r\n\r\n getEmployeeProjectHours(projectId: string) {\r\n return this.bridge.getEmployeeProjectHours(projectId);\r\n }\r\n\r\n getTeamCaptains() {\r\n return this.bridge.getTeamCaptains();\r\n }\r\n\r\n getInspectionYears() {\r\n return this.bridge.getInspectionYears();\r\n }\r\n\r\n getSpecialtyReviewerTypes(includeAll: boolean = false) {\r\n return this.bridge.getSpecialtyReviewerTypes(includeAll, null);\r\n }\r\n\r\n isReviewerTypeAssigned(reviewerTypeId: number) {\r\n return this.bridge.isReviewerTypeAssigned(reviewerTypeId);\r\n }\r\n\r\n getInspectionTeamMemberProfileSections(engagementId: number) {\r\n return this.bridge.getInspectionTeamMemberProfileSections(engagementId);\r\n }\r\n\r\n getInspectionTeamMemberEngagementSections(engagementId: number) {\r\n return this.bridge.getInspectionTeamMemberEngagementSections(engagementId);\r\n }\r\n\r\n getHighLevelInspectionTeamMemberProfileSections(engagementId: number) {\r\n return this.bridge.getHighLevelInspectionTeamMemberProfileSections(engagementId);\r\n }\r\n\r\n getHighLevelInspectionTeamMemberEngagementSections(engagementId: number) {\r\n return this.bridge.getHighLevelInspectionTeamMemberEngagementSections(engagementId);\r\n }\r\n\r\n updateChildInspectionTeamMemberProfileSections(engagementId: number) {\r\n return this.bridge.updateChildInspectionTeamMemberProfileSections(engagementId);\r\n }\r\n}\r\n","import * as $ from 'jquery';\r\nimport { SaveResult, EntityState } from 'breeze-client';\r\nimport { MetaEntity } from '../../model/metaEntity';\r\nimport Strings from './strings';\r\nimport Config from './config';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport * as moment from 'moment';\r\nimport { StorageItem } from '../../typings';\r\n\r\nconst LOADING_SCREEN_CLASS = 'finished-loading';\r\nconst LOADING_SHELL_CLASS = '.app-loading-shell';\r\n\r\nexport default class Utilities {\r\n static emptyPromise = new Promise((resolve) => { resolve(null); });\r\n\r\n static valueAsPromise(value: T): Promise {\r\n return new Promise((resolve) => resolve(value));\r\n }\r\n\r\n static showLoadingScreen() {\r\n if ($(LOADING_SHELL_CLASS).hasClass(LOADING_SCREEN_CLASS)) {\r\n $(LOADING_SHELL_CLASS).removeClass(LOADING_SCREEN_CLASS);\r\n }\r\n }\r\n\r\n static hideLoadingScreen() {\r\n if (!$(LOADING_SHELL_CLASS).hasClass(LOADING_SCREEN_CLASS)) {\r\n $(LOADING_SHELL_CLASS).addClass(LOADING_SCREEN_CLASS);\r\n }\r\n }\r\n\r\n static decodeHtml(html: string) {\r\n const txt = document.createElement(\"textarea\");\r\n txt.innerHTML = html;\r\n return txt.value;\r\n }\r\n\r\n static isMobileSafari() {\r\n return navigator.userAgent.match(/(iPod|iPhone|iPad)/) && navigator.userAgent.match(/AppleWebKit/) && !navigator.userAgent.match(/CriOS/);\r\n }\r\n\r\n static numberWithCommas(x: number, round?: number): string {\r\n let y = 0;\r\n if (x) {\r\n y = x;\r\n }\r\n\r\n const parts = (round == null ? y.toString() : y.toFixed(round)).split(\".\");\r\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n return parts.join(\".\");\r\n }\r\n\r\n static camelCaseDto(dto: any): any {\r\n const m = {};\r\n $.map(dto, function (prop, propName: string) {\r\n m[propName.charAt(0).toLowerCase() + propName.slice(1)] = dto[propName];\r\n });\r\n\r\n return m;\r\n }\r\n\r\n static formatSavedMessage(saveResult: SaveResult) {\r\n let result = \"\";\r\n\r\n saveResult.entities.forEach(function (entity: MetaEntity) {\r\n if (entity.entityAspect.valueQueue) {\r\n if (entity.entityAspect.fieldsSavingEntityState == EntityState.Modified) {\r\n for (const field in entity.entityAspect.fieldsSaving) {\r\n if (entity.entityAspect.valueQueue[field]) {\r\n entity.entityAspect.valueQueue[field].orig = entity[field]();\r\n entity.entityAspect.valueQueue[field].isSaved = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (result.length) {\r\n result += \"
\";\r\n }\r\n\r\n if (entity.entityAspect.fieldsSavingEntityState == EntityState.Deleted || (entity.hasOwnProperty(\"isDeleted\") && entity.isDeleted && (entity.entityAspect.fieldsSaving[\"isDeleted\"] !== undefined && entity.isDeleted == true))) {\r\n if (entity.entityAspect.delMsg) {\r\n result = entity.entityAspect.delMsg;\r\n } else if (entity.name) {\r\n result = Strings.toasts.entityDeleted.replace(/\\{0\\}/gi, entity.name);\r\n }\r\n } else if (entity.entityAspect.fieldsSavingEntityState == EntityState.Added || (entity.hasOwnProperty(\"isDeleted\") && entity.isDeleted && (entity.entityAspect.fieldsSaving[\"isDeleted\"] !== undefined && !entity.isDeleted))) {\r\n if (entity.entityAspect.addMsg) {\r\n result = entity.entityAspect.addMsg;\r\n } else if (entity.name) {\r\n result = Strings.toasts.entityAdded.replace(/\\{0\\}/gi, entity.name);\r\n }\r\n } else if (entity.entityAspect.fieldsSavingEntityState == EntityState.Modified) {\r\n for (const field in entity.entityAspect.fieldsSaving) {\r\n if (Config.skipFieldsForMessage.indexOf(field) >= 0) {\r\n continue;\r\n }\r\n\r\n const fieldName = entity.entityType.props[field].displayName;\r\n let fieldValue = entity[field];\r\n\r\n if (/.+Id$/gi.test(field)) {\r\n const actualField = field.replace(/Id$/gi, \"\");\r\n if (entity[actualField]) {\r\n const actualEntity = entity[actualField];\r\n if (actualEntity && actualEntity.name) {\r\n fieldValue = actualEntity.name;\r\n }\r\n }\r\n }\r\n\r\n if (fieldValue && fieldValue.length > 28) {\r\n fieldValue = fieldValue.substring(0, 25) + \"...\";\r\n }\r\n result += fieldName + \": \" + fieldValue + \"
\";\r\n }\r\n }\r\n\r\n result = result.replace(/
$/gi, \"\");\r\n\r\n entity.entityAspect.fieldsSaving = {};\r\n });\r\n\r\n return result;\r\n }\r\n\r\n static getCurrentDate(): Date {\r\n return new Date();\r\n }\r\n\r\n static sortByValue(a: string, b: string): number {\r\n return a.localeCompare(b);\r\n }\r\n\r\n static sortById(a, b): number {\r\n return a.id > b.id ? 1 : a.id < b.id ? -1 : 0;\r\n }\r\n\r\n static sortByName(a, b): number {\r\n return a.name.localeCompare(b.name);\r\n }\r\n\r\n static sortByDisplayOrder(a, b): number {\r\n return a.displayOrder > b.displayOrder ? 1 : a.displayOrder < b.displayOrder ? -1 : 0;\r\n }\r\n\r\n static koPropIfAvailable(item: BehaviorSubject, propName: string, defaultValue: any): any {\r\n if (item && item.value)\r\n if (item.value[propName] && typeof item.value[propName] == 'function')\r\n return item.value[propName]();\r\n else if (item.value[propName])\r\n return item.value[propName];\r\n return defaultValue;\r\n }\r\n\r\n // Helper function for grouping a collection by one of the properties defined in the collection's type\r\n static groupByField(field: string, self: Array<{}>) {\r\n var groups = {};\r\n self.forEach(function (el) {\r\n if (field in groups == false) {\r\n groups[field] = [];\r\n }\r\n groups[field].push(el);\r\n });\r\n\r\n return Object.keys(groups).map(function (key) {\r\n return {\r\n key: key,\r\n values: groups[key]\r\n };\r\n });\r\n }\r\n\r\n static onlyUnique(value: string, index: number, self: Array) {\r\n return self.indexOf(value) == index;\r\n }\r\n}\r\n\r\n\r\nexport class Store {\r\n expires1Day: Date;\r\n expires30Days: Date;\r\n\r\n constructor() {\r\n this.expires1Day = moment().add(Config.dayMs, \"ms\").toDate();\r\n this.expires30Days = moment().add(Config.storeExpirationMs, \"ms\").toDate();\r\n }\r\n\r\n clear(key: string) {\r\n localStorage.removeItem(key);\r\n }\r\n\r\n fetch(key: string): string {\r\n const cache = localStorage.getItem(key);\r\n if (cache) {\r\n const item: StorageItem = JSON.parse(cache);\r\n if (moment().isSameOrBefore(item.expires)) {\r\n return item.item;\r\n } else {\r\n this.clear(key);\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n save(key: string, value: string) {\r\n const item: StorageItem = {\r\n item: value,\r\n expires: this.expires30Days\r\n }\r\n const cache = JSON.stringify(item);\r\n\r\n localStorage.setItem(key, cache);\r\n }\r\n\r\n saveForADay(key: string, value: string) {\r\n const item: StorageItem = {\r\n item: value,\r\n expires: this.expires1Day\r\n }\r\n const cache = JSON.stringify(item);\r\n\r\n localStorage.setItem(key, cache);\r\n }\r\n\r\n saveForCurrentSession(key: string, value: string) {\r\n sessionStorage.setItem(key, value);\r\n }\r\n\r\n fetchFromSession(key: string): string {\r\n const value = sessionStorage.getItem(key);\r\n if (value) {\r\n return value;\r\n }\r\n\r\n return null;\r\n }\r\n}\r\nexport const store = new Store();\r\n\r\ninterface listPickerData {\r\n isSelected: BehaviorSubject,\r\n name\r\n}\r\n\r\nexport class ListPicker {\r\n expand = new BehaviorSubject(true);\r\n\r\n toggle = () => {\r\n this.expand.next(!this.expand.value);\r\n }\r\n\r\n allData: BehaviorSubject;\r\n\r\n mapToString: (item: T) => string;\r\n\r\n name: string = \"\";\r\n\r\n selectAll = { isSelected: new BehaviorSubject(true), name: 'Select All' };\r\n\r\n private isAutoDeselecting = false;\r\n\r\n private availableBase = new BehaviorSubject([]);\r\n available = new BehaviorSubject([]);\r\n selected = new BehaviorSubject([]);\r\n\r\n updateData() {\r\n if (this.selected.value.length == this.availableBase.value.length && !this.selectAll.isSelected.value) {\r\n this.isAutoDeselecting = true;\r\n this.selectAll.isSelected.next(true);\r\n } else if (this.selected.value.length < this.availableBase.value.length && this.selectAll.isSelected.value) {\r\n this.isAutoDeselecting = true;\r\n this.selectAll.isSelected.next(false);\r\n }\r\n }\r\n\r\n constructor(name: string, data: BehaviorSubject, mapToStringCallback: (item: T) => string) {\r\n this.name = name;\r\n this.allData = data;\r\n this.allData.subscribe(val => {\r\n const items = val\r\n .map(this.mapToString)\r\n .filter(this.onlyUnique)\r\n .sort()\r\n .map((data) => {\r\n return { isSelected: new BehaviorSubject(true), name: data };\r\n });\r\n\r\n this.availableBase.next(items);\r\n });\r\n this.mapToString = mapToStringCallback;\r\n\r\n this.selectAll.isSelected.subscribe((val) => {\r\n if (this.isAutoDeselecting == false) {\r\n this.availableBase.value.forEach((item) => { item.isSelected.next(val); });\r\n }\r\n else {\r\n this.isAutoDeselecting = false;\r\n }\r\n\r\n this.updateData();\r\n });\r\n\r\n this.availableBase.subscribe(val => {\r\n const availableItems = this.availableBase.value;\r\n this.available.next(availableItems);\r\n\r\n const selectedItems = val\r\n .filter((item) => item.isSelected.value)\r\n .map((item) => item.name);\r\n this.selected.next(selectedItems);\r\n\r\n this.updateData();\r\n });\r\n }\r\n\r\n isSelected(item): boolean {\r\n if (this.selectAll.isSelected.value)\r\n return true;\r\n\r\n if (this.selected.value.length == 0)\r\n return false;\r\n\r\n const value = this.mapToString(item);\r\n return this.selected.value.indexOf(value) !== -1;\r\n }\r\n\r\n onlyUnique(value: string, index: number, self: Array) {\r\n return self.indexOf(value) == index;\r\n }\r\n}\r\n\r\nexport class DateRangePicker {\r\n expand = new BehaviorSubject(true);\r\n\r\n toggle = () => {\r\n this.expand.next(!this.expand.value);\r\n }\r\n\r\n allData: BehaviorSubject;\r\n\r\n mapToDate: (item: T) => Date;\r\n\r\n name: string = \"\";\r\n\r\n selectAll = { isSelected: new BehaviorSubject(true), name: 'Select All' };\r\n\r\n minDate = new BehaviorSubject(null);\r\n\r\n maxDate = new BehaviorSubject(null);\r\n\r\n constructor(name: string, data: BehaviorSubject, mapToDateCallback: (item: T) => Date) {\r\n this.name = name;\r\n this.allData = data;\r\n this.mapToDate = mapToDateCallback;\r\n\r\n this.minDate.subscribe((val) => {\r\n if (val && this.selectAll.isSelected.value)\r\n this.selectAll.isSelected.next(false);\r\n\r\n if (!val && !this.maxDate.value)\r\n this.selectAll.isSelected.next(true);\r\n });\r\n\r\n this.maxDate.subscribe((val) => {\r\n if (val && this.selectAll.isSelected.value)\r\n this.selectAll.isSelected.next(false);\r\n\r\n if (!val && !this.minDate.value)\r\n this.selectAll.isSelected.next(true);\r\n });\r\n }\r\n\r\n isSelected(item): boolean {\r\n if (this.selectAll.isSelected.value)\r\n return true;\r\n\r\n const value = this.mapToDate(item);\r\n if (!value)\r\n return false;\r\n\r\n if (this.minDate.value && moment(value).isBefore(this.minDate.value))\r\n return false;\r\n\r\n if (this.maxDate.value && moment(value).isAfter(moment(this.maxDate.value).endOf(\"day\")))\r\n return false;\r\n\r\n return true;\r\n }\r\n}\r\n","export const environment = {\r\n production: true,\r\n hmr: false\r\n};\r\n","// The file contents for the current environment will overwrite these during build.\r\n// The build system defaults to the dev environment which uses `environment.ts`, but if you do\r\n// `ng build --env=prod` then `environment.prod.ts` will be used instead.\r\n// The list of which env maps to which file can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false,\r\n hmr: false\r\n};\r\n","import { NgModuleRef, ApplicationRef } from '@angular/core';\r\nimport { createNewHosts } from '@angularclass/hmr';\r\n\r\n/**\r\n * This code came from https://github.com/angular/angular-cli/blob/master/docs/documentation/stories/configure-hmr.md\r\n * @param module\r\n * @param bootstrap\r\n */\r\nexport const hmrBootstrap = (module: any, bootstrap: () => Promise>) => {\r\n let ngModule: NgModuleRef;\r\n module.hot.accept();\r\n bootstrap().then(mod => ngModule = mod);\r\n module.hot.dispose(() => {\r\n const appRef: ApplicationRef = ngModule.injector.get(ApplicationRef);\r\n const elements = appRef.components.map(c => c.location.nativeElement);\r\n const makeVisible = createNewHosts(elements);\r\n ngModule.destroy();\r\n makeVisible();\r\n });\r\n};\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\nimport { hmrBootstrap } from './hmr';\r\n\r\nexport function getBaseUrl() {\r\n return document.getElementsByTagName('base')[0].href;\r\n}\r\n\r\nconst providers = [\r\n { provide: 'BASE_URL', useFactory: getBaseUrl, deps: [] },\r\n];\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nconst bootstrap = () => platformBrowserDynamic(providers).bootstrapModule(AppModule);\r\n\r\nif (environment.hmr) {\r\n if (module['hot']) {\r\n hmrBootstrap(module, bootstrap);\r\n } else {\r\n console.error('HMR is not enabled for webpack-dev-server!');\r\n console.log('Are you using the --hmr flag for ng serve?');\r\n }\r\n} else {\r\n bootstrap().catch(err => console.log(err));\r\n}\r\n","export enum InspectionProfileStatus {\r\n draft = 1,\r\n active = 2,\r\n archived = 3,\r\n}\r\n\r\nexport enum EngagementRating {\r\n pending = 0,\r\n veryPoor = 1,\r\n poor = 2,\r\n acceptable = 3,\r\n veryGood = 4,\r\n excellent = 5,\r\n}\r\n\r\nexport enum EngagementStatus {\r\n draft = 0,\r\n active = 1,\r\n changesRequired = 2,\r\n teamCaptainReviewComplete = 3,\r\n archived = 4,\r\n}\r\n\r\nexport enum ProgressStatus {\r\n na = 0,\r\n notActivated = 1,\r\n notStarted = 2,\r\n inProgress = 3,\r\n completed = 4,\r\n}\r\n\r\n\r\n","export enum Role {\r\n basic = \"Basic\",\r\n admin = \"Admin\",\r\n nationalQcAdmin = \"NationalQcAdmin\",\r\n icsAccess = \"ICSAccess\",\r\n}\r\n"]}