{"version":3,"sources":["redux/actions/viewpointActions.js","services/api.js","services/authService.js","services/apiService.js","services/helper.js","redux/reducers/userReducer.js","redux/reducers/projectReducer.js","components/enums/issueOwner.js","components/enums/roleAction.js","components/enums/pageState.js","components/enums/editResult.js","components/enums/issueLogEntryType.js","components/enums/exportKind.js","components/enums/exportType.js","components/enums/workPhaseType.js","components/enums/workPhaseKind.js","components/enums/issueVisibility.js","components/enums/propertyAssignmentStatus.js","components/enums/processStatus.js","components/enums/publishPanelKind.js","redux/reducers/issueListReducer.js","redux/reducers/viewpointReducer.js","redux/reducers/filterReducer.js","redux/reducers/detailReducer.js","redux/reducers/commentReducer.js","redux/reducers/metaDataReducer.js","redux/reducers/modelReducer.js","redux/reducers/editReducer.js","redux/reducers/processReducer.js","redux/reducers/issueDescriptorReducer.js","redux/reducers/emailReducer.js","redux/reducers/index.js","redux/store.js","redux/actions/userActions.js","redux/actions/projActions.js","redux/actions/issuesActions.js","redux/actions/filterActions.js","redux/actions/detailActions.js","redux/actions/editIssueActions.js","redux/actions/syncActions.js","redux/actions/metaDataActions.js","redux/actions/modelActions.js","redux/actions/processActions.js","redux/actions/issueDescriptorActions.js","components/helper/converter.js","components/helper/getter.js","components/helper/version.js","assets/visoplan-white.png","components/login.js","assets/logout.png","components/projects.js","components/controls/viso_select.js","components/controls/importItem.js","components/importModel.js","components/controls/CreateNameSelect.js","components/exportModel.js","components/models.js","components/controls/image.js","assets/sample.png","components/controls/svg.js","components/controls/circle.js","components/controls/issueItem.js","components/issueList.js","assets/Filter.png","components/controls/statusSelect.js","components/controls/viso_collapse.js","components/controls/metaDataCollapse.js","assets/comment.svg","assets/d-comment.svg","assets/history.svg","assets/d-history.svg","components/controls/expandableTextblock.js","components/controls/issueHistory.js","components/issueDetail.js","components/controls/viso_datepicker.js","assets/calendar.png","components/issueFilter.js","components/issueEdit.js","assets/check.svg","components/exportOther.js","components/publishCtrls/publishMainPanel.js","components/publishCtrls/publishSetFile.js","components/publishCtrls/publishUploadCheckPanel.js","components/exportPublisher.js","components/exportManager.js","components/models/ProcessModel.js","components/controls/processItem.js","components/controls/processresultItem.js","components/editProcess.js","components/issueManager.js","App.js","index.js","redux/constants/userConstants.js","redux/constants/projConstants.js","redux/constants/issuesConstants.js","redux/constants/viewpointConstants.js","redux/constants/filterConstants.js","redux/constants/detailConstants.js","redux/constants/commentConstants.js","redux/constants/metaDataConstants.js","redux/constants/modelConstants.js","redux/constants/editConstants.js","redux/constants/processConstants.js","redux/constants/issueDescriptorConstant.js","redux/constants/emailConstants.js"],"names":["viewpointActions","getViewpoint","ids","dispatch","apiService","getArrayData","then","viewpoints","type","viewpointConstants","VP_GETALL","payload","insertViewpoints","catch","err","console","log","message","getImage","id","getResourceStream","res","data","image","Buffer","from","toString","VP_ADD_RESOURCE","img","insertImage","postImage","VP_SET_SNAPSHOTID","clearSnapshot","VP_CLEAR_SNAPSHOT","instance","axios","create","defaults","headers","common","serviceHelper","getClientId","authService","login","logout","refresh","email","password","remember","JSON","stringify","Mail","Password","Remember","API","post","getBaseURL","delete","authHeader","isAvailable","get","Error","getCurrentUser","postData","putData","deleteData","patchData","syncData","getIfcStream","downloadDocumentVersion","uploadIfcStream","getFolderData","getDataByEndpoint","getDocumentVersions","getPropertyAssignment","getPropertyDefinition","patchIfcDocument","checkUploadDocument","getProjectToken","getProjects","deleteDataByEndpoint","subIds","splitIds","promises","map","getEndpoint","Promise","all","responses","forEach","endpoint","projectTokenHeader","reduce","result","item","index","chunkIndex","Math","floor","push","resourceHeader","put","uploadHeader","deleteConfig","patch","bearer","Accept","versionId","undefined","syncHeader","projId","filterData","processId","folderId","docStatusId","fileName","blob","Blob","formData","FormData","append","projectId","token","getToken","contentLanguage","window","isGerman","Authorization","expires","expireTime","Date","parse","now","baseUrl","endPoint","join","responseType","ContentType","localStorage","getItem","baseURL","initialState","loggedIn","loggingIn","currentUser","projects","selectedProject","addedIssue","issueOwner","ALL","value","label","PERSONAL","roleAction","pageState","IMPORTMODEL","EXPORTPAGE","ISSUELIST","DETAILISSUE","EDITISSUE","FILTERISSUE","PROCESS","editResult","issueLogEntryType","exportKind","exportType","DWG","PNG","JPG","workPhaseType","LPH11","LPH21","LPH22","LPH31","LPH32","LPH33","LPH41","LPH51","LPH52","LPH53","LPH61","LPH62","Stage0","Stage1","Stage2","Stage3","Stage4","Stage5","Stage6","Stage7","LPH1","LPH2","LPH3","LPH4","LPH5","LPH6","LPH7","LPH8","LPH9","workPhaseKind","issueVisibility","PUBLIC","PRIVATE","RESTRICTED","propertyAssignmentStatus","processStatus","publishPanelKind","issues","owner","resources","snapshotId","snapshotFlag","selectedIssue","comments","disciplines","buildings","floors","models","processes","priorities","statuses","types","emails","combineReducers","user","state","action","userConstants","USER_LOGIN","USER_LOGOUT","USER_REFRESH","USER_LOGGING","USER_CURRENT","project","projConstants","PROJ_GETAll","PROJ_OPEN","origin","issueIds","length","PROJ_CLEAR","PROJ_RETURN","PROJ_RESETISSUEFLAG","issuesConstants","ISSUES_GETALL","ISSUES_OWNER","ISSUES_CLEAR","ISSUES_UPDATE","updateIssue","findIndex","i","splice","ISSUES_INSERT","ISSUES_EXTERNAL","ISSUES_RESET_OWNER","viewpoint","newVPs","oldVPs","filter","v","some","vp","concat","VP_CLEAR","rc","find","r","VP_DELETE","deletedVpIds","updateVps","includes","deleted","filterConstants","FILTER_APPLY","FILTER_RESET","detail","detailConstants","DETAIL_SELECT","DETAIL_CLEAR","comment","commentConstants","COMMENT_GET","COMMENT_CLAER","COMMENT_ADD","metaData","metaDataConstants","DISCIPLINE","BUILDING","FLOOR","modelConstants","MODEL_GETALL","MODEL_CLEAR","editReport","editConstants","EDIT_SUCCESS","EDIT_FAIL","EDIT_RESET","processConstants","PROCESS_GETALL","PROCESS_CLEAR","issueDescriptor","issueDescriptorConstants","PRIORITY","STATUS","TYPE","emailConstants","GET_EMAIL","createStore","rootReducer","applyMiddleware","thunkMiddleware","TOKEN","userActions","history","response","setItem","getUser","registerResult","error","removeItem","projActions","registerProjects","openProject","tagIds","tags","workPhaseIds","workPhases","issueQuery","q","name","FILTER_NAME","query","uiFilterSettings","issueFilter","registerIssueQuery","registerProject","returnProjects","status","issuesActions","getIssues","registerIssues","clearSelectedIssue","setOwner","resetOwner","resetAddedIssueFlag","filterActions","applyFilter","registerFilter","resetFilter","detailActions","issue","getComments","registerComments","clearComments","sendComment","updateStatus","updateIssueStatus","editIssueActions","createIssue","newIssue","newVps","issueId","vRes","insertNewIssue","vErr","deletedIds","newViewpoints","dErr","resetPageState","syncActions","syncProject","setCurrentProject","modelIds","previewDtos","m","changedFile","updateModels","processIds","approved","p","updateProcesses","syncIssue","viewpointIds","metaDataActions","getDisciplines","setDisciplines","getBuildings","setBuildings","getFloors","setFloors","modelActions","getModels","registerModels","processActions","getProcesses","d","registerProcesses","issueDescriptorActions","getIssueDescriptors","setPriorities","setStatuses","setTypes","converters","getOptionsFromEnum","enumObject","addAll","lang","de","en","options","getData","Object","keys","k","getOptionsFromObject","object","key","getLabelByValue","prospect","values","getOptionsFromMetaData","abbreviation","getOptionsFromTag","t","getOptionsFromWorkPhaseKind","kind","getOptionsFromWorkphase","wp","getter","getTokenBearer","getHistoryContent","logEntry","content","entryType","oldValue","newValue","getDescriptorName","oldId","newId","Moment","format","counts","getObjectListCount","removedCount","addedCount","items","getRoleActions","role","collaboratorRoles","collaboratorId","definition","collaboratorRoleDefinitions","roleDefinitionId","actions","getWorkPhase","work","w","getRoleId","userId","isIssueVisible","roleId","creatAuthorId","reviewerId","assignedUserIds","visibility","allowedRoles","isActionAllowed","roleActions","actionMap","a","isAllowed","version","getVersion","getVersionMark","mark","url","getUpdatedVersionUrl","pipeline","archicadVersion","pluginVersion","Login","props","handleSubmit","e","preventDefault","setState","flag","handleMailChanged","target","handlePasswordChanged","handleRememberChanged","checked","updateAvailable","latestVersion","this","timerId","setInterval","getApplicationInfo","GetApplicationInfo","clearInterval","getUpdatedVersionInfo","require","method","v1","v2","v1Parts","split","Number","v2Parts","versionCompare","showNotification","replace","AlertAPI","visible","className","onSubmit","style","textAlign","src","alt","htmlFor","placeholder","onChange","color","display","width","height","paddingRight","React","Component","connect","Projects","seletedItem","handleLogout","bind","handleSelectProject","handleOpenProject","prevProps","projectIds","loadProjects","parentNode","rowIndex","trialExpired","retrieveDisciplines","disciplineMetaDataIds","retrieveBuildings","buildingMetaDataIds","retrieveFloors","layerMetaDataIds","retrieveDescriptors","creationDate","onClick","renderTableData","customStyles","menuList","base","background","backgroundColor","borderColor","borderRadius","option","provided","control","border","minHeight","menuPortal","zIndex","DropdownIndicator","components","icon","selectProps","menuIsOpen","faCaretUp","faCaretDown","Option","isSelected","ValueContainer","children","getValue","hasValue","nbValues","selectInput","Children","toArray","input","VisoSelect","handleChange","selectedOption","isMultiSelect","o","disabled","getDefaultOption","defaultValue","isClearable","searchable","isSearchable","isMulti","closeMenuOnSelect","hideSelectedOptions","menuPlacement","menuPortalTarget","document","body","styles","theme","colors","primary","primary25","primary50","isDisabled","library","add","faTimes","faTimesCircle","ImportItem","handleChangeDiscipline","discipline","disciplineId","handleChangeBuilding","building","buildingId","handleChangeFloor","floorId","handleChangeVersion","fileId","selectedFileId","handleMouseEnter","isHover","handleMouseLeave","handleDelete","onDelete","isUpdated","isAddable","versionModels","selectedModelId","isDisciplineAlone","isBuildingAlone","isFloorAlone","initialize","prevState","model","disciplineMetaDataId","checkState","buildingMetaDataId","floorMetaDataId","onChangeFileId","getModelVersions","getFileExtension","alertAPI","pop","toLowerCase","addable","isStringFull","b","f","sort","isAdded","margin","getDisciplineName","getBuildingName","getFloorName","onMouseEnter","onMouseLeave","ModelList","handleChangeFileId","importing_ifc","handleSelectModel","handleImportModel","ImportModel","displayModels","importModelInApp","RegisterIfcFileName","ImportIfcFile","modelData","extension","modelInfos","ImportIfcFiles","onGotoIssuePage","Backdrop","alignItems","alignContent","open","CircularProgress","isBad","CreateNameSelect","forwardRef","ref","useState","setValue","useEffect","current","ExportModel","handleExportModel","canExport","nameRef","isFillText","exporting_ifc","ExportIFCModel","generateExportData","onUploadCheck","folder","precheckResults","preCheckResult","success","checkResult","cleanFileName","predictedVersion","namingSchemeName","isExportEnable","namingSchemeResults","nsr","displayErrorNameScheme","onChangeOnlyVisibleElement","isOnlyVisibleElement","onChangeIfcMapping","isIfcMapping","handleOpenFile","openMappingFile","onFolderChange","onNameChange","getSchemeResult","nameScheme","errorType","failedGroupName","onSetAutoImport","isAutoImport","fileNames","isOpenModal","isSetName","isSetDiscipline","isSetBuilding","isSetFloor","uploadHandle","isChecked","mappingFilePath","mappingData","treeData","modelHistories","createRef","openExportModal","closeExportModal","handleClickCheck","requestFileName","requestExportHistory","mappingInfo","saveExportHistory","isModel","disposeInterval","getFileNamesInFolder","histories","documentQuery","names","slice","Set","n","getTreeData","folders","getFolderTree","title","folderData","docs","folderChildren","sub","RequestFileName","checkRoleAction","exportData","onlyVisible","useMapFile","text","trim","docString","documents","persistDto","finishExportModel","documentVersion","doc","versionNumber","uploadDate","ifc","ifcFile","categoryMetaDataId","storeAsDocument","c","random","file","reader","FileReader","readAsText","onloadend","readerData","xml","XMLParser","ignoreAttributes","SchemeItemList","firstName","errorPosition","middleName","errorLength","lastName","suffixIcon","CaretDownFilled","dropdownStyle","maxHeight","overflow","minWidth","readOnly","faFolder","fontWeight","whiteSpace","textOverflow","renderDocName","justifyContent","ModelPage","currentState","handleChangePage","changePage","handleGotoIssuePage","page","onSetPage","isImportPage","EXPORTMODEL","Image","selectable","deletable","hanldeMouseLeave","handleClick","parseInt","indexOf","selectViewpoint","vId","deleteViewpoint","isList","marginLeft","marginRight","maxWidth","getTypeSvg","viewBox","fill","xmlns","getGeneralSvg","rx","stroke","transform","Circle","IssueItem","imageId","elementIds","handleSelectIssue","handleDoubleClick","getIssueInformation","vpIds","addViewpoint","getElementCounts","thumbnailImageId","linkedComponentsGlobalIds","linkIds","HighlightComponentIds","onDblClick","dueDate","onDoubleClick","padding","issueType","issueStatus","issueNumber","description","childrenIds","assignedUsers","textDecoration","Search","Input","IssueList","skip","keyword","setScrollPosition","newSkip","listBody","getElementById","initial","scrollTop","scrollHeight","clientHeight","wheelCount","toISOString","sId","top","finally","isLoading","handleSearch","listenScrollEvent","creatable","handleChangeOwner","handleOpenFilter","hanldleNewIssue","handleOpenIssue","setCreatable","syncIssues","addedFlag","changeOwner","allowClear","float","paddingLeft","onWheel","renderIssues","opened","menu","position","right","StatusSelect","faCaretSquareDown","faCaretSquareUp","VisoCollapse","isCollapsed","defaultState","count","keyString","desc","getDesc","MetaDataCollapse","renderMetadatas","ExpandableTextBlock","isMore","setIsMore","formatLocaleDate","date","locale","IssueLog","users","workphases","toggleDetails","event","parentElement","classList","toggle","dangerouslySetInnerHTML","__html","u","documentVersionId","IssueHistory","localeDate","faArrowDown","IssueDetail","handleGoBack","changeStatus","issueDto","Id","StatusId","changeComment","commentDto","IssueId","Text","SelectViewpoint","makeApiViewpointData","editIssue","handleDownloadDocument","docData","URL","createObjectURL","link","createElement","href","download","click","revokeObjectURL","handleClickComment","isComment","historyImg","DeactHistoryImg","handleClickHistory","commentImg","DeactCommentImg","handleSetCommentImg","handleSetHistoryImg","onClickTask","task","openIssue","elements","comboDeactivity","editable","isCommentCreatable","docVersions","issueHistories","workPhaseName","linkedMails","mainTasks","subTasks","retrieveData","getViewpoints","getMetaData","requestElementNames","setActivity","setEditable","setCommentCreatable","getDocVersions","getIssueHistories","getTags","getMails","getTasks","workPhase","workPhaseId","linkedEmailIds","parentId","logId","issueLogId","logEntries","issueLogEntries","userPreviews","docVersionIds","linkedDocumentVersionIds","docIds","documentId","docVersionData","documentVersionIds","floorMetaDataIds","commentIds","vps","GetElementNames","elemInfos","activity","getActivity","order","createAuthorId","getEditable","apiVp","cameraType","location","direction","up","cameraFactor","selectedGlobalIds","visualStates","visbilityExceptionGlobalIds","sections","s","createAuthor","cursor","getMetaDataMap","metadata","mapData","tag","mail","subject","tasks","startDate","startingDate","getStatuses","renderTags","source","issuePriority","renderAssignedUsers","renderViewpoints","renderElements","renderModels","renderDocuments","renderEmails","renderTasks","ActCommentImg","ActHistoryImg","renderComments","renderHistories","getLocaleMonth","moment","VisoDatePickerSelector","tempValue","clickPreviousMonth","subtract","toDate","clickNextMonth","clickDay","oldDate","dataDate","currentTarget","getAttribute","dataMonth","newDate","month","onChangeDate","hideSelector","render","datePickerSelectorClassName","isSelectorActive","colSpan","renderDaysInMonth","selectedDate","selectedTempDate","days","rows","j","row","VisoDatePickerLabel","toggleSelector","VisoDatePicker","onChangeShowSelector","del","showSelector","labelHeight","elementRef","ctop","parent","getElementsByClassName","getBoundingClientRect","childProps","IssueFilter","handleReset","handleApply","getIssueFilterSettings","changePriority","priority","changeSource","changeType","changeBuilding","changeFloor","changeDiscipline","changeWorkStage","workStage","changeTag","changeCreatedFrom","createdFrom","changeCreatedTo","createdTo","changeDueDateFrom","dueDateFrom","changeDueDateTo","dueDateTo","changeStartDateFrom","startDateFrom","changeStartDateTo","startDateTo","changeEditDateFrom","editDateFrom","changeEditDateTo","editDateTo","changeCreator","creator","changeReviewer","reviewer","changeAssigner","assigner","changeEditor","editor","workStages","sources","setFilterData","filterDto","creationDateAfter","creationDateBefore","dueDateAfter","dueDateBefore","startDateAfter","startDateBefore","editDateAfter","editDateBefore","statusIds","priorityId","typeId","buildingMetadataIds","editAuthorId","getStatusOptions","getPriorityOptions","getTypeOptions","getUserOptions","getSources","gridRow","Select","IssueEdit","handleChangeTags","issueTags","handleChangeStartDate","handleChangeWorkStage","checkBoxChanged","roleDefinitions","onChangeVisibility","onDeleteComponent","guid","ifcGuid","renderRoleDefinitions","isNew","assign","assigners","addComponent","deletingViewpoints","isEmptyTitle","isEmptyDesc","isEmptyAssigners","tempViewpoint","visibilities","handleCancle","handleCancel","handleSave","handleChangeTitle","handleChangeAssigner","handleChangeReviewer","handleChangePriority","handleChangeType","handleChangeDueDate","handleChangeDesc","handleAddComponent","handleAddViewpoint","handleDeleteViewpoint","invokeAddComponent","setPageState","originalName","roles","hasAllowedRole","vpIndex","adding","AddComponent","AddViewpoint","vpString","checkSavable","persistIssueDto","getPeristIssueDto","persistViewpointDtos","getPersistViewpointDtos","newVp","generatePersistViewpoint","persistViewpointDto","ProjectId","ImageId","ImageName","Index","CreatingTool","creatingTool","CameraType","Location","Direction","Up","CameraFactor","Visibility","SelectedGlobalIds","ColorGroups","TransparentGlobalIds","VisbilityExceptionGlobalIds","VisualStates","Source","st","Title","Description","DueDate","AssignedUserIds","ReviewerId","TypeId","PriorityId","componentIds","LinkedComponentsGlobalIds","StartingDate","element","onInput","dropdownRender","fileFormats","ExportOther","isCreated","handleCreate","Create2dPlan","exportFormat","handleExport","isExporting","Export2dPlan","handleChangeFileFormat","fileFormat","addFileExtension","changeUmlaut","docDatas","docNames","docName","exportHistories","exportOther","timeStamp","CheckImg","PublishSetItem","folderTree","useSelector","useRef","isExpanded","setIsExpanded","isImportModel","setIsImportModel","setLang","setFolder","setFileNames","setFileName","setDiscipline","setBuilding","setFloor","setIsBad","isIFC","setIsIFC","useImperativeHandle","uploadCheck","hide","show","isImport","ext","toUpperCase","onSetImportModel","fontFamily","fontSize","lineHeight","PublishMainPanel","onSetPanel","publishItems","childrenRefs","childRef","rs","publishSet","onfoldPublishSets","handleHideAll","handleUnfold","publishMainPanel","getPublishItems","setPublishHistory","sItems","jsPublishItems","jsPublishSet","onSetPublishData","isHidden","isAllHidden","marginBottom","renderItems","DirectoryTree","Tree","PublishSetFile","changePublishSet","onCheck","checkedItems","info","checkedPublishSets","checkedNodes","onAddFiles","onSetFiles","publisherSets","publishSetFile","getPublishSetOptions","header","getPublishSetItems","jsTree","checkable","virtual","checkedKeys","NamingSchemeResults","firstItem","setFirstItem","remainItems","setRemainItems","isExpand","setIsExpand","getErrorName","useCallback","namingSchemeResult","getNamingSchemeResultMessage","ValidateItem","precheckResult","getPrecheckResultMessage","predictedNamingScheme","renderNamingSchemes","PublishUploadCheckPanel","onExport","allSuccess","checkNameScheme","nameMap","generateNameFolderMap","persist","renderCheckResult","ExportPublisher","handleSetPanel","panelKind","handlePublishData","handleSetFiles","rootGuid","preparePublishDocs","handleUploadCheck","exporting_items","publishSets","exportPublisher","getPublishHeaders","getPublishSetHeaders","localeCompare","jsItems","completeExporting","ExportPage","handleChangeFrame","changeFrame","ProcessModel","processDto","process","imported","importedDate","PropertyValueType","ProcessItem","importProcess","checkAccessRight","getProcessDataNew","collIds","collaborators","creatorId","properties","propertyMap","globalId","property","propertyDefinitions","pro","propertyDefinitionId","getPropertValue","propertyName","propertySetName","def","definitions","propertyAssignments","assignment","componentGlobalId","valueType","textValue","booleanValue","intValue","realValue","textValues","faClock","faCheckCircle","ProcessResultItem","onSelectProperty","onSetDefinitionGuid","idx","acPropertyNames","defValue","setPropertyOptions","newProperty","isEditable","getStatus","elementName","initialImportResult","succeed","failed","isResult","FailedProcessReport","failedResult","noElementContent","setNoElementContent","readOnlyContent","setReadOnlyContent","notMatchedContent","setNotMatchedContent","notRecogContent","setNotRecogContent","noElements","readOnlys","notMatcheds","notRecogs","EditProcess","onMatchProperties","importResult","newAttributes","processResult","definitionGuid","setNewAttribute","onChangeNewAttribute","propertyNames","ac","getNewPropertyName","onAssignedProperty","getImportResultContent","isSucceeded","processList","getProcessHistory","getProcessDtos","saveProcessHistoryData","getProcessModels","retrieveProcessHistory","l","h","getDescription","diff","reviewDate","renderProcessList","newPropName","renderProcessResult","processResultElement","processListElement","IssueManager","handleGotoProcessPage","registerTempState","tempState","handleGotoProjects","handleGotoModelPage","handleChangeIssuePage","handleGotoExportPage","getPublishHistory","createInterval","savePublishHistory","temp","past","logoutImg","App","setTimeout","path","exact","component","ReactDOM","StrictMode","store"],"mappings":"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","file":"static/js/main.421e90a5.chunk.js","sourcesContent":["import { apiService } from \"../../services\";\r\nimport { viewpointConstants } from \"../constants\";\r\n\r\nexport const viewpointActions = {\r\n getViewpoint: getViewpointsAsync,\r\n getImage: getImageAsync,\r\n postImage: postImageAsync,\r\n clearSnapshot: clearSnapshot,\r\n};\r\n\r\nfunction getViewpointsAsync(ids) {\r\n return dispatch => {\r\n apiService.getArrayData('viewpoint', ids)\r\n .then(viewpoints => {\r\n dispatch(insertViewpoints(viewpoints));\r\n }).catch(err => {\r\n console.log('Fail getting viewpoint', err.message);\r\n });\r\n }\r\n\r\n function insertViewpoints(viewpoints) {\r\n return {\r\n type: viewpointConstants.VP_GETALL,\r\n payload: viewpoints\r\n }\r\n }\r\n}\r\n\r\nfunction getImageAsync(id) {\r\n return dispatch => {\r\n apiService.getResourceStream(id)\r\n .then(res => {\r\n dispatch(insertImage(id, res.data));\r\n }).catch(err => {\r\n console.log('Fail getting image', err.message);\r\n });\r\n }\r\n\r\n\r\n function insertImage(id, data) {\r\n let image = Buffer.from(data).toString('base64');\r\n image = 'data:image/png;base64,' + image;\r\n\r\n return {\r\n type: viewpointConstants.VP_ADD_RESOURCE,\r\n payload: { id: id, img: image }\r\n }\r\n }\r\n}\r\n\r\nfunction postImageAsync(id) {\r\n return {\r\n type: viewpointConstants.VP_SET_SNAPSHOTID,\r\n payload: id\r\n }\r\n}\r\n\r\nfunction clearSnapshot() {\r\n return {\r\n type: viewpointConstants.VP_CLEAR_SNAPSHOT\r\n }\r\n}","import axios from \"axios\";\r\nimport { serviceHelper } from \"./helper\";\r\n\r\nconst instance = axios.create();\r\n\r\ninstance.defaults.headers.common[\"Visoplan-Client-Id\"] =\r\n serviceHelper.getClientId();\r\n\r\nexport default instance;\r\n","import API from \"./api\";\r\nimport { serviceHelper } from \"./helper\";\r\n\r\nexport const authService = {\r\n login: loginAsync,\r\n logout: logoutAsync,\r\n refresh: refreshAsync,\r\n};\r\n\r\nasync function loginAsync(email, password, remember) {\r\n const data = JSON.stringify({\r\n Mail: email,\r\n Password: password,\r\n Remember: remember,\r\n });\r\n return await API.post(`${serviceHelper.getBaseURL()}account`, data, {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n });\r\n}\r\n\r\nasync function logoutAsync() {\r\n return await API.delete(\r\n `${serviceHelper.getBaseURL()}account/signout`,\r\n serviceHelper.authHeader()\r\n );\r\n}\r\n\r\nasync function refreshAsync() {\r\n if (serviceHelper.isAvailable()) {\r\n return await API.get(\r\n `${serviceHelper.getBaseURL()}account`,\r\n serviceHelper.authHeader()\r\n );\r\n } else {\r\n throw new Error(\"Your account is expired.\");\r\n }\r\n}\r\n","import API from \"./api\";\r\nimport { serviceHelper } from \"./helper\";\r\n\r\nconst CHUNK_SIZE = 140;\r\n\r\nexport const apiService = {\r\n getCurrentUser: getCurrentUserAsync,\r\n getArrayData: getArrayDataAsync,\r\n getResourceStream: getResourceStreamAsync,\r\n postData: postDataAsync,\r\n putData: putDataAsync,\r\n postImage: postImageAsync,\r\n deleteData: deleteDataAsync,\r\n patchData: patchDataAsync,\r\n syncData: syncDataAsync,\r\n getIfcStream: getIfcStreamAsync,\r\n downloadDocumentVersion: downloadDocumentVersionAsync,\r\n uploadIfcStream: uploadIfcStreamAsync,\r\n getFolderData: getFolderDataAsync,\r\n getDataByEndpoint: getDataByEndpointAsync,\r\n getDocumentVersions: getDocumentVersionsAsync,\r\n getPropertyAssignment: getPropertyAssignmentAsync,\r\n getPropertyDefinition: getPropertyDefinitionAsync,\r\n patchIfcDocument: patchIfcDocumentAsync,\r\n checkUploadDocument: checkUploadDocumentAsync,\r\n getProjectToken: getProjectTokenAsync,\r\n getProjects: getProjectsAsync,\r\n deleteDataByEndpoint: deleteDataByEndpointAsync,\r\n};\r\n\r\nasync function getCurrentUserAsync() {\r\n return await API.get(\r\n `${serviceHelper.getBaseURL()}user/current`,\r\n serviceHelper.authHeader()\r\n );\r\n}\r\n\r\nasync function getProjectsAsync(ids) {\r\n try {\r\n const subIds = splitIds(ids);\r\n const promises = subIds.map((ids) => {\r\n return API.get(\r\n serviceHelper.getEndpoint(\"project\", ids),\r\n serviceHelper.authHeader()\r\n );\r\n });\r\n\r\n const responses = await Promise.all(promises);\r\n let data = [];\r\n responses.forEach((res) => {\r\n data = [...data, ...res.data];\r\n });\r\n return data;\r\n } catch (err) {\r\n throw err;\r\n }\r\n}\r\n\r\nasync function getArrayDataAsync(endpoint, ids) {\r\n try {\r\n const subIds = splitIds(ids);\r\n const promises = subIds.map((ids) => {\r\n return API.get(\r\n serviceHelper.getEndpoint(endpoint, ids),\r\n serviceHelper.projectTokenHeader()\r\n );\r\n });\r\n\r\n const responses = await Promise.all(promises);\r\n let data = [];\r\n responses.forEach((res) => {\r\n data = [...data, ...res.data];\r\n });\r\n return data;\r\n } catch (err) {\r\n throw err;\r\n }\r\n}\r\n\r\nfunction splitIds(ids) {\r\n return ids.reduce((result, item, index) => {\r\n const chunkIndex = Math.floor(index / CHUNK_SIZE);\r\n if (!result[chunkIndex]) {\r\n result[chunkIndex] = [];\r\n }\r\n\r\n result[chunkIndex].push(item);\r\n return result;\r\n }, []);\r\n}\r\n\r\nasync function getResourceStreamAsync(id) {\r\n return await API.get(\r\n `${serviceHelper.getBaseURL()}resource/${id}`,\r\n serviceHelper.resourceHeader()\r\n );\r\n}\r\n\r\nasync function getIfcStreamAsync(id) {\r\n return await API.get(\r\n `${serviceHelper.getBaseURL()}resource/${id}`,\r\n serviceHelper.projectTokenHeader()\r\n );\r\n}\r\n\r\nasync function postDataAsync(endpoint, data) {\r\n return await API.post(\r\n `${serviceHelper.getBaseURL()}${endpoint}`,\r\n data,\r\n serviceHelper.projectTokenHeader()\r\n );\r\n}\r\n\r\nasync function putDataAsync(endpoint, data) {\r\n return await API.put(\r\n `${serviceHelper.getBaseURL()}${endpoint}`,\r\n data,\r\n serviceHelper.projectTokenHeader()\r\n );\r\n}\r\n\r\nasync function postImageAsync(endpoint, data) {\r\n return await API.post(\r\n `${serviceHelper.getBaseURL()}resource/${endpoint}`,\r\n data,\r\n serviceHelper.uploadHeader()\r\n );\r\n}\r\n\r\nasync function deleteDataAsync(endpoint, ids) {\r\n return await API.delete(\r\n `${serviceHelper.getBaseURL()}${endpoint}`,\r\n serviceHelper.deleteConfig(ids)\r\n );\r\n}\r\n\r\nasync function patchDataAsync(endpoint, data) {\r\n return await API.patch(\r\n `${serviceHelper.getBaseURL()}${endpoint}`,\r\n JSON.stringify(data),\r\n {\r\n headers: {\r\n \"X-Project-Authorization\": `bearer ${\r\n serviceHelper.getProjectToken().bearer\r\n }`,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n }\r\n );\r\n}\r\n\r\nasync function patchIfcDocumentAsync(versionId) {\r\n return await API.patch(\r\n `${serviceHelper.getBaseURL()}documentVersion/import/${versionId}`,\r\n undefined,\r\n serviceHelper.projectTokenHeader()\r\n );\r\n}\r\n\r\nasync function syncDataAsync(id) {\r\n return await API.get(\r\n `${serviceHelper.getBaseURL()}sync/project/${id}`,\r\n serviceHelper.syncHeader()\r\n );\r\n}\r\n\r\nasync function downloadDocumentVersionAsync(data) {\r\n return await API.post(\r\n `${serviceHelper.getBaseURL()}documentVersion/download`,\r\n data,\r\n serviceHelper.resourceHeader()\r\n );\r\n}\r\n\r\nasync function uploadIfcStreamAsync(endpoint, data) {\r\n return await API.post(\r\n `${serviceHelper.getBaseURL()}upload/${endpoint}`,\r\n data,\r\n serviceHelper.uploadHeader()\r\n );\r\n}\r\n\r\nasync function getFolderDataAsync(projId) {\r\n return await API.get(\r\n `${serviceHelper.getBaseURL()}folderTree?projectId=${projId}`,\r\n serviceHelper.projectTokenHeader()\r\n );\r\n}\r\n\r\nasync function getDataByEndpointAsync(endpoint) {\r\n return await API.get(\r\n `${serviceHelper.getBaseURL()}${endpoint}`,\r\n serviceHelper.projectTokenHeader()\r\n );\r\n}\r\n\r\nasync function getDocumentVersionsAsync(projId, filterData) {\r\n return await API.post(\r\n `${serviceHelper.getBaseURL()}documentVersion/project/${projId}?$orderby=creationDate desc`,\r\n filterData,\r\n serviceHelper.projectTokenHeader()\r\n );\r\n}\r\n\r\nasync function getPropertyAssignmentAsync(processId) {\r\n return await API.get(\r\n `${serviceHelper.getBaseURL()}propertyassignment/${processId}`,\r\n serviceHelper.projectTokenHeader()\r\n );\r\n}\r\n\r\nasync function getPropertyDefinitionAsync(processId) {\r\n return await API.get(\r\n `${serviceHelper.getBaseURL()}propertydefinition/${processId}`,\r\n serviceHelper.projectTokenHeader()\r\n );\r\n}\r\n\r\nasync function checkUploadDocumentAsync(\r\n projId,\r\n folderId,\r\n docStatusId,\r\n fileName\r\n) {\r\n const blob = new Blob([\"test\", { type: \"text/plain\" }]);\r\n const formData = new FormData();\r\n formData.append(\"file\", blob, fileName);\r\n return await API.post(\r\n `${serviceHelper.getBaseURL()}document/check/${projId}?folderId=${folderId}&docStatusId=${docStatusId}`,\r\n formData,\r\n serviceHelper.uploadHeader()\r\n );\r\n}\r\n\r\nasync function getProjectTokenAsync(projectId) {\r\n return await API.get(\r\n `${serviceHelper.getBaseURL()}auth-project/open/${projectId}`,\r\n serviceHelper.authHeader()\r\n );\r\n}\r\n\r\nasync function deleteDataByEndpointAsync(endpoint) {\r\n return await API.delete(\r\n `${serviceHelper.getBaseURL()}${endpoint}`,\r\n serviceHelper.projectTokenHeader()\r\n );\r\n}\r\n","export const serviceHelper = {\r\n authHeader,\r\n isAvailable,\r\n getEndpoint,\r\n resourceHeader,\r\n uploadHeader,\r\n syncHeader,\r\n deleteConfig,\r\n getBaseURL,\r\n getToken,\r\n getProjectToken,\r\n projectTokenHeader,\r\n getClientId,\r\n};\r\n\r\nfunction getClientId() {\r\n return \"Visoplan Plugin Archicad\";\r\n}\r\n\r\nfunction getToken() {\r\n return JSON.parse(localStorage.getItem(\"token\"));\r\n}\r\n\r\nfunction getProjectToken() {\r\n return JSON.parse(localStorage.getItem(\"projectToken\"));\r\n}\r\n\r\nfunction authHeader() {\r\n let token = getToken();\r\n if (token && token.bearer) {\r\n const contentLanguage = window.isGerman ? \"de-DE\" : \"en-US\";\r\n return {\r\n headers: {\r\n Authorization: `bearer ${token.bearer}`,\r\n \"Content-Language\": contentLanguage,\r\n },\r\n };\r\n } else {\r\n return {};\r\n }\r\n}\r\n\r\nfunction projectTokenHeader() {\r\n let token = getProjectToken();\r\n if (token && token.bearer) {\r\n const contentLanguage = window.isGerman ? \"de-DE\" : \"en-US\";\r\n return {\r\n headers: {\r\n \"X-Project-Authorization\": `bearer ${token.bearer}`,\r\n \"Content-Language\": contentLanguage,\r\n },\r\n };\r\n } else {\r\n return {};\r\n }\r\n}\r\n\r\nfunction isAvailable() {\r\n let token = getToken();\r\n if (token && token.expires && token.remember) {\r\n if (token.remember === true) {\r\n const expireTime = Date.parse(token.expires);\r\n return Date.now() < expireTime;\r\n }\r\n }\r\n\r\n return false;\r\n}\r\n\r\nfunction getEndpoint(baseUrl, ids) {\r\n let endPoint = ids\r\n .map((id) => {\r\n return id;\r\n })\r\n .join(\",\");\r\n\r\n endPoint = `${getBaseURL()}${baseUrl}/${endPoint}`;\r\n return endPoint;\r\n}\r\n\r\nfunction resourceHeader() {\r\n let token = getProjectToken();\r\n if (token && token.bearer) {\r\n return {\r\n headers: {\r\n Accept: \"application/octet-stream\",\r\n \"X-Project-Authorization\": `bearer ${token.bearer}`,\r\n },\r\n responseType: \"arraybuffer\",\r\n };\r\n } else {\r\n return {};\r\n }\r\n}\r\n\r\nfunction uploadHeader() {\r\n let token = getProjectToken();\r\n if (token && token.bearer) {\r\n return {\r\n headers: {\r\n \"X-Project-Authorization\": `bearer ${token.bearer}`,\r\n ContentType: \"multipart/form-data\",\r\n },\r\n };\r\n } else {\r\n return {};\r\n }\r\n}\r\n\r\nfunction syncHeader() {\r\n let token = getProjectToken();\r\n if (token && token.bearer) {\r\n return {\r\n headers: { \"X-Project-Authorization\": `bearer ${token.bearer}` },\r\n responseType: \"stream\",\r\n };\r\n } else {\r\n return {};\r\n }\r\n}\r\n\r\nfunction deleteConfig(ids) {\r\n let token = getProjectToken();\r\n if (token && token.bearer) {\r\n return {\r\n headers: { \"X-Project-Authorization\": `bearer ${token.bearer}` },\r\n data: ids,\r\n };\r\n } else {\r\n return {};\r\n }\r\n}\r\n\r\nfunction getBaseURL() {\r\n return window.baseURL === undefined\r\n ? \"https://internal.api.visoplan.de/api/\"\r\n : window.baseURL;\r\n}\r\n","import { userConstants } from '../constants';\r\n\r\nconst initialState = {\r\n loggedIn: false,\r\n loggingIn: false,\r\n currentUser: {}\r\n};\r\n\r\nexport function user(state = initialState, action) {\r\n switch (action.type) {\r\n case userConstants.USER_LOGIN: {\r\n return {\r\n ...state,\r\n loggedIn: action.payload,\r\n loggingIn: false\r\n }\r\n }\r\n case userConstants.USER_LOGOUT: {\r\n return {\r\n ...state,\r\n loggedIn: !action.payload,\r\n loggingIn: false,\r\n currentUser: {}\r\n }\r\n }\r\n case userConstants.USER_REFRESH: {\r\n return {\r\n ...state,\r\n loggedIn: action.payload,\r\n loggingIn: false\r\n }\r\n }\r\n case userConstants.USER_LOGGING: {\r\n return {\r\n ...state,\r\n loggingIn: action.payload\r\n }\r\n }\r\n case userConstants.USER_CURRENT: {\r\n return {\r\n ...state,\r\n currentUser:action.payload\r\n }\r\n }\r\n \r\n default:\r\n return state;\r\n }\r\n}","import { projConstants } from '../constants';\r\n\r\nconst initialState = {\r\n projects: [],\r\n selectedProject: {},\r\n addedIssue: false\r\n};\r\n\r\nexport function project(state = initialState, action) {\r\n switch (action.type) {\r\n case projConstants.PROJ_GETAll: {\r\n return {\r\n ...state,\r\n projects: action.payload\r\n }\r\n }\r\n case projConstants.PROJ_OPEN: {\r\n const origin = state.selectedProject;\r\n const addedIssue = origin.issueIds && origin.issueIds.length < action.payload.issueIds.length;\r\n return {\r\n ...state,\r\n selectedProject: action.payload,\r\n addedIssue: addedIssue\r\n }\r\n }\r\n case projConstants.PROJ_CLEAR: {\r\n return initialState;\r\n }\r\n case projConstants.PROJ_RETURN: {\r\n return {\r\n ...state,\r\n selectedProject: {}\r\n }\r\n }\r\n case projConstants.PROJ_RESETISSUEFLAG: {\r\n return {\r\n ...state,\r\n addedIssue: false\r\n }\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n}","export const issueOwner = {\r\n ALL: { value: 1, label: 'All' },\r\n PERSONAL: { value: 2, label: 'Personal' }\r\n}","export const roleAction = {\r\n ActivityLog_Access: 0,\r\n ActivityLog_Export: 1,\r\n Project_ModelUpload: 100,\r\n Project_Copy: 101,\r\n Project_EditMembers: 103,\r\n IssueManagement_Creation: 200,\r\n IssueManagement_Editing: 201,\r\n IssueManagement_StatusEditing: 202,\r\n IssueManagement_CreatingComments: 203,\r\n IssueManagement_BfcUpload: 204,\r\n IssueManagement_Export: 205,\r\n IssueManagement_Assigned_Editing: 206,\r\n IssueManagement_Assigned_StatusEditing: 207,\r\n IssueManagement_Creator_Editing: 208,\r\n IssueManagement_Creator_StatusEditing: 209,\r\n IssueManagement_Reviewer_Editing: 210,\r\n IssueManagement_Reviewer_StatusEditing: 211,\r\n IssueManagement_StatusEditing_SetClosed: 212,\r\n IssueManagement_StatusEditing_UnsetClosed: 213,\r\n Document_Upload: 300,\r\n Document_Download: 301,\r\n Document_Editing: 302,\r\n Document_Sharing: 303,\r\n Document_Delete: 304,\r\n Document_CommentEditing: 305,\r\n Document_Archiving: 306,\r\n ment_GetArchived: 307,\r\n Document_RestoreArchived: 308,\r\n Document_IfcImport: 309,\r\n Folder_Edit: 400,\r\n Folder_EditAccessList: 401,\r\n Folder_Create: 402,\r\n Folder_Delete: 403,\r\n Tag_Create_Update: 500,\r\n Tag_Delete: 501,\r\n MainMenu_Dashboard: 600,\r\n MainMenu_Models: 601,\r\n MainMenu_Issues: 602,\r\n MainMenu_History: 603,\r\n MainMenu_EditProperties: 604,\r\n MainMenu_Documents: 605,\r\n MainMenu_Folders: 606,\r\n MainMenu_LiveView: 607,\r\n MainMenu_Collaborators: 608,\r\n MainMenu_Settings: 609,\r\n MainMenu_IssueTimeLine: 610,\r\n Email_View: 700,\r\n NamingScheme_Create_Edit: 800,\r\n NamingScheme_Delete: 801,\r\n DocumentList_Delete: 900,\r\n Process_Create: 1000,\r\n Process_ViewAll: 1001,\r\n DocStatus_Create_Edit: 1100,\r\n DocStatus_Delete: 1101,\r\n DocStatus_ChangeToPublished: 1103,\r\n DocStatus_ChangeFromPublished: 1104,\r\n DocStamp_Edit: 1150,\r\n IssueStatus_Create_Edit: 1200,\r\n IssueStatus_Delete: 1201,\r\n IssueType_CreateEdit: 1202,\r\n IssueType_Delete: 1203,\r\n IssuePriority_CreateEdit: 1204,\r\n IssuePriority_Delete: 1205,\r\n SmartView_DeleteFromDifferentCreator: 1300,\r\n Inbox_Edit: 1400,\r\n Inbox_AllowUploadEmail: 1401,\r\n BimqIntegration: 1500,\r\n NovaAvaIntegration: 1600,\r\n};\r\n","export const pageState = {\r\n IMPORTMODEL: { value: 1, label: 'Import model' },\r\n EXPORTPAGE: { value: 2, label: 'Export page' },\r\n ISSUELIST: { value: 3, label: 'Issue list' },\r\n DETAILISSUE: { value: 4, label: 'Detail issue' },\r\n EDITISSUE: { value: 5, label: 'Edit issue' },\r\n FILTERISSUE: { value: 6, label: 'Filter issue' },\r\n PROCESS: { value: 7, label: 'Process' }\r\n}","export const editResult = {\r\n NONE: 'none',\r\n SUCCESS: 'success',\r\n FAIL: 'fail'\r\n}","export const issueLogEntryType = {\r\n IssueCreated: 1,\r\n TitleUpdated: 2,\r\n DescriptionUpdated: 3,\r\n TypeUpdated: 4,\r\n PriorityUpdated: 5,\r\n DueDateUpdated: 6,\r\n DueDateRemoved: 7,\r\n AssignedToUpdated: 8,\r\n AssignedToRemoved: 9,\r\n LabelAdded: 10,\r\n LabelRemoved: 11,\r\n StageAdded: 12,\r\n StageUpdated: 13,\r\n StageRemoved: 14,\r\n DocumentFirstLinked: 15,\r\n DocumentFirstLinkRemoved: 16,\r\n DocumentLinkVersionUpdated: 17,\r\n StatusUpdate: 18,\r\n ReviewerUpdated: 19,\r\n ReviewerRemoved: 20,\r\n DisciplineMetaDataUpdated: 21,\r\n DisciplineMetaDataRemoved: 22,\r\n BuildingMetaDataUpdated: 23,\r\n BuildingMetaDataRemoved: 24,\r\n FloorMetaDataUpdated: 25,\r\n FloorMetaDataRemoved: 26,\r\n CustomDisciplineMetaDataUpdated: 27,\r\n CustomDisciplineMetaDataRemoved: 28,\r\n CustomBuildingMetaDataUpdated: 29,\r\n CustomBuildingMetaDataRemoved: 30,\r\n CustomFloorMetaDataUpdated: 31,\r\n CustomFloorMetaDataRemoved: 32,\r\n ModelsUpdated: 33,\r\n ModelsRemoved: 34,\r\n LinkedComponentsUpdated: 35,\r\n LinkedComponentsRemoved: 36,\r\n TagsUpdated: 37,\r\n TagsRemoved: 38,\r\n ViewpointAdded: 39,\r\n ViewpointRemoved: 40,\r\n StartingDateUpdated: 41,\r\n StartingDateRemoved: 42,\r\n WorkPhaseUpdated: 43,\r\n WorkPhaseRemoved: 44,\r\n VisibilityUpdated: 45,\r\n AllowedRolesAdded: 46,\r\n LinkedEmailUpdated: 47,\r\n LinkedEmailRemoved: 48,\r\n ParentUpdated: 49,\r\n ParentRemoved: 50,\r\n StatusIdUpdated: 51,\r\n TypeIdUpdated: 52,\r\n PriorityIdUpdated: 53,\r\n}\r\n","export const exportKind = {\r\n Archicad: 0,\r\n IFC: 1,\r\n Other: 2,\r\n Publisher: 3\r\n}","export const exportType = {\r\n DWG: { value: 1, label: 'DWG' },\r\n PNG: { value: 2, label: 'PNG' },\r\n JPG: { value: 3, label: 'JPG' },\r\n}","export const workPhaseType = {\r\n LPH11: { value: 1, label: 'LPH11' },\r\n LPH21: { value: 2, label: 'LPH21' },\r\n LPH22: { value: 3, label: 'LPH22' },\r\n LPH31: { value: 4, label: 'LPH31' },\r\n LPH32: { value: 5, label: 'LPH32' },\r\n LPH33: { value: 6, label: 'LPH33' },\r\n LPH41: { value: 7, label: 'LPH41' },\r\n LPH51: { value: 8, label: 'LPH51' },\r\n LPH52: { value: 9, label: 'LPH52' },\r\n LPH53: { value: 10, label: 'LPH53' },\r\n LPH61: { value: 11, label: 'LPH61' },\r\n LPH62: { value: 12, label: 'LPH62' },\r\n Stage0: { value: 13, label: 'Stage0' },\r\n Stage1: { value: 14, label: 'Stage1' },\r\n Stage2: { value: 15, label: 'Stage2' },\r\n Stage3: { value: 16, label: 'Stage3' },\r\n Stage4: { value: 17, label: 'Stage4' },\r\n Stage5: { value: 18, label: 'Stage5' },\r\n Stage6: { value: 19, label: 'Stage6' },\r\n Stage7: { value: 20, label: 'Stage7' },\r\n LPH1: { value: 21, label: 'LPH1' },\r\n LPH2: { value: 22, label: 'LPH2' },\r\n LPH3: { value: 23, label: 'LPH3' },\r\n LPH4: { value: 24, label: 'LPH4' },\r\n LPH5: { value: 25, label: 'LPH5' },\r\n LPH6: { value: 26, label: 'LPH6' },\r\n LPH7: { value: 27, label: 'LPH7' },\r\n LPH8: { value: 28, label: 'LPH8' },\r\n LPH9: { value: 29, label: 'LPH9' }\r\n}","export const workPhaseKind = {\r\n Hoai: 0,\r\n Riba: 1,\r\n Sia: 2,\r\n None: 3\r\n}","export const issueVisibility = {\r\n PUBLIC: { value: 0, label: 'Public' },\r\n PRIVATE: { value: 1, label: 'Private' },\r\n RESTRICTED: { value: 2, label: 'Restricted' }\r\n}","export const propertyAssignmentStatus = {\r\n New: 0,\r\n Editing: 1,\r\n Submitted: 2,\r\n Approved: 3,\r\n Reopened: 4\r\n}","export const processStatus = {\r\n NoError: 0,\r\n NoElement: 1,\r\n ReadOnly: 2,\r\n NotMatched: 3,\r\n NotRecog: 4,\r\n};\r\n","export const publishPanelKind={\r\n main:0,\r\n setFile:1,\r\n uploadCheck:2,\r\n};","import { issueOwner } from '../../components/enums';\r\nimport { issuesConstants } from '../constants';\r\n\r\nconst initialState = {\r\n issues: [],\r\n owner: issueOwner.ALL.value,\r\n}\r\n\r\nexport function issues(state = initialState, action) {\r\n switch (action.type) {\r\n case issuesConstants.ISSUES_GETALL: {\r\n return {\r\n ...state,\r\n issues: action.payload\r\n };\r\n }\r\n case issuesConstants.ISSUES_OWNER: {\r\n return {\r\n ...state,\r\n owner: action.payload\r\n };\r\n }\r\n case issuesConstants.ISSUES_CLEAR: {\r\n return initialState;\r\n }\r\n case issuesConstants.ISSUES_UPDATE: {\r\n let updateIssue = action.payload;\r\n const issues = state.issues;\r\n let index = issues.findIndex(i => i.id === updateIssue.id);\r\n issues.splice(index, 1);\r\n issues.push(updateIssue);\r\n\r\n return {\r\n ...state,\r\n issues: issues\r\n }\r\n }\r\n case issuesConstants.ISSUES_INSERT: {\r\n return {\r\n ...state,\r\n issues: [...state.issues, ...action.payload]\r\n };\r\n }\r\n case issuesConstants.ISSUES_EXTERNAL: {\r\n return {\r\n ...state,\r\n issues: action.payload\r\n };\r\n }\r\n case issuesConstants.ISSUES_RESET_OWNER: {\r\n return {\r\n ...state,\r\n owner: issueOwner.ALL.value\r\n };\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n}","import { viewpointConstants } from \"../constants\"\r\n\r\nconst initialState = {\r\n viewpoints: [],\r\n resources: [],\r\n snapshotId: '',\r\n snapshotFlag: false\r\n};\r\n\r\nexport function viewpoint(state = initialState, action) {\r\n switch (action.type) {\r\n case viewpointConstants.VP_GETALL: {\r\n let newVPs = action.payload;\r\n const oldVPs = state.viewpoints.filter(v => !newVPs.some(vp => vp.id === v.id));\r\n return {\r\n ...state,\r\n viewpoints: oldVPs.concat(newVPs)\r\n };\r\n }\r\n case viewpointConstants.VP_CLEAR: {\r\n return {\r\n ...state,\r\n viewpoints: []\r\n };\r\n }\r\n case viewpointConstants.VP_ADD_RESOURCE: {\r\n let rc = action.payload;\r\n\r\n return {\r\n ...state,\r\n resources: state.resources.find(r => r.id === rc.id) ? state.resources : [...state.resources, rc]\r\n };\r\n }\r\n case viewpointConstants.VP_SET_SNAPSHOTID: {\r\n return {\r\n ...state,\r\n snapshotId: action.payload,\r\n snapshotFlag: true\r\n };\r\n }\r\n case viewpointConstants.VP_CLEAR_SNAPSHOT: {\r\n return {\r\n ...state,\r\n snapshotId: '',\r\n snapshotFlag: false\r\n };\r\n }\r\n case viewpointConstants.VP_DELETE: {\r\n const deletedVpIds = action.payload;\r\n const updateVps = state.viewpoints.map(v => {\r\n if (deletedVpIds.includes(v.id))\r\n v.deleted = true;\r\n return v;\r\n })\r\n\r\n return {\r\n ...state,\r\n viewpoints: updateVps\r\n }\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n}","import { filterConstants } from '../constants';\r\n\r\nconst initialState = {\r\n filterData: undefined\r\n}\r\n\r\nexport function filter(state = initialState, action) {\r\n switch (action.type) {\r\n case filterConstants.FILTER_APPLY: {\r\n return {\r\n ...state,\r\n filterData: action.payload\r\n };\r\n }\r\n case filterConstants.FILTER_RESET: {\r\n return initialState;\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n}","import { detailConstants } from '../constants';\r\n\r\nconst initialState = {\r\n selectedIssue: undefined\r\n}\r\n\r\nexport function detail(state = initialState, action) {\r\n switch (action.type) {\r\n case detailConstants.DETAIL_SELECT: {\r\n return {\r\n ...state,\r\n selectedIssue: action.payload\r\n };\r\n }\r\n case detailConstants.DETAIL_CLEAR: {\r\n return initialState;\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n}","import { commentConstants } from '../constants';\r\n\r\nconst initialState = {\r\n comments: [],\r\n}\r\n\r\nexport function comment(state = initialState, action) {\r\n switch (action.type) {\r\n case commentConstants.COMMENT_GET: {\r\n return {\r\n ...state,\r\n comments: action.payload\r\n };\r\n }\r\n case commentConstants.COMMENT_CLAER: {\r\n return initialState;\r\n }\r\n case commentConstants.COMMENT_ADD: {\r\n return {\r\n ...state,\r\n comments: [...state.comments, ...action.payload]\r\n }\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n}","import { metaDataConstants } from \"../constants\";\r\n\r\nconst initialState = {\r\n disciplines: [],\r\n buildings: [],\r\n floors: [],\r\n};\r\n\r\nexport function metaData(state = initialState, action) {\r\n switch (action.type) {\r\n case metaDataConstants.DISCIPLINE: {\r\n return {\r\n ...state,\r\n disciplines: action.payload\r\n }\r\n }\r\n case metaDataConstants.BUILDING: {\r\n return {\r\n ...state,\r\n buildings: action.payload\r\n }\r\n }\r\n case metaDataConstants.FLOOR: {\r\n return {\r\n ...state,\r\n floors: action.payload\r\n }\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n}","import { modelConstants } from \"../constants\";\r\n\r\nconst initialState = {\r\n models: []\r\n}\r\n\r\nexport function models(state = initialState, action) {\r\n switch (action.type) {\r\n case modelConstants.MODEL_GETALL: {\r\n return {\r\n ...state,\r\n models: action.payload\r\n };\r\n }\r\n case modelConstants.MODEL_CLEAR: {\r\n return initialState;\r\n }\r\n default:\r\n return state;\r\n }\r\n}","import { editConstants } from \"../constants\";\r\nimport { editResult } from \"../../components/enums\";\r\n\r\nconst initialState = {\r\n result: editResult.NONE\r\n}\r\n\r\nexport function editReport(state = initialState, action) {\r\n switch (action.type) {\r\n case editConstants.EDIT_SUCCESS: {\r\n return {\r\n ...state,\r\n result: editResult.SUCCESS\r\n };\r\n }\r\n case editConstants.EDIT_FAIL: {\r\n return {\r\n ...state,\r\n result: editResult.FAIL\r\n };\r\n }\r\n case editConstants.EDIT_RESET: {\r\n return initialState;\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n}","import { processConstants } from \"../constants\";\r\n\r\nconst initialState = {\r\n processes: []\r\n}\r\n\r\nexport function processes(state = initialState, action) {\r\n switch (action.type) {\r\n case processConstants.PROCESS_GETALL: {\r\n return {\r\n ...state,\r\n processes: action.payload\r\n };\r\n }\r\n case processConstants.PROCESS_CLEAR:\r\n return initialState;\r\n default:\r\n return state;\r\n }\r\n}","import { issueDescriptorConstants } from \"../constants\";\r\n\r\nconst initialState = {\r\n priorities: [],\r\n statuses: [],\r\n types: []\r\n};\r\n\r\nexport function issueDescriptor(state = initialState, action) {\r\n switch (action.type) {\r\n case issueDescriptorConstants.PRIORITY: {\r\n return {\r\n ...state,\r\n priorities: action.payload\r\n }\r\n }\r\n case issueDescriptorConstants.STATUS: {\r\n return {\r\n ...state,\r\n statuses: action.payload\r\n }\r\n }\r\n case issueDescriptorConstants.TYPE: {\r\n return {\r\n ...state,\r\n types: action.payload\r\n }\r\n }\r\n default:\r\n return state;\r\n }\r\n}","import { emailConstants } from \"../constants\";\r\n\r\nconst initialState = {\r\n emails: []\r\n}\r\n\r\nexport function email(state = initialState, action) {\r\n switch (action.type) {\r\n case emailConstants.GET_EMAIL:\r\n return {\r\n ...state,\r\n emails: action.payload\r\n };\r\n default:\r\n return state;\r\n }\r\n}","import { combineReducers } from 'redux';\r\nimport { user } from './userReducer';\r\nimport { project } from './projectReducer';\r\nimport { issues } from './issueListReducer';\r\nimport { viewpoint } from './viewpointReducer';\r\nimport { filter } from './filterReducer';\r\nimport { detail } from './detailReducer';\r\nimport { comment } from './commentReducer';\r\nimport { metaData } from './metaDataReducer';\r\nimport { models } from './modelReducer';\r\nimport { editReport } from './editReducer';\r\nimport { processes } from './processReducer';\r\nimport { issueDescriptor } from './issueDescriptorReducer';\r\nimport { email } from './emailReducer';\r\n\r\nexport default combineReducers({ user, project, issues, viewpoint, filter, detail, comment, metaData, models, editReport, processes, issueDescriptor, email });","import { createStore, applyMiddleware } from 'redux';\r\nimport thunkMiddleware from 'redux-thunk';\r\nimport rootReducer from './reducers';\r\n\r\nexport default createStore(rootReducer, applyMiddleware(thunkMiddleware));","import { authService, apiService } from \"../../services\";\r\nimport {\r\n userConstants,\r\n projConstants,\r\n issuesConstants,\r\n processConstants,\r\n} from \"../constants\";\r\n\r\nconst TOKEN = \"token\";\r\n\r\nexport const userActions = {\r\n login,\r\n logout,\r\n refresh,\r\n};\r\n\r\nfunction login(email, password, remember, history) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n authService\r\n .login(email, password, remember)\r\n .then((response) => {\r\n localStorage.setItem(TOKEN, JSON.stringify(response.data));\r\n dispatch(getUser());\r\n dispatch(registerResult(true));\r\n history.push(\"/Projects\");\r\n })\r\n .catch((error) => {\r\n console.log(JSON.stringify(error));\r\n localStorage.removeItem(TOKEN);\r\n dispatch(registerResult(false));\r\n });\r\n };\r\n\r\n function request() {\r\n return {\r\n type: userConstants.USER_LOGGING,\r\n payload: true,\r\n };\r\n }\r\n\r\n function registerResult(result) {\r\n return {\r\n type: userConstants.USER_LOGIN,\r\n payload: result,\r\n };\r\n }\r\n}\r\n\r\nfunction logout(history) {\r\n return (dispatch) => {\r\n authService\r\n .logout()\r\n .then(() => {\r\n dispatch(registerResult());\r\n dispatch(unSelectedProject());\r\n dispatch(resetIssues());\r\n dispatch(resetProcess());\r\n localStorage.removeItem(TOKEN);\r\n history.push(\"/\");\r\n })\r\n .catch((err) => {\r\n console.log(err.message);\r\n });\r\n };\r\n\r\n function registerResult() {\r\n return {\r\n type: userConstants.USER_LOGOUT,\r\n payload: true,\r\n };\r\n }\r\n\r\n function unSelectedProject() {\r\n return {\r\n type: projConstants.PROJ_CLEAR,\r\n };\r\n }\r\n\r\n function resetIssues() {\r\n return {\r\n type: issuesConstants.ISSUES_CLEAR,\r\n };\r\n }\r\n\r\n function resetProcess() {\r\n return {\r\n type: processConstants.PROCESS_CLEAR,\r\n };\r\n }\r\n}\r\n\r\nfunction refresh(history) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n authService\r\n .refresh()\r\n .then((response) => {\r\n localStorage.setItem(TOKEN, JSON.stringify(response.data));\r\n dispatch(getUser());\r\n dispatch(registerResult(true));\r\n history.push(\"/Projects\");\r\n })\r\n .catch((error) => {\r\n console.log(error.message);\r\n localStorage.removeItem(TOKEN);\r\n dispatch(registerResult(false));\r\n });\r\n };\r\n\r\n function request() {\r\n return {\r\n type: userConstants.USER_LOGGING,\r\n payload: true,\r\n };\r\n }\r\n\r\n function registerResult(result) {\r\n return {\r\n type: userConstants.USER_REFRESH,\r\n payload: result,\r\n };\r\n }\r\n}\r\n\r\nfunction getUser() {\r\n return (dispatch) => {\r\n apiService.getCurrentUser().then((response) => {\r\n dispatch(registerResult(response.data));\r\n });\r\n };\r\n\r\n function registerResult(result) {\r\n return {\r\n type: userConstants.USER_CURRENT,\r\n payload: result,\r\n };\r\n }\r\n}\r\n","import { apiService } from \"../../services\";\r\nimport {\r\n emailConstants,\r\n filterConstants,\r\n issuesConstants,\r\n modelConstants,\r\n processConstants,\r\n projConstants,\r\n} from \"../constants\";\r\n\r\nexport const projActions = {\r\n getProjects,\r\n openProject,\r\n returnProjects,\r\n};\r\n\r\nfunction getProjects(ids) {\r\n return (dispatch) => {\r\n apiService\r\n .getProjects(ids)\r\n .then((projects) => {\r\n dispatch(registerProjects(projects));\r\n })\r\n .catch((error) => {\r\n console.log(\"Can't get a project. \", error.message);\r\n });\r\n };\r\n\r\n function registerProjects(projects) {\r\n return {\r\n type: projConstants.PROJ_GETAll,\r\n payload: projects,\r\n };\r\n }\r\n}\r\n\r\nfunction openProject(project) {\r\n return (dispatch) => {\r\n if (project.tagIds) {\r\n apiService\r\n .getArrayData(\"tag\", project.tagIds)\r\n .then((tags) => {\r\n project.tags = tags;\r\n })\r\n .catch((err) => {\r\n console.log(\"Can't get the tags in project.\", err.message);\r\n });\r\n }\r\n\r\n if (project.workPhaseIds) {\r\n apiService\r\n .getArrayData(\"workPhase\", project.workPhaseIds)\r\n .then((workPhases) => {\r\n project.workPhases = workPhases;\r\n })\r\n .catch((err) => {\r\n console.log(\"Can't load the workphase in project.\", err.message);\r\n });\r\n }\r\n\r\n apiService\r\n .getDataByEndpoint(`queryfilter?projectId=${project.id}`)\r\n .then((res) => {\r\n const issueQuery = res.data.find(\r\n (q) => q.type === 1 && q.name === filterConstants.FILTER_NAME\r\n );\r\n dispatch(registerIssueQuery(issueQuery));\r\n })\r\n .catch((err) => {\r\n console.log(\"Can't get the QueryFilter\", err.message);\r\n });\r\n\r\n apiService\r\n .getDataByEndpoint(`inbox/project/${project.id}`)\r\n .then((res) => {\r\n dispatch(registerEmails(res.data));\r\n })\r\n .catch((err) => {\r\n console.log(\"Can't get the emails in project\", err.message);\r\n });\r\n\r\n dispatch(registerProject(project));\r\n };\r\n\r\n function registerProject(project) {\r\n return {\r\n type: projConstants.PROJ_OPEN,\r\n payload: project,\r\n };\r\n }\r\n\r\n function registerEmails(emails) {\r\n return {\r\n type: emailConstants.GET_EMAIL,\r\n payload: emails,\r\n };\r\n }\r\n\r\n function registerIssueQuery(query) {\r\n let issueQuery = undefined;\r\n if (query) {\r\n issueQuery = query.uiFilterSettings.issueFilter;\r\n if (issueQuery) issueQuery.id = query.id;\r\n }\r\n\r\n return {\r\n type: filterConstants.FILTER_APPLY,\r\n payload: issueQuery,\r\n };\r\n }\r\n}\r\n\r\nfunction returnProjects(history) {\r\n return (dispatch) => {\r\n apiService.deleteDataByEndpoint(\"auth-project/leave\").then((res) => {\r\n if (res.status === 200) {\r\n localStorage.removeItem(\"projectToken\");\r\n dispatch(resetFilter());\r\n dispatch(resetIssues());\r\n dispatch(resetProcess());\r\n dispatch(resetModels());\r\n history.push(\"/Projects\");\r\n return {\r\n type: projConstants.PROJ_RETURN,\r\n };\r\n }\r\n });\r\n };\r\n\r\n function resetIssues() {\r\n return {\r\n type: issuesConstants.ISSUES_CLEAR,\r\n };\r\n }\r\n\r\n function resetFilter() {\r\n return {\r\n type: filterConstants.FILTER_RESET,\r\n };\r\n }\r\n\r\n function resetProcess() {\r\n return {\r\n type: processConstants.PROCESS_CLEAR,\r\n };\r\n }\r\n\r\n function resetModels() {\r\n return {\r\n type: modelConstants.MODEL_CLEAR,\r\n };\r\n }\r\n}\r\n","import { apiService } from '../../services';\r\nimport { detailConstants, issuesConstants, projConstants } from '../constants';\r\n\r\nexport const issuesActions = {\r\n getIssues,\r\n setOwner,\r\n clearSelectedIssue,\r\n resetOwner,\r\n registerIssues,\r\n resetAddedIssueFlag\r\n}\r\n\r\nfunction getIssues(ids) {\r\n return dispatch => {\r\n apiService.getArrayData('issue', ids)\r\n .then(\r\n issues => {\r\n dispatch(registerIssues(issues));\r\n dispatch(clearSelectedIssue());\r\n }\r\n ).catch(error => {\r\n console.log('Fail getting issues:', error.message);\r\n });\r\n };\r\n}\r\n\r\nfunction registerIssues(issues) {\r\n return {\r\n type: issuesConstants.ISSUES_GETALL,\r\n payload: issues\r\n };\r\n}\r\n\r\nfunction setOwner(owner) {\r\n return {\r\n type: issuesConstants.ISSUES_OWNER,\r\n payload: owner\r\n }\r\n}\r\n\r\nfunction clearSelectedIssue() {\r\n return {\r\n type: detailConstants.DETAIL_CLEAR\r\n };\r\n}\r\n\r\nfunction resetOwner() {\r\n return {\r\n type: issuesConstants.ISSUES_RESET_OWNER\r\n };\r\n}\r\n\r\nfunction resetAddedIssueFlag() {\r\n return {\r\n type: projConstants.PROJ_RESETISSUEFLAG\r\n };\r\n}","//import { apiService } from \"../../services\";\r\nimport { filterConstants } from \"../constants\";\r\n\r\nexport const filterActions = {\r\n applyFilter,\r\n resetFilter,\r\n};\r\n\r\nfunction applyFilter(data) {\r\n return (dispatch) => {\r\n /*\r\n const endpoint = 'queryfilter';\r\n if (!!data.id) {\r\n apiService.patchData(endpoint, data).then(res => {\r\n if (res.data) {\r\n const query = data.uiFilterSettings.value.issueFilter;\r\n query.id = data.id;\r\n dispatch(registerFilter(query));\r\n }\r\n }).catch(err => {\r\n console.log(err);\r\n });\r\n } else {\r\n apiService.postData(endpoint, data).then(res => {\r\n const query = res.data.uiFilterSettings.issueFilter;\r\n query.id = res.data.id;\r\n dispatch(registerFilter(query));\r\n }).catch(err => {\r\n console.log(\"Can't create a query filter.\", err.message);\r\n });\r\n }\r\n */\r\n\r\n dispatch(registerFilter(data));\r\n };\r\n\r\n function registerFilter(data) {\r\n return {\r\n type: filterConstants.FILTER_APPLY,\r\n payload: data,\r\n };\r\n }\r\n}\r\n\r\n/*\r\nfunction resetFilter(id) {\r\n return (dispatch) => {\r\n apiService\r\n .deleteData(\"queryfilter\", [id])\r\n .then((res) => {\r\n if (res.data) dispatch(clearFilter());\r\n })\r\n .catch((err) => {\r\n console.log(\"Can't delete query filter.\", err.message);\r\n });\r\n };\r\n\r\n function clearFilter() {\r\n return {\r\n type: filterConstants.FILTER_RESET,\r\n };\r\n }\r\n}\r\n*/\r\n\r\nfunction resetFilter() {\r\n return {\r\n type: filterConstants.FILTER_RESET,\r\n };\r\n}\r\n","import { apiService } from '../../services';\r\nimport { commentConstants, detailConstants, issuesConstants } from '../constants';\r\n\r\nexport const detailActions = {\r\n selectedIssue,\r\n getComments,\r\n clearComments,\r\n sendComment,\r\n updateStatus,\r\n}\r\n\r\nfunction selectedIssue(issue) {\r\n return {\r\n type: detailConstants.DETAIL_SELECT,\r\n payload: issue\r\n }\r\n}\r\n\r\nfunction getComments(ids) {\r\n return dispatch => {\r\n apiService.getArrayData('comment', ids)\r\n .then(comments => {\r\n dispatch(registerComments(comments));\r\n }).catch(err => {\r\n console.log(err.message);\r\n });\r\n }\r\n\r\n function registerComments(comments) {\r\n return {\r\n type: commentConstants.COMMENT_GET,\r\n payload: comments\r\n }\r\n }\r\n}\r\n\r\nfunction clearComments() {\r\n return {\r\n type: commentConstants.COMMENT_CLAER,\r\n };\r\n}\r\n\r\nfunction sendComment(comment) {\r\n return dispatch => {\r\n apiService.postData('comment', comment).then(res => {\r\n dispatch(addComment(res.data));\r\n }).catch(err => {\r\n console.log(err.response);\r\n });\r\n }\r\n\r\n function addComment(data) {\r\n return {\r\n type: commentConstants.COMMENT_ADD,\r\n payload: data\r\n }\r\n }\r\n}\r\n\r\nfunction updateStatus(status) {\r\n return dispatch => {\r\n apiService.putData('issue', status).then(res => {\r\n dispatch(updateIssueLabel(res.data));\r\n dispatch(updateIssueStatus(res.data));\r\n }).catch(err => {\r\n console.log(err.response);\r\n });\r\n }\r\n\r\n function updateIssueStatus(data) {\r\n return {\r\n type: detailConstants.DETAIL_SELECT,\r\n payload: data[0]\r\n };\r\n }\r\n\r\n function updateIssueLabel(data) {\r\n return {\r\n type: issuesConstants.ISSUES_UPDATE,\r\n payload: data[0]\r\n }\r\n }\r\n}","import { apiService } from \"../../services\";\r\nimport { detailConstants, editConstants, issuesConstants, viewpointConstants } from \"../constants\";\r\n\r\nexport const editIssueActions = {\r\n createIssue,\r\n updateIssue,\r\n resetPageState\r\n}\r\n\r\nfunction createIssue(issue, viewpoints) {\r\n return dispatch => {\r\n apiService.postData('issue', issue).then(res => {\r\n const newIssue = res.data[0];\r\n if (viewpoints.length > 0) {\r\n const newVps = viewpoints.map(v => {\r\n v.issueId = { value: newIssue.id };\r\n return v;\r\n });\r\n apiService.postData('viewpoint', newVps).then(vRes => {\r\n dispatch(insertViewpoints(vRes.data));\r\n dispatch(insertNewIssue(res.data));\r\n dispatch(selectedIssue(res.data));\r\n dispatch(editResult(editConstants.EDIT_SUCCESS));\r\n }).catch(vErr => {\r\n console.log(vErr.message);\r\n dispatch(editResult(editConstants.EDIT_FAIL));\r\n })\r\n } else {\r\n dispatch(insertNewIssue(res.data));\r\n dispatch(selectedIssue(res.data));\r\n dispatch(editResult(editConstants.EDIT_SUCCESS));\r\n }\r\n //userFeedback(true, true);\r\n }).catch(err => {\r\n console.log(err.message);\r\n dispatch(editResult(editConstants.EDIT_FAIL));\r\n //userFeedback(true, false);\r\n })\r\n };\r\n\r\n function insertNewIssue(data) {\r\n return {\r\n type: issuesConstants.ISSUES_INSERT,\r\n payload: data\r\n };\r\n }\r\n}\r\n\r\nfunction updateIssue(issue, deletedIds, newViewpoints) {\r\n return dispatch => {\r\n if (deletedIds.length > 0) {\r\n apiService.deleteData('viewpoint', deletedIds).then(res => {\r\n if (res.data === true) {\r\n dispatch(deleteViewpoints(deletedIds));\r\n }\r\n }).catch(dErr => {\r\n console.log('Fail delete viewpoint.', dErr.message);\r\n })\r\n }\r\n\r\n apiService.putData('issue', issue).then(res => {\r\n if (newViewpoints.length > 0) {\r\n apiService.postData('viewpoint', newViewpoints).then(vRes => {\r\n dispatch(insertViewpoints(vRes.data));\r\n dispatch(updateIssueStatus(res.data));\r\n dispatch(selectedIssue(res.data));\r\n dispatch(editResult(editConstants.EDIT_SUCCESS));\r\n }).catch(vErr => {\r\n console.log(vErr.message);\r\n dispatch(editResult(editConstants.EDIT_FAIL));\r\n })\r\n } else {\r\n dispatch(updateIssueStatus(res.data));\r\n dispatch(selectedIssue(res.data));\r\n dispatch(editResult(editConstants.EDIT_SUCCESS));\r\n }\r\n //userFeedback(false, true);\r\n }).catch(err => {\r\n console.log(err.message);\r\n dispatch(editResult(editConstants.EDIT_FAIL));\r\n //userFeedback(false, false);\r\n })\r\n }\r\n\r\n function updateIssueStatus(data) {\r\n return {\r\n type: issuesConstants.ISSUES_UPDATE,\r\n payload: data[0]\r\n }\r\n }\r\n\r\n function deleteViewpoints(data) {\r\n return {\r\n type: viewpointConstants.VP_DELETE,\r\n payload: data\r\n }\r\n }\r\n}\r\n\r\nfunction resetPageState() {\r\n return dispatch => {\r\n dispatch(editResult(editConstants.EDIT_RESET));\r\n }\r\n}\r\n\r\nfunction insertViewpoints(viewpoints) {\r\n return {\r\n type: viewpointConstants.VP_GETALL,\r\n payload: viewpoints\r\n }\r\n}\r\n\r\nfunction selectedIssue(issue) {\r\n return {\r\n type: detailConstants.DETAIL_SELECT,\r\n payload: issue[0]\r\n }\r\n}\r\n\r\nfunction editResult(result) {\r\n return {\r\n type: result\r\n }\r\n}\r\n","import { viewpointActions } from '.';\r\nimport { propertyAssignmentStatus } from '../../components/enums';\r\nimport { apiService } from '../../services';\r\nimport { detailConstants, emailConstants, modelConstants, processConstants, projConstants } from '../constants';\r\n\r\nexport const syncActions = {\r\n syncProject,\r\n syncIssue\r\n}\r\n\r\nfunction syncProject(projId) {\r\n return dispatch => {\r\n apiService.getArrayData('project', [projId]).then(projects => {\r\n const project = projects[0];\r\n apiService.getArrayData('tag', project.tagIds).then(data => {\r\n project.tags = data;\r\n });\r\n\r\n if (project.workPhaseIds) {\r\n apiService.getArrayData('workPhase', project.workPhaseIds).then(workPhases => {\r\n project.workPhases = workPhases;\r\n }).catch(err => {\r\n console.log(\"Can't load the workphase in project.\", err.message);\r\n });\r\n }\r\n\r\n dispatch(setCurrentProject(project));\r\n if (project.modelIds) {\r\n apiService.getArrayData('model', project.modelIds).then(models => {\r\n dispatch(updateModels(models));\r\n })\r\n }\r\n\r\n if (project.processIds) {\r\n apiService.getArrayData('process', project.processIds).then(processes => {\r\n dispatch(updateProcesses(processes));\r\n });\r\n }\r\n\r\n apiService.getDataByEndpoint(`inbox/project/${projId}`).then(res => {\r\n dispatch(registerEmails(res.data));\r\n });\r\n }).catch(err => {\r\n console.log(err.message);\r\n })\r\n }\r\n\r\n function setCurrentProject(project) {\r\n return {\r\n type: projConstants.PROJ_OPEN,\r\n payload: project\r\n }\r\n }\r\n\r\n function updateModels(models) {\r\n let previewDtos = models.map(m => {\r\n return m.changedFile;\r\n });\r\n\r\n return {\r\n type: modelConstants.MODEL_GETALL,\r\n payload: previewDtos\r\n };\r\n }\r\n\r\n function updateProcesses(processes) {\r\n const approved = processes.filter(p => p.status === propertyAssignmentStatus.Approved);\r\n return {\r\n type: processConstants.PROCESS_GETALL,\r\n payload: approved\r\n };\r\n }\r\n\r\n function registerEmails(emails) {\r\n return {\r\n type: emailConstants.GET_EMAIL,\r\n payload: emails\r\n };\r\n }\r\n}\r\n\r\nfunction syncIssue(id) {\r\n return dispatch => {\r\n apiService.getArrayData('issue', [id]).then(issues => {\r\n const issue = issues[0];\r\n if (issue.viewpointIds.length) {\r\n dispatch(viewpointActions.getViewpoint(issue.viewpointIds));\r\n }\r\n\r\n dispatch(updateIssue(issue));\r\n }).catch(err => {\r\n console.log(err);\r\n });\r\n }\r\n\r\n function updateIssue(issue) {\r\n return {\r\n type: detailConstants.DETAIL_SELECT,\r\n payload: issue\r\n }\r\n }\r\n}","import { apiService } from \"../../services\";\r\nimport { metaDataConstants } from \"../constants\";\r\n\r\nexport const metaDataActions = {\r\n getDisciplines,\r\n getBuildings,\r\n getFloors,\r\n}\r\n\r\nfunction getDisciplines(ids) {\r\n return dispatch => {\r\n apiService.getArrayData('metaData/discipline', ids)\r\n .then(disciplines => {\r\n dispatch(setDisciplines(disciplines));\r\n }).catch(err => {\r\n console.log(err.message);\r\n });\r\n }\r\n\r\n function setDisciplines(disciplines) {\r\n return {\r\n type: metaDataConstants.DISCIPLINE,\r\n payload: disciplines\r\n };\r\n }\r\n}\r\n\r\nfunction getBuildings(ids) {\r\n return dispatch => {\r\n apiService.getArrayData('metaData/building', ids)\r\n .then(buildings => {\r\n dispatch(setBuildings(buildings));\r\n }).catch(err => {\r\n console.log(err.message);\r\n });\r\n }\r\n\r\n function setBuildings(buildings) {\r\n return {\r\n type: metaDataConstants.BUILDING,\r\n payload: buildings\r\n };\r\n }\r\n}\r\n\r\nfunction getFloors(ids) {\r\n return dispatch => {\r\n apiService.getArrayData('metaData/floor', ids)\r\n .then(floors => {\r\n dispatch(setFloors(floors));\r\n }).catch(err => {\r\n console.log(err.message);\r\n });\r\n }\r\n\r\n function setFloors(floors) {\r\n return {\r\n type: metaDataConstants.FLOOR,\r\n payload: floors\r\n };\r\n }\r\n}","import { apiService } from '../../services';\r\nimport { modelConstants } from '../constants';\r\n\r\nexport const modelActions = {\r\n getModels,\r\n}\r\n\r\n/**\r\n * Get a list of model preview data specified by id.\r\n * @param {string[]} ids \r\n */\r\nfunction getModels(ids) {\r\n return dispatch => {\r\n apiService.getArrayData('model', ids)\r\n .then(\r\n models => {\r\n dispatch(registerModels(models));\r\n }\r\n ).catch(err => {\r\n console.log('Fail getting models:', err.message);\r\n });\r\n };\r\n\r\n function registerModels(models) {\r\n let previewDtos = models.map(m => {\r\n return m.changedFile;\r\n });\r\n\r\n return {\r\n type: modelConstants.MODEL_GETALL,\r\n payload: previewDtos\r\n };\r\n }\r\n}","import { propertyAssignmentStatus } from \"../../components/enums\";\r\nimport { apiService } from \"../../services\"\r\nimport { processConstants } from \"../constants\";\r\n\r\nexport const processActions = {\r\n getProcesses\r\n}\r\n\r\nfunction getProcesses(ids) {\r\n return dispatch => {\r\n apiService.getArrayData('processnew', ids)\r\n .then(data => {\r\n const approved = data.filter(d => d.status === propertyAssignmentStatus.Approved);\r\n dispatch(registerProcesses(approved));\r\n }).catch(err => {\r\n console.log('Process getting failed.', err);\r\n });\r\n };\r\n\r\n function registerProcesses(data) {\r\n return {\r\n type: processConstants.PROCESS_GETALL,\r\n payload: data\r\n };\r\n }\r\n}","import { apiService } from \"../../services\"\r\nimport { issueDescriptorConstants } from \"../constants\";\r\n\r\nexport const issueDescriptorActions = {\r\n getIssueDescriptors\r\n}\r\n\r\nfunction getIssueDescriptors(projectId) {\r\n return dispatch => {\r\n apiService.getDataByEndpoint(`issue-priority?projectId=${projectId}`)\r\n .then(priorities => {\r\n dispatch(setPriorities(priorities.data));\r\n }).catch(err => {\r\n console.log(err.message);\r\n });\r\n\r\n apiService.getDataByEndpoint(`issue-status?projectId=${projectId}`)\r\n .then(statuses => {\r\n dispatch(setStatuses(statuses.data));\r\n }).catch(err => {\r\n console.log(err.message);\r\n });\r\n\r\n apiService.getDataByEndpoint(`issue-type?projectId=${projectId}`)\r\n .then(types => {\r\n dispatch(setTypes(types.data));\r\n }).catch(err => {\r\n console.log(err.message);\r\n });\r\n }\r\n\r\n function setPriorities(priorities) {\r\n return {\r\n type: issueDescriptorConstants.PRIORITY,\r\n payload: priorities\r\n };\r\n }\r\n\r\n function setStatuses(statuses) {\r\n return {\r\n type: issueDescriptorConstants.STATUS,\r\n payload: statuses\r\n };\r\n }\r\n\r\n function setTypes(types) {\r\n return {\r\n type: issueDescriptorConstants.TYPE,\r\n payload: types\r\n };\r\n }\r\n}","import { workPhaseKind, workPhaseType } from '../enums';\r\nimport en from '../../assets/en.json';\r\nimport de from '../../assets/de.json';\r\n\r\nconst ALL = 'All';\r\n\r\nexport const converters = {\r\n getOptionsFromEnum,\r\n getOptionsFromObject,\r\n getLabelByValue,\r\n getOptionsFromMetaData,\r\n getOptionsFromTag,\r\n getOptionsFromWorkPhaseKind,\r\n getOptionsFromWorkphase\r\n}\r\n\r\nfunction getOptionsFromEnum(enumObject, addAll = false) {\r\n const lang = window.isGerman ? de : en;\r\n let options = addAll ? [{ value: ALL, label: lang[ALL] }] : [];\r\n return [...options, ...getData(enumObject)];\r\n\r\n function getData(enumObject) {\r\n return Object.keys(enumObject).map(k => {\r\n const data = enumObject[k];\r\n const { value, label } = data;\r\n const name = lang[label];\r\n\r\n return { value: value, label: name ? name : label };\r\n });\r\n }\r\n}\r\n\r\nfunction getOptionsFromObject(object, addAll = false) {\r\n const lang = window.isGerman ? de : en;\r\n let options = addAll ? [{ value: ALL, label: lang[ALL] }] : [];\r\n return [...options, ...getData()];\r\n\r\n function getData() {\r\n if (!object)\r\n return [];\r\n\r\n return Object.keys(object).map(key => {\r\n const data = object[key];\r\n return { value: data, label: data };\r\n });\r\n }\r\n}\r\n\r\nfunction getLabelByValue(enumObject, value) {\r\n const lang = window.isGerman ? de : en;\r\n const prospect = Object.values(enumObject).find(v => v.value === value);\r\n return prospect ? lang[prospect.label] : '';\r\n}\r\n\r\nfunction getOptionsFromMetaData(metaData, addAll = false) {\r\n const lang = window.isGerman ? de : en;\r\n let options = addAll ? [{ value: ALL, label: lang[ALL] }] : [];\r\n return [...options, ...getData()];\r\n\r\n function getData() {\r\n return metaData.map(m => {\r\n return { value: m.id, label: m.abbreviation };\r\n });\r\n }\r\n}\r\n\r\nfunction getOptionsFromTag(tags, addAll = false) {\r\n const lang = window.isGerman ? de : en;\r\n let options = addAll ? [{ value: ALL, label: lang[ALL] }] : [];\r\n return [...options, ...getData()];\r\n\r\n function getData() {\r\n if (tags) {\r\n return tags.map(t => {\r\n return { value: t.id, label: t.name }\r\n });\r\n }\r\n\r\n return [];\r\n }\r\n}\r\n\r\nfunction getOptionsFromWorkphase(workPhases, addAll = false) {\r\n const lang = window.isGerman ? de : en;\r\n let options = addAll ? [{ value: ALL, label: lang[ALL] }] : [];\r\n return [...options, ...getData()];\r\n\r\n function getData() {\r\n if (workPhases) {\r\n return workPhases.map(wp => {\r\n return { value: wp.id, label: wp.name };\r\n });\r\n }\r\n\r\n return [];\r\n }\r\n}\r\n\r\nfunction getOptionsFromWorkPhaseKind(kind, addAll = false) {\r\n const lang = window.isGerman ? de : en;\r\n let options = addAll ? [{ value: ALL, label: lang[ALL] }] : [];\r\n\r\n return [...options, ...getData()];\r\n\r\n function getData() {\r\n const types = Object.keys(workPhaseType).map(k => { return workPhaseType[k] });\r\n let data = [];\r\n switch (kind) {\r\n case workPhaseKind.Hoai:\r\n data = types.filter(t => t.value > 20);\r\n break;\r\n case workPhaseKind.Riba:\r\n data = types.filter(t => t.value > 12 && t.value < 21);\r\n break;\r\n case workPhaseKind.Sia:\r\n data = types.filter(t => t.value < 13);\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return data;\r\n }\r\n}","import { issueLogEntryType } from \"../enums/issueLogEntryType\";\r\nimport Moment from \"moment\";\r\nimport { issueVisibility, workPhaseType } from \"../enums\";\r\n\r\nexport const getter = {\r\n getTokenBearer,\r\n getHistoryContent,\r\n getRoleActions,\r\n getWorkPhase,\r\n getRoleId,\r\n isIssueVisible,\r\n isActionAllowed,\r\n};\r\n\r\nfunction getTokenBearer() {\r\n const token = JSON.parse(localStorage.getItem(\"projectToken\"));\r\n return token.bearer;\r\n}\r\n\r\nfunction getHistoryContent(logEntry, statuses, priorities, types) {\r\n let content = undefined;\r\n switch (logEntry.entryType) {\r\n case issueLogEntryType.IssueCreated:\r\n content = \"Issue was created\";\r\n break;\r\n case issueLogEntryType.TitleUpdated:\r\n content = `changed title from \"${logEntry.oldValue}\" to \"${logEntry.newValue}\"`;\r\n break;\r\n case issueLogEntryType.DescriptionUpdated:\r\n content = \"changed description\";\r\n break;\r\n case issueLogEntryType.TypeUpdated:\r\n content = `changed type from ${getDescriptorName(\r\n types,\r\n logEntry.oldId\r\n )} to ${getDescriptorName(types, logEntry.newId)}`;\r\n break;\r\n case issueLogEntryType.PriorityUpdated:\r\n content = `changed priority from ${getDescriptorName(\r\n priorities,\r\n logEntry.oldId\r\n )} to ${getDescriptorName(priorities, logEntry.newId)}`;\r\n break;\r\n case issueLogEntryType.DueDateUpdated:\r\n case issueLogEntryType.DueDateRemoved:\r\n if (logEntry.newValue === undefined || logEntry.newValue === \"\") {\r\n content = \"removed Due Date\";\r\n } else if (logEntry.oldValue === undefined || logEntry.oldValue === \"\") {\r\n content = `added ${Moment(logEntry.newValue).format(\r\n \"DD.MM.YY\"\r\n )} as Due Date`;\r\n } else {\r\n content = `changed Due Date from ${Moment(logEntry.oldValue).format(\r\n \"DD.MM.YY\"\r\n )} to ${Moment(logEntry.newValue).format(\"DD.MM.YY\")}`;\r\n }\r\n break;\r\n case issueLogEntryType.AssignedToUpdated:\r\n case issueLogEntryType.AssignedToRemoved:\r\n {\r\n const counts = getObjectListCount(logEntry.oldValue, logEntry.newValue);\r\n if (counts.removedCount === 0) {\r\n content = `added ${counts.addedCount} assigned users`;\r\n } else if (counts.addedCount === 0) {\r\n content = `removed ${counts.removedCount} assigned users`;\r\n } else {\r\n content = `added ${counts.addedCount} and removed ${counts.removedCount} assigned users`;\r\n }\r\n }\r\n break;\r\n case issueLogEntryType.DocumentFirstLinked:\r\n case issueLogEntryType.DocumentLinkVersionUpdated:\r\n break;\r\n case issueLogEntryType.StatusUpdate:\r\n content = `changed status from ${getDescriptorName(\r\n statuses,\r\n logEntry.oldId\r\n )} to ${getDescriptorName(statuses, logEntry.newId)}`;\r\n break;\r\n case issueLogEntryType.ReviewerUpdated:\r\n case issueLogEntryType.ReviewerRemoved:\r\n break;\r\n case issueLogEntryType.DisciplineMetaDataUpdated:\r\n case issueLogEntryType.DisciplineMetaDataRemoved:\r\n {\r\n const counts = getObjectListCount(logEntry.oldValue, logEntry.newValue);\r\n if (counts.removedCount === 0) {\r\n content = `added ${counts.addedCount} disciplines`;\r\n } else if (counts.addedCount === 0) {\r\n content = `removed ${counts.removedCount} disciplines`;\r\n } else {\r\n content = `added ${counts.addedCount} and removed ${counts.removedCount} disciplines`;\r\n }\r\n }\r\n break;\r\n case issueLogEntryType.BuildingMetaDataUpdated:\r\n case issueLogEntryType.BuildingMetaDataRemoved:\r\n {\r\n const counts = getObjectListCount(logEntry.oldValue, logEntry.newValue);\r\n if (counts.removedCount === 0) {\r\n content = `added ${counts.addedCount} buildings`;\r\n } else if (counts.addedCount === 0) {\r\n content = `removed ${counts.removedCount} buildings`;\r\n } else {\r\n content = `added ${counts.addedCount} and removed ${counts.removedCount} buildings`;\r\n }\r\n }\r\n break;\r\n case issueLogEntryType.FloorMetaDataUpdated:\r\n case issueLogEntryType.FloorMetaDataRemoved:\r\n {\r\n const counts = getObjectListCount(logEntry.oldValue, logEntry.newValue);\r\n if (counts.removedCount === 0) {\r\n content = `added ${counts.addedCount} floors`;\r\n } else if (counts.addedCount === 0) {\r\n content = `removed ${counts.removedCount} floors`;\r\n } else {\r\n content = `added ${counts.addedCount} and removed ${counts.removedCount} floors`;\r\n }\r\n }\r\n break;\r\n case issueLogEntryType.CustomDisciplineMetaDataUpdated:\r\n case issueLogEntryType.CustomDisciplineMetaDataRemoved:\r\n {\r\n const counts = getObjectListCount(logEntry.oldValue, logEntry.newValue);\r\n if (counts.removedCount === 0) {\r\n content = `added ${counts.addedCount} user choosen disciplines`;\r\n } else if (counts.addedCount === 0) {\r\n content = `removed ${counts.removedCount} user choosen disciplines`;\r\n } else {\r\n content = `added ${counts.addedCount} and removed ${counts.removedCount} user choosen disciplines`;\r\n }\r\n }\r\n break;\r\n case issueLogEntryType.CustomBuildingMetaDataUpdated:\r\n case issueLogEntryType.CustomBuildingMetaDataRemoved:\r\n {\r\n const counts = getObjectListCount(logEntry.oldValue, logEntry.newValue);\r\n if (counts.removedCount === 0) {\r\n content = `added ${counts.addedCount} user choosen buildings`;\r\n } else if (counts.addedCount === 0) {\r\n content = `removed ${counts.removedCount} user choosen buildings`;\r\n } else {\r\n content = `added ${counts.addedCount} and removed ${counts.removedCount} user choosen buildings`;\r\n }\r\n }\r\n break;\r\n case issueLogEntryType.CustomFloorMetaDataUpdated:\r\n case issueLogEntryType.CustomFloorMetaDataRemoved:\r\n {\r\n const counts = getObjectListCount(logEntry.oldValue, logEntry.newValue);\r\n if (counts.removedCount === 0) {\r\n content = `added ${counts.addedCount} user choosen floors`;\r\n } else if (counts.addedCount === 0) {\r\n content = `removed ${counts.removedCount} user choosen floors`;\r\n } else {\r\n content = `added ${counts.addedCount} and removed ${counts.removedCount} user choosen floors`;\r\n }\r\n }\r\n break;\r\n case issueLogEntryType.LinkedComponentsUpdated:\r\n case issueLogEntryType.LinkedComponentsRemoved:\r\n {\r\n const counts = getObjectListCount(logEntry.oldValue, logEntry.newValue);\r\n if (counts.removedCount === 0) {\r\n content = `added ${counts.addedCount} components`;\r\n } else if (counts.addedCount === 0) {\r\n content = `removed ${counts.removedCount} components`;\r\n } else {\r\n content = `added ${counts.addedCount} and removed ${counts.removedCount} components`;\r\n }\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return content;\r\n\r\n function getDescriptorName(items, id) {\r\n return items.find((item) => item.id === id)?.name;\r\n }\r\n}\r\n\r\nfunction getObjectListCount(oldValue, newValue) {\r\n let result = {};\r\n result.removedCount = oldValue.filter(\r\n (i) => newValue.includes(i) === false\r\n ).length;\r\n result.addedCount = newValue.filter(\r\n (i) => oldValue.includes(i) === false\r\n ).length;\r\n return result;\r\n}\r\n\r\nfunction getRoleActions(project, user) {\r\n if (user.id === undefined) {\r\n return null;\r\n }\r\n const role = project.collaboratorRoles.find(\r\n (r) => r.collaboratorId === user.id\r\n );\r\n const definition = project.collaboratorRoleDefinitions.find(\r\n (d) => d.id === role.roleDefinitionId\r\n );\r\n return definition !== undefined ? definition.actions : null;\r\n}\r\n\r\nfunction getWorkPhase(work) {\r\n const workPhase = Object.values(workPhaseType).find((w) => w.value === work);\r\n return workPhase.label;\r\n}\r\n\r\nfunction getRoleId(project, userId) {\r\n const role = project.collaboratorRoles.find(\r\n (r) => r.collaboratorId === userId\r\n );\r\n return role ? role.roleDefinitionId : null;\r\n}\r\n\r\nfunction isIssueVisible(issue, userId, roleId) {\r\n return (\r\n issue.creatAuthorId === userId ||\r\n issue.reviewerId === userId ||\r\n (issue.assignedUserIds && issue.assignedUserIds.includes(userId)) ||\r\n issue.visibility === issueVisibility.PUBLIC.value ||\r\n (issue.visibility === issueVisibility.RESTRICTED.value &&\r\n issue.allowedRoles.includes(roleId))\r\n );\r\n}\r\n\r\nfunction isActionAllowed(roleActions, action) {\r\n const actionMap = roleActions.find((a) => a.action === action);\r\n if (!action) return false;\r\n return actionMap.isAllowed;\r\n}\r\n","import { serviceHelper } from \"../../services/helper\";\r\n\r\nexport const version = {\r\n getVersion,\r\n getVersionMark,\r\n getUpdatedVersionUrl\r\n}\r\n\r\nfunction getVersion() {\r\n return window.pluginVersion;\r\n}\r\n\r\nfunction getVersionMark() {\r\n let mark = getVersion();\r\n const url = serviceHelper.getBaseURL();\r\n if (url === 'https://internal.api.visoplan.de/api/') {\r\n mark = `Internal - ${mark}`;\r\n } else if (url === 'https://prerelease.api.visoplan.de/api/') {\r\n mark = `Prerelease - ${mark}`;\r\n }\r\n\r\n return mark;\r\n}\r\n\r\nfunction getUpdatedVersionUrl() {\r\n const url = serviceHelper.getBaseURL();\r\n let pipeline = 'release';\r\n if (url === 'https://internal.api.visoplan.de/api/') {\r\n pipeline = 'internal';\r\n } else if (url === 'https://prerelease.api.visoplan.de/api/') {\r\n pipeline = 'prerelease';\r\n }\r\n\r\n return `https://update.visoplan.de/archicad/${pipeline}/${window.archicadVersion}/currentversion`;\r\n}","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQUAAAApCAYAAAA8jzxoAAAQn0lEQVR4nO2dC5QU1ZnH/9/tx/AI4AsDSOLodFcPEohBJDL4QOLykkc0Ahs1OcnZNW4UsqzEyHOdnCSKikgQxAQ3iWKMDLpZCfGR3U3YiGhc2Li6c6a7ugdQcIiyro+BmWGm+357bncPdtet7qmerh70WL9z6pzp7966dbu66rvfd7/v3oGHh4eHh4eHR0GoUEGveHb3DgBXVvx2E9qR5FG4ctLrWpmHh0dZCJdv32IAxzWp2zBWewrBw6MyuKsUptclAN6oyV2FD6IruMZ7Hjw8KoPblgIgfd8H8BdN7hZMSzB7fJv3PHh4VAb3lcLMiz4A4XZN7gq8C9MnPuE9Cx4elcN9paB4ceJDAPZq8vJIAXIhiNh7Hjw8KkdllEI9SQj6+/SUoHtsxvRL/tt7Fjw8KktllIJi6sQXwHhSk/eOd9EVXOU9Cx4eladySkEh/LcAKH9SkLkes8f/ryb38PBwncoqhWkTDgJ8nyYvjSYMrdrk/fQeHn1DZZWCoqvqjnRuQW9h/APGj+/yngcPj77B3TTnQjy7++sAHi5QWoynML3uy0XKPxJEIpFJzNw/ty9tbW0vHDp0qL1Y/2pqakI+n686VyaESESj0QNa5RyqR48eVpVMnpcrS6VSryUSiSNa5R6IRCLjJTAJwBnE7JdEb4HolZHDhu3auXNnsvjZzqmuru7n79fvMkqlxhLR6UzURcxvAHjeNM1omc37DMM4W5OqtBkpOwEcSSQSvcq0jUQiI5h5cFtb2+s9/Z4fBc4ZNersQCrlM01zv5OJ/lAoNFgIcUZHVdW7b7z22rtK5tdqlcJVG07Hrxe+0+MZ0yZuwXMv3gTgi1pZYTohxK0FSy38M5adfjXu7LkvFUAyLwTw17kt9xs4cAGAhmJXEz7fAwz8Va6Mmb8EoKhSCHR2TpdEP88T+nzzAWzTKhfAMIwrGLhfMteeuLYaJZhVJ/BmS8uboUjktkQs9kv7Fpxx7rnnDhF+/20E3AQph4Ao86Qyn3hiDcPYLYEHE6apriVLvUb16NFDuaurWStQ30ekjeGucCSyB1JujsfjvyglKial/DGIrhkwYMAlAHZpFcqkJhKZLpiXIDNCf9U0zbLmzvyp1H8yMNQwjBtN0/ypVsECEV3LwKbg8eP1AFTiYRnuw4z1g5GkXZixfqhWpl+ZIeXikkKUhHsx9aK4JrehAfN8SYjfNWDVGL20D2DWXkYC5ha7sHpZAFxmER8ZPnz4H7XKLhMOh7/BwO8A1BZp+SxifjRkGD/SShxSU1tb5/P7GwlYBmBIobMYqCPgkbBh7KypqTlTq+CcFiZamnuA+QcAngPzeBD9LGwY2y+44IJApe+xU0RmQLkieyxwq10G7jEM4yytwAG9VwoBcXv6ofL7fqCV2THz4pdA5HTUeQspsVqTFoBg3AhgHCDX2deoLO3t7c8AOJp3EeYrR48eHSx0YREIzAKQV85Ag5smux2hUKgGRJuduo4ELDcMo2QXLhQKfUFIqRRPKQ/mJUKIXaFQqOeBxp63ErHYXblHPB7/x7hpzpaplHK3lDUx6/3W1mW2Z/cxWQU4FcAHypph4Osu9mAwA+s1qQN6pxTmbAyB6ebspxsw5/7xWh07Onmp9vLY8710urQDfomlp3LW7AEwpQEr5/TqO5WB8jUZ+K2lhSHHjx+fXKhVklJ/0aTULA63IaJFNm7jvwuiCyXRFAb2aN0CVpTSjUgkMoiItgIYqBVmKOybE4WFEFvdnu9qbm5OSKIbkGn45j6bTysC+f3XquGVMm7fcwAmGIZRzHpzShJESiFfbRjGVaWe3DulwFAjctWJNti3Tq1U0upZmV33Jpjv0uT57MVLEx/VpAUIIG2xnJHTubVPY1GVfe0KQqStySAi/cXPjKJVIJqWVxf4SyKRcN1n1SD6giZjXhGLxfY0x2J/4FTqaqtfT8B4NbmpnVcAKeXd6uW2lL5DwEKW8sy4aQ4YPGhQEMyXZR/e/O4Al4cikevsW+89zbHYTuWiATjTMIxz3G6/VAj4GjL3awup8S293o+ud6PtpBDfUgMwAxurq6tP0SoUoXSlMPeBK/SNVHgSZm+cp9W1o1/nmiITaQyim9Np0g54AstqAbrJUrPmKAZ9p+TvVSZtra1PAziW1wrRXLsRiYjU5OKg/C+eHi1Sle4nA6dqMiE+2/13c3PzQTDPZaL5uUe/VMpRWDgUCo0E0d9YxO/4hKgzTXNjd4Rk7969XfF4/I/xWGw6rJOmmQnP5Vrj5aPmtA6pVlJCaPehLwmFQueBeRwDrycSieePHj26HUArM1/vRqrA/qam1wlQk4fDA4HAnVqFIpR28cn1fsgCyUhE92LqPYXMxQ+5/PIOML6nydPww5g28U+auAASYm3aWNCgVU9i+XBNXEFaWlraCHjacoUR4XB4gvYtM8oi//b1EKlwC1LzNdZrM//UMIwF3QosHo/vSMRi23KPaDTqKLJDRFdrvwnzrdFo1NQqZ0v7V1Upl+Zti3xUJBIZq9Uun7Qy8En5bsVusgOEEOn5AyJSVrHMPj//QsDZodraS924hmma69LuINGNkUhkilahAKUphcFDlS/2OU2OtA4eiX4DnIUQZ9RtA+E/LNJWCHbsuzZgubJWZmgFGQalQM4mQF1EEmlzAjYuhAqSzbLIDpumubsv+sj2YbVTGHg8bBhNhmEsKWOiT307a9j5WDAYLDrB/Oqrrx4D0SNaX5kv0iqXQdZfV3khb5umWcha7QsEA2o+QSnkE65yiuixtCyV+ppLfUj5MlZbMsW8SeWKaDVscK4Upj10GhjFFyUpC+DLm6o1uR3Ei/PNZf4Rpl7cYlNT4yf4VgCge7WCfL75OFZdqEkrSFtr62+tLgQzfyX3s2EYkxjI98+Zt/YmPt8bZDKpRo9Co3aEgTUkxCHDMLb2ZqQm5rzfn4FXGhsbO7WK+nl2StE1v18l6TDRg5lO8U/66n7bYRiGGrU/A+Dl3MStzwwf/m/pyBvRNSNGjBhgc2rJxGKxVwlYS4ARCAQcuWTOlUKw84cATtfk+fRHSjoLJU6d9ApAP8t+aoZ833E48VQMVeZmRCvIRwhI9QJoPn2lUCYgmJ/Ja54onDujLG3yF6TPp1kYlWLfvn3v+4imAyi2DD3IwHzJ/OdwJHJPKc8JWyIOxOw0oUzLxpSWeRcHnBKKROZZjutDhqEUXTQ9sQm81N7eXpKP7TYyO8FIwJbcprPhaOVGDh44cKD2nPSWtrY2FZ1LgGiZYRif76kZZz/23AfPA/gGTW7PAsx+wJqUYw/JlQDeB9MtmDnTURpqA5Yp07a4xfIhdduwYr4mrSAshPaCS+CEC0HM1pDpoeZo9MW+7GMsFtsfDAQmEPANEBW7tgDzd43SEpjywo1M9Cmthg1SCG0+ipiP6TWLcg4xN1gONbO/hIB+DNzZ3tY25WSmK48dO3YgAWrepUtKuVWrwNwdhXDLhciEzIVQ76+PlaEN+LRKOThTCjJ1n01suzDE6zCvoeiF00yb9DYk5mLGxO1aWUGEslhKCLHwmt+g3hVTzAltra07rC4EZZVCbW3tGGuojjMjQ5/vJqVMetM0H47HYnU+IcYysAHAe1rFTOducRqSJOCg5fMYuwiMFSHlaO26RKXu2L3fGjVRk7os5bgRI0acmTDN5Sd7/UJbR4dSCJ9SFqXdWpV4PP4n5d4RMLWUMHBPJKLRnSBSKd5fNAzj28Wq96wUZm24Kpt15RzG+eg48reO6s+ss044FuRxrFKmjzXc1QM0sh1d3y1exz3SLkQmESWXCSpUl5RSSyRRo1pf9a0Q0Wj0tYRpLjp29OhZnElJtmZVBv3J5MwCp+fBRNbkp6FZH7ooDGghbWGTSNUD71mjJolYbHsikfhzpTNFndKdm8BCbCl0ilCPOuALdnVdqxWWQdDvV+/BWwysjkQiBedrio/+8xqC6DjSU7JRAfgOXLXhCUcLphwiMmnMPVsgOksbcNsv5uOuN7SSCqAy1DhjInZD8Plmp9dDcJ5RcDAej7/cF33qJhwOX8pCfDpXFhBiV1NT0+GsQlsdDoeHgdLb6eV8AWeTfgJ4SgKrc60DNXkZCoUuKrRSUfn90CMNh0zTLFUpfKRRaxEYSCtIYv5O2Ein52twdu4um/a8VqvQSxobG//PMIzFDPwqxel/xWCr6ItbCh1H1M5J1sw0h9BpSIqVbn2hBqy8RmVKaAXO6M/w3+FWX3oiEAjs0FJ5mb8N5rxswpPhOhDRDVa/Oyml1aqzW8rsKEwZi8ViINphEZ8PIZ62jk6TJ0/2G4axkJj/SWuIef3JjBBUAia6LjuovZddE3JugWNIOkQPfN7tXA3TNB8H83YCZmRzUzQKK4U569RoUubCEV6IKzfZ5zWUwM9R3w/gu8tpg4BrG7DiYq2gAjQ2Nqr1Hc9arq/51gLQJ5oqj74Kk/nWUCikXESRzUjURjBmPqydVwAB3Gr9T2EETJHM8bBhvBwOh7eFDWPHmy0tLWr5ts3CMLOrq+t++9Y/vmSzFdW9+GbcNGuKHWohGjJa0ZW051xSqdSidPZkZh7pDGt5YaXAAWUCDtbkpeGHKH/l4kB0LnEhZq1eyB/Xo77wd3YTm+XUFvafDPOYiJS/as0HGURCPBc2jHYS4mB6ZM+Hpc/3mNZYAZS1QMCNNlaQGiUvVHH4bKq8nfVxjJgXHDhwoEMr+RgTCoXGZQeGdwKBgDXzVaMzEHgincfDfF0vXeaC7Nu37w213iW9sQ7RLdZ69i/I7A3j4N4yzi9hzgO9XrnYgPphABVIiy6ZcaPQ5VqopxjBYPA3mguRA52kqEMsFmsVmXCXXd9sl3qrUN6+piZHe1t0oyIb6ZAnUMrLfUQKMTUej7+ilXzMoe4QI/MWJ8lcBxob1X9Ze0Glyodqa6/QKpRJPB7fyMALdmthbJQCE4jW2Zf1EsZazFjfy5WLXXe7YLGcgIC7HkW9a+0VQrkQrEchTiClPGlRh1gs9nuWckp6U9ziqDX+tydMs1fb65um+QhLOZ6B32uF+ajrbGYpRzdHo3aZjScdBp4JG8Z7dkdPy5PV3AkRde/M5XhbwuySajfTnnOR7PP9XXqHMwt69GH2pq+CcYkmLwuugd+v0ppLimQ0YNUFgHR7Ce2nA0iqfR0qsQovHyk3kRB2qws/iCcS/6VJHcLM+4VlnQWnUiVtjptIJF4CMCYcDs8gIrWG5PzsqKHmAg6pUUQmk4+lTc0ySCQSjcpaDIfDyiWZRURjGDgtuyL2EDPvCfh8v1bRj15f5dixDgoGt6n7opWVCRPtFj1YdFLKov879fDhwzVqL0oCjpglWEE+n+/JVCp1KRMls4N0jxOvBGy3ZpUWormp6X9CkchiwXw5EzXmtJHDvLX90VGlRg/bTTDLpBUka7F9kaP1DSo9eRtWPp9elu0+nQL0uWvww5JMYg+PTwL5LkJHcGmFFALS+wcwOQ4LbsOK6yukEBRBCYdrNDw8PmF8aCnMWD8Sfl+0yBZabsAQPBFPLSy6Z4JKS25Hsgngz2qF7nZn6nzc8a+a2MPjE8yHloLft6bCCgFpJcS0EfXFw4LtSC6vvEJId+e+P6Ben1fx8PgEk3kh1Eu6hzfDJx7qk1uxe2B/beuyPPhZBu3UxBXgA7T1z2aPeXh84vHw8PDw8PDwKAKA/wcvigI1zQbc7QAAAABJRU5ErkJggg==\"","import React from \"react\";\r\nimport Loader from \"react-loader-spinner\";\r\nimport { connect } from \"react-redux\";\r\nimport { userActions } from \"../redux/actions\";\r\nimport { version } from \"./helper\";\r\nimport en from \"../assets/en.json\";\r\nimport de from \"../assets/de.json\";\r\nimport img from \"../assets/visoplan-white.png\";\r\nimport \"../css/login.css\";\r\n\r\nclass Login extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n email: \"\",\r\n password: \"\",\r\n remember: false,\r\n flag: 0,\r\n isGerman: false,\r\n };\r\n\r\n this.updateAvailable = false;\r\n this.latestVersion = undefined;\r\n }\r\n\r\n componentDidMount() {\r\n this.timerId = setInterval(() => {\r\n this.getApplicationInfo();\r\n }, 100);\r\n }\r\n\r\n getApplicationInfo() {\r\n window.GetApplicationInfo();\r\n\r\n if (window.isGerman !== undefined) {\r\n this.setState({ isGerman: window.isGerman });\r\n clearInterval(this.timerId);\r\n this.getUpdatedVersionInfo();\r\n }\r\n }\r\n\r\n getUpdatedVersionInfo() {\r\n const axios = require(\"axios\");\r\n const config = {\r\n method: \"get\",\r\n url: version.getUpdatedVersionUrl(),\r\n headers: {},\r\n };\r\n\r\n axios(config)\r\n .then((res) => {\r\n this.latestVersion = res.data;\r\n this.updateAvailable =\r\n versionCompare(version.getVersion(), this.latestVersion) < 0;\r\n if (this.updateAvailable) {\r\n this.showNotification();\r\n }\r\n\r\n this.props.refresh(this.props.history);\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n });\r\n\r\n function versionCompare(v1, v2) {\r\n let v1Parts = v1.split(\".\").map(Number);\r\n let v2Parts = v2.split(\".\").map(Number);\r\n\r\n if (v1Parts.length !== v2Parts.length) {\r\n return -1;\r\n }\r\n\r\n for (let i = 0; i < v1Parts.length; i++) {\r\n if (v1Parts[i] === v2Parts[i]) {\r\n continue;\r\n } else if (v1Parts[i] > v2Parts[i]) {\r\n return 1;\r\n } else {\r\n return -1;\r\n }\r\n }\r\n\r\n return 0;\r\n }\r\n }\r\n\r\n showNotification() {\r\n const lang = window.isGerman ? de : en;\r\n const content = lang[\"UpdateNotice\"].replace(\"VERSION\", this.latestVersion);\r\n window.AlertAPI(content);\r\n }\r\n\r\n handleSubmit = async (e) => {\r\n e.preventDefault();\r\n\r\n this.setState({ flag: 0 });\r\n const { email, password, remember } = this.state;\r\n this.props.login(email, password, remember, this.props.history);\r\n this.setState({ flag: 1 });\r\n };\r\n\r\n handleMailChanged = (e) => {\r\n this.setState({ email: e.target.value });\r\n };\r\n\r\n handlePasswordChanged = (e) => {\r\n this.setState({ password: e.target.value });\r\n };\r\n\r\n handleRememberChanged = (e) => {\r\n this.setState({ remember: e.target.checked });\r\n };\r\n\r\n render() {\r\n const lang = this.state.isGerman ? de : en;\r\n const loggingIn = this.props.loggingIn;\r\n const visible = !loggingIn && this.state.flag === 1;\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 {visible && (\r\n \r\n {lang[\"IncorrectInput\"]}\r\n \r\n )}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {loggingIn && (\r\n \r\n )}\r\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 mapStateToProps = (state) => {\r\n return { loggingIn: state.user.loggingIn };\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n login: (email, password, remember, history) => {\r\n dispatch(userActions.login(email, password, remember, history));\r\n },\r\n refresh: (history) => {\r\n dispatch(userActions.refresh(history));\r\n },\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Login);\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA10lEQVQ4ja3TMUoEUQwG4C9qZWNjY6WFhVjYLdh4hC0s3QPoGURYe0vPYSV2iwew8gi7gtja2ErkLTMwjDOyMvtD4OW9/H9CXhKZqQsRcYgDzLHIzO+OMIpAbdjHAz7wgkd8Vv4U2834JadBviyZcIGtxv0mTnGP57ZIHXSOV+y1M7QqvGmLFOziDcddpB6R69oP3JYyM3P6q0ErYAMjzP5DiohJRIyXZ7zjKDO/qscdXFXifSiNPsHdX0Er4wlnXQ3rM0wwXksTDf3G4YO0llEeskzD1hk/0FYzcYYiaVYAAAAASUVORK5CYII=\"","import React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport Moment from \"moment\";\r\nimport { userActions, projActions, metaDataActions } from \"../redux/actions\";\r\nimport { issueDescriptorActions } from \"../redux/actions/issueDescriptorActions\";\r\nimport { apiService } from \"../services\";\r\nimport img from \"../assets/logout.png\";\r\nimport en from \"../assets/en.json\";\r\nimport de from \"../assets/de.json\";\r\nimport \"../css/projects.css\";\r\n\r\nclass Projects extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { seletedItem: -1 };\r\n this.handleLogout = this.handleLogout.bind(this);\r\n this.handleSelectProject = this.handleSelectProject.bind(this);\r\n this.handleOpenProject = this.handleOpenProject.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n if (!this.props.loggedIn) {\r\n this.props.history.push(\"/\");\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.user !== this.props.user) {\r\n this.getProjects();\r\n }\r\n }\r\n\r\n getProjects() {\r\n let user = this.props.user;\r\n\r\n if (user && user.projectIds) {\r\n this.props.loadProjects(user.projectIds);\r\n }\r\n }\r\n\r\n async handleLogout(e) {\r\n e.preventDefault();\r\n this.props.logout(this.props.history);\r\n }\r\n\r\n handleSelectProject(e) {\r\n e.preventDefault();\r\n this.setState({ seletedItem: e.target.parentNode.rowIndex - 1 });\r\n }\r\n\r\n handleOpenProject() {\r\n const projects = this.props.projects;\r\n if (this.state.seletedItem > -1) {\r\n const selectedProject = projects[this.state.seletedItem];\r\n if (selectedProject.trialExpired) {\r\n const lang = window.isGerman ? de : en;\r\n window.AlertAPI(lang[\"ExpiredProject\"]);\r\n } else {\r\n this.openProject(selectedProject);\r\n }\r\n }\r\n }\r\n\r\n openProject(project) {\r\n apiService\r\n .getProjectToken(project.id)\r\n .then((res) => {\r\n if (res.status === 200) {\r\n localStorage.setItem(\"projectToken\", JSON.stringify(res.data));\r\n this.props.openProject(project);\r\n this.props.retrieveDisciplines(project.disciplineMetaDataIds);\r\n this.props.retrieveBuildings(project.buildingMetaDataIds);\r\n this.props.retrieveFloors(project.layerMetaDataIds);\r\n this.props.retrieveDescriptors(project.id);\r\n this.props.history.push(\"/IssueManager\");\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n });\r\n }\r\n\r\n renderTableData() {\r\n return this.props.projects.map((project, index) => {\r\n const { name, creationDate } = project;\r\n return (\r\n \r\n {name}\r\n {Moment(creationDate).format(\"DD/MM/YYYY\")}\r\n \r\n );\r\n });\r\n }\r\n\r\n render() {\r\n const lang = window.isGerman ? de : en;\r\n const projects = this.props.projects;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

{lang[\"Projects\"]}

\r\n
\r\n
\r\n \"\"\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {projects && this.renderTableData()}\r\n
{lang[\"Project\"]}{lang[\"Created\"]}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n loggedIn: state.user.loggedIn,\r\n user: state.user.currentUser,\r\n projects: state.project.projects,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n loadProjects: (ids) => {\r\n dispatch(projActions.getProjects(ids));\r\n },\r\n openProject: (project) => {\r\n dispatch(projActions.openProject(project));\r\n },\r\n logout: (history) => {\r\n dispatch(userActions.logout(history));\r\n },\r\n retrieveDisciplines: (ids) => {\r\n dispatch(metaDataActions.getDisciplines(ids));\r\n },\r\n retrieveBuildings: (ids) => {\r\n dispatch(metaDataActions.getBuildings(ids));\r\n },\r\n retrieveFloors: (ids) => {\r\n dispatch(metaDataActions.getFloors(ids));\r\n },\r\n retrieveDescriptors: (projId) => {\r\n dispatch(issueDescriptorActions.getIssueDescriptors(projId));\r\n },\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Projects);\r\n","import React from \"react\";\r\nimport Select, { components } from \"react-select\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faCaretDown, faCaretUp } from \"@fortawesome/free-solid-svg-icons\";\r\nimport en from \"../../assets/en.json\";\r\nimport de from \"../../assets/de.json\";\r\n\r\nconst customStyles = {\r\n menuList: (base) => ({\r\n ...base,\r\n height: \"100%\",\r\n \"::-webkit-scrollbar\": {\r\n width: \"6px\",\r\n },\r\n \"::-webkit-scrollbar-track\": {\r\n background: \"transparent\",\r\n },\r\n \"::-webkit-scrollbar-thumb\": {\r\n backgroundColor: \"#D4D4D4\",\r\n borderColor: \"transparent\",\r\n borderRadius: \"20px\",\r\n },\r\n }),\r\n option: (provided) => ({\r\n ...provided,\r\n color: \"#66666\",\r\n textAlign: \"left\",\r\n }),\r\n control: (provided) => ({\r\n ...provided,\r\n border: \"1px solid #D2D2D2\",\r\n borderRadius: \"3px\",\r\n height: \"30px\",\r\n minHeight: \"30px\",\r\n }),\r\n menuPortal: (base) => ({\r\n ...base,\r\n zIndex: 9999,\r\n }),\r\n};\r\n\r\nconst DropdownIndicator = (props) => {\r\n return (\r\n components.DropdownIndicator && (\r\n \r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst Option = (props) => {\r\n return (\r\n components.Option && (\r\n \r\n null}\r\n />\r\n {props.data.label}\r\n \r\n )\r\n );\r\n};\r\n\r\nconst ValueContainer = ({ children, ...props }) => {\r\n const lang = window.isGerman ? de : en;\r\n const { getValue, hasValue } = props;\r\n const nbValues = getValue().length;\r\n const selectInput = React.Children.toArray(children).find(\r\n (input) => input.type.name === \"Input\" || input.type.name === \"DummyInput\"\r\n );\r\n\r\n if (!hasValue) {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n }\r\n return (\r\n \r\n {`${nbValues} ${lang[\"selected\"]}`}\r\n {selectInput}\r\n \r\n );\r\n};\r\n\r\nclass VisoSelect extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { disabled: false, value: undefined, isMultiSelect: false };\r\n this.handleChange = this.handleChange.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.setState({ value: this.getDefaultOption() });\r\n if (this.props.isMultiSelect) {\r\n this.setState({ isMultiSelect: this.props.isMultiSelect });\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.disabled !== this.props.disabled) {\r\n this.setState({ disabled: this.props.disabled });\r\n }\r\n\r\n if (prevProps.defaultValue !== this.props.defaultValue) {\r\n const option = this.getDefaultOption();\r\n this.setState({ value: option });\r\n }\r\n }\r\n\r\n getDefaultOption() {\r\n const options = this.props.options;\r\n if (this.props.isMultiSelect) {\r\n return options.filter((o) => this.props.defaultValue.includes(o.value));\r\n }\r\n return options.find((o) => o.value === this.props.defaultValue);\r\n }\r\n\r\n handleChange = (selectedOption) => {\r\n if (this.state.isMultiSelect) {\r\n const values = selectedOption.map((o) => o.value);\r\n this.props.onChange(values);\r\n } else {\r\n this.props.onChange(selectedOption?.value);\r\n }\r\n this.setState({ value: selectedOption });\r\n };\r\n\r\n render() {\r\n const { options, isClearable, isSearchable } = this.props;\r\n const searchable = isSearchable ? true : false;\r\n const { disabled, value, isMultiSelect } = this.state;\r\n\r\n return (\r\n
\r\n {\r\n ({\r\n ...theme,\r\n borderRadius: 0,\r\n colors: {\r\n ...theme.colors,\r\n primary: \"#F4F4F4\",\r\n primary25: \"#F4F4F4\",\r\n primary50: \"#F4F4F4\",\r\n },\r\n })}\r\n isDisabled={disabled}\r\n onChange={this.handleChange}\r\n />\r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default VisoSelect;\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport VisoSelect from './viso_select';\r\nimport Moment from 'moment';\r\nimport { converters } from '../helper';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faTimes, faTimesCircle } from '@fortawesome/free-solid-svg-icons';\r\nimport { library } from '@fortawesome/fontawesome-svg-core';\r\nimport en from '../../assets/en.json';\r\nimport de from '../../assets/de.json';\r\nimport '../../css/importItem.css';\r\n\r\nlibrary.add(faTimes, faTimesCircle);\r\n\r\nclass ImportItem extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n disciplines: [], buildings: [], floors: [], isUpdated: false,\r\n disciplineId: '', buildingId: '', floorId: '', isHover: false, isAddable: false,\r\n versionModels: [], selectedModelId: '', selectedFileId: '', fileName: '', isDisciplineAlone: false, isBuildingAlone: false, isFloorAlone: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.initialize();\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n if (this.props.disciplines !== prevProps.disciplines) {\r\n const disciplines = converters.getOptionsFromMetaData(this.props.disciplines);\r\n if (disciplines.length === 1) {\r\n const disciplineId = disciplines[0].value;\r\n this.setState({ isDisciplineAlone: true, disciplineId: disciplineId, disciplines: disciplines });\r\n } else {\r\n this.setState({ disciplines: disciplines, isDisciplineAlone: false, disciplineId: '' });\r\n }\r\n }\r\n\r\n if (this.props.buildings !== prevProps.buildings) {\r\n const buildings = converters.getOptionsFromMetaData(this.props.buildings);\r\n if (buildings.length === 1) {\r\n const buildingId = buildings[0].value;\r\n this.setState({ isBuildingAlone: true, buildingId: buildingId, buildings: buildings });\r\n } else {\r\n this.setState({ isBuildingAlone: false, buildingId: '', buildings: buildings });\r\n }\r\n }\r\n\r\n if (this.props.floors !== prevProps.floors) {\r\n const floors = converters.getOptionsFromMetaData(this.props.floors);\r\n if (floors.length === 1) {\r\n const floorId = floors[0].value;\r\n this.setState({ isFloorAlone: true, floorId: floorId, floors: floors });\r\n } else {\r\n this.setState({ isFloorAlone: false, floorId: '', floors: floors });\r\n }\r\n }\r\n\r\n if (this.props.model !== prevProps.model) {\r\n this.initialize();\r\n }\r\n\r\n if (this.state.disciplineId !== prevState.disciplineId) {\r\n this.props.model.disciplineMetaDataId = this.state.disciplineId;\r\n this.checkState();\r\n }\r\n\r\n if (this.state.buildingId !== prevState.buildingId) {\r\n this.props.model.buildingMetaDataId = this.state.buildingId;\r\n this.checkState();\r\n }\r\n\r\n if (this.state.floorId !== prevState.floorId) {\r\n this.props.model.floorMetaDataId = this.state.floorId;\r\n this.checkState();\r\n }\r\n\r\n if (prevState.selectedFileId !== this.state.selectedFileId) {\r\n this.onChangeFileId();\r\n }\r\n\r\n if (this.props.models !== prevProps.models) {\r\n this.getModelVersions();\r\n }\r\n }\r\n\r\n initialize() {\r\n const disciplines = converters.getOptionsFromMetaData(this.props.disciplines);\r\n const buildings = converters.getOptionsFromMetaData(this.props.buildings);\r\n const floors = converters.getOptionsFromMetaData(this.props.floors);\r\n\r\n const model = this.props.model;\r\n\r\n if (model.fileId) {\r\n this.setState({\r\n disciplines: disciplines, buildings: buildings, floors: floors, disciplineId: model.disciplineMetaDataId, isDisciplineAlone: true, isBuildingAlone: true, isFloorAlone: true\r\n , buildingId: model.buildingMetaDataId, floorId: model.floorMetaDataId, selectedFileId: model.fileId, fileName: model.name\r\n });\r\n } else {\r\n let disciplineId = '';\r\n let buildingId = '';\r\n let floorId = '';\r\n let isDisciplineAlone = false;\r\n let isBuildingAlone = false;\r\n let isFloorAlone = false;\r\n if (disciplines.length === 1) {\r\n isDisciplineAlone = true;\r\n disciplineId = disciplines[0].value;\r\n }\r\n\r\n if (buildings.length === 1) {\r\n isBuildingAlone = true;\r\n buildingId = buildings[0].value;\r\n }\r\n\r\n if (floors.length === 1) {\r\n isFloorAlone = true;\r\n floorId = floors[0].value;\r\n }\r\n this.setState({\r\n disciplines: disciplines, buildings: buildings, floors: floors, disciplineId: disciplineId\r\n , buildingId: buildingId, floorId: floorId, selectedFileId: '', isDisciplineAlone: isDisciplineAlone, isBuildingAlone: isBuildingAlone, isFloorAlone: isFloorAlone\r\n });\r\n }\r\n }\r\n\r\n handleChangeDiscipline = (discipline) => {\r\n this.setState({ disciplineId: discipline });\r\n }\r\n\r\n handleChangeBuilding = (building) => {\r\n this.setState({ buildingId: building });\r\n }\r\n\r\n handleChangeFloor = (floor) => {\r\n this.setState({ floorId: floor });\r\n }\r\n\r\n handleChangeVersion = (fileId) => {\r\n this.setState({ selectedFileId: fileId });\r\n }\r\n\r\n onChangeFileId() {\r\n const model = this.props.models.find(m => m.fileId === this.state.selectedFileId);\r\n const fileName = model !== undefined ? model.name : '';\r\n this.setState({ fileName: fileName });\r\n if (model) {\r\n const extension = this.getFileExtension(model.fileName);\r\n if (extension.includes('xml')) {\r\n const lang = window.isGerman ? de : en;\r\n window.alertAPI(lang['DontOpenIfcXml']);\r\n }\r\n\r\n this.props.onChangeFileId(this.state.selectedFileId, model.fileName, this.props.index - 1);\r\n }\r\n }\r\n\r\n getFileExtension(fileName) {\r\n return fileName.split('.').pop().toLowerCase();\r\n }\r\n\r\n handleMouseEnter = () => {\r\n this.setState({ isHover: true });\r\n }\r\n\r\n handleMouseLeave = () => {\r\n this.setState({ isHover: false });\r\n }\r\n\r\n handleDelete = () => {\r\n this.props.onDelete(this.props.index - 1);\r\n }\r\n\r\n checkState() {\r\n const addable = this.isStringFull(this.state.disciplineId)\r\n && this.isStringFull(this.state.buildingId)\r\n && this.isStringFull(this.state.floorId);\r\n\r\n this.setState({ isAddable: addable });\r\n if (addable) {\r\n this.getModelVersions();\r\n }\r\n }\r\n\r\n isStringFull(content) {\r\n return content !== '';\r\n }\r\n\r\n getDisciplineName() {\r\n const discipline = this.state.disciplines.find(d => d.value === this.state.disciplineId);\r\n if (discipline)\r\n return discipline.label;\r\n\r\n return '';\r\n }\r\n\r\n getBuildingName() {\r\n const building = this.state.buildings.find(b => b.value === this.state.buildingId);\r\n if (building)\r\n return building.label;\r\n\r\n return '';\r\n }\r\n\r\n getFloorName() {\r\n const floor = this.state.floors.find(f => f.value === this.state.floorId);\r\n if (floor)\r\n return floor.label;\r\n\r\n return '';\r\n }\r\n\r\n getModelVersions() {\r\n if (this.props.models) {\r\n const models = this.props.models.filter(m => {\r\n return m.disciplineMetaDataId === this.state.disciplineId\r\n && m.buildingMetaDataId === this.state.buildingId\r\n && m.floorMetaDataId === this.state.floorId;\r\n }).sort(function (a, b) { return Date.parse(b.creationDate) - Date.parse(a.creationDate) })\r\n .map(m => { return { value: m.fileId, label: Moment(m.creationDate).format('DD.MM.YYYY') } });\r\n\r\n if (models.length) {\r\n const fileId = this.state.selectedFileId ? this.state.selectedFileId : models[0].value;\r\n this.setState({ versionModels: models, selectedFileId: fileId, isAddable: true });\r\n } else {\r\n this.setState({ isAddable: false, selectedFileId: '' });\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n const lang = window.isGerman ? de : en;\r\n const {\r\n isUpdated, disciplines, buildings, floors, isHover, isAddable, versionModels, selectedFileId, disciplineId, buildingId, floorId, fileName\r\n , isDisciplineAlone, isBuildingAlone, isFloorAlone\r\n } = this.state;\r\n\r\n const isAdded = this.props.model.fileId !== undefined && this.props.model.fileId !== '';\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n {isUpdated && }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {!isDisciplineAlone && !isAdded && }\r\n {!isDisciplineAlone && isAdded && }\r\n {isDisciplineAlone && }\r\n
\r\n \r\n
\r\n {!isBuildingAlone && !isAdded && }\r\n {!isBuildingAlone && isAdded && }\r\n {isBuildingAlone && }\r\n
\r\n
\r\n
\r\n \r\n {!isFloorAlone && !isAdded && }\r\n {!isFloorAlone && isAdded && }\r\n {isFloorAlone && }\r\n \r\n {isAddable && }\r\n
\r\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 mapStateToProps = state => {\r\n return {\r\n disciplines: state.metaData.disciplines,\r\n buildings: state.metaData.buildings,\r\n floors: state.metaData.floors,\r\n models: state.models.models\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, null)(ImportItem);","import React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { modelActions } from \"../redux/actions\";\r\nimport { Backdrop, CircularProgress } from \"@material-ui/core\";\r\nimport { apiService } from \"../services\";\r\nimport { getter } from \"./helper\";\r\nimport en from \"../assets/en.json\";\r\nimport de from \"../assets/de.json\";\r\nimport \"../css/importModel.css\";\r\nimport ImportItem from \"./controls/importItem\";\r\n\r\nclass ModelList extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n models: [],\r\n seletedItem: -1,\r\n importing_ifc: false,\r\n model: {},\r\n };\r\n this.handleSelectModel = this.handleSelectModel.bind(this);\r\n this.handleImportModel = this.handleImportModel.bind(this);\r\n\r\n window.ImportModel = this;\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.project.id) {\r\n this.getModels();\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.models !== this.props.models) {\r\n this.displayModels();\r\n }\r\n }\r\n\r\n getModels() {\r\n if (this.props.models.length) {\r\n this.displayModels();\r\n }\r\n\r\n let project = this.props.project;\r\n if (project && project.modelIds) {\r\n this.props.getModels(project.modelIds);\r\n }\r\n }\r\n\r\n displayModels() {\r\n let models = this.props.models.sort(function (a, b) {\r\n return Date.parse(b.creationDate) - Date.parse(a.creationDate);\r\n });\r\n this.setState({ models: models });\r\n }\r\n\r\n /**\r\n * Get a name of discipline specified by id.\r\n * @param {string} id\r\n * @returns {string} if a discipline specified by id exists, return it's name otherwise empty string.\r\n */\r\n getDisciplineName(id) {\r\n const discipline = this.props.disciplines.find((d) => d.id === id);\r\n return discipline ? discipline.abbreviation : \"\";\r\n }\r\n\r\n /**\r\n * Get a name of building specified by id.\r\n * @param {string} id\r\n * @returns {string} if a building specified by id exists, return it's name otherwise empty string.\r\n */\r\n getBuildingName(id) {\r\n const building = this.props.buildings.find((b) => b.id === id);\r\n return building ? building.abbreviation : \"\";\r\n }\r\n\r\n /**\r\n * Get a name of floor specified by id.\r\n * @param {string} id\r\n * @returns {string} if a floor specified by id exists, return it's name otherwise empty string.\r\n */\r\n getFloorName(id) {\r\n const floor = this.props.floors.find((f) => f.id === id);\r\n return floor ? floor.abbreviation : \"\";\r\n }\r\n\r\n handleSelectModel(e) {\r\n e.preventDefault();\r\n this.setState({ seletedItem: e.target.parentNode.rowIndex - 1 });\r\n }\r\n\r\n handleImportModel(e) {\r\n e.preventDefault();\r\n if (!!this.state.model.fileId) {\r\n this.setState({ importing_ifc: true });\r\n this.importModelInApp(this.state.model.fileId);\r\n }\r\n }\r\n\r\n registerIfcFileName(name) {\r\n window.RegisterIfcFileName(name);\r\n }\r\n\r\n async importModel(id) {\r\n await apiService\r\n .getIfcStream(id)\r\n .then((res) => {\r\n window.ImportIfcFile(res.data);\r\n this.setState({ importing_ifc: false });\r\n })\r\n .catch((err) => {\r\n console.log(\"Can't download the model\", err);\r\n this.setState({ importing_ifc: false });\r\n });\r\n }\r\n\r\n importModelInApp(id) {\r\n const model = this.props.models.find((m) => m.fileId === id);\r\n const modelData = {\r\n id: id,\r\n name: model.name,\r\n version: model.version,\r\n extension: this.getFileExtension(model.fileName),\r\n };\r\n let data = {};\r\n data.token = getter.getTokenBearer();\r\n data.modelInfos = [modelData];\r\n window.ImportIfcFiles(JSON.stringify(data));\r\n }\r\n\r\n getFileExtension(fileName) {\r\n return fileName.split(\".\").pop();\r\n }\r\n\r\n completeImportModels() {\r\n this.setState({ importing_ifc: false });\r\n this.props.onGotoIssuePage();\r\n }\r\n\r\n handleChangeFileId = (fileId, fileName, index) => {\r\n const model = this.state.model;\r\n model.fileId = fileId;\r\n model.fileName = fileName;\r\n this.setState({ model });\r\n };\r\n\r\n handleDelete = () => {\r\n this.setState({ model: {} });\r\n };\r\n\r\n // renderTableData() {\r\n // return this.state.models.map((model, index) => {\r\n // const { name, disciplineMetaDataId, buildingMetaDataId, floorMetaDataId, version } = model;\r\n // return (\r\n // \r\n // {name}\r\n // {this.getDisciplineName(disciplineMetaDataId)}\r\n // {this.getBuildingName(buildingMetaDataId)}\r\n // {this.getFloorName(floorMetaDataId)}\r\n // {`V${version}`}\r\n // \r\n // )\r\n // })\r\n // }\r\n\r\n render() {\r\n const { model, importing_ifc } = this.state;\r\n const lang = window.isGerman ? de : en;\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {lang[\"ImportModel\"]}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n project: state.project.selectedProject,\r\n disciplines: state.metaData.disciplines,\r\n buildings: state.metaData.buildings,\r\n floors: state.metaData.floors,\r\n models: state.models.models,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getModels: (ids) => {\r\n dispatch(modelActions.getModels(ids));\r\n },\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ModelList);\r\n","import React, { forwardRef, useEffect, useState } from \"react\";\r\nimport CreatableSelect from \"react-select/creatable\";\r\nimport { components } from \"react-select\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\n\r\nconst customStyles = (isBad) =>({\r\n menuList: (base) => ({\r\n ...base,\r\n height: '100%',\r\n \"::-webkit-scrollbar\": {\r\n width: '6px',\r\n height: '6px'\r\n },\r\n \"::-webkit-scrollbar-track\": {\r\n background: 'transparent'\r\n },\r\n \"::-webkit-scrollbar-thumb\": {\r\n backgroundColor: '#D4D4D4',\r\n borderColor: 'transparent',\r\n borderRadius: '20px'\r\n }\r\n }),\r\n option: (provided) => ({\r\n ...provided,\r\n color: '#66666',\r\n textAlign: 'left',\r\n }),\r\n control: (provided, state) => ({\r\n ...provided,\r\n border: isBad ? '1px solid red':'1px solid #D2D2D2',\r\n borderRadius: '3px',\r\n height: '32px',\r\n minHeight: '30px',\r\n })\r\n});\r\n\r\nconst DropdownIndicator = props => {\r\n return (components.DropdownIndicator && (\r\n \r\n \r\n \r\n ));\r\n}\r\n\r\nconst CreateNameSelect = forwardRef(({\r\n options,\r\n defaultValue,\r\n onChange,\r\n isBad,\r\n}, ref) => {\r\n const [value, setValue] = useState(undefined);\r\n \r\n useEffect(() => {\r\n ref.current = value;\r\n });\r\n\r\n useEffect(() => {\r\n if (defaultValue) {\r\n setValue({ value: defaultValue, label: defaultValue });\r\n }\r\n }, [defaultValue]);\r\n\r\n const handleChange = (option) => {\r\n setValue(option);\r\n onChange(option);\r\n }\r\n \r\n return (\r\n \r\n );\r\n}); \r\n\r\nexport default CreateNameSelect;","import React, { createRef } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport Moment from \"moment\";\r\nimport { Backdrop, CircularProgress } from \"@material-ui/core\";\r\nimport { converters, getter } from \"./helper\";\r\nimport VisoSelect from \"./controls/viso_select\";\r\nimport { apiService } from \"../services\";\r\nimport { XMLParser } from \"fast-xml-parser\";\r\nimport en from \"../assets/en.json\";\r\nimport de from \"../assets/de.json\";\r\nimport \"../css/exportModel.css\";\r\nimport CreateNameSelect from \"./controls/CreateNameSelect\";\r\nimport { TreeSelect } from \"antd\";\r\nimport { CaretDownFilled } from \"@ant-design/icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faFolder } from \"@fortawesome/free-regular-svg-icons\";\r\nimport { roleAction } from \"./enums\";\r\n\r\nclass ExportModel extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n fileName: \"\",\r\n fileNames: [],\r\n isOpenModal: false,\r\n disciplines: [],\r\n buildings: [],\r\n floors: [],\r\n discipline: \"\",\r\n building: \"\",\r\n floor: \"\",\r\n isOnlyVisibleElement: false,\r\n isSetName: true,\r\n isSetDiscipline: true,\r\n isSetBuilding: true,\r\n isSetFloor: true,\r\n exporting_ifc: false,\r\n uploadHandle: \"\",\r\n isChecked: false,\r\n isIfcMapping: false,\r\n mappingFilePath: \"\",\r\n mappingData: undefined,\r\n treeData: [],\r\n folder: undefined,\r\n modelHistories: [],\r\n isExportEnable: false,\r\n checkResult: undefined,\r\n isAutoImport: false,\r\n };\r\n\r\n this.nameRef = createRef();\r\n\r\n this.openExportModal = this.openExportModal.bind(this);\r\n this.closeExportModal = this.closeExportModal.bind(this);\r\n this.handleChangeDiscipline = this.handleChangeDiscipline.bind(this);\r\n this.handleChangeBuilding = this.handleChangeBuilding.bind(this);\r\n this.handleChangeFloor = this.handleChangeFloor.bind(this);\r\n this.handleClickCheck = this.handleClickCheck.bind(this);\r\n window.ExportModel = this;\r\n }\r\n\r\n componentDidMount() {\r\n this.requestFileName();\r\n this.requestExportHistory();\r\n this.initialize();\r\n\r\n // #TODO use signalR or find other solution.\r\n // this.createInterval();\r\n }\r\n\r\n componentWillUnmount() {\r\n const { isIfcMapping, mappingFilePath, mappingData, modelHistories } =\r\n this.state;\r\n window.mappingInfo = { isIfcMapping, mappingFilePath, mappingData };\r\n if (modelHistories.length) {\r\n window.saveExportHistory({\r\n projectId: this.props.project.id,\r\n data: JSON.stringify(modelHistories),\r\n isModel: true,\r\n });\r\n }\r\n\r\n this.disposeInterval();\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n if (prevState.folder !== this.state.folder) {\r\n if (!!this.state.folder) {\r\n this.getFileNamesInFolder(this.state.folder);\r\n }\r\n }\r\n }\r\n\r\n createInterval() {\r\n this.timerId = setInterval(() => {\r\n this.getFolderData();\r\n }, 60000);\r\n }\r\n\r\n disposeInterval() {\r\n if (this.timerId) {\r\n clearInterval(this.timerId);\r\n }\r\n }\r\n\r\n requestExportHistory() {\r\n window.requestExportHistory({\r\n projectId: this.props.project.id,\r\n model: true,\r\n });\r\n }\r\n\r\n registerExportHistory(data) {\r\n if (!!data) {\r\n const histories = JSON.parse(data);\r\n if (!!histories) {\r\n this.setState({ modelHistories: histories });\r\n }\r\n }\r\n }\r\n\r\n getFileNamesInFolder(folderId) {\r\n const endpoint = `documentVersion/project/${this.props.project.id}?filter=folderId eq '${folderId}'`;\r\n apiService\r\n .postData(endpoint, { documentQuery: \"\" })\r\n .then((res) => {\r\n let names = res.data.map((d) =>\r\n d.name.split(\".\").slice(0, -1).join(\".\")\r\n );\r\n names = [...new Set(names)];\r\n const fileNames = names.map((n) => {\r\n return { value: n, label: n };\r\n });\r\n\r\n this.setState({ fileNames });\r\n if (!this.state.fileName) {\r\n const fileName = fileNames.length ? fileNames[0].value : undefined;\r\n this.setState({ fileName });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err.message);\r\n });\r\n }\r\n\r\n initialize() {\r\n const disciplines = converters.getOptionsFromMetaData(\r\n this.props.disciplines\r\n );\r\n const buildings = converters.getOptionsFromMetaData(this.props.buildings);\r\n const floors = converters.getOptionsFromMetaData(this.props.floors);\r\n const discipline = disciplines.length ? disciplines[0].value : \"\";\r\n const building = buildings.length ? buildings[0].value : \"\";\r\n const floor = floors.length ? floors[0].value : \"\";\r\n this.setState({\r\n disciplines: disciplines,\r\n buildings: buildings,\r\n floors: floors,\r\n discipline: discipline,\r\n building: building,\r\n floor: floor,\r\n });\r\n\r\n if (window.mappingInfo) {\r\n const { isIfcMapping, mappingFilePath, mappingData } = window.mappingInfo;\r\n this.setState({ isIfcMapping, mappingFilePath, mappingData });\r\n }\r\n\r\n this.getFolderData();\r\n }\r\n\r\n async getFolderData() {\r\n await apiService\r\n .getFolderData(this.props.project.id)\r\n .then((res) => {\r\n if (res.data) {\r\n this.getTreeData(res.data.folders);\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n });\r\n }\r\n\r\n getTreeData(folders) {\r\n const treeData = folders.map((f) => {\r\n return this.getFolderTree(f);\r\n });\r\n\r\n let { folder } = this.state;\r\n if (treeData.length) {\r\n if (!folder) {\r\n const data = treeData.find((f) => f.title === \"Shared\");\r\n if (data) folder = data.value;\r\n }\r\n }\r\n\r\n this.setState({ treeData, folder });\r\n }\r\n\r\n getFolderTree(folder) {\r\n let data = {};\r\n data.value = folder.folderData.id;\r\n data.title = folder.folderData.name;\r\n data.docs = folder.docs;\r\n\r\n if (folder.folderChildren) {\r\n data.children = folder.folderChildren.map((sub) => {\r\n return this.getFolderTree(sub);\r\n });\r\n }\r\n\r\n return data;\r\n }\r\n\r\n requestFileName() {\r\n window.RequestFileName();\r\n }\r\n\r\n registerFileName(fileName) {\r\n if (fileName !== \"Untitled\") {\r\n this.setState({ fileName });\r\n }\r\n }\r\n\r\n openExportModal(e) {\r\n e.preventDefault();\r\n this.setState({\r\n isOpenModal: true,\r\n isSetName: true,\r\n isSetDiscipline: true,\r\n isSetBuilding: true,\r\n isSetFloor: true,\r\n });\r\n }\r\n\r\n closeExportModal(e) {\r\n e.preventDefault();\r\n this.setState({ isOpenModal: false });\r\n }\r\n\r\n async checkRoleAction() {\r\n const projects = await apiService.getArrayData(\"project\", [\r\n this.props.project.id,\r\n ]);\r\n if (!projects || projects.length === 0) return false;\r\n const project = projects[0];\r\n const roleActions = getter.getRoleActions(project, this.props.user);\r\n if (!roleActions) return false;\r\n\r\n return (\r\n getter.isActionAllowed(roleActions, roleAction.Document_Upload) &&\r\n getter.isActionAllowed(roleActions, roleAction.Document_IfcImport)\r\n );\r\n }\r\n\r\n async canExport() {\r\n const isActionAllowed = await this.checkRoleAction();\r\n if (!isActionAllowed) {\r\n const lang = window.isGerman ? de : en;\r\n window.AlertAPI(lang[\"CantExportIfc\"]);\r\n }\r\n return isActionAllowed;\r\n }\r\n\r\n handleExportModel = async () => {\r\n const isActionAllowed = await this.canExport();\r\n if (!isActionAllowed) return;\r\n const fileName = this.nameRef.current ? this.nameRef.current.value : \"\";\r\n if (this.isFillText(fileName)) {\r\n this.setState({ exporting_ifc: true });\r\n window.ExportIFCModel(this.generateExportData());\r\n } else {\r\n const lang = window.isGerman ? de : en;\r\n window.AlertAPI(lang[\"FileNameMissing\"]);\r\n }\r\n };\r\n\r\n onUploadCheck = async () => {\r\n const isActionAllowed = await this.canExport();\r\n if (!isActionAllowed) return;\r\n\r\n const fileName = this.nameRef.current?.value || \"\";\r\n if (this.isFillText(fileName)) {\r\n const endpoint = `document/check/${this.props.project.id}?folderId=${this.state.folder}`;\r\n apiService\r\n .postData(endpoint, [`${fileName}.ifc`])\r\n .then((res) => {\r\n const { precheckResults } = res.data;\r\n if (precheckResults.length) {\r\n const preCheckResult = precheckResults[0];\r\n if (preCheckResult.success) {\r\n const checkResult = {\r\n success: true,\r\n cleanFileName: preCheckResult.fileName,\r\n predictedVersion: preCheckResult.predictedVersion,\r\n namingSchemeName: preCheckResult.namingSchemeName,\r\n };\r\n this.setState({ checkResult, isExportEnable: true });\r\n } else {\r\n if (preCheckResult.namingSchemeResults.length) {\r\n var result = preCheckResult.namingSchemeResults.find(\r\n (nsr) => nsr.success === false\r\n );\r\n if (!result.cleanFileName)\r\n result.cleanFileName = preCheckResult.fileName;\r\n this.setState({\r\n checkResult: result,\r\n isExportEnable: result.success,\r\n });\r\n } else {\r\n this.displayErrorNameScheme();\r\n }\r\n }\r\n } else {\r\n this.displayErrorNameScheme();\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(\"Don't check uploading document.\", err.message);\r\n this.displayErrorNameScheme();\r\n });\r\n } else {\r\n const lang = window.isGerman ? de : en;\r\n window.AlertAPI(lang[\"FileNameMissing\"]);\r\n }\r\n };\r\n\r\n displayErrorNameScheme() {\r\n const checkResult = {\r\n success: false,\r\n cleanFileName: this.nameRef.current?.value,\r\n };\r\n this.setState({ checkResult });\r\n }\r\n\r\n handleChangeDiscipline(discipline) {\r\n this.setState({ discipline: discipline });\r\n }\r\n\r\n handleChangeBuilding(building) {\r\n this.setState({ building: building });\r\n }\r\n\r\n handleChangeFloor(floor) {\r\n this.setState({ floor: floor });\r\n }\r\n\r\n changeUmlaut(origin) {\r\n return origin\r\n .replace(/\\u00dc/g, \"UE\")\r\n .replace(/\\u00fc/g, \"ue\")\r\n .replace(/\\u00c4/g, \"AE\")\r\n .replace(/\\u00e4/g, \"ae\")\r\n .replace(/\\u00d6/g, \"OE\")\r\n .replace(/\\u00f6/g, \"oe\")\r\n .replace(/\\u00df/g, \"ss\");\r\n }\r\n\r\n handleClickCheck(e) {\r\n this.setState({ isChecked: e.target.checked });\r\n }\r\n\r\n onChangeOnlyVisibleElement = (e) => {\r\n this.setState({ isOnlyVisibleElement: e.target.checked });\r\n };\r\n\r\n generateExportData() {\r\n let exportData = {};\r\n\r\n exportData.folderId = this.state.folder;\r\n exportData.projectId = this.props.project.id;\r\n exportData.fileName = this.nameRef.current.value;\r\n exportData.token = getter.getTokenBearer();\r\n exportData.onlyVisible = this.state.isOnlyVisibleElement;\r\n exportData.useMapFile = this.state.isIfcMapping;\r\n\r\n return JSON.stringify(exportData);\r\n }\r\n\r\n isFillText(text) {\r\n if (text) {\r\n const trimText = text.trim();\r\n return trimText !== \"\";\r\n }\r\n\r\n return false;\r\n }\r\n\r\n exportModel(docString) {\r\n if (docString) {\r\n const documents = JSON.parse(docString);\r\n if (documents) {\r\n if (this.state.isAutoImport) {\r\n const id = documents[0].id;\r\n const persistDto = {};\r\n persistDto.id = id;\r\n persistDto.disciplineMetaDataIds = { value: [this.state.discipline] };\r\n persistDto.buildingMetaDataId = { value: this.state.building };\r\n persistDto.floorMetaDataId = { value: this.state.floor };\r\n\r\n apiService\r\n .putData(\"documentVersion\", [persistDto])\r\n .then((response) => {\r\n apiService.patchIfcDocument(id).then((res) => {\r\n this.finishExportModel(res.data, response.data);\r\n });\r\n })\r\n .catch(() => {\r\n this.finishExportModel(false);\r\n });\r\n } else {\r\n this.finishExportModel(true, documents);\r\n }\r\n\r\n return;\r\n }\r\n }\r\n\r\n this.finishExportModel(false);\r\n }\r\n\r\n finishExportModel(result, documentVersion) {\r\n const lang = window.isGerman ? de : en;\r\n if (!!result) {\r\n if (!!documentVersion) {\r\n const modelHistories = [...this.state.modelHistories];\r\n const doc = documentVersion[0];\r\n modelHistories.push({\r\n title: doc.name,\r\n version: doc.versionNumber,\r\n uploadDate: doc.uploadDate,\r\n });\r\n\r\n this.setState({ modelHistories });\r\n }\r\n window.AlertAPI(lang[\"SucceedExportIFC\"]);\r\n } else {\r\n window.AlertAPI(lang[\"FaileExportIFC\"]);\r\n }\r\n\r\n this.setState({ exporting_ifc: false });\r\n }\r\n\r\n createFormData(ifc) {\r\n const blob = new Blob([ifc], { type: \"text/plain\" });\r\n let formData = new FormData();\r\n formData.append(\"file\", blob, `${this.state.ifcFile}.ifc`);\r\n\r\n return formData;\r\n }\r\n\r\n createFileMetaData(uploadHandle) {\r\n const { discipline, building, floor, isChecked } = this.state;\r\n return {\r\n categoryMetaDataId: discipline,\r\n buildingMetaDataId: building,\r\n floorMetaDataId: floor,\r\n uploadHandle: uploadHandle,\r\n storeAsDocument: isChecked,\r\n };\r\n }\r\n\r\n createGuid() {\r\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(\r\n /[xy]/g,\r\n function (c) {\r\n var r = (Math.random() * 16) | 0,\r\n v = c === \"x\" ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n }\r\n );\r\n }\r\n\r\n onChangeIfcMapping = (e) => {\r\n this.setState({ isIfcMapping: e.target.checked });\r\n };\r\n\r\n handleOpenFile = () => {\r\n window.openMappingFile();\r\n };\r\n\r\n setMappingFilePath(mappingFilePath) {\r\n this.setState({ mappingFilePath });\r\n }\r\n\r\n readMappingFile(file) {\r\n const reader = new FileReader();\r\n reader.readAsText(file);\r\n reader.onloadend = (e) => {\r\n const readerData = e.target.result;\r\n const options = {\r\n ignoreAttributes: false,\r\n };\r\n const xml = new XMLParser(options).parse(readerData);\r\n\r\n if (xml.SchemeItemList) {\r\n this.setState({\r\n mappingFilePath: file.name,\r\n mappingData: xml.SchemeItemList,\r\n });\r\n } else {\r\n const lang = window.isGerman ? de : en;\r\n window.AlertAPI(lang[\"NotMappingFile\"]);\r\n }\r\n };\r\n }\r\n\r\n onFolderChange = (folder) => {\r\n this.setState({ folder, isExportEnable: false, checkResult: undefined });\r\n };\r\n\r\n onNameChange = () => {\r\n this.setState({ isExportEnable: false, checkResult: undefined });\r\n };\r\n\r\n renderTableData() {\r\n return this.state.modelHistories.map((model, index) => {\r\n const { title, version, uploadDate } = model;\r\n return (\r\n \r\n {title}\r\n {`V.${version}`}\r\n {Moment(uploadDate).format(\"DD.MM.YYYY\")}\r\n \r\n );\r\n });\r\n }\r\n\r\n getSchemeResult = (nameScheme) => {\r\n const lang = window.isGerman ? de : en;\r\n if (nameScheme.success) {\r\n const content = lang[\"NameValidSuccess\"]\r\n .replace(\"{{versionNumber}}\", nameScheme.predictedVersion)\r\n .replace(\"{{fileName}}\", nameScheme.cleanFileName);\r\n return nameScheme.namingSchemeName\r\n ? `${lang[nameScheme.namingSchemeName]}: ${content}`\r\n : content;\r\n } else {\r\n if (nameScheme.errorType === \"NamingSchemaValidationFailed\") {\r\n return lang[\"NamingSchemaValidationFailed\"]\r\n .replace(\"{{group}}\", nameScheme.failedGroupName)\r\n .replace(\"{{namingSchema}}\", nameScheme.namingSchemeName);\r\n }\r\n\r\n return nameScheme.namingSchemeName && nameScheme.errorType\r\n ? `${lang[nameScheme.namingSchemeName]}: ${lang[nameScheme.errorType]}}`\r\n : lang[\"NoNamingScheme\"];\r\n }\r\n };\r\n\r\n onSetAutoImport = () => {\r\n const isAutoImport = !this.state.isAutoImport;\r\n this.setState({\r\n isAutoImport,\r\n });\r\n };\r\n\r\n renderDocName() {\r\n const nameScheme = this.state.checkResult;\r\n const firstName = nameScheme.success\r\n ? nameScheme.cleanFileName\r\n : nameScheme.cleanFileName.slice(0, nameScheme.errorPosition);\r\n const middleName = nameScheme.success\r\n ? \"\"\r\n : nameScheme.cleanFileName.slice(\r\n nameScheme.errorPosition,\r\n nameScheme.errorPosition + nameScheme.errorLength\r\n );\r\n const lastName = nameScheme.success\r\n ? \"\"\r\n : nameScheme.cleanFileName.slice(\r\n nameScheme.errorPosition + nameScheme.errorLength,\r\n nameScheme.cleanFileName.length\r\n );\r\n return (\r\n <>\r\n {firstName}\r\n \r\n {nameScheme.errorPosition !== undefined ? middleName : \"\"}\r\n \r\n {nameScheme.errorPosition !== undefined ? lastName : \"\"}\r\n \r\n );\r\n }\r\n\r\n render() {\r\n const lang = window.isGerman ? de : en;\r\n const {\r\n fileNames,\r\n fileName,\r\n disciplines,\r\n discipline,\r\n buildings,\r\n building,\r\n checkResult,\r\n floors,\r\n floor,\r\n exporting_ifc,\r\n treeData,\r\n folder,\r\n modelHistories,\r\n isIfcMapping,\r\n mappingFilePath,\r\n isExportEnable,\r\n isAutoImport,\r\n } = this.state;\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n

{lang[\"General\"]}

\r\n \r\n \r\n \r\n {treeData && (\r\n }\r\n style={{ width: \"100%\" }}\r\n value={folder}\r\n dropdownStyle={{ maxHeight: 400, overflow: \"auto\" }}\r\n onChange={this.onFolderChange}\r\n treeData={treeData}\r\n />\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {/*

{lang[\"DefineModel\"]}

*/}\r\n
\r\n \r\n \r\n {lang[\"ImportModelAutomatically\"]}\r\n
\r\n
\r\n
\r\n \r\n \r\n {discipline && (\r\n \r\n )}\r\n
\r\n \r\n \r\n {building && (\r\n \r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n {floor && (\r\n \r\n )}\r\n
\r\n \r\n
\r\n \r\n {lang[\"UploadCheck\"]}\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n {checkResult && (\r\n \r\n \r\n {this.renderDocName()}\r\n \r\n \r\n {this.getSchemeResult(checkResult)}\r\n \r\n
\r\n )}\r\n \r\n {isExportEnable && (\r\n
\r\n \r\n {lang[\"ExportModel\"]}\r\n \r\n
\r\n )}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {modelHistories && this.renderTableData()}\r\n
{lang[\"Name\"]}{\"Version\"}{\"Date\"}
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n project: state.project.selectedProject,\r\n user: state.user.currentUser,\r\n models: state.models.models,\r\n disciplines: state.metaData.disciplines,\r\n buildings: state.metaData.buildings,\r\n floors: state.metaData.floors,\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, null)(ExportModel);\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { pageState } from './enums';\r\nimport ModelList from './importModel';\r\nimport ExportModel from './exportModel';\r\nimport { syncActions } from '../redux/actions';\r\nimport en from '../assets/en.json';\r\nimport de from '../assets/de.json';\r\nimport '../css/model.css';\r\n\r\nclass ModelPage extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { currentState: pageState.IMPORTMODEL };\r\n this.handleChangePage = this.changePage.bind(this);\r\n this.handleGotoIssuePage = this.handleGotoIssuePage.bind(this);\r\n }\r\n\r\n changePage(e, page) {\r\n e.preventDefault();\r\n this.setState({ currentState: page });\r\n }\r\n\r\n handleGotoIssuePage() {\r\n this.props.onSetPage(pageState.ISSUELIST);\r\n }\r\n\r\n render() {\r\n const lang = window.isGerman ? de : en;\r\n const { currentState } = this.state;\r\n const isImportPage = currentState === pageState.IMPORTMODEL;\r\n\r\n return (\r\n
\r\n
\r\n

{lang['Models']}

\r\n \r\n
\r\n
\r\n
this.handleChangePage(e, pageState.IMPORTMODEL)}>\r\n \r\n
\r\n {/*
this.handleChangePage(e, pageState.EXPORTMODEL)}>\r\n \r\n
*/}\r\n
\r\n
\r\n
\r\n {currentState === pageState.IMPORTMODEL && }\r\n {currentState === pageState.EXPORTMODEL && }\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n project: state.project.selectedProject\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n syncProject: (projId) => { dispatch(syncActions.syncProject(projId)) }\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ModelPage);","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faTimes, faTimesCircle } from '@fortawesome/free-solid-svg-icons';\r\nimport { library } from '@fortawesome/fontawesome-svg-core';\r\nimport { viewpointActions } from '../../redux/actions';\r\nimport '../../css/image.css';\r\nimport img from '../../assets/sample.png';\r\n\r\nlibrary.add(faTimes, faTimesCircle);\r\n\r\nclass Image extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { selectable: false, deletable: false, isHover: false };\r\n this.handleMouseEnter = this.handleMouseEnter.bind(this);\r\n this.hanldeMouseLeave = this.hanldeMouseLeave.bind(this);\r\n this.handleClick = this.handleClick.bind(this);\r\n this.handleDelete = this.handleDelete.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n const id = this.props.id;\r\n if (id && id !== \"\" && parseInt(id) !== 0 && id.indexOf(\"data:image/png;\") === -1) {\r\n this.props.getImage(id);\r\n }\r\n\r\n if (this.props.selectable) {\r\n this.setState({ selectable: this.props.selectable });\r\n }\r\n\r\n if (this.props.deletable) {\r\n this.setState({ deletable: this.props.deletable });\r\n }\r\n }\r\n\r\n handleClick(e) {\r\n e.preventDefault();\r\n if (this.state.selectable) {\r\n this.props.selectViewpoint(this.props.vId);\r\n }\r\n }\r\n\r\n handleMouseEnter(e) {\r\n e.preventDefault();\r\n if (this.state.deletable) {\r\n this.setState({ isHover: true });\r\n }\r\n }\r\n\r\n hanldeMouseLeave(e) {\r\n e.preventDefault();\r\n if (this.state.deletable) {\r\n this.setState({ isHover: false });\r\n }\r\n }\r\n\r\n handleDelete(e) {\r\n e.preventDefault();\r\n if (this.state.deletable) {\r\n this.props.deleteViewpoint(this.props.id);\r\n }\r\n }\r\n\r\n render() {\r\n const { resources, id, isList } = this.props;\r\n const { selectable, deletable, isHover } = this.state;\r\n\r\n let image = resources.find(r => r.id === id);\r\n if (!image) {\r\n if (id && id !== \"\" && parseInt(id) !== 0) {\r\n image = id;\r\n } else {\r\n image = img;\r\n }\r\n } else {\r\n image = image.img;\r\n }\r\n\r\n return (\r\n <>\r\n {\r\n isList ?\r\n \r\n :\r\n
\r\n \r\n {deletable &&\r\n
\r\n \r\n
\r\n }\r\n
\r\n }\r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n resources: state.viewpoint.resources\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n getImage: (id) => { dispatch(viewpointActions.getImage(id)) },\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Image);","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAABaCAYAAABzAJLvAAAFIElEQVR4nO2cB27bQBBF1733XuB2/ysZ7t1y7zV4E0/ACJJjIEag+ZkPEJRILmPo7bQdMm21Wu2qpGTVWUoZSry6av/ffwB1JWBxJWBxJWBxJWBxJWBxJWBxJWBxJWBxJWBxJWBxJWBxJWBxJWBxJWBxJWBxJWBxJWBxJWBxJWBxJWBxJWBxJWBxJWBxJWBxhQXc0dFROjs7W+AvaW2FBNze3l6Oj4/L2dlZ6e7uLm1tbS3wV7WmQpoAgNn29/cN7uTkZHl6eirv7+9Nr/9sEry9vTUdG10hAb+8vJSZmRkDt7e3Z/AmJibK4+Pjb9dxHFf+/PxsE6AeMlC5R29v76/7qnmDsEEMaNPT0/bZIY+PjxtkB4f7rtVq5fT01EA30uvrq103Pz9v+0YTIbLCAgYiMBzyzs6O7YHMcWAB9uDgwKx9aGjIYFYFSDau2djYKGtra3KQeQE8bPABMpbZ399fTk5OLCbPzc2Vqampcnh4aN8XFhYsRuN+G8VZxhODNzc3DSyQcdk+GQDNecZHVFjAwKJMYn919fM/KTg/PzdIIyMj5fb21sC6RTdLojje1dVln7e2tszFE8/9HNvAwIBNooiQwwImxiKs9O7uzlwroAAC6NnZ2bK4uGjnsEB3x+56HV6pg3x0dGSTw6916yUUjI6OhoMcNgbjWnHL9/f3ZWVlxQABo+qygT42NmYW7Isi7qqZID6GYyRtjGVi+DUAZhzQieeDg4M2jjFRFHopCCg9PT22eczkxycGsyfx8joZqwYS13EMgEwErmUicC/GVK29fHiKvr6+cn19befcc0RRaMD82IACmrtcz67JnBFQsXLcLiCHh4cNHmMuLi4sfuPKsU7GlQ+X7apCjyjJxVyHTEZN0kSdvLS0ZCA94WJykExxjuRqdXXVLBVLVpJsN4l4ilsGGKCxVuIylsixh4cHA728vGzWSy3scVdJsoABBWDcMkkYpdP29raBJmZznmQKV02GDHTcdbMVr6iSdNG4X4ABkBUs9mTHCMhYKtk17tsTNRY3KKmYCEqSbah6h8jLmnrIyCF7UyJS+fNVySZZ1K/A9bIIeCRYQOa7Q2aly7tNxOLsJgWQr0yxEVfJlt2SvYTiGupkYjSfgQxgNSuWTbKwXMBSA/P0BzEWq65aMo0IsmcaE1gya85RmwrNJAsYUKxUAZKlRupd4JJQeZPC615WqTiulkEX5SSLWIqlYpm4ZyBfXl6alQKSOpgEi/NcS9MC0VCofzIksuQfSwQy0ABLDQxYrJvYyxo1ZZQnYyRewKZUUoEcGrCvEWORni03kneKWNDwdWZvOHAOwMRj9kBmWRPITA6OMbbaXoyk0ICxQuIniVS1o9RIWG2zBIpxWLZn17u7u3acrJpzNzc39j1ijA7b8K8+T0WnyBv2f3tPILKiVT4AMylw11Eb/qEf2XGLwopxtd+xSME98AxAprwCKs0K/q2IJVRYF+09XWIkEL773vSNEZk3kwfoCfgfq5oofbeYOFgu919fX7e2YsTsOt8ubCIydCYOD8TzWA8PBVBmRXvhLQF/IoeMJZNkkV2TsUeCnO9f/kEOGStmPds7U1GUgL8g7y376y+fLaq0mhLwFwVgz6Ij9YwzBosrAYsrAYsrAYsrAYsrAYsrAYsrAYsrAYsrAYsrAYsrAYsrAYsrAYsrAYsrAYsrAYsrAYsrAYsrAYsrAYsrAYsrAYsrAYsrAYsrAYsrAYsrAYuLl8+u//cfQVallB9keSt/OQ20qwAAAABJRU5ErkJggg==\"","import React from \"react\";\r\n\r\nexport const getTypeSvg = (name, color) => {\r\n switch (name) {\r\n case \"icon-default-type-1\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"icon-default-type-2\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"icon-default-type-3\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"icon-default-type-4\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"icon-default-type-5\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"icon-default-type-6\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"icon-default-type-7\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"icon-default-type-8\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"issue-other-type-1\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"issue-other-type-2\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"issue-other-type-3\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"issue-other-type-4\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"issue-other-type-5\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"issue-other-type-6\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"issue-other-type-7\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"issue-other-type-8\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"issue-other-type-9\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"issue-other-type-10\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"issue-other-type-11\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"issue-other-type-12\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"issue-other-type-13\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"issue-other-type-14\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"issue-other-type-15\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"issue-other-type-16\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"issue-other-type-17\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"issue-other-type-18\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"issue-other-type-19\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"issue-other-type-20\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"issue-other-type-21\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"issue-other-type-22\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"issue-other-type-23\":\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n case \"issue-other-type-24\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"issue-other-type-25\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"issue-other-type-26\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"issue-other-type-27\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"issue-other-type-28\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"issue-other-type-29\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"issue-other-type-30\":\r\n return (\r\n \r\n \r\n \r\n );\r\n default:\r\n return <>;\r\n }\r\n};\r\n\r\nexport const getGeneralSvg = (name) => {\r\n switch (name) {\r\n case \"linkDoc\":\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 case \"download\":\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n case \"subtask\":\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 case \"leaf\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"expand\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"fold\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"folder\":\r\n return (\r\n \r\n \r\n \r\n );\r\n default:\r\n return <>;\r\n }\r\n};\r\n","import React from 'react';\r\nimport '../../css/index.css';\r\n\r\nexport default function Circle(props) {\r\n return
;\r\n}","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport Moment from 'moment';\r\nimport Image from './image';\r\nimport { getGeneralSvg, getTypeSvg } from './svg';\r\nimport { viewpointActions, detailActions } from '../../redux/actions';\r\nimport en from '../../assets/en.json';\r\nimport de from '../../assets/de.json';\r\nimport 'moment/locale/de';\r\nimport '../../css/issueItem.css';\r\nimport Circle from './circle';\r\n\r\nclass IssueItem extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { imageId: '', elementIds: [], tags: [] };\r\n this.handleClick = this.handleSelectIssue.bind(this);\r\n this.handleDoubleClick = this.handleDoubleClick.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.getIssueInformation();\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props.issue !== prevProps.issue) {\r\n this.getIssueInformation();\r\n }\r\n\r\n if (this.props.viewpoints !== prevProps.viewpoints) {\r\n this.getImage();\r\n }\r\n }\r\n\r\n getIssueInformation() {\r\n const vpIds = this.props.issue.viewpointIds;\r\n this.props.addViewpoint(vpIds);\r\n this.getElementCounts();\r\n this.getImage();\r\n }\r\n\r\n getImage() {\r\n const imageId=this.props.issue.thumbnailImageId||'';\r\n this.setState({imageId});\r\n }\r\n\r\n getElementCounts() {\r\n let ids = this.props.issue.linkedComponentsGlobalIds;\r\n ids = [...new Set(ids)];\r\n this.setState({ elementIds: ids });\r\n }\r\n\r\n handleSelectIssue(e) {\r\n e.preventDefault();\r\n const linkIds = this.state.elementIds;\r\n window.HighlightComponentIds(linkIds);\r\n }\r\n\r\n handleDoubleClick(e) {\r\n e.preventDefault();\r\n this.props.selectedIssue(this.props.issue);\r\n this.props.onDblClick();\r\n }\r\n\r\n render() {\r\n const lang = window.isGerman ? de : en;\r\n const issue = this.props.issue;\r\n const dueDate = `Due to ${issue.dueDate ? window.isGerman ? Moment(issue.dueDate).format('DD.MM.YYYY') : Moment(issue.dueDate).format('DD/MM/YYYY') : ''}`;\r\n const imageId = this.state.imageId;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {getTypeSvg(issue.issueType?.icon, issue.issueType?.color)}\r\n \r\n
\r\n {issue.dueDate &&\r\n
\r\n {dueDate}\r\n
\r\n }\r\n
\r\n
\r\n \r\n
{`${issue.issueNumber} ${issue.title}`}
\r\n
\r\n
{issue.description}
\r\n {imageId && }\r\n
\r\n
\r\n
\r\n
\r\n {getGeneralSvg('subtask')}\r\n
{`${issue.childrenIds?.length}${lang['SubTasks']}`}
\r\n
\r\n
\r\n
\r\n {issue.assignedUsers.length &&\r\n
\r\n {`${lang['AssignedTo']}: ${issue.assignedUsers[0].firstName} ${issue.assignedUsers[0].lastName}`}\r\n {issue.assignedUsers.length > 1 &&\r\n {`+${issue.assignedUsers.length - 1} more`}\r\n }\r\n
\r\n }\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n viewpoints: state.viewpoint.viewpoints,\r\n project: state.project.selectedProject,\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n addViewpoint: (ids) => { dispatch(viewpointActions.getViewpoint(ids)) },\r\n selectedIssue: (issue) => { dispatch(detailActions.selectedIssue(issue)) },\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(IssueItem);","import React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Input } from \"antd\";\r\nimport VisoSelect from \"./controls/viso_select\";\r\nimport IssueItem from \"./controls/issueItem\";\r\nimport { issuesActions } from \"../redux/actions\";\r\nimport { issueOwner, pageState, roleAction } from \"./enums\";\r\nimport { converters } from \"./helper\";\r\nimport { apiService } from \"../services\";\r\nimport en from \"../assets/en.json\";\r\nimport de from \"../assets/de.json\";\r\nimport filterImg from \"../assets/Filter.png\";\r\nimport \"../css/issueList.css\";\r\n\r\nconst options = converters.getOptionsFromEnum(issueOwner);\r\nconst { Search } = Input;\r\n\r\nclass IssueList extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { creatable: false, keyword: \"\", top: 10, skip: 0 };\r\n this.handleChangeOwner = this.handleChangeOwner.bind(this);\r\n this.handleOpenFilter = this.handleOpenFilter.bind(this);\r\n this.hanldleNewIssue = this.hanldleNewIssue.bind(this);\r\n this.handleOpenIssue = this.handleOpenIssue.bind(this);\r\n\r\n this.isLoading = false;\r\n this.wheelCount = 0;\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.project.id) {\r\n this.getIssues(this.state.skip, this.state.keyword);\r\n this.props.clearSelectedIssue();\r\n this.setCreatable();\r\n }\r\n\r\n this.timerId = setInterval(() => {\r\n this.syncIssues();\r\n }, 60000);\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.owner !== this.props.owner || this.props.addedFlag) {\r\n this.props.resetAddedIssueFlag();\r\n this.getIssues(0, this.state.keyword, true);\r\n }\r\n\r\n if (prevProps.filterData !== this.props.filterData) {\r\n this.getIssues(0, this.state.keyword, true);\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.timerId) {\r\n clearInterval(this.timerId);\r\n }\r\n }\r\n\r\n syncIssues() {\r\n if (!this.isLoading) {\r\n this.getIssues(this.state.skip, this.state.keyword);\r\n }\r\n }\r\n\r\n setCreatable() {\r\n const role = this.props.project.collaboratorRoles.find(\r\n (r) => r.collaboratorId === this.props.user.id\r\n );\r\n const definition = this.props.project.collaboratorRoleDefinitions.find(\r\n (d) => d.id === role.roleDefinitionId\r\n );\r\n if (definition) {\r\n const action =\r\n definition !== undefined &&\r\n definition.actions.find(\r\n (a) => a.action === roleAction.IssueManagement_Creation\r\n );\r\n this.setState({ creatable: !action.isAllowed });\r\n } else {\r\n this.setState({ creatable: true });\r\n }\r\n }\r\n\r\n getIssues = async (skip, keyword, initial = false) => {\r\n this.wheelCount = 0;\r\n\r\n const { filterData, project } = this.props;\r\n let query = [];\r\n if (filterData) {\r\n const keys = Object.keys(filterData).filter(\r\n (k) => filterData[k] && filterData[k] !== \"All\"\r\n );\r\n if (keys) {\r\n query = keys.map((key) => {\r\n let value = undefined;\r\n switch (key) {\r\n case \"creationDateAfter\":\r\n value = `creationDate ge ${new Date(\r\n filterData[key]\r\n ).toISOString()}`;\r\n break;\r\n case \"creationDateBefore\":\r\n value = `creationDate le ${new Date(\r\n filterData[key]\r\n ).toISOString()}`;\r\n break;\r\n case \"dueDateAfter\":\r\n value = `dueDate ge ${new Date(filterData[key]).toISOString()}`;\r\n break;\r\n case \"dueDateBefore\":\r\n value = `dueDate le ${new Date(filterData[key]).toISOString()}`;\r\n break;\r\n case \"startDateAfter\":\r\n value = `startingDate ge ${new Date(\r\n filterData[key]\r\n ).toISOString()}`;\r\n break;\r\n case \"startDateBefore\":\r\n value = `startingDate le ${new Date(\r\n filterData[key]\r\n ).toISOString()}`;\r\n break;\r\n case \"editDateAfter\":\r\n value = `editDate ge ${new Date(filterData[key]).toISOString()}`;\r\n break;\r\n case \"editDateBefore\":\r\n value = `editDate le ${new Date(filterData[key]).toISOString()}`;\r\n break;\r\n case \"statusIds\":\r\n if (filterData[key].length) {\r\n value = `${filterData[key]\r\n .map((sId) => {\r\n return `(statusId eq '${sId}')`;\r\n })\r\n .join(\" or \")}`;\r\n }\r\n break;\r\n case \"priorityId\":\r\n value = `priorityId eq '${filterData[key]}'`;\r\n break;\r\n case \"source\":\r\n value = `source eq '${filterData[key]}'`;\r\n break;\r\n case \"typeId\":\r\n value = `typeId eq '${filterData[key]}'`;\r\n break;\r\n case \"buildingMetadataIds\":\r\n if (filterData[key].length)\r\n value = `buildingMetaDataIds/any(buildingMetaDataIds: buildingMetaDataIds eq '${filterData[key][0]}')`;\r\n break;\r\n case \"floorMetaDataIds\":\r\n if (filterData[key].length)\r\n value = `floorMetaDataIds/any(floorMetaDataIds: floorMetaDataIds eq '${filterData[key][0]}')`;\r\n break;\r\n case \"disciplineMetaDataIds\":\r\n if (filterData[key].length)\r\n value = `disciplineMetaDataIds/any(disciplineMetaDataIds: disciplineMetaDataIds eq '${filterData[key][0]}')`;\r\n break;\r\n case \"workPhaseId\":\r\n value = `workPhaseId eq '${filterData[key]}'`;\r\n break;\r\n case \"tagIds\":\r\n if (filterData[key].length)\r\n value = `tagIds/any(tagIds: tagIds eq '${filterData[key][0]}')`;\r\n break;\r\n case \"assignedUserIds\":\r\n if (filterData[key].length) {\r\n value = `(assignedUserIds/any(assignedUserIds: assignedUserIds eq '${filterData[key][0]}'))`;\r\n }\r\n break;\r\n case \"createAuthorId\":\r\n value = `createAuthorId eq '${filterData[key]}'`;\r\n break;\r\n case \"reviewerId\":\r\n value = `reviewerId eq '${filterData[key]}'`;\r\n break;\r\n case \"editAuthorId\":\r\n value = `editAuthorId eq '${filterData[key]}'`;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return value ? `(${value})` : undefined;\r\n });\r\n\r\n query = query.filter((q) => q);\r\n }\r\n }\r\n\r\n const { top } = this.state;\r\n // if (owner !== issueOwner.ALL.value) {\r\n // query.push(\r\n // `(assignedUserIds/any(assignedUserIds: assignedUserIds eq '${this.props.user.id}'))`\r\n // );\r\n // }\r\n\r\n if (keyword !== \"\") {\r\n query.push(\r\n `((contains(tolower(title),'${keyword.toLowerCase()}')) or (contains(tolower(description),'${keyword.toLowerCase()}')) or (issueNumber eq ${parseInt(\r\n keyword\r\n )}))`\r\n );\r\n }\r\n\r\n const endPoint = query.length\r\n ? `issue/project/${project.id}?&filter=(${query.join(\r\n \" and \"\r\n )})&orderby=editDate desc&top=${top}&skip=${skip}`\r\n : `issue/project/${project.id}?&orderby=editDate desc&top=${top}&skip=${skip}`;\r\n\r\n await apiService\r\n .getDataByEndpoint(endPoint)\r\n .then((res) => {\r\n if (skip === 0 || res.data.length) {\r\n this.props.registerIssues(res.data);\r\n setScrollPosition(skip, this.state.skip);\r\n this.setState({ skip });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n })\r\n .finally(() => {\r\n this.isLoading = false;\r\n });\r\n\r\n function setScrollPosition(newSkip, origin) {\r\n const listBody = document.getElementById(\"issue-list\");\r\n if (newSkip > origin || initial) {\r\n listBody.scrollTop = 0;\r\n } else if (newSkip < origin) {\r\n listBody.scrollTop = listBody.scrollHeight - listBody.clientHeight;\r\n }\r\n }\r\n };\r\n\r\n handleChangeOwner(selectedOption) {\r\n this.props.changeOwner(selectedOption);\r\n }\r\n\r\n handleSearch = (e) => {\r\n const keyword = e.target.value;\r\n this.setState({ keyword });\r\n this.getIssues(0, keyword, true);\r\n };\r\n\r\n handleOpenFilter(e) {\r\n e.preventDefault();\r\n this.props.onSetPage(pageState.FILTERISSUE);\r\n }\r\n\r\n hanldleNewIssue(e) {\r\n e.preventDefault();\r\n this.props.onSetPage(pageState.EDITISSUE);\r\n }\r\n\r\n handleOpenIssue() {\r\n this.props.onSetPage(pageState.DETAILISSUE);\r\n }\r\n\r\n listenScrollEvent = () => {\r\n if (!this.isLoading) {\r\n const listBody = document.getElementById(\"issue-list\");\r\n const { scrollHeight, scrollTop, clientHeight } = listBody;\r\n const { top, skip, keyword } = this.state;\r\n\r\n if (scrollHeight - clientHeight <= scrollTop && scrollTop > 0) {\r\n this.wheelCount++;\r\n } else if (scrollTop === 0 && skip >= top) {\r\n this.wheelCount--;\r\n } else {\r\n this.wheelCount = 0;\r\n }\r\n\r\n if (this.wheelCount > 5) {\r\n this.isLoading = true;\r\n this.getIssues(top + skip, keyword);\r\n } else if (this.wheelCount < -5) {\r\n this.isLoading = true;\r\n this.getIssues(skip - top, keyword);\r\n }\r\n }\r\n };\r\n\r\n renderIssues() {\r\n const history = this.props.history;\r\n return this.props.issues.map((issue, index) => {\r\n return (\r\n \r\n );\r\n });\r\n }\r\n\r\n render() {\r\n const lang = window.isGerman ? de : en;\r\n const { owner, project, issues } = this.props;\r\n const { creatable } = this.state;\r\n\r\n return (\r\n
\r\n
\r\n

{lang[\"Issues\"]}

\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {owner && (\r\n \r\n )}\r\n
\r\n
\r\n \r\n \r\n {lang[\"Filter\"]}\r\n \r\n \r\n {lang[\"NewIssue\"]}\r\n \r\n
\r\n
\r\n \r\n {issues && this.renderIssues()}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n project: state.project.selectedProject,\r\n issues: state.issues.issues,\r\n opened: state.issues.opened,\r\n owner: state.issues.owner,\r\n filterData: state.filter.filterData,\r\n user: state.user.currentUser,\r\n addedFlag: state.project.addedIssue,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getIssues: (ids) => {\r\n dispatch(issuesActions.getIssues(ids));\r\n },\r\n changeOwner: (owner) => {\r\n dispatch(issuesActions.setOwner(owner));\r\n },\r\n clearSelectedIssue: () => {\r\n dispatch(issuesActions.clearSelectedIssue());\r\n },\r\n registerIssues: (issues) => {\r\n dispatch(issuesActions.registerIssues(issues));\r\n },\r\n resetAddedIssueFlag: () => {\r\n dispatch(issuesActions.resetAddedIssueFlag());\r\n },\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(IssueList);\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAz0lEQVQ4ja2SSw5BQRBFTxBjc2vwWYAYWBRvC+yDHYgFkJgi5kJITE3lPaSS29K6PZ9wk5tU1elUV6eaf6sjO7Vlp5BHGstOE9kp5JSCFifgqrgB1Lx4Kf6gQpBnQKq4C+zkxOPZqwZ+bQBU5X50KucJvmzkmfJFRD9oYDpHlTcN0i95dKAcXfGG+w2aQEtxHVgFZ33u1vqwBVvVQe6pdsnhCU9kN+xlm8A0BEbeBI5bHD3BVrVW7Mav5PD7WovBIPbrpsBW+RGYA5sc/qOAG5ExMvZFkvciAAAAAElFTkSuQmCC\"","import React from 'react';\r\nimport Select, { components } from 'react-select';\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faCaretDown, faCaretUp } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { library } from \"@fortawesome/fontawesome-svg-core\";\r\n\r\nlibrary.add(faCaretDown, faCaretUp);\r\n\r\nconst customStyles = {\r\n menu: (base) => ({\r\n ...base,\r\n width: '100px',\r\n position: 'absolute',\r\n right: 0\r\n }),\r\n menuList: (base) => ({\r\n ...base,\r\n height: '100%',\r\n width: '100px',\r\n \"::-webkit-scrollbar\": {\r\n width: '6px'\r\n },\r\n \"::-webkit-scrollbar-track\": {\r\n background: 'transparent'\r\n },\r\n \"::-webkit-scrollbar-thumb\": {\r\n backgroundColor: '#D4D4D4',\r\n borderColor: 'transparent',\r\n borderRadius: '2px'\r\n }\r\n }),\r\n option: (provided) => ({\r\n ...provided,\r\n color: '#66666',\r\n textAlign: 'left',\r\n }),\r\n control: (provided) => ({\r\n ...provided,\r\n border: '1px solid #D2D2D2',\r\n borderRadius: '3px',\r\n height: '30px',\r\n minHeight: '30px'\r\n })\r\n}\r\n\r\nconst DropdownIndicator = props => {\r\n return (components.DropdownIndicator && (\r\n \r\n \r\n \r\n ));\r\n};\r\n\r\nconst Option = props => {\r\n return (components.Option && \r\n \r\n )\r\n}\r\n\r\nconst ValueContainer = ({ children, ...props }) => {\r\n const { getValue, hasValue } = props;\r\n\r\n if (!hasValue) {\r\n return (\r\n < components.ValueContainer{...props}>\r\n {children}\r\n \r\n );\r\n }\r\n\r\n let selectedOption = getValue().map(o => o.value);\r\n return (\r\n \r\n
{selectedOption[0]?.name}
\r\n \r\n );\r\n}\r\n\r\nclass StatusSelect extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { disabled: false, value: {} };\r\n }\r\n\r\n componentDidMount() {\r\n this.setState({ value: this.getDefaultOption() });\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.disabled !== this.props.disabled) {\r\n this.setState({ disabled: this.props.disabled });\r\n }\r\n\r\n if (prevProps.defaultValue !== this.props.defaultValue) {\r\n const option = this.getDefaultOption();\r\n this.setState({ value: option });\r\n }\r\n }\r\n\r\n getDefaultOption() {\r\n const options = this.props.options;\r\n return options.find(o => o.value.id === this.props.defaultValue.id);\r\n }\r\n\r\n handleChange = (selectedOption) => {\r\n this.props.onChange(selectedOption.value);\r\n this.setState({ value: selectedOption });\r\n }\r\n\r\n render() {\r\n const options = this.props.options;\r\n const { disabled, value } = this.state;\r\n\r\n return (\r\n
\r\n {\r\n \r\n \r\n
\r\n {elements && this.renderElements()}\r\n
\r\n \r\n \r\n {viewpoints && this.renderViewpoints()}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n project: state.project.selectedProject,\r\n selectedIssue: state.detail.selectedIssue,\r\n viewpoints: state.viewpoint.viewpoints,\r\n user: state.user.currentUser,\r\n snapshotFlag: state.viewpoint.snapshotFlag,\r\n snapshotId: state.viewpoint.snapshotId,\r\n disciplines: state.metaData.disciplines,\r\n buildings: state.metaData.buildings,\r\n floors: state.metaData.floors,\r\n editResult: state.editReport.result,\r\n priorities: state.issueDescriptor.priorities,\r\n statuses: state.issueDescriptor.statuses,\r\n types: state.issueDescriptor.types,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n postImage: (imageId) => {\r\n dispatch(viewpointActions.postImage(imageId));\r\n },\r\n clearSnapshot: () => {\r\n dispatch(viewpointActions.clearSnapshot());\r\n },\r\n createIssue: (issue, viewpoints) => {\r\n dispatch(editIssueActions.createIssue(issue, viewpoints));\r\n },\r\n updateIssue: (issue, deletedIds, viewpoints) => {\r\n dispatch(editIssueActions.updateIssue(issue, deletedIds, viewpoints));\r\n },\r\n resetPageState: () => {\r\n dispatch(editIssueActions.resetPageState());\r\n },\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(IssueEdit);\r\n","export default __webpack_public_path__ + \"static/media/check.eb1a1e10.svg\";","import React, { createRef } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport {\r\n faCaretDown,\r\n faCaretUp,\r\n faTimes,\r\n faTimesCircle,\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\nimport { library } from \"@fortawesome/fontawesome-svg-core\";\r\nimport Moment from \"moment\";\r\nimport CheckImg from \"../assets/check.svg\";\r\nimport { converters, getter } from \"./helper\";\r\nimport { exportType, roleAction } from \"./enums\";\r\nimport VisoSelect from \"./controls/viso_select\";\r\nimport { apiService } from \"../services\";\r\nimport { TreeSelect } from \"antd\";\r\nimport { CaretDownFilled } from \"@ant-design/icons\";\r\nimport en from \"../assets/en.json\";\r\nimport de from \"../assets/de.json\";\r\nimport \"../css/exportOther.css\";\r\nimport \"antd/dist/antd.css\";\r\nimport CreateNameSelect from \"./controls/CreateNameSelect\";\r\nimport { Backdrop, CircularProgress } from \"@material-ui/core\";\r\n\r\nlibrary.add(faCaretDown, faCaretUp, faTimes, faTimesCircle);\r\nconst fileFormats = converters.getOptionsFromEnum(exportType);\r\n\r\nclass ExportOther extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isCreated: false,\r\n isHover: false,\r\n exportFormat: exportType.DWG.value,\r\n docDatas: [],\r\n folder: undefined,\r\n treeData: [],\r\n docNames: [],\r\n docName: undefined,\r\n exportHistories: [],\r\n checkResult: undefined,\r\n isExportEnable: false,\r\n isExporting: false,\r\n };\r\n\r\n this.nameRef = createRef();\r\n window.exportOther = this;\r\n }\r\n\r\n componentDidMount() {\r\n this.initialize();\r\n this.requestExportHistory();\r\n // #TODO use signalR or find other solution.\r\n // this.timerId = setInterval(() => {\r\n // this.initialize();\r\n // }, 60000);\r\n }\r\n\r\n componentWillUnmount() {\r\n // #TODO use signalR or find other solution.\r\n // clearInterval(this.timerId);\r\n\r\n if (this.state.exportHistories.length) {\r\n window.saveExportHistory({\r\n projectId: this.props.project.id,\r\n data: JSON.stringify(this.state.exportHistories),\r\n isModel: false,\r\n });\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n if (!!this.state.folder && prevState.folder !== this.state.folder) {\r\n this.getFileNamesInFolder(this.state.folder);\r\n }\r\n }\r\n\r\n requestExportHistory() {\r\n window.requestExportHistory({\r\n projectId: this.props.project.id,\r\n model: false,\r\n });\r\n }\r\n\r\n registerExportHistory(data) {\r\n if (!!data) {\r\n const histories = JSON.parse(data);\r\n if (!!histories) {\r\n this.setState({ exportHistories: histories });\r\n }\r\n }\r\n }\r\n\r\n async initialize() {\r\n await this.getFolderData();\r\n }\r\n\r\n async getFolderData() {\r\n await apiService\r\n .getFolderData(this.props.project.id)\r\n .then((folderData) => {\r\n if (folderData.data) {\r\n this.getTreeData(folderData.data.folders);\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n });\r\n }\r\n\r\n getFileNamesInFolder(folderId) {\r\n const endpoint = `documentVersion/project/${this.props.project.id}?filter=folderId eq '${folderId}'`;\r\n apiService\r\n .postData(endpoint, { documentQuery: \"\" })\r\n .then((res) => {\r\n let names = res.data.map((d) =>\r\n d.name.split(\".\").slice(0, -1).join(\".\")\r\n );\r\n names = [...new Set(names)];\r\n const docNames = names.map((n) => {\r\n return { value: n, label: n };\r\n });\r\n const docName = docNames.length ? docNames[0].value : undefined;\r\n this.setState({ docNames, docName });\r\n })\r\n .catch((err) => {\r\n console.log(err.message);\r\n });\r\n }\r\n\r\n handleMouseEnter = () => {\r\n this.setState({ isHover: true });\r\n };\r\n\r\n handleMouseLeave = () => {\r\n this.setState({ isHover: false });\r\n };\r\n\r\n handleDelete = () => {\r\n this.setState({ isCreated: false });\r\n };\r\n\r\n handleCreate = () => {\r\n if (this.state.isCreated === false) {\r\n window.Create2dPlan(this.state.exportFormat);\r\n }\r\n };\r\n\r\n async checkRoleAction() {\r\n const projects = await apiService.getArrayData(\"project\", [\r\n this.props.project.id,\r\n ]);\r\n if (!projects || projects.length === 0) return false;\r\n const project = projects[0];\r\n const roleActions = getter.getRoleActions(project, this.props.user);\r\n if (!roleActions) return false;\r\n\r\n return getter.isActionAllowed(roleActions, roleAction.Document_Upload);\r\n }\r\n\r\n async canExport() {\r\n const isActionAllowed = await this.checkRoleAction();\r\n if (!isActionAllowed) {\r\n const lang = window.isGerman ? de : en;\r\n window.AlertAPI(lang[\"CantExportDocument\"]);\r\n }\r\n return isActionAllowed;\r\n }\r\n\r\n handleExport = async () => {\r\n const isActionAllowed = await this.canExport();\r\n if (!isActionAllowed) return;\r\n\r\n const fileName = this.nameRef.current\r\n ? this.nameRef.current.value\r\n : undefined;\r\n if (this.state.isCreated && fileName && this.state.folder) {\r\n this.setState({ isExporting: true });\r\n window.Export2dPlan(this.generateExportData());\r\n }\r\n };\r\n\r\n generateExportData() {\r\n let exportData = {};\r\n exportData.projectId = this.props.project.id;\r\n exportData.folderId = this.state.folder;\r\n exportData.fileName = this.changeUmlaut(this.nameRef.current.value);\r\n exportData.token = getter.getTokenBearer();\r\n\r\n return JSON.stringify(exportData);\r\n }\r\n\r\n changeUmlaut(origin) {\r\n return origin\r\n .replace(/\\u00dc/g, \"UE\")\r\n .replace(/\\u00fc/g, \"ue\")\r\n .replace(/\\u00c4/g, \"AE\")\r\n .replace(/\\u00e4/g, \"ae\")\r\n .replace(/\\u00d6/g, \"OE\")\r\n .replace(/\\u00f6/g, \"oe\")\r\n .replace(/\\u00df/g, \"ss\");\r\n }\r\n\r\n handleChangeFileFormat = (fileFormat) => {\r\n this.setState({ exportFormat: fileFormat });\r\n };\r\n\r\n onFolderChange = (folder) => {\r\n this.setState({ folder, isExportEnable: false, checkResult: undefined });\r\n };\r\n\r\n onNameChange = () => {\r\n this.setState({ isExportEnable: false, checkResult: undefined });\r\n };\r\n\r\n onUploadCheck = async () => {\r\n const isActionAllowed = await this.canExport();\r\n if (!isActionAllowed) return;\r\n\r\n const fileName = this.nameRef.current?.value || \"\";\r\n if (fileName) {\r\n const endpoint = `document/check/${this.props.project.id}?folderId=${this.state.folder}`;\r\n apiService\r\n .postData(endpoint, [this.addFileExtension(fileName)])\r\n .then((res) => {\r\n const { precheckResults } = res.data;\r\n if (precheckResults.length) {\r\n const preCheckResult = precheckResults[0];\r\n if (preCheckResult.success) {\r\n const checkResult = {\r\n success: true,\r\n cleanFileName: preCheckResult.fileName,\r\n predictedVersion: preCheckResult.predictedVersion,\r\n namingSchemeName: preCheckResult.namingSchemeName,\r\n };\r\n this.setState({ checkResult, isExportEnable: true });\r\n } else {\r\n if (preCheckResult.namingSchemeResults.length) {\r\n var result = preCheckResult.namingSchemeResults.find(\r\n (nsr) => nsr.success === false\r\n );\r\n if (!result.cleanFileName)\r\n result.cleanFileName = preCheckResult.fileName;\r\n this.setState({\r\n checkResult: result,\r\n isExportEnable: result.success,\r\n });\r\n } else {\r\n this.displayErrorNameScheme();\r\n }\r\n }\r\n } else {\r\n this.displayErrorNameScheme();\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(\"Don't check uploading document.\", err.message);\r\n this.displayErrorNameScheme();\r\n });\r\n }\r\n };\r\n\r\n displayErrorNameScheme() {\r\n const checkResult = {\r\n success: false,\r\n cleanFileName: this.nameRef.current?.value,\r\n };\r\n this.setState({ checkResult });\r\n }\r\n\r\n addFileExtension = (fileName) => {\r\n const { exportFormat } = this.state;\r\n const extension =\r\n exportFormat === exportType.DWG.value\r\n ? \"dwg\"\r\n : exportFormat === exportType.JPG.value\r\n ? \"jpg\"\r\n : \"png\";\r\n return `${this.changeUmlaut(fileName)}.${extension}`;\r\n };\r\n\r\n getTreeData(folders) {\r\n const treeData = folders.map((f) => {\r\n return this.getFolderTree(f);\r\n });\r\n\r\n let folder = this.state.folder;\r\n if (treeData.length) {\r\n if (!folder) {\r\n const data = treeData.find((f) => f.title === \"Shared\");\r\n if (data) folder = data.value;\r\n }\r\n }\r\n\r\n this.setState({ treeData, folder });\r\n }\r\n\r\n getFolderTree(folder) {\r\n let data = {};\r\n data.value = folder.folderData.id;\r\n data.title = folder.folderData.name;\r\n if (folder.folderChildren) {\r\n data.children = folder.folderChildren.map((sub) => {\r\n return this.getFolderTree(sub);\r\n });\r\n }\r\n\r\n return data;\r\n }\r\n\r\n setFilePath(isCreated) {\r\n this.setState({ isCreated });\r\n }\r\n\r\n completeExportPlan(result, documents) {\r\n if (result && !!documents) {\r\n const docs = JSON.parse(documents);\r\n const { exportHistories } = this.state;\r\n exportHistories.push({\r\n title: docs[0].name,\r\n version: docs[0].versionNumber,\r\n uploadDate: docs[0].timeStamp,\r\n });\r\n\r\n this.setState({ exportHistories });\r\n }\r\n const lang = window.isGerman ? de : en;\r\n const content = result ? lang[\"SucceedExport2D\"] : lang[\"FaileCreatePlan\"];\r\n window.AlertAPI(content);\r\n this.setState({ isCreated: false, isExporting: false });\r\n }\r\n\r\n renderTableData() {\r\n return this.state.exportHistories.map((doc, index) => {\r\n const { title, version, uploadDate } = doc;\r\n return (\r\n \r\n {title}\r\n {`V.${version}`}\r\n {Moment(uploadDate).format(\"DD.MM.YYYY\")}\r\n \r\n );\r\n });\r\n }\r\n\r\n getSchemeResult = (nameScheme) => {\r\n const lang = window.isGerman ? de : en;\r\n if (nameScheme.success) {\r\n const content = lang[\"NameValidSuccess\"]\r\n .replace(\"{{versionNumber}}\", nameScheme.predictedVersion)\r\n .replace(\"{{fileName}}\", nameScheme.cleanFileName);\r\n return nameScheme.namingSchemeName\r\n ? `${lang[nameScheme.namingSchemeName]}: ${content}`\r\n : content;\r\n } else {\r\n if (nameScheme.errorType === \"NamingSchemaValidationFailed\") {\r\n return lang[\"NamingSchemaValidationFailed\"]\r\n .replace(\"{{group}}\", nameScheme.failedGroupName)\r\n .replace(\"{{namingSchema}}\", nameScheme.namingSchemeName);\r\n }\r\n\r\n return nameScheme.namingSchemeName && nameScheme.errorType\r\n ? `${lang[nameScheme.namingSchemeName]}: ${lang[nameScheme.errorType]}}`\r\n : lang[\"NoNamingScheme\"];\r\n }\r\n };\r\n\r\n renderDocName() {\r\n const nameScheme = this.state.checkResult;\r\n const firstName = nameScheme.success\r\n ? nameScheme.cleanFileName\r\n : nameScheme.cleanFileName.slice(0, nameScheme.errorPosition);\r\n const middleName = nameScheme.success\r\n ? \"\"\r\n : nameScheme.cleanFileName.slice(\r\n nameScheme.errorPosition,\r\n nameScheme.errorPosition + nameScheme.errorLength\r\n );\r\n const lastName = nameScheme.success\r\n ? \"\"\r\n : nameScheme.cleanFileName.slice(\r\n nameScheme.errorPosition + nameScheme.errorLength,\r\n nameScheme.cleanFileName.length\r\n );\r\n return (\r\n <>\r\n {firstName}\r\n \r\n {nameScheme.errorPosition !== undefined ? middleName : \"\"}\r\n \r\n {nameScheme.errorPosition !== undefined ? lastName : \"\"}\r\n \r\n );\r\n }\r\n\r\n render() {\r\n const lang = window.isGerman ? de : en;\r\n const {\r\n isCreated,\r\n isHover,\r\n exportFormat,\r\n exportHistories,\r\n treeData,\r\n docNames,\r\n docName,\r\n isExportEnable,\r\n checkResult,\r\n isExporting,\r\n } = this.state;\r\n\r\n return (\r\n <>\r\n
\r\n

{lang[\"ExportOther\"]}

\r\n
{lang[\"ExportOtherDesc\"]}
\r\n \r\n
\r\n
\r\n {exportFormat && (\r\n \r\n )}\r\n
\r\n
\r\n {!isCreated && (\r\n \r\n {lang[\"Create2DPlan\"]}\r\n \r\n )}\r\n {isCreated && (\r\n \r\n \"\"\r\n
\r\n {lang[\"2DPlanCreated\"]}\r\n
\r\n \r\n \r\n
\r\n
\r\n )}\r\n
\r\n \r\n
\r\n
\r\n \r\n {treeData && (\r\n }\r\n style={{ width: \"100%\" }}\r\n value={this.state.folder}\r\n dropdownStyle={{ maxHeight: 400, overflow: \"auto\" }}\r\n onChange={this.onFolderChange}\r\n treeData={treeData}\r\n />\r\n )}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n {lang[\"UploadCheck\"]}\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n {checkResult && (\r\n \r\n \r\n {this.renderDocName()}\r\n \r\n \r\n {this.getSchemeResult(checkResult)}\r\n \r\n
\r\n )}\r\n \r\n {isExportEnable && isCreated && (\r\n
\r\n \r\n Export\r\n \r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {exportHistories && this.renderTableData()}\r\n
{lang[\"Name\"]}{\"Version\"}{\"Date\"}
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n project: state.project.selectedProject,\r\n user: state.user.currentUser,\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, null)(ExportOther);\r\n","import React, {\r\n createRef,\r\n forwardRef,\r\n useEffect,\r\n useImperativeHandle,\r\n useRef,\r\n useState,\r\n} from \"react\";\r\nimport { publishPanelKind } from \"../enums\";\r\nimport { getGeneralSvg } from \"../controls/svg\";\r\nimport { connect, useSelector } from \"react-redux\";\r\nimport { apiService } from \"../../services\";\r\nimport { TreeSelect } from \"antd\";\r\nimport { CaretDownFilled } from \"@ant-design/icons\";\r\nimport CreateNameSelect from \"../controls/CreateNameSelect\";\r\nimport { converters } from \"../helper\";\r\nimport VisoSelect from \"../controls/viso_select\";\r\nimport en from \"../../assets/en.json\";\r\nimport de from \"../../assets/de.json\";\r\nimport \"../../css/exportPublisher.css\";\r\n\r\nconst PublishSetItem = forwardRef(({ setItem, folderTree }, ref) => {\r\n const project = useSelector((state) => state.project.selectedProject);\r\n const metaData = useSelector((state) => state.metaData);\r\n\r\n const nameRef = useRef();\r\n const [isExpanded, setIsExpanded] = useState(false);\r\n const [isImportModel, setIsImportModel] = useState(false);\r\n const [lang, setLang] = useState(en);\r\n const [folder, setFolder] = useState();\r\n const [fileNames, setFileNames] = useState([]);\r\n const [fileName, setFileName] = useState();\r\n const [disciplines, setDisciplines] = useState([]);\r\n const [buildings, setBuildings] = useState([]);\r\n const [floors, setFloors] = useState([]);\r\n const [discipline, setDiscipline] = useState();\r\n const [building, setBuilding] = useState();\r\n const [floor, setFloor] = useState();\r\n const [isBad, setIsBad] = useState(false);\r\n const [isIFC, setIsIFC] = useState(false);\r\n\r\n // https://stackoverflow.com/questions/55456604/how-to-call-a-child-method-on-parent-events-with-react\r\n useImperativeHandle(ref, () => ({\r\n uploadCheck: () => {\r\n const isBad = fileName === undefined || fileName.trim() === \"\";\r\n setIsBad(isBad);\r\n\r\n return !isBad;\r\n },\r\n hide: () => {\r\n setIsExpanded(false);\r\n },\r\n show: () => {\r\n setIsExpanded(true);\r\n },\r\n }));\r\n\r\n useEffect(() => {\r\n const lang = window.isGerman ? de : en;\r\n setLang(lang);\r\n }, []);\r\n\r\n useEffect(() => {\r\n setFolder(setItem.folder);\r\n setIsImportModel(setItem.isImport ? true : false);\r\n if (setItem.docName) {\r\n setFileName(setItem.docName);\r\n }\r\n setDiscipline(setItem.discipline);\r\n setBuilding(setItem.building);\r\n setFloor(setItem.floor);\r\n setIsIFC(setItem.ext.toUpperCase().includes(\"IFC\"));\r\n }, [setItem]);\r\n\r\n useEffect(() => {\r\n if (!folder) {\r\n if (folderTree.length) {\r\n setFolder(folderTree.find((f) => f.title === \"Shared\")?.value);\r\n }\r\n } else {\r\n getFileNamesInFolder(folder);\r\n }\r\n // eslint-disable-next-line\r\n }, [folderTree, folder]);\r\n\r\n useEffect(() => {\r\n setItem.folder = folder;\r\n // eslint-disable-next-line\r\n }, [folder]);\r\n\r\n useEffect(() => {\r\n if (metaData) {\r\n const disciplines = converters.getOptionsFromMetaData(\r\n metaData.disciplines\r\n );\r\n const buildings = converters.getOptionsFromMetaData(metaData.buildings);\r\n const floors = converters.getOptionsFromMetaData(metaData.floors);\r\n\r\n setDisciplines(disciplines);\r\n setBuildings(buildings);\r\n setFloors(floors);\r\n\r\n if (disciplines.length) setDiscipline(disciplines[0].value);\r\n if (buildings.length) setBuilding(buildings[0].value);\r\n if (floors.length) setFloor(floors[0].value);\r\n }\r\n }, [metaData]);\r\n\r\n useEffect(() => {\r\n setItem.discipline = discipline;\r\n setItem.building = building;\r\n setItem.floor = floor;\r\n // eslint-disable-next-line\r\n }, [discipline, building, floor]);\r\n\r\n useEffect(() => {\r\n setItem.docName = fileName;\r\n // eslint-disable-next-line\r\n }, [fileName]);\r\n\r\n const getFileNamesInFolder = (folderId) => {\r\n const endpoint = `documentVersion/project/${project.id}?filter=folderId eq '${folderId}'`;\r\n apiService\r\n .postData(endpoint, { documentQuery: \"\" })\r\n .then((res) => {\r\n let names = res.data.map((d) =>\r\n d.name.split(\".\").slice(0, -1).join(\".\")\r\n );\r\n names.push(setItem.title);\r\n names = [...new Set(names)];\r\n const fileNames = names.map((n) => {\r\n return { value: n, label: n };\r\n });\r\n\r\n setFileNames(fileNames);\r\n setFileName(setItem.title);\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n });\r\n };\r\n\r\n const onFolderChange = (folder) => {\r\n setFolder(folder);\r\n };\r\n\r\n const onNameChange = (e) => {\r\n setFileName(e.value);\r\n };\r\n\r\n const onSetImportModel = () => {\r\n const isImport = !isImportModel;\r\n setItem.isImport = isImport;\r\n setIsImportModel(isImport);\r\n };\r\n\r\n return (\r\n
\r\n \r\n setIsExpanded(!isExpanded)}\r\n >\r\n
\r\n {isExpanded ? getGeneralSvg(\"expand\") : getGeneralSvg(\"fold\")}\r\n
\r\n
{getGeneralSvg(\"leaf\")}
\r\n \r\n {setItem.title}\r\n \r\n
\r\n {isBad && (\r\n \r\n {lang[\"ExportMissing\"]}\r\n \r\n )}\r\n \r\n {isExpanded && (\r\n
\r\n
\r\n \r\n {lang[\"ExportFolder\"]}\r\n \r\n {folderTree && (\r\n }\r\n style={{ width: \"100%\" }}\r\n dropdownStyle={{ maxHeight: 400, overflow: \"auto\" }}\r\n value={folder}\r\n treeData={folderTree}\r\n onChange={onFolderChange}\r\n />\r\n )}\r\n
\r\n
\r\n \r\n {lang[\"FileName\"]}\r\n \r\n
\r\n \r\n
\r\n
\r\n {isIFC && (\r\n <>\r\n
\r\n \r\n \r\n {lang[\"ImportModelAutomatically\"]}\r\n
\r\n
\r\n {isImportModel && (\r\n
\r\n \r\n {lang[\"SetupModel\"]}\r\n \r\n
\r\n \r\n {lang[\"Discipline\"]}\r\n \r\n setDiscipline(d)}\r\n />\r\n
\r\n
\r\n \r\n {lang[\"Building\"]}\r\n \r\n setBuilding(b)}\r\n />\r\n
\r\n
\r\n \r\n {lang[\"Floor\"]}\r\n \r\n setFloor(f)}\r\n />\r\n
\r\n
\r\n )}\r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n});\r\n\r\nclass PublishMainPanel extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n folderTree: [],\r\n publishItems: props.publishItems,\r\n isExpanded: true,\r\n publishSet: props.publishSet,\r\n };\r\n\r\n this.childrenRefs = props.publishItems.map(() => {\r\n return createRef();\r\n });\r\n\r\n window.publishMainPanel = this;\r\n }\r\n\r\n componentDidMount() {\r\n apiService\r\n .getFolderData(this.props.project.id)\r\n .then((res) => {\r\n if (res.data) {\r\n this.getTreeData(res.data.folders);\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n });\r\n\r\n window.getPublishItems(this.props.project.id);\r\n }\r\n\r\n componentWillUnmount() {\r\n window.setPublishHistory({\r\n projectId: this.props.project.id,\r\n publishSet: JSON.stringify(this.state.publishSet),\r\n publishItems: JSON.stringify(this.state.publishItems),\r\n });\r\n }\r\n\r\n setPublishItems(sItems) {\r\n try {\r\n const data = JSON.parse(sItems);\r\n const { publishItems, publishSet } = data;\r\n const jsPublishItems = JSON.parse(publishItems);\r\n const jsPublishSet = JSON.parse(publishSet);\r\n this.setState({ publishItems: jsPublishItems, publishSet: jsPublishSet });\r\n this.props.onSetPublishData(jsPublishItems, jsPublishSet);\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n getTreeData(folders) {\r\n const folderTree = folders.map((f) => {\r\n return this.getFolderTree(f);\r\n });\r\n\r\n this.setState({ folderTree });\r\n }\r\n\r\n getFolderTree(folder) {\r\n let data = {};\r\n data.value = folder.folderData.id;\r\n data.title = folder.folderData.name;\r\n data.docs = folder.docs;\r\n\r\n if (folder.folderChildren) {\r\n data.children = folder.folderChildren.map((sub) => {\r\n return this.getFolderTree(sub);\r\n });\r\n }\r\n\r\n return data;\r\n }\r\n\r\n onClick = () => {\r\n this.props.onSetPanel(publishPanelKind.setFile);\r\n };\r\n\r\n onUploadCheck = () => {\r\n if (!this.state.publishItems.length) return;\r\n\r\n let checkResult = true;\r\n this.childrenRefs.forEach((childRef) => {\r\n const rs = childRef.current?.uploadCheck();\r\n checkResult = checkResult && rs;\r\n });\r\n\r\n if (checkResult) {\r\n this.props.onUploadCheck(this.state.publishItems, this.state.publishSet);\r\n }\r\n };\r\n\r\n onfoldPublishSets = () => {\r\n const { isExpanded } = this.state;\r\n this.setState({ isExpanded: !isExpanded });\r\n };\r\n\r\n handleHideAll = () => {\r\n this.childrenRefs.forEach((childRef) => {\r\n childRef.current?.hide();\r\n });\r\n };\r\n\r\n handleUnfold = () => {\r\n this.childrenRefs.forEach((childRef) => {\r\n childRef.current?.show();\r\n });\r\n //this.setState({ isExpanded: false });\r\n };\r\n\r\n renderItems() {\r\n return this.state.publishItems.map((item, index) => {\r\n return (\r\n \r\n );\r\n });\r\n }\r\n\r\n render() {\r\n const lang = window.isGerman ? de : en;\r\n const { publishItems, isExpanded, publishSet } = this.state;\r\n\r\n return (\r\n
\r\n
\r\n \r\n {publishItems.length ? lang[\"EditFiles\"] : lang[\"AddFiles\"]}\r\n \r\n {publishItems.length ? (\r\n <>\r\n \r\n \r\n Publisher Set:\r\n \r\n \r\n {publishSet?.title}\r\n
\r\n
\r\n \r\n \r\n Unfold all\r\n \r\n \r\n Hide all\r\n \r\n \r\n
\r\n \r\n ) : (\r\n
\r\n \r\n {\"Select a publisher set and add files to the selection\"}\r\n \r\n
\r\n )}\r\n \r\n \r\n \r\n
\r\n
\r\n {isExpanded ? getGeneralSvg(\"expand\") : getGeneralSvg(\"fold\")}\r\n
\r\n
{getGeneralSvg(\"folder\")}
\r\n \r\n {publishSet?.title}\r\n \r\n
\r\n {`${publishItems.length} Files`}\r\n \r\n \r\n {this.renderItems()}\r\n \r\n \r\n \r\n {lang[\"UploadCheck\"]}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n project: state.project.selectedProject,\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, null)(PublishMainPanel);\r\n","import React from \"react\";\r\nimport VisoSelect from \"../controls/viso_select\";\r\nimport { Tree } from \"antd\";\r\nimport { publishPanelKind } from \"../enums\";\r\nimport en from \"../../assets/en.json\";\r\nimport de from \"../../assets/de.json\";\r\nimport \"../../css/exportPublisher.css\";\r\nimport \"@fontsource/open-sans\";\r\n\r\nconst { DirectoryTree } = Tree;\r\n\r\nclass PublishSetFile extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n publisherSets: [],\r\n publishSet: undefined,\r\n publishItems: [],\r\n checkedItems: [],\r\n checkedPublishSets: [],\r\n };\r\n\r\n window.publishSetFile = this;\r\n }\r\n\r\n componentDidMount() {\r\n const publisherSets = this.getPublishSetOptions();\r\n const publishSet = this.props.header\r\n ? this.props.header\r\n : publisherSets[0]?.value;\r\n this.setState({ publisherSets, publishSet });\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n if (prevState.publishSet !== this.state.publishSet) {\r\n window.getPublishSetItems(JSON.stringify(this.state.publishSet));\r\n }\r\n }\r\n\r\n setPublishItems(jsTree) {\r\n try {\r\n const publishItems = JSON.parse(jsTree);\r\n const checkedPublishSets = this.props.checkedItems;\r\n const checkedItems = this.props.checkedItems.map((i) => i.key);\r\n this.setState({ publishItems, checkedItems, checkedPublishSets });\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n getPublishSetOptions() {\r\n const publisherSets = this.props.headers.map((header) => {\r\n return { value: header, label: header.title };\r\n });\r\n\r\n return publisherSets;\r\n }\r\n\r\n handleGoBack = () => {\r\n this.props.onSetPanel(publishPanelKind.main);\r\n };\r\n\r\n changePublishSet = (publishSet) => {\r\n this.setState({ publishSet });\r\n };\r\n\r\n onCheck = (checkedItems, info) => {\r\n const checkedPublishSets = info.checkedNodes.filter(\r\n (n) => checkedItems.includes(n.key) && !n.children\r\n );\r\n this.setState({ checkedItems, checkedPublishSets });\r\n };\r\n\r\n onAddFiles = () => {\r\n this.props.onSetFiles(this.state.checkedPublishSets, this.state.publishSet);\r\n };\r\n\r\n render() {\r\n const lang = window.isGerman ? de : en;\r\n const {\r\n publisherSets,\r\n publishSet,\r\n publishItems,\r\n checkedPublishSets,\r\n checkedItems,\r\n } = this.state;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n {lang[\"Back\"]}\r\n \r\n
\r\n
\r\n \r\n Publisher\r\n \r\n \r\n {lang[\"AddFileToSelection\"]}\r\n
\r\n
\r\n
\r\n \r\n Publisher Set\r\n \r\n
\r\n {publishSet && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n \r\n {checkedPublishSets.length\r\n ? `Add ${checkedPublishSets.length} Files`\r\n : \"Add File\"}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default PublishSetFile;\r\n","import React, { useCallback, useEffect, useState } from \"react\";\r\nimport { publishPanelKind } from \"../enums\";\r\nimport { apiService } from \"../../services\";\r\nimport { connect } from \"react-redux\";\r\nimport { getGeneralSvg } from \"../controls/svg\";\r\nimport en from \"../../assets/en.json\";\r\nimport de from \"../../assets/de.json\";\r\nimport \"../../css/exportPublisher.css\";\r\n\r\nconst NamingSchemeResults = ({ namingSchemeResults, fileName }) => {\r\n const [firstItem, setFirstItem] = useState();\r\n const [remainItems, setRemainItems] = useState([]);\r\n const [isExpand, setIsExpand] = useState(false);\r\n const [lang, setLang] = useState(en);\r\n\r\n useEffect(() => {\r\n const lang = window.isGerman ? de : en;\r\n setLang(lang);\r\n }, []);\r\n\r\n useEffect(() => {\r\n setFirstItem(namingSchemeResults[0]);\r\n setRemainItems(namingSchemeResults.slice(1));\r\n }, [namingSchemeResults]);\r\n\r\n const getErrorName = useCallback(\r\n (namingSchemeResult) => {\r\n if (!namingSchemeResult) return;\r\n\r\n const { errorPosition, errorLength } = namingSchemeResult;\r\n return (\r\n <>\r\n {fileName.slice(0, errorPosition)}\r\n \r\n {fileName.slice(errorPosition, errorPosition + errorLength)}\r\n \r\n \r\n {fileName.slice(errorPosition + errorLength, fileName.length)}\r\n \r\n \r\n );\r\n },\r\n [fileName]\r\n );\r\n\r\n const getNamingSchemeResultMessage = useCallback(\r\n (namingSchemeResult) => {\r\n if (namingSchemeResult.success) {\r\n const content = lang[\"NameValidSuccess\"]\r\n .replace(\"{{versionNumber}}\", namingSchemeResult.predictedVersion)\r\n .replace(\"{{fileName}}\", namingSchemeResult.cleanFileName);\r\n return namingSchemeResult.namingSchemeName\r\n ? `${lang[namingSchemeResult.namingSchemeName]}: ${content}`\r\n : content;\r\n }\r\n\r\n if (namingSchemeResult.errorType === \"NamingSchemaValidationFailed\") {\r\n return lang[\"NamingSchemaValidationFailed\"]\r\n .replace(\"{{group}}\", namingSchemeResult.failedGroupName)\r\n .replace(\r\n \"{{namingSchema}}\",\r\n lang[namingSchemeResult.namingSchemeName]\r\n );\r\n }\r\n\r\n return namingSchemeResult.namingSchemeName && namingSchemeResult.errorType\r\n ? `${lang[namingSchemeResult.namingSchemeName]}: ${\r\n lang[namingSchemeResult.errorType]\r\n }}`\r\n : lang[\"NoNamingScheme\"];\r\n },\r\n [lang]\r\n );\r\n\r\n const renderRemainItems = () => {\r\n remainItems.map((item) => {\r\n return (\r\n <>\r\n
\r\n
{getGeneralSvg(\"leaf\")}
\r\n {getErrorName(item)}\r\n
\r\n \r\n {getNamingSchemeResultMessage(item)}\r\n \r\n \r\n );\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n
setIsExpand(!isExpand)}>\r\n
{isExpand ? getGeneralSvg(\"expand\") : getGeneralSvg(\"fold\")}
\r\n
{getGeneralSvg(\"leaf\")}
\r\n {getErrorName(firstItem)}\r\n
\r\n {isExpand && (\r\n
\r\n \r\n {getNamingSchemeResultMessage(firstItem)}\r\n \r\n {renderRemainItems()}\r\n
\r\n )}\r\n \r\n );\r\n};\r\n\r\nconst ValidateItem = ({ precheckResult }) => {\r\n const [lang, setLang] = useState(en);\r\n\r\n useEffect(() => {\r\n const lang = window.isGerman ? de : en;\r\n setLang(lang);\r\n }, []);\r\n\r\n const getPrecheckResultMessage = useCallback(() => {\r\n if (precheckResult.success) {\r\n const content = lang[\"NameValidSuccess\"]\r\n .replace(\"{{versionNumber}}\", precheckResult.predictedVersion)\r\n .replace(\"{{fileName}}\", precheckResult.fileName);\r\n return precheckResult.predictedNamingScheme\r\n ? `${lang[precheckResult.predictedNamingScheme]}: ${content}`\r\n : content;\r\n }\r\n\r\n return lang[\"NoNamingScheme\"];\r\n }, [precheckResult, lang]);\r\n\r\n const renderPrecheckResult = () => {\r\n return (\r\n
\r\n
\r\n {getGeneralSvg(\"leaf\")}\r\n \r\n {precheckResult.fileName}\r\n \r\n
\r\n \r\n {getPrecheckResultMessage()}\r\n
\r\n \r\n );\r\n };\r\n\r\n const renderNamingSchemes = () => {\r\n const { namingSchemeResults, fileName } = precheckResult;\r\n return (\r\n \r\n );\r\n };\r\n\r\n return (\r\n <>\r\n {precheckResult.success || !precheckResult.namingSchemeResults.length\r\n ? renderPrecheckResult()\r\n : renderNamingSchemes()}\r\n \r\n );\r\n};\r\n\r\nclass PublishUploadCheckPanel extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { precheckResults: [], allSuccess: true, isExpand: true };\r\n }\r\n\r\n componentDidMount() {\r\n this.checkNameScheme();\r\n }\r\n\r\n checkNameScheme() {\r\n const nameMap = this.generateNameFolderMap();\r\n Object.keys(nameMap).forEach((folder) => {\r\n const endpoint = `document/check/${this.props.project.id}?folderId=${folder}`;\r\n apiService.postData(endpoint, nameMap[folder]).then((res) => {\r\n const { precheckResults, allSuccess } = res.data;\r\n this.setState({ precheckResults, allSuccess });\r\n });\r\n });\r\n }\r\n\r\n generateNameFolderMap() {\r\n const persist = {};\r\n for (let i = 0, n = this.props.publishItems.length; i < n; i++) {\r\n const item = this.props.publishItems[i];\r\n if (item.folder) {\r\n const docName = `${item.docName}.${item.ext}`;\r\n if (persist[item.folder]) {\r\n persist[item.folder].push(docName);\r\n } else {\r\n persist[item.folder] = [docName];\r\n }\r\n }\r\n }\r\n\r\n return persist;\r\n }\r\n\r\n handleGoBack = () => {\r\n this.props.onSetPanel(publishPanelKind.main);\r\n };\r\n\r\n handleExport = () => {\r\n this.props.onExport();\r\n };\r\n\r\n renderCheckResult() {\r\n return this.state.precheckResults.map((item) => {\r\n return ;\r\n });\r\n }\r\n\r\n render() {\r\n const lang = window.isGerman ? de : en;\r\n const { allSuccess, isExpand } = this.state;\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n {lang[\"Back\"]}\r\n \r\n
\r\n \r\n Upload Check\r\n \r\n \r\n Name & Upload Information\r\n
\r\n
\r\n \r\n
\r\n
\r\n {isExpand ? getGeneralSvg(\"expand\") : getGeneralSvg(\"fold\")}\r\n
\r\n
{getGeneralSvg(\"folder\")}
\r\n \r\n {this.props.publishSet?.title}\r\n \r\n
\r\n
\r\n {isExpand && this.renderCheckResult()}\r\n
\r\n \r\n \r\n {allSuccess ? lang[\"ExportFiles\"] : lang[\"EditFiles\"]}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n project: state.project.selectedProject,\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, null)(PublishUploadCheckPanel);\r\n","import { Backdrop, CircularProgress } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { apiService } from \"../services\";\r\nimport { publishPanelKind } from \"./enums\";\r\nimport { getter } from \"./helper\";\r\nimport PublishMainPanel from \"./publishCtrls/publishMainPanel\";\r\nimport PublishSetFile from \"./publishCtrls/publishSetFile\";\r\nimport PublishUploadCheckPanel from \"./publishCtrls/publishUploadCheckPanel\";\r\n\r\nclass ExportPublisher extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n publishSets: [],\r\n panelKind: publishPanelKind.main,\r\n publishSet: undefined,\r\n publishItems: [],\r\n exporting_items: false,\r\n };\r\n\r\n window.exportPublisher = this;\r\n this.getPublishHeaders();\r\n }\r\n\r\n getPublishHeaders() {\r\n window.getPublishSetHeaders();\r\n }\r\n\r\n setPublishSets(headers) {\r\n try {\r\n const publishSets = JSON.parse(headers).sort((a, b) =>\r\n a.title.localeCompare(b.title)\r\n );\r\n this.setState({ publishSets });\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n handleSetPanel = (panelKind) => {\r\n this.setState({ panelKind });\r\n };\r\n\r\n handlePublishData = (publishItems, publishSet) => {\r\n this.setState({ publishItems, publishSet });\r\n };\r\n\r\n handleSetFiles = (publishItems, publishSet) => {\r\n this.setState({\r\n //panelKind: publishPanelKind.main,\r\n publishItems,\r\n publishSet,\r\n });\r\n\r\n const data = {\r\n guid: publishSet.rootGuid,\r\n publishItems: publishItems,\r\n publishSet: JSON.stringify(publishSet),\r\n projectId: this.props.project.id,\r\n };\r\n window.preparePublishDocs(data);\r\n };\r\n\r\n preparedPublishItems(data) {\r\n try {\r\n const publishItems = data ? JSON.parse(data) : [];\r\n this.setState({ publishItems });\r\n } catch (err) {\r\n console.log(err);\r\n this.setState({ publishItems: [] });\r\n }\r\n\r\n this.setState({ panelKind: publishPanelKind.main });\r\n }\r\n\r\n handleUploadCheck = (publishItems, publishSet) => {\r\n this.setState({\r\n publishItems,\r\n publishSet,\r\n panelKind: publishPanelKind.uploadCheck,\r\n });\r\n };\r\n\r\n handleExport = () => {\r\n const data = {\r\n guid: this.state.publishSet.rootGuid,\r\n projectId: this.props.project.id,\r\n token: getter.getTokenBearer(),\r\n publishItems: this.state.publishItems,\r\n };\r\n\r\n this.setState({ exporting_items: true });\r\n window.publishSets(data);\r\n };\r\n\r\n completeExporting() {\r\n this.setState({ exporting_items: false, panelKind: publishPanelKind.main });\r\n }\r\n\r\n completePublishItems(jsItems) {\r\n try {\r\n const items = JSON.parse(jsItems);\r\n const models = this.state.publishItems.filter((item) => item.isImport);\r\n models.forEach((m) => {\r\n const id = items[m.key];\r\n if (id) {\r\n const persistDto = {};\r\n persistDto.id = id;\r\n persistDto.disciplineMetaDataIds = { value: [m.discipline] };\r\n persistDto.buildingMetaDataId = { value: m.building };\r\n persistDto.floorMetaDataId = { value: m.floor };\r\n\r\n apiService.putData(\"documentVersion\", [persistDto]).then(() => {\r\n apiService.patchIfcDocument(id);\r\n });\r\n }\r\n });\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n\r\n this.completeExporting();\r\n }\r\n\r\n failPublishItems() {\r\n this.completeExporting();\r\n }\r\n\r\n render() {\r\n const {\r\n panelKind,\r\n publishSets,\r\n publishSet,\r\n publishItems,\r\n exporting_items,\r\n } = this.state;\r\n return (\r\n <>\r\n {panelKind === publishPanelKind.main && (\r\n \r\n )}\r\n {panelKind === publishPanelKind.setFile && (\r\n \r\n )}\r\n {panelKind === publishPanelKind.uploadCheck && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n project: state.project.selectedProject,\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, null)(ExportPublisher);\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { exportKind } from './enums';\r\nimport ExportModel from './exportModel';\r\nimport ExportOther from './exportOther';\r\nimport '../css/exportPage.css';\r\nimport ExportPublisher from './exportPublisher';\r\n\r\nclass ExportPage extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { currentState: exportKind.IFC };\r\n this.handleChangeFrame = this.changeFrame.bind(this);\r\n }\r\n\r\n changeFrame(e, kind) {\r\n e.preventDefault();\r\n this.setState({ currentState: kind });\r\n }\r\n\r\n render() {\r\n const { currentState } = this.state;\r\n\r\n return (\r\n
\r\n
\r\n

Export

\r\n \r\n
\r\n
\r\n {/*
this.handleChangeFrame(e, exportKind.Archicad)}>\r\n \r\n
*/}\r\n
this.handleChangeFrame(e, exportKind.IFC)} >\r\n \r\n
\r\n
this.handleChangeFrame(e, exportKind.Other)}>\r\n \r\n
\r\n
this.handleChangeFrame(e, exportKind.Publisher)}>\r\n \r\n
\r\n
\r\n
\r\n
\r\n {/* {currentState === exportKind.Archicad && } */}\r\n {currentState === exportKind.IFC && }\r\n {currentState === exportKind.Other && }\r\n {currentState === exportKind.Publisher && }\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n project: state.project.selectedProject\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, null)(ExportPage);","export class ProcessModel {\r\n constructor(processDto) {\r\n this.id = processDto.id;\r\n this.process = processDto;\r\n this.model = undefined;\r\n this.discipline = undefined;\r\n this.building = undefined;\r\n this.floor = undefined;\r\n this.user = undefined;\r\n this.imported = false;\r\n this.importedDate = undefined;\r\n this.description = undefined;\r\n }\r\n}\r\n","import React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { apiService } from \"../../services\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faClock } from \"@fortawesome/free-regular-svg-icons\";\r\nimport { faCheckCircle } from \"@fortawesome/free-solid-svg-icons\";\r\nimport en from \"../../assets/en.json\";\r\nimport de from \"../../assets/de.json\";\r\nimport \"../../css/processItem.css\";\r\n\r\nconst PropertyValueType = {\r\n Text: 0,\r\n Boolean: 1,\r\n Logical: 2,\r\n Integer: 3,\r\n Real: 4,\r\n};\r\n\r\nclass ProcessItem extends React.Component {\r\n importProcess = async () => {\r\n if (this.checkAccessRight()) {\r\n const data = await this.getProcessDataNew();\r\n\r\n if (data && data.length) {\r\n const model = {};\r\n model.id = this.props.process.id;\r\n model.user = `${this.props.user.firstName} ${this.props.user.lastName}`;\r\n model.data = data;\r\n window.importProcess(model);\r\n }\r\n } else {\r\n const lang = window.isGerman ? de : en;\r\n window.AlertAPI(lang[\"AccessProcessFail\"]);\r\n }\r\n };\r\n\r\n checkAccessRight() {\r\n const userId = this.props.user.id;\r\n const process = this.props.process.process;\r\n const collIds = process.collaborators.map((u) => {\r\n return u.id;\r\n });\r\n return process.creatorId === userId || collIds.includes(userId);\r\n }\r\n\r\n getProcessData() {\r\n const properties = this.props.process.process.propertyMap;\r\n\r\n return Object.keys(properties).map((m) => {\r\n const data = {};\r\n data.globalId = m;\r\n data.properties = [];\r\n for (let i = 0; i < properties[m].length; i++) {\r\n const p = properties[m][i];\r\n const property = this.props.process.process.propertyDefinitions.find(\r\n (pro) => pro.id === p.propertyDefinitionId\r\n );\r\n\r\n if (property) {\r\n let value = this.getPropertValue(property, p);\r\n const item = {\r\n value: value,\r\n propertyName: property.propertyName,\r\n propertySetName: property.propertySetName,\r\n };\r\n data.properties.push(item);\r\n }\r\n }\r\n\r\n return data;\r\n });\r\n }\r\n\r\n async getProcessDataNew() {\r\n const processId = this.props.process.process.id;\r\n const assign = await apiService.getPropertyAssignment(processId);\r\n const def = await apiService.getPropertyDefinition(processId);\r\n\r\n const definitions = def.data.propertyDefinitions;\r\n return assign.data.propertyAssignments.map((assignment) => {\r\n const data = {};\r\n data.globalId = assignment.componentGlobalId;\r\n data.properties = [];\r\n const property = definitions.find(\r\n (d) => d.id === assignment.propertyDefinitionId\r\n );\r\n if (property) {\r\n let value = this.getPropertValue(property, assignment);\r\n\r\n const item = {\r\n value: value,\r\n propertyName: property.propertyName,\r\n propertySetName: property.propertySetName,\r\n };\r\n data.properties.push(item);\r\n }\r\n\r\n return data;\r\n });\r\n }\r\n\r\n getPropertValue(property, assignment) {\r\n let value = \"\";\r\n switch (property.valueType) {\r\n case PropertyValueType.Text:\r\n value = assignment.textValue;\r\n break;\r\n case PropertyValueType.Boolean:\r\n value = assignment.booleanValue ? \"1\" : \"0\";\r\n break;\r\n case PropertyValueType.Integer:\r\n if (assignment.intValue !== undefined && assignment.intValue !== null) {\r\n value = assignment.intValue.toString();\r\n }\r\n break;\r\n case PropertyValueType.Real:\r\n if (\r\n assignment.realValue !== undefined &&\r\n assignment.realValue !== null\r\n ) {\r\n value = assignment.realValue.toString();\r\n }\r\n break;\r\n default:\r\n value = assignment.textValues[0];\r\n break;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n render() {\r\n const { process } = this.props;\r\n const lang = window.isGerman ? de : en;\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n {process.imported ? lang[\"Reimport\"] : lang[\"Import\"]}\r\n \r\n
\r\n
\r\n
\r\n \r\n
{process.model}
\r\n
\r\n
\r\n \r\n
{process.discipline}
\r\n
\r\n
\r\n \r\n
{process.building}
\r\n
\r\n
\r\n \r\n
{process.floor}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {
{process.description}
}\r\n
\r\n {process.imported && (\r\n
\r\n \r\n
{lang[\"Imported\"]}
\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n user: state.user.currentUser,\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, null)(ProcessItem);\r\n","import React from \"react\";\r\nimport en from \"../../assets/en.json\";\r\nimport de from \"../../assets/de.json\";\r\nimport \"../../css/processItem.css\";\r\nimport VisoSelect from \"./viso_select\";\r\nimport { processStatus } from \"../enums\";\r\n\r\nclass ProcessResultItem extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { acPropertyNames: [], defValue: undefined };\r\n }\r\n\r\n componentDidMount() {\r\n this.setPropertyOptions();\r\n }\r\n\r\n setPropertyOptions() {\r\n const lang = window.isGerman ? de : en;\r\n const process = this.props.result;\r\n let acPropertyNames = [\r\n { value: \"new_property\", label: lang[\"SetNewProp\"] },\r\n ];\r\n const properties = process.acPropertyNames.map((n) => {\r\n return { value: n.guid, label: n.propertyName };\r\n });\r\n\r\n const defValue = this.props.newProperty;\r\n if (defValue) {\r\n properties.push({ value: defValue, label: defValue });\r\n }\r\n\r\n acPropertyNames = [...acPropertyNames, ...properties];\r\n\r\n this.setState({ acPropertyNames, defValue });\r\n }\r\n\r\n getStatus() {\r\n const lang = window.isGerman ? de : en;\r\n let status = \"\";\r\n let isEditable = false;\r\n switch (this.props.result.error) {\r\n case processStatus.NoError:\r\n status = lang[\"NoError\"];\r\n break;\r\n case processStatus.NoElement:\r\n status = lang[\"NoElement\"];\r\n break;\r\n case processStatus.ReadOnly:\r\n status = lang[\"ReadOnly\"];\r\n isEditable = true;\r\n break;\r\n case processStatus.NotMatched:\r\n status = lang[\"NotMatched\"];\r\n isEditable = true;\r\n break;\r\n case processStatus.NotRecog:\r\n status = lang[\"NotRecog\"];\r\n isEditable = true;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return { status, isEditable };\r\n }\r\n\r\n onSelectProperty = (guid) => {\r\n this.props.onSetDefinitionGuid(guid, this.props.idx);\r\n };\r\n\r\n render() {\r\n const lang = window.isGerman ? de : en;\r\n const { result } = this.props;\r\n const { acPropertyNames, defValue } = this.state;\r\n const { status, isEditable } = this.getStatus();\r\n\r\n return (\r\n
\r\n
\r\n \r\n
{result.propertyName}
\r\n
\r\n
\r\n \r\n
{result.propertySetName}
\r\n
\r\n
\r\n \r\n
{result.guid}
\r\n
\r\n
\r\n \r\n
{result.elementName}
\r\n
\r\n
\r\n \r\n {isEditable && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n \r\n
{status}
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default ProcessResultItem;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { processActions } from \"../redux/actions\";\r\nimport { ProcessModel } from \"./models/ProcessModel\";\r\nimport ProcessItem from \"./controls/processItem\";\r\nimport ProcessresultItem from \"./controls/processresultItem\";\r\nimport { processStatus } from \"./enums\";\r\nimport en from \"../assets/en.json\";\r\nimport de from \"../assets/de.json\";\r\nimport \"../css/editProcess.css\";\r\n\r\nconst initialImportResult = {\r\n succeed: 0,\r\n failed: 0,\r\n isResult: true,\r\n};\r\n\r\nconst FailedProcessReport = ({ failedResult }) => {\r\n const [lang, setLang] = useState(en);\r\n const [noElementContent, setNoElementContent] = useState(\"\");\r\n const [readOnlyContent, setReadOnlyContent] = useState(\"\");\r\n const [notMatchedContent, setNotMatchedContent] = useState(\"\");\r\n const [notRecogContent, setNotRecogContent] = useState(\"\");\r\n\r\n useEffect(() => {\r\n setLang(window.isGerman ? de : en);\r\n }, []);\r\n\r\n useEffect(() => {\r\n const noElements = failedResult.filter(\r\n (r) => r.error === processStatus.NoElement\r\n ).length;\r\n const readOnlys = failedResult.filter(\r\n (r) => r.error === processStatus.ReadOnly\r\n ).length;\r\n const notMatcheds = failedResult.filter(\r\n (r) => r.error === processStatus.NotMatched\r\n ).length;\r\n const notRecogs = failedResult.filter(\r\n (r) => r.error === processStatus.NotRecog\r\n ).length;\r\n\r\n if (noElements) {\r\n setNoElementContent(lang[\"NoElementReport\"].replace(\"{%}\", noElements));\r\n }\r\n\r\n if (readOnlys) {\r\n setReadOnlyContent(lang[\"ReadOnlyReport\"].replace(\"{%}\", readOnlys));\r\n }\r\n\r\n if (notMatcheds) {\r\n setNotMatchedContent(\r\n lang[\"NotMatchedReport\"].replace(\"{%}\", notMatcheds)\r\n );\r\n }\r\n\r\n if (notRecogs) {\r\n setNotRecogContent(lang[\"NotRecogReport\"].replace(\"{%}\", notRecogs));\r\n }\r\n }, [failedResult, lang]);\r\n\r\n return (\r\n
\r\n
{noElementContent}
\r\n
{readOnlyContent}
\r\n
{notMatchedContent}
\r\n
{notRecogContent}
\r\n
\r\n );\r\n};\r\n\r\nclass EditProcess extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n processList: [],\r\n isResult: false,\r\n processResult: [],\r\n importResult: initialImportResult,\r\n };\r\n\r\n this.history = [];\r\n\r\n window.EditProcess = this;\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.project.id) {\r\n this.getProcessHistory();\r\n }\r\n\r\n this.timerId = setInterval(() => {\r\n this.getProcessDtos();\r\n }, 60000);\r\n }\r\n\r\n componentWillUnmount() {\r\n window.saveProcessHistoryData();\r\n if (this.timerId) {\r\n clearInterval(this.timerId);\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props.processes !== prevProps.processes) {\r\n this.getProcessModels();\r\n }\r\n }\r\n\r\n getProcessHistory() {\r\n window.retrieveProcessHistory(this.props.project.id);\r\n }\r\n\r\n registerProcessHistory(history) {\r\n if (history) {\r\n this.history = JSON.parse(history);\r\n }\r\n\r\n this.getProcessDtos();\r\n }\r\n\r\n getProcessDtos() {\r\n if (this.props.project.processIds) {\r\n this.props.getProcessDtos(this.props.project.processIds);\r\n }\r\n }\r\n\r\n getProcessModels() {\r\n const origin = this.state.processList;\r\n\r\n const newProcesses = this.props.processes.filter(\r\n (p) => !origin.map((l) => l.id).includes(p.id)\r\n );\r\n const processList = newProcesses.map((p) => {\r\n const data = new ProcessModel(p);\r\n\r\n data.model = this.props.models.find(\r\n (m) =>\r\n m.disciplineMetaDataId === p.disciplineMetaDataId &&\r\n m.buildingMetaDataId === p.buildingMetaDataId &&\r\n m.floorMetaDataId === p.floorMetaDataId\r\n )?.name;\r\n data.discipline = this.props.disciplines.find(\r\n (d) => d.id === p.disciplineMetaDataId\r\n )?.name;\r\n data.building = this.props.buildings.find(\r\n (b) => b.id === p.buildingMetaDataId\r\n )?.name;\r\n data.floor = this.props.floors.find(\r\n (f) => f.id === p.floorMetaDataId\r\n )?.name;\r\n\r\n const history = this.history.find((h) => h.id === p.id);\r\n if (history) {\r\n data.user = history.user;\r\n data.imported = true;\r\n data.importedDate = new Date(history.date);\r\n } else {\r\n data.user = `${p.reviewer?.firstName} ${p.reviewer?.lastName}`;\r\n }\r\n\r\n data.description = this.getDescription(data);\r\n return data;\r\n });\r\n\r\n this.setState({ processList: [...origin, ...processList] });\r\n }\r\n\r\n getDescription(data) {\r\n let desc = \"\";\r\n if (data.imported) {\r\n const diff = Math.floor(\r\n (Date.now() - Date.parse(data.importedDate)) / (24 * 3600 * 1000)\r\n );\r\n desc =\r\n diff === 0\r\n ? `Imported today by ${data.user}`\r\n : `Imported ${diff} days ago by ${data.user}`;\r\n if (window.isGerman) {\r\n desc =\r\n diff === 0\r\n ? `von ${data.user} heute importiert`\r\n : `von ${data.user} vor ${diff} Tagen importiert`;\r\n }\r\n } else {\r\n const diff = Math.floor(\r\n (Date.now() - Date.parse(data.process.reviewDate)) / (24 * 3600 * 1000)\r\n );\r\n desc =\r\n diff === 0\r\n ? `Approved today by ${data.user}`\r\n : `Approved ${diff} days ago by ${data.user}`;\r\n if (window.isGerman) {\r\n desc =\r\n diff === 0\r\n ? `von ${data.user} heute genehmigt`\r\n : `von ${data.user} vor ${diff} Tagen genehmigt`;\r\n }\r\n }\r\n\r\n return desc;\r\n }\r\n\r\n registerImportedResult(processId, result) {\r\n if (result) {\r\n const processList = this.state.processList;\r\n const index = processList.findIndex((p) => p.id === processId);\r\n if (index > -1) {\r\n const data = JSON.parse(result);\r\n const isResult = true;\r\n if (data.findIndex((e) => e.error === processStatus.NoError) > -1) {\r\n processList[index].imported = true;\r\n processList[index].importedDate = new Date();\r\n processList[index].description = this.getDescription(\r\n processList[index]\r\n );\r\n }\r\n\r\n const processResult = data\r\n .filter((e) => e.error > processStatus.NoError)\r\n .map((r) => {\r\n r.processId = processId;\r\n r.isNew = false;\r\n return r;\r\n });\r\n\r\n const succeed = data.filter(\r\n (e) => e.error === processStatus.NoError\r\n ).length;\r\n const failed = processResult.length;\r\n\r\n const importResult = { succeed, failed, isResult: true };\r\n this.setState({ isResult, processList, processResult, importResult });\r\n }\r\n } else {\r\n const lang = window.isGerman ? de : en;\r\n window.AlertAPI(lang[\"FailImportProcess\"]);\r\n }\r\n }\r\n\r\n registerNewAttributeResult(processId, result) {\r\n const lang = window.isGerman ? de : en;\r\n if (result) {\r\n const processList = this.state.processList;\r\n const index = processList.findIndex((p) => p.id === processId);\r\n if (index > -1) {\r\n processList[index].imported = true;\r\n processList[index].importedDate = new Date();\r\n processList[index].description = this.getDescription(\r\n processList[index]\r\n );\r\n\r\n this.setState({ processList });\r\n }\r\n\r\n window.AlertAPI(lang[\"SuccessImportProcess\"]);\r\n } else {\r\n window.AlertAPI(lang[\"FailImportProcess\"]);\r\n }\r\n }\r\n\r\n onMatchProperties = () => {\r\n this.setState({ isResult: false, importResult: initialImportResult });\r\n const newAttributes = this.state.processResult.filter(\r\n (r) => r.definitionGuid || r.isNew\r\n );\r\n if (newAttributes.length) {\r\n let model = {};\r\n model.id = newAttributes[0].processId;\r\n model.user = `${this.props.user.firstName} ${this.props.user.lastName}`;\r\n model.data = newAttributes;\r\n\r\n window.setNewAttribute(model);\r\n }\r\n };\r\n\r\n renderProcessList() {\r\n return this.state.processList.map((p, index) => {\r\n const k = Math.floor(Math.random() * 65535) + index; // Force render\r\n return ;\r\n });\r\n }\r\n\r\n processListElement() {\r\n const { processList } = this.state;\r\n return (\r\n
\r\n {processList && this.renderProcessList()}\r\n
\r\n );\r\n }\r\n\r\n onChangeNewAttribute = (guid, index) => {\r\n let processResult = this.state.processResult;\r\n if (guid === \"new_property\") {\r\n const process = processResult[index];\r\n const propertyNames = process.acPropertyNames.map(\r\n (ac) => ac.propertyName\r\n );\r\n if (process.error === 2) propertyNames.push(process.propertyName);\r\n\r\n window.getNewPropertyName(index, propertyNames);\r\n } else {\r\n processResult[index].definitionGuid = guid;\r\n this.setState({ processResult });\r\n }\r\n };\r\n\r\n setNewPropertyName(index, newPropName) {\r\n if (newPropName) {\r\n let processResult = this.state.processResult;\r\n const process = processResult[index];\r\n process.isNew = true;\r\n process.newProperty = newPropName;\r\n this.setState({ processResult });\r\n }\r\n }\r\n\r\n renderProcessResult() {\r\n return this.state.processResult.map((p, index) => {\r\n return (\r\n \r\n this.onChangeNewAttribute(guid, idx)\r\n }\r\n />\r\n );\r\n });\r\n }\r\n\r\n onAssignedProperty = () => {\r\n const { importResult } = this.state;\r\n if (importResult.failed === 0) {\r\n this.setState({ isResult: false, importResult: initialImportResult });\r\n } else {\r\n importResult.isResult = false;\r\n this.setState({ importResult });\r\n }\r\n };\r\n\r\n getImportResultContent = (isSucceeded, count) => {\r\n const lang = window.isGerman ? de : en;\r\n const content = isSucceeded\r\n ? lang[\"SucceedPropertyMatching\"]\r\n : lang[\"FailedPropertyMatching\"];\r\n return content.replace(\"{%}\", count);\r\n };\r\n\r\n processResultElement() {\r\n const lang = window.isGerman ? de : en;\r\n const { processResult, importResult } = this.state;\r\n return (\r\n
\r\n

\r\n {importResult.isResult ? lang[\"AssignProp\"] : lang[\"ImportProcess\"]}\r\n

\r\n {importResult.isResult ? (\r\n <>\r\n
\r\n {importResult.succeed ? (\r\n
\r\n {this.getImportResultContent(true, importResult.succeed)}\r\n
\r\n ) : (\r\n <>\r\n )}\r\n {importResult.failed ? (\r\n
\r\n
\r\n {this.getImportResultContent(false, importResult.failed)}\r\n
\r\n \r\n
\r\n ) : (\r\n <>\r\n )}\r\n
\r\n
\r\n \r\n {lang[\"AssignProp\"]}\r\n \r\n
\r\n \r\n ) : (\r\n <>\r\n
\r\n {processResult && this.renderProcessResult()}\r\n
\r\n
\r\n \r\n {lang[\"MatchProp\"]}\r\n \r\n
\r\n \r\n )}\r\n
\r\n );\r\n }\r\n\r\n render() {\r\n const lang = window.isGerman ? de : en;\r\n const { isResult } = this.state;\r\n\r\n return (\r\n
\r\n
\r\n

{lang[\"Process\"]}

\r\n \r\n
\r\n {isResult ? this.processResultElement() : this.processListElement()}\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n project: state.project.selectedProject,\r\n buildings: state.metaData.buildings,\r\n disciplines: state.metaData.disciplines,\r\n floors: state.metaData.floors,\r\n models: state.models.models,\r\n processes: state.processes.processes,\r\n user: state.user.currentUser,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getProcessDtos: (ids) => {\r\n dispatch(processActions.getProcesses(ids));\r\n },\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(EditProcess);\r\n","import React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport ModelPage from \"./models\";\r\nimport IssueList from \"./issueList\";\r\nimport IssueDetail from \"./issueDetail\";\r\nimport IssueFilter from \"./issueFilter\";\r\nimport IssueEdit from \"./issueEdit\";\r\nimport ExportPage from \"./exportManager\";\r\nimport EditProcess from \"./editProcess\";\r\nimport { projActions, syncActions, userActions } from \"../redux/actions\";\r\nimport { pageState } from \"./enums\";\r\nimport en from \"../assets/en.json\";\r\nimport de from \"../assets/de.json\";\r\nimport logoutImg from \"../assets/logout.png\";\r\nimport \"../css/manager.css\";\r\n\r\nclass IssueManager extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n currentState: pageState.IMPORTMODEL,\r\n tempState: pageState.ISSUELIST,\r\n };\r\n\r\n this.handleGotoProjects = this.handleGotoProjects.bind(this);\r\n this.handleLogout = this.handleLogout.bind(this);\r\n this.handleGotoModelPage = this.handleGotoModelPage.bind(this);\r\n this.handleGotoIssuePage = this.handleGotoIssuePage.bind(this);\r\n this.handleChangeIssuePage = this.handleChangeIssuePage.bind(this);\r\n this.handleGotoExportPage = this.handleGotoExportPage.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n if (!this.props.project.id) {\r\n this.props.history.push(\"/\");\r\n } else {\r\n window.getPublishHistory(this.props.project.id);\r\n this.createInterval();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n window.savePublishHistory();\r\n this.disposeInterval();\r\n }\r\n\r\n createInterval() {\r\n this.timerId = setInterval(() => {\r\n this.props.syncProject(this.props.project.id);\r\n }, 60000);\r\n }\r\n\r\n disposeInterval() {\r\n if (this.timerId) {\r\n clearInterval(this.timerId);\r\n }\r\n }\r\n\r\n handleGotoProjects(e) {\r\n e.preventDefault();\r\n this.props.returnProjects(this.props.history);\r\n }\r\n\r\n handleLogout(e) {\r\n e.preventDefault();\r\n this.props.logout(this.props.history);\r\n }\r\n\r\n handleGotoModelPage(e) {\r\n e.preventDefault();\r\n this.registerTempState();\r\n this.setState({ currentState: pageState.IMPORTMODEL });\r\n }\r\n\r\n handleGotoIssuePage(e) {\r\n e.preventDefault();\r\n const temp = this.state.tempState;\r\n this.setState({ currentState: temp });\r\n }\r\n\r\n handleChangeIssuePage(page) {\r\n this.setState({ currentState: page });\r\n }\r\n\r\n handleGotoExportPage(e) {\r\n e.preventDefault();\r\n this.registerTempState();\r\n this.setState({ currentState: pageState.EXPORTPAGE });\r\n }\r\n\r\n registerTempState() {\r\n const past = this.state.currentState;\r\n if (\r\n past !== pageState.EXPORTPAGE &&\r\n past !== pageState.IMPORTMODEL &&\r\n past !== pageState.PROCESS\r\n ) {\r\n if (past === pageState.EDITISSUE) {\r\n this.setState({ tempState: pageState.ISSUELIST });\r\n } else {\r\n this.setState({ tempState: past });\r\n }\r\n }\r\n }\r\n\r\n handleGotoProcessPage = () => {\r\n this.registerTempState();\r\n this.setState({ currentState: pageState.PROCESS });\r\n };\r\n\r\n render() {\r\n const lang = window.isGerman ? de : en;\r\n const { currentState } = this.state;\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n {lang[\"Projects\"]}\r\n \r\n
\r\n \r\n {lang[\"Models\"]}\r\n \r\n \r\n {lang[\"Issues\"]}\r\n \r\n \r\n Export\r\n \r\n \r\n {lang[\"Process\"]}\r\n \r\n
\r\n \"\"\r\n \r\n
\r\n
\r\n
\r\n {currentState === pageState.IMPORTMODEL && (\r\n \r\n )}\r\n {currentState === pageState.ISSUELIST && (\r\n \r\n )}\r\n {currentState === pageState.DETAILISSUE && (\r\n \r\n )}\r\n {currentState === pageState.FILTERISSUE && (\r\n \r\n )}\r\n {currentState === pageState.EDITISSUE && (\r\n \r\n )}\r\n {currentState === pageState.EXPORTPAGE && }\r\n {currentState === pageState.PROCESS && }\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapDispatchToState = (state) => {\r\n return {\r\n project: state.project.selectedProject,\r\n issue: state.detail.selectedIssue,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n logout: (history) => {\r\n dispatch(userActions.logout(history));\r\n },\r\n returnProjects: (history) => {\r\n dispatch(projActions.returnProjects(history));\r\n },\r\n syncProject: (projId) => {\r\n dispatch(syncActions.syncProject(projId));\r\n },\r\n };\r\n};\r\n\r\nexport default connect(mapDispatchToState, mapDispatchToProps)(IssueManager);\r\n","import React from \"react\";\r\nimport { BrowserRouter as Router, Switch, Route } from \"react-router-dom\";\r\nimport Login from \"./components/login\";\r\nimport Projects from \"./components/projects\";\r\nimport IssueManager from \"./components/issueManager\";\r\nimport { version } from \"./components/helper\";\r\nimport \"./App.css\";\r\n\r\nclass App extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { version: \"\" };\r\n }\r\n\r\n componentDidMount() {\r\n setTimeout(() => {\r\n this.setState({ version: version.getVersionMark() });\r\n }, 3000);\r\n }\r\n\r\n render() {\r\n const { version } = 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 {version &&
{version}
}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default App;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport store from './redux/store';\r\nimport './css/index.css';\r\nimport App from './App';\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\n","export const userConstants = {\r\n USER_LOGIN: 'user/login',\r\n USER_LOGOUT: 'user/logout',\r\n USER_REFRESH: 'user/refresh',\r\n USER_LOGGING: 'user/logging',\r\n USER_CURRENT: 'user/current'\r\n};","export const projConstants = {\r\n PROJ_GETAll: 'project/getall',\r\n PROJ_OPEN: 'project/open',\r\n PROJ_CLEAR: 'project/clear',\r\n PROJ_RETURN: 'project/return',\r\n PROJ_RESETISSUEFLAG: 'project/resetIssueFlag'\r\n};","export const issuesConstants = {\r\n ISSUES_GETALL: 'issues/getall',\r\n ISSUES_OWNER: 'issues/owner',\r\n ISSUES_CLEAR: 'issues/clear',\r\n ISSUES_UPDATE: 'issues/update',\r\n ISSUES_INSERT: 'issues/insert',\r\n ISSUES_EXTERNAL: 'issues/external',\r\n ISSUES_RESET_OWNER: 'issues/reset_owner'\r\n}","export const viewpointConstants = {\r\n VP_GETALL: 'viewpoint/getall',\r\n VP_CLEAR: 'viewpoint/clear',\r\n VP_ADD_RESOURCE: 'viewpoint/addResource',\r\n VP_SET_SNAPSHOTID: 'viewpoint/snapshot/post',\r\n VP_CLEAR_SNAPSHOT: 'viewpoint/snapshot/clear',\r\n VP_DELETE: 'viewpoint/delete'\r\n};","export const filterConstants = {\r\n FILTER_APPLY: 'filter/apply',\r\n FILTER_RESET: 'filter/Reset',\r\n FILTER_NAME: 'Archicad-IssueFilter'\r\n}","export const detailConstants = {\r\n DETAIL_SELECT: 'detail/select',\r\n DETAIL_CLEAR: 'detail/clear',\r\n}","export const commentConstants = {\r\n COMMENT_GET: 'comment/get',\r\n COMMENT_CLAER: 'comment/clear',\r\n COMMENT_ADD: 'comment/add',\r\n}","export const metaDataConstants = {\r\n DISCIPLINE: 'metaData/discipline',\r\n BUILDING: 'metaData/building',\r\n FLOOR: 'metaData/floor'\r\n}","export const modelConstants = {\r\n MODEL_GETALL: 'model/getall',\r\n MODEL_CLEAR: 'model/clear',\r\n}","export const editConstants = {\r\n EDIT_SUCCESS: 'edit/success',\r\n EDIT_FAIL: 'edit/fail',\r\n EDIT_RESET: 'edit/reset'\r\n}","export const processConstants = {\r\n PROCESS_GETALL: 'process/getall',\r\n PROCESS_CLEAR: 'process/clear'\r\n}","export const issueDescriptorConstants = {\r\n PRIORITY: 'desc/priority',\r\n STATUS: 'desc/status',\r\n TYPE: 'desc/type'\r\n}","export const emailConstants = {\r\n GET_EMAIL: 'email/get'\r\n}"],"sourceRoot":""}