Mr.Combet Webshell
Your IP :
216.73.216.136
Server IP :
103.233.58.157
Server :
Windows NT WIN-4PGF72KEHKB 10.0 build 17763 (Windows Server 2016) AMD64
Server Software :
Microsoft-IIS/10.0
PHP Version :
7.3.25
Add File :
Submit
Add Directory :
Submit
Dir :
C:
/
inetpub
/
wwwroot
/
IRC
/
ClientApp
/
build
/
static
/
js
/
Edit File Name :
main.bd92ce8c.chunk.js.map
{"version":3,"sources":["store/types.tsx","store/reducers/common/commonReducer.ts","store/reducers/validateReducer.ts","store/reducers/userReducer.ts","store/reducers/metaReducer.ts","store/reducers/articleReducer.ts","store/reducers/index.ts","store/configureStore.ts","assets/logo.png","networkService/api.ts","constants/urls.ts","store/actions/validateAction.ts","helpers/dispatchError.ts","networkService/service.ts","constants/routesEnum.ts","store/actions/auth/index.ts","store/actions/user/index.tsx","store/actions/meta/index.ts","navigation/layout/changePassword.tsx","components/toast/index.tsx","helpers/isEmpty.ts","constants/validExtensions.ts","constants/articleStatusEnum.ts","constants/roleEnum.ts","helpers/getStatus.tsx","helpers/utility.ts","navigation/layout/header.tsx","navigation/layout/AdminLayout/adminSideBar.tsx","navigation/layout/AdminLayout/index.tsx","navigation/layout/index.tsx","scenes/auth/login/index.tsx","assets/document.svg","components/form/checkList.tsx","assets/pdf.svg","components/icons/svgIcons.tsx","constants/index.ts","helpers/checkFileExtension.ts","components/popup/dialog.tsx","components/imageViewer/index.js","components/form/attachmentButton.tsx","components/form/attachmentsButton.tsx","components/form/wrapper.tsx","components/form/HWrapper.tsx","components/form/editor.tsx","store/actions/articles/index.ts","constants/templateEnum.ts","components/loader.tsx/index.tsx","scenes/submitter/submission/start.tsx","scenes/submitter/submission/uploadSubmission/uploadFile.tsx","scenes/submitter/submission/uploadSubmission/sumissionList.tsx","scenes/submitter/submission/uploadSubmission/index.tsx","scenes/submitter/submission/authors/entryForm.tsx","scenes/submitter/submission/authors/coAuthorList.tsx","scenes/submitter/submission/authors/index.tsx","scenes/submitter/submission/metaData.tsx","scenes/submitter/submission/submitArticle.tsx","scenes/submitter/submission/index.tsx","scenes/common/attachments/index.tsx","scenes/submitter/revision/index.tsx","store/actions/comment/index.tsx","scenes/comments/commentEditor.tsx","scenes/comments/commentBody.tsx","scenes/comments/index.tsx","scenes/comments/commentButton.tsx","scenes/common/articles/cardView/articleCard.tsx","scenes/common/articles/cardView/index.tsx","scenes/common/articles/searchFilter.tsx","scenes/common/articles/index.tsx","scenes/submitter/component/actions.tsx","scenes/submitter/component/submissionList.tsx","scenes/common/tabTitle.tsx","routes/submitterRoutes.ts","scenes/submitter/index.tsx","scenes/viewArticle/components/start.tsx","scenes/viewArticle/components/author.tsx","scenes/viewArticle/components/attachment.tsx","scenes/viewArticle/components/metaInfo.tsx","scenes/viewArticle/index.tsx","store/actions/common/index.ts","scenes/Administrator/user/verifyEmailAddress.tsx","scenes/Administrator/user/forgotPassword.tsx","scenes/Administrator/user/sendPasswordResetLink.tsx","scenes/Administrator/user/signUp.tsx","routes/publicRoutes.ts","scenes/Administrator/user/search.tsx","scenes/Administrator/user/addUser.tsx","scenes/Administrator/user/changeUserPassword.tsx","scenes/Administrator/user/index.tsx","components/tableView/index.tsx","scenes/Administrator/components/assignUser.tsx","scenes/Administrator/components/actions.tsx","scenes/Administrator/components/submissionList.tsx","scenes/Administrator/index.tsx","routes/adminRoutes.ts","scenes/editor/components/actionConfirmation.tsx","scenes/editor/components/assignUserButton.tsx","constants/emailTemplateEnum.ts","helpers/dateHelper.ts","hooks/useOutsideClick.tsx","components/popup/_popover.tsx","scenes/editor/components/assignReviewer/reviewerPopup.tsx","scenes/editor/components/assignReviewer/reviewerInput.tsx","scenes/editor/components/assignReviewer/assignReviewerForm.tsx","constants/reviewStatusEnum.ts","scenes/editor/components/assignReviewer/reviewCard.tsx","scenes/editor/components/assignReviewer/reviewDetail.tsx","scenes/editor/components/assignReviewer/index.tsx","scenes/common/uploadFiles/uploadFile.tsx","scenes/common/uploadFiles/index.tsx","scenes/editor/components/requestRevision.tsx","scenes/editor/components/actions.tsx","scenes/editor/components/submissionList.tsx","routes/editorRoutes.ts","scenes/editor/index.tsx","scenes/reviewer/components/actions.tsx","scenes/reviewer/components/submissionList.tsx","scenes/common/review/request.tsx","scenes/common/review/guidelines.tsx","scenes/common/review/downloadReview.tsx","scenes/common/review/submitReview.tsx","scenes/common/review/index.tsx","routes/reviewerRoutes.ts","scenes/reviewer/index.tsx","routes/index.ts","scenes/notFound.tsx","navigation/links/privateRoute.tsx","navigation/links/baseRoute.tsx","navigation/links/index.tsx","App.tsx","index.tsx"],"names":["initialState","roles","messages","otherMessage","arrayMessages","validateReducer","state","arguments","length","undefined","action","type","types","_objectSpread","payload","concat","_toConsumableArray","filter","message","id","loggedInUserDetail","userList","usersReducer","checkList","sections","subSections","templates","components","recommendations","salutations","article","review","articleCounts","combineReducers","commonReducer","userReducer","metaReducer","articleReducer","configureStore","middleware","thunk","createStore","reducers","applyMiddleware","apply","api","siginIn","signOut","emailTemplate","downloadFiles","verifyEmail","signup","list","users","userDetails","forgotPassword","resetPassword","changePassword","changePasswordByUser","status","count","start","authors","attachments","metadata","confirmation","assignArticleForEditor","assingedInfo","updateStatus","assigntToReviewer","reviewDetail","reviewByArticle","acknowledgeReview","submitDownloadAndReview","submitReview","requestRevision","revision","reviewer","comment","baseURL","window","location","origin","clearMessage","dispatch","dispatchError","error","response","MessageType","messageType","Message","res","data","toastMessage","getHeaders","isMultipart","header","headers","Authorization","localStorage","getItem","actionBase","axios","create","get","url","param","showResponseMessage","Promise","resolve","reject","fullUrl","getFullStringUrl","then","onSuccess","catch","err","onFailure","post","put","deletion","delete","entries","Object","map","entry","ind","Status","RouteEnum","saveToken","AuthToken","Token","expires_in","ExpireMinutes","RefreshToken","IdleTimeoutMinutes","setItem","Role","Username","login","history","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","result","wrap","_context","prev","next","ex","sent","Data","href","stop","_x","logout","_ref2","_callee2","dipatch","_context2","clear","RoutesEnum","_x2","GetLoggedInUserDetails","abrupt","GetUserList","SaveUser","_ref3","_callee3","act","_context3","Id","_x3","DeleteUser","_ref4","_callee4","_context4","_x4","ChangeUserStatus","_ref5","userId","isInactive","_ref6","_callee5","_context5","_x5","_ref7","userName","newPassword","_ref8","_callee6","_context6","_x6","_ref9","currentPassword","confirmNewPassword","_ref10","_callee7","_context7","_x7","signUp","_ref11","_callee8","_context8","_x8","_ref12","email","_ref13","_callee9","_context9","_x9","_ref14","_callee10","_context10","_x10","GetTemplates","GetCheckList","sectionId","GetSection","GetSubSection","GetComponents","GetRecommendations","GetSalutations","ChangeUserPasswordDailog","props","user","isVisible","setVisible","ref","useRef","useDispatch","_useState","useState","isLoading","_useState2","_slicedToArray","setState","handleChangePassword","current","validate","valid","reset","resetFields","_jsx","Dialog","title","visible","onCancel","style","width","children","Body","_jsxs","Form","rules","required","trigger","Item","Input","name","value","placeholder","onChange","val","Button","onClick","loading","Toast","useSelector","timeout","getType","toLowerCase","useEffect","Array","isArray","forEach","Notification","duration","offset","setTimeout","_Fragment","isEmpty","keys","trim","ArticleStatusEnum","RoleEnum","renderStatus","role","recommendation","Submitter","statusTextForSubmitter","Reviewer","statusTextForReviewer","Editor","statusTextForEditor","getStatusText","className","color","text","REVISION","SUBMITTED","RESUBMITTED","ASSIGNEDEDITOR","REVIEWING","REVIEWED","NEW","APPROVED","REJECTED","ReviewStatus","createMarkup","html","__html","validateFile","file","validExtensions","extensions","find","x","regex","RegExp","join","match","getRequiredRules","mobileRules","validator","rule","callback","Error","Header","useHistory","authToken","isChangePasswordVisible","setChangePasswordVisible","_useState3","_useState4","isAuth","setAuth","_useSelector","FullName","Email","RoleName","UserName","fileName","loadData","handleLogout","src","logo","Link","to","base","Dropdown","onCommand","command","menu","Menu","download","ChangePasswordDialog","AdminSideBar","defaultActive","onOpen","onClose","SubMenu","index","adminSubmission","AdminLayout","ELayout","Row","Col","span","Layout","Administrator","_linearGradient","_linearGradient2","_linearGradient3","_linearGradient4","_linearGradient5","_linearGradient6","_g","Login","username","password","formRef","key","_defineProperty","handleLoginClick","e","preventDefault","model","labelPosition","labelWidth","label","prop","Select","Option","Name","nativeType","Routes","CheckList","handleCheckBoxChange","item","isChecked","newState","findIndex","push","splice","containsItems","Checkbox","checked","_excluded","_extends","assign","bind","target","i","source","prototype","hasOwnProperty","call","this","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","SvgDocument","svgRef","titleId","height","viewBox","xmlns","xmlnsXlink","gradientUnits","x1","x2","y1","y2","stopColor","xlinkHref","d","fill","ForwardRef","SvgPdf","SvgIcons","size","_ref$height","SvgIcon","Document","PDF","getIconComponent","defaultProps","Constant","checkFileExtension","isImage","isPdf","isXls","isDocs","ext","substring","open","visibility","handleClick","createPortal","document","body","render","containerClassName","ImageViewer","image","dowloadLinkUrl","show","hostedUrl","imageSrc","serverFileName","stopPropagation","FiDownload","InnerImageZoom","zoomSrc","zoomScale","AttachmentButton","fileRef","enableUpload","disabled","multiple","maxFiles","isPreview","preview","setPreview","setError","handleChange","event","files","getDownloadLink","FileType","ServerFileName","display","UserFileName","_checkFileExtension","URL","createObjectURL","Uploads","CgFile","getDiplayIcon","FaTimes","margin","click","CgAttachment","toString","AttachmentsButton","selectedValue","_useState5","_useState6","fileList","setFileList","userFileName","el","Wrapper","HWrapper","CKEditor","config","editor","ClassicEditor","getData","GetArticles","CountArticle","GetArticle","DeleteArticle","clearArticle","SaveStart","SaveAuthors","SaveAttachment","SaveMetaData","SaveConfrimation","AssignArticleForEditor","_callee11","_context11","_x11","AssignToReviewers","_callee13","_context13","_x13","GetReviewDetails","_callee14","_context14","_x14","GetReviewByArticleId","_ref16","_callee16","_context16","_x16","AcknowledgeReview","reviewId","_ref17","_callee17","_context17","_x17","SubmitDownloadAndReview","_ref18","_callee18","_context18","FormData","append","Attachment","_x18","SubmitReview","_ref19","_callee19","_context19","_x19","userWithAssignedInfo","_ref20","_callee20","_context20","_x20","UpdateArticleStatus","_ref21","_callee21","_context21","_x21","RequestRevision","_ref22","_callee22","_context22","Files","_x22","GetRevision","_ref23","_callee23","_context23","_x23","DeleteReviewer","_ref24","_callee24","_context24","_x24","TemplateEnum","Loader","classNames","Start","onSave","selectedTab","isLoadingCheckList","setLoadingCheckList","ArticleId","SectionId","SubSectionId","CommentsForEditor","SubSections","setLoading","st","obj","loadCheckList","getSubSections","CheckListId","CheckListName","copyrightStatements","TemplateKey","CopyrightStatements","privacyStatements","PrivacyStatements","handleNextClick","Comments","Steps","TemplateTitle","TemplateText","CanEdit","Component","SupportedFiles","Size","UploadFile","selectedFileData","ComponentId","nextState","_value$SupportedFiles","_value$SupportedFiles2","split","ComponentName","SumissionList","handleAttachmentEditClick","handleAttachmentDeleteClick","newAttachment","reduce","a","b","_a","items","componentName","idx","_state$key","_state$key2","_state$key2$items","_state$key2$items$map","attachment","FiFile","UploadSubmission","setSelectedFileData","setAttachments","ArticleAttachments","onSaveClicked","attachmentIds","requiredComponent","mustHaveNames","IsRequired","includes","FileFormat","SubmissionList","newAttachments","handleSaveFile","Salutation","Designation","Institute","PostalAddress","MobileNo","Photo_ServerFileName","Photo_UserFileName","Photo","DigitalSignature_ServerFileName","DigitalSignature_UserFileName","DigitalSignature","EntryForm","coAuthorList","coAuthorData","handleSubmit","gutter","CoAuthorList","CoAuthors","onEditClicked","onDelelteClicked","columns","fixed","row","column","Table","fit","Authors","setCoAuthorData","InvestigatorName","InvestigatorSalutation","InvestigatorDesignation","InvestigatorInstitute","InvestigatorPostalAddress","InvestigatorMobileNo","InvestigatorEmail","InvestigatorPhoto_ServerFileName","InvestigatorPhoto_UserFileName","InvestigatorDigitalSignature_ServerFileName","InvestigatorDigitalSignature_UserFileName","ArticleCoAuthors","k","prefix","introduction","methods","citedReference","abstract","MetaData","ProposalTitle","ProposalIntroduction","PropsalMethods","ProposalCitedReferences","ProposalAbstract","articleId","steps","SubmitArticle","onConfirmation","revisionId","parseInt","Submisson","setSteps","setSelectedTab","_props$match$params","params","step","fetchArticle","updateStep","newStep","tabs","component","showClose","submitter","Breadcrumb","separator","revisionDetail","Tabs","onTabClick","Pane","tab","Attachments","Revision","isloading","fetchRevision","dangerouslySetInnerHTML","GetCommenstList","PostComment","_param$Files$i","fileKey","DeleteComment","CommentEditor","editData","Comment","handleSaveClick","ArticleRef_Id","FaPaperPlane","CommentBody","_state$comment","_state$comment2","_state$comment3","isEdit","handleDelete","MessageBox","confirm","confirmButtonText","cancelButtonText","onDelete","onSaved","CanDelete","comments","setComments","_useState7","_useState8","showAddComment","setAddComment","loadComments","articleComments","FiUser","cd","CreatedOn","moment","Date","format","FaPlus","CommentButton","Badge","TotalComments","MdOutlineChat","lockScroll","top","ArticleCard","actions","completion","reviewCompletion","ReviewSteps","SectionName","SubSectionName","SubmittedOn","DateInString","SubmissionNumber","Progress","strokeWidth","percentage","CompletedReview","TotalReview","MdPreview","NoOfReviewWaitingAcceptance","NoOfReviewAccepted","ReviewRecommendation","ReviewResponsedOnString","ReviewResponseDueDate","ReviewResponseDueDateString","ReviewDueDateString","viewArticle","FaList","CardView","totalData","pageSize","PageIndex","handlePageSizeChanged","handlePageChanged","Pagination","layout","total","pageSizes","currentPage","onSizeChange","onCurrentChange","SearchFilter","onSearchClicked","onChangeSearch","inline","proposalTitle","submissionNumber","section","subSection","Articles","getStatus","propsalTitle","fetchData","useImperativeHandle","setList","ls","countArticles","TotalData","pageIndex","page","forwardRef","Actions","handleEditClick","handleRevisionClick","FaEdit","MdRefresh","FaTrash","div","getActions","Submissions","articlesRef","submission","RevisionId","TabTitle","Type","Total","getValue","SubmitterRoutes","exact","path","CoAuthor","isAuthor","Author","setAuthors","Institue","MetaInfo","ViewArticle","GetRoles","verifyUserEmailAddress","GetEmailTemplate","templateType","VerifyEmailAddress","verify","queryString","parse","search","ForgotPassword","Password","ConfirmPassword","Code","code","validateField","PasswordReset","isSuccessSubmitting","Roles","MobileNumber","Country","Affiliation","Captcha","SignUp","recaptchaRef","routes","ReCAPTCHA","sitekey","PublicRoutes","Public","verifyEmailAddress","Search","onAddUserClicked","isActive","AddUser","onSaveSuccess","fetchRoles","Switch","onText","offText","IsInactive","ChangeUserPassword","UserDialog","Index","setData","fetchUserList","handleAddUser","changeUserStatus","confirmDelete","border","TableView","showNoData","Editors","editorName","remarks","_useState9","_useState10","selectedIndex","setSelectedIndex","_useState11","_useState12","tableData","setTableData","fullname","IsAssigned","Done","Active","Radio","assignTo","assignedAs","AssignUser","assignProps","handleCancel","FaUserPlus","closeOnClickModal","AdminLandingPage","AdminRoutes","User","ActionConfirmation","handleSave","closeModal","FaCheck","FaUndo","FaBan","AssignUserButton","onAssignClick","EmailTemplateEnum","dateFormat","date","useOutsideClick","setDrop","parentRef","handleClickOutside","contains","addEventListener","removeEventListener","store","Popover","popupRef","createElement","left","handleOutsideClick","appendChild","handleSCroll","ReactDOM","unmountComponentAtNode","removeChild","isEqual","Provider","_popupRef$current$get","getBoundingClientRect","popupWidth","popupHeight","y","newTop","newLeft","innerHeight","innerWidth","rightMargin","setPosition","ReviewerPopup","popRef","setOpen","selectedReviewer","setValue","onSelected","newValue","onChangeName","ReviewerInput","handleReveiwerSelected","reviewers","AssignReviewer","setSelectedReviewer","reveiwer","responseDueDate","reviewDueDate","emailText","loadEmailTemplate","submit","ReviewId","onChangeDate","console","log","AssingReviewArticle","BodyText","DatePicker","disabledDate","time","getTime","now","ReviewStatusEnum","ReviewCard","handleOnDelete","getCard","subtitle","onRemoveClick","ReviewerId","ReviewerName","ResponsDueDate","ReviewDueDate","AcceptedOn","CompletedOn","CommentsForEditorAndAuthor","ReviewFiles","RecommendationId","Recommendation","statusText","backColorClass","COMPLETED","DECLINED","ACCEPTED","UNDERREVIEW","ReviewDetail","showAddReviewer","handleOnReviewerDelete","reviewerId","Title","Reviews","showReviewerForm","loadReview","AssignReviewerForm","UploadFiles","isDisabled","padding","textAlign","RequestForRevision","onClickRequestRevison","updateArticleStatus","EditorRoutes","handleReviewClick","ReviewCompleted","acceptAndContinue","decline","ArticleTitle","SubmissoinFiles","IsAccepted","IsCompleted","Guidelines","ReviewGuideline","DownloadReview","_useSelector2","commentsForEditor","setCommentsForEditor","commentsForEditorAndAuthor","setCommentsForEditorAndAuthor","recommendationId","UploadReviewFiles","ArticleStatus","SubmitArticleReview","Review","fetchReview","revResult","ReviewerRoutes","NotFound","PrivateRoute","rest","Route","Redirect","BaseRoute","Links","route","i18n","use","locale","baseUrl","getElementsByTagName","getAttribute","BrowserRouter","basename","App","getElementById"],"mappings":"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","file":"static/js/main.bd92ce8c.chunk.js","sourcesContent":["export default {\r\n ADD_MESSAGE: \"ADD_MESSAGE\",\r\n ADD_MESSAGES: \"ADD_MESSAGES\",\r\n ADD_OTHER_MESSAGES: \"ADD_OTHER_MESSAGES\",\r\n REMOVE_MESSAGE: \"REMOVE_MESSAGE\",\r\n CLEAR_MESSAGE: \"CLEAR_MESSAGE\",\r\n\r\n GET_ROLES: \"GET_ROLES\",\r\n GET_TEMPLATES: \"GET_TEMPLATES\",\r\n GET_CHECKLIST: \"GET_CHECKLIST\",\r\n GET_SECTIONS: \"GET_SECTIONS\",\r\n GET_SUBSECTIONS: \"GET_SUBSECTIONS\",\r\n GET_COMPONENTS: \"GET_COMPONENTS\",\r\n GET_RECOMMENDATIONS: \"GET_RECOMMENDATIONS\",\r\n GET_SALUTATIONS: \"GET_SALUTATIONS\",\r\n\r\n GET_LOGGEDIN_USER_DETAIL: \"GET_LOGGEDIN_USER_DETAIL\",\r\n GET_USER_LIST: \"GET_USER_LIST\",\r\n\r\n GET_ARTICLE: \"GET_ARTICLE\",\r\n COUNT_ARTICLE: \"COUNT_ARTICLE\",\r\n DELETE_ARTICLE: \"DELETE_ARTICLE\",\r\n\r\n GET_REVIEW: \"GET_REVIEW\",\r\n};\r\n","import types from \"../../types\";\n\nconst initialState = {\n roles: [],\n};\n\nexport default function (state: any = initialState, action: any) {\n switch (action.type) {\n case types.GET_ROLES:\n return {\n ...state,\n roles: action.payload,\n };\n\n default:\n return state;\n }\n}\n","import types from \"../types\";\nimport { Action, Reducer } from \"redux\";\n\nexport interface InitialState {\n messages: object;\n otherMessage: object;\n arrayMessages?: any;\n}\n\nconst initialState: InitialState = {\n messages: {},\n otherMessage: {},\n arrayMessages: [],\n};\nconst validateReducer: Reducer = (state = initialState, action: any) => {\n switch (action.type) {\n case types.ADD_MESSAGE:\n return {\n ...state,\n messages: action.payload,\n };\n\n case types.ADD_MESSAGES:\n return {\n ...state,\n arrayMessages: [action.payload, ...state.arrayMessages],\n };\n\n case types.ADD_OTHER_MESSAGES:\n return {\n ...state,\n otherMessage: action.payload,\n };\n\n case types.REMOVE_MESSAGE:\n return {\n ...state,\n arrayMessages: state.arrayMessages.filter(\n (message: any) => message.id !== action.payload\n ),\n };\n\n case types.CLEAR_MESSAGE:\n return {\n ...state,\n messages: {},\n };\n\n default:\n return state;\n }\n};\n\nexport default validateReducer;\n","import types from \"../types\";\n\nimport { Action, Reducer } from \"redux\";\nimport { UserDetailInterface } from \"interfaces/actions/auth\";\nexport interface InitialState {\n loggedInUserDetail: UserDetailInterface;\n userList: [];\n}\n\nconst initialState: InitialState = {\n loggedInUserDetail: {} as UserDetailInterface,\n userList: [],\n};\n\nconst usersReducer: Reducer = (state = initialState, action: any) => {\n switch (action.type) {\n case types.GET_LOGGEDIN_USER_DETAIL:\n return {\n ...state,\n loggedInUserDetail: action.payload,\n };\n\n case types.GET_USER_LIST:\n return {\n ...state,\n userList: action.payload,\n };\n\n default:\n return state;\n }\n};\nexport default usersReducer;\n","import types from \"../types\";\r\n\r\nconst initialState = {\r\n checkList: [],\r\n sections: [],\r\n subSections: [],\r\n templates: [],\r\n components: [],\r\n recommendations: [],\r\n salutations: [],\r\n};\r\n\r\nexport default function (state: any = initialState, action: any) {\r\n switch (action.type) {\r\n case types.GET_CHECKLIST:\r\n return {\r\n ...state,\r\n checkList: action.payload,\r\n };\r\n case types.GET_SECTIONS:\r\n return {\r\n ...state,\r\n sections: action.payload,\r\n };\r\n case types.GET_SUBSECTIONS:\r\n return {\r\n ...state,\r\n subSections: action.payload,\r\n };\r\n case types.GET_TEMPLATES:\r\n return {\r\n ...state,\r\n templates: action.payload,\r\n };\r\n case types.GET_COMPONENTS:\r\n return {\r\n ...state,\r\n components: action.payload,\r\n };\r\n case types.GET_RECOMMENDATIONS:\r\n return {\r\n ...state,\r\n recommendations: action.payload,\r\n };\r\n case types.GET_SALUTATIONS:\r\n return {\r\n ...state,\r\n salutations: action.payload,\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import types from \"../types\";\r\n\r\nconst initialState = {\r\n article: {},\r\n review: {},\r\n articleCounts: [],\r\n};\r\n\r\nexport default function (state: any = initialState, action: any) {\r\n switch (action.type) {\r\n case types.GET_ARTICLE:\r\n return {\r\n ...state,\r\n article: action.payload,\r\n };\r\n case types.GET_REVIEW:\r\n return { ...state, review: action.payload };\r\n\r\n case types.COUNT_ARTICLE:\r\n return { ...state, articleCounts: action.payload };\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { combineReducers } from \"redux\";\nimport commonReducer from \"./common/commonReducer\";\nimport validateReducer from \"./validateReducer\";\nimport userReducer from \"./userReducer\";\nimport metaReducer from \"./metaReducer\";\nimport articleReducer from \"./articleReducer\";\n\nexport default combineReducers({\n commonReducer,\n validateReducer,\n userReducer,\n metaReducer,\n articleReducer,\n});\n","import { createStore, applyMiddleware, compose } from \"redux\";\nimport thunk from \"redux-thunk\";\nimport reducers from \"./reducers\";\n\nexport default function configureStore(initialState: any = {}) {\n const production = process.env.NODE_ENV !== \"development\";\n\n let middleware = [thunk];\n\n // if (!production) {\n // middleware.push(require(\"redux-immutable-state-invariant\").default());\n // }\n\n if (production) {\n return createStore(reducers, initialState, applyMiddleware(...middleware));\n } else {\n return createStore(\n reducers,\n initialState,\n compose(applyMiddleware(...middleware))\n );\n }\n}\n","export default __webpack_public_path__ + \"static/media/logo.b47ed324.png\";","export const api = {\r\n auth: {\r\n siginIn: \"auth/signin\",\r\n signOut: \"auth/signout\",\r\n },\r\n meta: {\r\n templates: \"meta/templates\",\r\n checkList: \"meta/checklist\",\r\n sections: \"meta/sections\",\r\n subSections: \"meta/sub-sections\",\r\n components: \"meta/components\",\r\n salutations: \"meta/salutations\",\r\n recommendations: \"meta/recommendations\",\r\n },\r\n common: {\r\n roles: \"security/roles\",\r\n emailTemplate: \"common/email-template\",\r\n downloadFiles: `common/download`,\r\n },\r\n users: {\r\n verifyEmail: \"security/verify-email\",\r\n signup: \"security/signup\",\r\n list: \"security/users/list\",\r\n users: \"security/users\",\r\n userDetails: \"security/users/details\",\r\n forgotPassword: \"security/users/forgot-password\",\r\n resetPassword: \"security/users/reset-password\",\r\n changePassword: \"security/users/change-password\",\r\n changePasswordByUser: \"security/users/change-user-password\",\r\n status: \"security/users/status\",\r\n },\r\n articles: {\r\n article: \"articles/article\",\r\n count: \"articles/count\",\r\n start: \"articles/start\",\r\n authors: \"articles/authors\",\r\n attachments: \"articles/attachments\",\r\n metadata: \"articles/metadata\",\r\n confirmation: \"articles/submit\",\r\n assignArticleForEditor: \"articles/assign-article/editor\",\r\n\r\n assingedInfo: \"articles/assigned-info\",\r\n updateStatus: \"articles/update-status\",\r\n review: \"articles/review\",\r\n assigntToReviewer: \"articles/assign-to-reviewer\",\r\n reviewDetail: \"articles/review-detail\",\r\n reviewByArticle: \"articles/review-by-article\",\r\n acknowledgeReview: \"articles/acknowledge-review\",\r\n submitDownloadAndReview: \"articles/submit-download-review\",\r\n submitReview: \"articles/submit-review\",\r\n requestRevision: \"articles/request-revision\",\r\n revision: \"articles/revision\",\r\n reviewer: \"articles/reviewer\",\r\n comment: \"articles/comments\",\r\n },\r\n};\r\n","export const baseURL = `${window.location.origin}/v1/`;\n// export const baseURL = `http://103.233.58.157:8080/v1`;\n","import types from \"../types\";\r\n\r\ninterface dispatchAction {\r\n type: string;\r\n payload: object | string | [];\r\n}\r\n\r\nexport const toastMessage = (dispatch: any, res: any) => {\r\n let MessageType = null;\r\n let Message = [];\r\n if (res) {\r\n if (res.MessageType) {\r\n MessageType = res.MessageType;\r\n } else if (res.data && res.data.MessageType) {\r\n MessageType = res.data.MessageType;\r\n }\r\n\r\n if (res.Message) {\r\n Message = res.Message;\r\n } else if (res.data && res.data.Message) {\r\n Message = res.data.Message;\r\n }\r\n }\r\n\r\n if (MessageType || Message) {\r\n dispatch({\r\n type: types.ADD_MESSAGE,\r\n payload: { type: MessageType, message: Message },\r\n });\r\n }\r\n};\r\n\r\nexport const clearMessage =\r\n () => (dispatch: (action: dispatchAction) => dispatchAction) => {\r\n dispatch({\r\n type: types.CLEAR_MESSAGE,\r\n payload: null,\r\n });\r\n };\r\n","import React from \"react\";\nimport { toastMessage } from \"../store/actions/validateAction\";\n\nexport function dispatchError(dispatch: Function, error: any) {\n let response: any = {};\n\n response.MessageType = error.MessageType || error.messageType || \"Warning\";\n response.Message = error.Message || error.message || error;\n\n dispatch && toastMessage(dispatch, response);\n}\n","import axios from \"axios\";\r\nimport { baseURL } from \"../constants/urls\";\r\nimport { dispatchError } from \"../helpers/dispatchError\";\r\n\r\nconst getHeaders = (isMultipart = false) => {\r\n var header = {\r\n headers: {\r\n Authorization: localStorage.getItem(\"AuthToken\"),\r\n },\r\n };\r\n\r\n if (isMultipart) {\r\n header.headers[\"content-type\"] = \"multipart/form-data\";\r\n }\r\n return header;\r\n};\r\n\r\nconst actionBase = axios.create({ baseURL: baseURL });\r\n\r\nexport const get = (\r\n url: any,\r\n dispatch: Function,\r\n param = null,\r\n showResponseMessage = false\r\n) => {\r\n return new Promise((resolve, reject) => {\r\n const fullUrl = getFullStringUrl(url, param);\r\n actionBase\r\n .get(fullUrl, getHeaders())\r\n .then((res) => onSuccess(res, dispatch, resolve, showResponseMessage))\r\n .catch((err) => onFailure(err, dispatch, resolve));\r\n });\r\n};\r\n\r\nexport const get_by_id = (\r\n url: any,\r\n dispatch: Function,\r\n id: any,\r\n showResponseMessage = false\r\n) => {\r\n return new Promise((resolve, reject) => {\r\n const fullUrl = `${url}/${id}`;\r\n actionBase\r\n .get(fullUrl, getHeaders())\r\n .then((res) => onSuccess(res, dispatch, resolve, showResponseMessage))\r\n .catch((err) => onFailure(err, dispatch, resolve));\r\n });\r\n};\r\n\r\nexport const post = (\r\n url: any,\r\n dispatch: Function,\r\n param: any,\r\n showResponseMessage = true,\r\n isMultipart = false\r\n) => {\r\n return new Promise((resolve, reject) => {\r\n actionBase\r\n .post(url, param, getHeaders(isMultipart))\r\n .then((res) => onSuccess(res, dispatch, resolve, showResponseMessage))\r\n .catch((err) => onFailure(err, dispatch, resolve));\r\n });\r\n};\r\n\r\nexport const put = (\r\n url: any,\r\n dispatch: Function,\r\n param: any,\r\n showResponseMessage = true,\r\n isMultipart = false\r\n) => {\r\n return new Promise((resolve, reject) => {\r\n actionBase\r\n .put(url, param, getHeaders(isMultipart))\r\n .then((res) => onSuccess(res, dispatch, resolve, showResponseMessage))\r\n .catch((err) => onFailure(err, dispatch, resolve));\r\n });\r\n};\r\n\r\nexport const deletion = (\r\n url: any,\r\n dispatch: Function,\r\n id: any,\r\n showResponseMessage = true\r\n) => {\r\n return new Promise((resolve, reject) => {\r\n const fullUrl = `${url}/${id}`;\r\n actionBase\r\n .delete(fullUrl, getHeaders())\r\n .then((res) => onSuccess(res, dispatch, resolve, showResponseMessage))\r\n .catch((err) => onFailure(err, dispatch, resolve));\r\n });\r\n};\r\n\r\nconst getFullStringUrl = (url: any, param: any) => {\r\n const entries = param ? Object.entries(param) : null;\r\n let fullUrl = url;\r\n entries &&\r\n entries.map((entry, ind) => {\r\n if (ind == 0) {\r\n fullUrl = `${fullUrl}?${`${entry[0]}=${entry[1]}`}`;\r\n } else {\r\n fullUrl = `${fullUrl}&${`${entry[0]}=${entry[1]}`}`;\r\n }\r\n });\r\n return fullUrl;\r\n};\r\n\r\nconst onSuccess = (\r\n res: any,\r\n dispatch: Function,\r\n resolve: any,\r\n showResponseMessage: any\r\n) => {\r\n let response = res.data;\r\n if (response.Status == true) {\r\n if (showResponseMessage) {\r\n dispatchError(dispatch, response);\r\n }\r\n } else if (response.Status == undefined) {\r\n if (res.status == 200) {\r\n // resolve(response);\r\n } else {\r\n dispatchError(dispatch, \"Response status is not 200\");\r\n response = null;\r\n }\r\n } else {\r\n dispatchError(dispatch, response);\r\n response = null;\r\n }\r\n resolve(response);\r\n};\r\n\r\nconst onFailure = (err: any, dispatch: Function, resolve: any) => {\r\n dispatchError(dispatch, err.message);\r\n resolve(null);\r\n};\r\n","export enum RouteEnum {\r\n base = \"/\",\r\n login = \"/login\",\r\n viewArticle = \"/view-article\",\r\n comments = \"/comments\",\r\n\r\n adminSubmission = \"/admin/submission\",\r\n user = \"/admin/user\",\r\n\r\n forgotPassword = \"/reset-password\",\r\n resetPassword = \"/reset-password/send\",\r\n signup = \"/signup\",\r\n verifyEmailAddress = \"/email-verification\",\r\n\r\n submitter = \"/submitter\",\r\n submission = \"/submitter/submission\",\r\n revision = \"/submitter/revision\",\r\n revisionDetail = \"/submitter/revision-detail\",\r\n editor = \"/editor\",\r\n\r\n reviewer = \"/reviewer\",\r\n review = \"/reviewer/review\",\r\n}\r\n\r\nexport default RouteEnum;\r\n","import { post, api } from \"networkService\";\nimport { LoginInterface } from \"interfaces/actions/auth\";\nimport RoutesEnum from \"constants/routesEnum\";\nimport RoleEnum from \"constants/roleEnum\";\n\nconst saveToken = (res: any, dispatch: Function) => {\n if (res) {\n //Save to local Storage\n let AuthToken = \"bearer \" + res.Token;\n let expires_in = res.ExpireMinutes;\n let RefreshToken = res.RefreshToken;\n let IdleTimeoutMinutes = res.IdleTimeoutMinutes;\n //Set token to ls\n localStorage.setItem(\"Role\", res.Role);\n localStorage.setItem(\"AuthToken\", AuthToken);\n localStorage.setItem(\"UserName\", res.Username);\n localStorage.setItem(\"RefreshToken\", RefreshToken);\n localStorage.setItem(\"IdleTimeOut\", IdleTimeoutMinutes);\n localStorage.setItem(\"ExpiresMinutes\", expires_in);\n }\n};\nconst clearToken = () => {\n localStorage.setItem(\"Role\", \"\");\n localStorage.setItem(\"AuthToken\", null);\n localStorage.setItem(\"UserName\", null);\n localStorage.setItem(\"RefreshToken\", null);\n localStorage.setItem(\"IdleTimeOut\", null);\n localStorage.setItem(\"ExpiresMinutes\", null);\n};\nexport const login =\n (param: LoginInterface, history: any) => async (dispatch: Function) => {\n let result: any = await post(api.auth.siginIn, dispatch, param).catch(\n (ex) => {\n return false;\n }\n );\n if (result && result.Status) {\n saveToken(result.Data, dispatch);\n window.location.href = \"/\";\n }\n };\n\nexport const logout =\n (param: any, history: any) => async (dipatch: Function) => {\n //clearToken();\n localStorage.clear();\n window.location.href = RoutesEnum.login;\n };\n","import { post, put, get, deletion, api } from \"networkService\";\r\nimport types from \"store/types\";\r\n\r\nexport const GetLoggedInUserDetails = () => async (dispatch: Function) => {\r\n const res = await get(api.users.userDetails, dispatch);\r\n dispatch({ type: types.GET_LOGGEDIN_USER_DETAIL, payload: res });\r\n return res;\r\n};\r\n\r\nexport const GetUserList = (param) => async (dispatch: Function) => {\r\n const res: any = await post(api.users.list, dispatch, param, false);\r\n dispatch({ type: types.GET_USER_LIST, payload: res.Data });\r\n return res.Data;\r\n};\r\n\r\nexport const SaveUser = (param) => async (dispatch: Function) => {\r\n const act = param.Id ? put : post;\r\n const res: any = await act(api.users.users, dispatch, param);\r\n return res.Data;\r\n};\r\nexport const DeleteUser = (id) => async (dispatch: Function) => {\r\n const res: any = await deletion(`${api.users.users}`, dispatch, id);\r\n return res;\r\n};\r\n\r\nexport const ChangeUserStatus =\r\n ({ userId, isInactive }) =>\r\n async (dispatch: Function) => {\r\n const res: any = await get(\r\n `${api.users.status}/${userId}?isInactive=${isInactive}`,\r\n dispatch\r\n );\r\n return res.Data;\r\n };\r\n\r\nexport const changePasswordByUser =\r\n ({ userName, newPassword }) =>\r\n async (dispatch: Function) => {\r\n const res = await post(api.users.changePasswordByUser, dispatch, {\r\n userName,\r\n newPassword,\r\n });\r\n return res;\r\n };\r\n\r\nexport const changePassword =\r\n ({ currentPassword, newPassword, confirmNewPassword }) =>\r\n async (dispatch: Function) => {\r\n const res = await post(api.users.changePassword, dispatch, {\r\n currentPassword,\r\n confirmNewPassword,\r\n newPassword,\r\n });\r\n return res;\r\n };\r\n\r\nexport const signUp = (param) => async (dispatch: Function) => {\r\n const res = await post(api.users.signup, dispatch, param);\r\n return res;\r\n};\r\n\r\nexport const forgotPassword =\r\n ({ email }) =>\r\n async (dipatch: Function) => {\r\n const res = await post(api.users.forgotPassword, dipatch, { email });\r\n return res;\r\n };\r\n\r\nexport const resetPassword = (param) => async (dipatch: Function) => {\r\n const res = await post(api.users.resetPassword, dipatch, param);\r\n return res;\r\n};\r\n","import { post, get, api } from \"networkService\";\r\nimport types from \"store/types\";\r\n\r\nexport const GetTemplates = () => async (dispatch: Function) => {\r\n const res: any = await get(api.meta.templates, dispatch);\r\n dispatch({ type: types.GET_TEMPLATES, payload: res });\r\n};\r\n\r\nexport const GetCheckList = (sectionId: any) => async (dispatch: Function) => {\r\n const res: any = await get(`${api.meta.checkList}/${sectionId}`, dispatch);\r\n dispatch({ type: types.GET_CHECKLIST, payload: res });\r\n};\r\n\r\nexport const GetSection = () => async (dispatch: Function) => {\r\n const res: any = await get(api.meta.sections, dispatch);\r\n dispatch({ type: types.GET_SECTIONS, payload: res });\r\n};\r\n\r\nexport const GetSubSection = () => async (dispatch: Function) => {\r\n const res: any = await get(api.meta.subSections, dispatch);\r\n dispatch({ type: types.GET_SUBSECTIONS, payload: res });\r\n};\r\nexport const GetComponents = () => async (dispatch: Function) => {\r\n const res: any = await get(api.meta.components, dispatch);\r\n dispatch({ type: types.GET_COMPONENTS, payload: res });\r\n};\r\nexport const GetRecommendations = () => async (dispatch: Function) => {\r\n const res: any = await get(api.meta.recommendations, dispatch);\r\n dispatch({ type: types.GET_RECOMMENDATIONS, payload: res });\r\n};\r\n\r\nexport const GetSalutations = () => async (dispatch: Function) => {\r\n const res: any = await get(api.meta.salutations, dispatch);\r\n if (res && res.Status)\r\n dispatch({ type: types.GET_SALUTATIONS, payload: res.Data });\r\n};\r\n//recommendations\r\n","import React, { useRef, useState } from \"react\";\nimport { Form, Input, Button, Select, Dialog, Message } from \"element-react\";\nimport { changePassword } from \"store/actions/user\";\nimport { useDispatch } from \"react-redux\";\n\nconst ChangeUserPasswordDailog = (props) => {\n const { user, isVisible, setVisible } = props;\n const ref: any = useRef();\n const dispatch = useDispatch();\n\n const [state, setState] = useState({\n currentPassword: \"\",\n newPassword: \"\",\n confirmNewPassword: \"\",\n isLoading: false,\n });\n\n const rules = {\n newPassword: [\n {\n required: true,\n message: \"New password is required\",\n trigger: \"blur\",\n },\n ],\n };\n\n const handleChangePassword = async () => {\n ref.current.validate(async (valid) => {\n if (valid) {\n var res: any = await dispatch(\n changePassword({\n currentPassword: state.currentPassword,\n newPassword: state.newPassword,\n confirmNewPassword: state.confirmNewPassword,\n })\n );\n if (res && res.Status) reset();\n }\n });\n };\n\n const reset = () => {\n ref.current.resetFields();\n setState({\n newPassword: \"\",\n currentPassword: \"\",\n confirmNewPassword: \"\",\n isLoading: false,\n });\n setVisible(false);\n };\n return (\n <Dialog\n title=\"Change Password\"\n visible={isVisible}\n onCancel={() => reset()}\n style={{ width: \"350px\" }}\n >\n <Dialog.Body>\n <Form ref={ref} rules={rules}>\n <Form.Item>\n <Input\n name=\"currentPassword\"\n type=\"password\"\n value={state.currentPassword}\n placeholder=\"Old Pasword\"\n onChange={(val: any) =>\n setState({ ...state, currentPassword: val })\n }\n ></Input>\n </Form.Item>\n <Form.Item>\n <Input\n name=\"newPassword\"\n type=\"password\"\n value={state.newPassword}\n placeholder=\"New Pasword\"\n onChange={(val: any) => setState({ ...state, newPassword: val })}\n ></Input>\n </Form.Item>\n <Form.Item>\n <Input\n name=\"confirmNewPassword\"\n type=\"password\"\n value={state.confirmNewPassword}\n placeholder=\"New Pasword\"\n onChange={(val: any) =>\n setState({ ...state, confirmNewPassword: val })\n }\n ></Input>\n </Form.Item>\n <Form.Item>\n <Button\n onClick={() => handleChangePassword()}\n loading={state.isLoading}\n >\n Change Password\n </Button>\n </Form.Item>\n </Form>\n </Dialog.Body>\n </Dialog>\n );\n};\n\nexport default ChangeUserPasswordDailog;\n","import React, { useEffect } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { Notification } from \"element-react\";\nimport { clearMessage } from \"store/actions/validateAction\";\n\nconst Toast = (props) => {\n const { messages } = useSelector((state: any) => state.validateReducer);\n const dispatch = useDispatch();\n const timeout = 3000;\n\n const getType = (messageType) => {\n let type = messageType.toLowerCase();\n\n if (\n !(\n type === \"success \" ||\n type === \"warning\" ||\n type === \"info\" ||\n type === \"error\"\n )\n )\n type = \"info\";\n return type;\n };\n useEffect(() => {\n if (\n messages &&\n messages.message &&\n messages.message !== undefined &&\n messages.message.length > 0\n ) {\n if (Array.isArray(messages.message)) {\n messages.message.forEach((message: any) => {\n const type = getType(messages.type);\n\n Notification({\n message: message,\n type: type,\n duration: timeout,\n offset: 50,\n });\n\n setTimeout(() => {\n dispatch(clearMessage());\n }, timeout);\n });\n } else {\n let type = getType(messages.type);\n\n if (\n !(\n type === \"success \" ||\n type === \"warning\" ||\n type === \"info\" ||\n type === \"error\"\n )\n )\n type = \"info\";\n\n Notification({\n message: messages.message,\n type: type,\n duration: timeout,\n offset: 50,\n });\n\n setTimeout(() => {\n dispatch(clearMessage());\n }, timeout);\n }\n }\n }, [messages]);\n\n return <></>;\n};\nexport default Toast;\n","export const isEmpty = (value: any): boolean =>\r\n value === undefined ||\r\n value === null ||\r\n //value === {} ||\r\n value === \"\" ||\r\n value === \"null\" ||\r\n (typeof value === \"object\" && Object.keys(value).length === 0) ||\r\n (typeof value === \"string\" && value.trim().length === 0);\r\n\r\nexport default isEmpty;\r\n","export const validFileExtension = [\"txt\", \"csv\"];\n\nexport const validImageExtension = [\"png\", \"jpg\", \"jpeg\"];\n\nexport const validApplicationExtension = [\"pdf\", \"xml\"];\n\nexport const validUploadDocExtension = [\"png\", \"jpg\", \"jpeg\", \"pdf\", \"docx\"];\n","export enum ArticleStatusEnum {\r\n NEW = 1,\r\n SUBMITTED = 2,\r\n RESUBMITTED = 3,\r\n REVISION = 4,\r\n REJECTED = 5,\r\n APPROVED = 6,\r\n ASSIGNEDEDITOR = 7,\r\n // ASSIGNEDREVIEWER = 8,\r\n REVIEWING = 9,\r\n REVIEWED = 10,\r\n}\r\nexport default ArticleStatusEnum;\r\n","export enum RoleEnum {\n Public = \"Public\",\n Submitter = \"Submitter\",\n Administrator = \"Administrator\",\n Editor = \"Editor\",\n Reviewer = \"Reviewer\",\n}\nexport default RoleEnum;\n","import ArticleStatusEnum from \"constants/articleStatusEnum\";\r\nimport RoleEnum from \"constants/roleEnum\";\r\nimport React from \"react\";\r\nimport { toastMessage } from \"../store/actions/validateAction\";\r\nimport isEmpty from \"./isEmpty\";\r\n\r\nexport function getStatus(status) {\r\n switch (status) {\r\n case 1:\r\n return \"NEW\";\r\n case 2:\r\n return \"SUBMITTED\";\r\n case 3:\r\n return \"REVERTED\";\r\n case 4:\r\n return \"REJECTED\";\r\n case 5:\r\n return \"APPROVED\";\r\n case 6:\r\n return \"ASSIGNED EDITOR\";\r\n case 7:\r\n return \"ASSIGNED REVIEWER\";\r\n case 8:\r\n return \"REVEIW ACEEPTED\";\r\n case 9:\r\n return \"REVIEW REJECTED\";\r\n case 10:\r\n return \"REVIEW COMPLETED\";\r\n\r\n default:\r\n return \"NEW\";\r\n }\r\n}\r\n\r\nexport function renderStatus(article, role, status, recommendation = \"\") {\r\n let res: any = {};\r\n\r\n if (role === RoleEnum.Submitter)\r\n res = statusTextForSubmitter(status, recommendation);\r\n else if (role === RoleEnum.Reviewer)\r\n res = statusTextForReviewer(article, status, recommendation);\r\n else if (role === RoleEnum.Editor)\r\n res = statusTextForEditor(status, recommendation);\r\n else res = getStatusText(status, recommendation);\r\n\r\n return !isEmpty(res) ? (\r\n <div className={`article-card__status-block ${res.color}`}>\r\n <span>{res.text}</span>\r\n </div>\r\n ) : null;\r\n}\r\n\r\nconst getStatusText = (status, recommendation = \"\") => {\r\n if (status === ArticleStatusEnum.REVISION) {\r\n if (recommendation === \"Revision Required\")\r\n return { text: \"Revision required\", color: \"yellow\" };\r\n if (recommendation === \"Decline Submission\")\r\n return { text: \"Review declined\", color: \"red\" };\r\n if (recommendation === \"See Comments\")\r\n return { text: \"Request to see comments\", color: \"yellow\" };\r\n return { text: \"Revision required\", color: \"yellow\" };\r\n }\r\n\r\n if (\r\n status === ArticleStatusEnum.SUBMITTED ||\r\n status === ArticleStatusEnum.RESUBMITTED\r\n )\r\n return { text: \"Submission\", color: \"blue\" };\r\n\r\n if (status === ArticleStatusEnum.ASSIGNEDEDITOR)\r\n return { text: \"Need to assign reviewer\", color: \"yellow\" };\r\n\r\n if (status === ArticleStatusEnum.REVIEWING)\r\n return { text: \"Under review\", color: \"yellow\" };\r\n\r\n if (status === ArticleStatusEnum.REVIEWED) {\r\n if (recommendation === \"Accept Submission\")\r\n return { text: \"Submisson accepted\", color: \"green\" };\r\n if (recommendation === \"Revision Required\")\r\n return { text: \"Revision required\", color: \"yellow\" };\r\n if (recommendation === \"Decline Submission\")\r\n return { text: \"Review declined\", color: \"red\" };\r\n if (recommendation === \"See Comments\")\r\n return { text: \"Request to see comments\", color: \"yellow\" };\r\n return { text: \"Reviewd\", color: \"green\" };\r\n }\r\n};\r\nconst statusTextForSubmitter = (status, recommendation = \"\") => {\r\n if (status === ArticleStatusEnum.NEW)\r\n return { text: \"Need to submit\", color: \"blue\" };\r\n\r\n if (status === ArticleStatusEnum.REVISION) {\r\n if (recommendation === \"Revision Required\")\r\n return { text: \"Revision required\", color: \"yellow\" };\r\n if (recommendation === \"Decline Submission\")\r\n return { text: \"Review declined\", color: \"red\" };\r\n if (recommendation === \"See Comments\")\r\n return { text: \"Request to see comments\", color: \"\" };\r\n return { text: \"Revision required\", color: \"yellow\" };\r\n }\r\n if (status === ArticleStatusEnum.APPROVED)\r\n return { text: \"Approved\", color: \"green\" };\r\n\r\n if (status === ArticleStatusEnum.REJECTED)\r\n return { text: \"Declined\", color: \"red\" };\r\n\r\n return { text: \"Under review\", color: \"yellow\" };\r\n};\r\n\r\nconst statusTextForEditor = (status, recommendation = \"\") => {\r\n if (status === ArticleStatusEnum.ASSIGNEDEDITOR)\r\n return {\r\n text: \"Submission\",\r\n color: \"blue\",\r\n };\r\n\r\n if (status === ArticleStatusEnum.REVIEWING)\r\n return {\r\n text: \"Under review\",\r\n color: \"yellow\",\r\n };\r\n\r\n if (status === ArticleStatusEnum.REVISION)\r\n return {\r\n text: \"Revision required\",\r\n color: \"green\",\r\n };\r\n\r\n if (status === ArticleStatusEnum.REVIEWED) {\r\n if (recommendation === \"Accept Submission\")\r\n return { text: \"Submisson accepted\", color: \"green\" };\r\n if (recommendation === \"Revision Required\")\r\n return { text: \"Revision required\", color: \"yellow\" };\r\n if (recommendation === \"Decline Submission\")\r\n return { text: \"Review declined\", color: \"red\" };\r\n if (recommendation === \"See Comments\")\r\n return { text: \"Request to see comments\", color: \"yellow\" };\r\n return { text: \"Reviewed\", color: \"green\" };\r\n }\r\n if (status === ArticleStatusEnum.APPROVED)\r\n return { text: \"Approved\", color: \"green\" };\r\n\r\n if (status === ArticleStatusEnum.REJECTED)\r\n return { text: \"Declined\", color: \"red\" };\r\n};\r\n\r\nconst statusTextForReviewer = (article, status, recommendation = \"\") => {\r\n // if (status === ArticleStatusEnum.REVIEWING)\r\n // return {\r\n // text: \"Under review\",\r\n // color: \"yellow\",\r\n // };\r\n\r\n const { ReviewStatus } = article;\r\n if (status === ArticleStatusEnum.REVIEWING) {\r\n if (ReviewStatus === 0) {\r\n return { text: \"New\", color: \"blue\" };\r\n }\r\n if (ReviewStatus === 2 || ReviewStatus === 1) {\r\n return { text: \"Under review\", color: \"yellow\" };\r\n }\r\n if (ReviewStatus === 4) {\r\n return { text: \"Review declined\", color: \"red\" };\r\n }\r\n\r\n if (recommendation === \"Accept Submission\")\r\n return { text: \"Submisson accepted\", color: \"green\" };\r\n if (recommendation === \"Revision Required\")\r\n return { text: \"Revision required\", color: \"yellow\" };\r\n if (recommendation === \"Decline Submission\")\r\n return { text: \"Review declined\", color: \"red\" };\r\n if (recommendation === \"See Comments\")\r\n return { text: \"Request to see comments\", color: \"yellow\" };\r\n return { text: \"Reviewed\", color: \"green\" };\r\n }\r\n};\r\n","import isEmpty from \"./isEmpty\";\r\n\r\nexport function createMarkup(html) {\r\n return { __html: html };\r\n}\r\nexport const validateFile = (file, validExtensions) => {\r\n let extensions = validExtensions || [];\r\n\r\n if (extensions.find(x => x === \"*\"))\r\n return true\r\n if (extensions.length === 0) return true;\r\n var regex = new RegExp(extensions.join(\"|\"), \"g\");\r\n // file && file.toLowerCase().match(/.(jpg|jpeg|png)$/i)\r\n var validateExt = (file && file.name.toLowerCase().match(regex)) || [];\r\n return validateExt.length > 0;\r\n};\r\n\r\nexport const containsInvalidFiles = (files, validExtensions) => {\r\n let extensions = validExtensions || [];\r\n if (extensions.length === 0) return true;\r\n var regex = new RegExp(extensions.join(\"|\"), \"g\");\r\n // file && file.toLowerCase().match(/.(jpg|jpeg|png)$/i)\r\n var invalideFiles = files.filter((x) => {\r\n var ls = x.name.toLowerCase().match(regex) || [];\r\n return ls.length <= 0;\r\n });\r\n // (file && file.name.toLowerCase().match(regex)) || [];\r\n return invalideFiles.length > 0;\r\n};\r\nexport const getRequiredRules = (message, type = \"string\") => ({\r\n required: true,\r\n message: message,\r\n trigger: \"blur\",\r\n type: type,\r\n});\r\nexport const emailRule = () => ({\r\n type: \"email\",\r\n message: \"Please input correct email address\",\r\n trigger: \"blur,change\",\r\n});\r\n\r\nexport const mobileRules = () => {\r\n // let reg = new Regex(/^[0-9]{10}$/);\r\n return {\r\n validator: (rule, value, callback) => {\r\n if (isEmpty(value)) callback();\r\n let isvalid = value && value.match(/^[0-9]{10}$/i);\r\n if (!isvalid) callback(new Error(\"Valid mobile number is required\"));\r\n else callback();\r\n },\r\n trigger: \"blur,change\",\r\n };\r\n};\r\n\r\nexport const emptyRules = (message) => {\r\n return {\r\n validator: (rule, value, callback) => {\r\n if (isEmpty(value)) {\r\n callback(new Error(message));\r\n } else {\r\n callback();\r\n }\r\n },\r\n };\r\n};\r\n","import React, { useEffect, useState } from 'react'\r\nimport { useDispatch, useSelector, useStore } from 'react-redux'\r\nimport { Dropdown } from 'element-react'\r\nimport logo from '../../assets/logo.png'\r\nimport { useHistory } from 'react-router'\r\nimport { logout } from 'store/actions/auth'\r\nimport { GetLoggedInUserDetails, changePassword } from 'store/actions/user'\r\nimport {\r\n GetSection,\r\n GetTemplates,\r\n GetComponents,\r\n GetRecommendations,\r\n GetSubSection,\r\n GetSalutations,\r\n} from 'store/actions/meta'\r\nimport { GetRoles } from 'store/actions/common'\r\nimport { UserDetailInterface } from 'interfaces/actions/auth'\r\nimport ChangePasswordDialog from './changePassword'\r\nimport { Link } from 'react-router-dom'\r\nimport RouteEnum from 'constants/routesEnum'\r\nimport Toast from 'components/toast'\r\nimport { isEmpty } from 'helpers'\r\n\r\nexport default function Header(props: any) {\r\n const history = useHistory()\r\n let authToken = localStorage.getItem('AuthToken')\r\n const dispatch = useDispatch()\r\n const [isChangePasswordVisible, setChangePasswordVisible] = useState(false)\r\n const [isAuth, setAuth] = useState(false)\r\n const { Email, FullName, UserName, RoleName } = useSelector(\r\n (state: any) => state.userReducer.loggedInUserDetail as UserDetailInterface,\r\n )\r\n var fileName: string = RoleName\r\n\r\n useEffect(() => {\r\n if (authToken) {\r\n loadData()\r\n } else {\r\n setAuth(false)\r\n }\r\n //userManual(RoleName)\r\n }, [authToken])\r\n\r\n const loadData = async () => {\r\n var res: any = await dispatch(GetLoggedInUserDetails())\r\n if (isEmpty(res.UserName)) {\r\n handleLogout()\r\n return\r\n }\r\n dispatch(GetSection())\r\n dispatch(GetSubSection())\r\n dispatch(GetTemplates())\r\n dispatch(GetComponents())\r\n dispatch(GetRecommendations())\r\n dispatch(GetSalutations())\r\n setAuth(true)\r\n }\r\n\r\n const handleCommand = (command) => {\r\n if (command === 'logout') {\r\n handleLogout()\r\n } else if (command === 'changePassword') {\r\n setChangePasswordVisible(true)\r\n } else if (command === 'download') {\r\n // userManual(RoleName);\r\n }\r\n }\r\n\r\n const handleLogout = () => {\r\n dispatch(logout({}, history))\r\n }\r\n const updatePassword = () => {}\r\n\r\n // const userManual = (role: string) => {\r\n // if (role === \"Submitter\") {\r\n // fileName = \"Submitter.docx\";\r\n // download(fileName);\r\n // } else if (role === \"Editor\") {\r\n // fileName = \"Editor.docx\";\r\n // download(fileName);\r\n // } else if (role === \"Reviewer\") {\r\n // fileName = \"Reviewer.docx\";\r\n // download(fileName);\r\n // } else {\r\n // fileName = \"Admin.docx\";\r\n // download(fileName);\r\n // }\r\n // };\r\n\r\n // const download = (fileName: string) => {\r\n // <a href={`/${fileName}`} download />;\r\n // };\r\n return (\r\n <>\r\n <Toast />\r\n <div className=\"app-header \">\r\n <div className=\"app-header-logo institute-name \">\r\n <img src={logo} />\r\n <h2 className=\"\">\r\n <Link to={RouteEnum.base}>\r\n B&B Institutional Review Committee - B&B IRC/Journal Portal\r\n </Link>{' '}\r\n </h2>\r\n </div>\r\n {isAuth && (\r\n <div className=\"app-header-drop\">\r\n <Dropdown\r\n onCommand={handleCommand}\r\n menu={\r\n <Dropdown.Menu>\r\n <Dropdown.Item command=\"changePassword\">\r\n Change Password\r\n </Dropdown.Item>\r\n <Dropdown.Item command=\"logout\"> Log out</Dropdown.Item>\r\n {/* <Dropdown.Item command=\"download\">\r\n Download {RoleName} Manual\r\n </Dropdown.Item> */}\r\n <Dropdown.Item>\r\n <a href={`/${fileName}.docx`} download>\r\n {`Download ${RoleName} Guide`}\r\n </a>\r\n </Dropdown.Item>\r\n </Dropdown.Menu>\r\n }\r\n >\r\n <div className=\"el-dropdown-link drop-title\">\r\n <div className=\"drop-title-info\">\r\n <span className=\"drop-title-info-title\">\r\n Welcome {FullName}\r\n </span>\r\n <span className=\"drop-title-info-subtitle\">\r\n logged in as {RoleName}\r\n </span>\r\n </div>\r\n <i className=\"el-icon-caret-bottom el-icon--right\"></i>\r\n </div>\r\n </Dropdown>\r\n\r\n <ChangePasswordDialog\r\n isVisible={isChangePasswordVisible}\r\n setVisible={setChangePasswordVisible}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n </>\r\n )\r\n}\r\n","import React from \"react\";\r\nimport { Menu, Layout as ELayout } from \"element-react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport RouteEnum from \"constants/routesEnum\";\r\n\r\nconst AdminSideBar = (props) => {\r\n const onOpen = () => {};\r\n const onClose = () => {};\r\n\r\n return (\r\n <div className=\"admin-side-bar\">\r\n <Menu\r\n defaultActive=\"2\"\r\n className=\"el-menu-vertical-demo\"\r\n onOpen={onOpen}\r\n onClose={onClose}\r\n >\r\n <Menu.SubMenu\r\n index=\"1\"\r\n title={\r\n <span>\r\n <i className=\"el-icon-caret-right\"></i>User Module\r\n </span>\r\n }\r\n >\r\n <Menu.Item index=\"1-1\">\r\n <Link to={RouteEnum.user}> User List</Link>\r\n </Menu.Item>\r\n </Menu.SubMenu>\r\n <Menu.Item index=\"2\">\r\n <i className=\"el-icon-menu\"></i>{\" \"}\r\n <Link to={RouteEnum.adminSubmission}> Submission</Link>\r\n </Menu.Item>\r\n </Menu>\r\n </div>\r\n );\r\n};\r\n\r\nexport default AdminSideBar;\r\n","//@ts-nocheck\r\nimport React from \"react\";\r\nimport { Menu, Layout as ELayout } from \"element-react\";\r\nimport AdminSideBar from \"./adminSideBar\";\r\nconst AdminLayout = (props) => {\r\n return (\r\n <ELayout.Row className=\"admin-layout\">\r\n <ELayout.Col span={4}>\r\n <AdminSideBar {...props} />\r\n </ELayout.Col>\r\n <ELayout.Col span={20}>\r\n <div className=\"admin-container\">{props.children}</div>\r\n </ELayout.Col>\r\n </ELayout.Row>\r\n );\r\n};\r\n\r\nexport default AdminLayout;\r\n","import React, { useEffect, useState } from \"react\";\nimport { Redirect, Route, useHistory } from \"react-router\";\n\nimport Header from \"./header\";\nimport Login from \"../../scenes/auth/login\";\nimport routes from \"constants/routesEnum\";\nimport { Menu, Layout as ELayout } from \"element-react\";\nimport RoleEnum from \"constants/roleEnum\";\nimport AdminLayout from \"./AdminLayout\";\n\nexport default function Layout(props: any) {\n let authToken = localStorage.getItem(\"AuthToken\");\n const [state, setState] = useState(authToken);\n let history = useHistory();\n let role = localStorage.getItem(\"Role\");\n // useEffect(() => {\n // }, [authToken]);\n if (!authToken || authToken === \"null\") {\n // history.push(routes.login);\n }\n return (\n <>\n <Header />\n {role === RoleEnum.Administrator ? (\n <AdminLayout {...props} />\n ) : (\n <div className=\"app-container\">{props.children}</div>\n )}\n </>\n );\n}\n","import React, { useRef, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { Link, NavLink, useHistory } from \"react-router-dom\";\r\n\r\nimport { Form, Input, Button, Select } from \"element-react\";\r\nimport { login } from \"store/actions/auth\";\r\nimport Routes from \"constants/routesEnum\";\r\n\r\nconst Login = () => {\r\n const [state, setState] = useState({\r\n username: \"\",\r\n password: \"\",\r\n // username: \"admin@admin.com\",\r\n // password: \"Admin@123\",\r\n role: \"\",\r\n });\r\n const rules = {\r\n username: [\r\n {\r\n required: true,\r\n message: \"Please input user name\",\r\n trigger: \"blur\",\r\n },\r\n ],\r\n password: [\r\n {\r\n required: true,\r\n message: \"Please input password\",\r\n trigger: \"blur\",\r\n },\r\n ],\r\n role: [\r\n {\r\n required: true,\r\n message: \"Please input user role\",\r\n trigger: \"blur\",\r\n },\r\n ],\r\n };\r\n const { roles } = useSelector((state: any) => state.commonReducer);\r\n var formRef: any = useRef();\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const onChange = (key: any, value: any) => {\r\n setState({ ...state, [key]: value });\r\n };\r\n const handleLoginClick = async (e: any) => {\r\n e.preventDefault();\r\n\r\n formRef.current.validate(async (valid) => {\r\n if (valid) {\r\n await dispatch(login(state, history));\r\n } else {\r\n return false;\r\n }\r\n });\r\n };\r\n return (\r\n <div className=\"container\">\r\n <div className=\"login-form\">\r\n <div className=\"left-side\">\r\n <div className=\"left-header\">\r\n <h1>Welcome, </h1>\r\n <div className=\"left-detail-section\">\r\n <h2>B&B IRC </h2>\r\n <i>\r\n <h3>\"Research on medical science by B&B</h3>\r\n </i>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"right-side\">\r\n <Form\r\n ref={formRef}\r\n rules={rules}\r\n className=\"demo-form-stacked\"\r\n model={state}\r\n labelPosition=\"top\"\r\n labelWidth=\"100\"\r\n >\r\n <Form.Item label=\"Email\" prop=\"username\">\r\n <Input\r\n placeholder=\"Email\"\r\n value={state.username}\r\n onChange={(val: any) => onChange(\"username\", val)}\r\n ></Input>\r\n </Form.Item>\r\n <Form.Item label=\"Password\" prop=\"password\">\r\n <Input\r\n placeholder=\"Password\"\r\n type=\"password\"\r\n value={state.password}\r\n onChange={(val: any) => onChange(\"password\", val)}\r\n ></Input>\r\n </Form.Item>\r\n <Form.Item label=\"Log in as\" prop=\"role\">\r\n <Select\r\n value={state.role}\r\n placeholder=\"Role\"\r\n onChange={(val: any) => onChange(\"role\", val)}\r\n >\r\n {roles &&\r\n roles.map((role, index) => (\r\n <Select.Option\r\n key={index}\r\n label={role.Name}\r\n value={role.Name}\r\n ></Select.Option>\r\n ))}\r\n </Select>\r\n </Form.Item>\r\n <Form.Item>\r\n <Button\r\n type=\"primary\"\r\n onClick={handleLoginClick}\r\n nativeType=\"submit\"\r\n >\r\n Login\r\n </Button>\r\n </Form.Item>\r\n </Form>\r\n <div className=\"login-form__forgot\">\r\n <span className=\"forgot-link\">\r\n <Link to={Routes.resetPassword}>Forgot Password?</Link>\r\n </span>\r\n <span className=\"forgot-link\">\r\n <Link to={Routes.signup}>Sign up</Link>\r\n </span>\r\n </div>\r\n </div>\r\n <div></div>\r\n </div>\r\n </div>\r\n );\r\n};\r\nexport default Login;\r\n","var _linearGradient, _linearGradient2, _linearGradient3, _linearGradient4, _linearGradient5, _linearGradient6, _g;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgDocument(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n height: 512,\n viewBox: \"0 0 64 64\",\n width: 512,\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _linearGradient || (_linearGradient = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 34.5,\n x2: 34.5,\n y1: -31.987,\n y2: -29.421\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#f3f7ff\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.99,\n stopColor: \"#b5d1ff\"\n }))), _linearGradient2 || (_linearGradient2 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-2\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 10.396,\n x2: 10.396,\n y1: 30.449,\n y2: 119.699\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#048ac4\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#35489b\"\n }))), _linearGradient3 || (_linearGradient3 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-3\",\n x1: 33.5,\n x2: 33.5,\n xlinkHref: \"#linear-gradient\",\n y1: -5.429,\n y2: 153.977\n })), _linearGradient4 || (_linearGradient4 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-4\",\n x1: 50.538,\n x2: 50.538,\n xlinkHref: \"#linear-gradient\",\n y1: -23.429,\n y2: -3.999\n })), _linearGradient5 || (_linearGradient5 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-5\",\n x1: 27.396,\n x2: 27.396,\n xlinkHref: \"#linear-gradient-2\",\n y1: 32.518,\n y2: 84.952\n })), _linearGradient6 || (_linearGradient6 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-6\",\n x1: 9,\n x2: 9,\n xlinkHref: \"#linear-gradient-2\",\n y1: 16.321,\n y2: 43.66\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Document\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m56 64h-43a1 1 0 0 1 -1-1v-62a1 1 0 0 1 1-1h32.662a1 1 0 0 1 .707.293l10.338 10.338a1 1 0 0 1 .293.707v51.662a1 1 0 0 1 -1 1z\",\n fill: \"url(#linear-gradient)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m7 32.946 4-1.767 2.792 4.285h-6.792z\",\n fill: \"url(#linear-gradient-2)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m55 64h-43a1 1 0 0 1 -1-1v-62a1 1 0 0 1 1-1h33.076l10.924 10.924v52.076a1 1 0 0 1 -1 1z\",\n fill: \"url(#linear-gradient-3)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m45.076 0v9.924a1 1 0 0 0 1 1h9.924l-4.9-5.9z\",\n fill: \"url(#linear-gradient-4)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m46.022 52.5h-37.252a1.769 1.769 0 0 1 -1.77-1.77v-16.016h39.022a1.771 1.771 0 0 1 1.77 1.77v14.246a1.77 1.77 0 0 1 -1.77 1.77z\",\n fill: \"url(#linear-gradient-5)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m11 31.179h-2.232a1.767 1.767 0 0 0 -1.768 1.767 1.767 1.767 0 0 0 1.768 1.768h2.232z\",\n fill: \"url(#linear-gradient-6)\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#fff\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m14.408 40.18a.868.868 0 0 1 .868-.868 19.487 19.487 0 0 1 3.937.164 3.24 3.24 0 0 1 2.115 2.183 6.323 6.323 0 0 1 .281 2.03 5.664 5.664 0 0 1 -.263 1.828 3.132 3.132 0 0 1 -2.139 2.2 20.9 20.9 0 0 1 -3.931.182.868.868 0 0 1 -.868-.868zm1.735 1.128v4.6c0 .774 1.023.491 1.295.542a4.764 4.764 0 0 0 1.048-.082 1.483 1.483 0 0 0 1.155-1.187 5.614 5.614 0 0 0 .175-1.573 5.138 5.138 0 0 0 -.175-1.529 1.665 1.665 0 0 0 -1.295-1.237 11.548 11.548 0 0 0 -1.661-.082.542.542 0 0 0 -.542.548z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m22.729 43.66a4.514 4.514 0 0 1 1.192-3.381 3.843 3.843 0 0 1 2.962-1.113 4.034 4.034 0 0 1 3.038 1.177 4.515 4.515 0 0 1 1.14 3.276 4.5 4.5 0 0 1 -1.131 3.255 4 4 0 0 1 -3.024 1.175 4.045 4.045 0 0 1 -3.047-1.169 4.437 4.437 0 0 1 -1.13-3.22zm1.787-.059a3.219 3.219 0 0 0 .673 2.212 2.318 2.318 0 0 0 3.414.006 3.284 3.284 0 0 0 .665-2.241 3.226 3.226 0 0 0 -.648-2.2 2.4 2.4 0 0 0 -3.448.009 3.241 3.241 0 0 0 -.656 2.213z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m38.718 45a.871.871 0 0 1 .518 1.217 3.255 3.255 0 0 1 -.93 1.149 4.046 4.046 0 0 1 -5.095-.486 4.477 4.477 0 0 1 -1.1-3.2 4.7 4.7 0 0 1 1.108-3.331 3.8 3.8 0 0 1 2.912-1.186 3.571 3.571 0 0 1 2.56.931 2.619 2.619 0 0 1 .422.518.868.868 0 0 1 -.538 1.3.856.856 0 0 1 -.941-.4 1.709 1.709 0 0 0 -.416-.484 1.821 1.821 0 0 0 -1.175-.387 1.956 1.956 0 0 0 -1.55.686 3.362 3.362 0 0 0 -.595 2.22 3.609 3.609 0 0 0 .586 2.321 1.9 1.9 0 0 0 1.524.691 1.735 1.735 0 0 0 1.189-.439 1.974 1.974 0 0 0 .472-.656.873.873 0 0 1 1.049-.464z\"\n })))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDocument);\nexport default __webpack_public_path__ + \"static/media/document.0334939e.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useState } from \"react\";\nimport { Form, Input, Button, Select, Checkbox } from \"element-react\";\n\nconst CheckList = (props) => {\n const { list, onChange, value } = props;\n\n const handleCheckBoxChange = (item, isChecked) => {\n let newState = [...value];\n var index = newState.findIndex((x) => x.Id === item.Id);\n if (isChecked) {\n newState.push(item);\n } else if (index > -1) {\n newState.splice(index);\n }\n onChange(newState);\n };\n const containsItems = (item) => {\n var len = value.filter((x) => x.Id === item.Id).length;\n return len > 0;\n };\n return (\n <div className=\"ctrl-check-list\">\n {list &&\n list.map((item, index) => (\n <div key={index}>\n <Checkbox\n key={index}\n label={item.Name}\n checked={containsItems(item)}\n onChange={(e) => handleCheckBoxChange(item, e)}\n ></Checkbox>\n </div>\n ))}\n </div>\n );\n};\n\nexport default CheckList;\n","var _linearGradient, _linearGradient2, _linearGradient3, _linearGradient4, _linearGradient5, _linearGradient6, _g;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgPdf(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n height: 512,\n viewBox: \"0 0 64 64\",\n width: 512,\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _linearGradient || (_linearGradient = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 34.5,\n x2: 34.5,\n y1: -31.987,\n y2: -29.421\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#f3f7ff\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.99,\n stopColor: \"#b5d1ff\"\n }))), _linearGradient2 || (_linearGradient2 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-2\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 10.396,\n x2: 10.396,\n y1: 30.449,\n y2: 119.699\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#ff5252\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#d50000\"\n }))), _linearGradient3 || (_linearGradient3 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-3\",\n x1: 33.5,\n x2: 33.5,\n xlinkHref: \"#linear-gradient\",\n y1: -5.429,\n y2: 153.977\n })), _linearGradient4 || (_linearGradient4 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-4\",\n x1: 50.538,\n x2: 50.538,\n xlinkHref: \"#linear-gradient\",\n y1: -23.429,\n y2: -3.999\n })), _linearGradient5 || (_linearGradient5 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-5\",\n x1: 27.396,\n x2: 27.396,\n xlinkHref: \"#linear-gradient-2\",\n y1: 32.518,\n y2: 84.952\n })), _linearGradient6 || (_linearGradient6 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-6\",\n x1: 9,\n x2: 9,\n xlinkHref: \"#linear-gradient-2\",\n y1: 16.321,\n y2: 43.66\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"PDF\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m56 64h-43a1 1 0 0 1 -1-1v-62a1 1 0 0 1 1-1h32.662a1 1 0 0 1 .707.293l10.338 10.338a1 1 0 0 1 .293.707v51.662a1 1 0 0 1 -1 1z\",\n fill: \"url(#linear-gradient)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m7 32.946 4-1.767 2.792 4.285h-6.792z\",\n fill: \"url(#linear-gradient-2)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m55 64h-43a1 1 0 0 1 -1-1v-62a1 1 0 0 1 1-1h33.076l10.924 10.924v52.076a1 1 0 0 1 -1 1z\",\n fill: \"url(#linear-gradient-3)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m45.076 0v9.924a1 1 0 0 0 1 1h9.924l-4.9-5.9z\",\n fill: \"url(#linear-gradient-4)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m46.022 52.5h-37.252a1.769 1.769 0 0 1 -1.77-1.77v-16.016h39.022a1.771 1.771 0 0 1 1.77 1.77v14.246a1.77 1.77 0 0 1 -1.77 1.77z\",\n fill: \"url(#linear-gradient-5)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m11 31.179h-2.232a1.767 1.767 0 0 0 -1.768 1.767 1.767 1.767 0 0 0 1.768 1.768h2.232z\",\n fill: \"url(#linear-gradient-6)\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#fff\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m15 47.035v-6.854a.868.868 0 0 1 .868-.869 28.119 28.119 0 0 1 3.977.129 2.416 2.416 0 0 1 1.735 2.514 2.482 2.482 0 0 1 -1.916 2.584 18.245 18.245 0 0 1 -2.651.123.279.279 0 0 0 -.279.279v2.094a.867.867 0 0 1 -.867.867.867.867 0 0 1 -.867-.867zm1.734-5.99v1.879a.279.279 0 0 0 .279.279 7.605 7.605 0 0 0 2.041-.135 1.172 1.172 0 0 0 -.234-2.244 16.962 16.962 0 0 0 -1.807-.059.279.279 0 0 0 -.278.28z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m23 40.181a.868.868 0 0 1 .868-.869 19.481 19.481 0 0 1 3.936.164 3.241 3.241 0 0 1 2.116 2.183 6.351 6.351 0 0 1 .281 2.03 5.635 5.635 0 0 1 -.264 1.828 3.132 3.132 0 0 1 -2.139 2.2 20.884 20.884 0 0 1 -3.93.182.868.868 0 0 1 -.868-.865zm1.734.864v5.131a.279.279 0 0 0 .279.279 10.917 10.917 0 0 0 2.065-.082 1.483 1.483 0 0 0 1.154-1.187 5.609 5.609 0 0 0 .176-1.573 5.133 5.133 0 0 0 -.176-1.529 1.664 1.664 0 0 0 -1.3-1.237 14.379 14.379 0 0 0 -1.924-.082.279.279 0 0 0 -.275.28z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m31.682 47.035v-6.854a.869.869 0 0 1 .869-.869h4.293a.727.727 0 0 1 .727.727.726.726 0 0 1 -.727.726h-3.144a.279.279 0 0 0 -.279.28v1.474a.279.279 0 0 0 .279.28h2.58a.727.727 0 0 1 .727.726.728.728 0 0 1 -.727.727h-2.58a.279.279 0 0 0 -.279.279v2.5a.868.868 0 0 1 -.868.867.867.867 0 0 1 -.871-.863z\"\n })))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgPdf);\nexport default __webpack_public_path__ + \"static/media/pdf.d1a89179.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\r\nimport { ReactComponent as Document } from \"assets/document.svg\";\r\nimport { ReactComponent as PDF } from \"assets/pdf.svg\";\r\n\r\nfunction getIconComponent(name) {\r\n switch (name) {\r\n case \"document\":\r\n return Document;\r\n case \"pdf\":\r\n return PDF;\r\n\r\n default:\r\n return null;\r\n }\r\n}\r\n\r\ninterface Icons {\r\n name: \"document\" | \"pdf\";\r\n size?: number | string;\r\n height?: number | string;\r\n color?: string;\r\n className?: string;\r\n styles?: object;\r\n}\r\n\r\nconst SvgIcons = ({ size, color, name, height = null }: Icons) => {\r\n let SvgIcon = getIconComponent(name);\r\n return <SvgIcon width={size} height={size || height} fill={color} />;\r\n};\r\n\r\nSvgIcons.defaultProps = {\r\n size: \"25px\",\r\n color: \"#3a3a3a\",\r\n};\r\n\r\nexport default SvgIcons;\r\n","export enum Constant {\r\n Uploads = \"Uploads\",\r\n}\r\nexport default Constant;\r\n","const checkFileExtension = (file) => {\r\n let isImage = file && file.toLowerCase().match(/.(jpg|jpeg|png)$/i) !== null;\r\n let isPdf = file && file.toLowerCase().match(/.(pdf)$/i) !== null;\r\n let isXls = file && file.toLowerCase().match(/.(xls|xlsx)$/i) !== null;\r\n let isDocs = file && file.toLowerCase().match(/.(doc|docx)$/i) !== null;\r\n let index = file && file.indexOf(\".\");\r\n let ext = file && file.substring(index + 1, file.length);\r\n\r\n return {\r\n isImage,\r\n isPdf,\r\n isDocs,\r\n isXls,\r\n ext,\r\n };\r\n};\r\n\r\nexport default checkFileExtension;\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\nimport ReactDOM, { createPortal } from \"react-dom\";\r\nimport useOutsideClick from \"hooks/useOutsideClick\";\r\nimport configureStore from \"store/configureStore\";\r\nimport { Provider } from \"react-redux\";\r\nimport \"./style.scss\";\r\nconst store = configureStore({});\r\n\r\ninterface IProps {\r\n open: boolean;\r\n onClose: Function;\r\n children: any;\r\n title?: any;\r\n}\r\n\r\nconst Dialog = (props: IProps) => {\r\n const { open } = props;\r\n const [state, setState] = useState({\r\n visibility: \"visible\",\r\n });\r\n useEffect(() => {\r\n setState({ ...state, visibility: open ? \"visible\" : \"hidden\" });\r\n }, [open]);\r\n\r\n const handleClick = () => {\r\n props.onClose && props.onClose();\r\n };\r\n const render = () => {\r\n const style: any = { ...state };\r\n style.visibility = open ? \"visible\" : \"hidden\";\r\n\r\n return createPortal(\r\n <div className=\"irc-dialog\" style={style}>\r\n <div className=\"irc-dialog-container\">\r\n <div className=\"irc-dialog-header\">\r\n <span>{props?.title}</span>\r\n <span className=\"irc-dialog-header-closable\" onClick={handleClick}>\r\n X\r\n </span>\r\n </div>\r\n <div className=\"irc-dialog-body\">{props.children}</div>\r\n </div>\r\n </div>,\r\n document.body\r\n );\r\n };\r\n return render();\r\n};\r\nDialog.defaultProps = {\r\n containerClassName: \"irc-dialog\",\r\n // height: 360,\r\n // width: 300,\r\n};\r\nexport default Dialog;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport \"./styles.scss\";\r\n\r\nimport { FiDownload } from \"react-icons/fi\";\r\nimport InnerImageZoom from \"react-inner-image-zoom\";\r\n\r\n// import \"react-inner-image-zoom/lib/InnerImageZoom/styles.min.css\";\r\nimport \"react-inner-image-zoom/lib/InnerImageZoom/styles.css\";\r\nimport Dialog from \"components/popup/dialog\";\r\nfunction ImageViewer(props) {\r\n const { image, dowloadLinkUrl, title, show, hostedUrl, onClose } = props;\r\n\r\n let imageSrc = image ? `${hostedUrl}/${image.serverFileName || \"\"}` : \"\";\r\n\r\n return (\r\n show && (\r\n <Dialog onClose={onClose} open={show}>\r\n {image && (\r\n <div className=\"image-modal__container\">\r\n <span\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n window.open(dowloadLinkUrl);\r\n }}\r\n className=\"image-modal__download\"\r\n >\r\n <FiDownload />\r\n </span>\r\n <InnerImageZoom src={imageSrc} zoomSrc={imageSrc} zoomScale={1.5} />\r\n </div>\r\n )}\r\n </Dialog>\r\n\r\n // <Modal\r\n // open={props.show}\r\n // title={props.title || \"\"}\r\n // onModalClose={() => props.onClose(false)}\r\n // hideFooter={true}\r\n // className=\"uploads-modal image-modal\"\r\n // // width=\"800px\"\r\n // >\r\n\r\n // </Modal>\r\n )\r\n );\r\n}\r\n\r\nexport default ImageViewer;\r\n","import React, { useEffect, useState, useRef } from 'react'\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport { CgAttachment, CgFile } from 'react-icons/cg'\r\nimport SvgIcons from 'components/icons/svgIcons'\r\nimport { FaTimes } from 'react-icons/fa'\r\nimport classnames from 'classnames'\r\nimport Constant from 'constants/index'\r\nimport checkFileExtension from 'helpers/checkFileExtension'\r\nimport { api } from 'networkService/api'\r\nimport ImageViewer from 'components/imageViewer'\r\nimport { isEmpty, validateFile } from 'helpers'\r\n\r\nconst AttachmentButton = (props) => {\r\n const fileRef: any = useRef()\r\n\r\n const {\r\n enableUpload,\r\n name,\r\n disabled,\r\n multiple,\r\n maxFiles,\r\n value,\r\n onChange,\r\n label,\r\n isPreview,\r\n validExtensions,\r\n } = props\r\n const [preview, setPreview] = useState(false)\r\n const [error, setError] = useState(false)\r\n useEffect(() => {\r\n if (isEmpty(value)) {\r\n fileRef.current.value = ''\r\n }\r\n }, [value])\r\n\r\n const handleChange = (event) => {\r\n const { files } = event.target\r\n setError(false)\r\n const file = (files && files[0]) || null\r\n\r\n if (!validateFile(file, validExtensions)) {\r\n fileRef.current.value = ''\r\n setError(true)\r\n\r\n onChange && onChange(name, null)\r\n } else onChange && onChange(name, file)\r\n }\r\n const openFileOption = () => {\r\n if (isPreview) return\r\n fileRef.current.click()\r\n }\r\n const getDownloadLink = (file) => {\r\n const param = {\r\n serverFileName: file.serverFileName,\r\n name: file.name,\r\n FileType: file.FileType,\r\n }\r\n let url = `v1/${api.common.downloadFiles}/${\r\n file.serverFileName || file.ServerFileName\r\n }`\r\n return url\r\n }\r\n const getDiplayIcon = (file) => {\r\n const { isDocs, isImage, isPdf } = checkFileExtension(\r\n file.serverFileName || file.name,\r\n )\r\n // if (isEmpty(file)) return \"noif ilelel\";\r\n\r\n let icon = isDocs ? (\r\n <SvgIcons name=\"document\" size=\"20\" />\r\n ) : isPdf ? (\r\n <SvgIcons name=\"pdf\" size=\"20\" />\r\n ) : isImage ? (\r\n isEmpty(file.serverFileName) && file ? (\r\n <img src={URL.createObjectURL(file)} width=\"20\" height=\"20\" />\r\n ) : (\r\n <img\r\n src={`${window.location.origin}/${Constant.Uploads}/${file.serverFileName}`}\r\n width=\"20\"\r\n height=\"20\"\r\n />\r\n )\r\n ) : (\r\n <CgFile />\r\n )\r\n return icon\r\n }\r\n return (\r\n <>\r\n {!isPreview && (\r\n <input\r\n ref={fileRef}\r\n type=\"file\"\r\n style={{ display: 'none' }}\r\n multiple={multiple}\r\n name={name}\r\n disabled={disabled}\r\n onChange={(event) => handleChange && handleChange(event)}\r\n />\r\n )}\r\n <div className=\"upload-container\">\r\n {label && <span className=\"upload-label\">{label}</span>}\r\n\r\n {value && (\r\n <div\r\n className=\"upload-item\"\r\n onClick={(e) => {\r\n const { isImage } = checkFileExtension(\r\n value.serverFileName ||\r\n value.ServerFileName ||\r\n value.name ||\r\n value.UserFileName,\r\n )\r\n if (isImage)\r\n value &&\r\n !isEmpty(value.serverFileName || value.ServerFileName) &&\r\n setPreview(true)\r\n else {\r\n e.stopPropagation()\r\n window.open(getDownloadLink(value))\r\n }\r\n }}\r\n >\r\n {!isEmpty(value.name || value.UserFileName) && (\r\n <>\r\n <div className=\"upload-item-icon\">{getDiplayIcon(value)}</div>\r\n <div className=\"upload-item-name\">\r\n {value.name || value.UserFileName}\r\n {!isPreview && (\r\n <div className=\"btn-remove\">\r\n <FaTimes\r\n style={{ margin: '0px' }}\r\n size=\"12\"\r\n color=\"#fff\"\r\n onClick={(e) => {\r\n e.stopPropagation()\r\n fileRef.current.value = ''\r\n onChange && onChange(name, null)\r\n // setSelectedIndex(index);\r\n // setOpen(true);\r\n }}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n </>\r\n )}\r\n </div>\r\n )}\r\n {!isPreview && (\r\n <div className=\"upload-button\" onClick={() => openFileOption()}>\r\n <div className=\"el-button\">\r\n <CgAttachment />\r\n <span className=\"upload-info\">{'Click to Upload'} </span>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n {error && (\r\n <div className=\"upload-error\">\r\n Invalid File. Supported files are {validExtensions?.toString()}\r\n </div>\r\n )}\r\n {preview && (\r\n <ImageViewer\r\n dowloadLinkUrl={getDownloadLink(value)}\r\n hostedUrl={`${window.location.origin}${Constant.Uploads}`}\r\n show={preview}\r\n title={value.name || value.serverFileName}\r\n image={value}\r\n onClose={setPreview}\r\n />\r\n )}\r\n </>\r\n )\r\n}\r\n\r\nAttachmentButton.defaultProps = { isPreview: false, enableUpload: true }\r\n\r\nexport default AttachmentButton\r\n","import React, { useEffect, useState, useRef } from 'react'\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport { CgAttachment, CgFile } from 'react-icons/cg'\r\nimport SvgIcons from 'components/icons/svgIcons'\r\nimport { FaTimes } from 'react-icons/fa'\r\nimport classnames from 'classnames'\r\nimport Constant from 'constants/index'\r\nimport checkFileExtension from 'helpers/checkFileExtension'\r\nimport { api } from 'networkService/api'\r\nimport ImageViewer from 'components/imageViewer'\r\nimport { containsInvalidFiles, isEmpty, validateFile } from 'helpers'\r\n\r\nconst AttachmentsButton = (props) => {\r\n const fileRef: any = useRef()\r\n\r\n const {\r\n enableUpload,\r\n name,\r\n disabled,\r\n multiple,\r\n maxFiles,\r\n value,\r\n onChange,\r\n label,\r\n isPreview,\r\n validExtensions,\r\n } = props\r\n const [state, setState] = useState({ preview: false, selectedValue: null })\r\n const [error, setError] = useState(false)\r\n const [fileList, setFileList] = useState([])\r\n useEffect(() => {\r\n if (value) {\r\n if (fileRef && fileRef.current) fileRef.current.value = ''\r\n let files =\r\n value?.map((x) => ({\r\n ...x,\r\n file: x.file,\r\n name: x.UserFileName || x.userFileName || x.name,\r\n serverFileName: x.ServerFileName || null,\r\n })) || []\r\n\r\n setFileList(files)\r\n }\r\n }, [value])\r\n\r\n const handleChange = (event) => {\r\n const { files } = event.target\r\n setError(false)\r\n const list = []\r\n\r\n for (var i = 0; i < files.length; i++) {\r\n var file = files[i]\r\n if (!validateFile(file, validExtensions)) {\r\n fileRef.current.value = ''\r\n setError(true)\r\n onChange && onChange(name, [...fileList])\r\n return\r\n }\r\n list.push({ file, name: file.name })\r\n }\r\n onChange && onChange(name, [...fileList, ...list])\r\n // debugger;\r\n // if (containsInvalidFiles(files, validExtensions)) {\r\n // fileRef.current.value = \"\";\r\n // setError(true);\r\n\r\n // onChange && onChange(name, null);\r\n // } else onChange && onChange(name, [...value, ...files]);\r\n }\r\n const openFileOption = () => {\r\n if (isPreview) return\r\n fileRef.current.click()\r\n }\r\n const getDownloadLink = (file) => {\r\n const param = {\r\n serverFileName: file.serverFileName,\r\n name: file.name,\r\n FileType: file.FileType,\r\n }\r\n let url = `v1/${api.common.downloadFiles}/${file.serverFileName}`\r\n return url\r\n }\r\n const getDiplayIcon = (file) => {\r\n const { isDocs, isImage, isPdf } = checkFileExtension(\r\n file.serverFileName || file.name,\r\n )\r\n // if (isEmpty(file)) return \"noif ilelel\";\r\n\r\n let icon = isDocs ? (\r\n <SvgIcons name=\"document\" size=\"20\" />\r\n ) : isPdf ? (\r\n <SvgIcons name=\"pdf\" size=\"20\" />\r\n ) : isImage ? (\r\n file && isEmpty(file.serverFileName) ? (\r\n <img src={URL.createObjectURL(file?.file)} width=\"20\" height=\"20\" />\r\n ) : (\r\n <img\r\n src={`/${Constant.Uploads}/${file.serverFileName}`}\r\n width=\"20\"\r\n height=\"20\"\r\n />\r\n )\r\n ) : (\r\n <CgFile />\r\n )\r\n return icon\r\n }\r\n return (\r\n <>\r\n {!isPreview && (\r\n <input\r\n ref={fileRef}\r\n type=\"file\"\r\n style={{ display: 'none' }}\r\n multiple={multiple}\r\n name={name}\r\n disabled={disabled}\r\n onChange={(event) => handleChange && handleChange(event)}\r\n />\r\n )}\r\n <div className=\"upload-row-container\">\r\n {label && <span className=\"upload-label\">{label}</span>}\r\n {fileList?.map((file, index) => (\r\n <div\r\n key={index}\r\n className=\"upload-item\"\r\n onClick={(e) => {\r\n const { isImage } = checkFileExtension(\r\n file.serverFileName || file.name,\r\n )\r\n if (isImage)\r\n file &&\r\n !isEmpty(file.serverFileName) &&\r\n setState({ ...state, preview: true, selectedValue: file })\r\n else {\r\n e.stopPropagation()\r\n window.open(getDownloadLink(file))\r\n }\r\n }}\r\n >\r\n {!isEmpty(file.name) && (\r\n <>\r\n <div className=\"upload-item-icon\">{getDiplayIcon(file)}</div>\r\n <div className=\"upload-item-name\">\r\n {file.name}\r\n {!isPreview && (\r\n <div className=\"btn-remove\">\r\n <FaTimes\r\n style={{ margin: '0px' }}\r\n size=\"12\"\r\n color=\"#fff\"\r\n onClick={(e) => {\r\n debugger\r\n e.stopPropagation()\r\n fileRef.current.value = ''\r\n value.splice(index, 1)\r\n var el = []\r\n if (value.length > 0) el = [...value]\r\n onChange && onChange(name, el)\r\n // setSelectedIndex(index);\r\n // setOpen(true);\r\n }}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n </>\r\n )}\r\n </div>\r\n ))}\r\n {!isPreview && (\r\n <div className=\"upload-button\" onClick={() => openFileOption()}>\r\n <div className=\"el-button\">\r\n <CgAttachment />\r\n <span className=\"upload-info\">{'Click to Upload'} </span>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n {error && (\r\n <div className=\"upload-error\">\r\n Invalid File. Supported files are {validExtensions.toString()}\r\n </div>\r\n )}\r\n {state.preview && (\r\n <ImageViewer\r\n dowloadLinkUrl={getDownloadLink(state.selectedValue)}\r\n // hostedUrl={`/${Constant.Uploads}`}\r\n hostedUrl={`${window.location.origin}/${Constant.Uploads}`}\r\n show={state.preview}\r\n title={state.selectedValue.name || state.selectedValue.serverFileName}\r\n image={state.selectedValue}\r\n onClose={() =>\r\n setState({ ...state, preview: false, selectedValue: null })\r\n }\r\n />\r\n )}\r\n </>\r\n )\r\n}\r\n\r\nAttachmentsButton.defaultProps = { isPreview: false, enableUpload: true }\r\n\r\nexport default AttachmentsButton\r\n","import React from \"react\";\r\nconst Wrapper = (props) => {\r\n const { label, children } = props;\r\n return (\r\n <div className=\"wrapper\">\r\n {label && <div className=\"wrapper-label\">{label}</div>}\r\n <div className=\"wrapper-control\">{children}</div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Wrapper;\r\n","import React from \"react\";\r\nconst HWrapper = (props) => {\r\n const { label, children } = props;\r\n return (\r\n <div className=\"hwrapper\">\r\n {label && <div className=\"hwrapper-label\">{`${label}: `}</div>}\r\n <div className=\"hwrapper-control\">{children}</div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default HWrapper;\r\n","import React from \"react\";\r\nimport { CKEditor } from \"@ckeditor/ckeditor5-react\";\r\nimport ClassicEditor from \"@ckeditor/ckeditor5-build-classic\";\r\nimport ListStyle from \"@ckeditor/ckeditor5-list/src/liststyle\";\r\n\r\nconst Editor = (props) => {\r\n const { value, name } = props;\r\n const config = {\r\n // extraPlugins: [ListStyle],\r\n };\r\n return (\r\n <CKEditor\r\n config={config}\r\n editor={ClassicEditor}\r\n data={value || \"\"}\r\n onChange={(event, editor) => {\r\n const data = editor.getData();\r\n props.onChange && props.onChange(name, data);\r\n }}\r\n />\r\n );\r\n};\r\nexport default Editor;\r\n","import { isEmpty } from \"helpers\";\r\nimport { post, put, get, deletion, api } from \"networkService\";\r\nimport types from \"store/types\";\r\n\r\nexport const GetArticles = (param) => async (dispatch: Function) => {\r\n const res: any = await post(\r\n `${api.articles.article}`,\r\n dispatch,\r\n param,\r\n false\r\n );\r\n\r\n if (res && res.Status) return res.Data;\r\n\r\n return [];\r\n};\r\nexport const CountArticle = (param) => async (dispatch: Function) => {\r\n const res: any = await post(api.articles.count, dispatch, param, false);\r\n if (!isEmpty(res))\r\n dispatch({ type: types.COUNT_ARTICLE, payload: res && res.Data });\r\n};\r\n\r\nexport const GetArticle = (id) => async (dispatch: Function) => {\r\n const res: any = await get(`${api.articles.article}/${id}`, dispatch);\r\n if (!isEmpty(res))\r\n dispatch({ type: types.GET_ARTICLE, payload: res && res.Data });\r\n return res;\r\n};\r\n\r\nexport const DeleteArticle = (id) => async (dispatch: Function) => {\r\n const res: any = await deletion(api.articles.article, dispatch, id);\r\n if (!isEmpty(res))\r\n dispatch({\r\n type: types.DELETE_ARTICLE,\r\n payload: { id, status: (res && res.Status) || false },\r\n });\r\n return res;\r\n};\r\n\r\nexport const clearArticle = () => async (dispatch: Function) => {\r\n dispatch({ type: types.GET_ARTICLE, payload: {} });\r\n};\r\n\r\nexport const SaveStart = (param) => async (dispatch: Function) => {\r\n const res: any = await post(api.articles.start, dispatch, param);\r\n if (!isEmpty(res))\r\n dispatch({ type: types.GET_ARTICLE, payload: res && res.Data });\r\n return res;\r\n};\r\n\r\nexport const SaveAuthors = (param) => async (dispatch: Function) => {\r\n const res: any = await post(\r\n api.articles.authors,\r\n dispatch,\r\n param,\r\n true,\r\n true\r\n );\r\n if (!isEmpty(res))\r\n dispatch({ type: types.GET_ARTICLE, payload: res && res.Data });\r\n return res;\r\n};\r\n\r\nexport const SaveAttachment = (param) => async (dispatch: Function) => {\r\n const res: any = await post(\r\n api.articles.attachments,\r\n dispatch,\r\n param,\r\n true,\r\n true\r\n );\r\n if (!isEmpty(res))\r\n dispatch({ type: types.GET_ARTICLE, payload: res && res.Data });\r\n return res;\r\n};\r\n\r\nexport const SaveMetaData = (param) => async (dispatch: Function) => {\r\n const res: any = await post(\r\n api.articles.metadata,\r\n dispatch,\r\n param,\r\n true,\r\n false\r\n );\r\n if (!isEmpty(res))\r\n dispatch({ type: types.GET_ARTICLE, payload: res && res.Data });\r\n return res;\r\n};\r\n\r\nexport const SaveConfrimation = (param) => async (dispatch: Function) => {\r\n const res: any = await post(\r\n api.articles.confirmation,\r\n dispatch,\r\n param,\r\n true,\r\n false\r\n );\r\n if (!isEmpty(res))\r\n dispatch({ type: types.GET_ARTICLE, payload: res && res.Data });\r\n return res;\r\n};\r\n\r\nexport const AssignArticleForEditor = (param) => async (dispatch: Function) => {\r\n const res: any = await post(\r\n api.articles.assignArticleForEditor,\r\n dispatch,\r\n param,\r\n true\r\n );\r\n return res;\r\n};\r\n\r\nexport const SaveReview = (param) => async (dispatch: Function) => {\r\n let val = isEmpty(param.ReviewId);\r\n const res: any = isEmpty(param.reviewId)\r\n ? await post(api.articles.review, dispatch, param, true)\r\n : await put(api.articles.review, dispatch, param, true);\r\n return res;\r\n};\r\n\r\nexport const AssignToReviewers = (param) => async (dispatch: Function) => {\r\n const res: any = await post(\r\n api.articles.assigntToReviewer,\r\n dispatch,\r\n param,\r\n true\r\n );\r\n return res;\r\n};\r\n\r\nexport const GetReviewDetails = (id) => async (dispatch: Function) => {\r\n const res: any = await get(`${api.articles.reviewDetail}/${id}`, dispatch);\r\n if (!isEmpty(res)) {\r\n dispatch({ type: types.GET_REVIEW, payload: res && res.Data });\r\n return res.Data;\r\n }\r\n return null;\r\n};\r\n\r\nexport const GetReview = (id) => async (dispatch: Function) => {\r\n const res: any = await get(`${api.articles.review}/${id}`, dispatch);\r\n if (res && res.Status) return res.Data;\r\n return null;\r\n};\r\n\r\nexport const GetReviewByArticleId = (id) => async (dispatch: Function) => {\r\n const res: any = await get(`${api.articles.reviewByArticle}/${id}`, dispatch);\r\n if (res && res.Status) return res.Data;\r\n return null;\r\n};\r\n\r\nexport const AcknowledgeReview =\r\n (reviewId, status) => async (dispatch: Function) => {\r\n const res: any = await post(`${api.articles.acknowledgeReview}`, dispatch, {\r\n reviewId,\r\n status,\r\n });\r\n\r\n return res;\r\n };\r\n\r\nexport const SubmitDownloadAndReview =\r\n (param) => async (dispatch: Function) => {\r\n let data = new FormData();\r\n for (var key in param) {\r\n if (key !== \"files\") {\r\n data.append(key, param[key]);\r\n } else {\r\n for (var i = 0; i < param.files.length; i++) {\r\n var item = param.files[i];\r\n data.append(`Files`, item.Attachment || null);\r\n // data.append(`Files[${i}].FileFormat`, item.FileFormat);\r\n // data.append(`Files[${i}].FileType`, item.FileType);\r\n // data.append(`Files[${i}].ServerFileName`, item.ServerFileName);\r\n // data.append(`Files[${i}].Size`, item.Size);\r\n // data.append(`Files[${i}].UserFileName`, item.UserFileName);\r\n }\r\n }\r\n }\r\n\r\n const res: any = await post(\r\n `${api.articles.submitDownloadAndReview}`,\r\n dispatch,\r\n data,\r\n true,\r\n true\r\n );\r\n\r\n return res;\r\n };\r\n\r\nexport const SubmitReview = (reviewId) => async (dispatch: Function) => {\r\n const res: any = await post(\r\n `${api.articles.submitReview}/${reviewId}`,\r\n dispatch,\r\n {},\r\n true\r\n );\r\n\r\n return res;\r\n};\r\nexport const userWithAssignedInfo = (param) => async (dipatch: Function) => {\r\n const res: any = await get(api.articles.assingedInfo, dipatch, param);\r\n if (res.Status) return res.Data;\r\n return [];\r\n};\r\n\r\nexport const UpdateArticleStatus = (param) => async (dispatch: Function) => {\r\n const res: any = await post(api.articles.updateStatus, dispatch, param);\r\n return res;\r\n};\r\n\r\nexport const RequestRevision = (param) => async (dispatch: Function) => {\r\n // const res: any = await post(api.articles.requestRevision, dispatch, param);\r\n // return res;\r\n\r\n let data = new FormData();\r\n for (var key in param) {\r\n if (key !== \"Files\") {\r\n data.append(key, param[key]);\r\n } else {\r\n for (var i = 0; i < param.Files.length; i++) {\r\n var item = param.Files[i];\r\n data.append(`Files`, item.Attachment || null);\r\n }\r\n }\r\n }\r\n const res: any = await post(\r\n `${api.articles.requestRevision}`,\r\n dispatch,\r\n data,\r\n true,\r\n true\r\n );\r\n\r\n return res;\r\n};\r\n\r\nexport const GetRevision = (id) => async (dispatch: Function) => {\r\n const res: any = await get(`${api.articles.revision}/${id}`, dispatch);\r\n if (res && res.Status) return res.Data;\r\n return null;\r\n};\r\n\r\nexport const DeleteReviewer = (userId) => async (dispatch: Function) => {\r\n const res: any = await deletion(api.articles.reviewer, dispatch, userId);\r\n if (res && res.Status) return res.Data;\r\n return null;\r\n};\r\n","export enum TemplateEnum {\r\n CopyrightStatements = \"copyrightStatements\",\r\n PrivacyStatements = \"privacyStatements\",\r\n ReviewGuideline = \"reviewGuideline\",\r\n}\r\nexport default TemplateEnum;\r\n","import classNames from \"classnames\";\r\nimport React, { Children } from \"react\";\r\n\r\nconst Loader = ({ isLoading, children }) => {\r\n return (\r\n <div className={classNames({ \"loader-container\": isLoading })}>\r\n {isLoading && (\r\n <div className=\"loader-loading\">\r\n <div className=\"loader-loading__symbol\">\r\n <div className=\"spinner\"></div>\r\n </div>\r\n </div>\r\n )}\r\n {children}\r\n </div>\r\n );\r\n};\r\n\r\nexport default Loader;\r\n","import React, { useEffect, useRef, useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { Form, Button, Select } from 'element-react'\r\nimport { CheckList, Editor } from 'components/form'\r\nimport { SaveStart } from 'store/actions/articles'\r\nimport { getRequiredRules, isEmpty } from 'helpers'\r\nimport ArticleStatusEnum from 'constants/articleStatusEnum'\r\nimport TemplateEnum from 'constants/templateEnum'\r\nimport { GetCheckList } from 'store/actions/meta'\r\nimport Loader from 'components/loader.tsx'\r\n\r\nconst Start = (props) => {\r\n var ref: any = useRef()\r\n const { onSave, selectedTab } = props\r\n const [isLoadingCheckList, setLoadingCheckList] = useState(false)\r\n const [state, setState] = useState({\r\n ArticleId: 0,\r\n SectionId: 0,\r\n SubSectionId: 0,\r\n CommentsForEditor: '',\r\n CheckList: [],\r\n SubSections: [],\r\n })\r\n const [isLoading, setLoading] = useState(false)\r\n const rules = {\r\n SectionId: [getRequiredRules('Section is required.', 'number')],\r\n CheckList: [getRequiredRules('Selecte at least one check list.', 'array')], // [isEmptyRules(\"\")],\r\n }\r\n const dispatch = useDispatch()\r\n\r\n const { checkList, templates, sections, subSections } = useSelector(\r\n (state: any) => state.metaReducer,\r\n )\r\n const { article } = useSelector((st: any) => st.articleReducer)\r\n\r\n useEffect(() => {\r\n let obj = {\r\n ArticleId: 0,\r\n SectionId: null,\r\n SubSectionId: null,\r\n CommentsForEditor: '',\r\n CheckList: [],\r\n SubSections: [],\r\n }\r\n if (!isEmpty(article)) {\r\n loadCheckList(article.SectionId)\r\n obj = {\r\n ArticleId: article.Id,\r\n SectionId: article.SectionId,\r\n SubSectionId: article.SubSectionId,\r\n CommentsForEditor: article.CommentsForEditor,\r\n SubSections: getSubSections(article.SectionId),\r\n CheckList:\r\n (article.CheckList &&\r\n article.CheckList.map((x) => ({\r\n Id: x.CheckListId,\r\n Name: x.CheckListName,\r\n }))) ||\r\n [],\r\n }\r\n }\r\n\r\n setState(obj)\r\n }, [article, selectedTab])\r\n\r\n const getSubSections = (sectionId) =>\r\n subSections.filter((x) => x.SectionId === sectionId) || []\r\n\r\n const onChange = async (key: any, value: any) => {\r\n let newState = { ...state }\r\n newState[key] = value\r\n if (key === 'SectionId') {\r\n newState.SubSections = getSubSections(value)\r\n loadCheckList(value)\r\n }\r\n setState(newState)\r\n }\r\n\r\n const loadCheckList = async (sectionId: any) => {\r\n setLoadingCheckList(true)\r\n await dispatch(GetCheckList(sectionId))\r\n setLoadingCheckList(false)\r\n }\r\n const copyrightStatements = templates.find(\r\n (x) => x.TemplateKey === TemplateEnum.CopyrightStatements,\r\n )\r\n\r\n const privacyStatements = templates.find(\r\n (x) => x.TemplateKey === TemplateEnum.PrivacyStatements,\r\n )\r\n\r\n const handleNextClick = async () => {\r\n ref.current.validate(async (valid) => {\r\n if (valid) {\r\n setLoading(true)\r\n const param = {\r\n SectionId: state.SectionId,\r\n SubSectionId: state.SubSectionId,\r\n CheckList: state.CheckList,\r\n Comments: state.CommentsForEditor,\r\n ArticleId: state.ArticleId,\r\n Steps: 1,\r\n }\r\n\r\n var res: any = await dispatch(SaveStart(param))\r\n setLoading(false)\r\n if (res && res.Status) {\r\n onSave && onSave()\r\n }\r\n } else {\r\n return false\r\n }\r\n })\r\n }\r\n\r\n const checkIfDisabled = () => {\r\n let id = article.Id || 0\r\n if (id != 0 && !article.CanEdit) return true\r\n return article.Status === ArticleStatusEnum.SUBMITTED\r\n }\r\n\r\n return (\r\n <div className=\"user-form\">\r\n <Form\r\n ref={ref}\r\n rules={rules}\r\n className=\"demo-form-stacked\"\r\n model={state}\r\n labelPosition=\"top\"\r\n labelWidth=\"100\"\r\n >\r\n <Form.Item\r\n label={copyrightStatements && copyrightStatements.TemplateTitle}\r\n >\r\n <div>{copyrightStatements && copyrightStatements.TemplateText}</div>\r\n </Form.Item>\r\n <Form.Item label=\"Type of Submission\" prop=\"SectionId\">\r\n <Select\r\n value={state.SectionId}\r\n placeholder=\"Type of Submission\"\r\n onChange={(val: any) => onChange('SectionId', val)}\r\n >\r\n {sections &&\r\n sections.map((role, index) => (\r\n <Select.Option\r\n key={index}\r\n label={role.Name}\r\n value={role.Id}\r\n ></Select.Option>\r\n ))}\r\n </Select>\r\n </Form.Item>\r\n <Form.Item label=\"Sub Type of Submission\" prop=\"SubSectionId\">\r\n <Select\r\n value={state.SubSectionId}\r\n placeholder=\"Sub Type of Submission\"\r\n onChange={(val: any) => onChange('SubSectionId', val)}\r\n >\r\n {state.SubSections &&\r\n state.SubSections.map((obj, index) => (\r\n <Select.Option\r\n key={index}\r\n label={obj.Name}\r\n value={obj.Id}\r\n ></Select.Option>\r\n ))}\r\n </Select>\r\n </Form.Item>\r\n <Form.Item label=\"CheckList\" prop=\"CheckList\">\r\n <Loader isLoading={isLoadingCheckList}>\r\n <CheckList\r\n list={checkList}\r\n value={state.CheckList}\r\n onChange={(val: any) => onChange('CheckList', val)}\r\n />\r\n </Loader>\r\n </Form.Item>\r\n <Form.Item label=\"Comments for the Editor\" prop=\"CommentsForEditor\">\r\n <Editor\r\n name=\"CommentsForEditor\"\r\n onChange={onChange}\r\n value={state.CommentsForEditor}\r\n />\r\n </Form.Item>\r\n <Form.Item\r\n label={privacyStatements && privacyStatements.TemplateTitle}\r\n prop=\"privacyStatements\"\r\n >\r\n <div>{privacyStatements && privacyStatements.TemplateText}</div>\r\n </Form.Item>\r\n\r\n <Form.Item>\r\n <Button\r\n type=\"primary\"\r\n onClick={handleNextClick}\r\n loading={isLoading}\r\n disabled={checkIfDisabled()}\r\n >\r\n Save and Continue\r\n </Button>\r\n </Form.Item>\r\n </Form>\r\n </div>\r\n )\r\n}\r\nexport default Start\r\n","import React, { useEffect, useRef, useState } from 'react'\r\nimport { Dialog, Form, Input, Select, Button } from 'element-react'\r\nimport { AttachmentButton } from 'components/form'\r\nimport { useSelector } from 'react-redux'\r\nimport { getRequiredRules } from 'helpers'\r\n\r\nconst initialState = {\r\n Component: null,\r\n Attachment: null,\r\n UserFileName: '',\r\n ServerFileName: '',\r\n SupportedFiles: ['*'],\r\n Size: '',\r\n}\r\n\r\nconst UploadFile = (props) => {\r\n var ref: any = useRef()\r\n const { isVisible, onSave, onCancel, selectedFileData } = props\r\n const [state, setState] = useState(initialState)\r\n const { components } = useSelector((state: any) => state.metaReducer)\r\n\r\n useEffect(() => {\r\n const data = selectedFileData.data\r\n if (data) {\r\n setState({\r\n ...data,\r\n Component: components.find((x) => x.Id === data.ComponentId),\r\n Attachment: data.Attachment || {\r\n serverFileName: data.ServerFileName,\r\n name: data.UserFileName,\r\n },\r\n })\r\n } else {\r\n setState(initialState)\r\n }\r\n }, [selectedFileData])\r\n const rules = {\r\n Component: [getRequiredRules('Component is required.', 'object')],\r\n UserFileName: [getRequiredRules('Attachment is required')],\r\n }\r\n\r\n const handleChange = (name, value) => {\r\n var nextState = { ...state, [name]: value }\r\n if (value && name === 'Attachment') nextState['UserFileName'] = value.name\r\n\r\n if (value && name === 'Component') {\r\n let SupportedFiles = value?.SupportedFiles?.split(',')?.map((x) =>\r\n x?.trim(),\r\n )\r\n nextState['SupportedFiles'] = SupportedFiles\r\n }\r\n setState(nextState)\r\n }\r\n\r\n const handleSave = () => {\r\n ref.current.validate(async (valid) => {\r\n if (valid) {\r\n let obj = {\r\n ...state,\r\n ComponentId: state.Component.Id,\r\n ComponentName: state.Component.Name,\r\n }\r\n onSave && onSave(selectedFileData.index, obj)\r\n setState(initialState)\r\n }\r\n })\r\n }\r\n return (\r\n <Dialog title=\"Article Address\" visible={isVisible} onCancel={onCancel}>\r\n <Dialog.Body>\r\n <Form model={state} labelPosition=\"top\" ref={ref} rules={rules}>\r\n <Form.Item label=\"Article Component\" prop=\"Component\">\r\n <Select\r\n value={state.Component}\r\n placeholder=\"Please select component\"\r\n onChange={(val) => handleChange('Component', val)}\r\n >\r\n {components &&\r\n components.map((item, index) => (\r\n <Select.Option\r\n key={index}\r\n label={item.Name}\r\n value={item}\r\n ></Select.Option>\r\n ))}\r\n </Select>\r\n </Form.Item>\r\n <Form.Item label=\"Attachment\" prop=\"UserFileName\">\r\n <AttachmentButton\r\n value={state.Attachment}\r\n name=\"Attachment\"\r\n onChange={handleChange}\r\n validExtensions={state.SupportedFiles}\r\n />\r\n </Form.Item>\r\n <Form.Item>\r\n <Button type=\"primary\" onClick={() => handleSave()}>\r\n Save\r\n </Button>\r\n </Form.Item>\r\n </Form>\r\n </Dialog.Body>\r\n </Dialog>\r\n )\r\n}\r\nexport default UploadFile\r\n","import React, { useEffect, useState } from 'react'\r\nimport { FiFile } from 'react-icons/fi'\r\nimport { Button } from 'element-react'\r\n\r\nfunction SumissionList({\r\n attachments,\r\n handleAttachmentEditClick,\r\n handleAttachmentDeleteClick,\r\n}) {\r\n const [state, setState] = useState({})\r\n useEffect(() => {\r\n let index = -1\r\n var newAttachment = attachments.reduce((a, b) => {\r\n let key = `${b.ComponentId}`\r\n if (!a) {\r\n a = {}\r\n }\r\n if (!a?.[key]) {\r\n a[key] = { items: [], componentName: b.ComponentName }\r\n }\r\n\r\n a[key].items.push({ ...b, index: ++index })\r\n\r\n return a\r\n }, {})\r\n if (newAttachment) {\r\n setState(newAttachment)\r\n }\r\n }, [attachments])\r\n\r\n return (\r\n <div className=\"upload-steps__submissions-body\">\r\n {Object.keys(state || {}).map((key: any, idx: number) => {\r\n return (\r\n <div className=\"upload-steps__submissions-group\">\r\n <div className=\"upload-steps__submissions-group-header\">\r\n {state[key]?.componentName}\r\n </div>\r\n {state[key]?.items?.map?.((attachment, index) => (\r\n <div className=\"upload-steps__attachment\" key={`${idx}-${index}`}>\r\n <div className=\"upload-steps__attachment-info\">\r\n <div className=\"upload-steps__attachment-info-title\">\r\n <FiFile />\r\n {attachment.UserFileName\r\n ? attachment.UserFileName\r\n : attachment.Attachment && attachment.Attachment.name}\r\n </div>\r\n <div className=\"upload-steps__attachment-info-subtitle\">\r\n Component: {attachment.ComponentName}\r\n </div>\r\n </div>\r\n <div className=\"upload-steps__attachment-action\">\r\n <Button\r\n type=\"text\"\r\n onClick={() => handleAttachmentEditClick(attachment.index)}\r\n >\r\n Edit\r\n {/* {`${idx}-${index}= +${attachment.index}`}. */}\r\n </Button>\r\n <Button\r\n type=\"text\"\r\n onClick={() =>\r\n handleAttachmentDeleteClick(attachment.index)\r\n }\r\n >\r\n Delete\r\n </Button>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n )\r\n })}\r\n {}\r\n </div>\r\n )\r\n}\r\n\r\nexport default SumissionList\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Button, Notification } from \"element-react\";\r\nimport UploadFile from \"./uploadFile\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { isEmpty } from \"helpers\";\r\n\r\nimport { SaveAttachment } from \"store/actions/articles\";\r\nimport ArticleStatusEnum from \"constants/articleStatusEnum\";\r\nimport SubmissionList from \"./sumissionList\";\r\n\r\nconst UploadSubmission = (props) => {\r\n const { onSave } = props;\r\n const [isVisible, setVisible] = useState(false);\r\n const [selectedFileData, setSelectedFileData] = useState({\r\n data: null,\r\n index: -1,\r\n });\r\n const dispatch = useDispatch();\r\n\r\n const [attachments, setAttachments] = useState([]);\r\n const { article } = useSelector((st: any) => st.articleReducer);\r\n const { components } = useSelector((state: any) => state.metaReducer);\r\n\r\n useEffect(() => {\r\n if (!isEmpty(article)) {\r\n let attachments = article.ArticleAttachments || [];\r\n setAttachments([...attachments]);\r\n }\r\n }, [article]);\r\n\r\n const handleSaveFile = (index, obj) => {\r\n let newAttachments = [...attachments];\r\n\r\n if (index >= 0) newAttachments[index] = obj;\r\n else newAttachments.push(obj);\r\n\r\n setAttachments(newAttachments);\r\n setVisible(false);\r\n };\r\n\r\n const onSaveClicked = async () => {\r\n var attachmentIds = attachments.map((x) => x.ComponentId);\r\n var requiredComponent = components.filter(\r\n (x) => x.IsRequired === true && !attachmentIds.includes(x.Id)\r\n );\r\n\r\n var mustHaveNames = requiredComponent.map((x) => x.Name).toString();\r\n\r\n if (requiredComponent.length > 0) {\r\n Notification({\r\n message: `Please add components for ${mustHaveNames}`,\r\n type: \"error\",\r\n duration: 3000,\r\n offset: 50,\r\n });\r\n return;\r\n }\r\n let data = new FormData();\r\n data.append(\"ArticleId\", article.Id);\r\n data.append(\"Steps\", \"3\");\r\n\r\n for (var i = 0; i < attachments.length; i++) {\r\n var item = attachments[i];\r\n data.append(`Attachments[${i}].Attachment`, item.Attachment || null);\r\n data.append(`Attachments[${i}].FileFormat`, item.FileFormat);\r\n data.append(`Attachments[${i}].FileType`, item.FileType);\r\n data.append(`Attachments[${i}].ServerFileName`, item.ServerFileName);\r\n data.append(`Attachments[${i}].Size`, item.Size);\r\n data.append(`Attachments[${i}].UserFileName`, item.UserFileName);\r\n data.append(`Attachments[${i}].ComponentId`, item.ComponentId);\r\n }\r\n var res: any = await dispatch(SaveAttachment(data));\r\n if (res && res.Status) onSave();\r\n // onSave && onSave();\r\n };\r\n\r\n const handleAttachmentEditClick = (index) => {\r\n setSelectedFileData({ index: index, data: { ...attachments[index] } });\r\n setVisible(true);\r\n };\r\n\r\n const handleAttachmentDeleteClick = (index) => {\r\n let newAttachments = [...attachments];\r\n newAttachments.splice(index, 1);\r\n setAttachments(newAttachments);\r\n };\r\n const checkIfDisabled = () => {\r\n if (attachments && attachments.length === 0) return true;\r\n else if (article.Id != 0 && !article.CanEdit) return true;\r\n return article.Status === ArticleStatusEnum.SUBMITTED;\r\n };\r\n\r\n const renderSubmissionList = () => {};\r\n return (\r\n <div className=\"upload-steps__submissions\">\r\n <div className=\"upload-steps__submissions-header\">\r\n <div>Submission Files</div>\r\n <div className=\"upload-steps__submissions-header-action\">\r\n <div>\r\n <Button\r\n type=\"text\"\r\n disabled={article.Status === ArticleStatusEnum.SUBMITTED}\r\n onClick={() => {\r\n setSelectedFileData({ index: -1, data: null });\r\n setVisible(true);\r\n }}\r\n >\r\n Upload File\r\n </Button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <SubmissionList\r\n attachments={attachments}\r\n handleAttachmentDeleteClick={handleAttachmentDeleteClick}\r\n handleAttachmentEditClick={handleAttachmentEditClick}\r\n />\r\n\r\n <UploadFile\r\n isVisible={isVisible}\r\n setVisible={setVisible}\r\n selectedFileData={selectedFileData}\r\n onCancel={() => {\r\n setVisible(false);\r\n setSelectedFileData({ index: -1, data: null });\r\n }}\r\n onSave={(index, obj) => handleSaveFile(index, obj)}\r\n />\r\n <div className=\"upload-steps__submissions-footer\">\r\n <Button\r\n type=\"primary\"\r\n onClick={onSaveClicked}\r\n disabled={checkIfDisabled()}\r\n >\r\n Save and Continue\r\n </Button>\r\n </div>\r\n </div>\r\n );\r\n};\r\nexport default UploadSubmission;\r\n","import React, { useState, useRef, useEffect } from 'react'\r\nimport { Form, Input, Button, Layout, Dialog, Select } from 'element-react'\r\nimport { AttachmentButton } from 'components/form'\r\nimport { emailRule, getRequiredRules, isEmpty, mobileRules } from 'helpers'\r\nimport { useSelector } from 'react-redux'\r\n\r\nconst initialState = {\r\n FullName: '',\r\n Salutation: '',\r\n Designation: '',\r\n Institute: '',\r\n PostalAddress: '',\r\n MobileNo: '',\r\n Email: '',\r\n Photo_ServerFileName: '',\r\n Photo_UserFileName: '',\r\n Photo: null,\r\n DigitalSignature_ServerFileName: '',\r\n DigitalSignature_UserFileName: '',\r\n DigitalSignature: null,\r\n}\r\n\r\nconst EntryForm = (props) => {\r\n const { coAuthorList, coAuthorData, onCancel, onSave } = props\r\n const formRef: any = useRef()\r\n const rules = {\r\n FullName: [getRequiredRules('Full name is required.')],\r\n Salutation: [getRequiredRules('Salutation is required.')],\r\n Designation: [getRequiredRules('Designation is required.')],\r\n Institute: [getRequiredRules('Institute is required.')],\r\n PostalAddress: [getRequiredRules('Address is required.')],\r\n Email: [emailRule()],\r\n // Photo_UserFileName: [getRequiredRules('Photo is required.')],\r\n //DigitalSignature_UserFileName: [getRequiredRules('Signature is required.')],\r\n MobileNo: [mobileRules()],\r\n }\r\n const [state, setState] = useState(initialState)\r\n const { salutations } = useSelector((st: any) => st.metaReducer)\r\n\r\n useEffect(() => {\r\n if (coAuthorData.index >= 0) {\r\n var obj = coAuthorList[coAuthorData.index]\r\n setState({ ...obj })\r\n } else {\r\n setState(initialState)\r\n }\r\n }, [coAuthorData])\r\n\r\n const onChange = (name, val) => {\r\n setState({ ...state, [name]: val })\r\n }\r\n const handleSubmit = async (e: any) => {\r\n e.preventDefault()\r\n\r\n formRef.current.validate(async (valid) => {\r\n if (valid) {\r\n const { index } = coAuthorData\r\n onSave && onSave(index, state)\r\n } else {\r\n return false\r\n }\r\n })\r\n }\r\n const handleReset = (e: any) => {\r\n formRef.current.resetFields()\r\n setState({} as any)\r\n }\r\n return (\r\n <div>\r\n <Dialog\r\n title=\"Co-Authors\"\r\n visible={coAuthorData.isVisible}\r\n onCancel={() => onCancel()}\r\n >\r\n <Dialog.Body>\r\n <Form\r\n ref={formRef}\r\n rules={rules}\r\n className=\"demo-form-stacked\"\r\n model={state}\r\n labelPosition=\"top\"\r\n labelWidth=\"100\"\r\n >\r\n <Layout.Row gutter=\"20\">\r\n <Layout.Col span=\"12\">\r\n <Form.Item label=\"Salutation\" prop=\"Salutation\">\r\n <Select\r\n value={state.Salutation}\r\n placeholder=\"Salutation\"\r\n onChange={(val: any) => onChange('Salutation', val)}\r\n >\r\n {salutations &&\r\n salutations.map((item, index) => (\r\n <Select.Option\r\n key={index}\r\n label={item}\r\n value={item}\r\n ></Select.Option>\r\n ))}\r\n </Select>\r\n {/* <Input\r\n value={state.Salutation}\r\n onChange={(val: any) => onChange(\"Salutation\", val)}\r\n ></Input> */}\r\n </Form.Item>\r\n </Layout.Col>\r\n </Layout.Row>\r\n <Layout.Row gutter=\"20\">\r\n <Layout.Col span=\"12\">\r\n <Form.Item label=\"Full Name\" prop=\"FullName\">\r\n <Input\r\n value={state.FullName}\r\n onChange={(val: any) => onChange('FullName', val)}\r\n ></Input>\r\n </Form.Item>\r\n </Layout.Col>\r\n <Layout.Col span=\"12\">\r\n <Form.Item label=\"Email\" prop=\"Email\">\r\n <Input\r\n value={state.Email}\r\n onChange={(val: any) => onChange('Email', val)}\r\n ></Input>\r\n </Form.Item>\r\n </Layout.Col>\r\n </Layout.Row>\r\n <Layout.Row gutter=\"20\">\r\n <Layout.Col span=\"12\">\r\n <Form.Item label=\"Mobile\" prop=\"MobileNo\">\r\n <Input\r\n value={state.MobileNo}\r\n onChange={(val: any) => onChange('MobileNo', val)}\r\n ></Input>\r\n </Form.Item>\r\n </Layout.Col>\r\n <Layout.Col span=\"12\">\r\n <Form.Item label=\"Address\" prop=\"PostalAddress\">\r\n <Input\r\n value={state.PostalAddress}\r\n onChange={(val: any) => onChange('PostalAddress', val)}\r\n ></Input>\r\n </Form.Item>\r\n </Layout.Col>\r\n </Layout.Row>\r\n <Layout.Row gutter=\"20\">\r\n <Layout.Col span=\"12\">\r\n <Form.Item label=\"Institute\" prop=\"Institute\">\r\n <Input\r\n value={state.Institute}\r\n onChange={(val: any) => onChange('Institute', val)}\r\n ></Input>\r\n </Form.Item>\r\n </Layout.Col>\r\n <Layout.Col span=\"12\">\r\n <Form.Item label=\"Designation\" prop=\"Designation\">\r\n <Input\r\n value={state.Designation}\r\n onChange={(val: any) => onChange('Designation', val)}\r\n ></Input>\r\n </Form.Item>\r\n </Layout.Col>\r\n </Layout.Row>\r\n\r\n <Layout.Row>\r\n <Layout.Col span=\"12\">\r\n <Form.Item prop=\"Photo_UserFileName\">\r\n <AttachmentButton\r\n label=\"Photo\"\r\n value={state.Photo}\r\n name=\"Photo\"\r\n onChange={onChange}\r\n validExtensions={['jpg', 'jpeg', 'png']}\r\n />\r\n </Form.Item>\r\n </Layout.Col>\r\n <Layout.Col span=\"12\">\r\n <Form.Item prop=\"Photo_UserFileName\">\r\n <AttachmentButton\r\n label=\"Digital Signature\"\r\n value={state.DigitalSignature}\r\n name=\"DigitalSignature\"\r\n onChange={onChange}\r\n validExtensions={['jpg', 'jpeg', 'png']}\r\n />\r\n </Form.Item>\r\n </Layout.Col>\r\n </Layout.Row>\r\n <Form.Item>\r\n <Button type=\"primary\" onClick={handleSubmit} nativeType=\"submit\">\r\n Save\r\n </Button>\r\n <Button onClick={handleReset}>Reset</Button>\r\n </Form.Item>\r\n </Form>\r\n </Dialog.Body>\r\n </Dialog>\r\n </div>\r\n )\r\n}\r\n\r\nexport default EntryForm\r\n","import React, { useState, useRef, useEffect } from \"react\";\r\nimport { Form, Input, Button, Layout, Table } from \"element-react\";\r\nimport { AttachmentButton } from \"components/form\";\r\nimport EntryForm from \"./entryForm\";\r\nimport { SaveAuthors } from \"store/actions/articles\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { isEmpty } from \"helpers\";\r\n\r\nconst CoAuthorList = (props) => {\r\n //setCoAuthorData\r\n const { CoAuthors, onEditClicked, onDelelteClicked } = props;\r\n const columns = [\r\n { label: \"Name\", prop: \"FullName\", width: 180 },\r\n { label: \"Salutation\", prop: \"Salutation\", width: 180 },\r\n { label: \"Designation\", prop: \"Designation\", width: 180 },\r\n { label: \"Institute\", prop: \"Institute\", width: 180 },\r\n { label: \"PostalAddress\", prop: \"PostalAddress\", width: 180 },\r\n { label: \"MobileNo\", prop: \"MobileNo\", width: 180 },\r\n { label: \"Email\", prop: \"Email\", width: 180 },\r\n {\r\n label: \"\",\r\n width: 160,\r\n fixed: \"right\",\r\n render: (row, column, index) => {\r\n return (\r\n <span>\r\n <Button\r\n type=\"text\"\r\n size=\"small\"\r\n onClick={() => onEditClicked(index, row)}\r\n >\r\n Edit\r\n </Button>\r\n <Button\r\n type=\"text\"\r\n size=\"small\"\r\n onClick={() => onDelelteClicked(index, row)}\r\n >\r\n Delete\r\n </Button>\r\n </span>\r\n );\r\n },\r\n },\r\n ];\r\n\r\n return (\r\n CoAuthors &&\r\n CoAuthors.length > 0 && (\r\n <Table columns={columns} data={CoAuthors} fit={true} />\r\n )\r\n );\r\n};\r\nexport default CoAuthorList;\r\n","import React, { useState, useRef, useEffect } from \"react\";\r\nimport { Form, Input, Button, Layout, Table, Select } from \"element-react\";\r\nimport { AttachmentButton } from \"components/form\";\r\nimport EntryForm from \"./entryForm\";\r\nimport { SaveAuthors } from \"store/actions/articles\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { emailRule, getRequiredRules, isEmpty, mobileRules } from \"helpers\";\r\nimport CoAuthorList from \"./coAuthorList\";\r\nimport ArticleStatusEnum from \"constants/articleStatusEnum\";\r\n\r\nconst Authors = (props) => {\r\n const { onSave } = props;\r\n const formRef: any = useRef();\r\n const dispatch = useDispatch();\r\n const rules = {\r\n FullName: [getRequiredRules(\"Full name is required.\")],\r\n Salutation: [getRequiredRules(\"Salutation is required.\")],\r\n Designation: [getRequiredRules(\"Designation is required.\")],\r\n Institute: [getRequiredRules(\"Institute is required.\")],\r\n PostalAddress: [getRequiredRules(\"Address is required.\")],\r\n Email: [getRequiredRules(\"Email is required.\"), emailRule()],\r\n // Photo_UserFileName: [getRequiredRules(\"Photo is required.\")],\r\n // DigitalSignature_UserFileName: [getRequiredRules(\"Signature is required.\")],\r\n MobileNo: [mobileRules()],\r\n };\r\n\r\n const [isLoading, setLoading] = useState(false);\r\n\r\n const [coAuthorData, setCoAuthorData] = useState({\r\n index: -1,\r\n isVisible: false,\r\n });\r\n\r\n const [state, setState] = useState({\r\n ArticleId: 0,\r\n FullName: \"\",\r\n Salutation: \"\",\r\n Designation: \"\",\r\n Institute: \"\",\r\n PostalAddress: \"\",\r\n MobileNo: \"\",\r\n Email: \"\",\r\n Photo_ServerFileName: \"\",\r\n Photo_UserFileName: \"\",\r\n Photo: null,\r\n DigitalSignature_ServerFileName: \"\",\r\n DigitalSignature_UserFileName: \"\",\r\n DigitalSignature: null,\r\n Steps: 2,\r\n CoAuthors: [],\r\n });\r\n\r\n const { article } = useSelector((st: any) => st.articleReducer);\r\n const { salutations } = useSelector((st: any) => st.metaReducer);\r\n\r\n useEffect(() => {\r\n if (!isEmpty(article)) {\r\n setState({\r\n ...state,\r\n ArticleId: article.Id,\r\n FullName: article.InvestigatorName,\r\n Salutation: article.InvestigatorSalutation,\r\n Designation: article.InvestigatorDesignation,\r\n Institute: article.InvestigatorInstitute,\r\n PostalAddress: article.InvestigatorPostalAddress,\r\n MobileNo: article.InvestigatorMobileNo,\r\n Email: article.InvestigatorEmail,\r\n Photo_ServerFileName: article.InvestigatorPhoto_ServerFileName,\r\n Photo_UserFileName: article.InvestigatorPhoto_UserFileName,\r\n Photo: {\r\n serverFileName: article.InvestigatorPhoto_ServerFileName,\r\n name: article.InvestigatorPhoto_UserFileName,\r\n },\r\n DigitalSignature_ServerFileName:\r\n article.InvestigatorDigitalSignature_ServerFileName,\r\n DigitalSignature_UserFileName:\r\n article.InvestigatorDigitalSignature_UserFileName,\r\n DigitalSignature: {\r\n serverFileName: article.InvestigatorDigitalSignature_ServerFileName,\r\n name: article.InvestigatorDigitalSignature_UserFileName,\r\n },\r\n CoAuthors:\r\n article.ArticleCoAuthors &&\r\n article.ArticleCoAuthors.map((x) => ({\r\n ...x,\r\n Photo: !isEmpty(x.Photo_ServerFileName) && {\r\n serverFileName: x.Photo_ServerFileName,\r\n name: x.Photo_UserFileName,\r\n },\r\n DigitalSignature: !isEmpty(x.DigitalSignature_ServerFileName) && {\r\n serverFileName: x.DigitalSignature_ServerFileName,\r\n name: x.DigitalSignature_UserFileName,\r\n },\r\n })),\r\n });\r\n }\r\n }, [article]);\r\n\r\n const onChange = (name, val) => {\r\n let nextState = { ...state, [name]: val };\r\n if (val && name === \"Photo\") nextState.Photo_UserFileName = val.name;\r\n if (val && name === \"DigitalSignature\")\r\n nextState.DigitalSignature_UserFileName = val.name;\r\n\r\n setState(nextState);\r\n };\r\n const handleSubmit = async (e: any) => {\r\n e.preventDefault();\r\n\r\n formRef.current.validate(async (valid) => {\r\n if (valid) {\r\n //await dispatch(GetRoles());\r\n let data = new FormData();\r\n\r\n for (var k in state) {\r\n if (k !== \"CoAuthors\") {\r\n state[k] && data.append(`${k}`, state[k]);\r\n }\r\n }\r\n state.CoAuthors &&\r\n state.CoAuthors.forEach((el, index) => {\r\n for (var k in el) {\r\n if (k !== \"CoAuthors\")\r\n el[k] && data.append(`CoAuthors[${index}].${k}`, el[k]);\r\n }\r\n //formD\r\n });\r\n\r\n setLoading(true);\r\n var res: any = await dispatch(SaveAuthors(data));\r\n setLoading(false);\r\n if (res && res.Status) onSave();\r\n } else {\r\n return false;\r\n }\r\n });\r\n };\r\n const handleReset = (e: any) => {\r\n formRef.current.resetFields();\r\n setState({} as any);\r\n };\r\n\r\n const handleCoAuthorSave = (index, obj) => {\r\n let nextState = { ...state, CoAuthors: [...state.CoAuthors] };\r\n if (index >= 0) {\r\n nextState.CoAuthors[index] = { ...obj };\r\n } else {\r\n nextState.CoAuthors.push({ ...obj });\r\n }\r\n\r\n setState(nextState);\r\n setCoAuthorData({ index: -1, isVisible: false });\r\n // setVisible(false);\r\n };\r\n\r\n const handleCoAuthorEdit = (index, obj) => {\r\n setCoAuthorData({ index: index, isVisible: true });\r\n };\r\n const handleCoAuthorDelete = (index, obj) => {\r\n if (index >= 0) {\r\n let nextState = { ...state, CoAuthors: [...state.CoAuthors] };\r\n nextState.CoAuthors.splice(index, 1);\r\n setState(nextState);\r\n }\r\n };\r\n const checkIfDisabled = () => {\r\n if (article.Id != 0 && !article.CanEdit) return true;\r\n return article.Status === ArticleStatusEnum.SUBMITTED;\r\n };\r\n\r\n return (\r\n <div style={{ width: \"900px\" }}>\r\n <Form\r\n ref={formRef}\r\n rules={rules}\r\n className=\"demo-form-stacked\"\r\n model={state}\r\n labelPosition=\"top\"\r\n labelWidth=\"100\"\r\n >\r\n <div className=\"author-steps__authors\">\r\n <Layout.Row gutter=\"20\">\r\n <Layout.Col span=\"12\">\r\n <Form.Item label=\"Salutation\" prop=\"Salutation\">\r\n <Select\r\n value={state.Salutation}\r\n placeholder=\"Salutation\"\r\n onChange={(val: any) => onChange(\"Salutation\", val)}\r\n >\r\n {salutations &&\r\n salutations.map((item, index) => (\r\n <Select.Option\r\n key={index}\r\n label={item}\r\n value={item}\r\n ></Select.Option>\r\n ))}\r\n </Select>\r\n {/* <Input\r\n value={state.Salutation}\r\n onChange={(val: any) => onChange(\"Salutation\", val)}\r\n ></Input> */}\r\n </Form.Item>\r\n </Layout.Col>\r\n </Layout.Row>\r\n <Layout.Row gutter=\"20\">\r\n <Layout.Col span=\"12\">\r\n <Form.Item label=\"Full Name\" prop=\"FullName\">\r\n <Input\r\n value={state.FullName}\r\n onChange={(val: any) => onChange(\"FullName\", val)}\r\n ></Input>\r\n </Form.Item>\r\n </Layout.Col>\r\n <Layout.Col span=\"12\">\r\n <Form.Item label=\"Email\" prop=\"Email\">\r\n <Input\r\n value={state.Email}\r\n onChange={(val: any) => onChange(\"Email\", val)}\r\n ></Input>\r\n </Form.Item>\r\n </Layout.Col>\r\n </Layout.Row>\r\n\r\n <Layout.Row gutter=\"20\">\r\n <Layout.Col span=\"12\">\r\n <Form.Item label=\"Mobile\" prop=\"MobileNo\">\r\n <Input\r\n value={state.MobileNo}\r\n onChange={(val: any) => onChange(\"MobileNo\", val)}\r\n ></Input>\r\n </Form.Item>\r\n </Layout.Col>\r\n\r\n <Layout.Col span=\"12\">\r\n <Form.Item label=\"Address\" prop=\"PostalAddress\">\r\n <Input\r\n value={state.PostalAddress}\r\n onChange={(val: any) => onChange(\"PostalAddress\", val)}\r\n ></Input>\r\n </Form.Item>\r\n </Layout.Col>\r\n </Layout.Row>\r\n <Layout.Row gutter=\"20\">\r\n <Layout.Col span=\"12\">\r\n <Form.Item label=\"Institute\" prop=\"Institute\">\r\n <Input\r\n value={state.Institute}\r\n onChange={(val: any) => onChange(\"Institute\", val)}\r\n ></Input>\r\n </Form.Item>\r\n </Layout.Col>\r\n\r\n <Layout.Col span=\"12\">\r\n <Form.Item label=\"Designation\" prop=\"Designation\">\r\n <Input\r\n value={state.Designation}\r\n onChange={(val: any) => onChange(\"Designation\", val)}\r\n ></Input>\r\n </Form.Item>\r\n </Layout.Col>\r\n </Layout.Row>\r\n <Layout.Row>\r\n <Layout.Col span=\"12\">\r\n <Form.Item prop=\"Photo_UserFileName\">\r\n <AttachmentButton\r\n label=\"Photo\"\r\n value={state.Photo}\r\n name=\"Photo\"\r\n onChange={onChange}\r\n validExtensions={[\"jpg\", \"jpeg\", \"png\"]}\r\n />\r\n </Form.Item>\r\n </Layout.Col>\r\n <Layout.Col span=\"12\">\r\n <Form.Item prop=\"DigitalSignature_UserFileName\">\r\n <AttachmentButton\r\n label=\"Digital Signature\"\r\n value={state.DigitalSignature}\r\n name=\"DigitalSignature\"\r\n onChange={onChange}\r\n validExtensions={[\"jpg\", \"jpeg\", \"png\"]}\r\n />\r\n </Form.Item>\r\n </Layout.Col>\r\n </Layout.Row>\r\n </div>\r\n <div className=\"author-steps__co-authors\">\r\n <div className=\"author-steps__cauthors\">\r\n <Button\r\n onClick={() => setCoAuthorData({ index: -1, isVisible: true })}\r\n >\r\n Add CoAuthors\r\n </Button>\r\n </div>\r\n\r\n <CoAuthorList\r\n CoAuthors={state.CoAuthors}\r\n onDelelteClicked={handleCoAuthorDelete}\r\n onEditClicked={handleCoAuthorEdit}\r\n />\r\n </div>\r\n\r\n <Form.Item>\r\n <Button\r\n type=\"primary\"\r\n onClick={handleSubmit}\r\n nativeType=\"submit\"\r\n loading={isLoading}\r\n disabled={checkIfDisabled()}\r\n >\r\n Save and Continue\r\n </Button>\r\n </Form.Item>\r\n </Form>\r\n\r\n <EntryForm\r\n coAuthorData={coAuthorData}\r\n coAuthorList={state.CoAuthors}\r\n onSave={handleCoAuthorSave}\r\n onCancel={() => setCoAuthorData({ index: -1, isVisible: false })}\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport default Authors;\r\n","import React, { useEffect, useRef, useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { Form, Input, Button, Select, Checkbox } from 'element-react'\r\nimport { CheckList, Editor } from 'components/form'\r\nimport { CKEditor } from '@ckeditor/ckeditor5-react'\r\nimport ClassicEditor from '@ckeditor/ckeditor5-build-classic'\r\nimport { SaveMetaData } from 'store/actions/articles'\r\nimport { getRequiredRules, isEmpty } from 'helpers'\r\nimport ArticleStatusEnum from 'constants/articleStatusEnum'\r\n\r\nconst initialState = {\r\n prefix: '',\r\n introduction: '',\r\n methods: '',\r\n citedReference: '',\r\n abstract: '',\r\n}\r\n\r\nconst MetaData = (props) => {\r\n const { article } = useSelector((st: any) => st.articleReducer)\r\n var ref: any = useRef()\r\n const [state, setState] = useState(initialState)\r\n useEffect(() => {\r\n if (!isEmpty(article)) {\r\n setState({\r\n prefix: article.ProposalTitle,\r\n introduction: article.ProposalIntroduction,\r\n methods: article.PropsalMethods,\r\n citedReference: article.ProposalCitedReferences,\r\n abstract: article.ProposalAbstract,\r\n })\r\n }\r\n }, [article, props.selectedTab])\r\n const { onSave } = props\r\n const dispatch = useDispatch()\r\n const [isLoading, setLoading] = useState(false)\r\n\r\n const rules = {\r\n prefix: [getRequiredRules('This field is required.')],\r\n // introduction: [getRequiredRules('Introduction is required')],\r\n // methods: [getRequiredRules('Methods is required')],\r\n // citedReference: [getRequiredRules('Cited reference is required')],\r\n abstract: [getRequiredRules('Abstract is required')],\r\n }\r\n\r\n const onSaveClicked = async () => {\r\n ref.current.validate(async (valid) => {\r\n if (valid) {\r\n var param = {\r\n ...state,\r\n articleId: article.Id,\r\n steps: 4,\r\n }\r\n setLoading(true)\r\n var res: any = await dispatch(SaveMetaData(param))\r\n setLoading(false)\r\n if (res && res.Status) onSave()\r\n }\r\n })\r\n }\r\n const handleChange = (name, value) => {\r\n setState({ ...state, [name]: value })\r\n }\r\n const checkIfDisabled = () => {\r\n if (article.Id != 0 && !article.CanEdit) return true\r\n return article.Status === ArticleStatusEnum.SUBMITTED\r\n }\r\n return (\r\n <div className=\"user-form\">\r\n <Form\r\n className=\"demo-form-stacked\"\r\n labelPosition=\"top\"\r\n labelWidth=\"100\"\r\n model={state}\r\n ref={ref}\r\n rules={rules}\r\n >\r\n <Form.Item label=\"Title\" prop=\"prefix\">\r\n <Input\r\n type=\"text\"\r\n value={state.prefix}\r\n onChange={(val: any) => handleChange('prefix', val)}\r\n ></Input>\r\n </Form.Item>\r\n\r\n {/* <Form.Item label=\"Introduction\" prop=\"introduction\">\r\n <Editor\r\n name=\"introduction\"\r\n onChange={handleChange}\r\n value={state.introduction}\r\n />\r\n </Form.Item>\r\n <Form.Item label=\"Methods\" prop=\"methods\">\r\n <Editor\r\n name=\"methods\"\r\n onChange={handleChange}\r\n value={state.methods}\r\n />\r\n </Form.Item>\r\n <Form.Item label=\"Cited References\" prop=\"citedReference\">\r\n <Editor\r\n name=\"citedReference\"\r\n onChange={handleChange}\r\n value={state.citedReference}\r\n />\r\n </Form.Item> */}\r\n\r\n <Form.Item label=\"Abstract\" prop=\"abstract\">\r\n <Editor\r\n name=\"abstract\"\r\n onChange={handleChange}\r\n value={state.abstract}\r\n />\r\n </Form.Item>\r\n <Form.Item>\r\n <Button\r\n type=\"primary\"\r\n onClick={onSaveClicked}\r\n loading={isLoading}\r\n disabled={checkIfDisabled()}\r\n >\r\n Save and Continue\r\n </Button>\r\n </Form.Item>\r\n </Form>\r\n </div>\r\n )\r\n}\r\nexport default MetaData\r\n","import React, { useState } from \"react\";\r\nimport { Button } from \"element-react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { SaveConfrimation } from \"store/actions/articles\";\r\nimport ArticleStatusEnum from \"constants/articleStatusEnum\";\r\n\r\nconst SubmitArticle = (props) => {\r\n const { onConfirmation, revisionId } = props;\r\n const { article } = useSelector((st: any) => st.articleReducer);\r\n const dispatch = useDispatch();\r\n const [isLoading, setLoading] = useState(false);\r\n const onSaveClicked = async () => {\r\n var param = {\r\n articleId: article.Id,\r\n revisionId: parseInt(revisionId),\r\n steps: 5,\r\n };\r\n\r\n setLoading(true);\r\n var res: any = await dispatch(SaveConfrimation(param));\r\n setLoading(false);\r\n if (res && res.Status) onConfirmation();\r\n };\r\n const checkIfDisabled = () => {\r\n if (article.Id != 0 && !article.CanEdit) return true;\r\n return article.Status === ArticleStatusEnum.SUBMITTED;\r\n };\r\n return (\r\n <div>\r\n <div className=\"upload-steps__info\">\r\n Your submission has been uploaded and is ready to be sent. You may go\r\n back to review and adjust any of the information you have entered before\r\n continuing. When you are ready, click \"Finish Submission\"\r\n {revisionId}\r\n </div>\r\n <div>\r\n <Button\r\n disabled={checkIfDisabled()}\r\n type=\"primary\"\r\n onClick={() => onSaveClicked()}\r\n loading={isLoading}\r\n >\r\n Finish Submission\r\n </Button>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default SubmitArticle;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n Form,\r\n Input,\r\n Button,\r\n Select,\r\n Tabs,\r\n Message,\r\n Breadcrumb,\r\n} from \"element-react\";\r\nimport Start from \"./start\";\r\nimport UploadSubmission from \"./uploadSubmission\";\r\nimport Authors from \"./authors\";\r\nimport MetaData from \"./metaData\";\r\nimport SubmitArticle from \"./submitArticle\";\r\nimport { useHistory } from \"react-router\";\r\nimport RouteEnum from \"constants/routesEnum\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { GetArticle, clearArticle } from \"store/actions/articles\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { isEmpty } from \"helpers\";\r\n\r\nconst Submisson = (props) => {\r\n const [steps, setSteps] = useState(1);\r\n const [selectedTab, setSelectedTab] = useState(\"1\");\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const { articleId, revisionId } = props.match.params;\r\n const { article } = useSelector((st: any) => st.articleReducer);\r\n\r\n useEffect(() => {\r\n if (!isEmpty(article)) {\r\n var step = article.Steps;\r\n if (step <= 4) step++;\r\n setSteps(step);\r\n\r\n if (!isEmpty(revisionId)) step = 3;\r\n setSelectedTab(`${step}`);\r\n } else {\r\n setSteps(1);\r\n setSelectedTab(`1`);\r\n }\r\n }, [article]);\r\n\r\n useEffect(() => {\r\n if (articleId) {\r\n fetchArticle(articleId);\r\n } else {\r\n dispatch(clearArticle());\r\n }\r\n }, [articleId]);\r\n\r\n const fetchArticle = async (articleId) => {\r\n await dispatch(GetArticle(articleId));\r\n };\r\n\r\n const handleOnSaveStep1 = () => {\r\n updateStep(2);\r\n setSelectedTab(\"2\");\r\n };\r\n\r\n const handleOnSaveStep2 = () => {\r\n updateStep(3);\r\n setSelectedTab(\"3\");\r\n };\r\n const handleOnSaveStep3 = () => {\r\n updateStep(4);\r\n setSelectedTab(\"4\");\r\n };\r\n const handleOnSaveStep4 = () => {\r\n updateStep(5);\r\n setSelectedTab(\"5\");\r\n };\r\n const handleConfirmation = () => {\r\n Message({\r\n showClose: true,\r\n message: \"Congrats, submission completed.\",\r\n type: \"success\",\r\n });\r\n history.push(`${RouteEnum.submitter}`);\r\n };\r\n const updateStep = (newStep: number) => {\r\n if (newStep > steps) {\r\n setSteps(newStep);\r\n }\r\n };\r\n\r\n const isDisabled = (tab) => {\r\n return steps < tab;\r\n };\r\n\r\n const handleTabClicked = (e) => {\r\n const { name } = e.props;\r\n setSelectedTab(name);\r\n };\r\n\r\n const tabs = [\r\n {\r\n label: \"1.Start\",\r\n name: \"1\",\r\n component: (selectedTab) => (\r\n <Start onSave={() => handleOnSaveStep1()} selectedTab={selectedTab} />\r\n ),\r\n },\r\n {\r\n label: \"2. Authors and CoAuthors\",\r\n name: \"2\",\r\n component: (selectedTab) => (\r\n <Authors onSave={() => handleOnSaveStep2()} />\r\n ),\r\n },\r\n {\r\n label: \"3. Upload Submission\",\r\n name: \"3\",\r\n component: (selectedTab) => (\r\n <UploadSubmission onSave={() => handleOnSaveStep3()} />\r\n ),\r\n },\r\n {\r\n label: \"4. Enter Metadata\",\r\n name: \"4\",\r\n component: (selectedTab) => (\r\n <MetaData\r\n onSave={() => handleOnSaveStep4()}\r\n selectedTab={selectedTab}\r\n />\r\n ),\r\n },\r\n {\r\n label: \"5.Confirmation\",\r\n name: \"5\",\r\n component: () => (\r\n <SubmitArticle\r\n onConfirmation={() => handleConfirmation()}\r\n revisionId={revisionId}\r\n />\r\n ),\r\n },\r\n ];\r\n\r\n return (\r\n <>\r\n <Breadcrumb separator=\"/\">\r\n <Breadcrumb.Item>\r\n <Link to={RouteEnum.submitter}>Home</Link>\r\n </Breadcrumb.Item>\r\n {!isEmpty(revisionId) && (\r\n <Breadcrumb.Item>\r\n <Link to={`${RouteEnum.revisionDetail}/${revisionId}`}>\r\n Revision Detail\r\n </Link>\r\n </Breadcrumb.Item>\r\n )}\r\n <Breadcrumb.Item>Submission</Breadcrumb.Item>\r\n </Breadcrumb>\r\n\r\n <div className=\"submission\">\r\n <Tabs type=\"card\" value={selectedTab} onTabClick={handleTabClicked}>\r\n {tabs.map((item, index) => (\r\n <Tabs.Pane\r\n key={index}\r\n label={item.label}\r\n name={item.name}\r\n disabled={isDisabled(index + 1)}\r\n >\r\n {item.component(selectedTab)}\r\n </Tabs.Pane>\r\n ))}\r\n </Tabs>\r\n </div>\r\n </>\r\n );\r\n};\r\nexport default Submisson;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Button } from \"element-react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { isEmpty } from \"helpers\";\r\n\r\nimport { SaveAttachment } from \"store/actions/articles\";\r\nimport { FiFile } from \"react-icons/fi\";\r\nimport ArticleStatusEnum from \"constants/articleStatusEnum\";\r\nimport { AttachmentButton } from \"components/form\";\r\nconst Attachments = (props) => {\r\n const { onSave, files, title } = props;\r\n\r\n const dispatch = useDispatch();\r\n\r\n return (\r\n <div className=\"attachment__container\">\r\n <div className=\"attachment__header\">\r\n <div>{title}</div>\r\n <div className=\"attachment__header-action\"></div>\r\n </div>\r\n\r\n <div className=\"attachment__body\">\r\n {files &&\r\n files.map((file, index) => (\r\n <div className=\"attachment__files\" key={index}>\r\n <div className=\"attachment__files-info\">\r\n <div className=\"attachment__files-info-title\">\r\n <AttachmentButton value={file} isPreview={true} />\r\n </div>\r\n <div className=\"attachment__files-info-subtitle\">\r\n Component: {file.ComponentName}\r\n </div>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n};\r\nexport default Attachments;\r\n","import { Breadcrumb, Button, Dialog } from \"element-react\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport UploadRevisionFiles from \"./uploadRevisionFiles\";\r\nimport SubmissionForm from \"../../common/articleSubmissionForm\";\r\nimport { createMarkup, isEmpty } from \"helpers\";\r\nimport { GetRevision } from \"store/actions/articles\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport Loader from \"components/loader.tsx\";\r\nimport { Wrapper } from \"components/form\";\r\nimport Attachments from \"scenes/common/attachments\";\r\nimport { useHistory } from \"react-router\";\r\nimport RouteEnum from \"constants/routesEnum\";\r\nimport { Link } from \"react-router-dom\";\r\nconst Revision = (props) => {\r\n const [state, setState] = useState({\r\n show: false,\r\n isloading: false,\r\n revision: null,\r\n });\r\n\r\n const { revisionId } = props.match.params;\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n useEffect(() => {\r\n if (!isEmpty(revisionId)) {\r\n fetchRevision(revisionId);\r\n }\r\n }, [revisionId]);\r\n\r\n const fetchRevision = async (id) => {\r\n var res = await dispatch(GetRevision(id));\r\n setState({ ...state, revision: res });\r\n };\r\n const { revision, isloading } = state;\r\n return (\r\n <Loader isLoading={isloading}>\r\n <Breadcrumb separator=\"/\">\r\n <Breadcrumb.Item>\r\n <Link to={RouteEnum.submitter}>Home</Link>\r\n </Breadcrumb.Item>\r\n <Breadcrumb.Item>Revision Detail</Breadcrumb.Item>\r\n </Breadcrumb>\r\n {isEmpty(revision) ? null : (\r\n <div className=\"revision\">\r\n <div className=\"revison-content\">\r\n <div>\r\n <Wrapper label=\"Comments\">\r\n <div\r\n className=\"ck-editor-content\"\r\n dangerouslySetInnerHTML={createMarkup(revision.Comments)}\r\n ></div>\r\n </Wrapper>\r\n <Wrapper>\r\n <Attachments\r\n files={revision.Attachments}\r\n title=\"Review Files\"\r\n />\r\n </Wrapper>\r\n <Wrapper>\r\n <Button\r\n type=\"primary\"\r\n onClick={() => {\r\n history.push(\r\n `${RouteEnum.revision}/${revisionId}/${revision.ArticleId}`\r\n );\r\n }}\r\n >\r\n Revise\r\n </Button>\r\n </Wrapper>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </Loader>\r\n );\r\n};\r\n\r\nexport default Revision;\r\n","import { isEmpty } from \"helpers\";\r\nimport { post, put, get, deletion, api } from \"networkService\";\r\nimport types from \"store/types\";\r\n\r\nexport const GetCommenstList = (id) => async (dispatch: Function) => {\r\n const res: any = await get(`${api.articles.comment}/${id}`, dispatch);\r\n return res;\r\n};\r\nexport const PostComment = (param) => async (dispatch: Function) => {\r\n let data = new FormData();\r\n for (var key in param) {\r\n if (key !== \"Files\") {\r\n data.append(key, param[key]);\r\n } else {\r\n for (var i = 0; i < param.Files.length; i++) {\r\n if (param.Files[i]?.file)\r\n data.append(`Files`, param.Files[i].file || null);\r\n else {\r\n let file: any = param.Files[i];\r\n for (var fileKey in file) {\r\n data.append(`Attachments[${i}][${fileKey}]`, file[fileKey]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n const res: any = await post(\r\n `${api.articles.comment}`,\r\n dispatch,\r\n data,\r\n true,\r\n true\r\n );\r\n\r\n return res;\r\n};\r\n\r\nexport const DeleteComment = (id) => async (dispatch: Function) => {\r\n //(`${api.articles.comment}/${id}`, dispatch);\r\n const res: any = await deletion(`${api.articles.comment}`, dispatch, id);\r\n debugger;\r\n return res;\r\n};\r\n","import React, { useEffect } from 'react'\r\nimport { Editor } from 'components/form'\r\nimport UploadReviewFiles from 'scenes/common/uploadFiles'\r\nimport Attachments from 'scenes/viewArticle/components/attachment'\r\nimport { Form, Input, Button, Select, Checkbox } from 'element-react'\r\n\r\nimport { useState } from 'react'\r\nimport './style.scss'\r\nimport { FaPaperPlane, FaTimes } from 'react-icons/fa'\r\nimport { isEmpty } from 'helpers'\r\nimport { PostComment } from 'store/actions/comment'\r\nimport { useDispatch } from 'react-redux'\r\nimport { AttachmentsButton } from 'components/form'\r\n\r\nconst CommentEditor = (props) => {\r\n const { articleId, onSaveClicked, editData, onCancel } = props\r\n const [state, setState] = useState({\r\n id: 0,\r\n comment: '',\r\n attachments: [],\r\n isLoading: false,\r\n })\r\n\r\n const dispatch = useDispatch()\r\n\r\n useEffect(() => {\r\n if (editData) {\r\n setState((prev) => ({\r\n ...prev,\r\n id: editData.Id,\r\n comment: editData.Comment,\r\n attachments: editData.Attachments,\r\n }))\r\n }\r\n }, [editData])\r\n\r\n const handleSaveClick = async () => {\r\n setState({ ...state, isLoading: true })\r\n\r\n const param = {\r\n id: state.id,\r\n ArticleId: articleId || editData?.ArticleRef_Id,\r\n Comment: state.comment,\r\n Files: state.attachments,\r\n }\r\n\r\n const res: any = await dispatch(PostComment(param))\r\n\r\n setState((prev) => {\r\n let nextState = { ...prev }\r\n nextState.isLoading = false\r\n if (res && res.Status) {\r\n nextState.attachments = []\r\n nextState.comment = ''\r\n }\r\n onSaveClicked && onSaveClicked(param)\r\n return nextState\r\n })\r\n\r\n // ;\r\n }\r\n const handleChange = (name, val) => {\r\n debugger\r\n setState((prev) => ({ ...prev, [name]: val }))\r\n }\r\n\r\n return (\r\n <div className=\"comment__new\">\r\n <Editor name=\"comment\" onChange={handleChange} value={state.comment} />\r\n\r\n <AttachmentsButton\r\n multiple\r\n value={state.attachments}\r\n name=\"attachments\"\r\n onChange={handleChange}\r\n validExtensions={[\r\n 'pdf',\r\n 'doc',\r\n 'docx',\r\n 'jpeg',\r\n 'jpg',\r\n 'png',\r\n 'xl',\r\n 'xls',\r\n ]}\r\n />\r\n <div className=\"comment__new-footer\">\r\n <div className=\"comment__new-footer-attachments\"></div>\r\n <div className=\"comment__new-footer-submit\">\r\n <Button className=\"btn-cancel\" type=\"danger\" onClick={onCancel}>\r\n <FaTimes />\r\n Cancel\r\n </Button>\r\n\r\n <Button\r\n type=\"primary\"\r\n onClick={handleSaveClick}\r\n loading={state.isLoading}\r\n >\r\n <FaPaperPlane />\r\n Save Comment\r\n </Button>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default CommentEditor\r\n","import React, { useEffect, useState } from 'react'\r\nimport { AttachmentsButton } from 'components/form'\r\nimport CommentEditor from './commentEditor'\r\nimport { useDispatch } from 'react-redux'\r\nimport { DeleteComment } from 'store/actions/comment'\r\nimport { Message, MessageBox } from 'element-react'\r\nconst CommentBody = (props) => {\r\n const { comment, article } = props\r\n const dispatch = useDispatch()\r\n useEffect(() => {\r\n setState({ ...state, comment })\r\n }, [comment])\r\n\r\n const [state, setState] = useState({ isEdit: false, comment: null })\r\n const handleSaveClicked = (obj) => {\r\n setState({\r\n ...state,\r\n isEdit: false,\r\n comment: { ...state.comment, Comment: obj.Comment },\r\n })\r\n props.onSaved && props.onSaved()\r\n }\r\n\r\n const handleDelete = async (obj: any) => {\r\n MessageBox.confirm(\r\n 'This will permanently delete the comment. Continue?',\r\n 'Warning',\r\n {\r\n confirmButtonText: 'OK',\r\n cancelButtonText: 'Cancel',\r\n type: 'warning',\r\n },\r\n )\r\n .then(async () => {\r\n const res: any = await dispatch(DeleteComment(obj?.Id))\r\n if (res.Status) props.onDelete && props.onDelete()\r\n })\r\n .catch(() => {\r\n Message({\r\n type: 'info',\r\n message: 'Delete canceled',\r\n })\r\n })\r\n }\r\n return (\r\n <>\r\n {!state.isEdit ? (\r\n <>\r\n <div className=\"comment-body ck-editor-content\">\r\n <a href={`/uploads/${comment.ServerFileName}`} target=\"_blank\">\r\n {state?.comment?.UserFileName}\r\n </a>\r\n <div\r\n dangerouslySetInnerHTML={{ __html: state?.comment?.Comment }}\r\n />\r\n <div className=\"comment-body-attachments\">\r\n <AttachmentsButton\r\n isPreview\r\n value={state?.comment?.Attachments}\r\n title=\"Attachments\"\r\n />\r\n </div>\r\n </div>\r\n <div className=\"editdelete\">\r\n {article?.CanEdit && (\r\n <span onClick={() => setState({ ...state, isEdit: true })}>\r\n Edit\r\n </span>\r\n )}\r\n {article?.CanDelete && (\r\n <span onClick={() => handleDelete(state?.comment)}> Delete </span>\r\n )}\r\n </div>\r\n </>\r\n ) : (\r\n <CommentEditor\r\n onSaveClicked={handleSaveClicked}\r\n editData={state?.comment}\r\n onCancel={() => setState({ ...state, isEdit: false })}\r\n />\r\n )}\r\n </>\r\n )\r\n}\r\nexport default CommentBody\r\n","import React, { useEffect } from \"react\";\r\nimport Attachments from \"scenes/viewArticle/components/attachment\";\r\n\r\nimport { useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { GetCommenstList, PostComment } from \"store/actions/comment\";\r\nimport { FiUser } from \"react-icons/fi\";\r\nimport \"./style.scss\";\r\nimport moment from \"moment\";\r\nimport CommentEditor from \"./commentEditor\";\r\nimport CommentBody from \"./commentBody\";\r\nimport { FaPlus } from \"react-icons/fa\";\r\nimport { Breadcrumb, Button } from \"element-react\";\r\n\r\nimport { Link, NavLink, useHistory } from \"react-router-dom\";\r\nimport RouteEnum from \"constants/routesEnum\";\r\n\r\nconst Comments = (props) => {\r\n const [commentdata, setCommentData] = useState(\"\");\r\n const [comments, setComments] = useState([]);\r\n const [attachments, setAttachments] = useState([]);\r\n const [showAddComment, setAddComment] = useState(false);\r\n\r\n const { articleId } = props; // props.match.params;\r\n\r\n const dispatch = useDispatch();\r\n useEffect(() => {\r\n loadComments(articleId ?? 0);\r\n }, [articleId]);\r\n\r\n const loadComments = async (articleId) => {\r\n var articleComments: any = await dispatch(GetCommenstList(articleId));\r\n setComments(articleComments);\r\n };\r\n const onSaveClicked = async (obj) => {\r\n loadComments(obj.ArticleId);\r\n setAddComment(false);\r\n };\r\n const formatDate = (cd) => {\r\n return cd && moment(new Date(cd)).format(\"MMMM Do YYYY, h:mm:ss a\");\r\n };\r\n\r\n const onSuccess = () => {\r\n debugger;\r\n loadComments(articleId);\r\n };\r\n return (\r\n <>\r\n {showAddComment ? (\r\n <>\r\n <div className=\"comment-container\">\r\n <CommentEditor\r\n articleId={articleId}\r\n onSaveClicked={onSaveClicked}\r\n onCancel={() => setAddComment(false)}\r\n />\r\n </div>\r\n </>\r\n ) : (\r\n <>\r\n <div className=\"comment-container\">\r\n {comments.length > 0 ? (\r\n <div className=\"comment-container-content\">\r\n {comments.map((item, index) => {\r\n return (\r\n <>\r\n <div className=\"comment\" key={index}>\r\n <div className=\"comment-header\">\r\n <div className=\"ic-image\">\r\n <FiUser />\r\n </div>\r\n <span className=\"comment-emp-name\">\r\n {item.FullName}\r\n </span>\r\n <span className=\"comment-date\">\r\n {formatDate(item.CreatedOn)}{\" \"}\r\n </span>\r\n </div>\r\n <CommentBody\r\n article={props.article}\r\n comment={item}\r\n onDelete={() => onSuccess()}\r\n onSaved={() => onSuccess()}\r\n />\r\n </div>\r\n </>\r\n );\r\n })}\r\n </div>\r\n ) : (\r\n <div className=\"no-comments\">No comments till now!</div>\r\n )}\r\n </div>\r\n <div className=\"add-comment\">\r\n <div\r\n className=\"add-comment-btn\"\r\n onClick={() => setAddComment(true)}\r\n >\r\n <FaPlus />\r\n </div>\r\n </div>\r\n </>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default Comments;\r\n","import React, { useState } from \"react\";\r\nimport { Badge, Button, Dialog, Progress } from \"element-react\";\r\nimport { MdOutlineChat, MdPreview } from \"react-icons/md\";\r\nimport Comments from \"./index\";\r\n\r\nconst CommentButton = (props) => {\r\n const { articleId, article } = props;\r\n const [state, setState] = useState({ show: false });\r\n return (\r\n <>\r\n <span\r\n className=\"comment\"\r\n onClick={() => setState({ ...state, show: true })}\r\n >\r\n <Badge value={article?.TotalComments || 0}>\r\n <MdOutlineChat />\r\n </Badge>\r\n </span>\r\n\r\n {state.show && (\r\n <Dialog\r\n lockScroll\r\n top=\"5%\"\r\n // customClass=\"comment-modal\"\r\n title=\"Comments\"\r\n visible={state.show}\r\n onCancel={() => setState({ ...state, show: false })}\r\n >\r\n <Dialog.Body>\r\n <Comments articleId={articleId} article={article} />\r\n </Dialog.Body>\r\n </Dialog>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default CommentButton;\r\n","import { HWrapper } from \"components/form\";\r\nimport RoleEnum from \"constants/roleEnum\";\r\nimport { RouteEnum } from \"constants/routesEnum\";\r\nimport { Badge, Button, Progress } from \"element-react\";\r\nimport { isEmpty, renderStatus } from \"helpers\";\r\nimport { UserDetailInterface } from \"interfaces/actions/auth\";\r\nimport React from \"react\";\r\nimport { FaList } from \"react-icons/fa\";\r\nimport { MdOutlineChat, MdPreview } from \"react-icons/md\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport CommentButton from \"../../../comments/commentButton\";\r\n\r\nconst ArticleCard = (props) => {\r\n const { article, actions, index } = props;\r\n const history = useHistory();\r\n const { RoleName } = useSelector(\r\n (state: any) => state.userReducer.loggedInUserDetail as UserDetailInterface\r\n );\r\n\r\n const completion = (article && ((article.Steps || 0) / 5) * 100) || 0;\r\n const reviewCompletion =\r\n (article && ((article.ReviewSteps || 0) / 4) * 100) || 0;\r\n\r\n const cardDetailRightCol = () => {\r\n return (\r\n RoleName === RoleEnum.Reviewer && (\r\n <div className=\"article-card__details-col-2\">\r\n {article && !isEmpty(article.ReviewResponsedOnString) && (\r\n <div className=\"info\">\r\n <span className=\"info-date\">\r\n {article.ReviewResponsedOnString}\r\n </span>\r\n <span className=\"info-label\">Responded On</span>\r\n </div>\r\n )}\r\n {article && !isEmpty(article.ReviewResponseDueDate) && (\r\n <div className=\"info\">\r\n <span className=\"info-date\">\r\n {article.ReviewResponseDueDateString}\r\n </span>\r\n <span className=\"info-label\">Response Due Date</span>\r\n </div>\r\n )}\r\n {article && !isEmpty(article.ReviewDueDateString) && (\r\n <div className=\"info\">\r\n <span className=\"info-date\">{article.ReviewDueDateString}</span>\r\n <span className=\"info-label\">Review Due Date</span>\r\n </div>\r\n )}\r\n </div>\r\n )\r\n );\r\n };\r\n return (\r\n <div className=\"article-card\">\r\n <div className=\"article-card__details\">\r\n <div className=\"article-card__details-col-1\">\r\n <div>\r\n <HWrapper label=\"Title\">{article.ProposalTitle}</HWrapper>\r\n <HWrapper label=\"Type of Submission\">{article.SectionName}</HWrapper>\r\n <HWrapper label=\"Sub Type of Submission\">{article.SubSectionName}</HWrapper>\r\n\r\n <div className=\"article-card__info\">\r\n {article.SubmittedOn && (\r\n <>\r\n <div className=\"article-card__info-detail\">\r\n {RoleName === RoleEnum.Administrator ||\r\n RoleName === RoleEnum.Editor ? (\r\n <span>\r\n Submitted by\r\n {`${article.InvestigatorSalutation} ${article.InvestigatorName}`}{\" \"}\r\n on\r\n </span>\r\n ) : (\r\n <span>Submitted on</span>\r\n )}\r\n <span>{article.DateInString}</span>\r\n </div>\r\n <div className=\"article-card__info-block\">\r\n <span>Submission Number:</span>\r\n <span>{article.SubmissionNumber}</span>\r\n </div>\r\n </>\r\n )}\r\n </div>\r\n\r\n <div className=\"article-card__status\">\r\n {RoleName === RoleEnum.Reviewer ? (\r\n <div className=\"article-card__status-progress\">\r\n <Progress\r\n type=\"circle\"\r\n strokeWidth={12}\r\n percentage={reviewCompletion}\r\n />\r\n </div>\r\n ) : (\r\n <div className=\"article-card__status-progress\">\r\n <Progress\r\n type=\"circle\"\r\n strokeWidth={12}\r\n percentage={completion}\r\n />\r\n </div>\r\n )}\r\n {(RoleName === RoleEnum.Administrator ||\r\n RoleName === RoleEnum.Editor) && (\r\n <>\r\n <div\r\n className=\"article-card__status-reviewinfo\"\r\n title={`${article.CompletedReview} Completed Reviews / ${article.TotalReview} Total Reviews `}\r\n >\r\n <MdPreview /> {article.CompletedReview}/\r\n {article.TotalReview}\r\n </div>\r\n {article.TotalReview > 0 && (\r\n <>\r\n <div className=\"article-card__status-reviewinfo\">\r\n <span>Total requested review: </span>\r\n {article.TotalReview}\r\n </div>\r\n <div className=\"article-card__status-reviewinfo\">\r\n <span>Waiting Reviews for Acceptance: </span>\r\n {article.NoOfReviewWaitingAcceptance}\r\n </div>\r\n <div className=\"article-card__status-reviewinfo\">\r\n <span>Total Accepted Reviews: </span>\r\n {article.NoOfReviewAccepted}\r\n </div>\r\n <div className=\"article-card__status-reviewinfo\">\r\n <span>Total Submitted Reviews: </span>\r\n {article.CompletedReview}\r\n </div>\r\n </>\r\n )}\r\n </>\r\n )}\r\n {renderStatus(\r\n article,\r\n RoleName,\r\n article.Status,\r\n article.ReviewRecommendation\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n {cardDetailRightCol()}\r\n </div>\r\n <div className=\"article-card__action\">\r\n <div className=\"article-card__action-left\">\r\n <CommentButton articleId={article.Id} article={article} />\r\n\r\n {RoleName !== RoleEnum.Reviewer && (\r\n <Button\r\n size=\"mini\"\r\n onClick={() =>\r\n history.push(`${RouteEnum.viewArticle}/${article.Id}`)\r\n }\r\n >\r\n <FaList />\r\n View\r\n </Button>\r\n )}\r\n </div>\r\n <div className=\"article-card__action-right\">\r\n <div>{actions && actions(article, index)}</div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default ArticleCard;\r\n","import React from \"react\";\r\nimport { Table, Pagination, Progress, Button, Badge } from \"element-react\";\r\nimport ArticleCard from \"./articleCard\";\r\ninterface TableProps {\r\n width?: any;\r\n data: any[];\r\n totalData: number;\r\n PageIndex: number;\r\n pageSize: number;\r\n actions: Function;\r\n handlePageSizeChanged: (size?: number) => void;\r\n handlePageChanged: (currentPage?: number) => void;\r\n}\r\n\r\nconst CardView = (props: TableProps) => {\r\n const {\r\n data,\r\n totalData,\r\n pageSize,\r\n PageIndex,\r\n handlePageSizeChanged,\r\n handlePageChanged,\r\n actions,\r\n } = props;\r\n\r\n return (\r\n <>\r\n {data &&\r\n data.map((x, index) => (\r\n <ArticleCard\r\n key={index}\r\n index={index}\r\n article={x}\r\n actions={actions}\r\n />\r\n ))}\r\n\r\n {totalData === 0 && <div className=\"no-table-data\">No Data</div>}\r\n {totalData > 0 && (\r\n <Pagination\r\n layout=\"total, sizes, prev, pager, next\"\r\n total={totalData}\r\n pageSizes={[10, 20, 50, 100]}\r\n pageSize={pageSize}\r\n currentPage={PageIndex}\r\n onSizeChange={handlePageSizeChanged}\r\n onCurrentChange={handlePageChanged}\r\n />\r\n )}\r\n </>\r\n );\r\n};\r\nCardView.defaultProps = {\r\n width: \"100%\",\r\n};\r\n\r\nexport default CardView;\r\n","import React from \"react\";\r\nimport { Form, Input, Button, Select, Dialog } from \"element-react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport RouteEnum from \"constants/routesEnum\";\r\n\r\nconst SearchFilter = (props) => {\r\n const { state, setState, onSearchClicked } = props;\r\n\r\n const onChangeSearch = (name, val) => {\r\n setState({ ...state, [name]: val });\r\n };\r\n return (\r\n <div className=\"submission-search\">\r\n <Form inline={true}>\r\n <Form.Item>\r\n <Input\r\n style={{ width: \"250px\" }}\r\n value={state.proposalTitle}\r\n placeholder=\"Article Ttile\"\r\n onChange={(val: any) => onChangeSearch(\"proposalTitle\", val)}\r\n ></Input>\r\n </Form.Item>\r\n <Form.Item>\r\n <Input\r\n style={{ width: \"250px\" }}\r\n value={state.submissionNumber}\r\n placeholder=\"Submission Number\"\r\n onChange={(val: any) => onChangeSearch(\"submissionNumber\", val)}\r\n ></Input>\r\n </Form.Item>\r\n\r\n <Form.Item>\r\n <Input\r\n style={{ width: \"250px\" }}\r\n value={state.section}\r\n placeholder=\"Type of Submission\"\r\n onChange={(val: any) => onChangeSearch(\"section\", val)}\r\n ></Input>\r\n </Form.Item>\r\n\r\n <Form.Item>\r\n <Input\r\n style={{ width: \"250px\" }}\r\n value={state.subSection}\r\n placeholder=\"Sub Type of Submission\"\r\n onChange={(val: any) => onChangeSearch(\"subSection\", val)}\r\n ></Input>\r\n </Form.Item>\r\n\r\n <Form.Item>\r\n <Button type=\"primary\" onClick={() => onSearchClicked()}>\r\n Search\r\n </Button>\r\n </Form.Item>\r\n </Form>\r\n </div>\r\n );\r\n};\r\n\r\nexport default SearchFilter;\r\n","import React, {\r\n useEffect,\r\n useState,\r\n forwardRef,\r\n useImperativeHandle,\r\n} from 'react'\r\nimport { useDispatch } from 'react-redux'\r\nimport { useHistory } from 'react-router'\r\nimport { CountArticle, GetArticles } from 'store/actions/articles'\r\nimport CardView from './cardView'\r\nimport SearchFilter from './searchFilter'\r\n\r\nconst Articles = ({ selectedTab, getStatus, actions }, ref) => {\r\n if (ref == null) return\r\n const [state, setState] = useState({\r\n status: 0,\r\n PageIndex: 1,\r\n pageSize: 20,\r\n propsalTitle: '',\r\n section: '',\r\n subSection: '',\r\n })\r\n useEffect(() => {\r\n var status = getStatus()\r\n fetchData({ ...state, status, selectedTab })\r\n }, [selectedTab])\r\n\r\n useImperativeHandle(ref, () => ({\r\n async loadData() {\r\n var status = getStatus()\r\n\r\n await fetchData({ ...state, status, selectedTab })\r\n },\r\n }))\r\n\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const [list, setList] = useState([])\r\n\r\n const fetchData = async (param) => {\r\n var ls: any = []\r\n countArticles(param)\r\n ls = await dispatch(GetArticles(param))\r\n setList(ls)\r\n }\r\n const countArticles = async (param) => {\r\n dispatch(CountArticle(param))\r\n }\r\n\r\n const handleSearchClicked = () => {\r\n var status = getStatus()\r\n let newState = { ...state, pageIndex: 1, pageSize: 20, status }\r\n setState(newState)\r\n fetchData(newState)\r\n }\r\n const handlePageSizeChanged = (size) => {\r\n let newState = { ...state, pageSize: size, status: getStatus() }\r\n setState(newState)\r\n fetchData(newState)\r\n }\r\n const handlePageChanged = (page) => {\r\n let newState = { ...state, pageIndex: page, status: getStatus() }\r\n setState(newState)\r\n fetchData(newState)\r\n }\r\n\r\n let totalData = 0\r\n if (list && list.length > 0) {\r\n totalData = list[0].TotalData\r\n }\r\n return (\r\n <div className=\"submitter\">\r\n <SearchFilter\r\n state={state}\r\n setState={setState}\r\n onSearchClicked={handleSearchClicked}\r\n />\r\n <CardView\r\n actions={actions}\r\n data={list}\r\n totalData={totalData}\r\n pageSize={state.pageSize}\r\n PageIndex={state.PageIndex}\r\n handlePageSizeChanged={handlePageSizeChanged}\r\n handlePageChanged={handlePageChanged}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default forwardRef(Articles)\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { Link, NavLink, useHistory } from \"react-router-dom\";\r\nimport { Button } from \"element-react\";\r\nimport { FaPlus, FaEdit, FaTrash, FaList } from \"react-icons/fa\";\r\nimport { MdRefresh } from \"react-icons/md\";\r\nimport ArticleStatusEnum from \"constants/articleStatusEnum\";\r\n\r\nconst Actions = ({\r\n row,\r\n handleEditClick,\r\n handleDelete,\r\n handleRevisionClick,\r\n}) => {\r\n const history = useHistory();\r\n const getActions = () => {\r\n let actions = [];\r\n\r\n if (row.Status === ArticleStatusEnum.NEW) {\r\n actions.push(\r\n <Button size=\"mini\" onClick={() => handleEditClick(row)}>\r\n <FaEdit />\r\n Edit\r\n </Button>\r\n );\r\n }\r\n\r\n if (row.Status === ArticleStatusEnum.REVISION && row) {\r\n actions.push(\r\n <Button size=\"mini\" onClick={() => handleRevisionClick(row)}>\r\n <MdRefresh />\r\n Revise\r\n </Button>\r\n );\r\n }\r\n if (row.Status === ArticleStatusEnum.NEW) {\r\n actions.push(\r\n <Button size=\"mini\" onClick={() => handleDelete(row)}>\r\n <FaTrash />\r\n Delete\r\n </Button>\r\n );\r\n }\r\n\r\n let div = (\r\n <div className=\"table-actions\">\r\n <ul>{actions}</ul>\r\n </div>\r\n );\r\n return actions.length > 0 ? div : null;\r\n };\r\n\r\n return <>{getActions()}</>;\r\n};\r\n\r\nexport default Actions;\r\n","import React, { useRef } from 'react'\r\nimport { useDispatch } from 'react-redux'\r\nimport { useHistory } from 'react-router-dom'\r\n\r\nimport { MessageBox } from 'element-react'\r\nimport { DeleteArticle } from 'store/actions/articles'\r\nimport RouteEnum from 'constants/routesEnum'\r\nimport ArticleStatusEnum from 'constants/articleStatusEnum'\r\nimport Articles from 'scenes/common/articles'\r\nimport Actions from './actions'\r\n\r\nconst Submissions = (props) => {\r\n const { selectedTab } = props\r\n const articlesRef: any = useRef(null)\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n\r\n const getStatus = () => {\r\n var status = '0'\r\n if (selectedTab == 'NEW') status = `${ArticleStatusEnum.NEW}`\r\n else if (selectedTab == 'SUBMITTED') {\r\n status = status = [\r\n ArticleStatusEnum.SUBMITTED,\r\n ArticleStatusEnum.ASSIGNEDEDITOR,\r\n ArticleStatusEnum.REVIEWING,\r\n ArticleStatusEnum.REVIEWED,\r\n ArticleStatusEnum.RESUBMITTED,\r\n ].toString()\r\n } else if (selectedTab == 'REVERTED')\r\n status = `${ArticleStatusEnum.REVISION}`\r\n else if (selectedTab == 'REJECTED') status = `${ArticleStatusEnum.REJECTED}`\r\n else if (selectedTab == 'APPROVED') status = `${ArticleStatusEnum.APPROVED}`\r\n return status\r\n }\r\n\r\n const confirmDelete = (obj) => {\r\n MessageBox.confirm('This will permanently delete. Continue?', 'Warning', {\r\n confirmButtonText: 'OK',\r\n cancelButtonText: 'Cancel',\r\n type: 'warning',\r\n })\r\n .then(async () => {\r\n await dispatch(DeleteArticle(obj.Id))\r\n articlesRef.current.loadData()\r\n })\r\n .catch(() => {})\r\n }\r\n\r\n const renderAction = (row, index) => {\r\n return (\r\n <Actions\r\n row={row}\r\n handleEditClick={(row) =>\r\n history.push(`${RouteEnum.submission}/${row.Id}`)\r\n }\r\n handleDelete={(row) => confirmDelete(row)}\r\n handleRevisionClick={(row) =>\r\n history.push(`${RouteEnum.revisionDetail}/${row.RevisionId}`)\r\n }\r\n />\r\n )\r\n }\r\n return (\r\n <div className=\"submitter\">\r\n <Articles\r\n selectedTab={selectedTab}\r\n actions={renderAction}\r\n getStatus={getStatus}\r\n ref={articlesRef}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default Submissions\r\n","import classNames from \"classnames\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nconst TabTitle = ({ item, selectedTab, count }) => {\r\n const { articleCounts } = useSelector((state: any) => state.articleReducer);\r\n const getValue = (name) => {\r\n var res = articleCounts.find((x) => x.Type === name);\r\n\r\n return (res && res.Total) || 0;\r\n };\r\n return (\r\n <div>\r\n <span className=\"tab-title\">{item.label}</span>\r\n <span\r\n className={classNames(\"tab-count\", {\r\n \"tab-count-active\": selectedTab === item.name,\r\n })}\r\n >\r\n {getValue(item.name)}\r\n </span>\r\n </div>\r\n );\r\n};\r\nexport default TabTitle;\r\n","import Submisson from \"scenes/submitter/submission\";\r\nimport Revision from \"scenes/submitter/revision\";\r\nimport Submitter from \"scenes/submitter\";\r\nimport RoleEnum from \"constants/roleEnum\";\r\nimport RouteEnum from \"constants/routesEnum\";\r\n\r\nconst SubmitterRoutes = [\r\n {\r\n exact: true,\r\n component: Submitter,\r\n role: RoleEnum.Submitter,\r\n title: \"Dashboard\",\r\n path: RouteEnum.submitter,\r\n },\r\n {\r\n exact: true,\r\n component: Submisson,\r\n role: RoleEnum.Submitter,\r\n title: \"Submission\",\r\n path: RouteEnum.submission,\r\n },\r\n {\r\n exact: true,\r\n component: Submisson,\r\n role: RoleEnum.Submitter,\r\n title: \"Submission\",\r\n path: `${RouteEnum.submission}/:articleId`,\r\n },\r\n {\r\n exact: true,\r\n component: Submisson,\r\n role: RoleEnum.Submitter,\r\n title: \"Revision\",\r\n path: `${RouteEnum.revision}/:revisionId/:articleId`,\r\n },\r\n {\r\n exact: true,\r\n component: Revision,\r\n role: RoleEnum.Submitter,\r\n title: \"Submission\",\r\n path: `${RouteEnum.revisionDetail}/:revisionId`,\r\n },\r\n];\r\n\r\nexport default SubmitterRoutes;\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { Link, NavLink, useHistory } from \"react-router-dom\";\r\n\r\nimport {\r\n Form,\r\n Input,\r\n Button,\r\n Select,\r\n Table,\r\n Pagination,\r\n Dialog,\r\n Message,\r\n MessageBox,\r\n Breadcrumb,\r\n Tabs,\r\n Badge,\r\n} from \"element-react\";\r\nimport Routes from \"routes\";\r\nimport { AddUserInterface } from \"interfaces/user\";\r\nimport { GetRoles } from \"store/actions/common\";\r\nimport { GetUserList, DeleteUser, ChangeUserStatus } from \"store/actions/user\";\r\nimport RouteEnum from \"constants/routesEnum\";\r\nimport ArticleStatusEnum from \"constants/articleStatusEnum\";\r\nimport SubmissionList from \"./component/submissionList\";\r\nimport classNames from \"classnames\";\r\nimport TabTitle from \"scenes/common/tabTitle\";\r\nconst Submitter = () => {\r\n const [selectedTab, setSelectedTab] = useState(\"NEW\");\r\n\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n const tabs = [\r\n {\r\n label: \"New Submission\",\r\n name: \"NEW\",\r\n },\r\n {\r\n label: \"Under Review\",\r\n name: \"SUBMITTED\",\r\n },\r\n {\r\n label: \"Need Actions\",\r\n name: \"REVERTED\",\r\n },\r\n {\r\n label: \"Rejected\",\r\n name: \"REJECTED\",\r\n },\r\n {\r\n label: \"Approved\",\r\n name: \"APPROVED\",\r\n },\r\n ];\r\n const handleTabClicked = (e) => {\r\n const { name } = e.props;\r\n setSelectedTab(name);\r\n };\r\n\r\n return (\r\n <div>\r\n <div className=\"header\">\r\n <Breadcrumb separator=\"/\">\r\n <Breadcrumb.Item>\r\n <Link to={RouteEnum.submitter}>Home</Link>\r\n </Breadcrumb.Item>\r\n </Breadcrumb>\r\n <div>\r\n <Link\r\n to={RouteEnum.submission}\r\n className=\"el-button el-button--primary\"\r\n >\r\n New Submission\r\n </Link>\r\n </div>\r\n </div>\r\n\r\n <div className=\"submission\">\r\n <Tabs type=\"card\" value={selectedTab} onTabClick={handleTabClicked}>\r\n {tabs.map((item, index) => (\r\n <Tabs.Pane\r\n key={index}\r\n label={\r\n <TabTitle item={item} selectedTab={selectedTab} count={24000} />\r\n }\r\n name={item.name}\r\n ></Tabs.Pane>\r\n ))}\r\n </Tabs>\r\n\r\n {<SubmissionList selectedTab={selectedTab} />}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Submitter;\r\n","import { Form } from \"element-react\";\r\nimport { isEmpty } from \"helpers\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nconst Start = (props) => {\r\n const { checkList, templates, sections } = useSelector(\r\n (state: any) => state.metaReducer\r\n );\r\n\r\n const { article } = useSelector((st: any) => st.articleReducer);\r\n\r\n const copyrightStatements = templates.find(\r\n (x) => x.TemplateKey === \"copyrightStatements\"\r\n );\r\n\r\n const privacyStatements = templates.find(\r\n (x) => x.TemplateKey === \"privacyStatements\"\r\n );\r\n if (isEmpty(article)) return null;\r\n return (\r\n <div className=\"viewArticle__start\">\r\n <Form className=\"demo-form-stacked\" labelPosition=\"top\" labelWidth=\"100\">\r\n <Form.Item\r\n label={copyrightStatements && copyrightStatements.TemplateTitle}\r\n >\r\n <div>{copyrightStatements && copyrightStatements.TemplateText}</div>\r\n </Form.Item>\r\n <Form.Item label=\"Type of Submission\">{article && article.SectionName}</Form.Item>\r\n <Form.Item label=\"CheckList\">\r\n <ul>\r\n {article.CheckList.map((x, index) => (\r\n <li key={index}>{x.CheckListName}</li>\r\n ))}\r\n </ul>\r\n </Form.Item>\r\n <Form.Item label=\"Comments for the Editor\">\r\n <div\r\n className=\"ck-editor-content\"\r\n dangerouslySetInnerHTML={{ __html: article.CommentsForEditor }}\r\n ></div>\r\n </Form.Item>\r\n <Form.Item label={privacyStatements && privacyStatements.TemplateTitle}>\r\n <div className=\"ck-editor-content\">\r\n {privacyStatements && privacyStatements.TemplateText}\r\n </div>\r\n </Form.Item>\r\n </Form>\r\n </div>\r\n );\r\n};\r\nexport default Start;\r\n","import Constant from \"constants/index\";\r\nimport { Form } from \"element-react\";\r\nimport { isEmpty } from \"helpers\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nconst Author = (props) => {\r\n const { checkList, templates, sections } = useSelector(\r\n (state: any) => state.metaReducer\r\n );\r\n const [authors, setAuthors] = useState([]);\r\n const { article } = useSelector((st: any) => st.articleReducer);\r\n useEffect(() => {\r\n if (!isEmpty(article)) {\r\n setAuthors([\r\n {\r\n Photo_ServerFileName: article.InvestigatorPhoto_ServerFileName,\r\n Salutation: article.InvestigatorSalutation,\r\n FullName: article.InvestigatorName,\r\n Designation: article.InvestigatorDesignation,\r\n Email: article.InvestigatorEmail,\r\n Institue: article.InvestigatorInstitute,\r\n PostalAddress: article.InvestigatorPostalAddress,\r\n MobileNo: article.InvestigatorMobileNo,\r\n DigitalSignature_ServerFileName:\r\n article.InvestigatorDigitalSignature_ServerFileName,\r\n isAuthor: true,\r\n },\r\n ...article.ArticleCoAuthors,\r\n ]);\r\n }\r\n }, article);\r\n\r\n const copyrightStatements = templates.find(\r\n (x) => x.TemplateKey === \"copyrightStatements\"\r\n );\r\n\r\n const privacyStatements = templates.find(\r\n (x) => x.TemplateKey === \"privacyStatements\"\r\n );\r\n if (isEmpty(article)) return null;\r\n return (\r\n <div className=\"viewArticle__author\">\r\n <h1>Author</h1>\r\n <div className=\"viewArticle__coauthor\">\r\n <CoAuthor ArticleCoAuthors={authors} />\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nconst CoAuthor = ({ ArticleCoAuthors }) => {\r\n return (\r\n <>\r\n <table>\r\n <tr className=\"co-auth\">\r\n <th>Name</th>\r\n <th>Designation</th>\r\n <th>Email</th>\r\n <th>Institue</th>\r\n <th>Address</th>\r\n <th>Mobile</th>\r\n <th>Type</th>\r\n <th>Signature</th>\r\n </tr>\r\n {ArticleCoAuthors &&\r\n ArticleCoAuthors.map((x, index) => (\r\n <tr key={index}>\r\n <td>\r\n <div className=\"td-author-info\">\r\n {x.Photo_ServerFileName && (\r\n <img\r\n src={`${Constant.Uploads}/${x.Photo_ServerFileName}`}\r\n width=\"40\"\r\n height=\"40\"\r\n />\r\n )}\r\n {`${x.Salutation} ${x.FullName}`}\r\n </div>\r\n </td>\r\n <td>{x.Designation}</td>\r\n <td>{x.Email}</td>\r\n <td>{x.Institute}</td>\r\n <td>{x.PostalAddress}</td>\r\n <td>{x.MobileNo}</td>\r\n <td>{x.isAuthor ? \"Author\" : \"Co-author\"}</td>\r\n <td>\r\n <img\r\n src={`${Constant.Uploads}/${x.DigitalSignature_ServerFileName}`}\r\n width=\"40\"\r\n height=\"40\"\r\n />\r\n </td>\r\n </tr>\r\n ))}\r\n </table>\r\n </>\r\n );\r\n};\r\n\r\nexport default Author;\r\n","import { AttachmentButton } from \"components/form\";\r\nimport { isEmpty } from \"helpers\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nconst Attachments = (props) => {\r\n const { article } = useSelector((st: any) => st.articleReducer);\r\n if (isEmpty(article)) return null;\r\n return (\r\n <div className=\"viewArticle__attachment\">\r\n <h1>Attachments</h1>\r\n <div>\r\n {article.ArticleAttachments.map((x, index) => (\r\n <div key={index}>\r\n <label>{x.ComponentName}</label>\r\n <AttachmentButton\r\n isPreview\r\n value={{\r\n serverFileName: x.ServerFileName,\r\n name: x.UserFileName,\r\n }}\r\n name=\"Photo\"\r\n />\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n};\r\nexport default Attachments;\r\n","import { Form } from 'element-react'\r\nimport { isEmpty } from 'helpers'\r\nimport React from 'react'\r\nimport { useSelector } from 'react-redux'\r\nconst MetaInfo = (props) => {\r\n // const { templates } = useSelector((state: any) => state.metaReducer)\r\n\r\n const { article } = useSelector((st: any) => st.articleReducer)\r\n\r\n // const copyrightStatements = templates.find(\r\n // (x) => x.TemplateKey === 'copyrightStatements',\r\n // )\r\n\r\n // const privacyStatements = templates.find(\r\n // (x) => x.TemplateKey === 'privacyStatements',\r\n // )\r\n\r\n if (isEmpty(article)) return null\r\n return (\r\n <div className=\"viewArticle__meta\">\r\n <Form className=\"demo-form-stacked\" labelPosition=\"top\" labelWidth=\"100\">\r\n <Form.Item label=\"Title\">\r\n <div\r\n className=\"ck-editor-content\"\r\n dangerouslySetInnerHTML={{ __html: article.ProposalTitle }}\r\n />\r\n </Form.Item>\r\n <Form.Item label=\"Abstract\">\r\n <div dangerouslySetInnerHTML={{ __html: article.ProposalAbstract }} />\r\n </Form.Item>\r\n {/* <Form.Item label=\"Methods\">\r\n <div\r\n className=\"ck-editor-content\"\r\n dangerouslySetInnerHTML={{ __html: article.PropsalMethods }}\r\n />\r\n </Form.Item>\r\n <Form.Item label=\"Cited References\">\r\n <div\r\n className=\"ck-editor-content\"\r\n dangerouslySetInnerHTML={{\r\n __html: article.ProposalCitedReferences,\r\n }}\r\n />\r\n </Form.Item> */}\r\n </Form>\r\n </div>\r\n )\r\n}\r\nexport default MetaInfo\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { Link, NavLink, useHistory } from \"react-router-dom\";\r\n\r\nimport {\r\n Form,\r\n Input,\r\n Button,\r\n Select,\r\n Table,\r\n Pagination,\r\n Dialog,\r\n Message,\r\n MessageBox,\r\n Breadcrumb,\r\n Tabs,\r\n} from \"element-react\";\r\nimport RouteEnum from \"constants/routesEnum\";\r\nimport ArticleStatusEnum from \"constants/articleStatusEnum\";\r\nimport Start from \"./components/start\";\r\nimport Authors from \"./components/author\";\r\nimport Attachments from \"./components/attachment\";\r\nimport MetaInfo from \"./components/metaInfo\";\r\nimport { GetArticle, clearArticle } from \"store/actions/articles\";\r\nimport { UserDetailInterface } from \"interfaces/actions/auth\";\r\nimport RoleEnum from \"constants/roleEnum\";\r\n\r\nconst ViewArticle = (props) => {\r\n const { articleId } = props.match.params;\r\n\r\n const dispatch = useDispatch();\r\n const { RoleName } = useSelector(\r\n (state: any) => state.userReducer.loggedInUserDetail as UserDetailInterface\r\n );\r\n\r\n useEffect(() => {\r\n if (articleId) {\r\n fetchArticle(articleId);\r\n } else {\r\n dispatch(clearArticle());\r\n }\r\n }, [articleId]);\r\n\r\n const fetchArticle = async (articleId) => {\r\n await dispatch(GetArticle(articleId));\r\n };\r\n\r\n return (\r\n <div>\r\n <Breadcrumb separator=\"/\">\r\n <Breadcrumb.Item>\r\n <Link to=\"/\">Home</Link>\r\n </Breadcrumb.Item>\r\n <Breadcrumb.Item>View</Breadcrumb.Item>\r\n </Breadcrumb>\r\n\r\n <div className=\"viewArticle\">\r\n <Start />\r\n <MetaInfo />\r\n <Authors />\r\n <Attachments />\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default ViewArticle;\r\n","import { post, get, api } from \"networkService\";\r\nimport types from \"store/types\";\r\n\r\nexport const GetRoles = () => async (dispatch: Function) => {\r\n const res: any = await get(api.common.roles, dispatch);\r\n dispatch({ type: types.GET_ROLES, payload: res.Data });\r\n};\r\n\r\nexport const verifyUserEmailAddress =\r\n ({ param }) =>\r\n async (dispatch: Function) => {\r\n const res: any = await get(\r\n api.users.verifyEmail,\r\n dispatch,\r\n {\r\n param,\r\n },\r\n true\r\n );\r\n if (res) {\r\n return res.Status;\r\n }\r\n return false;\r\n };\r\n\r\nexport const GetEmailTemplate =\r\n (templateType) => async (dispatch: Function) => {\r\n const res: any = await get(\r\n `${api.common.emailTemplate}/${templateType}`,\r\n dispatch\r\n );\r\n if (res && res.Status) return res.Data;\r\n return null;\r\n };\r\n","import React, { useEffect } from \"react\";\nimport queryString from \"query-string\";\nimport { verifyUserEmailAddress } from \"store/actions/common\";\nimport { useDispatch } from \"react-redux\";\nimport { useHistory } from \"react-router\";\nimport RoutesEnum from \"constants/routesEnum\";\n\nconst VerifyEmailAddress = (props) => {\n const dispatch = useDispatch();\n const history = useHistory();\n\n useEffect(() => {\n verify();\n }, []);\n const verify = async () => {\n const params = queryString.parse(props.location.search);\n var res = await dispatch(verifyUserEmailAddress({ param: params.param }));\n if (res) history.push(RoutesEnum.login);\n };\n return (\n <div>\n Your email address will be verified and after success redirects to login\n page.\n </div>\n );\n};\n\nexport default VerifyEmailAddress;\n","import React, { useRef, useState } from \"react\";\nimport queryString from \"query-string\";\nimport {\n Form,\n Input,\n Button,\n Select,\n Dialog,\n Message,\n Layout,\n} from \"element-react\";\nimport { resetPassword } from \"store/actions/user\";\nimport { useDispatch } from \"react-redux\";\nimport { useHistory } from \"react-router\";\nimport RoutesEnum from \"constants/routesEnum\";\n\nconst ForgotPassword = (props) => {\n const { user } = props;\n const ref: any = useRef();\n const dispatch = useDispatch();\n const history = useHistory();\n const params = queryString.parse(props.location.search);\n\n const [state, setState] = useState({\n Email: \"\",\n Password: \"\",\n ConfirmPassword: \"\",\n isLoading: false,\n Code: params.code,\n });\n\n const rules = {\n Email: [\n {\n required: true,\n message: \"Email is required\",\n trigger: \"blur\",\n },\n {\n type: \"email\",\n message: \"Please input correct email address\",\n trigger: \"blur,change\",\n },\n ],\n Password: [\n { required: true, message: \"Please input the password\", trigger: \"blur\" },\n {\n validator: (rule, value, callback) => {\n if (value === \"\") {\n callback(new Error(\"Please input the password\"));\n } else {\n if (state.Password !== \"\") {\n ref.current.validateField(\"ConfirmPassword\");\n }\n callback();\n }\n },\n },\n ],\n ConfirmPassword: [\n {\n required: true,\n message: \"Please input the password again\",\n trigger: \"blur\",\n },\n {\n validator: (rule, value, callback) => {\n if (value === \"\") {\n callback(new Error(\"Please input the password again\"));\n } else if (value !== state.Password) {\n callback(new Error(\"Two inputs don't match!\"));\n } else {\n callback();\n }\n },\n },\n ],\n };\n const onChange = (name, val) => setState({ ...state, [name]: val });\n\n const handleSubmit = () => {\n ref.current.validate(async (valid) => {\n if (valid) {\n setState({ ...state, isLoading: true });\n const { Email, Code, Password, ConfirmPassword } = state;\n\n var res: any = await dispatch(\n resetPassword({ Email, Code, Password, ConfirmPassword })\n );\n setState({ ...state, isLoading: false });\n\n if (res) history.push(RoutesEnum.login);\n } else {\n return false;\n }\n });\n };\n\n return (\n <div className=\"container\">\n <div className=\"sign-up-form\">\n <Form\n ref={ref}\n rules={rules}\n className=\"demo-form-stacked\"\n model={state}\n labelPosition=\"top\"\n labelWidth=\"100\"\n >\n <Layout.Row gutter=\"20\">\n <Form.Item label=\"Email\" prop=\"Email\">\n <Input\n value={state.Email}\n onChange={(val: any) => onChange(\"Email\", val)}\n ></Input>\n </Form.Item>\n <Form.Item label=\"Password\" prop=\"Password\">\n <Input\n type=\"password\"\n value={state.Password}\n onChange={(val: any) => onChange(\"Password\", val)}\n ></Input>\n </Form.Item>\n\n <Form.Item label=\"Confirm Password\" prop=\"ConfirmPassword\">\n <Input\n type=\"password\"\n value={state.ConfirmPassword}\n onChange={(val: any) => onChange(\"ConfirmPassword\", val)}\n ></Input>\n </Form.Item>\n\n <Form.Item>\n <Button\n type=\"primary\"\n onClick={handleSubmit}\n loading={state.isLoading}\n >\n Submit\n </Button>\n </Form.Item>\n </Layout.Row>\n </Form>\n </div>\n </div>\n );\n};\nexport default ForgotPassword;\n","import React, { useRef, useState } from \"react\";\nimport { Button, Form, Input } from \"element-react\";\nimport { Link } from \"react-router-dom\";\nimport RoutesEnum from \"constants/routesEnum\";\nimport { forgotPassword } from \"store/actions/user\";\nimport { useDispatch } from \"react-redux\";\n\nconst PasswordReset = (props) => {\n const ref: any = useRef();\n const dispatch = useDispatch();\n\n const [state, setState] = useState({\n email: \"\",\n isLoading: false,\n isSuccessSubmitting: false,\n });\n\n const rules = {\n email: [\n {\n required: true,\n message: \"Email is required\",\n trigger: \"blur\",\n },\n {\n type: \"email\",\n message: \"Please input correct email address\",\n trigger: \"blur,change\",\n },\n ],\n };\n\n const handleSubmit = async () => {\n ref.current.validate(async (valid) => {\n if (valid) {\n setState({ ...state, isSuccessSubmitting: true, isLoading: true });\n let res = await dispatch(forgotPassword({ email: state.email }));\n let nextState = { ...state };\n nextState.isLoading = false;\n if (res) {\n nextState.isSuccessSubmitting = true;\n }\n setState(nextState);\n }\n });\n };\n\n //const han\n return (\n <div className=\"pr-container\">\n {!state.isSuccessSubmitting ? (\n <div className=\"reset-form\">\n <Form ref={ref} rules={rules} model={state}>\n <Form.Item\n label=\"Enter your user account's verified email address and we will send you a password reset link.\"\n prop=\"email\"\n >\n <Input\n placeholder=\"Enter your email address\"\n value={state.email}\n onChange={(val: any) => setState({ ...state, email: val })}\n ></Input>\n </Form.Item>\n <div className=\"irc-form-footer\">\n <Button\n type=\"primary\"\n onClick={handleSubmit}\n loading={state.isLoading}\n >\n Submit\n </Button>\n </div>\n </Form>\n </div>\n ) : (\n <div className=\"reset-success\">\n <h2>Reset Password</h2>\n <div className=\"reset-success__message\">\n Check your email for a link to reset your password. If it doesn’t\n appear within a few minutes, check your spam folder.\n </div>\n <Link to={RoutesEnum.login} className=\"el-button el-button--primary\">\n Return to sign in\n </Link>\n </div>\n )}\n </div>\n );\n};\n\nexport default PasswordReset;\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { Link, NavLink, useHistory } from \"react-router-dom\";\r\n\r\nimport { Form, Input, Button, Select, Layout, Switch } from \"element-react\";\r\nimport { SaveUser, signUp } from \"store/actions/user\";\r\nimport routes from \"constants/routesEnum\";\r\nimport ReCAPTCHA from \"react-google-recaptcha\";\r\n\r\nconst initialState = {\r\n Roles: [],\r\n Email: \"\",\r\n FullName: \"\",\r\n MobileNumber: \"\",\r\n Country: \"\",\r\n Affiliation: \"\",\r\n Password: \"\",\r\n ConfirmPassword: \"\",\r\n Captcha: \"\",\r\n};\r\nconst SignUp = (props) => {\r\n const [state, setState] = useState(initialState);\r\n const [isLoading, setLoading] = useState(false);\r\n const { roles } = useSelector((state: any) => state.commonReducer);\r\n var formRef: any = useRef();\r\n const recaptchaRef: any = useRef();\r\n\r\n const rules = {\r\n FullName: [\r\n {\r\n required: true,\r\n message: \"Full name is required\",\r\n trigger: \"blur\",\r\n },\r\n ],\r\n Email: [\r\n {\r\n required: true,\r\n message: \"Email is required\",\r\n trigger: \"blur\",\r\n },\r\n {\r\n type: \"email\",\r\n message: \"Please input correct email address\",\r\n trigger: \"blur,change\",\r\n },\r\n ],\r\n Password: [\r\n { required: true, message: \"Please input the password\", trigger: \"blur\" },\r\n {\r\n validator: (rule, value, callback) => {\r\n if (value === \"\") {\r\n callback(new Error(\"Please input the password\"));\r\n } else {\r\n if (state.Password !== \"\") {\r\n formRef.current.validateField(\"ConfirmPassword\");\r\n }\r\n callback();\r\n }\r\n },\r\n },\r\n ],\r\n ConfirmPassword: [\r\n {\r\n required: true,\r\n message: \"Please input the password again\",\r\n trigger: \"blur\",\r\n },\r\n {\r\n validator: (rule, value, callback) => {\r\n if (value === \"\") {\r\n callback(new Error(\"Please input the password again\"));\r\n } else if (value !== state.Password) {\r\n callback(new Error(\"Two inputs don't match!\"));\r\n } else {\r\n callback();\r\n }\r\n },\r\n },\r\n ],\r\n };\r\n\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n const onChange = (key: any, value: any) => {\r\n if (key === \"IsInactive\") {\r\n value = !value;\r\n }\r\n setState({ ...state, [key]: value });\r\n };\r\n\r\n const handleSubmit = async (e: any) => {\r\n e.preventDefault();\r\n\r\n formRef.current.validate(async (valid) => {\r\n if (valid) {\r\n setLoading(true);\r\n const param = { ...state, UserName: state.Email };\r\n var res: any = await dispatch(signUp(param));\r\n setLoading(false);\r\n if (res) history.push(routes.login);\r\n } else {\r\n return false;\r\n }\r\n });\r\n };\r\n const handleReset = (e: any) => {\r\n formRef.current.resetFields();\r\n setState(initialState);\r\n };\r\n\r\n return (\r\n <div className=\"container\">\r\n <div className=\"sign-up-form\">\r\n <Form\r\n ref={formRef}\r\n rules={rules}\r\n className=\"demo-form-stacked\"\r\n model={state}\r\n labelPosition=\"top\"\r\n labelWidth=\"100\"\r\n >\r\n <Layout.Row gutter=\"20\">\r\n <Form.Item label=\"Full Name\" prop=\"FullName\">\r\n <Input\r\n value={state.FullName}\r\n onChange={(val: any) => onChange(\"FullName\", val)}\r\n ></Input>\r\n </Form.Item>\r\n\r\n <Form.Item label=\"Email\" prop=\"Email\">\r\n <Input\r\n value={state.Email}\r\n onChange={(val: any) => onChange(\"Email\", val)}\r\n ></Input>\r\n </Form.Item>\r\n\r\n <Form.Item label=\"Mobile\" prop=\"MobileNumber\">\r\n <Input\r\n value={state.MobileNumber}\r\n onChange={(val: any) => onChange(\"MobileNumber\", val)}\r\n ></Input>\r\n </Form.Item>\r\n\r\n <Form.Item label=\"Country\" prop=\"Country\">\r\n <Input\r\n value={state.Country}\r\n onChange={(val: any) => onChange(\"Country\", val)}\r\n ></Input>\r\n </Form.Item>\r\n\r\n <Form.Item label=\"Affiliation\" prop=\"Affiliation\">\r\n <Input\r\n value={state.Affiliation}\r\n onChange={(val: any) => onChange(\"Affiliation\", val)}\r\n ></Input>\r\n </Form.Item>\r\n\r\n <Form.Item label=\"Password\" prop=\"Password\">\r\n <Input\r\n type=\"password\"\r\n value={state.Password}\r\n onChange={(val: any) => onChange(\"Password\", val)}\r\n ></Input>\r\n </Form.Item>\r\n\r\n <Form.Item label=\"Confirm Password\" prop=\"ConfirmPassword\">\r\n <Input\r\n type=\"password\"\r\n value={state.ConfirmPassword}\r\n onChange={(val: any) => onChange(\"ConfirmPassword\", val)}\r\n ></Input>\r\n </Form.Item>\r\n <Form.Item>\r\n <ReCAPTCHA\r\n ref={recaptchaRef}\r\n sitekey=\"6LdEjqkeAAAAAAfuSmszHsZMq2N36JRQO9cLVoe8\"\r\n onChange={(val) => onChange(\"Captcha\", val)}\r\n />\r\n </Form.Item>\r\n\r\n <Form.Item>\r\n <Button\r\n type=\"primary\"\r\n onClick={handleSubmit}\r\n nativeType=\"submit\"\r\n loading={isLoading}\r\n >\r\n Sign up\r\n </Button>\r\n <Button onClick={handleReset}>Reset</Button>\r\n </Form.Item>\r\n </Layout.Row>\r\n </Form>\r\n </div>\r\n </div>\r\n );\r\n};\r\nexport default SignUp;\r\n","import ViewArticle from \"scenes/viewArticle\";\r\nimport VerifyEmailAddress from \"scenes/Administrator/user/verifyEmailAddress\";\r\nimport ForgotPassword from \"scenes/Administrator/user/forgotPassword\";\r\nimport PasswordReset from \"scenes/Administrator/user/sendPasswordResetLink\";\r\nimport SignUp from \"scenes/Administrator/user/signUp\";\r\nimport RoleEnum from \"constants/roleEnum\";\r\nimport RouteEnum from \"constants/routesEnum\";\r\nimport Comments from \"scenes/comments\";\r\nconst PublicRoutes = [\r\n {\r\n exact: true,\r\n component: ForgotPassword,\r\n role: RoleEnum.Public,\r\n title: \"Reset Password\",\r\n path: RouteEnum.forgotPassword,\r\n },\r\n {\r\n exact: true,\r\n component: PasswordReset,\r\n role: RoleEnum.Public,\r\n title: \"Reset Password\",\r\n path: RouteEnum.resetPassword,\r\n },\r\n {\r\n exact: true,\r\n component: SignUp,\r\n role: RoleEnum.Public,\r\n title: \"Sign up\",\r\n path: RouteEnum.signup,\r\n },\r\n {\r\n exact: true,\r\n component: VerifyEmailAddress,\r\n role: RoleEnum.Public,\r\n title: \"Verify Email\",\r\n path: RouteEnum.verifyEmailAddress,\r\n },\r\n {\r\n exact: true,\r\n component: ViewArticle,\r\n role: RoleEnum.Public,\r\n title: \"View Article\",\r\n path: `${RouteEnum.viewArticle}/:articleId`,\r\n },\r\n {\r\n exact: true,\r\n component: Comments,\r\n role: RoleEnum.Public,\r\n title: \"Commetns\",\r\n path: `${RouteEnum.comments}/:articleId`,\r\n },\r\n];\r\n\r\nexport default PublicRoutes;\r\n","import React from \"react\";\nimport { Form, Input, Button, Select, Dialog } from \"element-react\";\nconst Search = (props) => {\n const { state, setState, onSearchClicked, onAddUserClicked } = props;\n\n const onChangeSearch = (name, val) => {\n setState({ ...state, [name]: val });\n };\n return (\n <div className=\"user-search\">\n <Form inline={true}>\n <Form.Item>\n <Input\n style={{ width: \"300px\" }}\n value={state.userName}\n placeholder=\"User name\"\n onChange={(val: any) => onChangeSearch(\"userName\", val)}\n ></Input>\n </Form.Item>\n <Form.Item>\n <Select\n value={state.isActive}\n placeholder=\"IsActive\"\n onChange={(val: any) => onChangeSearch(\"IsActive\", val)}\n >\n <Select.Option label=\"Active\" value=\"true\"></Select.Option>\n <Select.Option label=\"Inactive\" value=\"false\"></Select.Option>\n </Select>\n </Form.Item>\n <Form.Item>\n <Button type=\"primary\" onClick={() => onSearchClicked()}>\n Search\n </Button>\n </Form.Item>\n </Form>\n <div>\n <Button onClick={() => onAddUserClicked({})}>Add User</Button>\n </div>\n </div>\n );\n};\n\nexport default Search;\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { Link, NavLink, useHistory } from \"react-router-dom\";\r\n\r\nimport { Form, Input, Button, Select, Layout, Switch } from \"element-react\";\r\nimport Routes from \"routes\";\r\nimport { AddUserInterface } from \"interfaces/user\";\r\nimport { GetRoles } from \"store/actions/common\";\r\nimport { SaveUser } from \"store/actions/user\";\r\nimport { mobileRules } from \"helpers\";\r\n\r\nconst AddUser = (props) => {\r\n const { state, setState, onSaveSuccess } = props;\r\n const [isLoading, setLoading] = useState(false);\r\n const { roles } = useSelector((state: any) => state.commonReducer);\r\n const rules = {\r\n FullName: [\r\n {\r\n required: true,\r\n message: \"Full name is required\",\r\n trigger: \"blur\",\r\n },\r\n ],\r\n Email: [\r\n {\r\n required: true,\r\n message: \"Email is required\",\r\n trigger: \"blur\",\r\n },\r\n {\r\n type: \"email\",\r\n message: \"Please input correct email address\",\r\n trigger: \"blur,change\",\r\n },\r\n ],\r\n Roles: [\r\n {\r\n type: \"array\",\r\n required: true,\r\n message: \"Role is required\",\r\n trigger: \"blur\",\r\n },\r\n ],\r\n Password: [\r\n { required: true, message: \"Please input the password\", trigger: \"blur\" },\r\n // {\r\n // validator: (rule, value, callback) => {\r\n // if (value === \"\") {\r\n // callback(new Error(\"Please input the password\"));\r\n // } else {\r\n // if (state.Password !== \"\") {\r\n // formRef.current.validateField(\"ConfirmPassword\");\r\n // }\r\n // callback();\r\n // }\r\n // },\r\n // },\r\n ],\r\n MobileNumber: [mobileRules()],\r\n };\r\n var formRef: any = useRef();\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n useEffect(() => {\r\n fetchRoles();\r\n }, []);\r\n\r\n const fetchRoles = async () => {\r\n await dispatch(GetRoles());\r\n };\r\n\r\n const onChange = (key: any, value: any) => {\r\n if (key === \"IsInactive\") {\r\n value = !value;\r\n }\r\n setState({ ...state, [key]: value });\r\n };\r\n\r\n const handleSubmit = async (e: any) => {\r\n e.preventDefault();\r\n\r\n formRef.current.validate(async (valid) => {\r\n if (valid) {\r\n setLoading(true);\r\n const param = { ...state, UserName: state.Email };\r\n var res: any = await dispatch(SaveUser(param));\r\n setLoading(false);\r\n if (res) {\r\n onSaveSuccess();\r\n }\r\n } else {\r\n return false;\r\n }\r\n });\r\n };\r\n const handleReset = (e: any) => {\r\n formRef.current.resetFields();\r\n setState({} as AddUserInterface);\r\n };\r\n\r\n return (\r\n <div className=\"container\">\r\n <div className=\"user-form\">\r\n <Form\r\n ref={formRef}\r\n rules={rules}\r\n className=\"demo-form-stacked\"\r\n model={state}\r\n labelPosition=\"top\"\r\n labelWidth=\"100\"\r\n >\r\n <Layout.Row gutter=\"20\">\r\n <Layout.Col span=\"12\">\r\n <Form.Item label=\"Full Name\" prop=\"FullName\">\r\n <Input\r\n value={state.FullName}\r\n onChange={(val: any) => onChange(\"FullName\", val)}\r\n ></Input>\r\n </Form.Item>\r\n </Layout.Col>\r\n <Layout.Col span=\"12\">\r\n <Form.Item label=\"Email\" prop=\"Email\">\r\n <Input\r\n value={state.Email}\r\n onChange={(val: any) => onChange(\"Email\", val)}\r\n ></Input>\r\n </Form.Item>\r\n </Layout.Col>\r\n <Layout.Col span=\"12\">\r\n <Form.Item label=\"Mobile\" prop=\"MobileNumber\">\r\n <Input\r\n value={state.MobileNumber}\r\n onChange={(val: any) => onChange(\"MobileNumber\", val)}\r\n ></Input>\r\n </Form.Item>\r\n </Layout.Col>\r\n <Layout.Col span=\"12\">\r\n <Form.Item label=\"Country\" prop=\"Country\">\r\n <Input\r\n value={state.Country}\r\n onChange={(val: any) => onChange(\"Country\", val)}\r\n ></Input>\r\n </Form.Item>\r\n </Layout.Col>\r\n <Layout.Col span=\"12\">\r\n <Form.Item label=\"Affiliation\" prop=\"Affiliation\">\r\n <Input\r\n value={state.Affiliation}\r\n onChange={(val: any) => onChange(\"Affiliation\", val)}\r\n ></Input>\r\n </Form.Item>\r\n </Layout.Col>\r\n <Layout.Col span=\"12\">\r\n <Form.Item label=\"Role\" prop=\"Roles\">\r\n <Select\r\n multiple={true}\r\n value={state.Roles}\r\n placeholder=\"Role\"\r\n onChange={(val: any) => onChange(\"Roles\", val)}\r\n >\r\n {roles &&\r\n roles.map((role, index) => (\r\n <Select.Option\r\n key={index}\r\n label={role.Name}\r\n value={role.Name}\r\n ></Select.Option>\r\n ))}\r\n </Select>\r\n </Form.Item>\r\n </Layout.Col>\r\n <Layout.Col span=\"12\">\r\n <Form.Item label=\"Is Active\">\r\n <Switch\r\n onText=\"\"\r\n offText=\"\"\r\n value={!state.IsInactive}\r\n onChange={(val: any) => onChange(\"IsInactive\", val)}\r\n />\r\n </Form.Item>\r\n </Layout.Col>\r\n <Layout.Col span=\"12\">\r\n {!state.Id && (\r\n <Form.Item label=\"Password\" prop=\"Password\">\r\n <Input\r\n type=\"password\"\r\n value={state.Password}\r\n onChange={(val: any) => onChange(\"Password\", val)}\r\n ></Input>\r\n </Form.Item>\r\n )}\r\n </Layout.Col>\r\n </Layout.Row>\r\n <Layout.Row>\r\n <Layout.Col span=\"12\">\r\n <Form.Item>\r\n <Button\r\n type=\"primary\"\r\n onClick={handleSubmit}\r\n nativeType=\"submit\"\r\n loading={isLoading}\r\n >\r\n Save\r\n </Button>\r\n {/* <Button onClick={handleReset}>Reset</Button> */}\r\n </Form.Item>\r\n </Layout.Col>\r\n </Layout.Row>\r\n </Form>\r\n </div>\r\n </div>\r\n );\r\n};\r\nexport default AddUser;\r\n","import React, { useRef, useState } from \"react\";\nimport { Form, Input, Button, Select, Dialog, Message } from \"element-react\";\nimport { changePasswordByUser } from \"store/actions/user\";\nimport { useDispatch } from \"react-redux\";\n\nconst ChangeUserPassword = (props) => {\n const { user } = props;\n const ref: any = useRef();\n const dispatch = useDispatch();\n\n const [state, setState] = useState({\n newPassword: \"\",\n isVisible: false,\n isLoading: false,\n });\n\n const rules = {\n newPassword: [\n {\n required: true,\n message: \"New password is required\",\n trigger: \"blur\",\n },\n ],\n };\n\n const handleChangePassword = async () => {\n ref.current.validate(async (valid) => {\n if (valid) {\n var res: any = await dispatch(\n changePasswordByUser({\n userName: user.UserName,\n newPassword: state.newPassword,\n })\n );\n if (res && res.Status) reset();\n }\n });\n };\n\n const reset = () => {\n ref.current.resetFields();\n setState({ newPassword: \"\", isLoading: false, isVisible: false });\n };\n return (\n <>\n <Button\n type=\"text\"\n size=\"small\"\n onClick={() => setState({ ...state, isVisible: true })}\n >\n Reset Password\n </Button>\n <Dialog\n title=\"Change Password\"\n visible={state.isVisible}\n onCancel={() => reset()}\n style={{ width: \"350px\" }}\n >\n <Dialog.Body>\n <Form ref={ref} rules={rules}>\n <Form.Item>\n <Input\n name=\"newPassword\"\n type=\"password\"\n style={{ width: \"270px\" }}\n value={state.newPassword}\n placeholder=\"New Pasword\"\n onChange={(val: any) =>\n setState({ ...state, newPassword: val })\n }\n ></Input>\n </Form.Item>\n <Form.Item>\n <Button\n onClick={() => handleChangePassword()}\n loading={state.isLoading}\n >\n Change Password\n </Button>\n </Form.Item>\n </Form>\n </Dialog.Body>\n </Dialog>\n </>\n );\n};\n\nexport default ChangeUserPassword;\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Link, NavLink, useHistory } from \"react-router-dom\";\n\nimport {\n Form,\n Input,\n Button,\n Select,\n Table,\n Pagination,\n Dialog,\n Message,\n MessageBox,\n} from \"element-react\";\nimport Routes from \"routes\";\nimport { AddUserInterface } from \"interfaces/user\";\nimport { GetRoles } from \"store/actions/common\";\nimport { GetUserList, DeleteUser, ChangeUserStatus } from \"store/actions/user\";\nimport Search from \"./search\";\nimport AddUser from \"./addUser\";\nimport ChangeUserPassword from \"./changeUserPassword\";\n\nconst Index = () => {\n const [isVisible, setVisible] = useState(false);\n const [data, setData] = useState({\n Roles: [],\n });\n const [state, setState] = useState({\n userName: \"\",\n pageIndex: 1,\n pageSize: 20,\n isActive: \"true\",\n });\n useEffect(() => {\n fetchUserList(state);\n }, []);\n const dispatch = useDispatch();\n const history = useHistory();\n const { userList } = useSelector((state: any) => state.userReducer);\n useEffect(() => {}, [userList]);\n\n const fetchUserList = async (param) => {\n await dispatch(GetUserList(param));\n };\n\n const handleSearchClicked = () => {\n let newState = { ...state, pageIndex: 1, pageSize: 20 };\n setState(newState);\n fetchUserList(newState);\n };\n const handlePageSizeChanged = (size) => {\n let newState = { ...state, pageSize: size };\n setState(newState);\n fetchUserList(newState);\n };\n const handlePageChanged = (page) => {\n let newState = { ...state, pageIndex: page };\n setState(newState);\n fetchUserList(newState);\n };\n const handleAddUser = (user) => {\n setData(user);\n setVisible(true);\n };\n const handleSaveSucees = () => {\n setVisible(false);\n fetchUserList(state);\n };\n const columns = [\n {\n label: \"User Name/ Email\",\n prop: \"UserName\",\n width: 300,\n },\n\n {\n label: \"Name\",\n prop: \"FullName\",\n },\n {\n label: \"Mobile\",\n prop: \"MobileNumber\",\n width: 120,\n },\n \n {\n label: \"Role\",\n prop: \"RoleName\",\n width: 120,\n },\n\n {\n label: \"\",\n width: 150,\n fixed: \"right\",\n render: (row, column, index) => {\n return <ChangeUserPassword user={row} key={index} />;\n },\n },\n {\n label: \"\",\n width: 100,\n fixed: \"right\",\n render: (row, column, index) => {\n return (\n <span>\n <Button\n type=\"text\"\n size=\"small\"\n onClick={() => changeUserStatus(row)}\n >\n {row.IsInactive ? \"Enable\" : \"Disable\"}\n </Button>\n </span>\n );\n },\n },\n {\n label: \"\",\n width: 160,\n fixed: \"right\",\n render: (row, column, index) => {\n return (\n <span>\n <Button type=\"text\" size=\"small\" onClick={() => handleAddUser(row)}>\n Edit\n </Button>\n <Button type=\"text\" size=\"small\" onClick={() => confirmDelete(row)}>\n Delete\n </Button>\n </span>\n );\n },\n },\n ];\n\n const confirmDelete = (user) => {\n MessageBox.confirm(\n \"This will permanently delete the user. Continue?\",\n \"Warning\",\n {\n confirmButtonText: \"OK\",\n cancelButtonText: \"Cancel\",\n type: \"warning\",\n }\n )\n .then(async () => {\n await dispatch(DeleteUser(user.Id));\n fetchUserList(state);\n })\n .catch(() => {});\n };\n const changeUserStatus = async (user) => {\n await dispatch(\n ChangeUserStatus({ userId: user.Id, isInactive: !user.IsInactive })\n );\n fetchUserList(state);\n };\n\n let totalData = 0;\n if (userList && userList.length > 0) {\n totalData = userList[0].TotalData;\n }\n\n return (\n <div className=\"user\">\n <Search\n state={state}\n setState={setState}\n onSearchClicked={handleSearchClicked}\n onAddUserClicked={handleAddUser}\n />\n <Table\n style={{ width: \"100%\" }}\n columns={columns}\n data={userList}\n border={true}\n />\n\n <Pagination\n layout=\"total, sizes, prev, pager, next\"\n total={totalData}\n pageSizes={[10, 20, 50, 100]}\n pageSize={state.pageSize}\n currentPage={state.pageIndex}\n onSizeChange={handlePageSizeChanged}\n onCurrentChange={handlePageChanged}\n />\n\n <UserDialog\n state={data}\n setState={setData}\n isVisible={isVisible}\n setVisible={setVisible}\n onSaveSuccess={handleSaveSucees}\n />\n </div>\n );\n};\n\nconst UserDialog = (props) => {\n const { isVisible, setVisible } = props;\n return (\n <Dialog\n title=\"Add User\"\n visible={isVisible}\n onCancel={() => {\n props?.setState({ ...props?.state, Roles: [] });\n setVisible(false);\n }}\n >\n <Dialog.Body>\n <AddUser {...props} />\n </Dialog.Body>\n </Dialog>\n );\n};\nexport default Index;\n","import React from \"react\";\r\nimport { Table, Pagination } from \"element-react\";\r\ninterface TableProps {\r\n showNoData: boolean;\r\n width?: any;\r\n columns: any[];\r\n data: any[];\r\n totalData?: number;\r\n PageIndex?: number;\r\n pageSize?: number;\r\n handlePageSizeChanged?: (size?: number) => void;\r\n handlePageChanged?: (currentPage?: number) => void;\r\n}\r\n\r\nconst TableView = (props: TableProps) => {\r\n const {\r\n columns,\r\n showNoData,\r\n data,\r\n totalData,\r\n pageSize,\r\n PageIndex,\r\n handlePageSizeChanged,\r\n handlePageChanged,\r\n } = props;\r\n\r\n return (\r\n <>\r\n <Table\r\n style={{ width: \"100%\" }}\r\n columns={columns}\r\n data={data}\r\n border={true}\r\n />\r\n {totalData && totalData === 0 && (\r\n <div className=\"no-table-data\">No Data</div>\r\n )}\r\n {totalData && totalData > 0 && (\r\n <Pagination\r\n layout=\"total, sizes, prev, pager, next\"\r\n total={totalData}\r\n pageSizes={[10, 20, 50, 100]}\r\n pageSize={pageSize}\r\n currentPage={PageIndex}\r\n onSizeChange={handlePageSizeChanged}\r\n onCurrentChange={handlePageChanged}\r\n />\r\n )}\r\n </>\r\n );\r\n};\r\nTableView.defaultProps = {\r\n width: \"100%\",\r\n showNoData: true,\r\n};\r\nexport default TableView;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Dialog, Button, Input, Radio, Message } from \"element-react\";\r\nimport { FaPlus, FaMinus, FaUserPlus } from \"react-icons/fa\";\r\nimport TableView from \"components/tableView\";\r\nimport {\r\n AssignArticleForEditor,\r\n userWithAssignedInfo,\r\n} from \"store/actions/articles\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport RoleEnum from \"constants/roleEnum\";\r\n\r\nconst AssignUser = (assignProps) => {\r\n const { row, dispatch } = assignProps;\r\n\r\n const [state, setState] = useState({ editorName: \"\" });\r\n const [isVisible, setVisible] = useState(false);\r\n const onAssingClick = () => {\r\n setVisible(true);\r\n };\r\n\r\n const handleCancel = () => {\r\n setVisible(false);\r\n };\r\n\r\n return (\r\n <>\r\n <Button size=\"mini\" onClick={() => onAssingClick()}>\r\n <FaUserPlus />\r\n Assign\r\n </Button>\r\n {isVisible && (\r\n <Dialog\r\n closeOnClickModal={false}\r\n title=\"Assign Editor\"\r\n visible={isVisible}\r\n onCancel={handleCancel}\r\n style={{ width: \"800px\" }}\r\n >\r\n <Dialog.Body>\r\n <div>\r\n <Editors {...assignProps} onSave={handleCancel} />\r\n </div>\r\n </Dialog.Body>\r\n </Dialog>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nconst Editors = (props) => {\r\n const { row, dispatch, articlesRef, onSave } = props;\r\n const [loading, setLoading] = useState(false);\r\n const [state, setState] = useState({\r\n editorName: \"\",\r\n remarks: \"\",\r\n });\r\n const [selectedIndex, setSelectedIndex] = useState(-1);\r\n\r\n useEffect(() => {\r\n fetchData(\"\");\r\n }, []);\r\n const [tableData, setTableData] = useState([]);\r\n\r\n const fetchData = async (fullname) => {\r\n var res: any = await dispatch(\r\n userWithAssignedInfo({\r\n articleId: row.Id,\r\n fullname: fullname,\r\n role: RoleEnum.Editor,\r\n })\r\n );\r\n var index = res.findIndex((x) => x.IsAssigned);\r\n setSelectedIndex(index);\r\n setTableData(res);\r\n };\r\n\r\n const onChangeSearch = (name, val) => {\r\n setState({ ...state, [name]: val });\r\n setSelectedIndex(-1);\r\n fetchData(val);\r\n };\r\n\r\n const columns = [\r\n {\r\n label: \"Editor\",\r\n prop: \"FullName\",\r\n render: (row, column, index) => (\r\n <div onClick={() => setSelectedIndex(index)}>{row.FullName}</div>\r\n ),\r\n },\r\n {\r\n label: \"Done\",\r\n prop: \"Done\",\r\n width: 120,\r\n render: (row, column, index) => (\r\n <div onClick={() => setSelectedIndex(index)}>{row.Done}</div>\r\n ),\r\n },\r\n {\r\n label: \"Active\",\r\n prop: \"Active\",\r\n width: 120,\r\n render: (row, column, index) => (\r\n <div onClick={() => setSelectedIndex(index)}>{row.Active}</div>\r\n ),\r\n },\r\n {\r\n label: \"\",\r\n prop: \"\",\r\n width: 60,\r\n render: (row, column, index) => {\r\n return (\r\n <div onClick={() => setSelectedIndex(index)}>\r\n <Radio value=\"\" checked={selectedIndex === index} />\r\n </div>\r\n );\r\n },\r\n },\r\n ];\r\n\r\n const onSaveClicked = async () => {\r\n if (selectedIndex === -1) {\r\n Message({\r\n message: \"At least one editor is required.\",\r\n type: \"warning\",\r\n });\r\n return;\r\n }\r\n var remarks = state.remarks;\r\n var assignTo = tableData[selectedIndex].Id;\r\n const articleId = props && props.row.Id;\r\n const assignedAs = RoleEnum.Editor;\r\n setLoading(true);\r\n const res = await dispatch(\r\n AssignArticleForEditor({ articleId, assignTo, assignedAs, remarks })\r\n );\r\n setLoading(false);\r\n onSave();\r\n articlesRef && articlesRef.current.loadData();\r\n };\r\n return (\r\n <div>\r\n <div className=\"margin-bottom-10\">\r\n <Input\r\n value={state.editorName}\r\n placeholder=\"Search Editor\"\r\n onChange={(val: any) => onChangeSearch(\"editorName\", val)}\r\n ></Input>\r\n </div>\r\n <div className=\"margin-bottom-10\">\r\n <TableView showNoData={false} columns={columns} data={tableData} />\r\n </div>\r\n <div className=\"margin-bottom-10\">\r\n <Input\r\n type=\"textarea\"\r\n value={state.remarks}\r\n onChange={(val: any) => setState({ ...state, remarks: val })}\r\n ></Input>\r\n </div>\r\n <div className=\"flex-end\">\r\n <Button type=\"primary\" onClick={onSaveClicked} loading={loading}>\r\n Save\r\n </Button>\r\n </div>\r\n </div>\r\n );\r\n};\r\nexport default AssignUser;\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { Link, NavLink, useHistory } from \"react-router-dom\";\r\nimport AssignUser from \"./assignUser\";\r\nimport { useDispatch } from \"react-redux\";\r\n\r\nconst Actions = (props) => {\r\n const { row, selectedTab, articlesRef } = props;\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n\r\n const getActions = () => {\r\n var actions = [];\r\n actions.push(<AssignUser {...props} dispatch={dispatch} />);\r\n return actions;\r\n };\r\n\r\n return <>{getActions()}</>;\r\n};\r\n\r\nexport default Actions;\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { Link, NavLink, useHistory } from \"react-router-dom\";\r\n\r\nimport {\r\n Form,\r\n Input,\r\n Button,\r\n Select,\r\n Table,\r\n Pagination,\r\n Dialog,\r\n Message,\r\n MessageBox,\r\n Breadcrumb,\r\n Progress,\r\n Dropdown,\r\n} from \"element-react\";\r\nimport Routes from \"routes\";\r\nimport { GetArticles, DeleteArticle } from \"store/actions/articles\";\r\nimport RouteEnum from \"constants/routesEnum\";\r\nimport ArticleStatusEnum from \"constants/articleStatusEnum\";\r\nimport TableView from \"components/tableView\";\r\nimport SplitButton from \"components/popup/splitButton\";\r\nimport Articles from \"scenes/common/articles\";\r\nimport Actions from \"./actions\";\r\n\r\nconst Submissions = (props) => {\r\n const { selectedTab } = props;\r\n const articlesRef: any = useRef(null);\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n const getStatus = () => {\r\n var status = \"0\";\r\n\r\n if (selectedTab == \"NEW\") status = `${ArticleStatusEnum.SUBMITTED}`;\r\n else if (selectedTab == \"ONGOINGREVIEW\") {\r\n status = [\r\n ArticleStatusEnum.REVISION,\r\n ArticleStatusEnum.REJECTED,\r\n ArticleStatusEnum.APPROVED,\r\n ArticleStatusEnum.ASSIGNEDEDITOR,\r\n ArticleStatusEnum.REVIEWED,\r\n ArticleStatusEnum.REVIEWING,\r\n ].toString();\r\n }\r\n return status;\r\n };\r\n\r\n const renderAction = (row, index) => {\r\n return (\r\n <Actions row={row} selectedTab={selectedTab} articlesRef={articlesRef} />\r\n );\r\n };\r\n return (\r\n <div className=\"submitter\">\r\n <Articles\r\n selectedTab={selectedTab}\r\n actions={renderAction}\r\n getStatus={getStatus}\r\n ref={articlesRef}\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport default Submissions;\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { Link, NavLink, useHistory } from \"react-router-dom\";\r\n\r\nimport {\r\n Form,\r\n Input,\r\n Button,\r\n Select,\r\n Table,\r\n Pagination,\r\n Dialog,\r\n Message,\r\n MessageBox,\r\n Breadcrumb,\r\n Tabs,\r\n Badge,\r\n} from \"element-react\";\r\nimport Routes from \"routes\";\r\nimport { AddUserInterface } from \"interfaces/user\";\r\nimport { GetRoles } from \"store/actions/common\";\r\nimport { GetUserList, DeleteUser, ChangeUserStatus } from \"store/actions/user\";\r\nimport RouteEnum from \"constants/routesEnum\";\r\nimport ArticleStatusEnum from \"constants/articleStatusEnum\";\r\nimport SubmissionList from \"./components/submissionList\";\r\nimport TabTitle from \"scenes/common/tabTitle\";\r\n\r\nconst AdminLandingPage = () => {\r\n const [selectedTab, setSelectedTab] = useState(\"NEW\");\r\n const tabs = [\r\n {\r\n label: \"New Submission\",\r\n name: \"NEW\",\r\n },\r\n {\r\n label: \"On Going Review\",\r\n name: \"ONGOINGREVIEW\",\r\n },\r\n ];\r\n\r\n const handleTabClicked = (e) => {\r\n const { name } = e.props;\r\n setSelectedTab(name);\r\n };\r\n\r\n return (\r\n <div>\r\n <Breadcrumb separator=\"/\">\r\n <Breadcrumb.Item>\r\n <Link to={RouteEnum.adminSubmission}>Home</Link>\r\n </Breadcrumb.Item>\r\n </Breadcrumb>\r\n\r\n <div className=\"submission\">\r\n <Tabs type=\"card\" value={selectedTab} onTabClick={handleTabClicked}>\r\n {tabs.map((item, index) => (\r\n <Tabs.Pane\r\n key={index}\r\n label={\r\n <TabTitle item={item} selectedTab={selectedTab} count={24} />\r\n }\r\n name={item.name}\r\n ></Tabs.Pane>\r\n ))}\r\n </Tabs>\r\n\r\n {<SubmissionList selectedTab={selectedTab} />}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default AdminLandingPage;\r\n","import RoleEnum from \"constants/roleEnum\";\nimport RouteEnum from \"constants/routesEnum\";\nimport User from \"scenes/Administrator/user\";\nimport AdminLandingPage from \"scenes/Administrator\";\n\nconst AdminRoutes = [\n {\n exact: true,\n component: User,\n role: RoleEnum.Administrator,\n title: \"User\",\n path: RouteEnum.user,\n },\n {\n exact: true,\n component: AdminLandingPage,\n role: RoleEnum.Administrator,\n title: \"Submissions\",\n path: RouteEnum.adminSubmission,\n },\n];\n\nexport default AdminRoutes;\n","import React, { useState } from \"react\";\r\nimport { Dialog, Button, Input, Form } from \"element-react\";\r\nimport {\r\n FaPlus,\r\n FaMinus,\r\n FaUserPlus,\r\n FaCheck,\r\n FaUndo,\r\n FaBan,\r\n} from \"react-icons/fa\";\r\nimport TableView from \"components/tableView\";\r\nimport ArticleStatusEnum from \"constants/articleStatusEnum\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\n\r\nconst ActionConfirmation = ({ row, status, title, handleSave }) => {\r\n const [state, setState] = useState({ remarks: \"\" });\r\n const { messages } = useSelector((state: any) => state.validateReducer);\r\n const [isVisible, setVisible] = useState(false);\r\n\r\n const onClick = () => {\r\n setVisible(true);\r\n };\r\n\r\n const closeModal = () => {\r\n setState({ remarks: \"\" });\r\n setVisible(false);\r\n };\r\n\r\n const getTitleFor = () => {\r\n return `Are you sure, you want to ${title.toLowerCase()} this article?`;\r\n };\r\n const getIcon = () => {\r\n if (status === ArticleStatusEnum.APPROVED) return <FaCheck />;\r\n if (status === ArticleStatusEnum.REVISION) return <FaUndo />;\r\n if (status === ArticleStatusEnum.REJECTED) return <FaBan />;\r\n };\r\n\r\n const onSave = async (e) => {\r\n var param = { status, articleId: row.Id, remarks: state.remarks };\r\n await handleSave(param);\r\n closeModal();\r\n };\r\n return (\r\n <>\r\n <Button size=\"mini\" onClick={() => onClick()}>\r\n {getIcon()}\r\n {title}\r\n </Button>\r\n {isVisible && (\r\n <Dialog\r\n title={getTitleFor()}\r\n visible={isVisible}\r\n onCancel={closeModal}\r\n style={{ width: \"500px\" }}\r\n >\r\n <Dialog.Body>\r\n <Form>\r\n <Form.Item label=\"Remarks\">\r\n <Input\r\n type=\"textarea\"\r\n placeholder=\"Remarks\"\r\n value={state.remarks}\r\n onChange={(val: any) => setState({ ...state, remarks: val })}\r\n ></Input>\r\n </Form.Item>\r\n <div className=\"flex-end\">\r\n <Button type=\"primary\" onClick={onSave}>\r\n Save\r\n </Button>\r\n </div>\r\n </Form>\r\n </Dialog.Body>\r\n </Dialog>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default ActionConfirmation;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n Dialog,\r\n Button,\r\n Input,\r\n Radio,\r\n Message,\r\n DatePicker,\r\n} from \"element-react\";\r\nimport { FaPlus, FaMinus, FaUserPlus } from \"react-icons/fa\";\r\nimport TableView from \"components/tableView\";\r\nimport { userWithAssignedInfo } from \"store/actions/articles\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport RoleEnum from \"constants/roleEnum\";\r\nimport { isEmpty } from \"helpers\";\r\n\r\nconst AssignUserButton = (props) => {\r\n const { title, onAssignClick } = props;\r\n\r\n return (\r\n <Button size=\"mini\" onClick={onAssignClick}>\r\n <FaUserPlus />\r\n {isEmpty(title) ? \"Assign\" : title}\r\n </Button>\r\n );\r\n};\r\n\r\nexport default AssignUserButton;\r\n","export enum EmailTemplateEnum {\r\n SignUpTemplate = 1,\r\n ResetPasswordLink = 2,\r\n SendResetPasReReRwordLinkInMail = 3,\r\n AssingReviewArticle = 4,\r\n}\r\nexport default EmailTemplateEnum;\r\n","import moment from \"moment\"; \r\n\r\nexport const dateFormat = (date: Date) => {\r\n if (date === null || date === undefined) return null\r\n return moment(date).format(\"YYYY-MM-DD\");\r\n};\r\n","import React, { useEffect } from \"react\";\r\n\r\nconst useOutsideClick = (ref, setDrop, parentRef) => {\r\n function handleClickOutside(event) {\r\n if (parentRef) {\r\n if (ref.current && !ref.current.contains(event.target)) {\r\n if (!parentRef.current.contains(event.target)) {\r\n setDrop && setDrop();\r\n }\r\n }\r\n } else {\r\n if (ref.current && !ref.current.contains(event.target)) {\r\n setDrop && setDrop();\r\n }\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n // Bind the event listener\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => {\r\n // Unbind the event listener on clean up\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n });\r\n};\r\n\r\nexport default useOutsideClick;\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport useOutsideClick from \"hooks/useOutsideClick\";\r\nimport configureStore from \"store/configureStore\";\r\nimport { Provider } from \"react-redux\";\r\nimport \"./style.scss\";\r\nconst store = configureStore({});\r\n\r\nconst Popover = (props: any) => {\r\n const { open, containerClassName } = props;\r\n var popupRef = useRef(null);\r\n const [target, setTarget] = useState(document.createElement(\"div\"));\r\n const [state, setState] = useState({\r\n left: -1,\r\n top: -1,\r\n visibility: \"hidden\",\r\n });\r\n\r\n useOutsideClick(popupRef, props.handleOutsideClick, props.parentRef);\r\n useEffect(() => {\r\n document.body.appendChild(target);\r\n document.addEventListener(\"scroll\", handleSCroll);\r\n return () => {\r\n ReactDOM.unmountComponentAtNode(target);\r\n document.body.removeChild(target);\r\n document.removeEventListener(\"scroll\", handleSCroll);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n props.children && render();\r\n }, [props.children]);\r\n\r\n useEffect(() => {\r\n render();\r\n }, [state]);\r\n\r\n const handleSCroll = () => {\r\n open && props.handleOutsideClick && props.handleOutsideClick(false);\r\n };\r\n\r\n const setPosition = () => {\r\n if (popupRef && popupRef.current) {\r\n const { parentRef } = props;\r\n\r\n const { width: popupWidth, height: popupHeight } =\r\n popupRef.current.getBoundingClientRect();\r\n\r\n const { x, y, width, height } =\r\n parentRef && parentRef.current.getBoundingClientRect();\r\n let newTop = y + height;\r\n let newLeft = x;\r\n\r\n if (newTop + popupHeight > window.innerHeight) {\r\n newTop = y - popupHeight;\r\n }\r\n if (newTop < 0) {\r\n newTop = 10;\r\n }\r\n if (newLeft + popupWidth > window.innerWidth) {\r\n var rightMargin = window.innerWidth - (x + width);\r\n newLeft = window.innerWidth - popupWidth - rightMargin; // - width;\r\n }\r\n\r\n let newState = {\r\n top: newTop,\r\n left: newLeft,\r\n visibility: \"visible\",\r\n };\r\n\r\n if (!isEqual(newState)) setState(newState);\r\n }\r\n };\r\n const isEqual = (newState) => {\r\n if (state.top !== newState.top) return false;\r\n if (state.left !== newState.left) return false;\r\n if (state.visibility !== newState.visibility) return false;\r\n return true;\r\n };\r\n const render = () => {\r\n const style: any = { ...state };\r\n const { parentRef } = props;\r\n\r\n ReactDOM.render(\r\n <Provider store={store}>\r\n <div className={props.containerClassName} style={style} ref={popupRef}>\r\n {props.children}\r\n </div>\r\n </Provider>,\r\n target,\r\n () => {\r\n setPosition();\r\n }\r\n );\r\n };\r\n\r\n return <noscript />;\r\n};\r\nPopover.defaultProps = {\r\n containerClassName: \"irc-popup\",\r\n // height: 360,\r\n // width: 300,\r\n};\r\nexport default Popover;\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { Input, Checkbox } from \"element-react\";\r\nimport TableView from \"components/tableView\";\r\nimport { userWithAssignedInfo } from \"store/actions/articles\";\r\nimport RoleEnum from \"constants/roleEnum\";\r\nimport Popover from \"components/popup/_popover\";\r\n\r\nconst ReviewerPopup = (props) => {\r\n const {\r\n popRef,\r\n setOpen,\r\n open,\r\n dispatch,\r\n name,\r\n onChange,\r\n row,\r\n selectedReviewer,\r\n } = props;\r\n const [state, setState] = useState({ name: \"\" });\r\n const [selected, setSelected] = useState([]);\r\n const [tableData, setTableData] = useState([]);\r\n const [value, setValue] = useState([]);\r\n useEffect(() => {\r\n setValue(selectedReviewer);\r\n }, [selectedReviewer]);\r\n\r\n useEffect(() => {\r\n fetchData(\"\");\r\n }, []);\r\n\r\n const fetchData = async (fullname) => {\r\n var res: any = await dispatch(\r\n userWithAssignedInfo({\r\n articleId: row.Id,\r\n fullname: fullname,\r\n role: RoleEnum.Reviewer,\r\n })\r\n );\r\n // res.map((x) => ({ ...x, label: x.FullName, value: x.Id }));\r\n //var index = res.findIndex((x) => x.IsAssigned);\r\n //setSelectedIndex(index);\r\n setTableData(res);\r\n };\r\n const onSelected = (row) => {\r\n const newValue = [...value];\r\n const index = newValue.findIndex((x) => x.Id === row.Id);\r\n if (index >= 0) newValue.splice(index, 1);\r\n else newValue.push(row);\r\n onChange && onChange(name, newValue);\r\n };\r\n const isChecked = (row) =>\r\n value && value.filter((x) => x.Id === row.Id).length > 0;\r\n\r\n const columns = [\r\n {\r\n label: \"\",\r\n prop: \"\",\r\n width: 60,\r\n render: (row, column, index) => {\r\n return (\r\n <div>\r\n <Checkbox\r\n checked={isChecked(row)}\r\n onChange={() => onSelected(row)}\r\n />\r\n </div>\r\n );\r\n },\r\n },\r\n {\r\n label: \"Reviewer\",\r\n prop: \"FullName\",\r\n render: (row, column, index) => (\r\n <div onClick={() => onSelected(row)}>{row.FullName}</div>\r\n ),\r\n },\r\n {\r\n label: \"Done\",\r\n prop: \"Done\",\r\n width: 120,\r\n render: (row, column, index) => (\r\n <div onClick={() => onSelected(row)}>{row.Done}</div>\r\n ),\r\n },\r\n {\r\n label: \"Active\",\r\n prop: \"Active\",\r\n width: 120,\r\n render: (row, column, index) => (\r\n <div onClick={() => onSelected(row)}>{row.Active}</div>\r\n ),\r\n },\r\n ];\r\n\r\n const onChangeName = (val) => {\r\n setState({ ...state, name: val });\r\n fetchData(val);\r\n };\r\n return (\r\n <Popover\r\n parentRef={popRef}\r\n open={open}\r\n handleOutsideClick={() => setOpen(!open)}\r\n >\r\n <div className=\"assign-popup\">\r\n <div className=\"margin-bottom-10\">\r\n <Input\r\n value={state.name}\r\n placeholder=\"Search Reviewer\"\r\n onChange={(val: any) => onChangeName(val)}\r\n ></Input>\r\n </div>\r\n <div className=\"margin-bottom-10\">\r\n <TableView showNoData={false} columns={columns} data={tableData} />\r\n </div>\r\n </div>\r\n </Popover>\r\n );\r\n};\r\nexport default ReviewerPopup;\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport ReviewerPopup from \"./reviewerPopup\";\r\n\r\nconst ReviewerInput = (props) => {\r\n const { row, handleReveiwerSelected, selectedReviewer, onChange } = props;\r\n const popRef: any = useRef();\r\n const [state, setState] = useState({ open: false, reviewers: [] });\r\n\r\n const dispatch = useDispatch();\r\n\r\n const onReviewerSelected = (index, val) => {\r\n handleReveiwerSelected(val);\r\n // setSelectedIndex(index);\r\n //setOpen(false);\r\n };\r\n return (\r\n <div ref={popRef}>\r\n <div\r\n className=\"assign-selector\"\r\n onClick={() => setState({ ...state, open: !state.open })}\r\n >\r\n {state.reviewers && state.reviewers.length > 0 ? (\r\n state.reviewers.map((x) => (\r\n <span className=\"assign-selector-name\">{x.FullName}</span>\r\n ))\r\n ) : (\r\n <span className=\"assign-selector-info\">\r\n {selectedReviewer ? \"Change Reviewer\" : \"Select Reviewer\"}\r\n </span>\r\n )}\r\n </div>\r\n\r\n {state.open ? (\r\n <ReviewerPopup\r\n dispatch={dispatch}\r\n name=\"reviewers\"\r\n selectedReviewer={state.reviewers}\r\n popRef={popRef}\r\n setOpen={(val) => setState({ ...state, open: val })}\r\n open={state.open}\r\n row={row}\r\n onChange={(name, val) => {\r\n setState({ ...state, [name]: val });\r\n onChange && onChange(name, val);\r\n }}\r\n />\r\n ) : null}\r\n </div>\r\n );\r\n};\r\n\r\nexport default ReviewerInput;\r\n","import React, { useEffect, useRef, useState } from 'react'\r\nimport {\r\n Dialog,\r\n Button,\r\n Input,\r\n Radio,\r\n Message,\r\n DatePicker,\r\n Form,\r\n} from 'element-react'\r\nimport { FaPlus, FaMinus, FaUserPlus } from 'react-icons/fa'\r\nimport TableView from 'components/tableView'\r\nimport {\r\n SaveReview,\r\n GetReviewDetails,\r\n userWithAssignedInfo,\r\n AssignToReviewers,\r\n} from 'store/actions/articles'\r\nimport { GetEmailTemplate } from 'store/actions/common'\r\n\r\nimport { useDispatch } from 'react-redux'\r\nimport RoleEnum from 'constants/roleEnum'\r\nimport EmailTemplateEnum from 'constants/emailTemplateEnum'\r\nimport { getRequiredRules, isEmpty } from 'helpers'\r\nimport { dateFormat } from 'helpers/dateHelper'\r\nimport Loader from 'components/loader.tsx'\r\nimport { Editor } from 'components/form'\r\nimport ReviewerInput from './reviewerInput'\r\n\r\nconst AssignReviewer = (props) => {\r\n const { onCancel, row } = props\r\n const [selectedReviewer, setSelectedReviewer] = useState(null)\r\n var formRef: any = useRef()\r\n const dispatch = useDispatch()\r\n\r\n const [state, setState] = useState({\r\n reveiwer: '',\r\n loading: false,\r\n responseDueDate: null,\r\n reviewDueDate: null,\r\n emailText: '',\r\n reviewers: [],\r\n isLoading: false,\r\n })\r\n\r\n useEffect(() => {\r\n // const reviewId = row && row.ReviewId;\r\n // if (reviewId) loadReview(reviewId);\r\n }, [row])\r\n\r\n useEffect(() => {\r\n loadEmailTemplate()\r\n }, [])\r\n\r\n const rules = {\r\n responseDueDate: [getRequiredRules('Response due date is required')],\r\n reviewDueDate: [getRequiredRules('Review due date is required')],\r\n reviewers: [getRequiredRules('Reviewer is required', 'array')],\r\n emailText: [getRequiredRules('Email text is required.')],\r\n }\r\n\r\n const submit = async () => {\r\n formRef.current.validate(async (valid) => {\r\n if (valid) {\r\n setState({ ...state, loading: true })\r\n\r\n const res = await dispatch(\r\n AssignToReviewers({\r\n reviewId: props && props.row.ReviewId,\r\n articleId: props && props.row.Id,\r\n reviewers: state.reviewers && state.reviewers.map((x) => x.Id),\r\n assignedAs: RoleEnum.Reviewer,\r\n reviewDueDate: state.reviewDueDate,\r\n responseDueDate: state.responseDueDate,\r\n emailText: state.emailText,\r\n }),\r\n )\r\n props.onSuccess && props.onSuccess()\r\n\r\n setState({ ...state, loading: false })\r\n }\r\n })\r\n }\r\n\r\n const onChangeDate = (name, date) => {\r\n console.clear()\r\n console.log(date, dateFormat(date))\r\n setState({ ...state, [name]: dateFormat(date) })\r\n }\r\n const onChange = (name, value) => {\r\n setState({ ...state, [name]: value })\r\n }\r\n\r\n const loadEmailTemplate = async () => {\r\n var res: any = await dispatch(\r\n GetEmailTemplate(EmailTemplateEnum.AssingReviewArticle),\r\n )\r\n setState({ ...state, emailText: res.BodyText })\r\n }\r\n\r\n const loadReview = async (reviewId) => {\r\n setState({ ...state, isLoading: true })\r\n const res: any = await dispatch(GetReviewDetails(reviewId))\r\n\r\n if (res) {\r\n setSelectedReviewer({ FullName: res.ReviewerName, Id: res.ReviewerId })\r\n\r\n setState({\r\n ...state,\r\n reveiwer: res.ReviewerId,\r\n reviewDueDate: res.ReviewDueDate,\r\n responseDueDate: res.ResponsDueDate,\r\n emailText: res.EmailText,\r\n isLoading: false,\r\n })\r\n } else setState({ ...state, isLoading: false })\r\n }\r\n return (\r\n <Loader isLoading={state.isLoading}>\r\n <Form\r\n ref={formRef}\r\n rules={rules}\r\n model={state}\r\n className=\"demo-form-stacked\"\r\n labelPosition=\"top\"\r\n labelWidth=\"100\"\r\n >\r\n <Form.Item label=\"Reviewer\" prop=\"reviewers\">\r\n <ReviewerInput\r\n name=\"reviewers\"\r\n {...props}\r\n onChange={onChange}\r\n setSelectedReviewer={setSelectedReviewer}\r\n selectedReviewer={selectedReviewer}\r\n />\r\n </Form.Item>\r\n\r\n <Form.Item label=\"Email to be sent to reviewer\" prop=\"emailText\">\r\n <Editor\r\n name=\"emailText\"\r\n value={state.emailText}\r\n onChange={onChange}\r\n />\r\n </Form.Item>\r\n <div className=\"flex\">\r\n <Form.Item\r\n className=\"margin-right-10\"\r\n label=\"Response Due Date\"\r\n prop=\"responseDueDate\"\r\n >\r\n <DatePicker\r\n value={state?.responseDueDate && new Date(state.responseDueDate)}\r\n placeholder=\"Response Due Date\"\r\n onChange={(date) => onChangeDate('responseDueDate', date)}\r\n disabledDate={(time) => time.getTime() < Date.now() - 8.64e7}\r\n />\r\n </Form.Item>\r\n <Form.Item label=\"Review Due Date\" prop=\"reviewDueDate\">\r\n <DatePicker\r\n value={state?.reviewDueDate && new Date(state.reviewDueDate)}\r\n placeholder=\"Review Due Date\"\r\n onChange={(date) => onChangeDate('reviewDueDate', date)}\r\n disabledDate={(time) => time.getTime() < Date.now() - 8.64e7}\r\n />\r\n </Form.Item>\r\n </div>\r\n\r\n <div className=\"flex-end\">\r\n <Button type=\"primary\" onClick={submit} loading={state.loading}>\r\n Save\r\n </Button>\r\n <Button type=\"danger\" onClick={onCancel}>\r\n Cancel\r\n </Button>\r\n </div>\r\n </Form>\r\n </Loader>\r\n )\r\n}\r\n\r\nexport default AssignReviewer\r\n","export enum ReviewStatusEnum {\r\n ACCEPTED = 1,\r\n UNDERREVIEW = 2,\r\n COMPLETED = 3,\r\n DECLINED = 4,\r\n}\r\nexport default ReviewStatusEnum;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Button, Dialog, Progress } from \"element-react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport {\r\n GetReviewByArticleId,\r\n RequestRevision,\r\n DeleteReviewer,\r\n} from \"store/actions/articles\";\r\nimport { Wrapper } from \"components/form\";\r\nimport Attachments from \"scenes/common/attachments\";\r\nimport { createMarkup, isEmpty } from \"helpers\";\r\nimport { FaUserPlus, FaTrash } from \"react-icons/fa\";\r\nimport ReviewStatusEnum from \"constants/reviewStatusEnum\";\r\nimport classNames from \"classnames\";\r\nimport moment from \"moment\";\r\n\r\nconst ReviewCard = ({ review, handleOnDelete }) => {\r\n const [state, setState] = useState({ isLoading: false });\r\n const dispatch = useDispatch();\r\n\r\n const getCard = (title, subtitle) => {\r\n return (\r\n title && (\r\n <div className=\"box\">\r\n <span className=\"box-title\">{moment(title).format(\"ll\")}</span>\r\n <span className=\"box-subtitle\">{subtitle}</span>\r\n </div>\r\n )\r\n );\r\n };\r\n const getStatus = () => {\r\n let statusText = \"\";\r\n let backColorClass = \"gray\";\r\n const { RecommendationId, Recommendation, ReviewStatus } = review;\r\n\r\n if (ReviewStatus === 0) {\r\n statusText = \"Waiting for Acceptance\";\r\n backColorClass = \"gray\";\r\n }\r\n // else if (!isEmpty(RecommendationId) && RecommendationId !== 0) {\r\n // statusText = Recommendation;\r\n // if (RecommendationId == 1) {\r\n // backColorClass = \"green\";\r\n // } else if (RecommendationId === 2 || RecommendationId === 4) {\r\n // backColorClass = \"yellow\";\r\n // } else {\r\n // backColorClass = \"red\";\r\n // }\r\n // }\r\n else if (ReviewStatus === ReviewStatusEnum.COMPLETED) {\r\n statusText = \"Review Submitted\";\r\n backColorClass = \"green\";\r\n } else if (ReviewStatus === ReviewStatusEnum.DECLINED) {\r\n statusText = \"Review Declined\";\r\n backColorClass = \"red\";\r\n } else if (\r\n ReviewStatus === ReviewStatusEnum.ACCEPTED ||\r\n ReviewStatus === ReviewStatusEnum.UNDERREVIEW\r\n ) {\r\n statusText = \"Under Review\";\r\n backColorClass = \"yellow\";\r\n }\r\n return (\r\n <span\r\n className={classNames(\"review-status\", {\r\n [backColorClass]: true,\r\n })}\r\n >\r\n {statusText}\r\n </span>\r\n );\r\n };\r\n const reviewBody = () => {\r\n return (\r\n <>\r\n <div className=\"reviewdetail__reviewers-body\">\r\n {!isEmpty(review.CommentsForEditor) && (\r\n <Wrapper label=\"Comment for Editor\">\r\n <div\r\n className=\"ck-editor-content\"\r\n dangerouslySetInnerHTML={createMarkup(review.CommentsForEditor)}\r\n />\r\n </Wrapper>\r\n )}\r\n {!isEmpty(review.CommentsForEditorAndAuthor) && (\r\n <Wrapper label=\"Comment for Editor and Author\">\r\n <div\r\n className=\"ck-editor-content\"\r\n dangerouslySetInnerHTML={createMarkup(\r\n review.CommentsForEditorAndAuthor\r\n )}\r\n />\r\n </Wrapper>\r\n )}\r\n\r\n {review.ReviewFiles && review.ReviewFiles.length > 0 && (\r\n <Wrapper>\r\n <Attachments files={review.ReviewFiles} title=\"Review Files\" />\r\n </Wrapper>\r\n )}\r\n </div>\r\n </>\r\n );\r\n };\r\n\r\n const onRemoveClick = async () => {\r\n setState({ ...state, isLoading: true });\r\n await dispatch(DeleteReviewer(review.ReviewerId));\r\n handleOnDelete && handleOnDelete(review.ReviewerId);\r\n setState({ ...state, isLoading: false });\r\n };\r\n\r\n return (\r\n <div className=\"reviewdetail__reviewers\">\r\n <div className=\"reviewdetail__reviewers-name\">\r\n Reviewer: {review.ReviewerName}\r\n </div>\r\n\r\n <div className=\"reviewdetail__reviewers-info\">\r\n {getCard(review.CreatedOn, \"Requested On\")}\r\n {getCard(review.ResponsDueDate, \"Response Due Date\")}\r\n {getCard(review.ReviewDueDate, \"Review Due Date\")}\r\n {getCard(review.AcceptedOn, \"Accepted On\")}\r\n {getCard(review.CompletedOn, \"Completed On\")}\r\n </div>\r\n {reviewBody()}\r\n {!isEmpty(review.RecommendationId) && review.RecommendationId > 0 && (\r\n <Wrapper label=\"Review recommendation\">{review.Recommendation}</Wrapper>\r\n )}\r\n <div className=\"reviewdetail__reviewers-sblock\">\r\n <div className=\"article-card__status-progress\">\r\n <Progress\r\n type=\"circle\"\r\n strokeWidth={12}\r\n percentage={(review.Steps / 4) * 100}\r\n />\r\n </div>\r\n {getStatus()}\r\n </div>\r\n\r\n <div className=\"reviewdetail__reviewers-actionblock\">\r\n <Button\r\n size=\"mini\"\r\n type=\"danger\"\r\n onClick={onRemoveClick}\r\n loading={state.isLoading}\r\n >\r\n <FaTrash />\r\n Remove Reviewer\r\n </Button>\r\n </div>\r\n </div>\r\n );\r\n};\r\nexport default ReviewCard;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Button, Dialog, Progress } from \"element-react\";\r\nimport Loader from \"components/loader.tsx\";\r\nimport { Wrapper } from \"components/form\";\r\nimport Attachments from \"scenes/common/attachments\";\r\nimport { createMarkup, isEmpty } from \"helpers\";\r\nimport { FaUserPlus, FaTrash } from \"react-icons/fa\";\r\nimport ReviewStatusEnum from \"constants/reviewStatusEnum\";\r\nimport classNames from \"classnames\";\r\nimport ReviewCard from \"./reviewCard\";\r\n\r\nconst ReviewDetail = ({ review, dispatch, showAddReviewer, onSuccess }) => {\r\n const [state, setState] = useState({\r\n isLoading: false,\r\n review: null,\r\n });\r\n const handleOnReviewerDelete = (reviewerId) => {\r\n onSuccess && onSuccess();\r\n };\r\n\r\n return (\r\n <Loader isLoading={state.isLoading}>\r\n <div className=\"reviewdetail-header\">\r\n <h4>{review && review.Title}</h4>\r\n <Button size=\"mini\" type=\"primary\" onClick={() => showAddReviewer()}>\r\n <FaUserPlus />\r\n Add Reviewer\r\n </Button>\r\n </div>\r\n {review && (\r\n <div>\r\n {review.Reviews.length === 0 ? (\r\n <div>No reveiw request has been requested yet.</div>\r\n ) : (\r\n review.Reviews.map((x, index) => (\r\n <ReviewCard\r\n key={index}\r\n review={x}\r\n handleOnDelete={handleOnReviewerDelete}\r\n />\r\n ))\r\n )}\r\n </div>\r\n )}\r\n </Loader>\r\n );\r\n};\r\n\r\nexport default ReviewDetail;\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { Button, Dialog } from \"element-react\";\r\nimport AssignReviewerForm from \"./assignReviewerForm\";\r\nimport ReviewDetail from \"./reviewDetail\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { GetReviewByArticleId } from \"store/actions/articles\";\r\nimport { FaUserPlus } from \"react-icons/fa\";\r\n\r\nconst AssignReviewer = (props) => {\r\n const [state, setState] = useState({\r\n name: \"\",\r\n isLoading: false,\r\n review: null,\r\n showReviewerForm: false,\r\n });\r\n const { row, isVisible, setVisible, articlesRef } = props;\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {}, [row.ReviewId]);\r\n const handleCancel = () => {\r\n setVisible(false);\r\n };\r\n const onSuccess = () => {\r\n //setVisible(false);\r\n loadReview(row.Id);\r\n };\r\n\r\n useEffect(() => {\r\n row && row.Id && loadReview(row.Id);\r\n }, [row]);\r\n\r\n const loadReview = async (articleId) => {\r\n setState({ ...state, isLoading: true });\r\n var res = await dispatch(GetReviewByArticleId(articleId));\r\n setState({\r\n ...state,\r\n isLoading: false,\r\n review: res,\r\n showReviewerForm: false,\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n <div>\r\n {state.showReviewerForm ? (\r\n <AssignReviewerForm\r\n {...props}\r\n onSuccess={onSuccess}\r\n onCancel={() => setState({ ...state, showReviewerForm: false })}\r\n />\r\n ) : (\r\n <ReviewDetail\r\n review={state.review}\r\n dispatch={dispatch}\r\n onSuccess={onSuccess}\r\n showAddReviewer={() =>\r\n setState({ ...state, showReviewerForm: true })\r\n }\r\n />\r\n )}\r\n </div>\r\n </>\r\n );\r\n};\r\n\r\nexport default AssignReviewer;\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { Dialog, Form, Input, Select, Button } from \"element-react\";\r\nimport { AttachmentButton } from \"components/form\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nconst initialState = {\r\n Attachment: null,\r\n};\r\n\r\nconst UploadFile = (props) => {\r\n const { isVisible, onSave, onCancel, selectedFileData, title } = props;\r\n const [state, setState] = useState(initialState);\r\n const { components } = useSelector((state: any) => state.metaReducer);\r\n\r\n useEffect(() => {\r\n const data = selectedFileData.data;\r\n if (data) {\r\n setState({\r\n ...data,\r\n Attachment: data.Attachment || {\r\n serverFileName: data.ServerFileName,\r\n name: data.UserFileName,\r\n },\r\n });\r\n } else {\r\n setState(initialState);\r\n }\r\n }, [selectedFileData]);\r\n\r\n const handleChange = (name, value) => {\r\n setState({ ...state, [name]: value });\r\n };\r\n\r\n const handleSave = () => {\r\n let obj = {\r\n ...state,\r\n };\r\n onSave && onSave(selectedFileData.index, obj);\r\n setState(initialState);\r\n };\r\n return (\r\n <Dialog title={title} visible={isVisible} onCancel={onCancel}>\r\n <Dialog.Body>\r\n <Form model={state} labelPosition=\"top\">\r\n <Form.Item label=\"Attachment\">\r\n <AttachmentButton\r\n value={state.Attachment}\r\n name=\"Attachment\"\r\n onChange={handleChange}\r\n />\r\n </Form.Item>\r\n <Form.Item>\r\n <Button type=\"primary\" onClick={() => handleSave()}>\r\n Save\r\n </Button>\r\n </Form.Item>\r\n </Form>\r\n </Dialog.Body>\r\n </Dialog>\r\n );\r\n};\r\nexport default UploadFile;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Button } from \"element-react\";\r\nimport UploadFile from \"./uploadFile\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { isEmpty } from \"helpers\";\r\nimport { FiFile } from \"react-icons/fi\";\r\nimport ArticleStatusEnum from \"constants/articleStatusEnum\";\r\n\r\nconst UploadFiles = (props) => {\r\n const { onSave, attachments, setAttachments, title, isDisabled } = props;\r\n const [isVisible, setVisible] = useState(false);\r\n const [selectedFileData, setSelectedFileData] = useState({\r\n data: null,\r\n index: -1,\r\n });\r\n const dispatch = useDispatch();\r\n\r\n const { article } = useSelector((st: any) => st.articleReducer);\r\n\r\n useEffect(() => {\r\n if (!isEmpty(article)) {\r\n let attachments = article.ArticleAttachments || [];\r\n setAttachments([...attachments]);\r\n }\r\n }, [article]);\r\n\r\n const handleSaveFile = (index, obj) => {\r\n let newAttachments = [...attachments];\r\n if (index >= 0) newAttachments[index] = obj;\r\n else newAttachments.push(obj);\r\n\r\n setAttachments(newAttachments);\r\n setVisible(false);\r\n };\r\n\r\n const handleAttachmentEditClick = (index) => {\r\n setSelectedFileData({ index: index, data: { ...attachments[index] } });\r\n setVisible(true);\r\n };\r\n\r\n const handleAttachmentDeleteClick = (index) => {\r\n let newAttachments = [...attachments];\r\n newAttachments.splice(index, 1);\r\n setAttachments(newAttachments);\r\n };\r\n\r\n return (\r\n <div className=\"upload-steps__submissions\">\r\n <div className=\"upload-steps__submissions-header\">\r\n <div>{title}</div>\r\n <div className=\"upload-steps__submissions-header-action\">\r\n <div>\r\n <Button\r\n type=\"text\"\r\n disabled={isDisabled}\r\n onClick={() => {\r\n setSelectedFileData({ index: -1, data: null });\r\n setVisible(true);\r\n }}\r\n >\r\n Upload File\r\n </Button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"upload-steps__submissions-body\">\r\n {attachments.length === 0 && (\r\n <div style={{ padding: \"10px\", textAlign: \"center\" }}>\r\n No files choosen\r\n </div>\r\n )}\r\n {attachments.map((attachment, index) => (\r\n <div className=\"upload-steps__attachment\" key={index}>\r\n <div className=\"upload-steps__attachment-info\">\r\n <div className=\"upload-steps__attachment-info-title\">\r\n <FiFile />\r\n {attachment.UserFileName\r\n ? attachment.UserFileName\r\n : attachment.Attachment && attachment.Attachment.name}\r\n </div>\r\n {/* <div className=\"upload-steps__attachment-info-subtitle\">\r\n Component: {attachment.ComponentName}\r\n </div> */}\r\n </div>\r\n <div className=\"upload-steps__attachment-action\">\r\n <Button\r\n type=\"text\"\r\n onClick={() => handleAttachmentEditClick(index)}\r\n >\r\n Edit\r\n </Button>\r\n <Button\r\n type=\"text\"\r\n onClick={() => handleAttachmentDeleteClick(index)}\r\n >\r\n Delete\r\n </Button>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n\r\n <UploadFile\r\n title={title}\r\n isVisible={isVisible}\r\n setVisible={setVisible}\r\n selectedFileData={selectedFileData}\r\n onCancel={() => {\r\n setVisible(false);\r\n setSelectedFileData({ index: -1, data: null });\r\n }}\r\n onSave={(index, obj) => handleSaveFile(index, obj)}\r\n />\r\n <div className=\"upload-steps__submissions-footer\"></div>\r\n </div>\r\n );\r\n};\r\nexport default UploadFiles;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Button, Dialog } from \"element-react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { GetReviewByArticleId, RequestRevision } from \"store/actions/articles\";\r\nimport Loader from \"components/loader.tsx\";\r\nimport { Wrapper } from \"components/form\";\r\nimport UploadFiles from \"scenes/common/uploadFiles\";\r\nimport { Editor } from \"components/form\";\r\nconst RequestForRevision = (props) => {\r\n const { row, title, dispatch, loadData } = props;\r\n\r\n const [state, setState] = useState({\r\n isVisible: false,\r\n isLoading: false,\r\n review: null,\r\n comments: \"\",\r\n attachments: [],\r\n });\r\n // const [commentsForAuthor, setCommentsForAuthor] = useState(\"\");\r\n\r\n const onClick = () => {\r\n setState({ ...state, isVisible: true });\r\n };\r\n const closeModal = () => {\r\n setState({ ...state, isVisible: false });\r\n };\r\n const onClickRequestRevison = async () => {\r\n const { comments, attachments } = state;\r\n const param = { ArticleId: row.Id, Comments: comments, Files: attachments };\r\n setState({ ...state, isLoading: true });\r\n const res = await dispatch(RequestRevision(param));\r\n\r\n if (res && res.Status) {\r\n setState({ ...state, isVisible: false, isLoading: false });\r\n loadData();\r\n } else {\r\n setState({ ...state, isLoading: false });\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n <Button size=\"mini\" onClick={() => onClick()}>\r\n {title}\r\n </Button>\r\n {state.isVisible && (\r\n <Dialog\r\n title=\"Request Revision\"\r\n visible={state.isVisible}\r\n onCancel={closeModal}\r\n style={{ width: \"900px\" }}\r\n >\r\n <Dialog.Body>\r\n <Loader isLoading={state.isLoading}>\r\n <div>\r\n <Wrapper label=\"Comments For Author\">\r\n <Editor\r\n name=\"comments\"\r\n value={state.comments}\r\n onChange={(name, val) => {\r\n setState({ ...state, comments: val });\r\n }}\r\n />\r\n </Wrapper>\r\n <UploadFiles\r\n title=\"Revision Attachments\"\r\n attachments={state.attachments}\r\n setAttachments={(files) =>\r\n setState({ ...state, attachments: files })\r\n }\r\n />\r\n <Wrapper>\r\n <Button\r\n type=\"primary\"\r\n onClick={onClickRequestRevison}\r\n loading={state.isLoading}\r\n >\r\n Request Revision\r\n </Button>\r\n </Wrapper>\r\n </div>\r\n </Loader>\r\n </Dialog.Body>\r\n </Dialog>\r\n )}\r\n </>\r\n );\r\n};\r\nexport default RequestForRevision;\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { Link, NavLink, useHistory } from \"react-router-dom\";\r\nimport { Button, Dialog } from \"element-react\";\r\nimport ActionConfirmation from \"./actionConfirmation\";\r\nimport ArticleStatusEnum from \"constants/articleStatusEnum\";\r\nimport AssignUserButton from \"./assignUserButton\";\r\nimport AssignReviewer from \"./assignReviewer\";\r\nimport { UpdateArticleStatus } from \"store/actions/articles\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport RequestRevision from \"./requestRevision\";\r\n\r\nconst Actions = (props) => {\r\n const { row, selectedTab, articlesRef, loadData } = props;\r\n const [isVisible, setVisible] = useState(false);\r\n // const dispatch = useDispatch();\r\n\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const onAssignClick = () => {\r\n setVisible(true);\r\n };\r\n const updateArticleStatus = async (param) => {\r\n await dispatch(UpdateArticleStatus(param));\r\n articlesRef.current.loadData();\r\n };\r\n const getActions = () => {\r\n var actions = [];\r\n\r\n actions.push(\r\n <ActionConfirmation\r\n row={row}\r\n handleSave={updateArticleStatus}\r\n status={ArticleStatusEnum.APPROVED}\r\n title=\"Approve\"\r\n />\r\n );\r\n if (\r\n selectedTab === \"NEW\" ||\r\n selectedTab === \"NEEDACTIONS\" ||\r\n selectedTab === \"UNDERREVIEW\"\r\n )\r\n actions.push(\r\n <RequestRevision\r\n row={row}\r\n handleSave={updateArticleStatus}\r\n status={ArticleStatusEnum.REVISION}\r\n title=\"Request Author for Revisions\"\r\n dispatch={dispatch}\r\n loadData={() => articlesRef.current.loadData()}\r\n />\r\n );\r\n if (selectedTab !== \"REJECTED\") {\r\n actions.push(\r\n <ActionConfirmation\r\n row={row}\r\n handleSave={updateArticleStatus}\r\n status={ArticleStatusEnum.REJECTED}\r\n title=\"Reject\"\r\n />\r\n );\r\n\r\n actions.push(\r\n <AssignUserButton\r\n title=\"Reviews\"\r\n onAssignClick={onAssignClick}\r\n />\r\n );\r\n }\r\n return actions;\r\n };\r\n\r\n return (\r\n <>\r\n {getActions()}\r\n\r\n {isVisible && (\r\n <Dialog\r\n closeOnClickModal={false}\r\n title=\"Review History\"\r\n visible={isVisible}\r\n onCancel={() => setVisible(false)}\r\n style={{ width: \"800px\" }}\r\n >\r\n <Dialog.Body>\r\n <AssignReviewer\r\n row={row}\r\n isVisible={isVisible}\r\n setVisible={setVisible}\r\n articlesRef={articlesRef}\r\n />\r\n </Dialog.Body>\r\n </Dialog>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default Actions;\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { Link, NavLink, useHistory } from \"react-router-dom\";\r\n\r\nimport {\r\n Form,\r\n Input,\r\n Button,\r\n Select,\r\n Table,\r\n Pagination,\r\n Dialog,\r\n Message,\r\n MessageBox,\r\n Breadcrumb,\r\n Progress,\r\n Dropdown,\r\n} from \"element-react\";\r\nimport Routes from \"routes\";\r\nimport { GetArticles, DeleteArticle } from \"store/actions/articles\";\r\nimport RouteEnum from \"constants/routesEnum\";\r\nimport ArticleStatusEnum from \"constants/articleStatusEnum\";\r\nimport TableView from \"components/tableView\";\r\nimport SplitButton from \"components/popup/splitButton\";\r\nimport Articles from \"scenes/common/articles\";\r\nimport Actions from \"./actions\";\r\n\r\nconst Submissions = (props) => {\r\n const { selectedTab } = props;\r\n const articlesRef: any = useRef(null);\r\n\r\n const getStatus = () => {\r\n var status = \"0\";\r\n\r\n if (selectedTab == \"NEW\") status = `${ArticleStatusEnum.ASSIGNEDEDITOR}`;\r\n else if (selectedTab == \"UNDERREVIEW\") {\r\n status = [ArticleStatusEnum.REVIEWING].toString();\r\n } else if (selectedTab == \"NEEDACTIONS\")\r\n status = [\r\n ArticleStatusEnum.REVIEWED,\r\n ArticleStatusEnum.RESUBMITTED,\r\n ].toString();\r\n else if (selectedTab == \"APPROVED\")\r\n status = [ArticleStatusEnum.APPROVED].toString();\r\n else if (selectedTab == \"REVERTED\")\r\n status = [ArticleStatusEnum.REVISION].toString();\r\n else if (selectedTab == \"REJECTED\")\r\n status = [ArticleStatusEnum.REJECTED].toString();\r\n\r\n return status;\r\n };\r\n\r\n const renderAction = (row, index) => {\r\n return (\r\n <Actions row={row} selectedTab={selectedTab} articlesRef={articlesRef} />\r\n );\r\n };\r\n return (\r\n <>\r\n <div className=\"submitter\">\r\n <Articles\r\n selectedTab={selectedTab}\r\n actions={renderAction}\r\n getStatus={getStatus}\r\n ref={articlesRef}\r\n />\r\n </div>\r\n </>\r\n );\r\n};\r\n\r\nexport default Submissions;\r\n","import EditorLanding from \"scenes/editor\";\nimport Submitter from \"scenes/submitter\";\nimport RoleEnum from \"constants/roleEnum\";\nimport RouteEnum from \"constants/routesEnum\";\n\nconst EditorRoutes = [\n {\n exact: true,\n component: EditorLanding,\n role: RoleEnum.Editor,\n title: \"Dashboard\",\n path: RouteEnum.editor,\n },\n];\n\nexport default EditorRoutes;\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { Link, NavLink, useHistory } from \"react-router-dom\";\r\n\r\nimport {\r\n Form,\r\n Input,\r\n Button,\r\n Select,\r\n Table,\r\n Pagination,\r\n Dialog,\r\n Message,\r\n MessageBox,\r\n Breadcrumb,\r\n Tabs,\r\n Badge,\r\n} from \"element-react\";\r\nimport Routes from \"routes\";\r\nimport { AddUserInterface } from \"interfaces/user\";\r\nimport { GetRoles } from \"store/actions/common\";\r\nimport { GetUserList, DeleteUser, ChangeUserStatus } from \"store/actions/user\";\r\nimport RouteEnum from \"constants/routesEnum\";\r\nimport ArticleStatusEnum from \"constants/articleStatusEnum\";\r\nimport SubmissionList from \"./components/submissionList\";\r\nimport TabTitle from \"scenes/common/tabTitle\";\r\n\r\nconst EditorLandingPage = () => {\r\n const [selectedTab, setSelectedTab] = useState(\"NEW\");\r\n\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n const tabs = [\r\n {\r\n label: \"New Submissions\",\r\n name: \"NEW\",\r\n },\r\n {\r\n label: \"Under Review\",\r\n name: \"UNDERREVIEW\",\r\n },\r\n {\r\n label: \"Need Actions\",\r\n name: \"NEEDACTIONS\",\r\n },\r\n {\r\n label: \"Approved\",\r\n name: \"APPROVED\",\r\n },\r\n {\r\n label: \"Revision Requested\",\r\n name: \"REVERTED\",\r\n },\r\n {\r\n label: \"Rejected\",\r\n name: \"REJECTED\",\r\n },\r\n ];\r\n\r\n const handleTabClicked = (e) => {\r\n const { name } = e.props;\r\n setSelectedTab(name);\r\n };\r\n\r\n return (\r\n <div>\r\n <Breadcrumb separator=\"/\">\r\n <Breadcrumb.Item>\r\n <Link to={RouteEnum.adminSubmission}>Home</Link>\r\n </Breadcrumb.Item>\r\n </Breadcrumb>\r\n\r\n <div className=\"submission\">\r\n <Tabs type=\"card\" value={selectedTab} onTabClick={handleTabClicked}>\r\n {tabs.map((item, index) => (\r\n <Tabs.Pane\r\n key={index}\r\n label={\r\n <TabTitle item={item} selectedTab={selectedTab} count={24} />\r\n }\r\n name={item.name}\r\n ></Tabs.Pane>\r\n ))}\r\n </Tabs>\r\n\r\n {<SubmissionList selectedTab={selectedTab} />}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default EditorLandingPage;\r\n","import React, { useEffect, useRef, useState } from 'react'\r\nimport { Link, NavLink, useHistory } from 'react-router-dom'\r\nimport { Button } from 'element-react'\r\nimport { MdPreview } from 'react-icons/md'\r\nimport { useDispatch } from 'react-redux'\r\nimport { isEmpty } from 'helpers'\r\n\r\nconst Actions = (props) => {\r\n const { row, selectedTab, handleReviewClick } = props\r\n\r\n const getActions = () => {\r\n var actions = []\r\n console.clear()\r\n console.log(row)\r\n !isEmpty(row.ReviewId) &&\r\n actions.push(\r\n <Button size=\"mini\" onClick={() => handleReviewClick(row.ReviewId)}>\r\n <MdPreview />\r\n {row.ReviewCompleted ? 'View' : 'Take Action'}\r\n </Button>,\r\n )\r\n\r\n return actions\r\n }\r\n\r\n return <> {getActions()}</>\r\n}\r\n\r\nexport default Actions\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { Link, NavLink, useHistory } from \"react-router-dom\";\r\n\r\nimport {\r\n Form,\r\n Input,\r\n Button,\r\n Select,\r\n Table,\r\n Pagination,\r\n Dialog,\r\n Message,\r\n MessageBox,\r\n Breadcrumb,\r\n Progress,\r\n Dropdown,\r\n} from \"element-react\";\r\nimport Routes from \"routes\";\r\nimport { GetArticles, DeleteArticle } from \"store/actions/articles\";\r\nimport RouteEnum from \"constants/routesEnum\";\r\nimport ArticleStatusEnum from \"constants/articleStatusEnum\";\r\nimport TableView from \"components/tableView\";\r\nimport SplitButton from \"components/popup/splitButton\";\r\nimport Articles from \"scenes/common/articles\";\r\nimport Actions from \"./actions\";\r\nconst Submissions = (props) => {\r\n const { selectedTab } = props;\r\n const articlesRef: any = useRef(null);\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n const getStatus = () => {\r\n var status = [ArticleStatusEnum.REVIEWING].toString();\r\n return status;\r\n };\r\n\r\n const renderAction = (row, index) => {\r\n return (\r\n <Actions\r\n row={row}\r\n selectedTab={selectedTab}\r\n handleReviewClick={(id) => history.push(`${RouteEnum.review}/${id}`)}\r\n />\r\n );\r\n };\r\n return (\r\n <div className=\"submitter\">\r\n <Articles\r\n selectedTab={selectedTab}\r\n actions={renderAction}\r\n getStatus={getStatus}\r\n ref={articlesRef}\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport default Submissions;\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { Form, Input, Button, Select, Checkbox } from \"element-react\";\r\nimport { CheckList, Wrapper } from \"components/form\";\r\nimport { CKEditor } from \"@ckeditor/ckeditor5-react\";\r\nimport ClassicEditor from \"@ckeditor/ckeditor5-build-classic\";\r\nimport { AcknowledgeReview } from \"store/actions/articles\";\r\nimport { isEmpty } from \"helpers\";\r\nimport ArticleStatusEnum from \"constants/articleStatusEnum\";\r\nimport Attachments from \"../attachments\";\r\nimport { dateFormat } from \"helpers/dateHelper\";\r\nimport { useHistory } from \"react-router\";\r\nimport RouteEnum from \"constants/routesEnum\";\r\nimport Loader from \"components/loader.tsx\";\r\nimport ReviewRecommendationEnum from \"constants/reviewRecommendation\";\r\nimport ReviewStatusEnum from \"constants/reviewStatusEnum\";\r\n\r\nconst Start = (props) => {\r\n var ref: any = useRef();\r\n const { onSave } = props;\r\n const history = useHistory();\r\n const [state, setState] = useState({\r\n ArticleId: 0,\r\n SectionId: 0,\r\n CheckList: [],\r\n });\r\n const [isLoading, setLoading] = useState(false);\r\n const [ckBody, setCkBody] = useState(\"\");\r\n const rules = {};\r\n const dispatch = useDispatch();\r\n\r\n const { checkList, templates, sections } = useSelector(\r\n (state: any) => state.metaReducer\r\n );\r\n\r\n const { review } = useSelector((st: any) => st.articleReducer);\r\n\r\n const acceptAndContinue = async () => {\r\n //AcknowledgeReview\r\n setLoading(true);\r\n const res: any = await dispatch(\r\n AcknowledgeReview(review.ReviewId, ReviewStatusEnum.ACCEPTED)\r\n );\r\n setLoading(false);\r\n if (res.Status) {\r\n onSave && onSave();\r\n }\r\n };\r\n const decline = async () => {\r\n //AcknowledgeReview\r\n setLoading(true);\r\n const res: any = await dispatch(\r\n AcknowledgeReview(review.ReviewId, ReviewStatusEnum.DECLINED)\r\n );\r\n setLoading(false);\r\n if (res.Status) history.push(RouteEnum.base);\r\n };\r\n\r\n if (isEmpty(review)) return null;\r\n\r\n return (\r\n <Loader isLoading={isLoading}>\r\n <div className=\"review\">\r\n <Wrapper label=\"Request for Review\">\r\n You have been selected as a potentential reviewer of the following\r\n submission.\r\n </Wrapper>\r\n <Wrapper label=\"ArticleTitle\">{review.ArticleTitle}</Wrapper>\r\n <Wrapper label=\"Abstract\">\r\n <p>\r\n The study examines the process of intstitutionalization as it has\r\n occured for the scholarly Publishing Servive Program(SPSP), an\r\n evolution of the library activities at the University of Anywhere.\r\n As an innovation which challenges many of the conventions of\r\n library-based publishing, it is necessary to apporach the evaluation\r\n of SPSP with a concern for appropriate methods and a consideration\r\n of issues of legitimacy in the analysis then provides a basis for\r\n recasting evaluation as a political process where innovative\r\n programs struggle to maintain those exemplars which make them\r\n different while acheiving thw legitimacy which make them possible.\r\n </p>\r\n </Wrapper>\r\n\r\n <Wrapper>\r\n <Attachments\r\n files={review.SubmissoinFiles}\r\n title=\"Submission Files\"\r\n />\r\n </Wrapper>\r\n <Wrapper label=\"Review Schedule\">\r\n <div className=\"review-reviewDate\">\r\n <div className=\"review-reviewDate-info\">\r\n <span className=\"value\">{dateFormat(review.CreatedOn)}</span>\r\n <span className=\"label\">Editor's Request</span>\r\n </div>\r\n <div className=\"review-reviewDate-info\">\r\n <span className=\"value\">{dateFormat(review.ResponsDueDate)}</span>\r\n <span className=\"label\">Response Due Date</span>\r\n </div>\r\n <div className=\"review-reviewDate-info\">\r\n <span className=\"value\">{dateFormat(review.ReviewDueDate)}</span>\r\n <span className=\"label\">Review Due Date</span>\r\n </div>\r\n </div>\r\n </Wrapper>\r\n\r\n <Wrapper>\r\n <Button\r\n type=\"primary\"\r\n onClick={acceptAndContinue}\r\n loading={isLoading}\r\n disabled={review.IsAccepted || review.IsCompleted}\r\n >\r\n Accept Review and Continue\r\n </Button>\r\n <Button\r\n type=\"danger\"\r\n loading={isLoading}\r\n onClick={decline}\r\n disabled={review.IsAccepted || review.IsCompleted}\r\n >\r\n {/* Decline Review Request */}\r\n Reject Submission\r\n </Button>\r\n </Wrapper>\r\n </div>\r\n </Loader>\r\n );\r\n};\r\nexport default Start;\r\n","import TemplateEnum from \"constants/templateEnum\";\r\nimport { Button } from \"element-react\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { createMarkup } from \"helpers\";\r\nconst Guidelines = (props) => {\r\n const { onSave } = props;\r\n const { templates } = useSelector((state: any) => state.metaReducer);\r\n\r\n const ReviewGuideline = templates.find(\r\n (x) => x.TemplateKey === TemplateEnum.ReviewGuideline\r\n );\r\n const handleNextClick = async () => {\r\n onSave && onSave();\r\n };\r\n return (\r\n <>\r\n {ReviewGuideline && (\r\n <div\r\n className=\"template\"\r\n dangerouslySetInnerHTML={createMarkup(ReviewGuideline.TemplateText)}\r\n ></div>\r\n )}\r\n <Button type=\"primary\" onClick={handleNextClick}>\r\n Continue\r\n </Button>\r\n </>\r\n );\r\n};\r\nexport default Guidelines;\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { Form, Input, Button, Select, Checkbox } from \"element-react\";\r\nimport { CheckList } from \"components/form\";\r\nimport { CKEditor } from \"@ckeditor/ckeditor5-react\";\r\nimport ClassicEditor from \"@ckeditor/ckeditor5-build-classic\";\r\nimport { SubmitDownloadAndReview } from \"store/actions/articles\";\r\nimport { isEmpty } from \"helpers\";\r\nimport ArticleStatusEnum from \"constants/articleStatusEnum\";\r\nimport Attachments from \"../attachments\";\r\nimport UploadReviewFiles from \"../uploadFiles\";\r\nimport Loader from \"components/loader.tsx\";\r\n\r\nconst DownloadReview = (props) => {\r\n const { review } = useSelector((st: any) => st.articleReducer);\r\n const { onSave } = props;\r\n const dispatch = useDispatch();\r\n const { recommendations } = useSelector((state: any) => state.metaReducer);\r\n const [isLoading, setLoading] = useState(false);\r\n const [commentsForEditor, setCommentsForEditor] = useState(\"\");\r\n const [commentsForEditorAndAuthor, setCommentsForEditorAndAuthor] =\r\n useState(\"\");\r\n const [attachments, setAttachments] = useState([]);\r\n\r\n useEffect(() => {\r\n if (!isEmpty(review)) {\r\n setCommentsForEditor(review.CommentsForEditor || \"\");\r\n setCommentsForEditorAndAuthor(review.CommentsForEditorAndAuthor || \"\");\r\n setState({ RecommendationId: review.RecommendationId });\r\n setAttachments(review.ReviewFiles || []);\r\n }\r\n }, [review]);\r\n\r\n const [state, setState] = useState({ RecommendationId: \"\" });\r\n const onChange = (name, val) => {\r\n setState({ ...state, [name]: val });\r\n };\r\n const onSaveClicked = async () => {\r\n var param = {\r\n reviewId: review.ReviewId,\r\n commentsForEditor,\r\n commentsForEditorAndAuthor,\r\n recommendationId: state.RecommendationId,\r\n files: attachments,\r\n };\r\n setLoading(true);\r\n var res: any = await dispatch(SubmitDownloadAndReview(param));\r\n setLoading(false);\r\n if (res && res.Status) onSave();\r\n };\r\n return (\r\n <Loader isLoading={isLoading}>\r\n <div className=\"user-form\">\r\n <Form\r\n className=\"demo-form-stacked\"\r\n labelPosition=\"top\"\r\n labelWidth=\"100\"\r\n >\r\n {review &&\r\n review.SubmissoinFiles &&\r\n review.SubmissoinFiles.length > 0 && (\r\n <div className=\"margin-bottom-10\">\r\n <Attachments\r\n files={review.SubmissoinFiles}\r\n title=\"Submission Files\"\r\n />\r\n </div>\r\n )}\r\n <Form.Item label=\"Comments for Author and editor\">\r\n <CKEditor\r\n editor={ClassicEditor}\r\n data={commentsForEditorAndAuthor}\r\n onChange={(event, editor) => {\r\n const data = editor.getData();\r\n setCommentsForEditorAndAuthor(data);\r\n }}\r\n />\r\n </Form.Item>\r\n <Form.Item label=\"Comment for Editor only\">\r\n <CKEditor\r\n editor={ClassicEditor}\r\n data={commentsForEditor}\r\n onChange={(event, editor) => {\r\n const data = editor.getData();\r\n setCommentsForEditor(data);\r\n }}\r\n />\r\n </Form.Item>\r\n <Form.Item label=\"Recommendation\">\r\n <Select\r\n value={state.RecommendationId}\r\n placeholder=\"Recommendation\"\r\n onChange={(val: any) => onChange(\"RecommendationId\", val)}\r\n >\r\n {recommendations &&\r\n recommendations.map((role, index) => (\r\n <Select.Option\r\n key={index}\r\n label={role.Name}\r\n value={role.Id}\r\n ></Select.Option>\r\n ))}\r\n </Select>\r\n </Form.Item>\r\n\r\n <UploadReviewFiles\r\n attachments={attachments}\r\n setAttachments={setAttachments}\r\n title=\"Review Attachments\"\r\n />\r\n\r\n <Form.Item>\r\n <Button\r\n type=\"primary\"\r\n onClick={onSaveClicked}\r\n loading={isLoading}\r\n disabled={review.ArticleStatus === ArticleStatusEnum.REVIEWED}\r\n >\r\n Save and Continue\r\n </Button>\r\n </Form.Item>\r\n </Form>\r\n </div>\r\n </Loader>\r\n );\r\n};\r\nexport default DownloadReview;\r\n","import React, { useState } from \"react\";\r\nimport { Button } from \"element-react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { SubmitReview as SubmitArticleReview } from \"store/actions/articles\";\r\nimport ArticleStatusEnum from \"constants/articleStatusEnum\";\r\n\r\nconst SubmitReview = (props) => {\r\n const { onConfirmation } = props;\r\n const { review } = useSelector((st: any) => st.articleReducer);\r\n const dispatch = useDispatch();\r\n const [isLoading, setLoading] = useState(false);\r\n const onSaveClicked = async () => {\r\n setLoading(true);\r\n var res: any = await dispatch(SubmitArticleReview(review.ReviewId));\r\n setLoading(false);\r\n if (res && res.Status) onConfirmation();\r\n };\r\n return (\r\n <div>\r\n <div className=\"upload-steps__info\">\r\n Your submission has been submitted and is ready to be sent. You may go\r\n back to review and adjust any of the information you have entered before\r\n continuing. When you are ready, click \"Finish Review\"\r\n </div>\r\n <div>\r\n <Button\r\n disabled={review.IsCompleted}\r\n type=\"primary\"\r\n onClick={() => onSaveClicked()}\r\n loading={isLoading}\r\n >\r\n Finish Review\r\n </Button>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default SubmitReview;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n Form,\r\n Input,\r\n Button,\r\n Select,\r\n Tabs,\r\n Message,\r\n Breadcrumb,\r\n} from \"element-react\";\r\nimport Start from \"./request\";\r\nimport Guidelines from \"./guidelines\";\r\nimport UploadSubmission from \"../attachments\";\r\nimport DownloadReview from \"./downloadReview\";\r\nimport SubmitArticle from \"./submitReview\";\r\nimport { useHistory } from \"react-router\";\r\nimport RouteEnum from \"constants/routesEnum\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { GetReviewDetails, clearArticle } from \"store/actions/articles\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { isEmpty } from \"helpers\";\r\nimport Loader from \"components/loader.tsx\";\r\nconst Review = (props) => {\r\n const [steps, setSteps] = useState(1);\r\n const [isLoading, setLoading] = useState(true);\r\n const [selectedTab, setSelectedTab] = useState(\"1\");\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const { reviewId } = props.match.params;\r\n const { review } = useSelector((st: any) => st.articleReducer);\r\n\r\n useEffect(() => {\r\n if (review) {\r\n let steps = review.Steps || 1;\r\n if (!review.IsAccepted) {\r\n } else if (steps == 1) steps = 3;\r\n else if (steps <= 3) steps++;\r\n setSteps(steps);\r\n setSelectedTab(`${steps}`);\r\n }\r\n }, [review]);\r\n\r\n useEffect(() => {\r\n if (reviewId) {\r\n fetchReview(reviewId);\r\n } else {\r\n dispatch(clearArticle());\r\n }\r\n }, [reviewId]);\r\n\r\n const fetchReview = async (reviewId) => {\r\n setLoading(true);\r\n var revResult = await dispatch(GetReviewDetails(reviewId));\r\n setLoading(false);\r\n if (revResult == null) {\r\n history.push(RouteEnum.base);\r\n return;\r\n }\r\n };\r\n\r\n const handleOnSaveStep1 = () => {\r\n updateStep(2);\r\n setSelectedTab(\"2\");\r\n };\r\n\r\n const handleOnSaveStep2 = () => {\r\n updateStep(3);\r\n setSelectedTab(\"3\");\r\n };\r\n const handleOnSaveStep3 = () => {\r\n updateStep(4);\r\n setSelectedTab(\"4\");\r\n };\r\n\r\n const handleConfirmation = () => {\r\n Message({\r\n showClose: true,\r\n message: \"Congrats, revision completed.\",\r\n type: \"success\",\r\n });\r\n history.push(`${RouteEnum.reviewer}`);\r\n };\r\n const updateStep = (newStep: number) => {\r\n if (newStep > steps) {\r\n setSteps(newStep);\r\n }\r\n };\r\n\r\n const isDisabled = (tab) => {\r\n return steps < tab;\r\n };\r\n\r\n const handleTabClicked = (e) => {\r\n const { name } = e.props;\r\n setSelectedTab(name);\r\n };\r\n\r\n const tabs = [\r\n {\r\n label: \"1.Requst\",\r\n name: \"1\",\r\n component: <Start onSave={() => handleOnSaveStep1()} />,\r\n },\r\n {\r\n label: \"2. Guidelines\",\r\n name: \"2\",\r\n component: <Guidelines onSave={() => handleOnSaveStep2()} />,\r\n },\r\n {\r\n label: \"3. Download & Review\",\r\n name: \"3\",\r\n component: <DownloadReview onSave={() => handleOnSaveStep3()} />,\r\n },\r\n {\r\n label: \"4.Confirmation\",\r\n name: \"4\",\r\n component: <SubmitArticle onConfirmation={() => handleConfirmation()} />,\r\n },\r\n ];\r\n\r\n return (\r\n <>\r\n <Breadcrumb separator=\"/\">\r\n <Breadcrumb.Item>\r\n <Link to={RouteEnum.reviewer}>Home</Link>\r\n </Breadcrumb.Item>\r\n <Breadcrumb.Item>Review</Breadcrumb.Item>\r\n </Breadcrumb>\r\n\r\n <div className=\"submission\">\r\n <Loader isLoading={isLoading}>\r\n <Tabs type=\"card\" value={selectedTab} onTabClick={handleTabClicked}>\r\n {tabs.map((item, index) => (\r\n <Tabs.Pane\r\n key={index}\r\n label={item.label}\r\n name={item.name}\r\n disabled={isDisabled(index + 1)}\r\n >\r\n {item.component}\r\n </Tabs.Pane>\r\n ))}\r\n </Tabs>\r\n </Loader>\r\n </div>\r\n </>\r\n );\r\n};\r\nexport default Review;\r\n","import ReviewerLanding from \"scenes/reviewer\";\r\nimport Submitter from \"scenes/submitter\";\r\nimport RoleEnum from \"constants/roleEnum\";\r\nimport RouteEnum from \"constants/routesEnum\";\r\nimport Review from \"scenes/common/review\";\r\nconst ReviewerRoutes = [\r\n {\r\n exact: true,\r\n component: ReviewerLanding,\r\n role: RoleEnum.Reviewer,\r\n title: \"Dashboard\",\r\n path: RouteEnum.reviewer,\r\n },\r\n {\r\n exact: true,\r\n component: Review,\r\n role: RoleEnum.Reviewer,\r\n title: \"Review\",\r\n path: `${RouteEnum.review}/:reviewId`,\r\n },\r\n];\r\n\r\nexport default ReviewerRoutes;\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { Link, NavLink, useHistory } from \"react-router-dom\";\r\n\r\nimport {\r\n Form,\r\n Input,\r\n Button,\r\n Select,\r\n Table,\r\n Pagination,\r\n Dialog,\r\n Message,\r\n MessageBox,\r\n Breadcrumb,\r\n Tabs,\r\n Badge,\r\n} from \"element-react\";\r\nimport Routes from \"routes\";\r\nimport { AddUserInterface } from \"interfaces/user\";\r\nimport { GetRoles } from \"store/actions/common\";\r\nimport { GetUserList, DeleteUser, ChangeUserStatus } from \"store/actions/user\";\r\nimport RouteEnum from \"constants/routesEnum\";\r\nimport ArticleStatusEnum from \"constants/articleStatusEnum\";\r\nimport SubmissionList from \"./components/submissionList\";\r\nimport TabTitle from \"scenes/common/tabTitle\";\r\n\r\nconst AdminLandingPage = () => {\r\n const [selectedTab, setSelectedTab] = useState(\"NEW\");\r\n\r\n const tabs = [\r\n {\r\n label: \"New Assignment\",\r\n name: \"NEW\",\r\n },\r\n {\r\n label: \"Ongoing Reviews\",\r\n name: \"ONGOING\",\r\n },\r\n {\r\n label: \"Completed\",\r\n name: \"COMPLETED\",\r\n },\r\n ];\r\n\r\n const handleTabClicked = (e) => {\r\n const { name } = e.props;\r\n setSelectedTab(name);\r\n };\r\n\r\n return (\r\n <div>\r\n <Breadcrumb separator=\"/\">\r\n <Breadcrumb.Item>\r\n <Link to={RouteEnum.adminSubmission}>Home</Link>\r\n </Breadcrumb.Item>\r\n </Breadcrumb>\r\n\r\n <div className=\"submission\">\r\n <Tabs type=\"card\" value={selectedTab} onTabClick={handleTabClicked}>\r\n {tabs.map((item, index) => (\r\n <Tabs.Pane\r\n key={index}\r\n label={\r\n <TabTitle item={item} selectedTab={selectedTab} count={24} />\r\n }\r\n name={item.name}\r\n ></Tabs.Pane>\r\n ))}\r\n </Tabs>\r\n\r\n {<SubmissionList selectedTab={selectedTab} />}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default AdminLandingPage;\r\n","import SubmitterRoutes from \"./submitterRoutes\";\nimport PublicRoutes from \"./publicRoutes\";\nimport AdminRoutes from \"./adminRoutes\";\nimport EditorRoutes from \"./editorRoutes\";\nimport ReviewerRoutes from \"./reviewerRoutes\";\n\nconst routes = [\n ...PublicRoutes,\n ...SubmitterRoutes,\n ...AdminRoutes,\n ...EditorRoutes,\n ...ReviewerRoutes,\n];\nexport default routes;\n","import React from \"react\";\nconst NotFound = (props) => {\n return <div>Not Found</div>;\n};\nexport default NotFound;\n","import RoleEnum from \"constants/roleEnum\";\nimport { UserDetailInterface } from \"interfaces/actions/auth\";\nimport React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Redirect, Route } from \"react-router\";\n\nconst PrivateRoute = ({ component: Component, ...rest }) => {\n let isAuth = localStorage.getItem(\"AuthToken\");\n let role = localStorage.getItem(\"Role\");\n\n return (\n <Route\n {...rest}\n render={(props) => {\n if (rest.role === RoleEnum.Public) return <Component {...props} />;\n if (isAuth && rest.role === role) return <Component {...props} />;\n return <Redirect to=\"/login\" />;\n }}\n />\n );\n};\nexport default PrivateRoute;\n","import RoleEnum from \"constants/roleEnum\";\nimport RouteEnum from \"constants/routesEnum\";\nimport { UserDetailInterface } from \"interfaces/actions/auth\";\nimport React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Redirect, Route } from \"react-router\";\n\nconst BaseRoute = ({ component: Component, ...rest }) => {\n let role = localStorage.getItem(\"Role\");\n\n return (\n <Route\n {...rest}\n render={(props) => {\n if (role === RoleEnum.Submitter)\n return <Redirect to={RouteEnum.submitter} />;\n if (role === RoleEnum.Administrator)\n return <Redirect to={RouteEnum.adminSubmission} />;\n if (role === RoleEnum.Editor) return <Redirect to={RouteEnum.editor} />;\n if (role === RoleEnum.Reviewer)\n return <Redirect to={RouteEnum.reviewer} />;\n return <Redirect to=\"/login\" />;\n }}\n />\n );\n};\nexport default BaseRoute;\n","import React, { useEffect } from \"react\";\nimport { Route, Switch } from \"react-router-dom\";\nimport Layout from \"../layout\";\n\nimport Login from \"scenes/auth/login\";\n\nimport routes from \"routes\";\n\nimport NotFound from \"scenes/notFound\";\n\nimport submission from \"scenes/submitter/submission\";\nimport Submitter from \"scenes/submitter\";\nimport User from \"scenes/Administrator/user\";\n\nimport { UserDetailInterface } from \"interfaces/actions/auth\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport PrivateRoute from \"./privateRoute\";\nimport BaseRoute from \"./baseRoute\";\nimport { GetRoles } from \"store/actions/common\";\n\nconst Links = (props: any) => {\n const dispatch = useDispatch();\n\n useEffect(() => {\n dispatch(GetRoles());\n }, []);\n return (\n <>\n <Layout>\n <Switch>\n {routes.map((route, index) => {\n return <PrivateRoute key={index} {...route} />;\n })}\n <Route exact path=\"/login\" component={Login} />\n <BaseRoute exact path=\"/\" component={NotFound} />\n <Route path=\"*\" component={NotFound} />\n </Switch>\n </Layout>\n </>\n );\n};\nexport default Links;\n","import * as React from 'react'\nimport 'scss/index.scss'\nimport 'element-theme-default'\nimport { Provider } from 'react-redux'\nimport configureStore from 'store/configureStore'\nimport Links from 'navigation/links'\nimport Toast from 'components/toast'\nimport { i18n } from 'element-react'\nimport locale from 'element-react/src/locale/lang/en'\n// 1. import `ChakraProvider` component\n// import { ChakraProvider } from '@chakra-ui/react'\n\nconst store = configureStore({})\ni18n.use(locale)\n\nexport default () => (\n // <ChakraProvider>\n <Provider store={store}>\n <div className=\"app\">\n <Toast />\n <Links />\n </div>\n </Provider>\n // </ChakraProvider>\n)\n","import * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { BrowserRouter } from \"react-router-dom\";\nimport App from \"./App\";\n// import reportWebVitals from \"./reportWebVitals\";\nconst baseUrl = document\n .getElementsByTagName(\"base\")[0]\n .getAttribute(\"href\") as string;\n\nReactDOM.render(\n <BrowserRouter basename={baseUrl}>\n <App />\n </BrowserRouter>,\n document.getElementById(\"root\")\n);\n"],"sourceRoot":""}
Save