{"version":3,"sources":["config/ApiConfig.js","config/AdalConfig.ts","views/Auth.js","services/Api.ts","models/Enums.ts","services/GiftService.ts","services/ConflictOfInterestService.ts","services/OrgCOIService.ts","components/Filters.tsx","models/Core.ts","components/Table.tsx","services/BaseService.ts","services/SearchService.ts","services/DropdownService.ts","components/Gifts.tsx","components/charts/PieChart.tsx","components/charts/CombinationChart.tsx","components/Dashboard.tsx","services/EmployeeService.ts","components/EthicsOfficers.tsx","services/OrganizationService.ts","components/States.tsx","components/Region.tsx","components/Users.tsx","services/RuleService.ts","components/Rules.tsx","components/Admin.tsx","services/CommentService.ts","services/AuthService.ts","components/Comments.tsx","components/GiftDetail.tsx","components/COIDetail.tsx","components/ProjectCard.tsx","components/OrgCOIDetail.tsx","views/Home.tsx","components/CacheBuster.tsx","App.js","registerServiceWorker.js","serviceWorkerRegistration.ts","index.js"],"names":["baseURL","defaultURL","adalConfig","tenant","clientId","redirectUri","ApiConfig","endpoints","api","cacheLocation","AuthContext","AuthenticationContext","AdalApiFetch","url","options","adalFetch","fetch","GetToken","a","adalGetToken","console","log","msg","login","withAdalLogin","Auth","props","setState","loading","getCachedToken","getCachedUser","acquireToken","message","token","history","push","pathname","errorMessage","state","this","id","className","src","style","height","type","onClick","marginTop","Component","instance","axios","create","interceptors","request","use","config","headers","Authorization","App","GiftService","NAME","getGifts","get","response","data","getActions","filter","pagination","sorter","query","filterRequestReview","Type","OfferedOn","CreatedOn","Status","params","BuisnessName","CriticalPeriod","Currencies","map","x","toDate","AcceptanceStatus","GiftCategoryItems","PreapprovalStatus","Priorities","RelationshipTypes","Employee","ExpenseReportNumber","GivenRecieved","page","current","limit","pageSize","sortField","field","sortDir","order","searchQuery","Region","BuisnessCountry","PublicOfficialName","PublicOfficial","Id","paramsSerializer","qs","stringify","getGift","markInReview","ID","ReviewComments","put","markUnderReview","reopen","moveItem","approveGift","ApprovedValue","deleteGift","post","status","reqReviewGift","rejectGift","updateOrganization","OrganizationID","uploadFiles","fileList","shareWithUser","EmailUser","EmailComment","formData","FormData","append","forEach","file","downloadFile","method","responseType","then","contentType","contentDisposition","window","URL","createObjectURL","Blob","link","document","createElement","href","fileExtension","mime","extension","setAttribute","indexOf","matches","exec","filename","replace","body","appendChild","click","e","downloadActionsGift","selectedRowKeys","selectedColumns","SelectedIDs","SelectedColumns","res","ConflictOfInterestService","PersonalObjectOfConflicts","OrganizationalObjectOfConflicts","PublicOfficialRelationshipTypes","ConflictStatus","Truthful","CompliesWithPolicy","delete","approve","reject","downloadActions","OrgCOIService","getActionsOrgConflict","ConflictingProject","RequestType","BusinessGroup","ProjectName","ProjectNumber","ConflictingProjectName","ConflictingProjectNumber","ProgramOfWorks","ProjectManager","WSPClient","UltimateClient","getOrgCOI","markUnderReviewOrgCOI","markInReviewOrgCOI","deleteOrgCOI","closeOrgCOI","Justification","AssessmentResultID","monitorOrgCOI","approveOrgCOI","rejectOrgCOI","updateOrganizationOrgCOI","uploadFilesOrgCOI","downloadActionsOrgConflict","downloadFileOrgCOI","AddEmployeeAccess","empID","conflictId","employeeId","RemoveEmployeeAccess","AssignAdvisor","RemoveAdvisor","RangePicker","DatePicker","BaseFilters","showStatus","translate","dropDown","filterApp","statusDropDowns","organizations","span","Item","name","label","mode","Option","value","Name","placeholder","GiftFilters","form","initData","giftCategories","currencies","criticalPeriods","acceptanceStatus","giftCategoryItems","preapprovalStatus","relationshipTypes","initialValues","gutter","ConflictFilters","conflictTypes","personalObjectOfConflicts","organizationalObjectOfConflicts","publicOfficialRelationshipTypes","conflictStatus","OrgConflictFilters","describeRequest","requestType","opportunityBuisnessGroupDropDowns","opportunityBuisnessGroup","Filters","filterVisible","onCancel","setFilter","dropDowns","Form","useForm","useEffect","resetFields","width","title","visible","onOk","validateFields","values","catch","info","okText","getContainer","Gifts","ConflictOfInterest","OrgConflictOfInterest","renderForm","EmptyOrganization","EmptyBusiness","Country","emptyEmployee","FullName","EmailAddress","Roles","PhoneNumber","PreferredLanguage","UsersAzureID","EmptyFilter","GiftEmpty","Description","StatusName","OriginalValue","BusinessID","Business","BusinessName","ContactID","Contact","Currency","OriginalAmount","ApprovedAmount","Date","UpdatedOn","CreatedBy","UpdatedBy","IsGiven","Organization","LocationID","EmployeeID","BaseCurrencyValue","GiftCategoryID","GiftCategoryName","IsAssociatedWithEvent","EventID","Event","AdditionalComments","GiftCategoryItemID","GiftCategoryItem","RelationshipTypeID","RelationshipTypeName","CriticalPeriodID","CriticalPeriodName","ArePublicOfficials","IsDuringCriticalPeriod","AcceptanceStatusID","AcceptanceStatusName","ReasonForDecline","OtherEmployeesInvited","PreapprovalStatusID","PreapprovalStatusName","Contacts","GiftTypes","OtherGiftCategory","OtherRelationshipType","OtherCriticalPeriod","OtherEmployeesInvitedNames","BusinessPurpose","Files","Comments","RuleHistory","LineItems","AuditHistory","IsOnBehalfOf","ConvertedValue","CanDelete","ActionType","EmptyConflictOfInterest","ConflictTypeID","ConflictTypeName","PersonalObjectOfConflictID","PersonalObjectOfConflictName","OrganizationalObjectOfConflictID","OrganizationalObjectOfConflictName","PublicOfficialBusinessID","PublicOfficialBusinessName","PublicOfficialRelationshipTypeID","PublicOfficialRelationshipTypeName","PublicOfficialPosition","ConflictStatusID","ConflictStatusName","MitigationDescription","IsTruthful","PublicOfficialLeftOfficeDate","CreatedByID","UpdatedByID","RelationshipDetailWithPublicOfficial","OtherConflictType","OtherPersonalObjectOfConflict","OtherOrganizationalObjectOfConflict","ImplicatedBuisnessID","ImplicatedBuisness","NotifiedManager","EmptyOrgConflictOfInterest","StateID","ProgramOfWorksID","WSPRoleType","WSPRoleTypeName","MitigationProcess","DescribeRequestID","DescribeRequest","AssignedAdvisorID","AssessmentResult","ProjectID","ProgramOfWork","AssignedTo","StateProvince","ConflictingProjects","Projects","WSPRoleTypeOther","DescribeRequestOther","Search","Input","SearchTable","columns","userFilter","updateSearchFilter","updatePagination","updateSorter","coi","excelFileService","tableColumns","visibleColumns","setNewVisibleColumns","useState","setQuery","gifts","setGifts","setSelectedRowKeys","total","setTotal","localPag","setLocalPag","downloadingDoc","setDownloadingDoc","setLoading","columnVisible","setColumnVisible","downLoadVisible","setDownloadVisible","showFilterModal","setShowFilterModal","getData","localFilter","localPagination","localSorter","localQuery","Data","Count","getExcelFile","localRowSelected","awaitFileDownload","test","handleTableChange","removeFilter","key","index","filterType","Array","isArray","length","splice","findNameInDropDowns","find","menu","column","checked","includes","onChange","target","newColumns","handleOnClick","menuDownloads","display","marginLeft","disabled","marginRight","convertTags","conflict","moment","local","format","join","rowSelection","ids","selections","Table","SELECTION_ALL","SELECTION_NONE","marginBottom","defaultValue","onSearch","searchValue","number","Number","parseInt","searchID","offset","Object","keys","filterKey","items","closable","onClose","preventDefault","justifyContent","flexWrap","overlay","onVisibleChange","flag","DownOutlined","dataSource","scroll","showTotal","showSizeChanger","pageSizeOptions","pag","_","sor","BaseService","base","setCurrentLanguage","lc","Promise","rej","localStorage","setItem","error","getCurrentLanguage","lang","getItem","getLanguages","getHubNavResources","getHubAdminResources","getDashboardResources","getActionResources","getHubMeta","getCoiDetailsResources","getOrgCoiDetailsResources","getGiftDetailResources","SearchService","getActionsSearch","DropdownService","getResources","getRequestDropdowns","getConflictDropdowns","getOrgConflictDropdowns","getCOIAssessmentResult","getRuleDropdowns","TabPane","Tabs","GiftColumns","moneyFormat","serverSort","dataIndex","b","render","to","localeCompare","sortDirections","text","color","DateRecieved","getTime","row","OnBehalfOf","Given","PublicOfficials","CoiColumns","OrgCOIColumns","Actions","langData","goToGiftDetail","goToCOIDetail","goToOrgCOIDetail","amount","currency","currencyFormatter","code","getLanguageData","getDropDowns","dropDownsConflict","dropDownsOrgConflict","getSearchTableColumns","getOrgCoiColumns","table","visibleOrgCOITableColumn","resetFilters","updateCurrentTab","allGiftTableColumns","setVisibleGiftColumns","newVisibleColumns","visibleGiftTableColumn","allCOITableColumns","allOrgCOITableColumns","setVisibleCOIColumns","visibleCOITableColumn","setTextSearchQuery","searchLoading","textSearchTable","setVisibleOrgCOIColumns","getCoiColumns","getTableColumns","queryCOI","filteredGifts","inReview","conflictOfInterest","selectedGift","languageCode","regionFilter","statusFilter","nameFilter","initFilterData","textSearchQuery","currentTab","justify","defaultActiveKey","activeKey","onTabClick","user","IsAdmin","IsEthicOfficer","tab","array","CanViewOrgCOI","expandable","expandedRowRender","columnKeys","nestedRow","defaultExpandAllRows","PieChart","series","mapOptions","chart","plotBackgroundColor","plotBorderWidth","plotShadow","subtitle","credits","enabled","tooltip","pointFormat","accessibility","point","valueSuffix","plotOptions","pie","allowPointSelect","cursor","dataLabels","highcharts","Highcharts","CombinationChart","categories","xAxis","labels","left","top","defaultOptions","Dashboard","statusPie","uniqBy","gift","y","round","countBy","count","flatMap","namePie","compact","priorities","priorityPie","priority","businessBar","c","Set","findIndex","z","businessNames","sentGifts","receivedGifts","sentCount","sumBy","receivedCount","Amount","borderBottom","backgroundColor","textAlign","borderWidth","borderStyle","borderColor","EmployeeService","search","searchType","bulkAddUser","addUser","RoleID","JSON","getOfficers","desc","updatePreferredLanguage","language","EthicsOfficers","getOrg","isNull","onSelect","node","isLeaf","orgId","removeOfficer","IsError","Message","success","addOfficer","showAddModal","searchEmployees","employeeSearchQuery","foundEmployees","employees","selectEmployee","addText","removeText","padding","treeData","cancelText","searchText","dropdownClassName","dropdownMatchSelectWidth","size","OrganizationService","getOrganizationTree","getOrganizations","getOrganizationsTreeLegal","getOrganizationsTreeStates","getOrganizationsTreeRegion","getEthicsOfficer","addEthicsOfficer","removeEthicsOfficer","addLegalOfficer","removeLegalOfficer","addState","changeStateStatus","stateID","addRegion","changeRegionStatus","regionID","getRules","Text","Typography","defaultStates","States","showModal","setShowModal","submitting","setSubmitting","states","setStates","currentOrg","setCurrentOrg","currentState","setCurrentState","setName","statesData","IsActive","isActive","titleRender","okButtonProps","UsersTab","handleBulkUploadFile","files","bulkUploadFile","handleUserNameChange","userName","handleEmailChange","userEmail","handleRoleChange","userRole","handleAddUser","resp","showAddUserModal","handleBulkUploadValidation","htmlFor","RuleService","GetRule","GetAllRule","AddNewRule","rule","ReRunRule","giftID","UpdateRule","FormItem","CreateRule","onCreate","ruleTypes","giftType","setGiftType","isCOI","prefixSelector","noStyle","layout","COI","rules","required","org","category","valuePropName","checkedChildren","unCheckedChildren","official","String","addonBefore","setData","RuleType","hidden","Rules","editDetail","RuleID","showEditModal","displayRegions","regionNames","handleCreate","newRule","handleUpdate","updatedRule","ruleToUpdate","tableColumn","regions","Select","Admin","setLanguage","route","routes","match","supportedLanguages","prevProps","prevState","toString","callback","Users","CommentService","AddGiftComment","giftId","comment","GiftID","AddCOIComment","coiId","AddOrgCOIComment","photos","Map","AuthService","loginUser","getLoggedInUser","Api","userPhoto","ok","blob","userPhotoByID","has","photo","set","TextArea","CommentList","comments","header","itemLayout","renderItem","Editor","onSubmit","rows","showCount","maxLength","htmlType","AvatarPhoto","photoID","setPhoto","getPhoto","icon","UserOutlined","submitFunction","formattedComments","sort","author","UserName","content","Comment","datetime","fromNow","avatar","UserPhoto","commentText","setCommentText","handleSubmit","Content","Layout","Header","Dragger","Upload","GiftDetail","OrganizationName","ruleHistory","hasFailedRules","StatusID","showRuleVerifyButton","giftFiles","auditHistory","changeGiftStatus","statusModalTitle","showStatusModal","fileID","lineItemAmount","reduce","updateRuleHistory","loadingRuleHistory","getStatus","getCompliesWithPolicy","CheckCircleTwoTone","twoToneColor","ExclamationCircleTwoTone","getSubTitles","postComment","getButtons","btns","ruleColumn","updatedOn","auditColumn","ColumnChanged","CriticalPeriodLabel","PublicOfficialLabel","given","AcceptanceStatusLabel","EmailUserComment","ShareWithUser","emailComment","result","showFileModal","editModalConfirmLoading","statusModalConfirmLoading","ghost","onBack","back","subTitle","extra","alignItems","float","EditTwoTone","description","bordered","contact","rowSpan","Title","lineItems","EventType","AttendeesCount","EventDateString","showZero","confirmLoading","multiple","beforeUpload","onRemove","uid","newFileList","slice","InboxOutlined","flexDirection","locale","emptyText","item","Link","Private","audit","tableLayout","User","CreatedData","AuditDetails","ConflictOfInterestDetail","coiFiles","ProjectCard","Project","project","setProject","ProjectScope","Location","KeyAccountManager","BuisnessGroup","ProjectStage","loadingIcon","LoadingOutlined","spin","AddOfficerBtn","coiID","addEmployeeToList","added","setAdded","addEmployee","indicator","AddAdvisorBtn","OrgCOIDetail","checkIfJustLegalOfficer","IsLegalOfficer","coiAccessList","OrgConflictAccess","orgCOIAssessmentResult","markReject","markApprove","removeUser","empName","accessList","yesOrNo","getOfficerTable","officerPag","officerSorter","officerQuery","officerSearchList","officerTotal","searchTerm","showOfficerModal","officerModal","showAdvisorModal","showAssignAdvisorModal","officerColumn","some","advisorColumn","advisor","Footer","menuRoute","component","exact","COIDetail","Home","canUse","location","currentLanguage","resources","isDEV","hostname","path","selectedPathIndex","position","zIndex","fontSize","lineHeight","disabledOverflow","theme","defaultSelectedKeys","r","right","shape","minHeight","appVersion","packageJson","version","buildDate","now","CacheBuster","isLatestVersion","refreshCacheAndReload","caches","names","reload","json","meta","latestVersion","currentVersion","hash","versionA","versionB","versionsA","split","versionsB","shift","isNaN","semverGreaterThan","children","React","createBrowserHistory","displayName","Boolean","isLocalhost","registerValidSW","swUrl","navigator","serviceWorker","register","registration","onupdatefound","installingWorker","installing","onstatechange","controller","onUpdate","onSuccess","baseUrl","getElementsByTagName","getAttribute","rootElement","getElementById","swConfig","runWithAdal","ReactDOM","basename","process","origin","addEventListener","ready","unregister","checkValidServiceWorker","serviceWorkerRegistration"],"mappings":"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","file":"static/js/main.756f0de8.chunk.js","sourcesContent":["export default {\r\n //baseURL: 'http://localhost:5000'\r\n baseURL: 'https://registryhub.wsp.com'\r\n}","import { AuthenticationContext, adalFetch, withAdalLogin, adalGetToken, AdalConfig } from 'react-adal';\r\nimport ApiConfig from './ApiConfig';\r\n\r\nconst defaultURL = 'https://graph.microsoft.com'\r\n\r\n\r\n\r\nexport const adalConfig: AdalConfig = {\r\n tenant: 'common',\r\n clientId: 'be1f1842-0466-4a8a-8587-ed3de9366123',\r\n redirectUri: `${ApiConfig.baseURL}`,\r\n endpoints: {\r\n api: 'https://graph.microsoft.com',\r\n },\r\n cacheLocation: 'localStorage',\r\n};\r\n\r\nexport const AuthContext = new AuthenticationContext(adalConfig);\r\n\r\nexport const AdalApiFetch = (url: string, options: any = {}) =>\r\n adalFetch(AuthContext, adalConfig && adalConfig.endpoints ? adalConfig.endpoints.api : defaultURL, fetch, url, options);\r\n\r\nexport const GetToken = async () => {\r\n\r\n try {\r\n return await adalGetToken(AuthContext, adalConfig.clientId);\r\n } catch (error: any) {\r\n console.log(\"Token error\", error);\r\n if (\r\n error &&\r\n error.msg &&\r\n (error.msg === 'login_required' ||\r\n error.msg === 'login required' ||\r\n error.msg === 'interaction_required' ||\r\n error.msg === 'Token Renewal Failed')\r\n ) {\r\n AuthContext.login();\r\n }\r\n }\r\n\r\n}\r\n\r\nexport const WithAdalLoginApi = withAdalLogin(AuthContext, adalConfig && adalConfig.endpoints ? adalConfig.endpoints.api : defaultURL);\r\n","import React, { Component } from 'react';\r\nimport { Button, Spin, Alert } from 'antd';\r\nimport { AuthContext, adalConfig } from '../config/AdalConfig';\r\n\r\nexport default class Auth extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n loading: false,\r\n errorMessage: ''\r\n }\r\n }\r\n\r\n login = () => {\r\n this.setState({ loading: true }, () => {\r\n if (!AuthContext.getCachedToken(adalConfig.clientId) || !AuthContext.getCachedUser()) {\r\n AuthContext.login()\r\n } else {\r\n AuthContext.acquireToken(adalConfig.endpoints.api, (message, token, msg) => {\r\n if (token) {\r\n this.props.history.push({ pathname: '/' })\r\n } else {\r\n this.setState({ errorMessage: message, loading: false });\r\n }\r\n })\r\n }\r\n })\r\n }\r\n\r\n render() {\r\n const { loading, errorMessage } = this.state;\r\n\r\n return (\r\n
\r\n
\r\n \r\n

Gifts, Entertainment & Hospitality (GEH) System

\r\n
\r\n {\r\n loading ?\r\n \r\n :\r\n
\r\n \r\n {\r\n errorMessage ?\r\n \r\n :\r\n null\r\n }\r\n
\r\n }\r\n
\r\n
\r\n )\r\n }\r\n}\r\n","import axios from 'axios'\r\n\r\nimport ApiConfig from '../config/ApiConfig'\r\nimport { GetToken } from '../config/AdalConfig';\r\n\r\n\r\nconst instance = axios.create(ApiConfig)\r\n\r\n\r\ninstance.interceptors.request.use(async function (config) {\r\n const token = await GetToken();\r\n if (token) {\r\n config.headers.Authorization = `Bearer ${token}`;\r\n }\r\n return config;\r\n});\r\n\r\nexport default instance","\r\nexport enum App {\r\n Gifts = 1,\r\n ConflictOfInterest = 2,\r\n OrgConflictOfInterest = 3\r\n}","import axios from './Api';\r\nimport ApiConfig from '../config/ApiConfig';\r\nimport qs from 'qs';\r\nimport mime from 'mime-types';\r\nimport api from './Api';\r\nimport { GiftFilterDTO, giftFilterFormType, pagination, sorter } from '../models/Core';\r\nimport { RcFile } from 'antd/lib/upload';\r\n\r\n\r\nconst GiftService = {\r\n NAME: \"GIFT SERVIVCE\",\r\n getGifts: async function () {\r\n try {\r\n const response = await axios.get(`${ApiConfig.baseURL}/api/gifts`);\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n getActions: async function (filter: GiftFilterDTO, pagination: pagination, sorter: sorter, query: string, filterRequestReview: boolean) {\r\n try {\r\n\r\n const types = filter.Type ? filter.Type : [];\r\n const OfferedOn = filter.OfferedOn ? filter.OfferedOn : [];\r\n const CreatedOn = filter.CreatedOn ? filter.CreatedOn : [];\r\n let Status = filter.Status ? filter.Status : [];\r\n if (filterRequestReview) {\r\n Status = [...Status, 1]\r\n }\r\n const response = await api.get(`${ApiConfig.baseURL}/api/gifts/GetActions`, {\r\n params: {\r\n BuisnessName: filter.BuisnessName, CriticalPeriod: filter.CriticalPeriod, Currencies: filter.Currencies,\r\n OfferedOn: OfferedOn.map(x => x.toDate()),\r\n CreatedOn: CreatedOn.map(x => x.toDate()),\r\n AcceptanceStatus: filter.AcceptanceStatus, GiftCategoryItems: filter.GiftCategoryItems,\r\n PreapprovalStatus: filter.PreapprovalStatus, Priorities: filter.Priorities, RelationshipTypes: filter.RelationshipTypes,\r\n Employee: filter.Employee, ExpenseReportNumber: filter.ExpenseReportNumber, Type: filter.Type,\r\n Status, GivenRecieved: filter.GivenRecieved,\r\n page: pagination.current, limit: pagination.pageSize, sortField: sorter.field,\r\n sortDir: sorter.order, searchQuery: query, Region: filter.Region,\r\n BuisnessCountry: filter.BuisnessCountry, PublicOfficialName: filter.PublicOfficialName, PublicOfficial: filter.PublicOfficial,\r\n Id: filter.Id ?? 0\r\n },\r\n paramsSerializer: params => {\r\n return qs.stringify(params)\r\n }\r\n });\r\n return response.data;\r\n } catch (e) {\r\n console.log(e);\r\n return [];\r\n }\r\n },\r\n getGift: async function (id: string) {\r\n try {\r\n const response = await api.get(`${ApiConfig.baseURL}/api/gifts/hub/${id}`);\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n markInReview: async function (ID: number, ReviewComments: string) {\r\n try {\r\n const response = await api.put(`${ApiConfig.baseURL}/api/gifts/inreview`, qs.stringify({\r\n ID, ReviewComments\r\n }));\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n\r\n markUnderReview: async function (ID: number) {\r\n try {\r\n const response = await api.put(`${ApiConfig.baseURL}/api/gifts/underreview`, qs.stringify({\r\n ID\r\n }));\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n\r\n reopen: async function (ID: number) {\r\n try {\r\n const response = await api.put(`${ApiConfig.baseURL}/api/gifts/Reopen`, qs.stringify({\r\n ID\r\n }));\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n moveItem: async function (ID: number) {\r\n try {\r\n const response = await api.put(`${ApiConfig.baseURL}/api/gifts/MoveItem`, qs.stringify({\r\n ID\r\n }));\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n approveGift: async function (ID: number, ApprovedValue: number, ReviewComments: string) {\r\n try {\r\n const response = await api.put(`${ApiConfig.baseURL}/api/gifts/approve`, qs.stringify({\r\n ID, ReviewComments, ApprovedValue\r\n }));\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n deleteGift: async function (ID: number) {\r\n try {\r\n const response = await api.post(`${ApiConfig.baseURL}/api/gifts/DeleteGift/${ID}`);\r\n if (response.status === 200) {\r\n return true;\r\n }\r\n return false;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n return false\r\n }\r\n },\r\n\r\n reqReviewGift: async function (ID: number, ReviewComments: string) {\r\n try {\r\n const response = await api.put(`${ApiConfig.baseURL}/api/gifts/requestReview`, qs.stringify({\r\n ID, ReviewComments\r\n }));\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n rejectGift: async function (ID: number, ApprovedValue: number, ReviewComments: string) {\r\n try {\r\n const response = await api.put(`${ApiConfig.baseURL}/api/gifts/reject`, qs.stringify({\r\n ID, ReviewComments, ApprovedValue\r\n }));\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n\r\n updateOrganization: async function (ID: number, OrganizationID: number) {\r\n try {\r\n const response = await api.put(`${ApiConfig.baseURL}/api/gifts/updateorganization`, qs.stringify({\r\n ID, OrganizationID\r\n }));\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n\r\n uploadFiles: async function (fileList: RcFile[], ID: string, shareWithUser: string, EmailUser: string, EmailComment: string) {\r\n try {\r\n const formData = new FormData();\r\n formData.append(\"GiftID\", ID);\r\n formData.append(\"ShareWithUser\", shareWithUser);\r\n formData.append(\"EmailUser\", EmailUser);\r\n formData.append(\"EmailComment\", EmailComment);\r\n fileList.forEach(file => {\r\n formData.append(\"files\", file)\r\n\r\n });\r\n\r\n const response = await api.post(`${ApiConfig.baseURL}/api/gifts/hubUpload`, formData);\r\n\r\n\r\n if (response && response.status === 200) {\r\n return response.data;\r\n } else {\r\n return null\r\n }\r\n\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n return null;\r\n }\r\n },\r\n\r\n downloadFile: async function (ID: number) {\r\n try {\r\n axios({\r\n url: `${ApiConfig.baseURL}/api/gifts/DownloadFile/${ID}`,\r\n method: 'GET',\r\n responseType: 'blob', // important\r\n }).then((response) => {\r\n const contentType = response.headers['content-type'];\r\n const contentDisposition = response.headers['content-disposition'];\r\n const url = window.URL.createObjectURL(new Blob([response.data]));\r\n const link = document.createElement('a');\r\n link.href = url;\r\n const fileExtension = mime.extension(contentType);\r\n link.setAttribute('download', `file.${fileExtension}`);\r\n if (contentDisposition && contentDisposition.indexOf('attachment') !== -1) {\r\n var filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\r\n var matches = filenameRegex.exec(contentDisposition);\r\n if (matches != null && matches[1]) {\r\n const filename = matches[1].replace(/['\"]/g, '');\r\n link.setAttribute('download', filename);\r\n\r\n }\r\n }\r\n document.body.appendChild(link);\r\n link.click();\r\n });\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n }\r\n ,\r\n downloadActionsGift: async function (filter: GiftFilterDTO, pagination: pagination, sorter: sorter, query: string, filterRequestReview: boolean, selectedRowKeys: number[], selectedColumns: string[]) {\r\n try {\r\n\r\n const OfferedOn = filter.OfferedOn ? filter.OfferedOn : [];\r\n const CreatedOn = filter.CreatedOn ? filter.CreatedOn : [];\r\n\r\n let Status = filter.Status ? filter.Status : [];\r\n if (filterRequestReview) {\r\n Status = [...Status, 1]\r\n }\r\n\r\n const res = await axios({\r\n url: `${ApiConfig.baseURL}/api/gifts/GetActionsExcel/`,\r\n\r\n params: {\r\n BuisnessName: filter.BuisnessName,\r\n OfferedOn: OfferedOn.map(x => x.toDate()),\r\n CreatedOn: CreatedOn.map(x => x.toDate()),\r\n Employee: filter.Employee, Type: filter.Type, Status,\r\n page: pagination.current, limit: pagination.pageSize, sortField: sorter.field,\r\n AcceptanceStatus: filter.AcceptanceStatus, GiftCategoryItems: filter.GiftCategoryItems,\r\n PreapprovalStatus: filter.PreapprovalStatus, Priorities: filter.Priorities, RelationshipTypes: filter.RelationshipTypes,\r\n ExpenseReportNumber: filter.ExpenseReportNumber,\r\n GivenRecieved: filter.GivenRecieved,\r\n Currencies: filter.Currencies,\r\n BuisnessCountry: filter.BuisnessCountry, PublicOfficialName: filter.PublicOfficialName, SelectedIDs: selectedRowKeys,\r\n SelectedColumns: selectedColumns,\r\n searchQuery: query, Region: filter.Region,\r\n },\r\n paramsSerializer: params => {\r\n return qs.stringify(params)\r\n },\r\n\r\n method: 'GET',\r\n responseType: 'blob', // important\r\n })\r\n if (res) {\r\n\r\n const contentType = res.headers['content-type'];\r\n const url = window.URL.createObjectURL(new Blob([res.data]));\r\n const link = document.createElement('a');\r\n link.href = url;\r\n const fileExtension = mime.extension(contentType);\r\n link.setAttribute('download', `file.${fileExtension}`);\r\n document.body.appendChild(link);\r\n link.click();\r\n return true;\r\n\r\n }\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n return false;\r\n }\r\n return false;\r\n },\r\n};\r\n\r\nexport default GiftService;","import axios from './Api';\r\nimport ApiConfig from '../config/ApiConfig';\r\nimport qs from 'qs';\r\nimport mime from 'mime-types';\r\nimport api from './Api';\r\nimport { ConflictFilterDTO, pagination, sorter } from '../models/Core';\r\n\r\n\r\nconst ConflictOfInterestService = {\r\n NAME: 'CONFLICT OF INTEREST SERVICE',\r\n\r\n getActions: async function (filter: ConflictFilterDTO, pagination: pagination, sorter: sorter, query: string) {\r\n try {\r\n\r\n const OfferedOn = filter.OfferedOn ?? [];\r\n const CreatedOn = filter.CreatedOn ?? [];\r\n\r\n let Status = filter.Status ?? [];\r\n\r\n const response = await api.get(`${ApiConfig.baseURL}/api/ConflictOfInterests/GetActions`, {\r\n params: {\r\n BuisnessName: filter.BuisnessName,\r\n CreatedOn: CreatedOn.map(x => x.toDate()),\r\n OfferedOn: OfferedOn.map(x => x.toDate()),\r\n Employee: filter.Employee, Type: filter.Type, PersonalObjectOfConflicts: filter.PersonalObjectOfConflicts,\r\n OrganizationalObjectOfConflicts: filter.OrganizationalObjectOfConflicts,\r\n PublicOfficialRelationshipTypes: filter.PublicOfficialRelationshipTypes, ConflictStatus: filter.ConflictStatus,\r\n Truthful: filter.Truthful, CompliesWithPolicy: filter.CompliesWithPolicy, Status,\r\n page: pagination.current, limit: pagination.pageSize, sortField: sorter.field,\r\n sortDir: sorter.order, searchQuery: query, Region: filter.Region,\r\n BuisnessCountry: filter.BuisnessCountry, PublicOfficialName: filter.PublicOfficialName,\r\n Id: filter.Id ?? 0\r\n },\r\n paramsSerializer: params => {\r\n return qs.stringify(params)\r\n }\r\n });\r\n return response.data;\r\n } catch (e) {\r\n console.log(e);\r\n return [];\r\n }\r\n },\r\n\r\n get: async function (id: string) {\r\n try {\r\n const response = await api.get(`${ApiConfig.baseURL}/api/ConflictOfInterests/hub/${id}`);\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n\r\n markUnderReview: async function (ID: number) {\r\n try {\r\n const response = await api.put(`${ApiConfig.baseURL}/api/ConflictOfInterests/underreview`, qs.stringify({\r\n ID\r\n }));\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n markInReview: async function (ID: number, ReviewComments: string) {\r\n try {\r\n const response = await api.put(`${ApiConfig.baseURL}/api/ConflictOfInterests/inreview`, qs.stringify({\r\n ID, ReviewComments\r\n }));\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n reopen: async function (ID: number) {\r\n try {\r\n const response = await api.put(`${ApiConfig.baseURL}/api/ConflictOfInterests/Reopen`, qs.stringify({\r\n ID\r\n }));\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n\r\n delete: async function (ID: number) {\r\n try {\r\n const response = await api.post(`${ApiConfig.baseURL}/api/ConflictOfInterests/DeleteConflict/${ID}`);\r\n return response;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n approve: async function (ID: number, ReviewComments: string) {\r\n try {\r\n const response = await api.put(`${ApiConfig.baseURL}/api/ConflictOfInterests/approve`, qs.stringify({\r\n ID, ReviewComments\r\n }));\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n\r\n reject: async function (ID: number, ReviewComments: string) {\r\n try {\r\n const response = await api.put(`${ApiConfig.baseURL}/api/ConflictOfInterests/reject`, qs.stringify({\r\n ID, ReviewComments\r\n }));\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n\r\n updateOrganization: async function (ID: number, OrganizationID: number) {\r\n try {\r\n const response = await api.put(`${ApiConfig.baseURL}/api/ConflictOfInterests/updateorganization`, qs.stringify({\r\n ID, OrganizationID\r\n }));\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n\r\n uploadFiles: async function (fileList: Blob[], ID: string, shareWithUser: string, EmailUser: string, EmailComment: string) {\r\n try {\r\n const formData = new FormData();\r\n formData.append(\"GiftID\", ID);\r\n formData.append(\"ShareWithUser\", shareWithUser);\r\n formData.append(\"EmailUser\", EmailUser);\r\n formData.append(\"EmailComment\", EmailComment);\r\n fileList.forEach(file => {\r\n formData.append(\"files\", file)\r\n\r\n });\r\n\r\n const response = await api.post(`${ApiConfig.baseURL}/api/ConflictOfInterests/hubUpload`, formData);\r\n\r\n\r\n if (response && response.status === 200) {\r\n return response.data;\r\n } else {\r\n return null\r\n }\r\n\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n return null;\r\n }\r\n },\r\n\r\n downloadActions: async function (filter: ConflictFilterDTO, pagination: pagination, sorter: sorter, query: string, selectedRowKeys: number[], selectedColumns: string[]) {\r\n try {\r\n\r\n const OfferedOn = filter.OfferedOn ?? [];\r\n const CreatedOn = filter.CreatedOn ?? [];\r\n\r\n let Status = filter.Status ?? [];\r\n\r\n let response = await axios({\r\n url: `${ApiConfig.baseURL}/api/ConflictOfInterests/GetActionsExcel/`,\r\n\r\n params: {\r\n BuisnessName: filter.BuisnessName,\r\n OfferedOn: OfferedOn.map(x => x.toDate()),\r\n CreatedOn: CreatedOn.map(x => x.toDate()),\r\n\r\n Employee: filter.Employee, Type: filter.Type, PersonalObjectOfConflicts: filter.PersonalObjectOfConflicts,\r\n OrganizationalObjectOfConflicts: filter.OrganizationalObjectOfConflicts,\r\n PublicOfficialRelationshipTypes: filter.PublicOfficialRelationshipTypes, ConflictStatus: filter.ConflictStatus,\r\n Truthful: filter.Truthful, CompliesWithPolicy: filter.CompliesWithPolicy, Status,\r\n page: pagination.current, limit: pagination.pageSize, sortField: sorter.field,\r\n sortDir: sorter.order, searchQuery: query, Region: filter.Region,\r\n BuisnessCountry: filter.BuisnessCountry, PublicOfficialName: filter.PublicOfficialName, SelectedIDs: selectedRowKeys,\r\n SelectedColumns: selectedColumns,\r\n Id: filter.Id\r\n },\r\n paramsSerializer: params => {\r\n return qs.stringify(params)\r\n },\r\n\r\n method: 'GET',\r\n responseType: 'blob', // important\r\n })\r\n if (response) {\r\n const contentType = response.headers['content-type'];\r\n const url = window.URL.createObjectURL(new Blob([response.data]));\r\n const link = document.createElement('a');\r\n link.href = url;\r\n const fileExtension = mime.extension(contentType);\r\n link.setAttribute('download', `file.${fileExtension}`);\r\n document.body.appendChild(link);\r\n link.click();\r\n return true;\r\n }\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n return false;\r\n }\r\n return false;\r\n\r\n },\r\n\r\n downloadFile: async function (ID: number) {\r\n try {\r\n axios({\r\n url: `${ApiConfig.baseURL}/api/ConflictOfInterests/DownloadFile/${ID}`,\r\n method: 'GET',\r\n responseType: 'blob', // important\r\n }).then((response) => {\r\n const contentType = response.headers['content-type'];\r\n const contentDisposition = response.headers['content-disposition'];\r\n const url = window.URL.createObjectURL(new Blob([response.data]));\r\n const link = document.createElement('a');\r\n link.href = url;\r\n const fileExtension = mime.extension(contentType);\r\n link.setAttribute('download', `file.${fileExtension}`);\r\n document.body.appendChild(link);\r\n if (contentDisposition && contentDisposition.indexOf('attachment') !== -1) {\r\n var filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\r\n var matches = filenameRegex.exec(contentDisposition);\r\n if (matches != null && matches[1]) {\r\n const filename = matches[1].replace(/['\"]/g, '');\r\n link.setAttribute('download', filename);\r\n\r\n }\r\n }\r\n link.click();\r\n });\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n return false;\r\n\r\n }\r\n};\r\n\r\nexport default ConflictOfInterestService;","import axios from './Api';\r\nimport ApiConfig from '../config/ApiConfig';\r\nimport qs from 'qs';\r\nimport mime from 'mime-types';\r\nimport api from './Api';\r\nimport { OrgConflictFilterDTO, pagination, sorter } from '../models/Core';\r\n\r\n\r\nconst OrgCOIService = {\r\n NAME: \"ORGANIZATIONAL CONFLICT OF INTEREST SERVICE\",\r\n\r\n getActionsOrgConflict: async function (filter: OrgConflictFilterDTO, pagination: pagination, sorter: sorter, query: string) {\r\n try {\r\n\r\n const OfferedOn = filter.OfferedOn ? filter.OfferedOn : [];\r\n const CreatedOn = filter.CreatedOn ? filter.CreatedOn : [];\r\n\r\n const ConflictingProject = filter.ConflictingProject ?? [];\r\n const RequestType = filter.RequestType ?? [];\r\n let Status = filter.Status ? filter.Status : [];\r\n const BusinessGroup = filter.BusinessGroup ?? [];\r\n\r\n\r\n const response = await api.get(`${ApiConfig.baseURL}/api/OrganizationalConflictsOfInterest/GetActions`, {\r\n params: {\r\n OfferedOn: OfferedOn.map(x => x.toDate()), Region: filter.Region,\r\n Employee: filter.Employee, Status, CreatedOn: CreatedOn.map(x => x.toDate()),\r\n Truthful: filter.Truthful, CompliesWithPolicy: filter.CompliesWithPolicy,\r\n ConflictingProject, ConflictStatus: filter.ConflictStatus, RequestType,\r\n ProjectName: filter.ProjectName, ProjectNumber: filter.ProjectNumber,\r\n ConflictingProjectName: filter.ConflictingProjectName, ConflictingProjectNumber: filter.ConflictingProjectNumber,\r\n page: pagination.current, limit: pagination.pageSize, sortField: sorter.field,\r\n sortDir: sorter.order, searchQuery: query, BusinessGroup, ProgramOfWorks: filter.ProgramOfWorks,\r\n ProjectManager: filter.ProjectManager, WSPClient: filter.WSPClient, UltimateClient: filter.UltimateClient,\r\n Id: filter.Id ?? 0\r\n },\r\n paramsSerializer: params => {\r\n return qs.stringify(params)\r\n }\r\n });\r\n return response.data;\r\n } catch (e) {\r\n console.log(e);\r\n return [];\r\n }\r\n },\r\n getOrgCOI: async function (id: string) {\r\n try {\r\n const response = await api.get(`${ApiConfig.baseURL}/api/OrganizationalConflictsOfInterest/hub/${id}`);\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n\r\n markUnderReviewOrgCOI: async function (ID: number) {\r\n try {\r\n const response = await api.put(`${ApiConfig.baseURL}/api/OrganizationalConflictsOfInterest/underreview`, qs.stringify({\r\n ID\r\n }));\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n markInReviewOrgCOI: async function (ID: number, ReviewComments: string) {\r\n try {\r\n const response = await api.put(`${ApiConfig.baseURL}/api/OrganizationalConflictsOfInterest/inreview`, qs.stringify({\r\n ID, ReviewComments\r\n }));\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n\r\n deleteOrgCOI: async function (ID: number) {\r\n try {\r\n const response = await api.post(`${ApiConfig.baseURL}/api/OrganizationalConflictsOfInterest/Delete/${ID}`);\r\n return response;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n closeOrgCOI: async function (ID: number, Justification: string, AssessmentResultID: number) {\r\n try {\r\n const response = await api.put(`${ApiConfig.baseURL}/api/OrganizationalConflictsOfInterest/Close`, qs.stringify({\r\n ID, Justification, AssessmentResultID\r\n }));\r\n return response;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n monitorOrgCOI: async function (ID: number, Justification: string, AssessmentResultID: number) {\r\n try {\r\n const response = await api.put(`${ApiConfig.baseURL}/api/OrganizationalConflictsOfInterest/Monitor`, qs.stringify({\r\n ID, Justification, AssessmentResultID\r\n }));\r\n return response;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n\r\n approveOrgCOI: async function (ID: number) {\r\n try {\r\n const response = await api.put(`${ApiConfig.baseURL}/api/OrganizationalConflictsOfInterest/approve`, qs.stringify({\r\n ID,\r\n }));\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n reopen: async function (ID: number) {\r\n try {\r\n const response = await api.put(`${ApiConfig.baseURL}/api/OrganizationalConflictsOfInterest/Reopen`, qs.stringify({\r\n ID\r\n }));\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n\r\n rejectOrgCOI: async function (ID: number) {\r\n try {\r\n const response = await api.put(`${ApiConfig.baseURL}/api/OrganizationalConflictsOfInterest/reject`, qs.stringify({\r\n ID\r\n }));\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n\r\n updateOrganizationOrgCOI: async function (ID: number, OrganizationID: number) {\r\n try {\r\n const response = await api.put(`${ApiConfig.baseURL}/api/OrganizationalConflictsOfInterest/updateorganization`, qs.stringify({\r\n ID, OrganizationID\r\n }));\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n\r\n uploadFilesOrgCOI: async function (fileList: Blob[], ID: string, shareWithUser: string, EmailUser: string, EmailComment: string) {\r\n try {\r\n const formData = new FormData();\r\n formData.append(\"ConflictOfInterestID\", ID);\r\n formData.append(\"ShareWithUser\", shareWithUser);\r\n formData.append(\"EmailUser\", EmailUser);\r\n formData.append(\"EmailComment\", EmailComment);\r\n fileList.forEach(file => {\r\n formData.append(\"files\", file)\r\n\r\n });\r\n\r\n const response = await api.post(`${ApiConfig.baseURL}/api/OrganizationalConflictsOfInterest/hubUpload`, formData);\r\n\r\n\r\n if (response && response.status === 200) {\r\n return response.data;\r\n } else {\r\n return null\r\n }\r\n\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n return null;\r\n }\r\n },\r\n\r\n downloadActionsOrgConflict: async function (filter: OrgConflictFilterDTO, pagination: pagination, sorter: sorter, query: string, selectedRowKeys: number[], selectedColumns: string[]) {\r\n try {\r\n\r\n const OfferedOn = filter.OfferedOn ? filter.OfferedOn : [];\r\n const CreatedOn = filter.CreatedOn ? filter.CreatedOn : [];\r\n let Status = filter.Status ? filter.Status : [];\r\n const ConflictingProject = filter.ConflictingProject ?? [];\r\n const RequestType = filter.RequestType ?? [];\r\n let response = await axios({\r\n url: `${ApiConfig.baseURL}/api/OrganizationalConflictsOfInterest/GetActionsExcel`,\r\n\r\n params: {\r\n OfferedOn: OfferedOn.map(x => x.toDate()), Region: filter.Region,\r\n Employee: filter.Employee, Status, CreatedOn: CreatedOn.map(x => x.toDate()),\r\n Truthful: filter.Truthful, CompliesWithPolicy: filter.CompliesWithPolicy,\r\n ConflictingProject, ConflictStatus: filter.ConflictStatus, RequestType,\r\n ProjectName: filter.ProjectName, ProjectNumber: filter.ProjectNumber,\r\n ConflictingProjectName: filter.ConflictingProjectName, ConflictingProjectNumber: filter.ConflictingProjectNumber,\r\n page: pagination.current, limit: pagination.pageSize, sortField: sorter.field,\r\n sortDir: sorter.order, searchQuery: query, SelectedIDs: selectedRowKeys,\r\n SelectedColumns: selectedColumns,\r\n Id: filter.Id\r\n },\r\n paramsSerializer: params => {\r\n return qs.stringify(params)\r\n },\r\n\r\n method: 'GET',\r\n responseType: 'blob', // important\r\n })\r\n if (response) {\r\n const contentType = response.headers['content-type'];\r\n const url = window.URL.createObjectURL(new Blob([response.data]));\r\n const link = document.createElement('a');\r\n link.href = url;\r\n const fileExtension = mime.extension(contentType);\r\n link.setAttribute('download', `file.${fileExtension}`);\r\n document.body.appendChild(link);\r\n link.click();\r\n return true;\r\n }\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n return false;\r\n }\r\n return false;\r\n\r\n },\r\n\r\n downloadFileOrgCOI: async function (ID: number) {\r\n try {\r\n axios({\r\n url: `${ApiConfig.baseURL}/api/OrganizationalConflictsOfInterest/DownloadFile/${ID}`,\r\n method: 'GET',\r\n responseType: 'blob', // important\r\n }).then((response) => {\r\n const contentType = response.headers['content-type'];\r\n const contentDisposition = response.headers['content-disposition'];\r\n const url = window.URL.createObjectURL(new Blob([response.data]));\r\n const link = document.createElement('a');\r\n link.href = url;\r\n const fileExtension = mime.extension(contentType);\r\n link.setAttribute('download', `file.${fileExtension}`);\r\n document.body.appendChild(link);\r\n if (contentDisposition && contentDisposition.indexOf('attachment') !== -1) {\r\n var filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\r\n var matches = filenameRegex.exec(contentDisposition);\r\n if (matches != null && matches[1]) {\r\n const filename = matches[1].replace(/['\"]/g, '');\r\n link.setAttribute('download', filename);\r\n\r\n }\r\n }\r\n link.click();\r\n });\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n AddEmployeeAccess: async function (ID: number, empID: number) {\r\n try {\r\n const response = await api.put(`${ApiConfig.baseURL}/api/OrganizationalConflictsOfInterest/AddEmployeeAccess`, qs.stringify({\r\n conflictId: ID, employeeId: empID\r\n }));\r\n\r\n if (response && response.status === 200) {\r\n return true;\r\n }\r\n return false\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n RemoveEmployeeAccess: async function (ID: number, empID: number) {\r\n try {\r\n const response = await api.put(`${ApiConfig.baseURL}/api/OrganizationalConflictsOfInterest/RemoveEmployeeAccess`, qs.stringify({\r\n conflictId: ID, employeeId: empID\r\n }));\r\n\r\n if (response && response.status === 200) {\r\n return true;\r\n }\r\n return false\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n AssignAdvisor: async function (ID: number, empID: number) {\r\n try {\r\n const response = await api.put(`${ApiConfig.baseURL}/api/OrganizationalConflictsOfInterest/AssignAdvisor`, qs.stringify({\r\n conflictId: ID, employeeId: empID\r\n }));\r\n\r\n if (response && response.status === 200) {\r\n return true;\r\n }\r\n return false\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n RemoveAdvisor: async function (ID: number) {\r\n try {\r\n const response = await api.put(`${ApiConfig.baseURL}/api/OrganizationalConflictsOfInterest/RemoveAdvisor`, qs.stringify({\r\n conflictId: ID\r\n }));\r\n\r\n if (response && response.status === 200) {\r\n return true;\r\n }\r\n return false\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n};\r\n\r\nexport default OrgCOIService;","import React, { useState, useEffect } from 'react';\r\nimport {\r\n Input, Row, Col, Select, Form,\r\n Modal, DatePicker, FormInstance\r\n} from 'antd';\r\n\r\nimport { App } from '../models/Enums'\r\nimport { filterFormType, GenericDTO, giftFilterFormType, ConflictFilterFormType, OrgConflictFilterFormType, filterType } from '../models/Core';\r\nconst { RangePicker } = DatePicker;\r\n\r\n\r\nconst BaseFilters = ({ showStatus, translate, filterApp, dropDown }: filterFormType) => {\r\n\r\n const statusDropDowns: GenericDTO[] = dropDown.status ?? [];\r\n const organizations: GenericDTO[] = dropDown.organizations ?? [];\r\n\r\n\r\n return (\r\n <>\r\n {showStatus && \r\n \r\n \r\n \r\n }\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n )\r\n}\r\n\r\nconst GiftFilters = ({ form, showStatus, translate,\r\n initData,\r\n filterApp, dropDown\r\n}: giftFilterFormType) => {\r\n\r\n const giftCategories = dropDown.giftCategories ?? [];\r\n const currencies = dropDown.currencies ?? [];\r\n const criticalPeriods = dropDown.criticalPeriods ?? [];\r\n const acceptanceStatus = dropDown.acceptanceStatus ?? [];\r\n const giftCategoryItems = dropDown.giftCategoryItems ?? [];\r\n const preapprovalStatus = dropDown.preapprovalStatus ?? [];\r\n const relationshipTypes = dropDown.relationshipTypes ?? [];\r\n\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 \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {giftCategories.map(x => (\r\n {translate(x.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 \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n )\r\n}\r\n\r\n\r\nconst ConflictFilters = ({ form, showStatus, translate,\r\n initData,\r\n filterApp, dropDown\r\n}: ConflictFilterFormType) => {\r\n\r\n\r\n const conflictTypes = dropDown.conflictTypes ?? [];\r\n const personalObjectOfConflicts = dropDown.personalObjectOfConflicts ?? [];\r\n const organizationalObjectOfConflicts = dropDown.organizationalObjectOfConflicts ?? [];\r\n const publicOfficialRelationshipTypes = dropDown.publicOfficialRelationshipTypes ?? [];\r\n const conflictStatus = dropDown.conflictStatus ?? [];\r\n\r\n\r\n return (\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n {conflictTypes.map(x => (\r\n {translate(x.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 \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n
\r\n\r\n )\r\n}\r\n\r\n\r\n\r\nconst OrgConflictFilters = ({ form, showStatus, translate,\r\n initData,\r\n filterApp, dropDown\r\n}: OrgConflictFilterFormType) => {\r\n const conflictStatus: GenericDTO[] = dropDown.conflictStatus ?? [];\r\n const describeRequest: GenericDTO[] = dropDown.requestType ?? [];\r\n const statusDropDowns: GenericDTO[] = dropDown.status ?? [];\r\n const opportunityBuisnessGroupDropDowns: GenericDTO[] = dropDown.opportunityBuisnessGroup ?? [];\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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n )\r\n}\r\n\r\n\r\n\r\n\r\nconst Filters = ({ filterVisible, translate, onCancel, initData, setFilter, dropDowns, showStatus, filterApp }: filterType) => {\r\n const [form] = Form.useForm();\r\n\r\n useEffect(() => {\r\n if (filterVisible) {\r\n form.resetFields();\r\n }\r\n }, [initData, filterVisible])\r\n\r\n const changeFilters = () => {\r\n form.validateFields()\r\n .then((values) => {\r\n form.resetFields();\r\n setFilter(values);\r\n }).catch((info) => {\r\n console.log('Validate Failed:', info);\r\n });\r\n }\r\n\r\n const renderForm = () => {\r\n switch (filterApp) {\r\n case App.Gifts:\r\n return ()\r\n break;\r\n case App.ConflictOfInterest:\r\n return ()\r\n break;\r\n case App.OrgConflictOfInterest:\r\n return ()\r\n break;\r\n\r\n default:\r\n return (null);\r\n break;\r\n }\r\n }\r\n\r\n return (\r\n \r\n {renderForm()}\r\n\r\n \r\n )\r\n}\r\n\r\nexport default Filters;","import { EventDataNode } from \"antd/lib/tree\";\r\nimport { App } from \"./Enums\";\r\n\r\nimport { FormInstance } from 'antd';\r\nimport moment, { Moment } from \"moment\";\r\nimport { SearchProps } from \"antd/lib/input\";\r\n\r\nexport interface GenericDTO {\r\n ID: number\r\n Name: string\r\n Description: string\r\n}\r\n\r\n\r\nexport interface OrganizationDTO {\r\n ID: number\r\n Name: string\r\n}\r\n\r\n\r\n\r\nexport const EmptyOrganization: OrganizationDTO = {\r\n ID: 0,\r\n Name: \"\"\r\n}\r\nexport interface BaseDropDowns {\r\n status: GenericDTO[]\r\n organizations: GenericDTO[]\r\n}\r\n\r\nexport interface GiftDropDowns extends BaseDropDowns {\r\n currencies: string[],\r\n criticalPeriods: GenericDTO[],\r\n acceptanceStatus: GenericDTO[],\r\n giftCategoryItems: GenericDTO[],\r\n preapprovalStatus: GenericDTO[],\r\n relationshipTypes: GenericDTO[],\r\n giftCategories: GenericDTO[],\r\n}\r\n\r\nexport interface ConflictDropDowns extends BaseDropDowns {\r\n conflictTypes: GenericDTO[],\r\n personalObjectOfConflicts: GenericDTO[],\r\n organizationalObjectOfConflicts: GenericDTO[],\r\n publicOfficialRelationshipTypes: GenericDTO[],\r\n conflictStatus: GenericDTO[],\r\n}\r\n\r\nexport interface OrgConflictDropDowns extends BaseDropDowns {\r\n conflictStatus: GenericDTO[],\r\n requestType: GenericDTO[],\r\n opportunityBuisnessGroup: GenericDTO[]\r\n\r\n}\r\n\r\n\r\nexport interface TreeDTO extends EventDataNode {\r\n key: string,\r\n title: string,\r\n isLeaf: boolean,\r\n children: TreeDTO[],\r\n id: number,\r\n isActive: boolean,\r\n orgId: number\r\n}\r\n\r\nexport interface MessageDetails {\r\n FullName: string\r\n}\r\n\r\nexport interface Message {\r\n IsError: boolean,\r\n Data: MessageDetails,\r\n Message: string\r\n}\r\n\r\n\r\n//Comments Types\r\nexport interface CommentsBase {\r\n UserName: string,\r\n UpdatedOn: string,\r\n Comment: string,\r\n Roles: string[],\r\n UserPhoto: string\r\n}\r\n\r\nexport type FormattedComment = {\r\n author: string,\r\n content: JSX.Element,\r\n datetime: string\r\n}\r\nexport type CommentListType = {\r\n comments: FormattedComment[],\r\n translate(text: string): string\r\n}\r\n\r\nexport type CommentType = {\r\n comments: CommentsBase[],\r\n translate(text: string): string\r\n submitFunction(text: string): Promise\r\n}\r\n\r\nexport type EditorType = {\r\n translate(text: string): string,\r\n submitting: boolean,\r\n value: string,\r\n onChange: React.ChangeEventHandler,\r\n onSubmit: React.MouseEventHandler,\r\n\r\n}\r\n\r\n\r\nexport interface Contact {\r\n ID: number\r\n FullName: string\r\n EmailAddress: string,\r\n Business: Business,\r\n Title: string\r\n}\r\n\r\n//ProjectCard\r\nexport interface Business {\r\n ID: number,\r\n Name: string,\r\n Country: string\r\n}\r\n\r\nexport const EmptyBusiness: Business = {\r\n ID: 0,\r\n Name: \"\",\r\n Country: \"\"\r\n}\r\n\r\nexport interface BasicEmployee {\r\n ID: number,\r\n FullName: string,\r\n}\r\n\r\n\r\nexport interface Employee extends BasicEmployee {\r\n\r\n EmailAddress: string,\r\n Roles: string[],\r\n PhoneNumber: string,\r\n PreferredLanguage: string,\r\n UsersAzureID: string\r\n}\r\n\r\nexport const emptyEmployee: Employee = {\r\n ID: 0,\r\n FullName: \"\",\r\n EmailAddress: \"\",\r\n Roles: [],\r\n PhoneNumber: \"\",\r\n PreferredLanguage: \"en\",\r\n UsersAzureID: \"\"\r\n}\r\n\r\nexport interface EmployeeWithPermissions extends Employee {\r\n IsAdmin: boolean,\r\n IsLegalOfficer: boolean,\r\n IsEthicOfficer: boolean,\r\n CanViewOrgCOI: boolean,\r\n RoleID: number\r\n}\r\n\r\nexport interface Project {\r\n ID: number,\r\n ProjectName: string,\r\n ProjectNumber: string,\r\n ProjectScope: string,\r\n UltimateClient: Business | null,\r\n WSPClient: Business | null,\r\n KeyAccountManager: Employee | null,\r\n ProjectManager: Employee | null,\r\n ProjectStage: string,\r\n BuisnessGroup: string,\r\n Location: string\r\n}\r\n\r\nexport interface ProjectCardType {\r\n Project: Project,\r\n translate(text: string): string\r\n}\r\n\r\n\r\n//filters\r\n\r\n\r\n\r\nexport interface filterType {\r\n filterVisible: any,\r\n translate: any,\r\n onCancel: any,\r\n initData: any,\r\n setFilter: any,\r\n dropDowns: any,\r\n showStatus: any,\r\n coi: any,\r\n filterApp: App\r\n}\r\n\r\n\r\nexport interface filterFormType {\r\n form: FormInstance\r\n showStatus: boolean,\r\n translate(text: string): string\r\n initData: any\r\n filterApp: App\r\n dropDown: BaseDropDowns\r\n}\r\n\r\nexport interface giftFilterFormType extends filterFormType {\r\n dropDown: GiftDropDowns\r\n}\r\n\r\nexport interface ConflictFilterFormType extends filterFormType {\r\n dropDown: ConflictDropDowns\r\n}\r\n\r\n\r\nexport interface OrgConflictFilterFormType extends filterFormType {\r\n dropDown: OrgConflictDropDowns\r\n}\r\n\r\n\r\n\r\n// filter dtos\r\nexport interface pagination {\r\n current: number,\r\n pageSize: number,\r\n total: number\r\n}\r\n\r\nexport interface sorter {\r\n field: string,\r\n order: string\r\n}\r\n\r\n\r\nexport interface FilterDTO extends Object {\r\n Status: number[] | null,\r\n OfferedOn: [Moment, Moment] | null,\r\n CreatedOn: [Moment, Moment] | null,\r\n Employee: string | null,\r\n BuisnessName: string | null,\r\n BuisnessCountry: string | null,\r\n PublicOfficialName: string | null,\r\n SelectedIDs: number[] | null,\r\n SelectedColumns: string[] | null,\r\n Id: number\r\n}\r\n\r\nexport const EmptyFilter: FilterDTO = {\r\n Status: null,\r\n OfferedOn: null,\r\n CreatedOn: null,\r\n Employee: null,\r\n BuisnessName: null,\r\n BuisnessCountry: null,\r\n PublicOfficialName: null,\r\n SelectedIDs: null,\r\n SelectedColumns: null,\r\n Id: 0\r\n}\r\nexport interface ActionReturnType {\r\n Data: ActionsDTO[],\r\n Count: number\r\n}\r\n\r\nexport interface ActionReturnTypeWithType extends ActionReturnType {\r\n Type: string,\r\n key: string\r\n}\r\n\r\nexport interface SearchReturnType {\r\n Data: ActionReturnTypeWithType[],\r\n Count: number,\r\n}\r\nexport interface ActionsDTO extends SearchProps {\r\n ID: number,\r\n key: number,\r\n Name: string,\r\n Description: string,\r\n StatusName: string,\r\n ContactName: string,\r\n OriginalValue: number,\r\n ConvertedValue: number,\r\n Currency: string,\r\n DateRecieved: Date,\r\n CreatedOn: Date,\r\n Employee: Employee,\r\n OnBehalfOf: Employee,\r\n Region: string,\r\n BusinessName: string,\r\n ProjectName: string,\r\n ActionType: number,\r\n Given: boolean,\r\n IsPublicOffical: boolean,\r\n PublicOfficials: Contact[]\r\n}\r\n\r\n\r\nexport interface GiftFilterDTO extends FilterDTO {\r\n CriticalPeriod: number[]\r\n AcceptanceStatus: number[]\r\n GiftCategoryItems: number[]\r\n PreapprovalStatus: number[]\r\n Priorities: number[]\r\n RelationshipTypes: number[]\r\n Currencies: string[]\r\n GivenRecieved: number[]\r\n PublicOfficial: number[]\r\n Region: number[]\r\n ExpenseReportNumber: string,\r\n Type: number[]\r\n}\r\n\r\nexport interface ConflictFilterDTO extends FilterDTO {\r\n Type: number[],\r\n PersonalObjectOfConflicts: number[],\r\n OrganizationalObjectOfConflicts: number[],\r\n PublicOfficialName: string,\r\n PublicOfficialRelationshipTypes: number[],\r\n ConflictStatus: number[],\r\n Region: number[],\r\n Truthful: number[],\r\n CompliesWithPolicy: number[]\r\n}\r\n\r\nexport interface OrgConflictFilterDTO extends FilterDTO {\r\n ConflictStatus: number[],\r\n RequestType: number[],\r\n Region: number[],\r\n Truthful: number[],\r\n CompliesWithPolicy: number[],\r\n ConflictingProject: number[],\r\n ProjectName: string,\r\n ProjectNumber: string,\r\n ConflictingProjectName: string,\r\n ConflictingProjectNumber: string,\r\n ProgramOfWorks: string,\r\n ProjectManager: string,\r\n WSPClient: string,\r\n UltimateClient: string,\r\n BusinessGroup: number[]\r\n}\r\n\r\n\r\n// rule\r\n\r\nexport interface Rule {\r\n RuleID: number,\r\n key: number,\r\n Name: string,\r\n Given: boolean,\r\n RuleType: number,\r\n GiftCategories: number[],\r\n ParameterCurrency: number,\r\n ParameterValue: string,\r\n RulePriority: number,\r\n RegionIDs: number[],\r\n RegionNames: string[]\r\n}\r\n\r\nexport interface RuleDropdowns {\r\n currencies: GenericDTO[],\r\n publicOfficals: GenericDTO[],\r\n giftCategories: GenericDTO[],\r\n ruleTypes: GenericDTO[],\r\n publicOfficialRelationshipTypes: GenericDTO[],\r\n organizations: OrganizationDTO[]\r\n}\r\n\r\n\r\nexport interface IChartType {\r\n name: string,\r\n y: number,\r\n count?: number\r\n}\r\n\r\n\r\nexport interface IChartWrapper {\r\n type?: string,\r\n data: IChartType[]\r\n}\r\n//Gifts\r\n\r\n\r\nexport interface Organization {\r\n Name: string\r\n}\r\n\r\n\r\nexport interface Event {\r\n ID: number,\r\n EventType: string,\r\n AttendeesCount: number | null,\r\n Description: string,\r\n EventDate: Date,\r\n EventDateString: string,\r\n CreatedOn: Date,\r\n UpdatedOn: Date,\r\n CreatedBy: Employee,\r\n UpdatedBy: Employee\r\n}\r\n\r\n\r\n\r\nexport interface FileDTO {\r\n ID: number,\r\n Name: string,\r\n CreatedOn: string,\r\n UpdatedOn: string,\r\n}\r\n\r\nexport interface GiftFileDTO extends FileDTO {\r\n Private: boolean,\r\n}\r\n\r\nexport interface ConflictOfInterestFileDTO extends FileDTO {\r\n Private: boolean,\r\n}\r\n\r\nexport interface OrgConflictOfInterestFileDTO extends FileDTO {\r\n Private: boolean,\r\n}\r\n\r\nexport interface RuleHistoryDTO {\r\n ID: number,\r\n key: number,\r\n GiftID: number,\r\n RuleID: number,\r\n Status: string,\r\n StatusID: number,\r\n Name: string,\r\n Comment: string,\r\n CreatedOn: Date,\r\n UpdatedOn: Date,\r\n}\r\nexport interface AuditDetailsDTO {\r\n ID: number,\r\n ColumnChanged: string,\r\n OriginalValueDisplay: string,\r\n NewValueDisplay: string,\r\n ChangeTypeDisplay: string,\r\n\r\n ChangeAmount: null | number\r\n}\r\nexport interface AuditDTO {\r\n ID: number,\r\n CreatedData: Date,\r\n User: Employee,\r\n GiftID: number,\r\n AuditDetails: AuditDetailsDTO[]\r\n}\r\nexport interface LineItemDTO {\r\n ID: number,\r\n Contact: Contact,\r\n Currency: string,\r\n Amount: number\r\n}\r\n\r\nexport interface Gift {\r\n ID: number\r\n Name: string\r\n Description: string\r\n Status: number,\r\n StatusName: string,\r\n OriginalValue: number,\r\n ApprovedValue: number,\r\n BusinessID: null | number,\r\n Business: Business | null,\r\n BusinessName: string,\r\n ContactID: null | number,\r\n Contact: Contact | null,\r\n Currency: string,\r\n OriginalAmount: string,\r\n ApprovedAmount: string,\r\n CreatedOn: Date | null,\r\n UpdatedOn: Date | null,\r\n CreatedBy: Employee | null,\r\n UpdatedBy: Employee | null,\r\n IsGiven: boolean,\r\n OrganizationID: null | number,\r\n Organization: Organization | null,\r\n LocationID: number,\r\n EmployeeID: null | number\r\n Employee: Employee | null,\r\n ExpenseReportNumber: string,\r\n BaseCurrencyValue: null | number\r\n GiftCategoryID: null | number,\r\n GiftCategoryName: string,\r\n IsAssociatedWithEvent: boolean | null,\r\n EventID: null | number,\r\n Event: Event | null,\r\n AdditionalComments: string\r\n ReviewComments: string\r\n GiftCategoryItemID: null | number,\r\n GiftCategoryItem: GenericDTO | null,\r\n RelationshipTypeID: null | number,\r\n RelationshipTypeName: string,\r\n CriticalPeriodID: null | number,\r\n CriticalPeriodName: string,\r\n ArePublicOfficials: boolean | null,\r\n IsDuringCriticalPeriod: boolean | null,\r\n AcceptanceStatusID: null | number,\r\n AcceptanceStatusName: string,\r\n ReasonForDecline: string,\r\n OtherEmployeesInvited: boolean | null,\r\n PreapprovalStatusID: null | number,\r\n PreapprovalStatusName: string,\r\n CompliesWithPolicy: boolean | null,\r\n OfferedOn: Date | null,\r\n Contacts: Contact[]\r\n GiftTypes: GenericDTO[]\r\n Priorities: GenericDTO[]\r\n OtherGiftCategory: string,\r\n OtherRelationshipType: string,\r\n OtherCriticalPeriod: string,\r\n OtherEmployeesInvitedNames: string,\r\n BusinessPurpose: string,\r\n Files: GiftFileDTO[],\r\n Comments: CommentsBase[],\r\n RuleHistory: RuleHistoryDTO[],\r\n LineItems: LineItemDTO[],\r\n AuditHistory: AuditDTO[],\r\n IsOnBehalfOf: boolean,\r\n ConvertedValue: number,\r\n CanDelete: boolean,\r\n ActionType: number,\r\n}\r\n\r\n\r\nexport const GiftEmpty: Gift = {\r\n ID: 0,\r\n Name: \"\",\r\n Description: \"\",\r\n Status: 0,\r\n StatusName: \"\",\r\n OriginalValue: 0,\r\n ApprovedValue: 0,\r\n BusinessID: 0,\r\n Business: null,\r\n BusinessName: \"\",\r\n ContactID: 0,\r\n Contact: null,\r\n Currency: \"\",\r\n OriginalAmount: \"\",\r\n ApprovedAmount: \"\",\r\n CreatedOn: new Date(),\r\n UpdatedOn: new Date(),\r\n CreatedBy: null,\r\n UpdatedBy: null,\r\n IsGiven: false,\r\n OrganizationID: 0,\r\n Organization: null,\r\n LocationID: 0,\r\n EmployeeID: 0,\r\n Employee: null,\r\n ExpenseReportNumber: \"\",\r\n BaseCurrencyValue: 0,\r\n GiftCategoryID: 0,\r\n GiftCategoryName: \"\",\r\n IsAssociatedWithEvent: false,\r\n EventID: 0,\r\n Event: null,\r\n AdditionalComments: \"\",\r\n ReviewComments: \"\",\r\n GiftCategoryItemID: 0,\r\n GiftCategoryItem: null,\r\n RelationshipTypeID: 0,\r\n RelationshipTypeName: \"\",\r\n CriticalPeriodID: 0,\r\n CriticalPeriodName: '',\r\n ArePublicOfficials: false,\r\n IsDuringCriticalPeriod: false,\r\n AcceptanceStatusID: 0,\r\n AcceptanceStatusName: \"\",\r\n ReasonForDecline: \"\",\r\n OtherEmployeesInvited: false,\r\n PreapprovalStatusID: 0,\r\n PreapprovalStatusName: \"\",\r\n CompliesWithPolicy: false,\r\n OfferedOn: new Date(),\r\n Contacts: [],\r\n GiftTypes: [],\r\n Priorities: [],\r\n OtherGiftCategory: \"\",\r\n OtherRelationshipType: \"\",\r\n OtherCriticalPeriod: \"\",\r\n OtherEmployeesInvitedNames: \"\",\r\n BusinessPurpose: \"\",\r\n Files: [],\r\n Comments: [],\r\n RuleHistory: [],\r\n LineItems: [],\r\n AuditHistory: [],\r\n IsOnBehalfOf: false,\r\n ConvertedValue: 0,\r\n CanDelete: false,\r\n ActionType: 0,\r\n}\r\n\r\nexport interface IConflictOfInterest {\r\n ID: number,\r\n ConflictTypeID: number,\r\n ConflictTypeName: string,\r\n PersonalObjectOfConflictID: number | null,\r\n PersonalObjectOfConflictName: string,\r\n OrganizationalObjectOfConflictID: number | null,\r\n OrganizationalObjectOfConflictName: string,\r\n PublicOfficialName: string,\r\n PublicOfficialBusinessID: number | null,\r\n PublicOfficialBusinessName: string,\r\n PublicOfficialRelationshipTypeID: number | null,\r\n PublicOfficialRelationshipTypeName: string,\r\n PublicOfficialPosition: string,\r\n Description: string,\r\n ConflictStatusID: number | null,\r\n ConflictStatusName: string,\r\n MitigationDescription: string,\r\n AdditionalComments: string,\r\n IsTruthful: boolean,\r\n PublicOfficialLeftOfficeDate: Date | null,\r\n EmployeeID: number | null,\r\n Employee: Employee,\r\n CreatedByID: number | null,\r\n CreatedBy: Employee,\r\n UpdatedByID: number | null,\r\n UpdatedBy: Employee,\r\n CreatedOn: Date | null,\r\n UpdatedOn: Date | null,\r\n RelationshipDetailWithPublicOfficial: string,\r\n OtherConflictType: string,\r\n OtherPersonalObjectOfConflict: string,\r\n OtherOrganizationalObjectOfConflict: string,\r\n CompliesWithPolicy: boolean | null,\r\n Status: number | null,\r\n StatusName: string,\r\n Files: ConflictOfInterestFileDTO[]\r\n Comments: CommentsBase[]\r\n IsOnBehalfOf: boolean,\r\n OrganizationID: number,\r\n Organization: OrganizationDTO,\r\n ReviewComments: string,\r\n ImplicatedBuisnessID: number | null,\r\n ImplicatedBuisness: Business\r\n NotifiedManager: boolean,\r\n CanDelete: boolean,\r\n ActionType: number,\r\n AuditHistory: AuditDTO[]\r\n\r\n}\r\n\r\nexport const EmptyConflictOfInterest: IConflictOfInterest = {\r\n ID: 0,\r\n ConflictTypeID: 0,\r\n ConflictTypeName: \"\",\r\n PersonalObjectOfConflictID: null,\r\n PersonalObjectOfConflictName: \"\",\r\n OrganizationalObjectOfConflictID: null,\r\n OrganizationalObjectOfConflictName: \"\",\r\n PublicOfficialName: \"\",\r\n PublicOfficialBusinessID: null,\r\n PublicOfficialBusinessName: \"\",\r\n PublicOfficialRelationshipTypeID: null,\r\n PublicOfficialRelationshipTypeName: \"\",\r\n PublicOfficialPosition: \"\",\r\n Description: \"\",\r\n ConflictStatusID: null,\r\n ConflictStatusName: \"\",\r\n MitigationDescription: \"\",\r\n AdditionalComments: \"\",\r\n IsTruthful: false,\r\n PublicOfficialLeftOfficeDate: null,\r\n EmployeeID: null,\r\n Employee: emptyEmployee,\r\n CreatedByID: null,\r\n CreatedBy: emptyEmployee,\r\n UpdatedByID: null,\r\n UpdatedBy: emptyEmployee,\r\n CreatedOn: null,\r\n UpdatedOn: null,\r\n RelationshipDetailWithPublicOfficial: \"\",\r\n OtherConflictType: \"\",\r\n OtherPersonalObjectOfConflict: \"\",\r\n OtherOrganizationalObjectOfConflict: \"\",\r\n CompliesWithPolicy: null,\r\n Status: null,\r\n StatusName: \"\",\r\n Files: [],\r\n Comments: [],\r\n IsOnBehalfOf: false,\r\n OrganizationID: 0,\r\n Organization: EmptyOrganization,\r\n ReviewComments: \"\",\r\n ImplicatedBuisnessID: null,\r\n ImplicatedBuisness: EmptyBusiness,\r\n NotifiedManager: false,\r\n CanDelete: false,\r\n ActionType: 0,\r\n AuditHistory: []\r\n}\r\n\r\nexport interface State {\r\n ID: number,\r\n Name: string,\r\n}\r\n\r\nexport const EmptyState: State = {\r\n ID: 0,\r\n Name: \"\"\r\n}\r\n\r\nexport interface IOrgConflictOfInterst {\r\n ID: number,\r\n OrganizationID: number | null,\r\n StateID: number | null,\r\n Status: number,\r\n StatusName: string,\r\n ProgramOfWorksID: number | null,\r\n WSPRoleType: number | null,\r\n WSPRoleTypeName: string,\r\n ConflictingProject: number | null,\r\n Description: string,\r\n MitigationProcess: string,\r\n AdditionalComments: string,\r\n CreatedOn: Date | null,\r\n UpdatedOn: Date | null,\r\n CreatedByID: number | null,\r\n UpdatedByID: number | null,\r\n DescribeRequestID: number | null,\r\n DescribeRequest: string,\r\n IsTruthful: boolean,\r\n AssignedAdvisorID: number | null,\r\n AssessmentResultID: number | null,\r\n AssessmentResult: string,\r\n Justification: string,\r\n ProjectID: number | null,\r\n EmployeeID: number | null,\r\n ProgramOfWork: Business,\r\n CreatedBy: Employee,\r\n UpdatedBy: Employee,\r\n AssignedTo: Employee,\r\n Employee: Employee,\r\n Organization: OrganizationDTO,\r\n StateProvince: State,\r\n ConflictingProjects: Project[],\r\n Projects: Project[]\r\n Comments: CommentsBase[],\r\n AuditHistory: AuditDTO[],\r\n Files: OrgConflictOfInterestFileDTO[],\r\n CanDelete: boolean,\r\n ActionType: number,\r\n ConflictStatus: number | null,\r\n ConflictStatusName: string,\r\n WSPRoleTypeOther: string,\r\n DescribeRequestOther: string,\r\n\r\n}\r\n\r\nexport const EmptyOrgConflictOfInterest: IOrgConflictOfInterst = {\r\n ID: 0,\r\n OrganizationID: null,\r\n StateID: null,\r\n Status: 0,\r\n StatusName: \"\",\r\n ProgramOfWorksID: null,\r\n WSPRoleType: null,\r\n WSPRoleTypeName: \"\",\r\n ConflictingProject: null,\r\n Description: \"\",\r\n MitigationProcess: \"\",\r\n AdditionalComments: \"\",\r\n CreatedOn: null,\r\n UpdatedOn: null,\r\n CreatedByID: null,\r\n UpdatedByID: null,\r\n DescribeRequestID: null,\r\n DescribeRequest: \"\",\r\n IsTruthful: false,\r\n AssignedAdvisorID: null,\r\n AssessmentResultID: null,\r\n AssessmentResult: \"\",\r\n Justification: \"\",\r\n ProjectID: null,\r\n EmployeeID: null,\r\n ProgramOfWork: EmptyBusiness,\r\n CreatedBy: emptyEmployee,\r\n UpdatedBy: emptyEmployee,\r\n AssignedTo: emptyEmployee,\r\n Employee: emptyEmployee,\r\n Organization: EmptyOrganization,\r\n StateProvince: EmptyState,\r\n ConflictingProjects: [],\r\n Projects: [],\r\n Comments: [],\r\n AuditHistory: [],\r\n Files: [],\r\n CanDelete: false,\r\n ActionType: 0,\r\n ConflictStatus: null,\r\n ConflictStatusName: \"\",\r\n WSPRoleTypeOther: \"\",\r\n DescribeRequestOther: \"\"\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\n\r\nimport {\r\n Table, Input, Button, Row, Col, Tag, Dropdown, Menu, Checkbox, Spin,\r\n} from 'antd';\r\n\r\nimport { DownOutlined } from '@ant-design/icons';\r\nimport moment, { Moment } from 'moment';\r\n\r\nimport Filters from './Filters';\r\nimport { pagination, sorter, FilterDTO, ActionReturnType, EmptyFilter, GenericDTO, ActionsDTO } from '../models/Core';\r\nimport { App } from '../models/Enums';\r\nimport { TableRowSelection } from 'antd/lib/table/interface';\r\nimport { SearchProps } from 'antd/lib/input';\r\nimport { CheckboxChangeEvent } from 'antd/lib/checkbox';\r\nconst { Search } = Input;\r\n\r\n\r\ninterface ISearchTableProps {\r\n columns: any,\r\n translate(text: string): string,\r\n pagination: pagination,\r\n userFilter: FilterDTO,\r\n dropDowns: any,\r\n updateSearchFilter(filter: FilterDTO): void,\r\n\r\n sorter: sorter,\r\n getActions(filter: FilterDTO, pagination: pagination, sorter: sorter, query: string): Promise,\r\n updatePagination(pag: pagination): void,\r\n updateSorter(sorter: sorter): void,\r\n showStatus: boolean,\r\n coi: boolean,\r\n excelFileService(filter: FilterDTO, pagination: pagination, sorter: sorter, query: string, selectedRowKeys: number[]): Promise,\r\n\r\n tableColumns: string[],\r\n visibleColumns: string[],\r\n setNewVisibleColumns(columns: string[]): void,\r\n filterApp: App\r\n}\r\n\r\nconst SearchTable = ({ columns, translate, pagination, userFilter, dropDowns, updateSearchFilter,\r\n sorter, getActions, updatePagination, updateSorter, showStatus, coi, excelFileService,\r\n tableColumns, visibleColumns, setNewVisibleColumns,\r\n filterApp }: ISearchTableProps) => {\r\n\r\n const [query, setQuery] = useState(\"\");\r\n const [gifts, setGifts] = useState([]);\r\n const [selectedRowKeys, setSelectedRowKeys] = useState([]);\r\n const [total, setTotal] = useState(0);\r\n const [localPag, setLocalPag] = useState(pagination);\r\n\r\n const [downloadingDoc, setDownloadingDoc] = useState(false);\r\n\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [columnVisible, setColumnVisible] = useState(false);\r\n const [downLoadVisible, setDownloadVisible] = useState(false);\r\n const [showFilterModal, setShowFilterModal] = useState(false);\r\n\r\n\r\n\r\n useEffect(() => {\r\n getData(userFilter, pagination, sorter, query);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (localPag !== pagination) {\r\n\r\n setLocalPag(pagination);\r\n }\r\n\r\n\r\n }, [pagination])\r\n\r\n const getData = async (localFilter: FilterDTO, localPagination: pagination, localSorter: sorter, localQuery: string) => {\r\n\r\n\r\n setLoading(true);\r\n const res = await getActions(localFilter, localPagination, localSorter, localQuery)\r\n setGifts(res.Data);\r\n setTotal(res.Count);\r\n setLocalPag({ ...localPagination, total: res.Count })\r\n updatePagination({ ...localPagination, total: res.Count })\r\n setLoading(false);\r\n\r\n }\r\n\r\n const search = () => {\r\n getData(userFilter, pagination, sorter, query);\r\n }\r\n\r\n\r\n const getExcelFile = async (localFilter: FilterDTO, localPagination: pagination, localSorter: sorter, localQuery: string, localRowSelected: number[]) => {\r\n if (excelFileService) {\r\n setLoading(true);\r\n const res = await excelFileService(localFilter, localPagination, localSorter, localQuery, localRowSelected);\r\n setLoading(false);\r\n }\r\n }\r\n\r\n const downloadFile = () => {\r\n getExcelFile(userFilter, pagination, sorter, query, selectedRowKeys);\r\n\r\n }\r\n\r\n\r\n const downloadAllFile = () => {\r\n setDownloadingDoc(true);\r\n\r\n }\r\n\r\n const awaitFileDownload = async (userFilter: FilterDTO, pagination: pagination, sorter: sorter, query: string, selectedRowKeys: number[]) => {\r\n let test = await getExcelFile(userFilter, pagination, sorter, query, selectedRowKeys);\r\n console.log(test);\r\n setDownloadingDoc(false);\r\n }\r\n\r\n useEffect(() => {\r\n if (downloadingDoc) {\r\n awaitFileDownload(userFilter, { ...pagination, current: 1, pageSize: pagination.total }, sorter, query, selectedRowKeys);\r\n }\r\n }, [downloadingDoc])\r\n\r\n const setFilter = (data: FilterDTO) => {\r\n updateSearchFilter(data);\r\n setShowFilterModal(false);\r\n getData(data, pagination, sorter, query);\r\n\r\n };\r\n\r\n const clear = () => {\r\n updateSearchFilter(EmptyFilter);\r\n setQuery('')\r\n getData(EmptyFilter, pagination, sorter, query);\r\n\r\n };\r\n\r\n const handleTableChange = async (pagination: pagination, sorter: sorter) => {\r\n setLocalPag(pagination);\r\n await updatePagination(pagination);\r\n await updateSorter(sorter);\r\n getData(userFilter, pagination, sorter, query);\r\n\r\n };\r\n\r\n\r\n const removeFilter = (key: keyof FilterDTO, index: number) => {\r\n let filterType = userFilter[key];\r\n\r\n if (filterType && key !== \"OfferedOn\" && key !== \"CreatedOn\" && Array.isArray(filterType) && filterType.length >= index) {\r\n\r\n filterType.splice(index, 1)\r\n //@ts-ignore\r\n userFilter[key] = filterType;\r\n setFilter(userFilter);\r\n }\r\n if (filterType && key === \"OfferedOn\" || key === \"CreatedOn\" || !Array.isArray(filterType)) {\r\n //@ts-ignore\r\n userFilter[key] = null;\r\n setFilter(userFilter);\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n const findNameInDropDowns = (dropDowns: GenericDTO[], ID: number) => {\r\n if (!dropDowns) {\r\n return ID\r\n }\r\n const value = dropDowns.find(x => x.ID === ID);\r\n if (value) {\r\n return value.Name\r\n }\r\n return ID\r\n }\r\n\r\n const handleOnClick = (e: CheckboxChangeEvent, column: string) => {\r\n const checked = e.target.checked;\r\n let newColumns = visibleColumns;\r\n if (checked) {\r\n newColumns = [...newColumns, column]\r\n } else {\r\n newColumns = newColumns.filter(x => x !== column)\r\n }\r\n setNewVisibleColumns(newColumns);\r\n }\r\n\r\n const handleVisibleChange = (flag: boolean) => {\r\n setColumnVisible(flag);\r\n }\r\n const menu = (\r\n \r\n {tableColumns.map(column =>\r\n \r\n handleOnClick(e, column)}>{translate(column)}\r\n \r\n )}\r\n\r\n \r\n );\r\n const handleDownloadVisibleChange = (flag: boolean) => {\r\n setDownloadVisible(flag);\r\n }\r\n const menuDownloads = (\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n );\r\n\r\n const convertTags = (key: string, value: any) => {\r\n const conflict = coi ? coi : false;\r\n let dateArray: Moment[];\r\n\r\n switch (key) {\r\n case \"Type\":\r\n value = conflict ? findNameInDropDowns(dropDowns.conflictTypes, value as number)\r\n : findNameInDropDowns(dropDowns.giftCategories, value as number)\r\n break;\r\n case \"Region\":\r\n value = findNameInDropDowns(dropDowns.organizations, value as number);\r\n\r\n break;\r\n case \"Status\":\r\n value = findNameInDropDowns(dropDowns.status, value as number);\r\n\r\n break;\r\n case \"GivenRecieved\":\r\n value = value === 1 ? \"Given\" : \"Recieved\"\r\n\r\n break;\r\n case \"OfferedOn\":\r\n dateArray = value as Moment[];\r\n value = dateArray.map(x => moment(x.toDate()).local().format(\"MMM Do, YYYY\")).join(translate(\" through \"))\r\n\r\n break;\r\n case \"CreatedOn\":\r\n dateArray = value as Moment[];\r\n\r\n value = dateArray.map(x => moment(x.toDate()).local().format(\"MMM Do, YYYY\")).join(translate(\" through \"))\r\n\r\n break;\r\n case \"CriticalPeriod\":\r\n value = findNameInDropDowns(dropDowns.criticalPeriods, value as number);\r\n\r\n break;\r\n case \"acceptanceStatus\":\r\n value = findNameInDropDowns(dropDowns.acceptanceStatus, value as number);\r\n\r\n break;\r\n\r\n case \"giftCategoryItems\":\r\n value = findNameInDropDowns(dropDowns.giftCategoryItems, value as number);\r\n\r\n break;\r\n\r\n case \"preapprovalStatus\":\r\n value = findNameInDropDowns(dropDowns.preapprovalStatus, value as number)\r\n\r\n break;\r\n\r\n case \"relationshipTypes\":\r\n value = findNameInDropDowns(dropDowns.relationshipTypes, value as number);\r\n\r\n break;\r\n\r\n case \"PersonalObjectOfConflicts\":\r\n value = findNameInDropDowns(dropDowns.personalObjectOfConflicts, value as number);\r\n\r\n break;\r\n case \"OrganizationalObjectOfConflicts\":\r\n value = findNameInDropDowns(dropDowns.organizationalObjectOfConflicts, value as number);\r\n\r\n break;\r\n case \"PublicOfficialRelationshipTypes\":\r\n value = findNameInDropDowns(dropDowns.publicOfficialRelationshipTypes, value as number);\r\n\r\n break;\r\n case \"ConflictStatus\":\r\n value = findNameInDropDowns(dropDowns.conflictStatus, value as number);\r\n\r\n break;\r\n\r\n case \"ConflictingProject\":\r\n switch (value as number) {\r\n case 1:\r\n value = \"Yes\"\r\n break;\r\n case 2:\r\n value = \"No\"\r\n break;\r\n case 3:\r\n value = \"DontKnow\"\r\n break;\r\n default:\r\n break;\r\n }\r\n break;\r\n case \"RequestType\":\r\n value = findNameInDropDowns(dropDowns.requestType, value as number);\r\n\r\n break;\r\n case \"Truthful\":\r\n value = value === 1 ? \"Yes\" : \"No\"\r\n\r\n break;\r\n case \"CompliesWithPolicy\":\r\n value = value === 1 ? \"Yes\" : \"No\"\r\n\r\n break;\r\n case \"PublicOfficial\":\r\n value = value === 1 ? \"Yes\" : \"No\"\r\n\r\n break;\r\n\r\n\r\n\r\n default:\r\n break;\r\n }\r\n return value;\r\n\r\n }\r\n\r\n\r\n const tags = () => {\r\n return Object.keys(userFilter).map(filter => {\r\n let filterKey = filter as keyof FilterDTO;\r\n if (userFilter[filterKey] && filterKey) {\r\n if (filter === \"OfferedOn\" || filter === \"CreatedOn\" || !Array.isArray(userFilter[filterKey])) {\r\n const items = userFilter[filterKey]\r\n return { e.preventDefault(); removeFilter(filterKey, 0) }}>{translate(filter)} : {translate(convertTags(filter, items))}\r\n }\r\n\r\n\r\n return (userFilter[filterKey] as any[]).map((items, index: number) => { e.preventDefault(); removeFilter(filterKey, index) }}>{translate(filter)} : {translate(convertTags(filter, items))})\r\n }\r\n return null\r\n })\r\n }\r\n const onSelectChange = (ids: number[]) => {\r\n setSelectedRowKeys([...ids])\r\n };\r\n\r\n const rowSelection: TableRowSelection = {\r\n selectedRowKeys,\r\n onChange: (key) => onSelectChange(key.map(x => x as number)),\r\n selections: [\r\n Table.SELECTION_ALL,\r\n Table.SELECTION_NONE,\r\n\r\n ],\r\n };\r\n\r\n const searchID = (query: string) => {\r\n let number = Number.parseInt(query);\r\n if (number && number > 0) {\r\n setFilter({ ...userFilter, Id: number })\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n searchID(searchValue)} />\r\n\r\n \r\n \r\n\r\n
setShowFilterModal(true)}>\r\n
\r\n {Object.keys(userFilter).length == 0\r\n ? {translate(\"CurrentFilters\")}\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 `${total} ${translate(\"items\")}`,\r\n showSizeChanger: true,\r\n pageSizeOptions: ['10', '20', '50', '100', '500', '1000']\r\n }}\r\n\r\n onChange={(pag, _, sor) => handleTableChange(pag as pagination, sor as sorter)}\r\n loading={loading}\r\n />\r\n\r\n setShowFilterModal(false)}\r\n setFilter={setFilter}\r\n initData={userFilter}\r\n dropDowns={dropDowns}\r\n showStatus={showStatus}\r\n coi={coi}\r\n filterApp={filterApp}\r\n />\r\n \r\n\r\n )\r\n}\r\n\r\nexport default SearchTable;","\r\nimport axios from './Api';\r\nimport ApiConfig from '../config/ApiConfig';\r\n\r\nconst BaseService = {\r\n base: 'en',\r\n NAME: 'BASE SERVICE',\r\n setCurrentLanguage: async function (lc: string) {\r\n return new Promise((res, rej) => {\r\n try {\r\n res(localStorage.setItem(\"_geh_lc\", lc))\r\n } catch (error) {\r\n console.log(\"An error occured setting language\", error);\r\n rej(error);\r\n }\r\n })\r\n },\r\n getCurrentLanguage: async function () {\r\n return new Promise((res, rej) => {\r\n try {\r\n const lang = localStorage.getItem(\"_geh_lc\");\r\n if (lang) {\r\n res(lang)\r\n }\r\n res(this.base)\r\n } catch (error) {\r\n console.log(\"An error occured getting language\", error);\r\n res(this.base);\r\n }\r\n })\r\n },\r\n getLanguages: async function () {\r\n try {\r\n let lang = await this.getCurrentLanguage();\r\n\r\n\r\n const response = await axios.get(`${ApiConfig.baseURL}/api/dropdown/Languages`, {\r\n headers: {\r\n \"Accept-Language\": lang\r\n }\r\n });\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n getHubNavResources: async function () {\r\n try {\r\n let lang = await this.getCurrentLanguage();\r\n\r\n const response = await axios.get(`${ApiConfig.baseURL}/api/dropdown/HubNav`, {\r\n headers: {\r\n \"Accept-Language\": lang\r\n }\r\n });\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n getHubAdminResources: async function () {\r\n try {\r\n let lang = await this.getCurrentLanguage();\r\n const response = await axios.get(`${ApiConfig.baseURL}/api/dropdown/HubAdmin`, {\r\n headers: {\r\n \"Accept-Language\": lang\r\n }\r\n });\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n\r\n getDashboardResources: async function () {\r\n try {\r\n let lang = await this.getCurrentLanguage();\r\n const response = await axios.get(`${ApiConfig.baseURL}/api/dropdown/HubDashboard`, {\r\n headers: {\r\n \"Accept-Language\": lang\r\n }\r\n });\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n\r\n getActionResources: async function () {\r\n try {\r\n let lang = await this.getCurrentLanguage();\r\n const response = await axios.get(`${ApiConfig.baseURL}/api/dropdown/HubActions`, {\r\n headers: {\r\n \"Accept-Language\": lang\r\n }\r\n });\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n getHubMeta: async function () {\r\n try {\r\n\r\n const response = await axios.get(`${ApiConfig.baseURL}/api/Config/GetHubMeta`, );\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n\r\n getCoiDetailsResources: async function () {\r\n try {\r\n let lang = await this.getCurrentLanguage();\r\n\r\n const response = await axios.get(`${ApiConfig.baseURL}/api/dropdown/HubCoiDetails`, {\r\n headers: {\r\n \"Accept-Language\": lang\r\n }\r\n });\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n getOrgCoiDetailsResources: async function () {\r\n try {\r\n let lang = await this.getCurrentLanguage();\r\n const response = await axios.get(`${ApiConfig.baseURL}/api/dropdown/HubOrgCoiDetails`, {\r\n headers: {\r\n \"Accept-Language\": lang\r\n }\r\n });\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n getGiftDetailResources: async function () {\r\n try {\r\n let lang = await this.getCurrentLanguage();\r\n const response = await axios.get(`${ApiConfig.baseURL}/api/dropdown/HubGiftDetails`, {\r\n headers: {\r\n \"Accept-Language\": lang\r\n }\r\n });\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n\r\n\r\n\r\n\r\n}\r\n\r\nexport default BaseService;","import axios from './Api';\r\nimport ApiConfig from '../config/ApiConfig';\r\nimport qs from 'qs';\r\nimport mime from 'mime-types';\r\nimport api from './Api';\r\n\r\n\r\nconst SearchService = {\r\n\r\n\r\n getActionsSearch: async function (query: string) {\r\n try {\r\n\r\n const response = await api.get(`${ApiConfig.baseURL}/api/Search`, {\r\n params: {\r\n searchQuery: query,\r\n },\r\n paramsSerializer: params => {\r\n return qs.stringify(params)\r\n }\r\n });\r\n return response.data;\r\n } catch (e) {\r\n console.log(e);\r\n return [];\r\n }\r\n },\r\n\r\n};\r\n\r\nexport default SearchService;","import axios from './Api';\r\nimport ApiConfig from '../config/ApiConfig';\r\nimport { RuleDropdowns } from '../models/Core';\r\n\r\nconst DropdownService = {\r\n NAME: \"DROPDOWN SERVICE\",\r\n getResources: async function () {\r\n try {\r\n }\r\n catch (e) {\r\n console.error(e);\r\n }\r\n },\r\n getRequestDropdowns: async function () {\r\n try {\r\n const response = await axios.get(`${ApiConfig.baseURL}/api/Dropdown/RequestDropdowns`);\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n }\r\n ,\r\n getConflictDropdowns: async function () {\r\n try {\r\n const response = await axios.get(`${ApiConfig.baseURL}/api/Dropdown/conflictdropdowns`);\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n getOrgConflictDropdowns: async function () {\r\n try {\r\n const response = await axios.get(`${ApiConfig.baseURL}/api/Dropdown/orgconflictdropdowns`);\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n\r\n getCOIAssessmentResult: async function () {\r\n try {\r\n const response = await axios.get(`${ApiConfig.baseURL}/api/Dropdown/COIAssessmentResult`);\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n getRuleDropdowns: async function () {\r\n try {\r\n const response = await axios.get(`${ApiConfig.baseURL}/api/Dropdown/ruleDropDowns`);\r\n return response.data as RuleDropdowns;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n return {} as RuleDropdowns\r\n }\r\n }\r\n};\r\n\r\nexport default DropdownService;","import React, { Component } from 'react'\r\nimport {\r\n Table, Spin, Tag, Input, Button, Row, Col, Tabs, Select, Form, Menu, Dropdown,\r\n Modal, DatePicker\r\n} from 'antd';\r\n\r\nimport GiftService from '../services/GiftService';\r\nimport ConflictOfInterestService from '../services/ConflictOfInterestService';\r\nimport OrgCOIService from '../services/OrgCOIService';\r\nimport currencyFormatter from 'currency-formatter';\r\nimport _ from 'lodash';\r\nimport moment from 'moment';\r\nimport EmployeeService from '../services/EmployeeService';\r\nimport { DownOutlined } from '@ant-design/icons';\r\nimport Filters from './Filters';\r\nimport SearchTable from './Table';\r\nimport BaseService from '../services/BaseService';\r\nimport SearchService from '../services/SearchService';\r\nimport DropdownService from '../services/DropdownService';\r\nimport { App } from '../models/Enums';\r\nimport { Link } from 'react-router-dom';\r\nimport { EmployeeWithPermissions, FilterDTO, sorter, pagination, GiftFilterDTO, ConflictFilterDTO, OrgConflictFilterDTO, Employee, ActionReturnTypeWithType, ActionsDTO, Contact, ActionReturnType, SearchReturnType } from '../models/Core';\r\nimport { History } from 'history';\r\n\r\nconst { TabPane } = Tabs;\r\nconst { Search } = Input;\r\n\r\n\r\nconst nestedRow = (data: ActionReturnTypeWithType, translate: (text: string) => string, moneyFormat: (amount: number, currency: string) => string) => {\r\n\r\n let columnKeys: any;\r\n\r\n switch (data.Type) {\r\n case \"Gifts\":\r\n columnKeys = GiftColumns(translate, moneyFormat, false);\r\n break;\r\n case \"ConflictsOfInterest\":\r\n columnKeys = CoiColumns(translate, false);\r\n break;\r\n case \"Org COI\":\r\n columnKeys = OrgCOIColumns(translate, false);\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return
;\r\n\r\n\r\n}\r\n\r\n\r\nconst GiftColumns = (translate: (text: string) => string, moneyFormat: (amount: number, currency: string) => string, serverSort: boolean) => [\r\n {\r\n title: translate('ID'),\r\n dataIndex: 'ID',\r\n key: 'ID',\r\n sorter: serverSort ? true : (a: ActionsDTO, b: ActionsDTO) => a.ID - b.ID,\r\n render: (id: number) => {\r\n return {id}\r\n }\r\n },\r\n {\r\n title: translate('Name'),\r\n dataIndex: 'Name',\r\n key: 'Name',\r\n sorter: serverSort ? true : (a: ActionsDTO, b: ActionsDTO) => a.Name.localeCompare(b.Name),\r\n sortDirections: ['ascend', 'descend'],\r\n },\r\n {\r\n title: translate('Description'),\r\n dataIndex: 'Description',\r\n key: 'Description',\r\n sorter: serverSort ? true : (a: ActionsDTO, b: ActionsDTO) => a.Description.length - b.Description.length,\r\n sortDirections: ['ascend', 'descend'],\r\n },\r\n {\r\n title: translate('StatusName'),\r\n dataIndex: 'StatusName',\r\n key: 'StatusName',\r\n sorter: serverSort ? true : (a: ActionsDTO, b: ActionsDTO) => a.StatusName.localeCompare(b.StatusName),\r\n sortDirections: ['ascend', 'descend'],\r\n render: (text: string) => {\r\n switch (text) {\r\n case 'Submitted':\r\n return {translate(text)};\r\n case 'Approved':\r\n return {translate(text)};\r\n case 'Rejected':\r\n return {translate(text)};\r\n case 'InReview':\r\n return {translate(text)};\r\n case 'UnderReview':\r\n return {translate(text)};\r\n\r\n default:\r\n return {translate(text)};\r\n }\r\n }\r\n },\r\n {\r\n title: translate('DateRecieved'),\r\n dataIndex: 'DateRecieved',\r\n key: 'DateRecieved',\r\n sorter: serverSort ? true : (a: ActionsDTO, b: ActionsDTO) => new Date(b.DateRecieved).getTime() - new Date(a.DateRecieved).getTime(),\r\n render: (DateRecieved: Date) => {\r\n return {moment(DateRecieved).local().format(\"MMM Do, YYYY\")}\r\n }\r\n },\r\n\r\n {\r\n title: translate('CreatedOn'),\r\n dataIndex: 'CreatedOn',\r\n key: 'CreatedOn',\r\n sorter: serverSort ? true : (a: ActionsDTO, b: ActionsDTO) => new Date(b.CreatedOn).getTime() - new Date(a.CreatedOn).getTime(),\r\n render: (CreatedOn: Date) => {\r\n return {moment(CreatedOn).local().format(\"MMM Do, YYYY\")}\r\n }\r\n },\r\n\r\n {\r\n title: translate('Employee'),\r\n dataIndex: ['Employee'],\r\n key: 'Employee',\r\n sorter: serverSort ? true : (a: ActionsDTO, b: ActionsDTO) => a.Employee && b.Employee && a.Employee.FullName && b.Employee.FullName && b.Employee.FullName.localeCompare(a.Employee.FullName),\r\n render: (Employee: Employee, row: ActionsDTO) => {\r\n\r\n return {row.OnBehalfOf ? `${row.OnBehalfOf.FullName} on behalf of ` : ''}{Employee ? Employee.FullName : ''}\r\n }\r\n },\r\n {\r\n title: translate('EmployeeEmail'),\r\n dataIndex: ['Employee'],\r\n key: 'EmployeeEmail',\r\n sorter: serverSort ? true : (a: ActionsDTO, b: ActionsDTO) => a.Employee && b.Employee && a.Employee.EmailAddress && b.Employee.EmailAddress && b.Employee.EmailAddress.localeCompare(a.Employee.EmailAddress),\r\n render: (Employee: Employee, row: ActionsDTO) => {\r\n\r\n return {row.OnBehalfOf ? `${row.OnBehalfOf.EmailAddress} on behalf of ` : ''}{Employee ? Employee.EmailAddress : ''}\r\n }\r\n },\r\n {\r\n title: translate('Region'),\r\n dataIndex: 'Region',\r\n key: 'Region',\r\n sorter: serverSort ? true : (a: ActionsDTO, b: ActionsDTO) => a.Region && b.Region && a.Region.localeCompare(b.Region),\r\n },\r\n {\r\n title: translate('Given/Received'),\r\n dataIndex: 'Given',\r\n key: 'Given/Received',\r\n render: (Given: boolean) => {\r\n return {Given ? \"Given\" : \"Received\"}\r\n }\r\n },\r\n {\r\n title: translate('PublicOfficial'),\r\n dataIndex: 'PublicOfficials',\r\n key: 'PublicOfficial',\r\n render: (PublicOfficials: Contact[]) => {\r\n return {PublicOfficials && PublicOfficials.length > 0 ? PublicOfficials[0].FullName : \"\"}\r\n }\r\n },\r\n {\r\n title: translate('IsPublicOffical'),\r\n dataIndex: 'IsPublicOffical',\r\n key: 'IsPublicOffical',\r\n render: (PublicOfficials: boolean) => {\r\n return {translate(PublicOfficials ? \"Yes\": \"No\")}\r\n }\r\n },\r\n {\r\n title: translate('Amount'),\r\n dataIndex: 'OriginalValue',\r\n key: 'Amount',\r\n sorter: serverSort ? true : (a: ActionsDTO, b: ActionsDTO) => a.OriginalValue - b.OriginalValue,\r\n render: (OriginalValue: number, row: ActionsDTO) => {\r\n return {moneyFormat(OriginalValue, row.Currency)}\r\n }\r\n },\r\n {\r\n title: translate('ConvertedValue'),\r\n dataIndex: 'ConvertedValue',\r\n key: 'ConvertedValue',\r\n sorter: serverSort ? true : (a: ActionsDTO, b: ActionsDTO) => a.ConvertedValue - b.ConvertedValue,\r\n render: (ConvertedValue: number) => {\r\n return {moneyFormat(ConvertedValue, \"CAD\")}\r\n }\r\n }\r\n];\r\nconst CoiColumns = (translate: (text: string) => string, serverSort: boolean) => [\r\n {\r\n title: translate('ID'),\r\n dataIndex: 'ID',\r\n key: 'ID',\r\n sorter: serverSort ? true : (a: ActionsDTO, b: ActionsDTO) => a.ID - b.ID,\r\n sortDirections: ['ascend', 'descend'],\r\n render: (id: number) => {\r\n return {id}\r\n }\r\n },\r\n\r\n {\r\n title: translate('Description'),\r\n dataIndex: 'Description',\r\n key: 'Description',\r\n sorter: serverSort ? true : (a: ActionsDTO, b: ActionsDTO) => a.Description.length - b.Description.length,\r\n sortDirections: ['ascend', 'descend'],\r\n },\r\n {\r\n title: translate('StatusName'),\r\n dataIndex: 'StatusName',\r\n key: 'StatusName',\r\n sorter: serverSort ? true : (a: ActionsDTO, b: ActionsDTO) => a.StatusName.localeCompare(b.StatusName),\r\n sortDirections: ['ascend', 'descend'],\r\n render: (text: string) => {\r\n switch (text) {\r\n case 'Submitted':\r\n return {translate(text)};\r\n case 'Approved':\r\n return {translate(text)};\r\n case 'Rejected':\r\n return {translate(text)};\r\n case 'InReview':\r\n return {translate(text)};\r\n case 'UnderReview':\r\n return {translate(text)};\r\n default:\r\n return {translate(text)};\r\n }\r\n }\r\n },\r\n {\r\n title: translate('CreatedOn'),\r\n dataIndex: 'DateRecieved',\r\n key: 'DateRecieved',\r\n sorter: serverSort ? true : (a: ActionsDTO, b: ActionsDTO) => new Date(b.DateRecieved).getTime() - new Date(a.DateRecieved).getTime(),\r\n sortDirections: ['ascend', 'descend'],\r\n render: (DateRecieved: Date) => {\r\n return {moment(DateRecieved).local().format(\"MMM Do, YYYY\")}\r\n }\r\n },\r\n\r\n {\r\n title: translate('Employee'),\r\n dataIndex: ['Employee'],\r\n key: 'Employee',\r\n sorter: serverSort ? true : (a: ActionsDTO, b: ActionsDTO) => a.Employee && b.Employee && a.Employee.FullName && b.Employee.FullName && b.Employee.FullName.localeCompare(a.Employee.FullName),\r\n sortDirections: ['ascend', 'descend'],\r\n render: (Employee: Employee, row: ActionsDTO) => {\r\n\r\n return {row.OnBehalfOf ? `${row.OnBehalfOf.FullName} on behalf of ` : ''}{Employee ? Employee.FullName : ''}\r\n }\r\n },\r\n {\r\n title: translate('EmployeeEmail'),\r\n dataIndex: ['Employee'],\r\n key: 'EmployeeEmail',\r\n sorter: serverSort ? true : (a: ActionsDTO, b: ActionsDTO) => a.Employee && b.Employee && a.Employee.EmailAddress && b.Employee.EmailAddress && b.Employee.EmailAddress.localeCompare(a.Employee.EmailAddress),\r\n render: (Employee: Employee, row: ActionsDTO) => {\r\n\r\n return {row.OnBehalfOf ? `${row.OnBehalfOf.EmailAddress} on behalf of ` : ''}{Employee ? Employee.EmailAddress : ''}\r\n }\r\n },\r\n {\r\n title: translate('Region'),\r\n dataIndex: 'Region',\r\n key: 'Region',\r\n sorter: serverSort ? true : (a: ActionsDTO, b: ActionsDTO) => a.Region && b.Region && a.Region.localeCompare(b.Region),\r\n sortDirections: ['ascend', 'descend'],\r\n },\r\n \r\n\r\n\r\n];\r\nconst OrgCOIColumns = (translate: (text: string) => string, serverSort: boolean) => [\r\n {\r\n title: translate('ID'),\r\n dataIndex: 'ID',\r\n key: 'ID',\r\n sorter: serverSort ? true : (a: ActionsDTO, b: ActionsDTO) => a.ID - b.ID,\r\n sortDirections: ['ascend', 'descend'],\r\n render: (id: number) => {\r\n return {id}\r\n }\r\n },\r\n {\r\n title: translate('Project'),\r\n dataIndex: 'ProjectName',\r\n key: 'ProjectName',\r\n sorter: serverSort ? true : (a: ActionsDTO, b: ActionsDTO) => a.ProjectName.localeCompare(b.ProjectName),\r\n sortDirections: ['ascend', 'descend']\r\n },\r\n {\r\n title: translate('Description'),\r\n dataIndex: 'Description',\r\n key: 'Description',\r\n sorter: serverSort ? true : (a: ActionsDTO, b: ActionsDTO) => a.Description.length - b.Description.length,\r\n sortDirections: ['ascend', 'descend'],\r\n },\r\n {\r\n title: translate('StatusName'),\r\n dataIndex: 'StatusName',\r\n key: 'StatusName',\r\n sorter: serverSort ? true : (a: ActionsDTO, b: ActionsDTO) => a.StatusName.localeCompare(b.StatusName),\r\n sortDirections: ['ascend', 'descend'],\r\n render: (text: string) => {\r\n switch (text) {\r\n case 'Submitted':\r\n return {translate(text)};\r\n case 'Approved':\r\n return {translate(text)};\r\n case 'Rejected':\r\n return {translate(text)};\r\n case 'InReview':\r\n return {translate(`org_${text}`)};\r\n case 'UnderReview':\r\n return {translate(`org_${text}`)};\r\n case 'Monitor':\r\n return {translate(text)};\r\n default:\r\n return {translate(text)};\r\n }\r\n }\r\n }, {\r\n title: translate('CreatedOn'),\r\n dataIndex: 'DateRecieved',\r\n key: 'DateRecieved',\r\n sorter: serverSort ? true : (a: ActionsDTO, b: ActionsDTO) => new Date(b.DateRecieved).getTime() - new Date(a.DateRecieved).getTime(),\r\n sortDirections: ['ascend', 'descend'],\r\n render: (DateRecieved: Date) => {\r\n return {moment(DateRecieved).local().format(\"MMM Do, YYYY\")}\r\n }\r\n },\r\n\r\n {\r\n title: translate('Employee'),\r\n dataIndex: ['Employee'],\r\n key: 'Employee',\r\n sorter: serverSort ? true : (a: ActionsDTO, b: ActionsDTO) => a.Employee && b.Employee && a.Employee.FullName && b.Employee.FullName && b.Employee.FullName.localeCompare(a.Employee.FullName),\r\n sortDirections: ['ascend', 'descend'],\r\n render: (Employee: Employee, row: ActionsDTO) => {\r\n\r\n return {row.OnBehalfOf ? `${row.OnBehalfOf.FullName} on behalf of ` : ''}{Employee ? Employee.FullName : ''}\r\n }\r\n },\r\n {\r\n title: translate('EmployeeEmail'),\r\n dataIndex: ['Employee'],\r\n key: 'EmployeeEmail',\r\n sorter: serverSort ? true : (a: ActionsDTO, b: ActionsDTO) => a.Employee && b.Employee && a.Employee.EmailAddress && b.Employee.EmailAddress && b.Employee.EmailAddress.localeCompare(a.Employee.EmailAddress),\r\n render: (Employee: Employee, row: ActionsDTO) => {\r\n\r\n return {row.OnBehalfOf ? `${row.OnBehalfOf.EmailAddress} on behalf of ` : ''}{Employee ? Employee.EmailAddress : ''}\r\n }\r\n },\r\n\r\n {\r\n title: translate('Region'),\r\n dataIndex: 'Region',\r\n key: 'Region',\r\n sorter: serverSort ? true : (a: ActionsDTO, b: ActionsDTO) => a.Region && b.Region && a.Region.localeCompare(b.Region),\r\n sortDirections: ['ascend', 'descend'],\r\n },\r\n\r\n\r\n];\r\n\r\n\r\n\r\n\r\ninterface IActionsProps {\r\n languageCode: string,\r\n history: History,\r\n user: EmployeeWithPermissions,\r\n currentTab: string,\r\n textSearchQuery: string,\r\n sorter: sorter,\r\n pagination: pagination,\r\n userFilter: FilterDTO,\r\n CanViewOrgCOI: boolean,\r\n updateSearchFilter(filter: FilterDTO): void,\r\n setTextSearchQuery(text: string): void,\r\n\r\n updateCurrentTab(tab: string): void,\r\n updatePagination(pag: pagination): void,\r\n updateSorter(sort: sorter): void\r\n}\r\n\r\ninterface IActionsState {\r\n query: string,\r\n queryCOI: string,\r\n filteredGifts: [],\r\n inReview: [],\r\n conflictOfInterest: [],\r\n gifts: [],\r\n loading: boolean,\r\n selectedGift: null,\r\n languageCode: string,\r\n langData: any,\r\n regionFilter: [],\r\n statusFilter: [],\r\n nameFilter: [],\r\n filterVisible: boolean,\r\n initFilterData: {},\r\n\r\n searchLoading: boolean,\r\n dropDowns: {},\r\n dropDownsConflict: {},\r\n dropDownsOrgConflict: {},\r\n visibleGiftTableColumn: string[],\r\n visibleCOITableColumn: string[],\r\n\r\n visibleOrgCOITableColumn: string[],\r\n textSearchTable: SearchReturnType,\r\n}\r\n\r\nexport default class Actions extends Component {\r\n constructor(props: IActionsProps) {\r\n super(props)\r\n this.state = {\r\n query: '',\r\n queryCOI: '',\r\n filteredGifts: [],\r\n inReview: [],\r\n conflictOfInterest: [],\r\n gifts: [],\r\n loading: false,\r\n selectedGift: null,\r\n languageCode: props.languageCode,\r\n langData: {},\r\n regionFilter: [],\r\n statusFilter: [],\r\n nameFilter: [],\r\n filterVisible: false,\r\n initFilterData: {},\r\n\r\n searchLoading: false,\r\n dropDowns: {},\r\n dropDownsConflict: {},\r\n dropDownsOrgConflict: {},\r\n visibleGiftTableColumn: ['ID', 'Name', 'Description', 'StatusName', 'DateRecieved', 'Employee','EmployeeEmail',\r\n 'Region', 'Given/Received', 'Amount', 'ConvertedValue','IsPublicOffical'],\r\n visibleCOITableColumn: ['ID', 'Description', 'StatusName', 'DateRecieved', 'Employee', 'EmployeeEmail',\r\n 'Region'],\r\n\r\n visibleOrgCOITableColumn: ['ID', 'ProjectName', 'Description', 'StatusName', 'DateRecieved', 'Employee', 'EmployeeEmail',\r\n 'Region'\r\n ],\r\n textSearchTable: {\r\n Data: [],\r\n Count: 0\r\n },\r\n\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.getLanguageData();\r\n\r\n if (this.props.textSearchQuery.length > 0 && this.props.currentTab === \"6\") {\r\n this.searchQuery(this.props.textSearchQuery);\r\n }\r\n }\r\n translate = (label: string) => {\r\n if (this.state.langData[label]) {\r\n return this.state.langData[label] as string\r\n }\r\n return label;\r\n }\r\n\r\n\r\n\r\n goToGiftDetail = (id: number) => { this.props.history.push(`/actions/${id}`) }\r\n goToCOIDetail = (id: number) => { this.props.history.push(`/COIActions/${id}`) }\r\n goToOrgCOIDetail = (id: number) => { this.props.history.push(`/Organisational/${id}`) }\r\n\r\n\r\n\r\n moneyFormat = (amount: number, currency: string) => {\r\n return `${currency} : ${currencyFormatter.format(amount, { code: currency })}`;\r\n }\r\n\r\n getLanguageData = async () => {\r\n this.setState({ loading: true }, async () => {\r\n const langData = await BaseService.getActionResources();\r\n this.setState({ langData });\r\n this.getDropDowns();\r\n\r\n })\r\n\r\n }\r\n\r\n getDropDowns = async () => {\r\n this.setState({ loading: true }, async () => {\r\n const dropDowns = await DropdownService.getRequestDropdowns();\r\n const dropDownsConflict = await DropdownService.getConflictDropdowns();\r\n const dropDownsOrgConflict = await DropdownService.getOrgConflictDropdowns();\r\n this.setState({ dropDowns, dropDownsConflict, dropDownsOrgConflict, loading: false });\r\n\r\n })\r\n }\r\n\r\n\r\n\r\n getSearchTableColumns = () => {\r\n let table = [{\r\n title: this.translate('Type'),\r\n dataIndex: \"Type\",\r\n key: \"Type\",\r\n render: (x: string) => {this.translate(x)}\r\n }, {\r\n title: this.translate('Count'),\r\n dataIndex: \"Count\",\r\n key: \"Count\"\r\n }];\r\n\r\n return table\r\n }\r\n\r\n getOrgCoiColumns = () => {\r\n\r\n let table = OrgCOIColumns(this.translate, true);\r\n\r\n table = table.filter(x => this.state.visibleOrgCOITableColumn.includes(x.key))\r\n return table;\r\n }\r\n\r\n\r\n setFilter = (data: FilterDTO) => {\r\n this.props.updateSearchFilter(data);\r\n this.setState({ filterVisible: false });\r\n\r\n };\r\n\r\n\r\n\r\n resetFilters = (key: string) => {\r\n this.props.updateCurrentTab(key);\r\n this.props.updatePagination({\r\n current: 1,\r\n pageSize: 10,\r\n total: 0\r\n });\r\n this.props.updateSorter({\r\n field: '',\r\n order: ''\r\n });\r\n\r\n }\r\n\r\n // handleTableChange = (pagination: pagination, _, sorter: sorter) => {\r\n // this.props.updatePagination(pagination);\r\n // this.props.updateSorter(sorter);\r\n\r\n // };\r\n\r\n\r\n allGiftTableColumns = () => {\r\n return ['ID', 'Name', 'Description', 'StatusName', 'DateRecieved', 'Employee',\r\n 'Region', 'Given/Received', 'Amount', 'ConvertedValue', 'PublicOfficial', 'CreatedOn','IsPublicOffical'];\r\n }\r\n\r\n setVisibleGiftColumns = (newVisibleColumns: string[]) => {\r\n this.setState({ visibleGiftTableColumn: newVisibleColumns });\r\n }\r\n\r\n allCOITableColumns = () => {\r\n return ['ID', 'Description', 'StatusName', 'CreatedOn', 'Employee',\r\n 'Region'];\r\n }\r\n\r\n allOrgCOITableColumns = () => {\r\n return ['ID', 'ProjectName', 'Description', 'StatusName', 'CreatedOn', 'Employee',\r\n 'Region'\r\n ];\r\n }\r\n\r\n setVisibleCOIColumns = (newVisibleColumns: string[]) => {\r\n this.setState({ visibleCOITableColumn: newVisibleColumns });\r\n }\r\n searchQuery = async (query: string) => {\r\n if (query) {\r\n this.props.setTextSearchQuery(query)\r\n this.setState({ searchLoading: true })\r\n this.resetFilters(\"6\");\r\n\r\n const data: SearchReturnType = await SearchService.getActionsSearch(query);\r\n this.setState({ textSearchTable: data, searchLoading: false })\r\n }\r\n\r\n }\r\n\r\n setVisibleOrgCOIColumns = (newVisibleColumns: string[]) => {\r\n this.setState({ visibleOrgCOITableColumn: newVisibleColumns });\r\n }\r\n\r\n getCoiColumns = () => {\r\n\r\n let table = CoiColumns(this.translate, true);\r\n\r\n table = table.filter(x => this.state.visibleCOITableColumn.includes(x.key))\r\n return table;\r\n }\r\n\r\n\r\n getTableColumns = () => {\r\n let table = GiftColumns(this.translate, this.moneyFormat, true);\r\n\r\n // let sorter = this.props.sorter;\r\n\r\n // let field = table.find(x => sorter.field === x.dataIndex);\r\n // if (field) {\r\n // field[\"defaultSortOrder\"] = sorter.order;\r\n // }\r\n\r\n table = table.filter(x => this.state.visibleGiftTableColumn.includes(x.key))\r\n\r\n\r\n return table;\r\n }\r\n\r\n render() {\r\n const { loading, filteredGifts, query, queryCOI, inReview, visibleOrgCOITableColumn,\r\n filterVisible, searchLoading, dropDownsOrgConflict, dropDowns, dropDownsConflict, visibleGiftTableColumn, visibleCOITableColumn, textSearchTable } = this.state;\r\n\r\n\r\n if (loading) {\r\n return ()\r\n }\r\n\r\n return (\r\n
\r\n

{this.translate(\"GEH\")}

\r\n \r\n
\r\n this.searchQuery(searchValue)} />\r\n\r\n \r\n \r\n\r\n
this.resetFilters(key)}>\r\n {\r\n (this.props.user.IsAdmin || this.props.user.IsEthicOfficer) && <>\r\n \r\n GiftService.getActions(filter, pagination, sorter, query, false)}\r\n updatePagination={this.props.updatePagination}\r\n updateSorter={this.props.updateSorter}\r\n showStatus={true}\r\n tableColumns={this.allGiftTableColumns()}\r\n visibleColumns={visibleGiftTableColumn}\r\n setNewVisibleColumns={(array) => this.setVisibleGiftColumns(array)}\r\n excelFileService={(filter: GiftFilterDTO, pagination, sorter, query, selectedRowKeys) => GiftService.downloadActionsGift(filter, pagination, sorter, query, false, selectedRowKeys, visibleGiftTableColumn)}\r\n filterApp={App.Gifts}\r\n coi={false}\r\n />\r\n\r\n \r\n \r\n\r\n\r\n ConflictOfInterestService.getActions(filter, pagination, sorter, query)}\r\n updatePagination={this.props.updatePagination}\r\n updateSorter={this.props.updateSorter}\r\n showStatus={true}\r\n coi={true}\r\n tableColumns={this.allCOITableColumns()}\r\n visibleColumns={visibleCOITableColumn}\r\n setNewVisibleColumns={(array) => this.setVisibleCOIColumns(array)}\r\n excelFileService={(filter: ConflictFilterDTO, pagination, sorter, query, selectedRowKeys) => ConflictOfInterestService.downloadActions(filter, pagination, sorter, query, selectedRowKeys, visibleCOITableColumn)}\r\n filterApp={App.ConflictOfInterest}\r\n\r\n />\r\n \r\n \r\n GiftService.getActions(filter, pagination, sorter, query, true)}\r\n updatePagination={this.props.updatePagination}\r\n updateSorter={this.props.updateSorter}\r\n showStatus={false}\r\n tableColumns={this.allGiftTableColumns()}\r\n visibleColumns={visibleGiftTableColumn}\r\n setNewVisibleColumns={(array) => this.setVisibleGiftColumns(array)}\r\n excelFileService={(filter: GiftFilterDTO, pagination, sorter, query, selectedRowKeys) => GiftService.downloadActionsGift(filter, pagination, sorter, query, true, selectedRowKeys, visibleGiftTableColumn)}\r\n filterApp={App.Gifts}\r\n coi={false}\r\n\r\n />\r\n \r\n\r\n\r\n \r\n\r\n }\r\n\r\n\r\n {\r\n this.props.CanViewOrgCOI &&\r\n \r\n OrgCOIService.getActionsOrgConflict(filter, pagination, sorter, query)}\r\n updatePagination={this.props.updatePagination}\r\n updateSorter={this.props.updateSorter}\r\n showStatus={false}\r\n tableColumns={this.allOrgCOITableColumns()}\r\n visibleColumns={visibleOrgCOITableColumn}\r\n setNewVisibleColumns={(array) => this.setVisibleOrgCOIColumns(array)}\r\n excelFileService={(filter: OrgConflictFilterDTO, pagination, sorter, query, selectedRowKeys) => OrgCOIService.downloadActionsOrgConflict(filter, pagination, sorter, query, selectedRowKeys, visibleOrgCOITableColumn)}\r\n filterApp={App.OrgConflictOfInterest}\r\n coi={false}\r\n\r\n />\r\n \r\n }\r\n\r\n \r\n\r\n nestedRow(data, this.translate, this.moneyFormat), defaultExpandAllRows: false }}\r\n dataSource={textSearchTable.Data}\r\n loading={searchLoading}\r\n />\r\n \r\n\r\n\r\n \r\n\r\n
\r\n \r\n )\r\n }\r\n}","import React from 'react';\r\nimport Highcharts from \"highcharts\";\r\nimport HighchartsReact from \"highcharts-react-official\";\r\nimport { IChartWrapper } from '../../models/Core';\r\n\r\ninterface IPieChartProps {\r\n series: IChartWrapper[]\r\n}\r\n\r\nconst PieChart = ({ series }: IPieChartProps) => {\r\n const mapOptions = {\r\n chart: {\r\n plotBackgroundColor: 'transparent',\r\n plotBorderWidth: null,\r\n plotShadow: false,\r\n type: 'pie',\r\n height: 300\r\n },\r\n title: {\r\n text: \"\"\r\n },\r\n subtitle: {\r\n text: \"\"\r\n },\r\n credits: {\r\n enabled: false\r\n },\r\n tooltip: {\r\n pointFormat: '{series.name}: {point.percentage:.1f}% (Count: {point.count})'\r\n },\r\n accessibility: {\r\n point: {\r\n valueSuffix: '%'\r\n }\r\n },\r\n plotOptions: {\r\n pie: {\r\n allowPointSelect: true,\r\n cursor: 'pointer',\r\n dataLabels: {\r\n enabled: true,\r\n format: '{point.name}: {point.percentage:.1f} %'\r\n }\r\n }\r\n },\r\n series: series ? series : []\r\n }\r\n\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default PieChart;","import React from 'react';\r\nimport Highcharts from \"highcharts\";\r\nimport HighchartsReact from \"highcharts-react-official\";\r\n\r\nimport { IChartWrapper } from '../../models/Core';\r\n\r\ninterface ICombinationChartProps {\r\n series: IChartWrapper[],\r\n categories: string[]\r\n}\r\n\r\nconst CombinationChart = ({ series, categories }: ICombinationChartProps) => {\r\n const mapOptions = {\r\n title: {\r\n text: ''\r\n },\r\n credits: {\r\n enabled: false\r\n },\r\n xAxis: {\r\n categories: categories ? categories : []\r\n },\r\n tooltip: {\r\n pointFormat: '$ {point.y}'\r\n },\r\n labels: {\r\n items: [{\r\n style: {\r\n left: '50px',\r\n top: '18px',\r\n color: ( // theme\r\n Highcharts.defaultOptions.title &&\r\n Highcharts.defaultOptions.title.style &&\r\n Highcharts.defaultOptions.title.style.color\r\n ) || 'black'\r\n }\r\n }]\r\n },\r\n series: series ? series : []\r\n }\r\n\r\n\r\n return (\r\n setTimeout(() => chart.reflow(), 10)}\r\n />\r\n )\r\n}\r\n\r\nexport default CombinationChart;","import React, { Component } from 'react'\r\nimport _, { indexOf } from 'lodash'\r\nimport GiftService from '../services/GiftService';\r\nimport PieChart from './charts/PieChart';\r\nimport { Row, Col, Spin } from 'antd';\r\nimport CombinationChart from './charts/CombinationChart';\r\nimport currencyFormatter from 'currency-formatter';\r\nimport BaseService from '../services/BaseService';\r\nimport { Gift, IChartType } from \"../models/Core\";\r\n\r\n\r\ninterface IDashBoardProps {\r\n languageCode: string\r\n}\r\n\r\ninterface IDashboardState {\r\n query: string,\r\n statusPie: IChartType[],\r\n namePie: IChartType[],\r\n priorityPie: IChartType[],\r\n businessBar: IChartType[],\r\n businessNames: string[],\r\n sentCount: number,\r\n receivedCount: number,\r\n loading: boolean,\r\n languageCode: string,\r\n langData: any,\r\n}\r\n\r\n\r\n\r\nexport default class Dashboard extends Component {\r\n constructor(props: IDashBoardProps) {\r\n super(props)\r\n this.state = {\r\n query: '',\r\n statusPie: [],\r\n namePie: [],\r\n priorityPie: [],\r\n businessBar: [],\r\n businessNames: [],\r\n sentCount: 0,\r\n receivedCount: 0,\r\n loading: false,\r\n languageCode: props.languageCode,\r\n langData: {},\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.getLanguageData();\r\n\r\n }\r\n translate = (label: string) => {\r\n if (this.state.langData[label]) {\r\n return this.state.langData[label]\r\n }\r\n return label;\r\n }\r\n\r\n getData = () => {\r\n this.setState({ loading: true }, async () => {\r\n const gifts: Gift[] = await GiftService.getGifts();\r\n const statusPie = _.uniqBy(_.map(gifts, (gift) => {\r\n return {\r\n name: this.translate(gift.StatusName),\r\n y: _.round((_.countBy(gifts, { StatusName: gift.StatusName })[\"true\"] / gifts.length) * 100, 2),\r\n count: _.countBy(gifts, { StatusName: gift.StatusName })[\"true\"]\r\n }\r\n }), 'name');\r\n\r\n const giftTypes = _.flatMap(gifts, (gift) => gift.GiftTypes);\r\n // const giftTypePie = _.uniqBy(_.map(giftTypes, (gift) => {\r\n // return {\r\n // name: this.translate(gift.Name),\r\n // y: _.round((_.countBy(giftTypes, { Name: gift.Name })[true] / giftTypes.length) * 100, 2),\r\n // count: _.countBy(giftTypes, { Name: gift.Name })[true]\r\n // }\r\n // }), 'name');\r\n\r\n const namePie = _.uniqBy(_.compact(_.map(gifts, (gift) => {\r\n if (gift.Name) {\r\n return {\r\n name: this.translate(gift.Name),\r\n y: _.round((_.countBy(gifts, { Name: gift.Name })[\"true\"] / gifts.length) * 100, 2),\r\n count: _.countBy(gifts, { Name: gift.Name })[\"true\"]\r\n }\r\n }\r\n })), 'name');\r\n\r\n\r\n const priorities = _.flatMap(gifts, (gift) => gift.Priorities);\r\n const priorityPie = _.uniqBy(_.map(priorities, (priority) => {\r\n return {\r\n name: this.translate(priority.Name),\r\n y: _.round((_.countBy(priorities, { Name: priority.Name })[\"true\"] / priorities.length) * 100, 2),\r\n count: _.countBy(priorities, { Name: priority.Name })[\"true\"]\r\n }\r\n }), 'name');\r\n\r\n\r\n let businessBar: IChartType[] = [];\r\n\r\n gifts.forEach(x => {\r\n const amount = x.ConvertedValue;\r\n let Contacts: string[] = [...x.Contacts.map(c => c.Business?.Name)];\r\n if (!!x.BusinessName) {\r\n Contacts.push(x.BusinessName)\r\n }\r\n Contacts = [...new Set(Contacts)]\r\n Contacts.forEach(y => {\r\n const index = businessBar.findIndex(z => z.name === y);\r\n if (index >= 0) {\r\n businessBar[index].y += amount;\r\n } else {\r\n businessBar.push({\r\n name: y, y: amount\r\n })\r\n }\r\n })\r\n })\r\n\r\n\r\n const businessNames = _.map(businessBar, 'name');\r\n\r\n const sentGifts = gifts.filter(x => x.IsGiven === true && x.Status !== 4)\r\n const receivedGifts = gifts.filter(x => x.IsGiven === false && x.Status !== 4)\r\n\r\n const sentCount = _.sumBy(sentGifts, 'ConvertedValue');\r\n\r\n const receivedCount = _.sumBy(receivedGifts, 'ConvertedValue');\r\n\r\n this.setState({ statusPie, namePie, priorityPie, sentCount, receivedCount, businessBar, businessNames, loading: false })\r\n })\r\n }\r\n moneyFormat = (Currency: string, Amount: number) => {\r\n return `${Currency} - ${currencyFormatter.format(Amount, { code: Currency })}`\r\n }\r\n\r\n getLanguageData = async () => {\r\n this.setState({ loading: true }, async () => {\r\n const langData = await BaseService.getDashboardResources();\r\n this.setState({ langData });\r\n this.getData();\r\n\r\n })\r\n\r\n }\r\n\r\n\r\n\r\n render() {\r\n const { statusPie, namePie, priorityPie, sentCount, receivedCount, businessBar, businessNames, loading } = this.state;\r\n return (\r\n
\r\n {\r\n loading ?\r\n \r\n :\r\n
\r\n \r\n
\r\n

{this.translate(\"Dashboard\")}

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

{this.translate(\"Given\")}
{this.moneyFormat(\"CAD\", sentCount)}

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

{this.translate(\"Received\")}
{this.moneyFormat(\"CAD\", receivedCount)}

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

{this.translate(\"GCR by Status\")}

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

{this.translate(\"GCR by Types\")}

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

{this.translate(\"GCR by Priorities\")}

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

{this.translate(\"GCR by Business\")}

\r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n )\r\n }\r\n}\r\n","\r\nimport axios from './Api';\r\nimport ApiConfig from '../config/ApiConfig';\r\nimport qs from 'qs';\r\nimport api from './Api';\r\nimport { pagination, sorter } from '../models/Core';\r\n\r\nconst EmployeeService = {\r\n NAME: \"EMPLOYEE SERVICE\",\r\n search: async function (query: string, searchType: number) {\r\n try {\r\n const response = await axios.get(`${ApiConfig.baseURL}/api/Employees/search?query=${query}&searchType=${searchType}`);\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n bulkAddUser: async function (file: Blob) {\r\n try {\r\n const formData = new FormData();\r\n formData.append(\"bulkUpload\", file);\r\n\r\n console.log(\"FormData\", formData)\r\n\r\n\r\n const response = await axios.post(`${ApiConfig.baseURL}/api/Employees/bulkAdd`, formData);\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n }\r\n ,\r\n addUser: async function (FullName: string, EmailAddress: string, RoleID: number) {\r\n try {\r\n\r\n\r\n const response = await api.post(`${ApiConfig.baseURL}/api/Employees/add`, JSON.stringify({\r\n FullName, EmailAddress, RoleID\r\n }), {\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n getOfficers: async function (pagination: pagination, sorter: sorter, query: string) {\r\n try {\r\n const response = await api.get(`${ApiConfig.baseURL}/api/Employees/GetOfficers`, {\r\n params: {\r\n page: pagination.current, limit: pagination.pageSize,\r\n desc: sorter.order, query\r\n },\r\n paramsSerializer: params => {\r\n return qs.stringify(params)\r\n }\r\n });\r\n return response.data;\r\n } catch (e) {\r\n console.log(e);\r\n return [];\r\n }\r\n },\r\n updatePreferredLanguage: async function (language: string) {\r\n try {\r\n\r\n const response = await api.post(`${ApiConfig.baseURL}/api/Employees/setLanguage`, JSON.stringify({\r\n language\r\n }), {\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n return response.status === 200;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n return false;\r\n }\r\n }\r\n};\r\n\r\nexport default EmployeeService;","import React, { Component } from 'react'\r\nimport { Tree, Spin, Row, Col, Button, Modal, Form, Input, AutoComplete, Tag, message } from 'antd';\r\nimport OrganizationService from '../services/OrganizationService';\r\nimport EmployeeService from '../services/EmployeeService';\r\nimport _, { isNull } from 'lodash';\r\nimport { Employee, GenericDTO, Message, TreeDTO } from '../models/Core';\r\n\r\ninterface IEthicOfficersProps {\r\n searchType: null | number\r\n removeOfficer(OrgID: number, EmployeeID: number): Promise\r\n addOfficer(OrgID: number, EmployeeID: number): Promise\r\n translate(text: string): string,\r\n getOrg(id: number | null): Promise\r\n addText: string,\r\n removeText: string,\r\n searchText: string\r\n}\r\n\r\ninterface IEthiicOfficersState {\r\n loading: boolean,\r\n organizations: TreeDTO[],\r\n employees: Employee[],\r\n employeeSearchQuery: string,\r\n EmployeeID: null | number,\r\n Employee: null | Employee,\r\n OrganizationID: null | number,\r\n showAddModal: boolean,\r\n searchType: number\r\n}\r\n\r\n\r\n\r\nexport default class EthicsOfficers extends Component {\r\n constructor(props: IEthicOfficersProps) {\r\n super(props)\r\n this.state = {\r\n loading: false,\r\n organizations: [],\r\n employees: [],\r\n employeeSearchQuery: '',\r\n EmployeeID: null,\r\n Employee: null,\r\n OrganizationID: null,\r\n showAddModal: false,\r\n searchType: this.props.searchType ?? 0\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.getData();\r\n }\r\n\r\n getData = () => {\r\n this.setState({ loading: true }, async () => {\r\n const organizations = await this.props.getOrg(null);\r\n if (!isNull(organizations)) {\r\n this.setState({ organizations })\r\n }\r\n this.setState({ loading: false })\r\n })\r\n }\r\n\r\n onSelect = (node: TreeDTO) => {\r\n if (node.isLeaf) {\r\n this.setState({ EmployeeID: node.id, OrganizationID: node.orgId });\r\n }\r\n else {\r\n this.setState({ OrganizationID: node.id, EmployeeID: null });\r\n }\r\n }\r\n\r\n removeOfficer = () => {\r\n this.setState({ loading: true }, async () => {\r\n if (isNull(this.state.EmployeeID) || isNull(this.state.OrganizationID)) {\r\n message.error(this.translate(\"Employee or Organization is not selected\"), 10)\r\n\r\n return\r\n }\r\n\r\n const data = await this.props.removeOfficer(this.state.OrganizationID, this.state.EmployeeID);\r\n if (isNull(data)) {\r\n message.error(this.translate(\"Error Occured\"), 10)\r\n return\r\n }\r\n if (data.IsError) {\r\n message.error(this.translate(data.Message), 10)\r\n } else {\r\n message.success(`${this.translate(data.Message)}: ${data.Data.FullName}`)\r\n }\r\n this.getData();\r\n })\r\n }\r\n\r\n addOfficer = () => {\r\n this.setState({ loading: true, showAddModal: false }, async () => {\r\n\r\n if (isNull(this.state.EmployeeID) || isNull(this.state.OrganizationID)) {\r\n message.error(this.translate(\"Employee or Organization is not selected\"), 10)\r\n return\r\n }\r\n const data = await this.props.addOfficer(this.state.OrganizationID, this.state.EmployeeID);\r\n if (isNull(data)) {\r\n message.error(this.translate(\"Error Occured\"), 10)\r\n return\r\n }\r\n if (data.IsError) {\r\n message.error(this.translate(data.Message), 10)\r\n } else {\r\n message.success(`${this.translate(data.Message)}: ${data.Data.FullName}`)\r\n }\r\n this.getData();\r\n })\r\n }\r\n\r\n searchEmployees = async () => {\r\n const foundEmployees = await EmployeeService.search(this.state.employeeSearchQuery, this.state.searchType);\r\n const employees = _.map(foundEmployees, (e) => ({ ...e, value: e.FullName }))\r\n this.setState({ employees })\r\n }\r\n\r\n selectEmployee = async (FullName: string) => {\r\n const Employee = _.find(this.state.employees, { FullName });\r\n if (Employee)\r\n this.setState({ EmployeeID: Employee.ID });\r\n }\r\n translate = (text: string) => {\r\n return this.props.translate(text)\r\n }\r\n\r\n render() {\r\n const { loading, organizations, EmployeeID, OrganizationID, Employee, showAddModal, employees } = this.state;\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 loading ?\r\n \r\n :\r\n
\r\n \r\n
\r\n { this.onSelect(e.node as TreeDTO) }} />\r\n \r\n \r\n \r\n \r\n \r\n }\r\n this.setState({ showAddModal: false })}>\r\n\r\n
\r\n {this.translate(this.props.searchText)}\r\n

\r\n { return { label: x.FullName, value: x.FullName } })}>\r\n this.setState({ employeeSearchQuery: e.target.value })}\r\n onSearch={this.searchEmployees} />\r\n \r\n \r\n
\r\n {\r\n this.state.Employee ?\r\n \r\n {this.state.Employee.FullName} ({this.state.Employee.EmailAddress})\r\n \r\n :\r\n null\r\n }\r\n
\r\n \r\n )\r\n }\r\n}\r\n","import axios from './Api';\r\nimport ApiConfig from '../config/ApiConfig';\r\nimport qs from 'qs';\r\nimport { Message, TreeDTO } from '../models/Core';\r\n\r\nconst OrganizationService = {\r\n NAME: 'Organizations',\r\n getOrganizationTree: async function (id: number | null) {\r\n try {\r\n const response = await axios.get(`${ApiConfig.baseURL}/api/organizations/tree/${id ? id : ''}`);\r\n return response.data as TreeDTO[];\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n return [];\r\n }\r\n },\r\n getOrganizations: async function () {\r\n try {\r\n const response = await axios.get(`${ApiConfig.baseURL}/api/organizations`);\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n getOrganizationsTreeLegal: async function (id: number | null) {\r\n try {\r\n const response = await axios.get(`${ApiConfig.baseURL}/api/organizations/treeLegal/${id ? id : ''}`);\r\n return response.data as TreeDTO[];\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n return [];\r\n }\r\n },\r\n getOrganizationsTreeStates: async function (id: number | null) {\r\n try {\r\n const response = await axios.get(`${ApiConfig.baseURL}/api/organizations/StateTree/${id ? id : ''}`);\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n getOrganizationsTreeRegion: async function (id: number | null) {\r\n try {\r\n const response = await axios.get(`${ApiConfig.baseURL}/api/organizations/RegionTree/${id ? id : ''}`);\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n getEthicsOfficer: async function (OrganizationID: number) {\r\n try {\r\n const response = await axios.get(`${ApiConfig.baseURL}/api/organizations/getethicsofficer/${OrganizationID}`);\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n addEthicsOfficer: async function (OrganizationID: number, EmployeeID: number) {\r\n try {\r\n const response = await axios.post(`${ApiConfig.baseURL}/api/organizations/addethicsofficer`, qs.stringify({ OrganizationID, EmployeeID }));\r\n return response.data as Message;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n return null;\r\n }\r\n },\r\n removeEthicsOfficer: async function (OrganizationID: number, EmployeeID: number) {\r\n try {\r\n const response = await axios.post(`${ApiConfig.baseURL}/api/organizations/removeethicsofficer`, qs.stringify({ OrganizationID, EmployeeID }));\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n addLegalOfficer: async function (OrganizationID: number, EmployeeID: number) {\r\n try {\r\n const response = await axios.post(`${ApiConfig.baseURL}/api/organizations/addlegalofficer`, qs.stringify({ OrganizationID, EmployeeID }));\r\n\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n removeLegalOfficer: async function (OrganizationID: number, EmployeeID: number) {\r\n try {\r\n const response = await axios.post(`${ApiConfig.baseURL}/api/organizations/removelegalofficer`, qs.stringify({ OrganizationID, EmployeeID }));\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n addState: async function (Name: string, OrganizationID: string) {\r\n try {\r\n const response = await axios.post(`${ApiConfig.baseURL}/api/organizations/AddStateProvince`,\r\n qs.stringify({ OrganizationID, Name }));\r\n\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n changeStateStatus: async function (stateID: number) {\r\n try {\r\n const response = await axios.post(`${ApiConfig.baseURL}/api/organizations/ChangeStateProvinceStatus`,\r\n qs.stringify({ stateID }));\r\n\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n addRegion: async function (Name: string) {\r\n try {\r\n const response = await axios.post(`${ApiConfig.baseURL}/api/organizations/AddRegion`,\r\n qs.stringify({ Name }));\r\n\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n changeRegionStatus: async function (regionID: number) {\r\n try {\r\n const response = await axios.post(`${ApiConfig.baseURL}/api/organizations/ChangeRegionStatus`,\r\n qs.stringify({ regionID }));\r\n\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n getRules: async function () {\r\n\r\n try {\r\n const response = await axios.get(`${ApiConfig.baseURL}/api/organizations/RuleTree`);\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n }\r\n};\r\n\r\nexport default OrganizationService;","import React, { useState, useEffect } from 'react';\r\nimport {\r\n Input, Row, Col, Select, Button,\r\n Modal, Spin, Form, Tree, message, Typography\r\n} from 'antd';\r\n\r\nimport { App } from '../models/Enums'\r\nimport { TreeDTO } from '../models/Core';\r\n\r\nimport OrganizationService from '../services/OrganizationService';\r\n\r\nconst { Text } = Typography;\r\n\r\ninterface statesProvincesType {\r\n translate(text: string): string\r\n}\r\n\r\n\r\nlet defaultStates: TreeDTO[] = []\r\n\r\nconst States = ({ translate }: statesProvincesType) => {\r\n const [showModal, setShowModal] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n const [submitting, setSubmitting] = useState(false);\r\n\r\n const [states, setStates] = useState(defaultStates);\r\n const [currentOrg, setCurrentOrg] = useState(null);\r\n const [currentState, setCurrentState] = useState(null);\r\n\r\n const [name, setName] = useState(\"\");\r\n\r\n useEffect(() => {\r\n getData();\r\n }, [])\r\n\r\n const getData = async () => {\r\n setLoading(true);\r\n const statesData: TreeDTO[] = await OrganizationService.getOrganizationsTreeStates(null);\r\n setStates(statesData);\r\n setLoading(false);\r\n }\r\n\r\n const selectOrg = (node: TreeDTO) => {\r\n\r\n if (node.isLeaf) {\r\n setCurrentState(node);\r\n setCurrentOrg(null);\r\n\r\n }\r\n else {\r\n setCurrentOrg(node);\r\n setCurrentState(null);\r\n }\r\n\r\n }\r\n\r\n\r\n const changeStateStatus = async () => {\r\n if (currentState === null || !currentState.key) {\r\n message.error(translate(\"errorOccured\"), 10);\r\n return;\r\n }\r\n\r\n const res = await OrganizationService.changeStateStatus(currentState.id);\r\n if (res) {\r\n if (res.IsActive) {\r\n message.success(`${translate(\"Enabled\")}: ${res.Name}`, 10)\r\n } else {\r\n message.success(`${translate(\"Disabled\")}: ${res.Name}`, 10)\r\n\r\n }\r\n setCurrentOrg(null);\r\n setCurrentState(null);\r\n getData();\r\n }\r\n\r\n\r\n }\r\n\r\n const addState = async () => {\r\n setSubmitting(true);\r\n if (name.length === 0) {\r\n message.error(translate(\"nameMustNotBeBlank\"), 10)\r\n return;\r\n }\r\n if (currentOrg === null || !currentOrg.key) {\r\n message.error(translate(\"errorOccured\"), 10);\r\n return;\r\n }\r\n\r\n const res = await OrganizationService.addState(name, currentOrg.key);\r\n\r\n if (res) {\r\n message.success(`${translate(\"Added\")}: ${name}`, 10)\r\n setName(\"\");\r\n setCurrentOrg(null);\r\n setCurrentState(null);\r\n setShowModal(false);\r\n getData();\r\n }\r\n\r\n setSubmitting(false);\r\n\r\n }\r\n\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {\r\n currentState && \r\n }\r\n\r\n \r\n \r\n
\r\n {\r\n loading ?\r\n \r\n :\r\n
\r\n \r\n
\r\n {\r\n const data = node as TreeDTO;\r\n return {data.title} {!data.isActive ? ({translate(\"Disabled\")}) : null}\r\n }}\r\n onSelect={(key, e) => selectOrg(e.node as TreeDTO)} />\r\n \r\n \r\n \r\n }\r\n setShowModal(false)}>\r\n\r\n
\r\n \r\n setName(e.target.value)} />\r\n \r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport default States","import React, { useState, useEffect } from 'react';\r\nimport {\r\n Input, Row, Col, Select, Button,\r\n Modal, Spin, Form, Tree, message, Typography\r\n} from 'antd';\r\n\r\nimport { App } from '../models/Enums'\r\nimport { TreeDTO } from '../models/Core';\r\n\r\nimport OrganizationService from '../services/OrganizationService';\r\n\r\nconst { Text } = Typography;\r\n\r\ninterface statesProvincesType {\r\n translate(text: string): string\r\n}\r\n\r\n\r\nlet defaultStates: TreeDTO[] = []\r\n\r\nconst Region = ({ translate }: statesProvincesType) => {\r\n const [showModal, setShowModal] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n const [submitting, setSubmitting] = useState(false);\r\n\r\n const [states, setStates] = useState(defaultStates);\r\n const [currentOrg, setCurrentOrg] = useState(null);\r\n const [currentState, setCurrentState] = useState(null);\r\n\r\n const [name, setName] = useState(\"\");\r\n\r\n useEffect(() => {\r\n getData();\r\n }, [])\r\n\r\n const getData = async () => {\r\n setLoading(true);\r\n const statesData: TreeDTO[] = await OrganizationService.getOrganizationsTreeRegion(null);\r\n setStates(statesData);\r\n setLoading(false);\r\n }\r\n\r\n const selectOrg = (node: TreeDTO) => {\r\n\r\n if (node.isLeaf) {\r\n setCurrentState(node);\r\n setCurrentOrg(null);\r\n\r\n }\r\n else {\r\n setCurrentOrg(node);\r\n setCurrentState(null);\r\n }\r\n\r\n }\r\n\r\n\r\n const changeStateStatus = async () => {\r\n if (currentState === null || !currentState.key) {\r\n message.error(translate(\"errorOccured\"), 10);\r\n return;\r\n }\r\n const res = await OrganizationService.changeRegionStatus(currentState.id);\r\n if (res) {\r\n if (res.IsActive) {\r\n message.success(`${translate(\"Enabled\")}: ${res.Name}`, 10)\r\n } else {\r\n message.success(`${translate(\"Disabled\")}: ${res.Name}`, 10)\r\n\r\n }\r\n setCurrentOrg(null);\r\n setCurrentState(null);\r\n getData();\r\n }\r\n\r\n\r\n }\r\n\r\n const addState = async () => {\r\n setSubmitting(true);\r\n if (name.length === 0) {\r\n message.error(translate(\"nameMustNotBeBlank\"), 10)\r\n return;\r\n }\r\n\r\n\r\n const res = await OrganizationService.addRegion(name);\r\n\r\n if (res) {\r\n message.success(`${translate(\"Added\")}: ${name}`, 10)\r\n setName(\"\");\r\n setCurrentOrg(null);\r\n setCurrentState(null);\r\n setShowModal(false);\r\n getData();\r\n }\r\n\r\n setSubmitting(false);\r\n\r\n }\r\n\r\n\r\n return (\r\n <>\r\n \r\n
\r\n \r\n {\r\n currentState && \r\n }\r\n\r\n \r\n \r\n
\r\n {\r\n loading ?\r\n \r\n :\r\n
\r\n \r\n
\r\n {\r\n const data = node as TreeDTO;\r\n return {data.title} {!data.isActive ? ({translate(\"Disabled\")}) : null}\r\n }}\r\n onSelect={(key, e) => selectOrg(e.node as TreeDTO)} />\r\n \r\n \r\n \r\n }\r\n setShowModal(false)}>\r\n\r\n
\r\n \r\n setName(e.target.value)} />\r\n \r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Region","import React, { Component } from 'react'\r\nimport { Button, Modal, Row, Col, Form, Input, Select, message } from 'antd';\r\nimport EmployeeService from '../services/EmployeeService';\r\n\r\ninterface UsersTabProps {\r\n translate(text: string): string\r\n}\r\n\r\ninterface UsersTabState {\r\n loading: boolean,\r\n showAddModal: boolean,\r\n bulkUploadFile: null | Blob,\r\n showAddUserModal: boolean,\r\n\r\n userRole: number | null,\r\n userName: string,\r\n userEmail: string\r\n}\r\n\r\n\r\nclass UsersTab extends Component {\r\n constructor(props: UsersTabProps) {\r\n super(props)\r\n this.state = {\r\n loading: false,\r\n showAddModal: false,\r\n bulkUploadFile: null,\r\n showAddUserModal: false,\r\n\r\n userRole: null,\r\n userName: '',\r\n userEmail: ''\r\n }\r\n }\r\n\r\n handleBulkUploadFile = (e: React.ChangeEvent) => {\r\n if (e && e.target && e.target.files && e.target.files?.length > 0) {\r\n this.setState({ bulkUploadFile: e.target.files[0] })\r\n\r\n }\r\n }\r\n\r\n handleUserNameChange = (e: React.ChangeEvent) => {\r\n this.setState({ userName: e.target.value })\r\n }\r\n\r\n handleEmailChange = (e: React.ChangeEvent) => {\r\n this.setState({ userEmail: e.target.value })\r\n }\r\n\r\n handleRoleChange = (e: number) => {\r\n this.setState({ userRole: e })\r\n }\r\n\r\n handleAddUser = async () => {\r\n if (!this.state.userEmail) {\r\n message.error(this.translate(\"userEmailEmpty\"), 10)\r\n return\r\n } else if (!this.state.userName) {\r\n message.error(this.translate(\"userNameEmpty\"), 10)\r\n return\r\n } else if (this.state.userRole === 0 || this.state.userRole === null) {\r\n message.error(this.translate(\"userRoleNotSelected\"), 10)\r\n return\r\n }\r\n const resp = await EmployeeService.addUser(this.state.userName, this.state.userEmail, this.state.userRole);\r\n if (resp) {\r\n this.setState({ showAddUserModal: false, userEmail: '', userName: '', userRole: null })\r\n message.success(this.translate(resp))\r\n\r\n }\r\n else {\r\n message.error(this.translate(\"anErrorOccured\"), 10)\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n handleBulkUploadValidation = async () => {\r\n //Add additional valication here\r\n\r\n // form object add additional perams here\r\n const file = this.state.bulkUploadFile\r\n\r\n\r\n if (file) {\r\n const resp = await EmployeeService.bulkAddUser(file);\r\n\r\n }\r\n }\r\n translate = (text: string) => {\r\n return this.props.translate(text)\r\n }\r\n\r\n render() {\r\n const { loading, showAddModal, bulkUploadFile, showAddUserModal, userName, userEmail, userRole } = this.state;\r\n\r\n return (\r\n
\r\n \r\n \r\n\r\n < Button className=\"btn-success\" style={{ marginRight: 10 }} onClick={() => { this.setState({ showAddUserModal: true }) }}>\r\n {this.translate(\"AddUsers\")}\r\n \r\n \r\n < Modal title={this.translate(\"BulkAddUsers\")} visible={showAddModal} onOk={this.handleBulkUploadValidation}\r\n okText=\"Add\"\r\n onCancel={() => this.setState({ showAddModal: false })}>\r\n
\r\n\r\n \r\n < Input type=\"file\" id=\"BulkUploadFile\" name=\"BulkUploadFile\" onChange={this.handleBulkUploadFile} >\r\n \r\n \r\n\r\n \r\n\r\n\r\n < Modal title={this.translate(\"AddUser\")} visible={showAddUserModal} onOk={this.handleAddUser}\r\n okText=\"Add\"\r\n onCancel={() => this.setState({ showAddUserModal: false })}>\r\n
\r\n \r\n \r\n\r\n \r\n < Form.Item label={this.translate(\"Email\")} >\r\n \r\n\r\n \r\n\r\n < Form.Item label={this.translate(\"Role\")} >\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n\r\n
)\r\n }\r\n\r\n\r\n}\r\n\r\nexport default UsersTab;","\r\nimport axios from './Api';\r\nimport ApiConfig from '../config/ApiConfig';\r\nimport api from './Api';\r\nimport { Rule, RuleDropdowns } from '../models/Core';\r\n\r\nconst RuleService = {\r\n NAME: 'RULE SERVICE',\r\n GetRule: async function (id: number) {\r\n try {\r\n const response = await api.get(`${ApiConfig.baseURL}/api/Rules/get/${id}`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n GetAllRule: async function () {\r\n try {\r\n const response = await api.get(`${ApiConfig.baseURL}/api/Rules/All`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n AddNewRule: async function (rule: Rule) {\r\n try {\r\n const response = await api.post(`${ApiConfig.baseURL}/api/Rules/NewRule`,\r\n JSON.stringify(rule), {\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n\r\n ReRunRule: async function (giftID: number) {\r\n try {\r\n const response = await api.get(`${ApiConfig.baseURL}/api/Rules/Run/${giftID}`\r\n );\r\n if (response.status === 200) {\r\n return true\r\n }\r\n return false;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n return false;\r\n }\r\n },\r\n UpdateRule: async function (rule: Rule) {\r\n try {\r\n const response = await api.post(`${ApiConfig.baseURL}/api/Rules/UpdateRule`,\r\n JSON.stringify(rule), {\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n }\r\n\r\n};\r\n\r\nexport default RuleService;","import React, { Component, useState, useEffect } from 'react'\r\nimport { Table, Spin, Row, Col, Button, Modal, Form, Input, Select, Switch, AutoComplete } from 'antd';\r\nimport OrganizationService from '../services/OrganizationService';\r\nimport DropdownService from '../services/DropdownService';\r\nimport RuleService from '../services/RuleService';\r\nimport _ from 'lodash';\r\nimport { Employee, GenericDTO, Organization, OrganizationDTO, Rule, RuleDropdowns, TreeDTO } from '../models/Core';\r\nimport { ColumnsType } from 'antd/lib/table';\r\n\r\nconst FormItem = Form.Item;\r\n\r\n\r\ninterface ICreateRuleProps {\r\n visible: boolean,\r\n onCancel(): void,\r\n onCreate(values: any): void,\r\n currencies: GenericDTO[],\r\n giftCategories: GenericDTO[],\r\n ruleTypes: GenericDTO[],\r\n organizations: OrganizationDTO[],\r\n publicOfficialRelationshipTypes: GenericDTO[],\r\n translate(text: string): string\r\n}\r\n\r\nconst CreateRule = ({ visible, onCancel, onCreate, currencies, giftCategories, ruleTypes, organizations, publicOfficialRelationshipTypes, translate }: ICreateRuleProps) => {\r\n const [giftType, setGiftType] = useState(0);\r\n const [isCOI, setIsCOI] = useState(false);\r\n const [form] = Form.useForm();\r\n\r\n\r\n const prefixSelector = (\r\n \r\n \r\n {\r\n currencies.map((currency) =>\r\n {currency.Name}\r\n )\r\n }\r\n \r\n \r\n );\r\n\r\n return (\r\n {\r\n form.validateFields()\r\n .then((values) => {\r\n form.resetFields();\r\n onCreate(values);\r\n }).catch((info) => {\r\n console.log('Validate Failed:', info);\r\n });\r\n }}\r\n >\r\n
\r\n \r\n \r\n \r\n\r\n {(!isCOI) ?\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n {giftType === 1 &&\r\n \r\n \r\n \r\n }\r\n {giftType === 3 &&\r\n \r\n \r\n \r\n }\r\n\r\n\r\n\r\n {giftType >= 4 &&\r\n \r\n \r\n \r\n }\r\n
\r\n :
\r\n\r\n
\r\n }\r\n\r\n\r\n\r\n \r\n \r\n );\r\n};\r\n\r\ninterface IUpdateRuleProps extends ICreateRuleProps {\r\n id: number\r\n}\r\n\r\n\r\nconst UpdateRule = ({ visible, onCancel, onCreate, currencies, giftCategories, organizations, ruleTypes, id, publicOfficialRelationshipTypes, translate }: IUpdateRuleProps) => {\r\n const [giftType, setGiftType] = useState(0);\r\n const [isCOI, setIsCOI] = useState(false);\r\n const [form] = Form.useForm();\r\n const [data, setData] = useState({});\r\n\r\n useEffect(() => {\r\n if (id) {\r\n RuleService.GetRule(id).then(rule => {\r\n setData(rule)\r\n setGiftType(rule.RuleType);\r\n form.resetFields();\r\n });\r\n }\r\n\r\n }, [id])\r\n\r\n const prefixSelector = (\r\n \r\n \r\n {\r\n currencies.map((currency) =>\r\n {currency.Name}\r\n )\r\n }\r\n \r\n \r\n );\r\n\r\n\r\n return (\r\n {\r\n form.validateFields()\r\n .then((values) => {\r\n form.resetFields();\r\n onCreate(values);\r\n }).catch((info) => {\r\n console.log('Validate Failed:', info);\r\n });\r\n }}\r\n >\r\n
\r\n \r\n \r\n \r\n \r\n\r\n {(!isCOI) ?\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n {giftType === 1 &&\r\n \r\n \r\n \r\n }\r\n\r\n {giftType === 3 &&\r\n \r\n \r\n \r\n }\r\n\r\n\r\n\r\n {giftType >= 4 &&\r\n \r\n \r\n \r\n }\r\n
\r\n :
\r\n\r\n
\r\n }\r\n\r\n\r\n\r\n \r\n \r\n );\r\n};\r\n\r\ninterface IRulesProps {\r\n translate(text: string): string\r\n}\r\n\r\ninterface IRulesState {\r\n loading: boolean,\r\n rules: Rule[],\r\n employees: Employee[],\r\n employeeSearchQuery: string,\r\n RuleID: number,\r\n Employee: null | Employee,\r\n OrganizationID: number | null,\r\n Organization: Organization | null,\r\n showAddModal: boolean,\r\n showEditModal: boolean,\r\n currencies: GenericDTO[],\r\n giftCategories: GenericDTO[],\r\n organizations: OrganizationDTO[],\r\n ruleTypes: GenericDTO[],\r\n publicOfficialRelationshipTypes: GenericDTO[],\r\n}\r\n\r\n\r\n\r\nexport default class Rules extends Component {\r\n constructor(props: IRulesProps) {\r\n super(props)\r\n this.state = {\r\n loading: false,\r\n rules: [],\r\n employees: [],\r\n employeeSearchQuery: '',\r\n RuleID: 0,\r\n Employee: null,\r\n OrganizationID: null,\r\n Organization: null,\r\n showAddModal: false,\r\n showEditModal: false,\r\n currencies: [],\r\n giftCategories: [],\r\n organizations: [],\r\n ruleTypes: [],\r\n publicOfficialRelationshipTypes: [],\r\n\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.getData();\r\n }\r\n\r\n getData = () => {\r\n this.setState({ loading: true }, async () => {\r\n const rules = await RuleService.GetAllRule();\r\n const dropDowns: RuleDropdowns = await DropdownService.getRuleDropdowns();\r\n const ruleTypes = dropDowns.ruleTypes.filter(x => x.ID != 2).filter(x => x.ID != 0)\r\n this.setState({\r\n rules, loading: false,\r\n currencies: dropDowns.currencies, giftCategories: dropDowns.giftCategories,\r\n organizations: dropDowns.organizations, ruleTypes,\r\n publicOfficialRelationshipTypes: dropDowns.publicOfficialRelationshipTypes\r\n })\r\n })\r\n }\r\n\r\n editDetail = (id: number) => {\r\n this.setState({ RuleID: id, showEditModal: true });\r\n\r\n }\r\n\r\n displayRegions = (regionNames: string[]) => {\r\n\r\n return regionNames.join(\", \")\r\n }\r\n handleCreate = async (values: Rule) => {\r\n const newRule = await RuleService.AddNewRule(values);\r\n if (newRule && newRule.RuleID > 0) {\r\n const rules = [...this.state.rules, newRule];\r\n this.setState({ rules, RuleID: 0 });\r\n }\r\n this.setState({ showAddModal: false })\r\n }\r\n\r\n handleUpdate = async (values: Rule) => {\r\n const updatedRule = await RuleService.UpdateRule(values);\r\n if (updatedRule && updatedRule.RuleID > 0) {\r\n let rules = [...this.state.rules];\r\n const ruleToUpdate = rules.findIndex(x => x.RuleID == updatedRule.RuleID);\r\n rules[ruleToUpdate] = updatedRule;\r\n this.setState({ rules, RuleID: 0 });\r\n }\r\n\r\n this.setState({ showEditModal: false })\r\n }\r\n\r\n translate = (text: string) => {\r\n return this.props.translate(text)\r\n }\r\n\r\n\r\n tableColumn = () => {\r\n return [\r\n {\r\n title: this.translate(\"ID\"),\r\n dataIndex: 'RuleID',\r\n key: 'RuleID',\r\n render: (id: number) => {\r\n return { this.editDetail(id) }} className=\"primary\">{id}\r\n }\r\n },\r\n {\r\n title: this.translate('Name'),\r\n dataIndex: 'Name',\r\n key: 'Name',\r\n },\r\n {\r\n title: this.translate(\"Regions\"),\r\n dataIndex: 'RegionNames',\r\n render: (regions: string[]) => {\r\n return {this.displayRegions(regions)}\r\n }\r\n },\r\n {\r\n title: this.translate('RemoveRule'),\r\n dataIndex: 'RuleID',\r\n render: (id: number) => {\r\n return { console.log(\"Delete\", id) }} className=\"dead-center code\">✕\r\n }\r\n },\r\n\r\n ]\r\n }\r\n\r\n render() {\r\n const { loading, rules, RuleID, showAddModal, showEditModal, currencies,\r\n giftCategories, organizations, ruleTypes, publicOfficialRelationshipTypes } = this.state;\r\n return (\r\n
\r\n \r\n
\r\n \r\n\r\n \r\n \r\n
\r\n {\r\n loading ?\r\n \r\n :\r\n
\r\n \r\n }\r\n pagination={{ pageSize: 50 }}\r\n style={{ width: '100%' }} />\r\n\r\n\r\n \r\n
\r\n }\r\n\r\n this.setState({ showAddModal: false })}\r\n onCreate={this.handleCreate}\r\n currencies={currencies}\r\n giftCategories={giftCategories}\r\n organizations={organizations}\r\n ruleTypes={ruleTypes}\r\n publicOfficialRelationshipTypes={publicOfficialRelationshipTypes}\r\n translate={this.translate}\r\n />\r\n\r\n this.setState({ showEditModal: false })}\r\n onCreate={this.handleUpdate}\r\n currencies={currencies}\r\n giftCategories={giftCategories}\r\n organizations={organizations}\r\n id={RuleID}\r\n ruleTypes={ruleTypes}\r\n publicOfficialRelationshipTypes={publicOfficialRelationshipTypes}\r\n translate={this.translate}\r\n\r\n />\r\n\r\n\r\n \r\n )\r\n }\r\n}\r\n","import React, { Component } from 'react'\r\nimport { Tabs, Select, Form, Spin } from 'antd';\r\nimport EthicsOfficers from './EthicsOfficers';\r\nimport States from './States';\r\nimport Region from './Region';\r\nimport UsersTab from './Users';\r\nimport Rules from './Rules';\r\nimport DropdownService from '../services/DropdownService';\r\nimport BaseService from '../services/BaseService';\r\n\r\nimport OrganizationService from '../services/OrganizationService';\r\nimport { History } from 'history';\r\nimport { EmployeeWithPermissions, GenericDTO } from '../models/Core';\r\nimport { RouteComponentProps } from 'react-router';\r\n\r\nconst { Option } = Select;\r\nconst { TabPane } = Tabs;\r\n\r\n\r\ninterface IRoutes {\r\n id: string,\r\n route: string\r\n}\r\n\r\ntype AdminParams = {\r\n id: string; // parameters will always be a string (even if they are numerical)\r\n};\r\n\r\ninterface IAdminProps extends RouteComponentProps {\r\n languageCode: string | null,\r\n history: History\r\n user: EmployeeWithPermissions,\r\n\r\n setLanguage(text: string): void\r\n\r\n\r\n}\r\ninterface IAdminState {\r\n loading: Boolean,\r\n supportedLanguages: GenericDTO[],\r\n languageCode: string,\r\n langData: any,\r\n key: string,\r\n routes: IRoutes[]\r\n}\r\n\r\n\r\n\r\nexport default class Admin extends Component {\r\n constructor(props: IAdminProps) {\r\n super(props);\r\n this.state = {\r\n loading: false,\r\n supportedLanguages: [],\r\n languageCode: props.languageCode ? props.languageCode : 'en',\r\n langData: {},\r\n key: \"1\",\r\n routes: [{ id: \"1\", route: \"Settings\" }\r\n , { id: \"4\", route: \"EthicsOfficers\" }\r\n , { id: \"5\", route: \"LegalOfficers\" }\r\n , { id: \"6\", route: \"Users\" }\r\n , { id: \"7\", route: \"Rules\" }\r\n , { id: \"2\", route: \"StatesProvinces\" }\r\n , { id: \"3\", route: \"Regions\" }]\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.getData()\r\n }\r\n\r\n callback(key: string) {\r\n const route = this.state.routes.find(x => x.id === key);\r\n if (route) {\r\n this.props.history.push(`${route.route}`)\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps: IAdminProps, prevState: IAdminState) {\r\n if (prevProps.languageCode !== this.props.languageCode) {\r\n this.setState({ languageCode: this.props.languageCode ?? 'en' }, async () => {\r\n await this.getLanguageData();\r\n })\r\n }\r\n }\r\n\r\n\r\n setLanguage = (lang: string) => {\r\n this.setState({ languageCode: lang }, async() => {\r\n this.props.setLanguage(lang);\r\n });\r\n }\r\n\r\n getData = () => {\r\n this.setState({ loading: true }, async () => {\r\n await this.getLanguageData();\r\n const route = this.state.routes.find(x => x.route === this.props.match.params.id);\r\n let key = \"1\"\r\n if (route) {\r\n key = route.id\r\n }\r\n this.setState({ loading: false, key });\r\n })\r\n };\r\n\r\n getLanguageData = async () => {\r\n this.setState({ loading: true }, async () => {\r\n const langData = await BaseService.getHubAdminResources();\r\n const supportedLanguages = await BaseService.getLanguages();\r\n\r\n this.setState({ langData, supportedLanguages, loading: false });\r\n })\r\n\r\n }\r\n\r\n translate = (label: string) => {\r\n if (this.state.langData[label]) {\r\n return this.state.langData[label]\r\n }\r\n return label;\r\n }\r\n\r\n render() {\r\n const { loading, supportedLanguages, languageCode, langData, key } = this.state;\r\n return (\r\n
\r\n

{this.translate(\"Admin\")}

\r\n {\r\n loading ?\r\n \r\n :\r\n this.callback(x)}>\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n\r\n {this.props.user.IsAdmin &&\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n
\r\n }\r\n
\r\n )\r\n }\r\n}\r\n","\r\nimport axios from 'axios';\r\nimport ApiConfig from '../config/ApiConfig';\r\nimport api from './Api';\r\n\r\nconst CommentService = {\r\n NAME: \"COMMENT SERVICE\",\r\n AddGiftComment: async function (giftId: number, comment: string) {\r\n try {\r\n const response = await api.post(`${ApiConfig.baseURL}/api/comments/GiftComment`,\r\n JSON.stringify({ GiftID: giftId, comment: comment }), {\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n AddCOIComment: async function (coiId: number, comment: string) {\r\n try {\r\n const response = await api.post(`${ApiConfig.baseURL}/api/comments/COIComment`,\r\n JSON.stringify({ GiftID: coiId, comment: comment }), {\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n },\r\n AddOrgCOIComment: async function (coiId: number, comment: string) {\r\n try {\r\n const response = await api.post(`${ApiConfig.baseURL}/api/comments/OrgCOIComment`,\r\n JSON.stringify({ GiftID: coiId, comment: comment }), {\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n return response.data;\r\n } catch (e) {\r\n console.log(this.NAME, e);\r\n }\r\n }\r\n};\r\n\r\nexport default CommentService;","import Api from './Api';\r\nimport { AuthContext, AdalApiFetch } from '../config/AdalConfig';\r\n\r\nlet photos = new Map();\r\n\r\nconst AuthService = {\r\n loginUser: async function () {\r\n\r\n },\r\n getLoggedInUser: async function () {\r\n try {\r\n const response = await Api.get(\"/api/Employees/Current\", {\r\n headers: {\r\n\r\n 'Accept': 'application/json'\r\n }\r\n });\r\n return response.data;\r\n }\r\n catch (e) {\r\n console.error(e);\r\n }\r\n },\r\n userPhoto: async function () {\r\n try {\r\n const response = await AdalApiFetch(\"https://graph.microsoft.com/v1.0/me/photo/$value\", {})\r\n if (response != null && response.ok) {\r\n const blob = await response.blob();\r\n if (blob) {\r\n return URL.createObjectURL(blob);\r\n }\r\n }\r\n\r\n }\r\n catch (e) {\r\n console.error(e);\r\n }\r\n return null;\r\n\r\n }\r\n\r\n ,\r\n userPhotoByID: async function (id: string) {\r\n if (photos.has(id)) {\r\n return photos.get(id);\r\n }\r\n try {\r\n const response = await AdalApiFetch(`https://graph.microsoft.com/v1.0/users/${id}/photo/$value`, {})\r\n if (response != null && response.ok) {\r\n const blob = await response.blob();\r\n if (blob) {\r\n let photo = URL.createObjectURL(blob)\r\n photos.set(id, photo)\r\n return photo;\r\n }\r\n\r\n } else {\r\n return null;\r\n\r\n }\r\n }\r\n catch (e) {\r\n console.error(e);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n\r\n};\r\n\r\nexport default AuthService;","import { Form, Button, List, Input, Comment, Avatar } from 'antd';\r\nimport React, { useEffect, useState } from 'react'\r\nimport moment from 'moment';\r\nimport { CommentListType, EditorType, CommentType, FormattedComment } from \"../models/Core\";\r\nimport AuthService from '../services/AuthService';\r\nimport { UserOutlined } from '@ant-design/icons';\r\n\r\nconst { TextArea } = Input;\r\n\r\n\r\nconst CommentList = ({ comments, translate }: CommentListType) => (\r\n 1 ? translate('replies') : translate('reply')}`}\r\n itemLayout=\"horizontal\"\r\n renderItem={props => }\r\n />\r\n);\r\n\r\nconst Editor = ({ onChange, onSubmit, submitting, value, translate }: EditorType) => (\r\n <>\r\n \r\n \r\n }\r\n \r\n\r\n\r\n {this.translate(\"Files\")}}\r\n bordered\r\n dataSource={giftFiles}\r\n locale={\r\n { emptyText: this.translate(\"NoFiles\") }\r\n }\r\n renderItem={item => (\r\n \r\n this.downloadFile(item.ID)}\r\n >{item.Name}\r\n \r\n {item.Private && {this.translate(\"Private\")}}\r\n \r\n )}\r\n />\r\n \r\n\r\n \r\n\r\n {this.translate(\"Rules\")} } key=\"4\">\r\n \r\n

{this.translate(\"Rules\")}

{showRuleVerifyButton && } }\r\n dataSource={ruleHistory} columns={this.ruleColumn()} style={{ width: '100%' }}\r\n loading={loadingRuleHistory}\r\n />\r\n\r\n \r\n\r\n \r\n\r\n {this.translate(\"AuditHistory\")} } key=\"5\">\r\n \r\n \r\n {auditHistory.map(audit => (\r\n \r\n

{`${audit.User.FullName}${audit.User.Roles && audit.User.Roles.length > 0 && ` - ${audit.User.Roles.map(y => this.translate(y)).join(\", \")}`} - ${moment(audit.CreatedData).local().format(\"MMM Do, YYYY h:mm:ss a\")}`}

}\r\n dataSource={audit.AuditDetails} columns={this.auditColumn()} style={{ width: '100%' }}\r\n size=\"small\" pagination={false}\r\n />\r\n\r\n\r\n \r\n ))}\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n\r\n \r\n\r\n\r\n \r\n \r\n \r\n }\r\n this.setState({ showEditModal: false })}>\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n this.setState({ showStatusModal: false })}>\r\n
\r\n\r\n {statusModalTitle != \"InReview\" && statusModalTitle != \"UnderReview\"\r\n && statusModalTitle != \"Delete\" && statusModalTitle != \"Reopen\" && statusModalTitle != \"MoveItemBackToSubmitted\"\r\n &&
{this.translate(\"RequestedAmount\")}: {gift.OriginalAmount}\r\n

\r\n \r\n { this.setState({ ApprovedValue: +e.target.value }) }} />\r\n
}\r\n\r\n\r\n {statusModalTitle != \"UnderReview\" && statusModalTitle != \"Reopen\" && statusModalTitle != \"MoveItemBackToSubmitted\" && statusModalTitle != \"Delete\" ? \r\n { this.setState({ ReviewComments: e.target.value }) }} />\r\n :\r\n\r\n statusModalTitle == \"Delete\" ?\r\n {this.translate(\"DeleteEntry\")}\r\n : statusModalTitle == \"Reopen\" ?\r\n {this.translate(\"SetReviewStateReopen\")}\r\n\r\n :\r\n statusModalTitle == \"MoveItemBackToSubmitted\" ? {this.translate(\"MoveItemBackToSubmitteds\")} \r\n :\r\n {this.translate(\"SetReviewState\")} \r\n\r\n }\r\n\r\n \r\n
\r\n \r\n )\r\n }\r\n}\r\n","import React, { Component } from 'react'\r\nimport ConflictOfInterestService from '../services/ConflictOfInterestService';\r\nimport {\r\n Layout, Spin, Descriptions, PageHeader, Button, Row, Col,\r\n Tag, Typography, List, Modal, Select, Form, Input, Alert, Tooltip, Tabs, Badge, Upload, Checkbox, message,\r\n Timeline, Table\r\n} from 'antd'\r\nimport { EditTwoTone, CheckCircleTwoTone, ExclamationCircleTwoTone, InboxOutlined } from '@ant-design/icons';\r\nimport OrganizationService from '../services/OrganizationService';\r\nimport moment from 'moment';\r\nimport CommentService from '../services/CommentService';\r\nimport BaseService from '../services/BaseService';\r\nimport Comments from './Comments';\r\nimport TextArea from 'antd/lib/input/TextArea';\r\nimport { AuditDTO, CommentsBase, ConflictOfInterestFileDTO, EmptyConflictOfInterest, GenericDTO, IConflictOfInterest, IOrgConflictOfInterst, EmployeeWithPermissions } from '../models/Core';\r\nimport { RcFile } from 'antd/lib/upload';\r\nimport { RouteComponentProps } from 'react-router';\r\nimport { History } from 'history';\r\n\r\n\r\n\r\n\r\nconst { Header, Content } = Layout;\r\nconst { Option } = Select;\r\nconst { TabPane } = Tabs;\r\nconst { Dragger } = Upload;\r\n\r\n\r\n\r\ntype IConflictOfInterestDetailParams = {\r\n id: string; // parameters will always be a string (even if they are numerical)\r\n};\r\n\r\n\r\ninterface IConflictOfInterestDetailProps extends RouteComponentProps {\r\n languageCode: string,\r\n history: History\r\n user: EmployeeWithPermissions,\r\n\r\n}\r\n\r\ninterface IConflictOfInterestDetailState {\r\n loading: boolean,\r\n coi: IConflictOfInterest,\r\n organizations: GenericDTO[],\r\n currencies: [],\r\n OrganizationName: string,\r\n ApprovedValue: null | number,\r\n ReviewComments: string,\r\n showEditModal: boolean,\r\n showStatusModal: boolean,\r\n statusModalTitle: string,\r\n editModalConfirmLoading: boolean,\r\n statusModalConfirmLoading: boolean,\r\n comments: CommentsBase[],\r\n languageCode: string,\r\n langData: any,\r\n showFileModal: boolean,\r\n ShareWithUser: boolean,\r\n EmailUser: boolean,\r\n EmailUserComment: string,\r\n fileList: RcFile[],\r\n coiFiles: ConflictOfInterestFileDTO[],\r\n auditHistory: AuditDTO[],\r\n CanDelete: boolean,\r\n OrganizationID: number\r\n}\r\n\r\nexport default class ConflictOfInterestDetail extends Component {\r\n constructor(props: IConflictOfInterestDetailProps) {\r\n super(props);\r\n this.state = {\r\n loading: false,\r\n coi: EmptyConflictOfInterest,\r\n organizations: [],\r\n currencies: [],\r\n OrganizationName: \"\",\r\n ApprovedValue: null,\r\n ReviewComments: '',\r\n showEditModal: false,\r\n showStatusModal: false,\r\n statusModalTitle: '',\r\n editModalConfirmLoading: false,\r\n statusModalConfirmLoading: false,\r\n comments: [],\r\n languageCode: props.languageCode,\r\n langData: {},\r\n showFileModal: false,\r\n ShareWithUser: false,\r\n EmailUser: false,\r\n EmailUserComment: '',\r\n fileList: [],\r\n coiFiles: [],\r\n auditHistory: [],\r\n CanDelete: false,\r\n OrganizationID: 60\r\n\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.getLanguageData();\r\n }\r\n\r\n translate = (label: string) => {\r\n if (this.state.langData[label]) {\r\n return this.state.langData[label]\r\n }\r\n return label;\r\n }\r\n getLanguageData = async () => {\r\n this.setState({ loading: true }, async () => {\r\n const langData = await BaseService.getCoiDetailsResources();\r\n this.setState({ langData });\r\n this.getData();\r\n\r\n })\r\n\r\n }\r\n\r\n getData = () => {\r\n const { id } = this.props.match.params;\r\n\r\n if (id) {\r\n this.setState({ loading: true }, async () => {\r\n const coi: IConflictOfInterest = await ConflictOfInterestService.get(id);\r\n const organizations = await OrganizationService.getOrganizations();\r\n this.setState({\r\n loading: false, coi, organizations,\r\n OrganizationName: coi.Organization != null ? coi.Organization.Name : '',\r\n ReviewComments: coi.ReviewComments ? coi.ReviewComments : '',\r\n comments: coi.Comments ? coi.Comments : [],\r\n coiFiles: coi.Files ? coi.Files : [],\r\n auditHistory: coi.AuditHistory ? coi.AuditHistory : [],\r\n CanDelete: coi.CanDelete,\r\n OrganizationID: coi.OrganizationID\r\n\r\n })\r\n })\r\n }\r\n else {\r\n this.props.history.push('/actions');\r\n }\r\n }\r\n\r\n postComment = async (commentText: string) => {\r\n var res = await CommentService.AddCOIComment(this.state.coi.ID, commentText);\r\n\r\n if (res) {\r\n const comments = [res, ...this.state.comments];\r\n this.setState({ comments });\r\n }\r\n\r\n }\r\n\r\n changeGiftStatus = () => {\r\n const { statusModalTitle, ReviewComments, coi } = this.state;\r\n\r\n this.setState({ loading: true, showStatusModal: false }, async () => {\r\n switch (statusModalTitle) {\r\n case 'Approve':\r\n await ConflictOfInterestService.approve(coi.ID, ReviewComments);\r\n this.getData();\r\n break;\r\n\r\n\r\n case 'UnderReview':\r\n await ConflictOfInterestService.markUnderReview(coi.ID);\r\n this.getData();\r\n break;\r\n case 'Reopen':\r\n await ConflictOfInterestService.reopen(coi.ID);\r\n this.getData();\r\n break;\r\n\r\n case 'InReview':\r\n await ConflictOfInterestService.markInReview(coi.ID, ReviewComments);\r\n this.getData();\r\n break;\r\n\r\n case 'Delete':\r\n const data = await ConflictOfInterestService.delete(coi.ID);\r\n if (data && data.status === 200) {\r\n this.props.history.push(`/actions`)\r\n } else {\r\n this.getData();\r\n }\r\n break;\r\n\r\n default:\r\n await ConflictOfInterestService.reject(coi.ID, ReviewComments);\r\n this.getData();\r\n break;\r\n }\r\n\r\n })\r\n }\r\n\r\n // markInReview = async () => {\r\n // await ConflictOfInterestService.markInReview(this.state.coi.ID);\r\n // this.getData();\r\n // }\r\n\r\n // markReject = async () => {\r\n // await ConflictOfInterestService.reject(this.state.coi.ID);\r\n // this.getData();\r\n // }\r\n\r\n // markApprove = async () => {\r\n // await ConflictOfInterestService.approve(this.state.coi.ID);\r\n // this.getData();\r\n // }\r\n\r\n getStatus = () => {\r\n const text = this.state.coi.StatusName;\r\n switch (text) {\r\n case 'Submitted':\r\n return {this.translate(text)};\r\n case 'Approved':\r\n return {this.translate(text)};\r\n case 'Rejected':\r\n return {this.translate(text)};\r\n case 'InReview':\r\n return {this.translate(text)};\r\n case 'UnderReview':\r\n return {this.translate(text)};\r\n default:\r\n return {this.translate(text)};\r\n }\r\n }\r\n\r\n getCompliesWithPolicy = () => {\r\n const complies = this.state.coi.CompliesWithPolicy;\r\n switch (complies) {\r\n case true:\r\n return ;\r\n case false:\r\n return ;\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n getSubTitles = () => {\r\n return
{this.getStatus()} {this.getCompliesWithPolicy()}
\r\n }\r\n\r\n getButtons = () => {\r\n let btns = [,\r\n ];\r\n\r\n if (this.state.coi.StatusName === 'Submitted' || this.state.coi.StatusName === 'InReview' || this.state.coi.StatusName === 'UnderReview') {\r\n\r\n btns.push(\r\n ,\r\n )\r\n\r\n btns.push(\r\n \r\n )\r\n\r\n\r\n\r\n }\r\n\r\n else {\r\n btns = [];\r\n if (this.props.user.IsAdmin) {\r\n btns.push(\r\n ,\r\n )\r\n }\r\n }\r\n\r\n\r\n if (this.state.coi.CanDelete) {\r\n btns.push(\r\n \r\n )\r\n }\r\n\r\n return btns;\r\n }\r\n\r\n downloadFile = async (fileID: number) => {\r\n await ConflictOfInterestService.downloadFile(fileID);\r\n }\r\n\r\n updateOrganization = () => {\r\n this.setState({ loading: true, showEditModal: false }, async () => {\r\n const { coi, OrganizationID } = this.state;\r\n await ConflictOfInterestService.updateOrganization(coi.ID, OrganizationID);\r\n this.getData();\r\n })\r\n }\r\n uploadFiles = async () => {\r\n const { EmailUserComment, EmailUser, ShareWithUser, fileList, coi } = this.state;\r\n\r\n const emailComment = EmailUser ? EmailUserComment : \"\"\r\n const result = await ConflictOfInterestService.uploadFiles(fileList, coi.ID.toString(), String(ShareWithUser), String(EmailUser), emailComment);\r\n\r\n if (result) {\r\n this.setState(state => ({\r\n coiFiles: [...state.coiFiles, ...result],\r\n }));\r\n message.success(this.translate(\"FileUploaded\"))\r\n } else {\r\n message.error(this.translate(\"fileUploadError\"), 10)\r\n }\r\n this.setState({ showFileModal: false, EmailUserComment: '', EmailUser: false, ShareWithUser: false, fileList: [] })\r\n\r\n }\r\n\r\n\r\n auditColumn = () => {\r\n return [\r\n {\r\n title: this.translate(\"ChangeType\"),\r\n dataIndex: 'ChangeTypeDisplay',\r\n\r\n },\r\n {\r\n title: this.translate(\"ColumnChanged\"),\r\n dataIndex: 'ColumnChanged',\r\n render: (ColumnChanged: string) => {\r\n\r\n\r\n return {this.translate(ColumnChanged)}\r\n }\r\n\r\n },\r\n {\r\n title: this.translate(\"OriginalValue\"),\r\n dataIndex: 'OriginalValueDisplay',\r\n render: (data: string) => {\r\n\r\n\r\n return {this.translate(data)}\r\n }\r\n\r\n },\r\n {\r\n title: this.translate(\"NewValue\"),\r\n dataIndex: 'NewValueDisplay',\r\n render: (data: string) => {\r\n\r\n\r\n return {this.translate(data)}\r\n }\r\n\r\n },\r\n\r\n ]\r\n }\r\n\r\n render() {\r\n const { loading, coi, showEditModal, showStatusModal, statusModalTitle, ApprovedValue, ReviewComments,\r\n editModalConfirmLoading, statusModalConfirmLoading,\r\n auditHistory, OrganizationName, comments, ShareWithUser, coiFiles, showFileModal,\r\n EmailUserComment, EmailUser, organizations, OrganizationID } = this.state;\r\n\r\n return (\r\n
\r\n {\r\n loading ?\r\n \r\n :\r\n
\r\n \r\n window.history.length > 1 ? window.history.back() : this.props.history.push(`/actions`)}\r\n title={`COI ID - ${coi.ID}`}\r\n subTitle={this.getSubTitles()}\r\n extra={this.getButtons()}\r\n >\r\n\r\n\r\n
\r\n {\r\n coi.AdditionalComments ?\r\n\r\n \r\n\r\n :\r\n\r\n null\r\n }\r\n \r\n \r\n \r\n
\r\n {\r\n coi.CreatedBy ?\r\n

{this.translate(\"CreatedBy\")} {coi.CreatedBy.FullName} - {moment(coi.CreatedOn).local().format(\"MMM Do, YYYY\")}

\r\n :\r\n null\r\n }\r\n \r\n \r\n {coi.UpdatedBy ? \r\n \r\n

{this.translate(\"UpdatedBy\")} {coi.UpdatedBy.FullName} - {moment(coi.UpdatedOn).local().format(\"MMM Do, YYYY\")}

\r\n\r\n \r\n : null}\r\n\r\n \r\n \r\n {\r\n coi.Organization ?\r\n

{this.translate(\"Region\")} {coi.Organization.Name}\r\n this.setState({ showEditModal: true })} />

\r\n :\r\n null\r\n }\r\n \r\n \r\n \r\n \r\n \r\n {coi.Description}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {coi.MitigationDescription}\r\n \r\n \r\n \r\n
\r\n \r\n\r\n {coi.ConflictStatusName ? {this.translate(coi.ConflictStatusName)} : null}\r\n {coi.PersonalObjectOfConflictName ? {this.translate(coi.PersonalObjectOfConflictName)} : null}\r\n {coi.OrganizationalObjectOfConflictName ? {this.translate(coi.OrganizationalObjectOfConflictName)} : null}\r\n {coi.ConflictTypeName ? {this.translate(coi.ConflictTypeName)} : null}\r\n {coi.PublicOfficialName ? {coi.PublicOfficialName} : null}\r\n {coi.PublicOfficialBusinessName ? {coi.PublicOfficialBusinessName} : null}\r\n {coi.PublicOfficialPosition ? {coi.PublicOfficialPosition} : null}\r\n {coi.PublicOfficialRelationshipTypeID ? {this.translate(coi.PublicOfficialRelationshipTypeName)} : null}\r\n {coi.RelationshipDetailWithPublicOfficial ? {coi.RelationshipDetailWithPublicOfficial} : null}\r\n {coi.PublicOfficialLeftOfficeDate ? {moment(coi.PublicOfficialLeftOfficeDate).local().format(\"MMM Do, YYYY\")} : null}\r\n {coi.IsTruthful != null ? {coi.IsTruthful ? this.translate(\"Yes\") : this.translate(\"No\")} : null}\r\n {coi.NotifiedManager != null ? {coi.NotifiedManager ? this.translate(\"Yes\") : this.translate(\"No\")} : null}\r\n {coi.ImplicatedBuisness != null ? {`${coi.ImplicatedBuisness.Name} ${coi.ImplicatedBuisness.Country ? ` - ${coi.ImplicatedBuisness.Country}` : \"\"}`} : null}\r\n\r\n\r\n\r\n {coi.CreatedOn ? {moment(coi.CreatedOn).local().format(\"MMM Do, YYYY\")} : null}\r\n {coi.UpdatedOn ? {moment(coi.UpdatedOn).local().format(\"MMM Do, YYYY\")} : null}\r\n {coi.OtherConflictType ? {coi.OtherConflictType} : null}\r\n {coi.OtherPersonalObjectOfConflict ? {coi.OtherPersonalObjectOfConflict} : null}\r\n {coi.OtherOrganizationalObjectOfConflict ? {coi.OtherOrganizationalObjectOfConflict} : null}\r\n\r\n\r\n\r\n\r\n \r\n\r\n\r\n
\r\n {\r\n coi.Employee ?\r\n \r\n {coi.Employee.FullName}\r\n {coi.Employee.EmailAddress}\r\n {coi.Employee.PhoneNumber}\r\n \r\n :\r\n null\r\n }\r\n\r\n\r\n \r\n\r\n {this.translate(\"Comments\")} } key=\"2\">\r\n\r\n\r\n \r\n\r\n \r\n\r\n {this.translate(\"Files\")} } key=\"3\">\r\n
\r\n 0 ? { disabled: false } : { disabled: true }}\r\n onCancel={() => this.setState({ showFileModal: false })}>\r\n {\r\n this.setState(state => ({\r\n fileList: [...state.fileList, file],\r\n }));\r\n return false;\r\n }}\r\n fileList={this.state.fileList}\r\n onRemove={file => {\r\n this.setState(state => {\r\n const index = state.fileList.findIndex(x => x.uid === file.uid);\r\n const newFileList = state.fileList.slice();\r\n newFileList.splice(index, 1);\r\n return {\r\n fileList: newFileList,\r\n };\r\n });\r\n }}\r\n >\r\n

\r\n \r\n

\r\n

{this.translate(\"uploadText\")}

\r\n

\r\n {this.translate(\"uploadHint\")}\r\n

\r\n \r\n
\r\n\r\n
\r\n this.setState({ ShareWithUser: e.target.checked })}>{this.translate(\"ShareWithUser\")}\r\n this.setState({ EmailUser: e.target.checked })}>{this.translate(\"EmailUser\")}\r\n\r\n
\r\n
\r\n\r\n {EmailUser && \r\n \r\n }\r\n
\r\n\r\n\r\n {this.translate(\"Files\")}}\r\n bordered\r\n dataSource={coiFiles}\r\n locale={\r\n { emptyText: this.translate(\"NoFiles\") }\r\n }\r\n renderItem={item => (\r\n \r\n this.downloadFile(item.ID)}\r\n >{item.Name}\r\n \r\n {item.Private && {this.translate(\"Private\")}}\r\n \r\n )}\r\n />\r\n
\r\n
\r\n {this.translate(\"AuditHistory\")} } key=\"4\">\r\n \r\n \r\n {auditHistory.map(audit => (\r\n \r\n

{`${audit.User.FullName} ${audit.User.Roles && audit.User.Roles.length > 0 && ` - ${audit.User.Roles.map(y => this.translate(y)).join(\", \")}`} - ${moment(audit.CreatedData).local().format(\"MMM Do, YYYY h:mm:ss a\")}`}

}\r\n dataSource={audit.AuditDetails} columns={this.auditColumn()} style={{ width: '100%' }}\r\n size=\"small\" pagination={false}\r\n />\r\n\r\n\r\n \r\n ))}\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n }\r\n this.setState({ showEditModal: false })}>\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n this.setState({ showStatusModal: false })}>\r\n
\r\n\r\n {statusModalTitle != \"UnderReview\" && statusModalTitle != \"Delete\" && statusModalTitle != \"Reopen\" ? \r\n { this.setState({ ReviewComments: e.target.value }) }} />\r\n :\r\n\r\n statusModalTitle == \"Delete\" ?\r\n {this.translate(\"DeleteEntry\")} :\r\n statusModalTitle == \"Reopen\" ? {this.translate(\"SetReviewStateReopen\")} : {this.translate(\"SetReviewState\")} \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 React, { useEffect, useState } from \"react\";\r\n\r\n\r\nimport {\r\n Card,\r\n Descriptions\r\n} from 'antd';\r\nimport { ProjectCardType } from \"../models/Core\";\r\n\r\n\r\n\r\n\r\nconst ProjectCard = ({ Project, translate }: ProjectCardType) => {\r\n\r\n const [project, setProject] = useState(Project);\r\n\r\n\r\n useEffect(() => {\r\n if (project !== Project) {\r\n setProject(Project);\r\n }\r\n }, [Project]);\r\n\r\n return (\r\n \r\n \r\n \r\n {project.ProjectScope}\r\n \r\n\r\n \r\n {project.Location}\r\n \r\n \r\n {project.UltimateClient?.Name}\r\n \r\n \r\n {project.WSPClient?.Name}\r\n \r\n \r\n {project.KeyAccountManager?.FullName}\r\n \r\n \r\n {project.ProjectManager?.FullName}\r\n \r\n \r\n {translate(project.BuisnessGroup)}\r\n \r\n \r\n {translate(project.ProjectStage)}\r\n \r\n \r\n\r\n \r\n )\r\n}\r\n\r\nexport default ProjectCard;","import React, { Component, useState } from 'react'\r\nimport OrgCOIService from '../services/OrgCOIService';\r\nimport {\r\n Layout, Spin, Descriptions, PageHeader, Button, Row, Col,\r\n Tag, Typography, List, Modal, Select, Form, Input, Alert, Tooltip, Tabs, Badge, Upload, Checkbox, message,\r\n Timeline, Table\r\n} from 'antd'\r\nimport { EditTwoTone, CheckCircleTwoTone, ExclamationCircleTwoTone, InboxOutlined, LoadingOutlined } from '@ant-design/icons';\r\nimport OrganizationService from '../services/OrganizationService';\r\nimport DropdownService from '../services/DropdownService';\r\nimport moment from 'moment';\r\nimport CommentService from '../services/CommentService';\r\nimport BaseService from '../services/BaseService';\r\nimport Comments from './Comments';\r\nimport TextArea from 'antd/lib/input/TextArea';\r\nimport ProjectCard from './ProjectCard';\r\nimport EmployeeService from '../services/EmployeeService';\r\nimport { RouteComponentProps } from 'react-router';\r\nimport { History } from 'history';\r\nimport { RcFile } from 'antd/lib/upload';\r\nimport { AuditDTO, BasicEmployee, CommentsBase, ConflictOfInterestFileDTO, Employee, EmployeeWithPermissions, EmptyConflictOfInterest, EmptyOrgConflictOfInterest, GenericDTO, IConflictOfInterest, IOrgConflictOfInterst, OrgConflictOfInterestFileDTO, pagination, sorter } from '../models/Core';\r\n\r\n\r\nconst { Content } = Layout;\r\nconst { Option } = Select;\r\nconst { TabPane } = Tabs;\r\nconst { Dragger } = Upload;\r\nconst { Search } = Input;\r\n\r\nconst loadingIcon = ;\r\n\r\ntype IAddOfficerBtn = {\r\n coiID: number,\r\n empID: number,\r\n addEmployeeToList: Function\r\n}\r\n\r\n\r\nconst AddOfficerBtn = ({ coiID, empID, addEmployeeToList }: IAddOfficerBtn) => {\r\n const [loading, setLoading] = useState(false);\r\n const [added, setAdded] = useState(false);\r\n\r\n let addEmployee = async () => {\r\n setLoading(true);\r\n let data = await OrgCOIService.AddEmployeeAccess(coiID, empID);\r\n if (data) {\r\n addEmployeeToList();\r\n setAdded(true);\r\n\r\n }\r\n setLoading(false);\r\n }\r\n\r\n if (added) {\r\n return Added\r\n }\r\n return \r\n}\r\n\r\nconst AddAdvisorBtn = ({ coiID, empID, addEmployeeToList }: IAddOfficerBtn) => {\r\n const [loading, setLoading] = useState(false);\r\n const [added, setAdded] = useState(false);\r\n\r\n let addEmployee = async () => {\r\n setLoading(true);\r\n let data = await OrgCOIService.AssignAdvisor(coiID, empID);\r\n if (data) {\r\n addEmployeeToList();\r\n setAdded(true);\r\n\r\n }\r\n setLoading(false);\r\n }\r\n\r\n if (added) {\r\n return Assigned\r\n }\r\n return \r\n}\r\n\r\n\r\ntype IOrgCOIDetailParams = {\r\n id: string; // parameters will always be a string (even if they are numerical)\r\n};\r\n\r\n\r\ninterface IOrgCOIDetailProps extends RouteComponentProps {\r\n languageCode: string,\r\n history: History,\r\n user: EmployeeWithPermissions,\r\n\r\n}\r\n\r\ninterface IOrgCOIDetailState {\r\n loading: boolean,\r\n coi: IOrgConflictOfInterst,\r\n organizations: GenericDTO[],\r\n OrganizationName: null,\r\n ReviewComments: string,\r\n showEditModal: boolean,\r\n showStatusModal: boolean,\r\n showAssignAdvisorModal: boolean,\r\n statusModalTitle: string,\r\n editModalConfirmLoading: boolean,\r\n statusModalConfirmLoading: boolean,\r\n comments: CommentsBase[],\r\n languageCode: string,\r\n langData: any,\r\n showFileModal: boolean,\r\n ShareWithUser: boolean,\r\n EmailUser: boolean,\r\n EmailUserComment: string,\r\n fileList: RcFile[],\r\n coiFiles: OrgConflictOfInterestFileDTO[],\r\n auditHistory: AuditDTO[],\r\n coiAccessList: BasicEmployee[],\r\n CanDelete: boolean,\r\n orgCOIAssessmentResult: GenericDTO[],\r\n AssessmentResult: number,\r\n officerQuery: string,\r\n officerPag: pagination,\r\n officerSorter: sorter,\r\n officerSearchList: Employee[],\r\n officerModal: boolean,\r\n officerTotal: number,\r\n OrganizationID: number\r\n}\r\n\r\n\r\nexport default class OrgCOIDetail extends Component {\r\n constructor(props: IOrgCOIDetailProps) {\r\n super(props);\r\n this.state = {\r\n loading: false,\r\n coi: EmptyOrgConflictOfInterest,\r\n organizations: [],\r\n OrganizationName: null,\r\n ReviewComments: '',\r\n showEditModal: false,\r\n showStatusModal: false,\r\n statusModalTitle: '',\r\n editModalConfirmLoading: false,\r\n statusModalConfirmLoading: false,\r\n comments: [],\r\n languageCode: props.languageCode,\r\n langData: {},\r\n showFileModal: false,\r\n ShareWithUser: false,\r\n EmailUser: false,\r\n EmailUserComment: '',\r\n fileList: [],\r\n coiFiles: [],\r\n auditHistory: [],\r\n coiAccessList: [],\r\n CanDelete: false,\r\n orgCOIAssessmentResult: [],\r\n AssessmentResult: 0,\r\n officerQuery: \"\",\r\n officerPag: {\r\n current: 1,\r\n pageSize: 10,\r\n total: 0\r\n\r\n },\r\n officerSorter: {\r\n field: '',\r\n order: '',\r\n },\r\n officerSearchList: [],\r\n officerModal: false,\r\n officerTotal: 0,\r\n OrganizationID: 60,\r\n showAssignAdvisorModal: false\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.getLanguageData();\r\n }\r\n\r\n translate = (label: string) => {\r\n if (this.state.langData[label]) {\r\n return this.state.langData[label]\r\n }\r\n return label;\r\n }\r\n getLanguageData = async () => {\r\n this.setState({ loading: true }, async () => {\r\n const langData = await BaseService.getOrgCoiDetailsResources();\r\n this.setState({ langData });\r\n this.getData();\r\n\r\n })\r\n\r\n }\r\n\r\n checkIfJustLegalOfficer = () => {\r\n return this.props.user.IsLegalOfficer && (this.props.user.IsEthicOfficer === false && this.props.user.IsAdmin === false)\r\n }\r\n\r\n getData = () => {\r\n const { id } = this.props.match.params;\r\n\r\n if (id) {\r\n this.setState({ loading: true }, async () => {\r\n\r\n let organizations = [];\r\n let dropDowns = [];\r\n let coiAccessList: BasicEmployee[] = [];\r\n const coi = await OrgCOIService.getOrgCOI(id);\r\n if (!this.checkIfJustLegalOfficer()) {\r\n organizations = await OrganizationService.getOrganizations();\r\n dropDowns = await DropdownService.getCOIAssessmentResult();\r\n }\r\n\r\n if (coi.OrgConflictAccess) {\r\n coiAccessList = [...coi.OrgConflictAccess];\r\n }\r\n\r\n\r\n this.setState({\r\n loading: false, coi, organizations,\r\n OrganizationName: coi.Organization != null ? coi.Organization.Name : '',\r\n ReviewComments: coi.ReviewComments ? coi.ReviewComments : '',\r\n comments: coi.Comments ? coi.Comments : [],\r\n coiFiles: coi.Files ? coi.Files : [],\r\n auditHistory: coi.AuditHistory ? coi.AuditHistory : [],\r\n coiAccessList,\r\n CanDelete: coi.CanDelete,\r\n orgCOIAssessmentResult: dropDowns.orgCOIAssessmentResult ? dropDowns.orgCOIAssessmentResult : []\r\n })\r\n })\r\n }\r\n else {\r\n this.props.history.push('/actions');\r\n }\r\n }\r\n\r\n postComment = async (commentText: string) => {\r\n var res = await CommentService.AddOrgCOIComment(this.state.coi.ID, commentText);\r\n\r\n if (res) {\r\n const comments = [res, ...this.state.comments];\r\n this.setState({ comments });\r\n }\r\n\r\n }\r\n\r\n changeGiftStatus = () => {\r\n const { statusModalTitle, ReviewComments, coi, AssessmentResult } = this.state;\r\n\r\n this.setState({ loading: true, showStatusModal: false }, async () => {\r\n switch (statusModalTitle) {\r\n case 'Approve':\r\n await OrgCOIService.approveOrgCOI(coi.ID);\r\n this.getData();\r\n break;\r\n\r\n\r\n case 'UnderReview':\r\n await OrgCOIService.markUnderReviewOrgCOI(coi.ID);\r\n this.getData();\r\n break;\r\n\r\n case 'Reopen':\r\n await OrgCOIService.reopen(coi.ID);\r\n this.getData();\r\n break;\r\n\r\n case 'InReview':\r\n await OrgCOIService.markInReviewOrgCOI(coi.ID, ReviewComments);\r\n this.getData();\r\n break;\r\n case 'Closed':\r\n await OrgCOIService.closeOrgCOI(coi.ID, ReviewComments, AssessmentResult);\r\n this.getData();\r\n break;\r\n case 'Monitor':\r\n await OrgCOIService.monitorOrgCOI(coi.ID, ReviewComments, AssessmentResult);\r\n this.getData();\r\n break;\r\n\r\n case 'Delete':\r\n const data = await OrgCOIService.deleteOrgCOI(coi.ID);\r\n if (data && data.status === 200) {\r\n this.props.history.push(`/actions`)\r\n } else {\r\n this.getData();\r\n }\r\n break;\r\n\r\n default:\r\n await OrgCOIService.rejectOrgCOI(coi.ID);\r\n this.getData();\r\n break;\r\n }\r\n\r\n })\r\n }\r\n\r\n markInReview = async () => {\r\n await OrgCOIService.markUnderReviewOrgCOI(this.state.coi.ID);\r\n this.getData();\r\n }\r\n\r\n markReject = async () => {\r\n await OrgCOIService.rejectOrgCOI(this.state.coi.ID);\r\n this.getData();\r\n }\r\n\r\n markApprove = async () => {\r\n await OrgCOIService.approveOrgCOI(this.state.coi.ID);\r\n this.getData();\r\n }\r\n\r\n getStatus = () => {\r\n const text = this.state.coi.StatusName;\r\n switch (text) {\r\n case 'Submitted':\r\n return {this.translate(text)};\r\n case 'Approved':\r\n return {this.translate(text)};\r\n case 'Rejected':\r\n return {this.translate(text)};\r\n case 'InReview':\r\n return {this.translate(`org_${text}`)};\r\n case 'UnderReview':\r\n return {this.translate(`org_${text}`)};\r\n case 'Monitor':\r\n return {this.translate(text)};\r\n default:\r\n return {this.translate(text)};\r\n }\r\n }\r\n\r\n\r\n\r\n getSubTitles = () => {\r\n return
{this.getStatus()}
\r\n }\r\n\r\n\r\n removeUser = async (index: number, ID: number) => {\r\n let { coiAccessList, coi } = this.state;\r\n let data = await OrgCOIService.RemoveEmployeeAccess(coi.ID, ID);\r\n\r\n if (data && coiAccessList.length >= index) {\r\n coiAccessList = coiAccessList.filter(x => x.ID !== ID);\r\n this.setState({ coiAccessList })\r\n\r\n }\r\n }\r\n\r\n addEmployeeToList = (empID: number, empName: string) => {\r\n let accessList = this.state.coiAccessList;\r\n if (accessList === null) {\r\n accessList = [];\r\n }\r\n accessList.push({\r\n FullName: empName,\r\n ID: empID\r\n })\r\n this.setState({ coiAccessList: accessList })\r\n }\r\n getButtons = () => {\r\n\r\n let btns = [{\r\n key: \"2\", className: \"btn-success\", onClick: () => (\r\n this.setState({ statusModalTitle: 'Closed', showStatusModal: true })\r\n ), content: this.translate(\"Closed\")\r\n }];\r\n\r\n // let btns = [];\r\n\r\n if (this.state.coi.StatusName === 'Submitted' || this.state.coi.StatusName === 'InReview' || this.state.coi.StatusName === 'UnderReview' || this.state.coi.StatusName === 'Monitor') {\r\n\r\n if (this.state.coi.StatusName !== 'InReview') {\r\n btns.push(\r\n {\r\n key: \"1\", className: \"\", onClick: () => (\r\n this.setState({ statusModalTitle: 'InReview', showStatusModal: true })\r\n ), content: this.translate(\"org_InReview\")\r\n }\r\n )\r\n }\r\n\r\n if (this.state.coi.StatusName !== 'UnderReview') {\r\n btns.push(\r\n {\r\n key: \"5\", className: \"btn-review\", onClick: () => (\r\n this.setState({ statusModalTitle: 'UnderReview', showStatusModal: true })\r\n ), content: this.translate(\"org_UnderReview\")\r\n }\r\n )\r\n\r\n }\r\n if (this.state.coi.StatusName !== 'Monitor') {\r\n btns.push(\r\n {\r\n key: \"5\", className: \"btn-monitor\", onClick: () => (\r\n this.setState({ statusModalTitle: 'Monitor', showStatusModal: true })\r\n ), content: this.translate(\"Monitor\")\r\n }\r\n )\r\n\r\n }\r\n }\r\n\r\n else {\r\n btns = [];\r\n if (this.props.user.IsAdmin) {\r\n btns.push(\r\n {\r\n key: \"5\", className: \"\", onClick: () => (\r\n this.setState({ statusModalTitle: 'Reopen', showStatusModal: true })\r\n ), content: this.translate(\"Reopen\")\r\n }\r\n )\r\n\r\n }\r\n }\r\n\r\n\r\n if (this.state.coi.CanDelete) {\r\n btns.push(\r\n {\r\n key: \"8\", className: \"btn-delete\", onClick: () => (\r\n this.setState({ statusModalTitle: 'Delete', showStatusModal: true })\r\n ), content: this.translate(\"Delete\")\r\n }\r\n )\r\n }\r\n\r\n\r\n\r\n\r\n return btns.map(x => );\r\n }\r\n\r\n downloadFile = async (fileID: number) => {\r\n await OrgCOIService.downloadFileOrgCOI(fileID);\r\n }\r\n\r\n yesOrNo = (key: number) => {\r\n switch (key) {\r\n case 0:\r\n return 'Yes'\r\n break;\r\n case 1:\r\n return 'No'\r\n break;\r\n case 2:\r\n return 'DontKnow'\r\n break;\r\n default:\r\n return ''\r\n break;\r\n }\r\n }\r\n\r\n updateOrganization = () => {\r\n this.setState({ loading: true, showEditModal: false }, async () => {\r\n const { coi, OrganizationID } = this.state;\r\n await OrgCOIService.updateOrganizationOrgCOI(coi.ID, OrganizationID);\r\n this.getData();\r\n })\r\n }\r\n uploadFiles = async () => {\r\n const { EmailUserComment, EmailUser, ShareWithUser, fileList, coi } = this.state;\r\n\r\n const emailComment = EmailUser ? EmailUserComment : \"\"\r\n const result = await OrgCOIService.uploadFilesOrgCOI(fileList, coi.ID.toString(), String(ShareWithUser), String(EmailUser), emailComment);\r\n\r\n if (result) {\r\n this.setState(state => ({\r\n coiFiles: [...state.coiFiles, ...result],\r\n }));\r\n message.success(this.translate(\"FileUploaded\"))\r\n } else {\r\n message.error(this.translate(\"fileUploadError\"), 10)\r\n }\r\n this.setState({ showFileModal: false, EmailUserComment: '', EmailUser: false, ShareWithUser: false, fileList: [] })\r\n\r\n }\r\n\r\n\r\n getOfficerTable = async () => {\r\n const { officerPag, officerSorter, officerQuery } = this.state;\r\n const data = await EmployeeService.getOfficers(officerPag, officerSorter, officerQuery);\r\n this.setState({ officerSearchList: data.Search, officerTotal: data.Count });\r\n }\r\n\r\n handleTableChange = async (pagination: pagination, sorter: sorter) => {\r\n this.setState({ officerPag: pagination, officerSorter: sorter }, this.getOfficerTable);\r\n\r\n };\r\n\r\n searchQuery = (searchTerm: string) => {\r\n const officerPag = {\r\n current: 1,\r\n pageSize: 10,\r\n total: 0\r\n }\r\n this.setState({ officerQuery: searchTerm, officerPag }, this.getOfficerTable)\r\n }\r\n\r\n showOfficerModal = () => {\r\n this.getOfficerTable();\r\n this.setState({ officerModal: true });\r\n }\r\n\r\n showAdvisorModal = () => {\r\n this.getOfficerTable();\r\n this.setState({ showAssignAdvisorModal: true });\r\n }\r\n\r\n officerColumn = () => {\r\n const coiID = this.state.coi.ID;\r\n const accessList = this.state.coiAccessList;\r\n return [\r\n {\r\n title: this.translate(\"Name\"),\r\n dataIndex: 'FullName',\r\n\r\n },\r\n {\r\n title: this.translate(\"Add\"),\r\n render: (x: Employee) => {\r\n\r\n console.log(accessList.some(y => y.ID === x.ID), x.ID, accessList)\r\n\r\n if (accessList.some(y => y.ID === x.ID)) {\r\n return {this.translate(\"Added\")}\r\n }\r\n\r\n return this.addEmployeeToList(x.ID, x.FullName)} />\r\n }\r\n\r\n },\r\n\r\n\r\n ]\r\n }\r\n\r\n\r\n advisorColumn = () => {\r\n const coiID = this.state.coi.ID;\r\n const advisor = this.state.coi.AssignedAdvisorID;\r\n return [\r\n {\r\n title: this.translate(\"Name\"),\r\n dataIndex: 'FullName',\r\n\r\n },\r\n {\r\n title: this.translate(\"Set Advisor\"),\r\n render: (x: Employee) => {\r\n\r\n\r\n if (x.ID === advisor) {\r\n return {this.translate(\"CurrentAdvisor\")}\r\n }\r\n\r\n return { this.setState({ showAssignAdvisorModal: false }); this.getData() }} />\r\n }\r\n\r\n },\r\n\r\n\r\n ]\r\n }\r\n\r\n\r\n auditColumn = () => {\r\n return [\r\n {\r\n title: this.translate(\"ChangeType\"),\r\n dataIndex: 'ChangeTypeDisplay',\r\n\r\n },\r\n {\r\n title: this.translate(\"ColumnChanged\"),\r\n dataIndex: 'ColumnChanged',\r\n render: (ColumnChanged: string) => {\r\n\r\n\r\n return {this.translate(ColumnChanged)}\r\n }\r\n\r\n },\r\n {\r\n title: this.translate(\"OriginalValue\"),\r\n dataIndex: 'OriginalValueDisplay',\r\n render: (data: string) => {\r\n\r\n\r\n return {this.translate(data)}\r\n }\r\n\r\n },\r\n {\r\n title: this.translate(\"NewValue\"),\r\n dataIndex: 'NewValueDisplay',\r\n render: (data: string) => {\r\n if (data === \"UnderReview\" || data === \"InReview\") {\r\n return {this.translate(`org_${data}`)}\r\n\r\n }\r\n\r\n return {this.translate(data)}\r\n }\r\n\r\n },\r\n\r\n ]\r\n }\r\n\r\n render() {\r\n const { loading, coi, showEditModal, showStatusModal, statusModalTitle, ReviewComments,\r\n editModalConfirmLoading, statusModalConfirmLoading, auditHistory, OrganizationName, comments, ShareWithUser, coiFiles, showFileModal,\r\n EmailUserComment, EmailUser, organizations,\r\n coiAccessList,\r\n orgCOIAssessmentResult, officerSearchList, officerPag, officerTotal, OrganizationID } = this.state;\r\n\r\n return (\r\n
\r\n {\r\n loading ?\r\n \r\n :\r\n
\r\n \r\n window.history.length > 1 ? window.history.back() : this.props.history.push(`/actions`)}\r\n title={`${this.translate(\"OrgCOIID\")} - ${coi.ID}`}\r\n subTitle={this.getSubTitles()}\r\n extra={this.getButtons()}\r\n >\r\n\r\n\r\n
\r\n {\r\n coi.AdditionalComments ?\r\n\r\n \r\n\r\n :\r\n\r\n null\r\n }\r\n {\r\n coi.Justification ?\r\n\r\n \r\n\r\n :\r\n\r\n null\r\n }\r\n \r\n \r\n \r\n
\r\n {\r\n coi.CreatedBy ?\r\n

{this.translate(\"CreatedBy\")} {coi.CreatedBy.FullName} - {moment(coi.CreatedOn).local().format(\"MMM Do, YYYY\")}

\r\n :\r\n null\r\n }\r\n \r\n \r\n {coi.UpdatedBy ? \r\n \r\n

{this.translate(\"UpdatedBy\")} {coi.UpdatedBy.FullName} - {moment(coi.UpdatedOn).local().format(\"MMM Do, YYYY\")}

\r\n\r\n \r\n : null}\r\n\r\n \r\n \r\n {\r\n coi.Organization ?\r\n

{this.translate(\"Region\")} {coi.Organization.Name}\r\n {(this.props.user.IsAdmin || this.props.user.IsEthicOfficer) &&\r\n this.setState({ showEditModal: true })} />\r\n }\r\n

\r\n :\r\n null\r\n }\r\n \r\n \r\n \r\n \r\n {\r\n coi.StateProvince ?\r\n

{this.translate(\"State\")} {coi.StateProvince.Name}\r\n

\r\n :\r\n null\r\n }\r\n \r\n \r\n\r\n \r\n \r\n\r\n

{this.translate(\"AssignedAdvisor\")}{\r\n coi.AssignedAdvisorID ?\r\n {coi.AssignedTo.FullName}\r\n : {this.translate(\"NoAdvisor\")}}\r\n {(this.props.user.IsAdmin || this.props.user.IsEthicOfficer) &&\r\n this.showAdvisorModal()} />\r\n }\r\n

\r\n\r\n\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n {coi.Description}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {coi.MitigationProcess}\r\n \r\n \r\n \r\n
\r\n \r\n\r\n {coi.ConflictStatusName ? {this.translate(coi.ConflictStatusName)} : null}\r\n {coi.ProgramOfWork ? {this.translate(coi.ProgramOfWork.Name)} : null}\r\n {coi.WSPRoleType ? {this.translate(coi.WSPRoleTypeName)} : null}\r\n {coi.ConflictingProject != null ? {this.translate(this.yesOrNo(coi.ConflictingProject))} : null}\r\n {coi.IsTruthful != null ? {coi.IsTruthful ? this.translate(\"Yes\") : this.translate(\"No\")} : null}\r\n {coi.CreatedOn ? {moment(coi.CreatedOn).local().format(\"MMM Do, YYYY\")} : null}\r\n {coi.UpdatedOn ? {moment(coi.UpdatedOn).local().format(\"MMM Do, YYYY\")} : null}\r\n {coi.DescribeRequest != null ? {this.translate(coi.DescribeRequest)} : null}\r\n {coi.AssessmentResult != null ? {this.translate(coi.AssessmentResult)} : null}\r\n\r\n\r\n\r\n\r\n \r\n\r\n
\r\n {\r\n coi.Employee ?\r\n \r\n {coi.Employee.FullName}\r\n {coi.Employee.EmailAddress}\r\n {coi.Employee.PhoneNumber}\r\n \r\n :\r\n null\r\n }\r\n
\r\n\r\n\r\n \r\n {this.translate(\"Project\")} } key=\"5\">\r\n {coi.Projects && coi.Projects.length > 0 && coi.Projects.map(x => )}\r\n\r\n\r\n\r\n \r\n {this.translate(\"ConflictingProjects\")} } key=\"6\">\r\n\r\n {coi.ConflictingProjects && coi.ConflictingProjects.length > 0 && coi.ConflictingProjects.map(x => )}\r\n\r\n \r\n {this.translate(\"Comments\")} } key=\"2\">\r\n\r\n\r\n \r\n\r\n \r\n\r\n {this.translate(\"Files\")} } key=\"3\">\r\n
\r\n 0 ? { disabled: false } : { disabled: true }}\r\n onCancel={() => this.setState({ showFileModal: false })}>\r\n {\r\n this.setState(state => ({\r\n fileList: [...state.fileList, file],\r\n }));\r\n return false;\r\n }}\r\n fileList={this.state.fileList}\r\n onRemove={file => {\r\n this.setState(state => {\r\n const index = state.fileList.findIndex(x => x.uid === file.uid);\r\n const newFileList = state.fileList.slice();\r\n newFileList.splice(index, 1);\r\n return {\r\n fileList: newFileList,\r\n };\r\n });\r\n }}\r\n >\r\n

\r\n \r\n

\r\n

{this.translate(\"uploadText\")}

\r\n

\r\n {this.translate(\"uploadHint\")}\r\n

\r\n \r\n
\r\n\r\n
\r\n this.setState({ ShareWithUser: e.target.checked })}>{this.translate(\"ShareWithUser\")}\r\n this.setState({ EmailUser: e.target.checked })}>{this.translate(\"EmailUser\")}\r\n\r\n
\r\n
\r\n\r\n {EmailUser && \r\n \r\n }\r\n
\r\n\r\n\r\n {this.translate(\"Files\")}\r\n {!this.checkIfJustLegalOfficer() &&\r\n \r\n }\r\n\r\n }\r\n bordered\r\n dataSource={coiFiles}\r\n locale={\r\n { emptyText: this.translate(\"NoFiles\") }\r\n }\r\n renderItem={item => (\r\n \r\n this.downloadFile(item.ID)}\r\n >{item.Name}\r\n \r\n {item.Private && {this.translate(\"Private\")}}\r\n \r\n )}\r\n />\r\n
\r\n
\r\n {this.translate(\"AuditHistory\")} } key=\"4\">\r\n \r\n \r\n {auditHistory.map(audit => (\r\n \r\n

{`${audit.User.FullName} ${audit.User.Roles && audit.User.Roles.length > 0 ? `- ${audit.User.Roles.map(y => this.translate(y)).join(\", \")}` : ''} - ${moment(audit.CreatedData).local().format(\"MMM Do, YYYY h:mm:ss a\")}`}

}\r\n dataSource={audit.AuditDetails} columns={this.auditColumn()} style={{ width: '100%' }}\r\n size=\"small\" pagination={false}\r\n />\r\n\r\n\r\n \r\n ))}\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n {this.translate(\"Employee Access\")}} key=\"9\">\r\n \r\n \r\n \r\n \r\n (\r\n \r\n {item.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 \r\n \r\n }\r\n this.setState({ showEditModal: false })}>\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n this.setState({ officerModal: false })}\r\n onCancel={() => this.setState({ officerModal: false })}>\r\n\r\n this.searchQuery(searchValue)} />\r\n
`${total} ${this.translate(\"items\")}`,\r\n showSizeChanger: true,\r\n pageSizeOptions: ['10', '20', '50', '100', '500', '1000']\r\n }}\r\n\r\n onChange={() => this.handleTableChange}\r\n loading={loading}\r\n />\r\n\r\n \r\n\r\n this.setState({ showAssignAdvisorModal: false })}\r\n onCancel={() => this.setState({ showAssignAdvisorModal: false })}>\r\n\r\n this.searchQuery(searchValue)} />\r\n
`${total} ${this.translate(\"items\")}`,\r\n showSizeChanger: true,\r\n pageSizeOptions: ['10', '20', '50', '100', '500', '1000']\r\n }}\r\n\r\n onChange={() => this.handleTableChange}\r\n loading={loading}\r\n />\r\n\r\n \r\n this.setState({ showStatusModal: false })}>\r\n
\r\n\r\n {statusModalTitle === \"Closed\" ? \r\n { this.setState({ ReviewComments: e.target.value }) }} />\r\n\r\n\r\n\r\n :\r\n\r\n statusModalTitle !== \"Delete\" ?\r\n {this.translate(\"SetReviewState\")} \r\n : {this.translate(\"DeleteEntry\")}\r\n\r\n }\r\n {\r\n statusModalTitle === \"Closed\" &&\r\n\r\n \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 React, { Component } from 'react'\r\nimport { Layout, Menu, Avatar, Spin, notification, Button } from 'antd';\r\nimport Gifts from '../components/Gifts';\r\nimport Dashboard from '../components/Dashboard';\r\nimport Admin from '../components/Admin';\r\nimport _ from 'lodash';\r\nimport { Route, Link, NavLink } from 'react-router-dom';\r\nimport { WithAdalLoginApi, AuthContext, adalConfig } from '../config/AdalConfig';\r\nimport { UserOutlined } from '@ant-design/icons';\r\nimport GiftDetail from '../components/GiftDetail';\r\nimport COIDetail from '../components/COIDetail';\r\nimport OrgCOIDetail from '../components/OrgCOIDetail';\r\nimport AuthService from '../services/AuthService';\r\nimport BaseService from '../services/BaseService';\r\nimport { ArgsProps } from 'antd/lib/message';\r\nimport { EmployeeWithPermissions, emptyEmployee, EmptyFilter, FilterDTO, pagination, sorter } from '../models/Core';\r\nimport { History } from 'history';\r\nimport EmployeeService from '../services/EmployeeService';\r\n\r\n\r\n\r\nconst { Header, Content, Footer } = Layout;\r\n\r\ninterface IRoutes {\r\n key: number,\r\n menu: string | null,\r\n route: string,\r\n menuRoute: string,\r\n exact: boolean,\r\n component: any\r\n}\r\n\r\n\r\nlet routes: IRoutes[] = [\r\n { key: 1, menu: 'Dashboard', menuRoute: '/Dashboard', route: '/Dashboard', component: Dashboard, exact: true },\r\n\r\n { key: 2, menu: 'Actions', menuRoute: '/', route: '/', component: Gifts, exact: false },\r\n\r\n { key: 4, menu: null, menuRoute: '/actions/:id', route: '/actions/:id', component: GiftDetail, exact: true },\r\n { key: 5, menu: null, menuRoute: '/coiActions/:id', route: '/coiActions/:id', component: COIDetail, exact: true },\r\n { key: 6, menu: null, menuRoute: '/Organisational/:id', route: '/Organisational/:id', component: OrgCOIDetail, exact: true },\r\n\r\n];\r\n\r\ninterface IHomeProps {\r\n history: History,\r\n\r\n}\r\n\r\ninterface IHomeState {\r\n path: string,\r\n selectedPathIndex: string,\r\n user: EmployeeWithPermissions,\r\n loading: boolean,\r\n supportedLanguages: string[],\r\n resources: any,\r\n languageCode: string,\r\n canUse: boolean,\r\n CanViewOrgCOI: boolean,\r\n userFilter: FilterDTO,\r\n pagination: pagination,\r\n sorter: sorter,\r\n currentTab: string,\r\n textSearchQuery: string,\r\n userPhoto: string\r\n}\r\n\r\n\r\nexport default class Home extends Component {\r\n constructor(props: IHomeProps) {\r\n super(props)\r\n this.state = {\r\n path: '',\r\n selectedPathIndex: \"2\",\r\n user: {\r\n ...emptyEmployee,\r\n IsAdmin: false,\r\n IsLegalOfficer: false,\r\n IsEthicOfficer: false,\r\n CanViewOrgCOI: false,\r\n RoleID: 0\r\n },\r\n loading: false,\r\n supportedLanguages: [],\r\n resources: {},\r\n languageCode: '',\r\n canUse: false,\r\n CanViewOrgCOI: false,\r\n userFilter: EmptyFilter,\r\n pagination: {\r\n current: 1,\r\n pageSize: 10,\r\n total: 0\r\n },\r\n sorter: {\r\n field: \"\",\r\n order: \"\"\r\n },\r\n currentTab: \"2\",\r\n textSearchQuery: \"\",\r\n userPhoto: \"\"\r\n\r\n }\r\n }\r\n componentWillMount() {\r\n // if (!AuthContext.getCachedToken(AdalConfig.clientId) || !AuthContext.getCachedUser()) {\r\n // this.props.history.push({ pathname: '/auth' })\r\n // }\r\n\r\n // const selectedPathIndex = _.find(routes, { route: window.location.pathname })['key']\r\n // this.setState({ selectedPathIndex: selectedPathIndex.toString() })\r\n }\r\n\r\n componentDidMount() {\r\n this.setState({ loading: true }, () => {\r\n this.getData();\r\n })\r\n }\r\n\r\n getData = async () => {\r\n AuthService.getLoggedInUser().then(async (user: EmployeeWithPermissions) => {\r\n const canUse = user.RoleID > 1;\r\n if (user.IsAdmin || user.IsEthicOfficer) {\r\n\r\n routes.push({ key: 7, menu: \"Admin\", menuRoute: '/admin/', route: '/admin/:id?', component: Admin, exact: true })\r\n }\r\n await BaseService.setCurrentLanguage('en');\r\n\r\n this.setState({\r\n user,\r\n canUse,\r\n CanViewOrgCOI: user.CanViewOrgCOI,\r\n languageCode: 'en'\r\n })\r\n\r\n\r\n //If user is just legal officer skip dashboard\r\n if (user.IsLegalOfficer && (user.IsEthicOfficer === false && user.IsAdmin === false)) {\r\n routes = routes.filter(x => x.key === 2 || x.key === 6);\r\n console.log(routes)\r\n this.setState({ currentTab: \"4\" });\r\n if (this.props.history.location.pathname === \"/\") {\r\n this.props.history.push(`/actions`)\r\n }\r\n }\r\n await this.getLanguageData();\r\n\r\n this.setState({ loading: false });\r\n let photo = await AuthService.userPhotoByID(user.UsersAzureID);\r\n if (photo) {\r\n this.setState({ userPhoto: photo });\r\n }\r\n }).catch(() => {\r\n this.setState({ canUse: false, loading: false })\r\n });\r\n\r\n\r\n\r\n\r\n\r\n }\r\n\r\n updateSearchFilter = async (userFilter: FilterDTO) => {\r\n this.setState({ userFilter });\r\n }\r\n\r\n updatePagination = async (pagination: pagination) => {\r\n this.setState({ pagination });\r\n }\r\n\r\n updateSorter = async (sorter: sorter) => {\r\n\r\n this.setState({ sorter });\r\n }\r\n\r\n setTextSearchQuery = (query: string) => {\r\n this.setState({ textSearchQuery: query })\r\n }\r\n\r\n\r\n\r\n getLanguageData = async () => {\r\n\r\n return new Promise(async (res, _) => {\r\n let currentLanguage = await BaseService.getCurrentLanguage();\r\n if (currentLanguage === null) {\r\n currentLanguage = 'en';\r\n BaseService.setCurrentLanguage(currentLanguage);\r\n }\r\n\r\n const supportedLanguages = await BaseService.getLanguages();\r\n const resources = await BaseService.getHubNavResources();\r\n\r\n\r\n res(this.setState({ supportedLanguages, resources, languageCode: currentLanguage }));\r\n })\r\n\r\n\r\n\r\n }\r\n\r\n\r\n translate = (label: string) => {\r\n if (this.state.resources[label]) {\r\n return this.state.resources[label]\r\n }\r\n return label;\r\n }\r\n\r\n setLanguage = async (lang: string) => {\r\n this.setState({ loading: true }, async () => {\r\n await BaseService.setCurrentLanguage('en');\r\n await this.getLanguageData();\r\n await EmployeeService.updatePreferredLanguage(lang);\r\n })\r\n }\r\n\r\n updateCurrentTab = (currentTab: string) => {\r\n this.setState({ currentTab });\r\n if (this.state.textSearchQuery.length > 0) {\r\n this.setState({ textSearchQuery: '' })\r\n }\r\n }\r\n\r\n isDEV = () => {\r\n const location = window.location.hostname;\r\n return (location.includes(\"localhost\")\r\n || location === \"127.0.0.1\" ||\r\n location.includes(\"gehhub\")\r\n );\r\n\r\n }\r\n\r\n render() {\r\n const { languageCode, canUse, loading, userFilter, pagination, sorter, currentTab, CanViewOrgCOI, user, textSearchQuery, userPhoto } = this.state;\r\n return (\r\n \r\n
\r\n \r\n {this.isDEV() ? DEV : null}\r\n {canUse && \r\n {\r\n routes.map(r => (\r\n r.menu &&\r\n \r\n {this.translate(r.menu)}\r\n \r\n\r\n ))\r\n }\r\n }\r\n {this.state.user.FullName}\r\n {\r\n userPhoto && userPhoto.length > 0 ?\r\n \r\n :\r\n } />\r\n }\r\n
\r\n {canUse ? \r\n
\r\n {\r\n routes.map(r => (\r\n (\r\n \r\n )} />\r\n ))\r\n }\r\n
\r\n
: loading ? : Please contact an admin for access}\r\n
© WSP Global - Build: {window.appVersion}
\r\n
\r\n )\r\n }\r\n}","import React, { Component, ReactElement } from 'react'\r\nimport packageJson from '../../package.json';\r\nwindow.appVersion = packageJson.version;\r\nwindow.buildDate = Date.now().toString();\r\n\r\nconst semverGreaterThan = (versionA: string, versionB: string) => {\r\n const versionsA = versionA.split(/\\./g);\r\n\r\n const versionsB = versionB.split(/\\./g);\r\n while (versionsA.length || versionsB.length) {\r\n const a = Number(versionsA.shift());\r\n\r\n const b = Number(versionsB.shift());\r\n // eslint-disable-next-line no-continue\r\n if (a === b) continue;\r\n // eslint-disable-next-line no-restricted-globals\r\n return a > b || isNaN(b);\r\n }\r\n return false;\r\n}\r\n\r\ninterface IProps {\r\n children(props: IState): ReactElement;\r\n}\r\n\r\ninterface IState {\r\n loading: boolean\r\n isLatestVersion: boolean\r\n refreshCacheAndReload(): void\r\n}\r\n\r\nexport default class CacheBuster extends React.Component {\r\n constructor(props: IProps) {\r\n super(props);\r\n this.state = {\r\n loading: true,\r\n isLatestVersion: false,\r\n refreshCacheAndReload: () => {\r\n console.log('Clearing cache and hard reloading...')\r\n if (caches) {\r\n // Service worker cache should be cleared with caches.delete()\r\n caches.keys().then(function (names) {\r\n for (let name of names) caches.delete(name);\r\n });\r\n }\r\n // delete browser cache and hard reload\r\n window.location.reload();\r\n }\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n fetch('api/Config/GetHubMeta')\r\n .then((response) => response.json())\r\n .then((meta) => {\r\n const latestVersion = meta.version;\r\n const currentVersion = window.appVersion;\r\n window.hash = meta.hash;\r\n const shouldForceRefresh = semverGreaterThan(latestVersion, currentVersion);\r\n if (shouldForceRefresh) {\r\n console.log(`We have a new version - ${latestVersion}. Should force refresh`);\r\n this.setState({ loading: false, isLatestVersion: false });\r\n } else {\r\n console.log(`You already have the latest version - ${latestVersion}. No cache refresh needed.`);\r\n this.setState({ loading: false, isLatestVersion: true });\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n const { loading, isLatestVersion, refreshCacheAndReload } = this.state;\r\n return <>{this.props.children({ loading, isLatestVersion, refreshCacheAndReload })};\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { Switch, Route } from 'react-router';\r\nimport { createBrowserHistory } from \"history\";\r\nimport Auth from './views/Auth';\r\nimport Home from './views/Home';\r\nimport CacheBuster from './components/CacheBuster';\r\n\r\nconst history = createBrowserHistory();\r\n\r\nexport default class App extends Component {\r\n static displayName = App.name;\r\n\r\n render() {\r\n return (\r\n \r\n\r\n {({ loading, isLatestVersion, refreshCacheAndReload }) => {\r\n if (loading) return null;\r\n if (!loading && !isLatestVersion) {\r\n refreshCacheAndReload();\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","// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport default function register() {\r\n if ('serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n // setUpUpdateCheck(swUrl);\r\n registerValidSW(swUrl);\r\n\r\n // if (isLocalhost) {\r\n // // This is running on localhost. Lets check if a service worker still exists or not.\r\n // checkValidServiceWorker(swUrl);\r\n // } else {\r\n\r\n // // Is not local host. Just register service worker\r\n // registerValidSW(swUrl);\r\n // }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n console.log('New content is available; please refresh.');\r\n\r\n if (registration && registration.waiting) {\r\n registration.waiting.postMessage({ type: 'SKIP_WAITING' });\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\n// function skip() {\r\n// self.skipWaiting();\r\n// }\r\n\r\n// function setUpUpdateCheck(swURL) {\r\n// window.isUpdateAvailale = new Promise(function (res, rej) {\r\n// navigator.serviceWorker\r\n// .register(swURL)\r\n// .then(registration => {\r\n// registration.onupdatefound = () => {\r\n// const installingWorker = registration.installing;\r\n// installingWorker.onstatechange = () => {\r\n// if (installingWorker.state === 'installed') {\r\n// if (navigator.serviceWorker.controller) {\r\n// res(true, () => skip())\r\n// console.log('New content is available; please refresh.');\r\n// } else {\r\n// // At this point, everything has been precached.\r\n// // It's the perfect time to display a\r\n// // \"Content is cached for offline use.\" message.\r\n\r\n// res(false, () => console.log('No new content'))\r\n// console.log('Content is cached for offline use.');\r\n// }\r\n// }\r\n// };\r\n// };\r\n// })\r\n// .catch(error => {\r\n// console.error('Error during service worker registration:', error);\r\n// rej();\r\n// });\r\n// })\r\n// }\r\n\r\n\r\n\r\nfunction checkValidServiceWorker(swUrl) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n if (\r\n response.status === 404 ||\r\n response.headers.get('content-type').indexOf('javascript') === -1\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://cra.link/PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\r\n);\r\n\r\ntype Config = {\r\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\r\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\r\n};\r\n\r\nexport function register(config?: Config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://cra.link/PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl: string, config?: Config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then((registration) => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://cra.link/PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch((error) => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' },\r\n })\r\n .then((response) => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then((registration) => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log('No internet connection found. App is running in offline mode.');\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready\r\n .then((registration) => {\r\n registration.unregister();\r\n })\r\n .catch((error) => {\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","// import 'bootstrap/dist/css/bootstrap.css';\r\nimport 'antd/dist/antd.css';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport App from './App';\r\nimport registerServiceWorker from './registerServiceWorker';\r\nimport * as serviceWorkerRegistration from './serviceWorkerRegistration';\r\n\r\n\r\nimport { runWithAdal } from 'react-adal';\r\nimport { AuthContext } from './config/AdalConfig';\r\n\r\nimport './custom.css'\r\nimport { message } from 'antd';\r\n\r\nconst DO_NOT_LOGIN = false;\r\n\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nconst rootElement = document.getElementById('root');\r\n\r\nconst newVersionLoading = () => {\r\n message.info(\"New version of app loading. Please Wait...\")\r\n}\r\n\r\nconst newVersionLoaded = () => {\r\n message.success(\"New version of app loaded.\")\r\n}\r\n\r\nconst swConfig = {\r\n onSuccess: newVersionLoaded,\r\n onUpdate: newVersionLoading\r\n};\r\n\r\n\r\nrunWithAdal(AuthContext, () => {\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n rootElement);\r\n}, DO_NOT_LOGIN)\r\n\r\n\r\n// temporarily disabling until a better fix or full deployment\r\n// registerServiceWorker();\r\nserviceWorkerRegistration.register(swConfig);\r\n"],"sourceRoot":""}