{"version":3,"sources":["components/images/Checklist_Small.png","components/images/loading.gif","components/images/edit_ic.svg","components/images/Trainer_Grey.png","components/images/Trainer_Grey_Big.png","components/images/Player_Grey_Big.png","components/images/Team_Grey.svg","components/images/Trash_Big.png","components/Login/Images/logo.svg","constants/Images/soccer_icon.svg","components/images/ic_search.svg","components/images/Checklist_Gray.png","constants/Images/home_icon.svg","constants/Images/players_icon.svg","constants/Images/settings_icon.svg","constants/Images/team_icon.svg","constants/Images/season_icon.svg","constants/Images/trainers_icon.svg","constants/Images/Manager_white.svg","components/Header/Images/ProfileGreyIcon.png","components/Header/Images/Logout_Dark.svg","components/images/arrow_down.png","components/Login/Images/login_banner.jpg","components/images/trash_white.svg","components/Header/Images/Sort_Grey.png","store/constants.js","store/users/reducers/usersReducer.js","store/Manager/reducers.js","store/auth/authReducer.js","store/MasterData/reducers.js","store/Players/reducers.js","store/Trainers/reducers.js","store/profilePicture/reducer.js","store/Teams/reducers.js","store/TeamDetail/reducers.js","store/Overview/reducers.js","store/users/selectors/authSelector.js","routes/ProtectedRoute.js","store/SharedActions/fetchWithBearerToken.js","store/users/actions/acceptTermAndCondition.js","components/TermsAndPrivacy/TermsAndPrivacy.js","store/MasterData/getSeason.js","components/SharedComponents/CircularProgressBar.js","components/SharedComponents/Checkbox/DshoreSelect.js","components/SharedComponents/Checkbox/CheckboxMultiSelect.js","store/Overview/fetchPlayerDevelopment.js","store/Overview/fetchTotalHeader.js","store/Overview/fetchTrainerActivity.js","store/Overview/fetchTeamOverview.js","store/Overview/fetchMainDashboard.js","components/SharedComponents/ProfileThumImage.js","store/MasterData/getTeams.js","components/Overview/Overview.js","components/Teams/MaterialTable.js","store/Teams/Action/fetchTeamOverview.js","store/Teams/Action/addTeam.js","components/SharedComponents/TextInputField.js","store/Teams/Action/removeTeams.js","store/Trainers/actions/clearTrainerData.js","store/profilePicture/uploadPicture.js","components/SharedComponents/ModalDelete.js","components/Teams/Teams.js","helpers/dateHelper.js","components/Manager/MaterialTable.js","store/Manager/InvitedManager/addManager.js","store/Manager/actions/fetchManagerOverview.js","store/Manager/actions/removeManagers.js","store/Manager/actions/reInviteManager.js","store/Manager/actions/fetchActiveManagersBySeason.js","components/Manager/Manager.js","components/Version.js","store/users/actions/loginAction.js","components/Login/Login.js","store/users/actions/forgotPassword.js","components/Users/ForgotPassword/ForgotPassword.js","components/PageNotFound/PageNotFound.js","store/general/selectors/generalSelector.js","store/users/actions/changePasswordAction.js","components/Users/ChangePassword/ChangePassword.js","store/users/actions/fetchTokenValidation.js","components/Users/TokenValidation.js","components/Players/MaterialTable.js","store/Players/InvitedPlayers/addPlayer.js","store/Players/InvitedPlayers/getInvitedPlayers.js","store/Players/PlayerOverview/GetPlayerOverview.js","store/Players/InvitedPlayers/clearAddPlayer.js","store/Players/actions/reInvitePlayer.js","store/Players/actions/removePlayers.js","components/Players/Players.js","components/Trainers/MaterialTable.js","store/Trainers/actions/addTrainer.js","store/Trainers/actions/fetchTrainerOverivew.js","store/Trainers/actions/removeTrainers.js","store/Trainers/actions/reInviteTrainer.js","components/Trainers/Trainers.js","store/Manager/actions/fetchManagerByUserId.js","store/Manager/actions/updateManagerData.js","store/users/actions/getHeaderDetail.js","components/SharedComponents/DateInputField.js","store/profilePicture/clearImage.js","components/Manager/DetailManager/DetailManager.js","components/TeamDetail/TrainerTable.js","components/TeamDetail/PlayerTable.js","components/TeamDetail/ChangePlayerModal.js","store/TeamDetail/Action/fetchTrainerOverview.js","store/TeamDetail/Action/fetchPlayerOverview.js","store/TeamDetail/Action/removeTeamPlayers.js","store/TeamDetail/Action/removeTeamTrainers.js","store/TeamDetail/Action/changeTeamPlayers.js","store/Manager/actions/getAvailablePlayersOrTrainers.js","store/TeamDetail/Action/getTeamDetail.js","store/TeamDetail/Action/addTrainersPlayers.js","components/TeamDetail/TeamDetail.js","store/Trainers/actions/fetchTrainerByUserId.js","store/Trainers/TrainerDetail/fetchTrainerDetailReport.js","components/Trainers/TrainerDetail/TrainerDetail.js","store/Players/PlayerDetails/fetchPlayerDetails.js","store/Players/PlayerDetails/fetchPlayerDetailsByIdBySeason.js","components/Players/DetailPlayer/DetailReportItem.js","components/Players/DetailPlayer/ReportPlayerItem.js","store/MasterData/getPositions.js","components/Players/DetailPlayer/DetailPlayer.js","store/users/actions/fetchClubDetails.js","store/users/actions/updateClubDetails.js","store/MasterData/addSeason.js","store/MasterData/updateSeasons.js","components/Settings/General/GeneralSettings.js","components/Settings/Season.js","components/Settings/Congratulation.js","components/Settings/PasswordChanged.js","components/Administrator/AdminPages.js","routes/AllRoutes.js","constants/NavConstant.js","constants/urls.js","components/Footer/Footer.js","store/users/actions/logoutAction.js","store/Manager/actions/searchByKeyword.js","components/Header/Header.js","components/SideNavMenu/NavMenuItem/NavMenuItem.js","helpers/routingHelper.js","components/SideNavMenu/SideNavMenu.js","store/users/actions/loginUserWithBearerToken.js","components/Layout.js","Startup.js","components/Loading_custom.js","App.js","registerServiceWorker.js","i18n.js","index.js","store/configureStore.js","components/images/default_user.png","components/images/round_plus_icon.svg","components/images/logo.svg","components/images/upload.jpg","components/images/Trash.svg","components/images/Team_logo.png","components/images/Empty_logo_Big.png"],"names":["module","exports","authUrl","webAppUrl","tokenKey","userId","initialState","users","userLoginDashboard","isLoading","resetPassword","headerDetail","state","action","type","userActivated","tokenValid","termsandprivacy","termsAndPrivacy","clubDetails","addSeasonResult","result","resetPasswordResult","clubHeader","addManagerResult","managers","Map","updatedManager","keywordResult","availablePlayerResult","availableTrainerResult","manager","loggedInUser","id","sessionStorage","getItem","accessToken","role","getAllTeams","seasons","positions","allTeams","addPlayerResult","playerOverview","players","undefined","player","trainers","trainer","trainerReportDetailData","addTrainerResult","uploadProfilePicture","profilePictureUpload","userProfilePicture","dateTimeTag","teams","teamHeader","teamDetails","playerDevelopment","totalHeader","trainerActivity","teamOverview","mainDashboard","loggedInUserSelector","auth","authSelector","resetPasswordSelector","createSelector","token","ProtectedRoute","this","props","Component","component","bearerToken","isAllowed","window","location","href","Route","render","Redirect","to","connect","url","a","method","body","loading","document","querySelector","style","visibility","fetchArguments","headers","fetch","userid","dispatch","JSON","stringify","ok","toast","success","position","POSITION","TOP_RIGHT","setTimeout","error","TermsAndPrivacy","toggle","e","modal","setState","ModalTermsAndConditions","isagree","t","Modal","isOpen","modalTransition","timeout","backdropTransition","backdrop","className","description","ModalFooter","checked","onChange","handleCheckboxChange","for","version","onClick","handleSubmit","value","bind","acceptTermsAndPrivacy","bindActionCreators","acceptTermsAndPrivacyAction","withTranslation","fetchWithBearerToken","json","resultData","CircularProgressBar","sqSize","radius","strokeWidth","viewBox","dashArray","Math","PI","dashOffset","percentage","width","height","cx","cy","r","transform","strokeDasharray","strokeDashoffset","x","y","dy","textAnchor","xmlns","extraText","React","defaultProps","customStyles","control","base","boxShadow","borderColor","isFocused","borderRadius","option","styles","console","log","backgroundColor","isSelected","color","MySelect","allowSelectAll","selectall","customoptionsall","label","allOption","options","classNamePrefix","selected","event","length","includes","filter","Option","Input","ValueContainer","children","currentValues","getValue","toBeRendered","some","val","DropdownIndicator","fill","animatedComponents","makeAnimated","CheckboxMultiselect","handleChange","optionSelected","allTeamMember","selectedTeam","populateSelectedTeam","displayedText","singleTeam","pluralTeams","data-toggle","data-trigger","data-content","DshoreSelect","placeholder","isMulti","closeMenuOnSelect","hideSelectedOptions","components","MultiValue","labelToBeDisplayed","data","IndicatorSeparator","seasonId","teamIds","map","join","playerDevelopmentResult","playerResult","totalHeaderResult","trainerActivityResult","trainerResult","teamOverviewResponse","teamOverviewResult","listTeams","maindDashboardResponse","mainDashboardResult","ProfileThumbnailPicture","imgSrc","defaultUser","setError","imgUrl","cls","size","urlDetail","src","backgroundImage","backgroundSize","onError","Link","clubSeasonId","Overview","toggleItem","seasonDropDownIsOpen","Promise","all","fetchPlayerDevelopment","filteredSeasonId","fetchTrainerActivity","fetchTeamOverview","fetchMainDashboard","then","selectedTeamsFilter","isRendering","toggleSeason","history","push","handleOnSelectSeason","seasonName","fetchTotalHeader","getTeams","filteredSeason","isinitload","isVisible","hideComponent","getSeason","prevProps","initfilteredSeason","initfilteredSeasonId","row","index","isCurrent","playerDevelopmentData","teamImage","team","data-children-count","Dropdown","DropdownToggle","caret","DropdownMenu","DropdownItem","key","preventDefault","overflow","SoccerIcon","alt","marginTop","marginBottom","TrainerLogo","PlayerLogo","overallPlayerScore","completedTeam","completedPlayer","playerProgress","completedReport","totalReport","top","topPlayers","playerName","profilePicture","playerId","isCompleted","averageScore","progress","aria-valuenow","aria-valuemin","aria-valuemax","trainerName","teamName","reportedPlayers","openReport","parseInt","teamProgress","openTeam","dashboard","masterData","descendingComparator","b","orderBy","EnhancedTableHead","classes","onSelectAllClick","order","numSelected","rowCount","onRequestSort","headCells","TableHead","TableRow","TableCell","padding","indeterminate","headCell","property","align","disablePadding","sortDirection","TableSortLabel","active","direction","IconComponent","FaCaretUp","visuallyHidden","useToolbarStyles","makeStyles","theme","root","paddingLeft","spacing","paddingRight","highlight","palette","secondary","main","lighten","light","text","primary","dark","title","flex","EnhancedTableToolbar","rows","isActiveRemove","data-target","roundplus","useStyles","paper","table","minWidth","border","clip","margin","buttonInvitation","background","textTransform","EnhancedTable","useState","setOrder","setOrderBy","setSelected","page","dense","rowsPerPage","handleRemoveManagers","getTrainers","handleOnSelectSeasonFilterd","handleRemoveTeams","activeRemove","setActiveRemove","name","indexOf","min","manageroverviewstate","handleRemove","fromJS","currentTarget","target","outerText","TableContainer","Table","aria-labelledby","aria-label","newSelecteds","n","TableBody","array","comparator","stabilizedThis","el","sort","stableSort","getComparator","isItemSelected","labelId","hover","aria-checked","tabIndex","selectedIndex","newSelected","concat","slice","handleClick","logoClub","defaultteam","totalTrainer","topTrainerId","topTrainerPicture","topTrainerName","overallProgress","totalPlayer","response","errorMessage","entity","teamname","division","TextInputField","extraClassName","inputType","password","email","maxlength","maxLength","extraClass","hasError","field","disabled","userManagers","formData","dtTag","tokenVar","catch","resultContent","ModalDelete","closeModal","okRemove","trashBig","data-dismiss","Teams","newFieldsState","fields","set","toggleDeleteModal","deleteModal","traineroverviewstate","traineroverview","hideLoading","AddTeamModal","errors","get","imageUpload","has","deleteTeamsRow","toJS","removeTeams","deleteTrainerRow","seasonDropdownIsOpen","teamoverview","uploadFileChange","saveUploadedPhoto","delete","addTeam","files","FormData","fileType","append","dateTag","Date","toString","replace","newFields","URL","createObjectURL","uploadPicture","teamOverviewData","headCellsTrainerOverview","numeric","clearTrainers","formatDateOverviewPicker","date","formatDateStandart","d","month","getMonth","day","getDate","year","getFullYear","ismanageroverview","filterManagerSeason","translation","defaultChecked","buttonInvitationDisable","pointerEvents","outline","buttonInvitationEnable","handleReinvite","filterHandleOnSelectSeason","handleInvite","scope","userPicture","emailAddress","invitorId","invitorPicture","dateStarted","invitedBy","lastLogin","invitationDate","status","Button","phoneNumber","firstName","lastName","photo","isSucceeded","isActive","isManagerOverview","getManagers","Manager","addModal","deletemodal","manageroverview","getActiveManagersBySeason","ModalExample","selectedPict","display","isValidItems","Id","deleteManagerRow","removeManagers","reInviteManager","filtermanager","season","imgTemp","photoDate","errorList","simpleEmailRegexp","RegExp","test","addManager","managerOverviewData","headCellsManagerOverview","headCellsManagerInvited","Version","packageJson","loginData","reqBody","mode","setItem","removeItem","userLoggedIn","loginUser","loginUserAction","setEmail","passDisplayed","setPassDisplay","setPassword","useTranslation","LoginLogo","autocomplete","onKeyPress","icon","faEyeSlash","faEye","encodeURIComponent","resetstatus","forgotPassword","forgotPasswordAction","emailHide","setEmailHide","validEmail","stringEmail","split","newstr","i","alert","checkList","activationStateSelector","validTokenStateSelector","routingLocationSelector","routingLocation","routing","routingStateSelector","query","URI","search","passwordData","reset","activate","item2","ChangePassword","repeatPassword","passwordValidationLength","passwordValidationSpecial","passwordValidationLetter","activatetoken","recoverytoken","changePasswordAction","checkPasswordValidation","passwordLength","passwordSpecial","match","togglePass","passDisplay","togglePassRepeat","repeatDisplay","isActivation","passwordValidationText","handleRepeatPasswordChange","textAlign","bottom","fontSize","isrecoverypassword","responseJson","invitationValid","checkoutUrl","TokenConfirmation","isRecoveryPassword","resetactivatetoken","fetchTokenValidation","activationState","validTokenState","renderActivationFailed","renderActivationOnprogress","right","left","zIndex","Source","fetchTokenValidationAction","isPlayerOverview","totalCount","playerOverviewState","handleRemovePlayers","handleOnSelectSeasonFilter","invitedById","invitedby","invitationdate","clubPictureURL","trainerUserId","trainerPicture","classNameName","teamId","getInvitedPlayers","Players","toggledelete","playerOverviewstate","closeDeleteModal","AddPlayerModal","handleTeamChange","reInvitePlayer","playerstodelete","removePlayers","addPlayer","multipletrainer","isTokenExpired","trainerId","overallDiff","overallStatus","invitedManagerHeadCells","overviewManagerHeadCells","createData","createPlayerOverviewData","multipleTrainer","getPlayerOverview","clearAddPlayer","invitedId","lastUpdate","isTrainerOverview","Trainers","removeTrainers","AddTrainerModal","reInviteTrainer","handleRemoveTrainers","addTrainer","trainerOverviewData","headCellsTrainerInvited","managerData","firstname","lastname","nationalityid","birthplace","birthdate","telephone","address","updateResult","reload","headerDetailResult","registerLocale","nl","DateInputField","DateCustomInput","dateFormat","utcDate","UTC","peekNextMonth","showMonthDropdown","showYearDropdown","dropdownMode","customInput","DetailManager","handleDateChange","nationality","datestarted","lastlogin","clubname","clublogourl","componentUpdated","displayed","goBack","handleUpdate","setInvisible","clear","setAlert","getManager","getHeaderDetail","nationalityId","birthPlace","birthDate","userpicture","clubName","clubLogoUrl","clearImage","updateManagerData","hasPicture","colSpan","float","handlePopulateUser","teamTrainerId","roles","teamPlayerId","emptyRows","teamPlayers","fetchPlayerOverview","teamTrainers","fetchTrainerOverview","source","requestBody","newTeamId","searchResult","user","TeamDetail","changeTeam","getAvailablePlayersOrTrainers","changeModalStatus","prepareToRemove","dataplayer","datatrainer","prepareToChange","removeTeamPlayers","removeTeamTrainers","newTeam","changeTeamPlayers","isPlayer","handleSelectChangeUser","dataplayerchange","datatrainerchange","setTeam","refreshToggleStatus","handleAddPlayerTrainerSubmit","addPlayersTrainers","addPlayerModal","availableTrainer","availablePlayer","headCellsChangeTeam","teamLogo","changeTeamModal","removeModalConfirmation","editTeamModal","onChangeEventHandler","editTeam","saveTeam","teamModal","t1","getTeamHeader","t2","selectedRow","trainersGridData","playersGridData","changeTeamData","setSelectedRow","currentSeason","playerOverviewData","headCellsPlayerOverview","marginLeft","editicon","soccerIcon","teamDetail","trainerData","searchname","DetailTrainer","formatDate","hour","getHours","minute","getMinutes","newDate","openReports","totalReports","sharedData","expandedRow","filteredreport","searchvalue","expandClick","handleSearchChange","onKeyUp","getTrainer","getTrainerDetailReport","transformOrigin","tr","filtered","charCode","completed","f","unCompleted","forEach","report","self","reportDetail","hasFeedback","skillReports","find","skill","comment","fontFamily","reduce","handleSearch","iconSearch","handleFilter","reportData","reportId","totalScore","toPrecision","UncontrolledCollapse","toggler","obj","trainerGrey","marginRight","createdDate","checklistCompleted","modifiedDate","sr","skillName","score","properties","borderBottomLeftRadius","borderBottomRightRadius","feedback","totalProgress","playerDetails","DetailReportItem","openModal","playerReportReviews","playerReportDetailsSkill","trainerPic","parseFloat","toFixed","checklistCompletedGray","ReportPlayerItem","playerReportResponse","playerReportReview","DetailPlayer","fetchPlayerDetailsByIdBySeason","showdetailoverall","positionName","completionPercentage","clubPictureUrl","print","getPositions","fetchPlayerDetails","playerData","updatePlayerData","allPositions","skillsOverview","club","clubid","logotemp","logourl","country","fetchClubDetails","sd","startdate","ed","enddate","seasonname","reportfreq","clubSeasons","rowdata","reportFrequency","GeneralSettings","allowminreport","fieldSeason","actionseason","handleEdit","seasonFilter","startDate","endDate","addOrMin","addSeasonModal","handleChangeSeason","data-dir","saveNewSeason","handleRequestSort","isAsc","errorsfieldSeason","saveClubDetails","updateSeasons","logoUrl","newvalue","fieldsSeason","newrow","fieldrow","updateClubDetails","updateSeason","addSeason","onMouseEnter","onMouseLeave","EmptyTeamsImage","Season","eve","item","save","minReportFreq","amountOfCompleted","TContent","onSort","TBar","THead","SeasonModal","box","alignItems","fontWeight","justifyContent","off","on","Congratulation","PasswordChanged","AdminHome","getFile","setFile","getClub","setClub","setSeason","getTeam","useEffect","FClub","dStyle","FSeason","clubId","FTeam","dBody","clubs","dOption","valObj","valInd","Error","DFormat","formatted","Intl","DateTimeFormat","formatToParts","container","provided","indicatorsContainer","indicatorSeparator","multiValue","fontStyle","multiValueRemove","singleValue","valueContainer","AllRoutes","Switch","exact","path","Login","ForgotPassword","TokenValidation","TrainerDetail","PageNotFound","MANAGER","sidebarUrls","matchExact","iconUrl","HomeIcon","shouldBeLoggedIn","allowedRoles","ManagerWhite","SeasonIcon","TeamIcon","TrainersIcon","PlayersIcon","SettingsIcon","Footer","Header","keywordChange","toggleSearch","searchByKeyword","searchKeyword","toggleDropDown","dropdownOpen","fadeIn","dropDownIsOpen","profilBoxStatus","defaultPicture","toogleProfileBoxOutside","Fade","in","searchIsOpen","toogleProfileBoxOpen","ProfileGreyIcon","logOut","LogoutIcon","logOutAction","NavMenuItem","currentPath","targetPath","matchExactly","pathname","navItem","NavItem","NavLink","tag","SideNavMenu","urls","toggleOpen","filteredUrls","navItems","List","Layout","resize","innerWidth","con","profileboxopen","offsetWidth","addEventListener","removeEventListener","setOpen","sideNavOpen","ref","loginUserWithBearerToken","loginWithBearerToken","Startup","loginUserWithBearerTokenAction","Loading","App","Boolean","hostname","lng","storageLanguage","localStorage","i18n","use","initReactI18next","init","debug","interpolation","escapeValue","resources","nlResource","en","enResource","baseUrl","getElementsByTagName","getAttribute","createBrowserHistory","basename","store","reducers","authReducer","usersReducer","masterDataReducer","playerReducer","trainerReducer","pictureReducer","teamReducer","teamDetailReducer","dashboardReducer","middleware","thunk","routerMiddleware","enhancers","rootReducer","combineReducers","routerReducer","createStore","compose","applyMiddleware","configureStore","initialReduxState","rootElement","getElementById","ReactDOM"],"mappings":"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","file":"static/js/main.702fe8a3.chunk.js","sourcesContent":["module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/loading.28942717.gif\";","module.exports = __webpack_public_path__ + \"static/media/edit_ic.5cc2d53a.svg\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAASKADAAQAAAABAAAASAAAAACQMUbvAAAEwElEQVR4Ae2aTUgUYRjH3Q/Ykg4JRoeiDkGG20HI0tyFIAgKTJI6VAc/LlFQdMhAOnUK+gCPSdAHHgoskNKCDh0EVxfZvISQSUiHklLwlru6q/0f2ZGZt5l5dmZnrXGfgeH9+D/v+z7Pb5+ZeXd2KyrkEAJCoIQEAm7mTqVSlZlM5sXq6mqLm/EbPSYQCLyJRCIX6uvrfztdO+h0AKCEAaffL3AoPvI173PYabyOMggLBRKJxDMs0uZ0Ic0en+Zr1N9rbScl1j8B+1YnYxTbvlgs1gEfVpV+y6YjooBzDzO5hpP3IgQnH1p6ZCNg/aOAZGPBSm2Y4xesbrKWeYOCL7GRkRGatKvQiW3sjk9PT0dsdFNpZmZmC+CcNBWddXblYyloVEGAxsbG2jEbZU/RB4KsnJubu+Z0otnZWfJhh9NxZva4xO7mYzKTDX3sPWh0dLR5ZWVlAKMcXY6GVZQGHFwMh8N1DQ0NXxTJtJlMJndns9lPELebGrjrzAaDwdampqYhu+G2GQTKMXzi/ZjAMzjkDObcury8PID7wT4750gDnJ2AQzd1L+HQ1GGKDQnQRA2rwxIQnD+Yy+UGKRirwUX212LuFNY5hzJkNhfuFS3wYQJarZlebB/FhqtjaHx8PGo1l+klBqf3YkACE+yyGuhlPy65n1jrJeacxJnFWYO+ZvQd8HIdq7mw1ndoeLjGvqk2fwHCLrkam6oROFejGm/mNiBNYbcdx257Xh+n4RKbnJzcBjjvyg0OAaGYKXZiYAloYWHhMQwP6w3KqU6xEwN9zIYMgnBWL5Zp3cBABWT6NCkzUAYGKqAyY8GHK4AYRgJoMwKKx+MBOnEM4+zM1zuprWlM3AXLkkEMKsNOGt99inobxazlmYxMeUSTYd9yGnV6IzCFswbt/WgP5rVLVLo5KAu1cZ5+S9cmLXUJEEsEAq9MXqlr4cstBXdG7Xfb9iWgqqqqG9FodMkqaAD8gC/cV6x0J/2+BKTBwS3hMoLVv1P6isujF9mVg+aEg6WtLwFp0QDEeWTLMV17GPVere1FKU8xhqIvASFr1jI/FAp1I4umKUaUP1Dcpzp0w/cp6nN7+BIQ3iM/IAiNjY1JvOSqw8v3qyhr8UbwLYGAft0tEHXc+vOeBN0+KINPZEU11rfhYKneVeuXsazDv3Gc7fhV4rNmhLehe9LpNN2DTml9WgnbRa1uViIeSpa13+vYfRD2FzF8Oh/NJtL6dDC1rg0tEdARLDiBbLmFDHqC/U874NxBn+GNoOYUsqtSq5uV+PXkEH49Samar59ilMU4e/DLRI8amFdtU0D4NG5jozVvtwgcs5P/Ow3xPLVzCjFXm+kqoDSM6DfwZjNjP/chpo4C/ScG64cBEK7lbkx0cV21qcCO7gG+OeimXoizsHuutzM8xfQCV//XN2nOP1XXP5lUza7ty32QXUBeawKIISqABBBDgJElgwQQQ4CRJYMEEEOAkSWDBBBDgJElgwQQQ4CRJYMEEEOAkSWDBBBDgJElgwQQQ4CRJYMEEEOAkSWDBBBDgJElgwQQQ4CRJYMEEEOAkSWDBBBDgJElg0oFCH8Tsf0PI7PuhsrF+FpMBvVtaJTFLeYnX4uLVEYLAX8R+APfAJnFkQ9GtwAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/Team_Grey.14caf2b6.svg\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/logo.12301b1e.svg\";","module.exports = __webpack_public_path__ + \"static/media/soccer_icon.e915f89d.svg\";","module.exports = __webpack_public_path__ + \"static/media/ic_search.f67a6f4b.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAAAXNSR0IArs4c6QAABLJJREFUaEPlm01oJEUUgN+rmSTgsCSDZDVjAgbyg7kEZumOwrq7ufgDK4K37EVvXpXdFRS8KHjYH/Tqzb1sboK4oF5c3Q1sUj2ZkEuC5KCBcTT+EGRIyPx0Pamxe+yd6Znp/x7SDQMz01Xvva9fdb2q168RQjrK5fIT5XL5vBDiHADMG5+nEfEMEZ2RahGxQkQVAPgdAH6SH8bYZi6XW8vlcsdhmIZBCt3e3j5bq9WuENEbALBERMNe5CNiDQA2EPHL4eHhu4uLi394kWPXJxDgYrF4odFoXAeAV4goHZRxxihoAMC36XT6Zj6ff+BXti/gQqGwrOv6RwBw3q8hDvuvMcY+VBTlB4ftO5p5At7Z2Zk4Ojq6LYRY8arYTz/G2Gomk7m6sLDwm1s5roE1TXsVAFaFEKNulQXZnjH2DwCsKIryjRu5roA551cB4AYRMTdKwmqLiAIA3lNV9bZTHY6A9/b2Rg4PDz8nojedCo6yHSLeyWazb8/Ozlb76e0LXCwWxxuNxldE9EI/YXGeR8RH6XT69Xw+/2cvO3oCG569P+iwJqCEzmazy7083ROYc/7FoA7jbl6Uw1tV1be6nu92Qk5QRHQrzmHqVTciXus2kdl6WIYeIro3KLOxW3A5eyPiZbuQ1QFsLCp2446zbiHb28s4nclknmtfnHQAa5p2N64VlF9IG+hVRVGuWP9/DFjTtEtCiPtBK45THmNs2br2fgx4Y2PjYYQbgaiuw9rS0tKLrdBlfuGcXyQiz7uQqKz3ogcRL6mq+qPs2/Iw5/xrIrrsReCg90HEe6qqvtYClpmKarX6a9Cb96AuxPj4OExPT8PW1hbU63XXYhGxMTIy8ozMnDQ9rGnaO0KIT11LiqCDCWuq8grNGHtXUZTPmsCc8wdE1LqxI+BwpKId1g80Ij5UVfUCyuxiqVQ69Jpwc2S5h0bdYKWoSqUCu7u7rqTKxODk5GQWC4XCS7quf+eqd8iNe8Hqug6bm5ueLEilUi8j5/x9IvrEk4QQOoUF25yhET+QwAOzBQwT1gC+I4EfEdHzITjLlciwYQ3gdQn8MxE968q6gBtHAWsA/4Kapv0lhHgyCAZEBCJyJSoqWGkUY+xv6eFqECFpYmICpqam4ODgAPb39x1BRwlreLgWCLAJa1I6gY4atgXsd0i3wzqBjgPWOqR9TVpzc3MwNjZmO4TtPB0XbGvSCiIszc/Pw+io/aMmK3ScsNawFMjCox/08fFxc4tnd/hZLjqaHY1GMmcd6NKyF3Q3w6KCbS0tg948uIGOElYCNzcPYWwPnUBHDdvaHkryMBIAvaCjhjWG838JAPkjrBSPHXQcsEYM/j/FE2YSzwodF2xHEs8Y1qGlaWdmZuDk5ARKpZKbKBJY2440rZQsa63q9XozWX3ajqGhoYtmjVdyH7VIrxqFZt+fJg/3fJhmzNjJeVwqgRP3QNzwcnJKHsz7N1FFLRboQLaOUU6CnsuWpJGJK0wzFiTJKT00h2Kiikut919iyoet0IkqEDfBE/UKQJu3ZSHbxxHWdsXzkkd7XJU1XgBwLczXeADglllr5Seu962IdyN8fX39qVQqtXLqX9SyuyiD+irev3HJ9d2LpdNEAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/home_icon.2f8d5f20.svg\";","module.exports = __webpack_public_path__ + \"static/media/players_icon.c42a4779.svg\";","module.exports = __webpack_public_path__ + \"static/media/settings_icon.7ab2b293.svg\";","module.exports = __webpack_public_path__ + \"static/media/team_icon.b0a879ef.svg\";","module.exports = __webpack_public_path__ + \"static/media/season_icon.7a26bdce.svg\";","module.exports = __webpack_public_path__ + \"static/media/trainers_icon.fe90ffe9.svg\";","module.exports = __webpack_public_path__ + \"static/media/Manager_white.eefa311a.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAJKADAAQAAAABAAAAJAAAAAAqDuP8AAAEGUlEQVRYCb1YO08bQRBeP3iIl2IkzEOyeYkiDRJ0mKRI4TRJkxQp8w9Qikj5EZFSIH5FUiRNUrkkmA4kJEQFCIwIGIF5P23I923ulvP5zt49HEZa7+3s7Mzn2d3Z2Q0JQ1paWoqdnJy8uru7S2NoEqXPKtS0bZXNUCiUaW9v/zU6Olpghy6FdAWz2ewbgJhCeY4xUc1xRQCbRZlJpVI/dMbUBDQ/Pz95e3v7GUBSOgr9ZAAqGw6HP01MTMz5yZDvCwgAIvDKF9Qfqikw7QOwaXjrI+qS11hPQIuLi0/Oz8+/AsxLr0F14GVaW1vfjY2NHbp1VQCywGQB5qlbuJ5teGilpaUl5QYVdhrhNJ2dnX3732BokzYsWxEnhjJAXDPo5HZ+LEpbNpU9NWXcTaVS6bfqecSPSCTyzN59ykPc2kExNDc3C5ag5LQtPcSgB+Z3U4U9PT2iv79fRKP/4mSxWBQbGxtiZ2fHVJVAjHrL4Ck9hAU2ZaohmUyK4eFhBYbjCYw89pmSjSHEs+n4+DhPfbpKOD3j4+MCW9dzCJSLhYUFcXl56dnvwyx2dHTEwzgoX0NAGwyVYaAvGPYTKGUMKUosnDLjbd7U1FTTlo6Mh5J0GO5NeHRUZXFKapGOjFsHsdBDzGeM6ObmpqY8d1wA6gsE6Pr6uqYtwwVt6+sLYwHW9r8tbtVHR0cCccvFvW8i4gvs3HuG5hexcA390ZRXYgSzv7+v2u6Pg4ODqoDd8nabWDhlzIONaXV1VZyenlaMu7i4EOvr6xV8TcY248+mpnCZGKdleXlZ8Phoa2uTfYgj8thgX0DajGLeMnDV+yAKOHVbW1tqKAMiS1AiliivKliA3KNG0ZpG4/G4PFztHcUjJejhCnVFYgnz3gRkszRgQozEvb298kDllLHwcCUvSJQmBmKRXkFjBtP2QgcQknPR3d0tvYPEqmII8mSBPFnk83mxu7srkKZWyHgxiIF8NeFzIIDyvHshVxFdXV0SCNzqpc+Xx4VOYHt7e76hAGCykyAqUeuGlzivFJbrZHBwsCzv8bXu0cE/wDIwMCDDAT3nJtq2eYxDkpjTAum03Wbd2dkpRkZGAoNx6uL6oi7qdBJt2vk0+QoQG7xRosrwG4JiaGiIn3Ul6qRuizKWTbtdDgiCJd4oUa9Q4vCw4mKpBgb9sHXShmWrLIoqqE4DvL3yEgdemjuK/4oL+yHEILq2tiYXOPToX6Vto9hx6rGhsbFRJBIJucsc7rZFq9bQI0HkcjnBtAXjzR8bnBaczzEMeNx1sVhMBkI/cATBg7dQKMh4dHV1RSAPe45xguI3724wpB6sGhoaBIMga3qQRA8wm8TLiazBqv+DlbTk+LGe9HhTSQMg83GmwHYaLJ/04I0ceHzS+2n6pPcXRkTLIVHKtiYAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/Logout_Dark.a45595ab.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAICAYAAADN5B7xAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAADKADAAQAAAABAAAACAAAAADmjFydAAAAeElEQVQYGY2PywnAIBBEs9uEVXnMOUFvSUsKpilL8WocYSUR8xFkP/MGZsk5F3LOy/TjEdHBSqmtNPGLBwOWtdaJmediSC+mylQWkDEmFtP+ZIAGBjoLZK0NyCizVOygydwMWPT3SG6BUW+G7p6W+2oY9t77FX8knkYnJ3xaEfNJAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/login_banner.eb44408c.jpg\";","module.exports = __webpack_public_path__ + \"static/media/trash_white.81c84112.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAMCAYAAABvEu28AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAEqADAAQAAAABAAAADAAAAABFeZu2AAAAmUlEQVQoFaWQQQqAIBBFcy7hqVy2LnRXV1KoS3UUt+YPJkqqsRJkRp3/wKe891NKqWt+LKXUTFrrITfLVw6yYJAxJhJRm0HxA2zLbgyErbVLho1vQcggixxx2Dk34a98lipmkeG5HYSLWl/shSGoJ1Clr93LLQgPkq+jl0cQHu98lV5EEAZKX1deqkCFr0svR5DYhxB6bGlwBaESOqSuVcJ6AAAAAElFTkSuQmCC\"","export const authUrl = \"https://auth.proseason.nl\";\r\n\r\nexport const webAppUrl = \"https://app.proseason.nl\";\r\n\r\nexport const fetchUsersType = 'FETCH_USERS';\r\n\r\nexport const receiveUsersType = 'RECEIVE_USERS';\r\n\r\nexport const tokenKey = 'pro_season_bearer_token';\r\n\r\nexport const userId = 'pro_season_user_id';\r\n\r\nexport const userRole = 'pro_season_user_role';\r\n\r\nexport const userEmail = 'pro_season_user_email';\r\n\r\nexport const updateLoggedInUser = 'UPDATE_LOGGED_IN_USER';\r\n\r\nexport const addManager = \"ADD_MANAGER\";\r\n\r\nexport const updateUserActivationState = 'UPDATE_USER_ACTIVATION_STATE';\r\n\r\nexport const updatePasswordToken = 'UPDATE_PASSWORD_FROM_TOKEN';\r\n\r\nexport const addPlayer = \"ADD_PLAYER\";\r\n\r\nexport const addTrainer = \"ADD_TRAINER\";\r\n\r\nexport const getAllTeams = \"GET_ALL_TEAM\";\r\n\r\nexport const getManagerOverview = \"GET_MANAGER_OVERVIEW\";\r\n\r\nexport const getTermsAndPrivacy = 'GET_TERMS_AND_PRIVACY';\r\n\r\nexport const getPlayerOverview = \"GET_PLAYER_OVERVIEW\";\r\n\r\nexport const getTrainerOverview = \"GET_TRAINER_OVERVIEW\";\r\n\r\nexport const clearTrainerDataType = \"CLEAR_TRAINER_DATA\";\r\n\r\nexport const getPlayerOverviewReport = \"GET_PLAYER_OVERVIEW_REPORT\";\r\n\r\nexport const uploadProfilePicture = \"UPLOAD_PROFILE_PICTURE\";\r\n\r\nexport const clearAddPlayerData = \"CLEAR_ADD_PLAYER_DATA\";\r\n\r\nexport const getHeaderDetail = \"GET_HEADER_USER_DETAIL\";\r\n\r\nexport const getManagerById = \"GET_MANAGER_BY_ID\";\r\n\r\nexport const fetchTeamOverview = \"FETCH_TEAM_OVERVIEW\";\r\n\r\nexport const fetchTeamTrainerOverview = \"FETCH_TEAM_TRAINER_OVERVIEW\";\r\n\r\nexport const updateManager = \"UPDATE_MANAGER\";\r\n\r\nexport const fetchTrainerDetail = \"FETCH_TRAINER_DETAIL\";\r\n\r\nexport const fetchPlayerDetails = \"FETCH_PLAYER_DETAILS\";\r\n\r\nexport const fetchClubSeason = \"FETCH_CLUB_SEASON\";\r\n\r\nexport const getTrainerById = \"GET_TRAINER_BY_ID\";\r\n\r\nexport const updatePlayer = \"UPDATE_PLAYER\";\r\n\r\nexport const fetchByKeyword = \"FETCH_BY_KEYWORD\";\r\n\r\nexport const getAvailablePlayers = \"GET_AVAILABLE_PLAYERS\";\r\n\r\nexport const getAvailableTrainers = \"GET_AVAILABLE_TRAINERS\";\r\n\r\nexport const getTeamDetail = \"GET_TEAM_DETAIL\";\r\n\r\nexport const addPlayerTrainers = \"ADD_PLAYER_TRAINER\";\r\n\r\nexport const getAllPositions = \"GET_ALL_POSITIONS\";\r\n\r\nexport const getClubDetails = \"GET_CLUB_DETAILS\";\r\n\r\nexport const addSeason = \"ADD_SEASON\";\r\n\r\nexport const resetPassword = \"RESET_PASSWORD\";\r\n\r\nexport const getPlayerDevelopmentDashboard = \"GET_PLAYER_DEVELOPMENT_DASHBOARD\";\r\n\r\nexport const getClubHeader = \"GET_CLUB_HEADER\";\r\n\r\nexport const getTotalHeader = \"GET_TOTAL_HEADER\";\r\n\r\nexport const getTrainerActivity = \"GET_TRAINER_ACTIVITY\";\r\n\r\nexport const fetchTeamOverviewDashboard = \"GET_TEAM_OVERVIEW_DASHBOARD\";\r\n\r\nexport const fetchMainDashboard = \"GET_MAIN_DASHBOARD\";","import {\r\n fetchUsersType,\r\n receiveUsersType,\r\n updateUserActivationState,\r\n updatePasswordToken,\r\n getTermsAndPrivacy,\r\n getHeaderDetail,\r\n getClubDetails,\r\n addSeason,\r\n resetPassword,\r\n getClubHeader\r\n} from '../../constants';\r\nimport { fromJS } from 'immutable';\r\n\r\nconst initialState = {\r\n users: [], userLoginDashboard: {}, isLoading: false, resetPassword: null, headerDetail: null\r\n};\r\n\r\nexport default (state, action) => {\r\n state = state || initialState;\r\n\r\n if (action.type === fetchUsersType) {\r\n return {\r\n ...state,\r\n isLoading: true\r\n };\r\n }\r\n\r\n if (action.type === receiveUsersType) {\r\n return {\r\n ...state,\r\n users: action.users,\r\n isLoading: false\r\n };\r\n }\r\n\r\n if (action.type === updateUserActivationState) {\r\n return {\r\n ...state,\r\n userActivated: action.userActivated,\r\n tokenValid: action.tokenValid,\r\n }\r\n }\r\n\r\n if (action.type === updatePasswordToken) {\r\n\r\n return {\r\n ...state,\r\n resetPassword: action.resetPassword\r\n }\r\n }\r\n\r\n if (action.type == getTermsAndPrivacy) {\r\n return {\r\n ...state,\r\n termsandprivacy: action.termsAndPrivacy\r\n }\r\n }\r\n\r\n if (action.type == getHeaderDetail) {\r\n return {\r\n ...state,\r\n headerDetail: action.headerDetail\r\n }\r\n }\r\n\r\n if (action.type == getClubDetails) {\r\n return {\r\n ...state,\r\n clubDetails: action.clubDetails\r\n }\r\n }\r\n\r\n if (action.type === addSeason) {\r\n return { ...state, addSeasonResult: action.result };\r\n }\r\n\r\n if (action.type === resetPassword) {\r\n return { ...state, resetPasswordResult: action.result };\r\n }\r\n\r\n if (action.type == getClubHeader) {\r\n return {\r\n ...state,\r\n clubHeader: action.result\r\n }\r\n }\r\n\r\n return state;\r\n};\r\n","import {\r\n addManager, getManagerOverview,\r\n getManagerById,\r\n updateManager,\r\n fetchByKeyword,\r\n getAvailablePlayers,\r\n getAvailableTrainers\r\n} from '../constants';\r\nimport { Map } from 'immutable';\r\n\r\nconst initialState = {\r\n addManagerResult: null,\r\n managers: Map(),\r\n updatedManager: null,\r\n keywordResult: null,\r\n availablePlayerResult: [],\r\n availableTrainerResult: []\r\n}\r\nexport default (state, action) => {\r\n state = state || initialState;\r\n \r\n if (action.type === addManager) {\r\n return { ...state, addManagerResult: action.result };\r\n }\r\n\r\n if (action.type === getManagerOverview) {\r\n return { ...state, managers: action.manager };\r\n }\r\n\r\n if (action.type === getManagerById) {\r\n return { ...state, manager: action.manager };\r\n }\r\n\r\n if (action.type === updateManager) {\r\n return { ...state, updatedManager: action.result };\r\n }\r\n\r\n if (action.type === fetchByKeyword) {\r\n return { ...state, keywordResult: action.result };\r\n }\r\n\r\n if (action.type === getAvailablePlayers) {\r\n return { ...state, availablePlayerResult: action.result };\r\n }\r\n\r\n if (action.type === getAvailableTrainers) {\r\n return { ...state, availableTrainerResult: action.result };\r\n }\r\n return state;\r\n}","import {\r\n updateLoggedInUser, tokenKey, userId, userRole\r\n} from '../constants';\r\n\r\nconst initialState = {\r\n loggedInUser: {\r\n id: sessionStorage.getItem(userId),\r\n accessToken: sessionStorage.getItem(tokenKey),\r\n role: sessionStorage.getItem(userRole)\r\n }\r\n};\r\n\r\nexport default (state, action) => {\r\n state = state || initialState;\r\n if (action.type === updateLoggedInUser) {\r\n return {\r\n ...state,\r\n loggedInUser: action.loggedInUser,\r\n };\r\n }\r\n\r\n return state;\r\n};\r\n","import { fetchClubSeason,getAllTeams, getAllPositions } from '../constants';\r\n\r\nconst initialState = {\r\n getAllTeams: [],\r\n seasons: [],\r\n positions:[]\r\n}\r\nexport default (state, action) => {\r\n state = state || initialState;\r\n \r\n if (action.type === getAllTeams) {\r\n return { ...state, allTeams: action.allTeams };\r\n }\r\n\r\n if (action.type === fetchClubSeason) {\r\n return { ...state, seasons: action.seasons };\r\n }\r\n\r\n if (action.type === getAllPositions) {\r\n return { ...state, positions: action.result};\r\n }\r\n\r\n return state;\r\n}","import { addPlayer, getPlayerOverview, getPlayerOverviewReport, clearAddPlayerData, fetchPlayerDetails } from '../constants';\r\n\r\nconst initialState = {\r\n addPlayerResult: null,\r\n playerOverview: null\r\n}\r\nexport default (state, action) => {\r\n state = state || initialState;\r\n if (action.type === addPlayer) {\r\n return { ...state, addPlayerResult: action.result };\r\n }\r\n\r\n if (action.type === getPlayerOverview) {\r\n return { ...state, playerOverview: action.players };\r\n }\r\n\r\n if (action.type === getPlayerOverviewReport) {\r\n return { ...state, playerOverview: action.players };\r\n }\r\n\r\n if (action.type === clearAddPlayerData) {\r\n return { ...state, addPlayerResult: undefined };\r\n }\r\n\r\n if (action.type === fetchPlayerDetails) {\r\n return { ...state, player: action.player };\r\n }\r\n return state;\r\n}","import { getTrainerOverview, clearTrainerDataType, fetchTrainerDetail, getTrainerById, addTrainer } from '../constants';\r\nimport { Map } from 'immutable';\r\n\r\nconst initialState = {\r\n //addManagerResult: null,\r\n trainers: Map(),\r\n trainer: null,\r\n trainerReportDetailData: null\r\n}\r\nexport default (state, action) => {\r\n state = state || initialState;\r\n\r\n //if (action.type === addManager) {\r\n // return { ...state, addManagerResult: action.result };\r\n //}\r\n\r\n if (action.type === getTrainerOverview) {\r\n return { ...state, trainers: action.trainer };\r\n }\r\n\r\n if (action.type === clearTrainerDataType) {\r\n return { ...state, trainers: Map() };\r\n }\r\n\r\n if (action.type == fetchTrainerDetail) {\r\n return { ...state, trainerReportDetailData: action.trainer };\r\n }\r\n\r\n if (action.type === getTrainerById) {\r\n \r\n return { ...state, trainer: action.trainer };\r\n }\r\n\r\n if (action.type === addTrainer) {\r\n \r\n return { ...state, addTrainerResult: action.result };\r\n }\r\n return state;\r\n}","import { uploadProfilePicture } from '../constants';\r\n\r\nconst initialState = {\r\n uploadProfilePicture : null\r\n}\r\nexport default (state, action) => {\r\n state = state || initialState;\r\n\r\n if (action.type == uploadProfilePicture) {\r\n return {\r\n ...state, profilePictureUpload: { id: action.userProfilePicture.id, dateTimeTag: action.userProfilePicture.dateTimeTag} };\r\n }\r\n return state;\r\n}","import { fetchTeamOverview, clearTrainerDataType } from '../constants';\r\nimport { Map } from 'immutable';\r\n\r\nconst initialState = {\r\n teams: Map(),\r\n}\r\nexport default (state, action) => {\r\n state = state || initialState;\r\n\r\n if (action.type === fetchTeamOverview) { \r\n return { ...state, teams: action.teams };\r\n }\r\n\r\n return state;\r\n}","import { fetchTeamTrainerOverview, getTeamDetail } from '../constants';\r\nimport { Map } from 'immutable';\r\n\r\nconst initialState = {\r\n teams: Map(),\r\n teamHeader: null\r\n}\r\nexport default (state, action) => {\r\n state = state || initialState;\r\n\r\n if (action.type === fetchTeamTrainerOverview) {\r\n return { ...state, teamDetails: action.teamDetails };\r\n }\r\n\r\n if (action.type === getTeamDetail) {\r\n return { ...state, teamHeader: action.result };\r\n }\r\n\r\n return state;\r\n}","import { getPlayerDevelopmentDashboard, getTotalHeader, getTrainerActivity, fetchTeamOverviewDashboard, fetchMainDashboard } from '../constants';\r\n\r\nconst initialState = {\r\n playerDevelopment: null,\r\n totalHeader: null,\r\n trainerActivity: null,\r\n teamOverview: null,\r\n mainDashboard:null\r\n}\r\nexport default (state, action) => {\r\n state = state || initialState;\r\n\r\n if (action.type === getPlayerDevelopmentDashboard) {\r\n return { ...state, playerDevelopment: action.result};\r\n }\r\n\r\n if (action.type === getTotalHeader) {\r\n return { ...state, totalHeader: action.result };\r\n }\r\n\r\n if (action.type === getTrainerActivity) {\r\n return { ...state, trainerActivity: action.result };\r\n }\r\n\r\n if (action.type === fetchTeamOverviewDashboard) {\r\n return { ...state, teamOverview: action.result };\r\n }\r\n\r\n if (action.type === fetchMainDashboard) {\r\n return { ...state, mainDashboard: action.result };\r\n }\r\n\r\n return state;\r\n}","import { createSelector } from 'reselect';\r\n\r\nexport const authSelector = state => state.auth;\r\nexport const loggedInUserSelector = state => authSelector(state).loggedInUser;\r\n\r\nexport const userLoggedInSelector = createSelector(\r\n loggedInUserSelector,\r\n (loggedInUser) => {\r\n if (loggedInUser && loggedInUser.token) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n);\r\nexport const resetPasswordSelector = state => state.users.resetPassword;","import React, { Component } from 'react';\r\nimport { Route } from 'react-router';\r\nimport { Redirect } from 'react-router-dom';\r\nimport { loggedInUserSelector } from '../store/users/selectors/authSelector';\r\nimport { connect } from 'react-redux';\r\nimport { tokenKey } from '../store/constants';\r\n\r\nclass ProtectedRoute extends Component {\r\n render() {\r\n const {\r\n component: Component,\r\n loggedInUser,\r\n ...props\r\n } = this.props;\r\n\r\n const loginPageURL = '/login';\r\n const bearerToken = sessionStorage.getItem(tokenKey);\r\n let isAllowed = bearerToken !== null && bearerToken !== undefined;\r\n\r\n if (!isAllowed) window.location.href = `/login`;\r\n \r\n return (\r\n {\r\n return (\r\n isAllowed ?\r\n :\r\n \r\n );\r\n }}\r\n />\r\n )\r\n }\r\n}\r\n\r\nexport default connect(\r\n (state) => {\r\n return {\r\n loggedInUser: loggedInUserSelector(state),\r\n }\r\n },\r\n null,\r\n)(ProtectedRoute);","import { tokenKey } from '../constants';\r\nimport { toast } from 'react-toastify';\r\n\r\nexport default async (url, method = 'GET', body = {}) => {\r\n const token = sessionStorage.getItem(tokenKey);\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"visible\";\r\n\r\n let fetchArguments = {\r\n method: `${method}`,\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n };\r\n\r\n if (method === 'POST' || method === 'PUT') {\r\n fetchArguments.body = body;\r\n }\r\n\r\n const result = await fetch(url, fetchArguments);\r\n\r\n //if (!result.ok) {\r\n // var doc = await result.json();\r\n // if (doc) {\r\n // doc.map(x=>console.log(x.errorMessage))\r\n // }\r\n //}\r\n\r\n return result;\r\n};","import { webAppUrl, tokenKey } from '../../constants';\r\nimport { toast } from 'react-toastify';\r\n\r\nexport default (userid) => async (dispatch) => {\r\n const url = `${webAppUrl}/api/user/AcceptPolicy`;\r\n\r\n var body = JSON.stringify({\r\n \"userId\": userid,\r\n });\r\n\r\n const response = await fetch(url, {\r\n method: 'POST',\r\n headers: {\r\n 'Authorization': `Bearer ${sessionStorage.getItem(tokenKey)}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: body\r\n });\r\n\r\n if (response.ok) {\r\n toast.success(\"Accepted the terms and privacy\", {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n window.location.href = `/login`;\r\n }\r\n else {\r\n setTimeout(() => {\r\n toast.error(\"Failed to accept the terms and privacy\", {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n window.location.href = `/termandprivacy`;\r\n }, 1000);\r\n }\r\n};","import '../bootstrap_css/style.css';\r\nimport { connect } from 'react-redux';\r\nimport React, { Component } from 'react';\r\nimport { Modal, ModalFooter } from 'reactstrap';\r\nimport { bindActionCreators } from 'redux';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { toast } from 'react-toastify';\r\nimport './TermsAndPrivacy.css';\r\nimport acceptTermsAndPrivacyAction from '../../../src/store/users/actions/acceptTermAndCondition';\r\nimport { userId } from '../../store/constants';\r\n\r\nclass TermsAndPrivacy extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n modal: true,\r\n isagree: false,\r\n };\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleCheckboxChange = this.handleCheckboxChange.bind(this);\r\n }\r\n\r\n toggle = (e) => {\r\n const { modal } = this.state;\r\n this.setState({\r\n modal: !modal\r\n });\r\n }\r\n\r\n closeModal() {\r\n const { modal } = this.state;\r\n this.setState({\r\n modal: !modal\r\n });\r\n }\r\n\r\n handleCheckboxChange(e) {\r\n const { isagree } = this.state;\r\n this.setState({\r\n isagree: !isagree\r\n });\r\n }\r\n\r\n handleSubmit() {\r\n const { modal, isagree } = this.state;\r\n if (!isagree) {\r\n toast.error(`Please accept the terms and privacy`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n return;\r\n }\r\n\r\n this.setState({\r\n modal: !modal\r\n });\r\n this.props.acceptTermsAndPrivacy(sessionStorage.getItem(userId));\r\n }\r\n\r\n ModalTermsAndConditions = (modal, isagree, termsAndPrivacy) => {\r\n const { t } = this.props;\r\n return (\r\n \r\n
\r\n

TERMS AND PRIVACY

\r\n \r\n

\r\n {termsAndPrivacy.description}\r\n

\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n render() {\r\n const { modal, isagree } = this.state;\r\n const { termsAndPrivacy } = this.props;\r\n return (
\r\n {this.ModalTermsAndConditions(modal, isagree, termsAndPrivacy)}\r\n
);\r\n }\r\n}\r\n\r\nexport default connect((state) => {\r\n return {}\r\n},\r\n dispatch => bindActionCreators({\r\n acceptTermsAndPrivacy: acceptTermsAndPrivacyAction,\r\n }, dispatch))(withTranslation()(TermsAndPrivacy));","import { fetchClubSeason, webAppUrl, tokenKey } from '../constants';\r\nimport fetchWithBearerToken from '../SharedActions/fetchWithBearerToken';\r\n\r\nexport default () => async (dispatch) => {\r\n\r\n const token = sessionStorage.getItem(tokenKey);\r\n let fetchArguments = {\r\n method: `GET`,\r\n headers: {\r\n 'Authorization': `Bearer ${token}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n };\r\n\r\n const result = await fetchWithBearerToken(`${webAppUrl}/api/MasterData/GetClubSeason`, 'GET');\r\n\r\n if (result.ok) {\r\n const resultData = await result.json()\r\n dispatch({ type: fetchClubSeason, seasons: resultData });\r\n }\r\n};","import React, { Component } from 'react';\r\n\r\nexport default class CircularProgressBar extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n }\r\n\r\n render() {\r\n // Size of the enclosing square\r\n const sqSize = this.props.sqSize;\r\n // SVG centers the stroke width on the radius, subtract out so circle fits in square\r\n const radius = (this.props.sqSize - this.props.strokeWidth) / 2;\r\n // Enclose cicle in a circumscribing square\r\n const viewBox = `0 0 ${sqSize} ${sqSize}`;\r\n // Arc length at 100% coverage is the circle circumference\r\n const dashArray = radius * Math.PI * 2;\r\n // Scale 100% coverage overlay with the actual percent\r\n const dashOffset = dashArray - dashArray * this.props.percentage / 100;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {`${this.props.percentage} %`}\r\n \r\n\r\n \r\n

\r\n {`${this.props.extraText}`}\r\n

\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nCircularProgressBar.defaultProps = {\r\n sqSize: 200,\r\n percentage: 25,\r\n strokeWidth: 10\r\n};\r\n\r\nclass App extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n percentage: 25\r\n };\r\n\r\n this.handleChangeEvent = this.handleChangeEvent.bind(this);\r\n }\r\n\r\n handleChangeEvent(event) {\r\n this.setState({\r\n percentage: event.target.value\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { default as ReactSelect } from \"react-select\";\r\n// const customStyles = {\r\n// control: styles => ({ width: '200px', height:'50px' }),\r\n// dropdownIndicator: styles =>({background-image:'blue'})\r\n\r\n// }\r\n\r\nconst brandColor = '#cccccc';\r\nconst customStyles = {\r\n control: (base, state) => ({\r\n ...base,\r\n boxShadow: '0 !important',\r\n '&:hover': {\r\n borderColor: state.isFocused ? brandColor : base.borderColor,\r\n },\r\n borderColor: state.isFocused ? brandColor : base.borderColor,\r\n borderRadius: '10px !important',\r\n // You can also use state.isFocused to conditionally style based on the focus state\r\n }),\r\n option: (styles, state) =>\r\n console.log(state.isFocused) || {\r\n ...styles,\r\n backgroundColor: state.isSelected ? \"none\" : null,\r\n ':active': {\r\n backgroundColor: state.isSelected ? 'none' : 'none',\r\n },\r\n color: state.isSelected ? '#515151' : '#515151',\r\n }\r\n};\r\n\r\nconst MySelect = props => {\r\n if (props.allowSelectAll) {\r\n let selectall = props.customoptionsall && props.customoptionsall != '' ? { label: props.customoptionsall, value: \"*\" } : props.allOption;\r\n return (\r\n {\r\n if (selected !== null && selected.length > 0) {\r\n if (selected[selected.length - 1].value === props.allOption.value) {\r\n return props.onChange([props.allOption, ...props.options]);\r\n }\r\n let result = [];\r\n if (selected.length === props.options.length) {\r\n if (selected.includes(props.allOption)) {\r\n result = selected.filter(\r\n option => option.value !== props.allOption.value\r\n );\r\n } else if (event.action === \"select-option\") {\r\n result = [props.allOption, ...props.options];\r\n }\r\n return props.onChange(result);\r\n }\r\n }\r\n\r\n return props.onChange(selected);\r\n }}\r\n />\r\n );\r\n }\r\n\r\n return ;\r\n};\r\n\r\nMySelect.propTypes = {\r\n options: PropTypes.array,\r\n value: PropTypes.any,\r\n onChange: PropTypes.func,\r\n allowSelectAll: PropTypes.bool,\r\n allOption: PropTypes.shape({\r\n label: PropTypes.string,\r\n value: PropTypes.string\r\n })\r\n};\r\n\r\nMySelect.defaultProps = {\r\n allOption: {\r\n label: \"Select all\",\r\n value: \"*\"\r\n }\r\n};\r\n\r\nexport default MySelect;\r\n","import React, { Component } from \"react\";\r\nimport makeAnimated from \"react-select/animated\";\r\nimport DshoreSelect from \"./DshoreSelect.js\";\r\nimport { components } from \"react-select\";\r\nimport arrow_down from '../../images/arrow_down.png';\r\nimport { FaCaretDown } from 'react-icons/fa';\r\nimport { Input } from 'reactstrap';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nconst Option = props => {\r\n return (\r\n
\r\n \r\n \r\n
{props.label}
\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst allOption = { \r\n label: \"All teams\",\r\n value: \"*\"\r\n};\r\n\r\nconst ValueContainer = ({ children, ...props }) => {\r\n const currentValues = props.getValue();\r\n let toBeRendered = children;\r\n\r\n if (currentValues.length > 0) {\r\n toBeRendered = [[children[0][0]], children[1]];\r\n }\r\n if (currentValues.some(val => val.value === allOption.value)) {\r\n toBeRendered = [[children[0][0]], children[1]];\r\n }\r\n return (\r\n \r\n {toBeRendered}\r\n \r\n );\r\n};\r\n\r\n\r\n\r\nconst DropdownIndicator = (props) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst animatedComponents = makeAnimated();\r\n\r\nexport default class CheckboxMultiselect extends Component {\r\n constructor(props) {\r\n super(props);\r\n //selectedTeamsFilter\r\n this.state = {\r\n optionSelected: null\r\n };\r\n }\r\n\r\n handleChange = selected => {\r\n this.setState({\r\n optionSelected: selected\r\n });\r\n };\r\n\r\n render() {\r\n const { allTeamMember, selectedTeam, populateSelectedTeam, displayedText, singleTeam, pluralTeams } = this.props;\r\n\r\n const MultiValue = props => {\r\n const currentValues = props.getValue(); \r\n let labelToBeDisplayed = `${currentValues.length} ${currentValues.length > 1 ? pluralTeams : singleTeam} `;\r\n\r\n if (props.data.value === allOption.value) {\r\n labelToBeDisplayed = displayedText;\r\n }\r\n\r\n return (\r\n {labelToBeDisplayed}\r\n );\r\n };\r\n return (\r\n \r\n null\r\n }}\r\n onChange={(e) => { populateSelectedTeam(e); }}\r\n allowSelectAll={true}\r\n value={selectedTeam}\r\n />\r\n \r\n );\r\n }\r\n}\r\n","import { webAppUrl, getPlayerDevelopmentDashboard } from '../constants';\r\nimport { toast } from 'react-toastify';\r\nimport fetchWithBearerToken from '../SharedActions/fetchWithBearerToken';\r\n\r\nexport default (seasonId, teamIds) => async (dispatch) => {\r\n //player development\r\n \r\n let body ='';\r\n \r\n if (teamIds && teamIds.length > 0) { \r\n body = JSON.stringify(teamIds.map(x => x.value).join(','));\r\n }\r\n const playerDevelopmentResult = await fetchWithBearerToken(`${webAppUrl}/api/Dashboard/GetPlayerDevelopment?clubSeasonId=${seasonId}`\r\n , 'POST',body);\r\n\r\n if (playerDevelopmentResult.ok) {\r\n const playerResult = await playerDevelopmentResult.json(); \r\n dispatch({ type: getPlayerDevelopmentDashboard, result: playerResult });\r\n }\r\n}","import { webAppUrl, getTotalHeader } from '../constants';\r\nimport { toast } from 'react-toastify';\r\nimport fetchWithBearerToken from '../SharedActions/fetchWithBearerToken';\r\n\r\nexport default (seasonId) => async (dispatch) => {\r\n //player development\r\n const totalHeaderResult = await fetchWithBearerToken(`${webAppUrl}/api/Dashboard/GetDashboardTotalHeader?clubSeasonId=${seasonId}`);\r\n\r\n if (totalHeaderResult.ok) {\r\n const playerResult = await totalHeaderResult.json();\r\n\r\n dispatch({ type: getTotalHeader, result: playerResult });\r\n }\r\n}","import { webAppUrl, getTrainerActivity } from '../constants';\r\nimport { toast } from 'react-toastify';\r\nimport fetchWithBearerToken from '../SharedActions/fetchWithBearerToken';\r\n\r\nexport default (seasonId,teamIds) => async (dispatch) => {\r\n let body = '';\r\n \r\n if (teamIds && teamIds.length > 0) {\r\n body = JSON.stringify(teamIds.map(x => x.value).join(','));\r\n }\r\n\r\n const trainerActivityResult = await fetchWithBearerToken(`${webAppUrl}/api/Dashboard/GetDashboardTrainerOverview?clubSeasonId=${seasonId}`,\r\n 'POST',body);\r\n\r\n if (trainerActivityResult.ok) {\r\n const trainerResult = await trainerActivityResult.json();\r\n\r\n dispatch({ type: getTrainerActivity, result: trainerResult });\r\n }\r\n}","import { webAppUrl, fetchTeamOverviewDashboard } from '../constants';\r\nimport { toast } from 'react-toastify';\r\nimport fetchWithBearerToken from '../SharedActions/fetchWithBearerToken';\r\n\r\nexport default (seasonId, teamIds) => async (dispatch) => {\r\n\r\n let body = '';\r\n \r\n if (teamIds && teamIds.length > 0) {\r\n body = JSON.stringify(teamIds.map(x => x.value).join(','));\r\n }\r\n const teamOverviewResponse = await fetchWithBearerToken(`${webAppUrl}/api/Dashboard/GetDashboardTeamOverview?clubSeasonId=${seasonId}`,\r\n 'POST',body);\r\n\r\n if (teamOverviewResponse.ok) {\r\n const teamOverviewResult = await teamOverviewResponse.json();\r\n\r\n dispatch({ type: fetchTeamOverviewDashboard, result: teamOverviewResult });\r\n }\r\n}","import { webAppUrl, fetchMainDashboard } from '../constants';\r\nimport { toast } from 'react-toastify';\r\nimport fetchWithBearerToken from '../SharedActions/fetchWithBearerToken';\r\n\r\nexport default (seasonId, teamIds) => async (dispatch) => {\r\n let listTeams = '';\r\n\r\n if (teamIds && teamIds.length > 0) {\r\n listTeams = teamIds.map(x => x.value).join(',');\r\n }\r\n\r\n //player development\r\n const maindDashboardResponse = await fetchWithBearerToken(`${webAppUrl}/api/Dashboard/GetMainDashboard?clubSeasonId=${seasonId}&teamIds=${listTeams}`,\r\n 'Get');\r\n\r\n if (maindDashboardResponse.ok) {\r\n const mainDashboardResult = await maindDashboardResponse.json();\r\n\r\n dispatch({ type: fetchMainDashboard, result: mainDashboardResult });\r\n }\r\n}","import React, { Component } from 'react';\r\nimport defaultUser from '../images/default_user.png';\r\nimport { Link } from 'react-router-dom';\r\n\r\nclass ProfileThumbnailPicture extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n imgSrc: defaultUser\r\n }\r\n\r\n this.setError = this.setError.bind(this);\r\n }\r\n\r\n static defaultProps = {\r\n cls: '',\r\n size: 35,\r\n imgUrl: '',\r\n urlDetail: ''\r\n }\r\n\r\n setError() {\r\n this.setState({\r\n imgSrc: defaultUser\r\n });\r\n }\r\n\r\n render() {\r\n const { imgUrl, cls, size, urlDetail } = this.props;\r\n return (imgUrl == '' ?\r\n :\r\n (urlDetail == '' ?\r\n
\r\n \r\n
\r\n : \r\n
\r\n \r\n
\r\n )\r\n )\r\n }\r\n}\r\n\r\nexport default (ProfileThumbnailPicture)","import { getAllTeams, webAppUrl, tokenKey } from '../constants';\r\nimport fetchWithBearerToken from '../SharedActions/fetchWithBearerToken';\r\n\r\nexport default (clubSeasonId) => async (dispatch) => {\r\n\r\n const result = await fetchWithBearerToken(`${webAppUrl}/api/MasterData/GetTeams?clubSeasonId=${clubSeasonId}`, 'GET');\r\n\r\n if (result.ok) {\r\n const resultData = await result.json()\r\n dispatch({ type: getAllTeams, allTeams: resultData });\r\n }\r\n};","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';\r\nimport { Link } from 'react-router-dom';\r\nimport { MdChevronRight } from \"react-icons/md\";\r\n\r\nimport './Overview.css';\r\nimport getTermsAndPrivacyAction from '../../../src/store/users/actions/fetchTermsAndPolicy';\r\nimport { termsAndPrivacyStateSelector } from '../../../src/store/users/selectors/userSelectors';\r\nimport TermsAndPolicy from '../../components/TermsAndPrivacy/TermsAndPrivacy';\r\nimport { userId } from '../../store/constants';\r\nimport TeamsImage from '../images/Team_logo.png';\r\nimport TrainerLogo from '../images/Trainer_Grey_Big.png';\r\nimport PlayerLogo from '../images/Player_Grey_Big.png';\r\nimport getSeason from '../../store/MasterData/getSeason';\r\nimport CircularProgressbar from '../SharedComponents/CircularProgressBar.js';\r\nimport CheckboxMultiselect from '../SharedComponents/Checkbox/CheckboxMultiSelect';\r\nimport defaultUser from '../images/default_user.png';\r\nimport fetchPlayerDevelopment from '../../store/Overview/fetchPlayerDevelopment';\r\nimport fetchTotalHeader from '../../store/Overview/fetchTotalHeader';\r\nimport fetchTrainerActivity from '../../store/Overview/fetchTrainerActivity';\r\nimport fetchTeamOverview from '../../store/Overview/fetchTeamOverview';\r\nimport fetchMainDashboard from '../../store/Overview/fetchMainDashboard';\r\nimport ProfilePic from '../SharedComponents/ProfileThumImage';\r\nimport getTeams from '../../store/MasterData/getTeams';\r\nimport SoccerIcon from '../images/Team_Grey.svg';\r\n\r\nclass Overview extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isRendering: true,\r\n isinitload: true,\r\n seasonDropDownIsOpen: false,\r\n selectedTeamsFilter: [],\r\n filteredSeason: '',\r\n filteredSeasonId: null,\r\n isVisible: false,\r\n };\r\n this.hideComponent = this.hideComponent.bind(this);\r\n }\r\n\r\n hideComponent() {\r\n this.setState({ isVisible: true });\r\n }\r\n\r\n toggleItem = () => {\r\n const { seasonDropDownIsOpen } = this.state;\r\n this.setState({ seasonDropDownIsOpen: !seasonDropDownIsOpen });\r\n }\r\n\r\n populateSelectedTeam = (teams) => {\r\n Promise.all([\r\n this.props.fetchPlayerDevelopment(this.state.filteredSeasonId, teams),\r\n this.props.fetchTrainerActivity(this.state.filteredSeasonId, teams),\r\n this.props.fetchTeamOverview(this.state.filteredSeasonId, teams),\r\n this.props.fetchMainDashboard(this.state.filteredSeasonId, teams)])\r\n .then(t => {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n });\r\n\r\n this.setState({\r\n selectedTeamsFilter: teams,\r\n isRendering: true\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n Promise.all([\r\n this.props.getSeason(),\r\n this.props.getTeams(),\r\n this.props.fetchPlayerDevelopment(),\r\n this.props.fetchTotalHeader(),\r\n this.props.fetchTrainerActivity(),\r\n this.props.fetchTeamOverview(),\r\n this.props.fetchMainDashboard()\r\n ])\r\n .then(t => {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n this.hideComponent();\r\n });\r\n\r\n this.setState({ isRendering: true }, () => {\r\n this.setState({ isRendering: false });\r\n });\r\n }\r\n\r\n toggleSeason = () => {\r\n this.props.history.push(`/general-settings`);\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const { seasons } = this.props;\r\n const { isinitload } = this.state;\r\n\r\n var initfilteredSeason = '';\r\n var initfilteredSeasonId = '';\r\n if (isinitload && seasons.length > 0) {\r\n seasons.map((row, index) => {\r\n if (row.isCurrent) {\r\n initfilteredSeason = row.seasonName;\r\n initfilteredSeasonId = row.id;\r\n }\r\n });\r\n this.setState({\r\n isinitload: false,\r\n filteredSeason: initfilteredSeason,\r\n filteredSeasonId: initfilteredSeasonId\r\n });\r\n }\r\n\r\n if (JSON.stringify(this.props) !== JSON.stringify(prevProps))\r\n this.setState({ isRendering: false });\r\n }\r\n\r\n handleOnSelectSeason = (id, seasonName) => {\r\n\r\n const { selectedTeamsFilter } = this.state;\r\n\r\n if (id) {\r\n Promise.all([\r\n this.props.fetchPlayerDevelopment(id, selectedTeamsFilter),\r\n this.props.fetchTotalHeader(id, selectedTeamsFilter),\r\n this.props.fetchTrainerActivity(id, selectedTeamsFilter),\r\n this.props.fetchTeamOverview(id, selectedTeamsFilter),\r\n this.props.fetchMainDashboard(id, selectedTeamsFilter),\r\n this.props.getTeams(id)])\r\n .then(t => {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n });\r\n }\r\n\r\n this.setState({\r\n filteredSeason: seasonName,\r\n filteredSeasonId: id,\r\n isRendering: true\r\n });\r\n }\r\n\r\n render() {\r\n const { playerDevelopmentData, totalHeader, trainerActivity, teamOverview, mainDashboard, seasons, allTeams, t } = this.props;\r\n const { seasonDropDownIsOpen, filteredSeason, selectedTeamsFilter, populateSelectedTeam, isVisible } = this.state;\r\n const teamImage = sessionStorage.getItem('clubImage');\r\n\r\n return (\r\n
\r\n {isVisible && (\r\n
\r\n
\r\n
\r\n
\r\n
{t('overview.teams')}
\r\n
{totalHeader && totalHeader.length > 0 ? totalHeader[0].team : 0}
\r\n
\r\n
\r\n
{t('overview.trainers')}
\r\n
{totalHeader && totalHeader.length > 0 ? totalHeader[0].trainer : 0}
\r\n
\r\n
\r\n
{t('overview.players')}
\r\n
{totalHeader && totalHeader.length > 0 ? totalHeader[0].player : 0}
\r\n
\r\n
\r\n
\r\n {\r\n allTeams !== undefined && allTeams !== null &&\r\n \r\n }\r\n
\r\n
\r\n \r\n \r\n {filteredSeason}\r\n \r\n \r\n {seasons.map((row, index) => {\r\n //let current = '';\r\n //current = row.isCurrent ? (\r\n // \r\n //) : ();\r\n return (\r\n { e.preventDefault(); this.handleOnSelectSeason(row.id, row.seasonName); }}>\r\n
\r\n {row.seasonName}\r\n {/*current*/}\r\n \r\n
\r\n
)\r\n })}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{t('overview.club')}\r\n

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

{t('teams.title')}

\r\n
{mainDashboard ? mainDashboard.team : 0}
\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n

{t('trainers.title')}

\r\n
{mainDashboard ? mainDashboard.trainer : 0}
\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n

{t('players.title')}

\r\n
{mainDashboard ? mainDashboard.player : 0}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {mainDashboard ? mainDashboard.overallPlayerScore : 0}\r\n
\r\n {t('overview.overall')}
{t('overview.playerscore')}
\r\n
\r\n
\r\n
\r\n {mainDashboard ? `${mainDashboard.completedTeam}` : 0}\r\n
\r\n {t('overview.completed')}
{t('teams.lowerteams')}
\r\n
\r\n
\r\n
\r\n {mainDashboard ? `${mainDashboard.completedPlayer}` : 0}\r\n
\r\n {t('overview.completed')}
{t('players.lowerplayers')}
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n

{t('overview.player')}\r\n \r\n \r\n \r\n \r\n \r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
Completed reports :
\r\n
{mainDashboard ? mainDashboard.completedReport : 0}
\r\n
\r\n
\r\n
Total reports :
\r\n
{mainDashboard ? mainDashboard.totalReport : 0}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n playerDevelopmentData && playerDevelopmentData.topPlayers && playerDevelopmentData.topPlayers.map(x => (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{x.playerName}
\r\n
\r\n
\r\n
\r\n
\r\n
Completed reports :
\r\n
{x.completedReport}
\r\n
\r\n
\r\n
Total reports :
\r\n
{x.totalReport}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{x.playerName}
\r\n {\r\n x.isCompleted ?\r\n //masking 0 with '-' or \"en dash\" or – or space ' ' \r\n
{x.averageScore == 0.0 ? ' ' : x.averageScore}
\r\n :\r\n
\r\n
\r\n
\r\n {x.progress}%\r\n
\r\n
\r\n
\r\n }\r\n < Link to={'/players/detail-player?userId=' + x.playerId} className=\"detail-manager-link\" >\r\n \r\n \r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{t('overview.trainer')}\r\n \r\n \r\n \r\n \r\n \r\n

\r\n
\r\n
\r\n
\r\n
\r\n {trainerActivity && trainerActivity.map(x =>\r\n (
\r\n
\r\n \r\n
\r\n
{x.trainerName}
\r\n
{x.teamName}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{x.trainerName}
\r\n
\r\n
\r\n
\r\n
\r\n
Completed reports :
\r\n
{x.reportedPlayers}
\r\n
\r\n
\r\n
Open reports :
\r\n
{x.openReport}
\r\n
\r\n
\r\n
\r\n
\r\n {parseInt(x.progress) >= 100 &&\r\n (
100%
)}\r\n {parseInt(x.progress) < 100 &&\r\n (
{x.progress}%
)}\r\n
\r\n
\r\n
))}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{t('overview.team')}\r\n \r\n \r\n \r\n \r\n \r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
Completed teams :
\r\n
{mainDashboard ? mainDashboard.completedTeam : 0}
\r\n
\r\n
\r\n
Open teams :
\r\n
{mainDashboard ? mainDashboard.openTeam : 0}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {teamOverview && teamOverview.map(x =>\r\n (\r\n
\r\n
\r\n \"\"\r\n
\r\n
{x.teamName}
\r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n
{x.teamName}
\r\n
\r\n
\r\n
\r\n
\r\n
Completed reports :
\r\n
{x.reportedPlayers}
\r\n
\r\n
\r\n
Open reports :
\r\n
{x.openReport}
\r\n
\r\n
\r\n
\r\n
\r\n
{x.progress}%
\r\n
\r\n
\r\n
))}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n );\r\n }\r\n}\r\nconst mapToLIst = (e) => {\r\n const res = e ? e.map((x) => { return { value: x.id, label: x.teamName, color: \"#00B8D9\" } }) : null;\r\n return res;\r\n}\r\nexport default connect((state) => {\r\n return {\r\n playerDevelopmentData: state.dashboard.playerDevelopment,\r\n totalHeader: state.dashboard.totalHeader,\r\n trainerActivity: state.dashboard.trainerActivity,\r\n teamOverview: state.dashboard.teamOverview,\r\n mainDashboard: state.dashboard.mainDashboard,\r\n seasons: state.masterData.seasons,\r\n allTeams: mapToLIst(state.masterData.allTeams)\r\n }\r\n},\r\n dispatch => bindActionCreators({\r\n fetchPlayerDevelopment, fetchTotalHeader, fetchTrainerActivity, fetchTeamOverview, fetchMainDashboard, getSeason,\r\n getTeams\r\n }, dispatch))(withTranslation()(Overview));","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TableRow,\r\n TableSortLabel\r\n} from '@material-ui/core';\r\nimport defaultteam from '../images/Empty_logo_Big.png';\r\nimport { lighten, makeStyles } from '@material-ui/core/styles';\r\nimport { Input, Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';\r\nimport trashwhite from '../images/Trash.svg';\r\nimport roundplus from '../images/round_plus_icon.svg';\r\nimport { MdChevronRight } from \"react-icons/md\";\r\nimport { FaCaretUp } from 'react-icons/fa';\r\nimport { Link } from 'react-router-dom';\r\nimport { fromJS } from 'immutable';\r\nimport ProfilePic from '../SharedComponents/ProfileThumImage';\r\n\r\nfunction descendingComparator(a, b, orderBy) {\r\n if (b[orderBy] < a[orderBy]) {\r\n return -1;\r\n }\r\n if (b[orderBy] > a[orderBy]) {\r\n return 1;\r\n }\r\n return 0;\r\n}\r\n\r\nfunction getComparator(order, orderBy) {\r\n return order === 'desc'\r\n ? (a, b) => descendingComparator(a, b, orderBy)\r\n : (a, b) => -descendingComparator(a, b, orderBy);\r\n}\r\n\r\nfunction stableSort(array, comparator) {\r\n const stabilizedThis = array.map((el, index) => [el, index]);\r\n stabilizedThis.sort((a, b) => {\r\n const order = comparator(a[0], b[0]);\r\n if (order !== 0) return order;\r\n return a[1] - b[1];\r\n });\r\n return stabilizedThis.map((el) => el[0]);\r\n}\r\n\r\nfunction EnhancedTableHead(props) {\r\n const { classes, onSelectAllClick, order, orderBy, numSelected, rowCount, onRequestSort, headCells } = props;\r\n const createSortHandler = (property) => (event) => {\r\n onRequestSort(event, property);\r\n };\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {headCells.map((headCell) => (\r\n \r\n {headCell.label != 'View' &&\r\n < TableSortLabel\r\n active={orderBy === headCell.id}\r\n direction={orderBy === headCell.id ? order : 'asc'}\r\n onClick={createSortHandler(headCell.id)}\r\n IconComponent={FaCaretUp}\r\n >\r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n }\r\n {\r\n headCell.label == 'View' &&\r\n {headCell.label}\r\n }\r\n \r\n ))}\r\n \r\n \r\n );\r\n}\r\n\r\nEnhancedTableHead.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n numSelected: PropTypes.number.isRequired,\r\n onRequestSort: PropTypes.func.isRequired,\r\n onSelectAllClick: PropTypes.func.isRequired,\r\n order: PropTypes.oneOf(['asc', 'desc']).isRequired,\r\n orderBy: PropTypes.string.isRequired,\r\n rowCount: PropTypes.number.isRequired,\r\n};\r\n\r\nconst useToolbarStyles = makeStyles((theme) => ({\r\n root: {\r\n paddingLeft: theme.spacing(2),\r\n paddingRight: theme.spacing(1),\r\n },\r\n highlight:\r\n theme.palette.type === 'light'\r\n ? {\r\n color: theme.palette.secondary.main,\r\n backgroundColor: lighten(theme.palette.secondary.light, 0.85),\r\n }\r\n : {\r\n color: theme.palette.text.primary,\r\n backgroundColor: theme.palette.secondary.dark,\r\n },\r\n title: {\r\n flex: '1 1 100%',\r\n },\r\n}));\r\n\r\nconst EnhancedTableToolbar = (props) => {\r\n const classes = useToolbarStyles();\r\n const { numSelected, rows, seasonDropDownIsOpen, toggleItem, seasons, isActiveRemove, filteredSeason, handleOnSelectSeason, t } = props;\r\n\r\n return (\r\n
\r\n
{t('general.all') + ' ' + t('teams.lowerteams')}
{rows.length}
\r\n
\r\n {/* { e.preventDefault(); props.handleRemove(); }}*/}\r\n {/* data-target=\"#delete_modal\">\"\"*/}\r\n
\r\n \r\n \r\n {filteredSeason}\r\n \r\n \r\n {\r\n //\r\n //
All season
\r\n //
\r\n }\r\n {seasons.map((row, index) => {\r\n //let current = '';\r\n //current = row.isCurrent ? () : '';\r\n return (\r\n \r\n
\r\n {row.seasonName}{/*current*/}\r\n
\r\n
)\r\n })}\r\n {/*
+ Add new season
*/}\r\n
\r\n
\r\n
\r\n { e.preventDefault(); props.toggle(); }}\r\n className=\"btn_adnew\"\r\n data-toggle=\"modal\"\r\n data-target=\"#trainer_modal\">\"\"\r\n
\r\n
\r\n );\r\n};\r\n\r\nEnhancedTableToolbar.propTypes = {\r\n numSelected: PropTypes.number.isRequired,\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n width: '100%',\r\n },\r\n paper: {\r\n width: '100%',\r\n marginBottom: theme.spacing(2),\r\n },\r\n table: {\r\n minWidth: 750,\r\n },\r\n visuallyHidden: {\r\n border: 0,\r\n clip: 'rect(0 0 0 0)',\r\n height: 1,\r\n margin: -1,\r\n overflow: 'hidden',\r\n padding: 0,\r\n position: 'absolute',\r\n top: 20,\r\n width: 1,\r\n },\r\n buttonInvitation: {\r\n\r\n background: 'grey',\r\n border: 0,\r\n borderRadius: 10,\r\n boxShadow: '0 3px 5px 2px ',\r\n color: 'white',\r\n height: 40,\r\n padding: '0 5px',\r\n textTransform: 'none'\r\n }\r\n}));\r\n\r\nexport default function EnhancedTable(props) {\r\n const classes = useStyles();\r\n const [order, setOrder] = React.useState('asc');\r\n const [orderBy, setOrderBy] = React.useState('teamName');\r\n const [selected, setSelected] = React.useState([]);\r\n const [page, setPage] = React.useState(0);\r\n const [dense, setDense] = React.useState(false);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(5);\r\n const handleRequestSort = (event, property) => {\r\n const isAsc = orderBy === property && order === 'asc';\r\n setOrder(isAsc ? 'desc' : 'asc');\r\n setOrderBy(property);\r\n };\r\n const { rows, handleRemoveManagers, seasonDropDownIsOpen, toggleItem, seasons, getTrainers\r\n , handleOnSelectSeasonFilterd, filteredSeason, handleRemoveTeams, t } = props;\r\n const [activeRemove, setActiveRemove] = React.useState(false);\r\n\r\n const handleSelectAllClick = (event) => {\r\n\r\n if (event.target.checked) {\r\n const newSelecteds = rows.map((n) => n.id);\r\n setSelected(newSelecteds);\r\n setActiveRemove(true);\r\n return;\r\n }\r\n setSelected([]);\r\n setActiveRemove(false);\r\n };\r\n\r\n const handleClick = (event, name) => {\r\n const selectedIndex = selected.indexOf(name);\r\n let newSelected = [];\r\n\r\n if (selectedIndex === -1) {\r\n newSelected = newSelected.concat(selected, name);\r\n } else if (selectedIndex === 0) {\r\n newSelected = newSelected.concat(selected.slice(1));\r\n } else if (selectedIndex === selected.length - 1) {\r\n newSelected = newSelected.concat(selected.slice(0, -1));\r\n } else if (selectedIndex > 0) {\r\n newSelected = newSelected.concat(\r\n selected.slice(0, selectedIndex),\r\n selected.slice(selectedIndex + 1),\r\n );\r\n }\r\n\r\n setSelected(newSelected);\r\n setActiveRemove(newSelected.length > 0 ? true : false);\r\n };\r\n\r\n const handleInvite = () => { console.log(selected); alert('inviting') };\r\n\r\n const handleChangePage = (event, newPage) => {\r\n\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (event) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const isSelected = (name) => selected.indexOf(name) !== -1;\r\n\r\n const emptyRows = rowsPerPage - Math.min(rowsPerPage, rows.length - page * rowsPerPage);\r\n\r\n const handleRemove = (e) => {\r\n var users = fromJS([]);\r\n rows.map((row, index) => {\r\n if (isSelected(row.id))\r\n users = users.push(fromJS({\r\n \"Id\": row.id\r\n }));\r\n });\r\n handleRemoveTeams(users);\r\n }\r\n\r\n const handleOnSelectSeason = (e) => {\r\n handleOnSelectSeasonFilterd(e.currentTarget.id, e.target.outerText);\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {stableSort(rows, getComparator(order, orderBy)).map((row, index) => {\r\n const isItemSelected = isSelected(row.id);\r\n const labelId = `enhanced-table-checkbox-${index}`;\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n
\r\n \"\"\r\n
{row.teamName}
\r\n
\r\n
\r\n\r\n {row.totalTrainer > 1 && (\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{row.totalTrainer} Trainers
\r\n
\r\n
)}\r\n\r\n {row.totalTrainer <= 1 && (\r\n
\r\n
\r\n \r\n
\r\n
{row.topTrainerName}
\r\n
\r\n
)}\r\n\r\n \r\n
\r\n
\r\n {parseInt(row.overallProgress) <= 100 && (
{row.overallProgress}%
)}\r\n {parseInt(row.overallProgress) > 100 && (
{100}%
)}\r\n
\r\n
\r\n
\r\n\r\n {`${row.totalPlayer}`}\r\n\r\n \r\n \r\n \r\n \r\n \r\n
);\r\n })}\r\n {\r\n //emptyRows > 0 && (\r\n //\r\n // \r\n //\r\n //)\r\n }\r\n
\r\n \r\n
\r\n {\r\n //\r\n }\r\n
\r\n );\r\n}\r\n","import { toast } from 'react-toastify';\r\nimport fetchWithBearerToken from '../../SharedActions/fetchWithBearerToken';\r\nimport { webAppUrl, fetchTeamOverview } from '../../constants';\r\n\r\nexport default (clubSeasonId) => async (dispatch) => {\r\n const url = `${webAppUrl}/api/team/GetTeamOverviewByClubId?${clubSeasonId !== null ? (clubSeasonId !== undefined ? \"clubSeasonId=\" + clubSeasonId : '') : ''}`;\r\n const response = await fetchWithBearerToken(url); \r\n\r\n if (response.ok) {\r\n const teams = await response.json();\r\n dispatch({\r\n type: fetchTeamOverview,\r\n teams\r\n });\r\n }\r\n else {\r\n toast.error(`Failed fetching data. ${response.errorMessage}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n}\r\n","import { toast } from 'react-toastify';\r\nimport { webAppUrl } from '../../constants';\r\nimport fetchWithBearerToken from '../../SharedActions/fetchWithBearerToken';\r\nimport fetchTeamOverview from '../Action/fetchTeamOverview';\r\n\r\nexport default (entity, t) => async (dispatch) => {\r\n const body = JSON.stringify({\r\n \"Id\": entity.id,\r\n \"TeamName\": entity.teamname,\r\n \"Division\": entity.division,\r\n });\r\n\r\n const result = await fetchWithBearerToken(`${webAppUrl}/api/team/addteam`, 'POST', body);\r\n if (result.ok) {\r\n toast.success(t('messagessuccess.saveteam'), {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n dispatch(fetchTeamOverview());\r\n }\r\n else {\r\n toast.success(t('messagesfailed.saveteam'), {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n};","import React, { Component } from 'react';\r\n\r\nclass TextInputField extends Component {\r\n render() {\r\n const {\r\n extraClassName,\r\n } = this.props;\r\n\r\n let inputType = 'text';\r\n\r\n if (this.props.password) {\r\n inputType = 'password';\r\n } else if (this.props.email) {\r\n inputType = 'email';\r\n }\r\n\r\n const maxlength = (this.props.maxLength) ? this.props.maxLength : 255;\r\n\r\n const extraClass = this.props.hasError ? 'is-invalid' : '';\r\n return (\r\n {\r\n this.props.onChange(this.props.field, event.target.value);\r\n }}\r\n />\r\n );\r\n }\r\n}\r\n\r\nexport default (TextInputField);\r\n","import { toast } from 'react-toastify';\r\nimport { webAppUrl, tokenKey } from '../../constants';\r\nimport fetchTeamOverview from '../Action/fetchTeamOverview';\r\n\r\nexport default (userManagers, t) => async (dispatch) => {\r\n let url = `${webAppUrl}/api/Team/RemoveTeams`;\r\n\r\n let response = await fetch(url, {\r\n method: `POST`,\r\n headers: {\r\n 'Authorization': `Bearer ${sessionStorage.getItem(tokenKey)}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n , body: JSON.stringify(userManagers)\r\n });\r\n\r\n if (response.ok) {\r\n toast.success(t('messagessuccess.removeteam'), {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n dispatch(fetchTeamOverview());\r\n }\r\n else {\r\n toast.success(`${t('messagesfailed.failedremove')} ${response.errorMessage}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n}\r\n","import {\r\n clearTrainerDataType\r\n} from '../../constants';\r\n\r\nexport default () => async (dispatch) => {\r\n dispatch({ type: clearTrainerDataType });\r\n};","import { uploadProfilePicture, tokenKey, authUrl } from '../constants';\r\nimport { toast } from 'react-toastify';\r\n\r\n\r\nexport default (formData, dtTag, userId, t) => async (dispatch) => {\r\n var url;\r\n if (userId)\r\n url = `${authUrl}/Account/UploadPhoto?dateTimeTag=${dtTag}&userId=${userId}`;\r\n else\r\n url = `${authUrl}/Account/UploadPhoto?dateTimeTag=${dtTag}`;\r\n\r\n const tokenVar = sessionStorage.getItem(tokenKey);\r\n\r\n const response = await fetch(url, {\r\n method: 'POST',\r\n body: formData,\r\n headers: {\r\n 'Authorization': 'Bearer ' + tokenVar\r\n }\r\n }).catch(error => { toast.error(error); });\r\n\r\n //const response = await fetchWithBearerToken(url, 'POST', formData);\r\n\r\n if (response.ok) {\r\n\r\n const resultContent = await response.json();\r\n if (resultContent == null) {\r\n toast.error(`${t('messagesfailed.uploadpic')} ${response.errorMessage}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n return;\r\n }\r\n\r\n toast.success(t('messagessuccess.uploadpic'), {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n\r\n dispatch({ type: uploadProfilePicture, userProfilePicture: resultContent })\r\n \r\n }\r\n};\r\n\r\nfunction arrayBufferToBase64(buffer) {\r\n var binary = '';\r\n var bytes = [].slice.call(new Uint8Array(buffer));\r\n\r\n bytes.forEach((b) => binary += String.fromCharCode(b));\r\n\r\n return window.btoa(binary);\r\n};","import React from 'react';\r\nimport trashBig from '../images/Trash_Big.png';\r\nimport { Modal } from 'reactstrap';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nclass ModalDelete extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n render() {\r\n const { modal, closeModal, okRemove, toggle, t } = this.props;\r\n return ( { toggle(false) }} className=\"trainermodal\">\r\n \r\n );\r\n }\r\n}\r\nexport default withTranslation()(ModalDelete);","import { fromJS } from 'immutable';\r\nimport '../bootstrap_css/style.css';\r\nimport { connect } from 'react-redux';\r\nimport React, { Component } from 'react';\r\nimport MaterialTable from './MaterialTable';\r\nimport { Modal } from 'reactstrap';\r\nimport imageUpload from '../images/upload.jpg';\r\nimport addTeam from '../../store/Teams/Action/addTeam';\r\nimport fetchTeamOverview from '../../store/Teams/Action/fetchTeamOverview';\r\nimport { bindActionCreators } from 'redux';\r\nimport TextInputField from '../SharedComponents/TextInputField';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { toast } from 'react-toastify';\r\nimport removeTeams from '../../store/Teams/Action/removeTeams';\r\nimport getTeams from '../../store/MasterData/getTeams';\r\nimport clearTrainers from '../../store/Trainers/actions/clearTrainerData';\r\nimport uploadPicture from '../../store/profilePicture/uploadPicture';\r\nimport './Teams.css';\r\nimport getSeason from '../../store/MasterData/getSeason';\r\nimport ModalDelete from '../SharedComponents/ModalDelete';\r\n\r\nclass Teams extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n modal: false,\r\n seasonDropdownIsOpen: false,\r\n fields: fromJS({\r\n teamname: \"\",\r\n division: \"\",\r\n }),\r\n teamoverview: false,\r\n errors: fromJS({}),\r\n deleteModal: false,\r\n deleteTeamsRow: null,\r\n filteredSeason: '',\r\n isinitload: true,\r\n isVisible: false,\r\n };\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.uploadFileChange = this.uploadFileChange.bind(this);\r\n this.saveUploadedPhoto = this.saveUploadedPhoto.bind(this);\r\n this.hideComponent = this.hideComponent.bind(this);\r\n }\r\n\r\n hideLoading() {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n }\r\n\r\n hideComponent() {\r\n this.setState({ isVisible: true });\r\n }\r\n\r\n toggle = (e) => {\r\n\r\n const { modal, fields } = this.state;\r\n\r\n let newFieldsState = fields.set('teamname', '');\r\n newFieldsState = newFieldsState.set('division', '');\r\n\r\n this.setState({\r\n modal: !modal,\r\n fields: newFieldsState\r\n });\r\n }\r\n\r\n toggleDeleteModal = () => {\r\n const { deleteModal } = this.state;\r\n this.setState({\r\n deleteModal: !deleteModal\r\n });\r\n }\r\n\r\n traineroverviewstate = (e) => {\r\n const { traineroverview } = this.state;\r\n this.setState({\r\n traineroverview: !traineroverview\r\n });\r\n this.props.fetchTeamOverview(!traineroverview)\r\n .then(t => this.hideLoading());\r\n }\r\n\r\n handleChange(field, value) {\r\n\r\n this.setState({\r\n fields: this.state.fields.set(field, value),\r\n errors: this.state.errors.delete(field),\r\n });\r\n }\r\n\r\n handleSubmit() {\r\n const { fields, modal } = this.state;\r\n const { t } = this.props;\r\n this.props.addTeam(fields.toJS(), t)\r\n .then(t => this.hideLoading());\r\n this.setState({\r\n modal: !modal\r\n });\r\n }\r\n\r\n saveUploadedPhoto(e) {\r\n\r\n this.setState({\r\n fields: this.state.fields.set('photo', e.id),\r\n errors: this.state.errors.delete('photo')\r\n });\r\n }\r\n\r\n uploadFileChange(e) {\r\n const files = e.target.files;\r\n const { t } = this.props;\r\n if (files === undefined) return;\r\n\r\n let formData = new FormData();\r\n let fileType = '';\r\n\r\n if (files[0] !== null) {\r\n fileType = files[0].type;\r\n }\r\n\r\n if (files[0].size > '500000') {\r\n toast.success(\"file size limit\", {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n return;\r\n }\r\n\r\n if (fileType !== 'image/png' && fileType !== 'image/jpeg' && fileType !== 'image/jpg') {\r\n\r\n toast.success(\"format not allowed\", {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n return;\r\n }\r\n\r\n formData.append('file', files[0]);\r\n\r\n const dateTag = new Date().toString().replace('+', ' ');\r\n\r\n let newFields = this.state.fields.set('imgTemp', URL.createObjectURL(files[0]));\r\n\r\n newFields = newFields.set('photoDate', dateTag);\r\n\r\n this.setState({\r\n fields: newFields\r\n });\r\n\r\n this.props.uploadPicture(formData, dateTag, null, t)\r\n .then(t => this.hideLoading());\r\n }\r\n\r\n closeModal() {\r\n const { modal } = this.state;\r\n this.setState({\r\n modal: !modal\r\n });\r\n }\r\n\r\n AddTeamModal = (modal) => {\r\n\r\n const { fields, errors } = this.state;\r\n const { t } = this.props;\r\n const selectedPict = fields.get('imgTemp') !== null ? fields.get('imgTemp') : imageUpload;\r\n\r\n return (\r\n \r\n
\r\n

{t('general.add') + ' ' + t('teams.singlelowerteams')}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{t('teams.teamname')}\r\n this.handleChange(field, value)}\r\n hasError={errors.has('teamname')} />\r\n
{t('generaldetail.division')}\r\n this.handleChange(field, value)}\r\n hasError={errors.has('division')} />\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n componentDidMount() {\r\n const { traineroverview } = this.state;\r\n Promise.all([\r\n this.props.getTeams(),\r\n this.props.getSeason()])\r\n .then(t => {\r\n this.hideLoading();\r\n this.hideComponent();\r\n });\r\n //this.props.getTrainers(traineroverview);\r\n }\r\n\r\n handleRemoveTeams = (teams) => {\r\n const { deleteModal } = this.state;\r\n const { t } = this.props;\r\n if (teams.size == 0) {\r\n toast.success(t('validationerror.noselectedteams'), {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n else {\r\n this.setState({\r\n deleteModal: !deleteModal,\r\n deleteTeamsRow: teams.toJS()\r\n });\r\n }\r\n }\r\n\r\n okRemove = () => {\r\n const { deleteTeamsRow, deleteModal } = this.state;\r\n const { t } = this.props;\r\n this.props.removeTeams(deleteTeamsRow, t)\r\n .then(t => this.hideLoading());\r\n this.setState({\r\n deleteModal: !deleteModal,\r\n deleteTrainerRow: null\r\n });\r\n }\r\n\r\n handleTeamChange(e) {\r\n this.setState({\r\n fields: this.state.fields.set('teamId', e.target.value),\r\n errors: this.state.errors.delete('teamId'),\r\n });\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const { fields, traineroverview, isinitload } = this.state;\r\n\r\n const { addTrainerResult, profilePictureUpload, seasons } = this.props;\r\n\r\n if (profilePictureUpload && profilePictureUpload.dateTimeTag == fields.get('photoDate')) {\r\n if (prevProps.profilePictureUpload && profilePictureUpload.id !== prevProps.profilePictureUpload.id)\r\n this.saveUploadedPhoto(profilePictureUpload)\r\n .then(t => this.hideLoading());\r\n\r\n //if prev profilepic is undefined\r\n if (profilePictureUpload && prevProps.profilePictureUpload === undefined)\r\n this.saveUploadedPhoto(profilePictureUpload)\r\n .then(t => this.hideLoading());\r\n }\r\n\r\n if (addTrainerResult && prevProps.addTrainerResult !== addTrainerResult) {\r\n this.props.fetchTeamOverview(traineroverview)\r\n .then(t => this.hideLoading());\r\n }\r\n\r\n var initfilteredSeason = '';\r\n if (isinitload && seasons.length > 0) {\r\n seasons.map((row, index) => {\r\n if (row.isCurrent) {\r\n initfilteredSeason = row.seasonName;\r\n this.props.fetchTeamOverview(row.id)\r\n .then(t => this.hideLoading());\r\n }\r\n });\r\n this.setState({\r\n isinitload: false,\r\n filteredSeason: initfilteredSeason\r\n });\r\n }\r\n }\r\n\r\n toggleItem = () => {\r\n const { seasonDropdownIsOpen } = this.state;\r\n\r\n this.setState({\r\n seasonDropdownIsOpen: !seasonDropdownIsOpen\r\n });\r\n }\r\n\r\n handleOnSelectSeason = (seasonId, seasonName) => {\r\n this.props.fetchTeamOverview(seasonId)\r\n .then(t => this.hideLoading());\r\n this.setState({\r\n filteredSeason: seasonName\r\n });\r\n }\r\n\r\n render() {\r\n const { modal, seasonDropdownIsOpen, deleteModal, filteredSeason, isVisible } = this.state;\r\n const { teamOverviewData, seasons, getTrainers, t } = this.props;\r\n const headCellsTrainerOverview = [\r\n { id: 'teamName', numeric: false, disablePadding: true, label: t('teams.title') },\r\n { id: 'topTrainerName', numeric: false, disablePadding: false, label: t('trainers.title') },\r\n { id: 'overallProgress', numeric: true, disablePadding: false, label: t('general.progress') },\r\n { id: 'totalPlayer', numeric: true, disablePadding: false, label: t('players.title') },\r\n { id: 'id', numeric: true, disablePadding: false, align: 'center', label: t('general.view') }];\r\n\r\n return (
\r\n {isVisible && (\r\n )}\r\n {this.AddTeamModal(modal)}\r\n \r\n
);\r\n }\r\n}\r\n\r\nexport default connect((state) => {\r\n return {\r\n teamOverviewData: state.team.teams,\r\n addTrainerResult: state.manager.addManagerResult,\r\n allTeams: state.masterData.allTeams,\r\n profilePictureUpload: state.profilePicture.profilePictureUpload,\r\n seasons: state.masterData.seasons\r\n }\r\n},\r\n dispatch => bindActionCreators({\r\n getTeams,\r\n addTeam,\r\n fetchTeamOverview,\r\n clearTrainers,\r\n uploadPicture,\r\n removeTeams,\r\n getSeason\r\n }, dispatch))(withTranslation()(Teams));","export const formatDateOverview = (date) => {\r\n if (date == null) return null;\r\n var d = new Date(date),\r\n month = '' + (d.getMonth() + 1),\r\n day = '' + d.getDate(),\r\n year = d.getFullYear(),\r\n hour = d.getHours(),\r\n minute = d.getMinutes();\r\n\r\n if (month.length < 2)\r\n month = '0' + month;\r\n if (day.length < 2)\r\n day = '0' + day;\r\n var newDate = [day, month, year].join('-');\r\n var newHour = [hour, minute].join(':');\r\n return [newDate, newHour].join(' ');\r\n}\r\n\r\nexport const formatDateOverviewPicker = (date) => {\r\n if (date == null || date == \"\") return null;\r\n var d = new Date(date);\r\n\r\n return d;\r\n}\r\n\r\nexport const timeSince = (date) => {\r\n if (date == null) return null;\r\n var mydate = new Date(date);\r\n var seconds = Math.floor((new Date() - mydate) / 1000);\r\n\r\n var interval = seconds / 31536000;\r\n\r\n if (interval > 1) {\r\n return Math.floor(interval) + \" years ago\";\r\n }\r\n interval = seconds / 2592000;\r\n if (interval > 1) {\r\n return Math.floor(interval) + \" months ago\";\r\n }\r\n interval = seconds / 86400;\r\n if (interval > 1) {\r\n return Math.floor(interval) + \" days ago\";\r\n }\r\n interval = seconds / 3600;\r\n if (interval > 1) {\r\n return Math.floor(interval) + \" hours ago\";\r\n }\r\n interval = seconds / 60;\r\n if (interval > 1) {\r\n return Math.floor(interval) + \" minutes ago\";\r\n }\r\n return Math.floor(seconds) + \" seconds ago\";\r\n}\r\n\r\nexport const formatDateStandart = (date) => {\r\n if (date == null) return null;\r\n var d = new Date(date),\r\n month = '' + (d.getMonth() + 1),\r\n day = '' + d.getDate(),\r\n year = d.getFullYear();\r\n\r\n if (month.length < 2)\r\n month = '0' + month;\r\n\r\n if (day.length < 2)\r\n day = '0' + day;\r\n\r\n return [day, month, year].join('/');\r\n}"," import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TableRow,\r\n TableSortLabel,\r\n Button\r\n} from '@material-ui/core';\r\nimport { lighten, makeStyles } from '@material-ui/core/styles';\r\nimport { Input, Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';\r\nimport trashwhite from '../images/Trash.svg';\r\nimport roundplus from '../images/round_plus_icon.svg';\r\nimport { MdChevronRight } from \"react-icons/md\";\r\nimport { FaCaretUp } from 'react-icons/fa';\r\nimport { Link } from 'react-router-dom';\r\nimport { timeSince } from '../../helpers/dateHelper';\r\nimport { fromJS } from 'immutable';\r\nimport ProfilePic from '../SharedComponents/ProfileThumImage';\r\n\r\nfunction descendingComparator(a, b, orderBy) {\r\n if (b[orderBy] < a[orderBy]) {\r\n return -1;\r\n }\r\n if (b[orderBy] > a[orderBy]) {\r\n return 1;\r\n }\r\n return 0;\r\n}\r\n\r\nfunction getComparator(order, orderBy) {\r\n return order === 'desc'\r\n ? (a, b) => descendingComparator(a, b, orderBy)\r\n : (a, b) => -descendingComparator(a, b, orderBy);\r\n}\r\n\r\nfunction stableSort(array, comparator) {\r\n const stabilizedThis = array.map((el, index) => [el, index]);\r\n stabilizedThis.sort((a, b) => {\r\n const order = comparator(a[0], b[0]);\r\n if (order !== 0) return order;\r\n return a[1] - b[1];\r\n });\r\n return stabilizedThis.map((el) => el[0]);\r\n}\r\n\r\nfunction EnhancedTableHead(props) {\r\n const { classes, onSelectAllClick, order, orderBy, numSelected, rowCount, onRequestSort, headCells } = props;\r\n const createSortHandler = (property) => (event) => {\r\n onRequestSort(event, property);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {headCells.map((headCell) => (\r\n \r\n {headCell.label != 'View' &&\r\n < TableSortLabel\r\n active={orderBy === headCell.id}\r\n direction={orderBy === headCell.id ? order : 'asc'}\r\n onClick={createSortHandler(headCell.id)}\r\n IconComponent={FaCaretUp}\r\n >\r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n }\r\n {\r\n headCell.label == 'View' &&\r\n {headCell.label}\r\n }\r\n \r\n ))}\r\n \r\n \r\n );\r\n}\r\n\r\nEnhancedTableHead.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n numSelected: PropTypes.number.isRequired,\r\n onRequestSort: PropTypes.func.isRequired,\r\n onSelectAllClick: PropTypes.func.isRequired,\r\n order: PropTypes.oneOf(['asc', 'desc']).isRequired,\r\n orderBy: PropTypes.string.isRequired,\r\n rowCount: PropTypes.number.isRequired,\r\n};\r\n\r\nconst useToolbarStyles = makeStyles((theme) => ({\r\n root: {\r\n paddingLeft: theme.spacing(2),\r\n paddingRight: theme.spacing(1),\r\n },\r\n highlight:\r\n theme.palette.type === 'light'\r\n ? {\r\n color: theme.palette.secondary.main,\r\n backgroundColor: lighten(theme.palette.secondary.light, 0.85),\r\n }\r\n : {\r\n color: theme.palette.text.primary,\r\n backgroundColor: theme.palette.secondary.dark,\r\n },\r\n title: {\r\n flex: '1 1 100%',\r\n },\r\n}));\r\n\r\nconst EnhancedTableToolbar = (props) => {\r\n const classes = useToolbarStyles();\r\n const { numSelected, ismanageroverview, rows, seasonDropDownIsOpen, toggleItem,\r\n seasons, handleOnSelectSeason, filterManagerSeason, isActiveRemove, translation } = props;\r\n\r\n return (\r\n
\r\n
{translation('general.all') + ' ' + translation('managers.lowermanager')}\r\n
{rows.length}
\r\n
\r\n {translation('general.invited')}\r\n \r\n {translation('general.active')}\r\n
\r\n
\r\n {/* { e.preventDefault(); props.handleRemove(); }}*/}\r\n {/* data-target=\"#delete_modal\">\"\"*/}\r\n {ismanageroverview &&\r\n (\r\n \r\n {filterManagerSeason}\r\n \r\n \r\n {\r\n //\r\n //
All manager
\r\n //
\r\n }\r\n {seasons.map((row, index) => {\r\n //let current = '';\r\n //current = row.isCurrent ? () : '';\r\n return (\r\n \r\n
\r\n {row.seasonName}{/*current*/}\r\n
\r\n
\r\n )\r\n })}\r\n {/*
+ Add new season
*/}\r\n
\r\n
)\r\n }\r\n { e.preventDefault(); props.toggle(true); }} className=\"btn_adnew\" data-toggle=\"modal\" data-target=\"#trainer_modal\">\"\"\r\n
\r\n
\r\n );\r\n};\r\n\r\nEnhancedTableToolbar.propTypes = {\r\n numSelected: PropTypes.number.isRequired,\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n width: '100%',\r\n },\r\n paper: {\r\n width: '100%',\r\n marginBottom: theme.spacing(2),\r\n },\r\n table: {\r\n minWidth: 750,\r\n },\r\n visuallyHidden: {\r\n border: 0,\r\n clip: 'rect(0 0 0 0)',\r\n height: 1,\r\n margin: -1,\r\n overflow: 'hidden',\r\n padding: 0,\r\n position: 'absolute',\r\n top: 20,\r\n width: 1,\r\n },\r\n buttonInvitationDisable: {\r\n background: 'grey',\r\n border: 0,\r\n borderRadius: 10,\r\n boxShadow: '0 3px 5px 2px ',\r\n color: 'white',\r\n height: 40,\r\n padding: '0 15px',\r\n textTransform: 'none',\r\n pointerEvents: 'none',\r\n outline: 'none',\r\n },\r\n buttonInvitationEnable: {\r\n background: 'black',\r\n border: 0,\r\n borderRadius: 10,\r\n boxShadow: '0 3px 5px 2px ',\r\n color: 'white',\r\n height: 40,\r\n padding: '0 5px',\r\n textTransform: 'none',\r\n outline: 'none',\r\n }\r\n}));\r\n\r\nexport default function EnhancedTable(props) {\r\n const classes = useStyles();\r\n const [order, setOrder] = React.useState('asc');\r\n const [orderBy, setOrderBy] = React.useState('calories');\r\n const [selected, setSelected] = React.useState([]);\r\n const [page, setPage] = React.useState(0);\r\n const [dense, setDense] = React.useState(false);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(5);\r\n const handleRequestSort = (event, property) => {\r\n const isAsc = orderBy === property && order === 'asc';\r\n setOrder(isAsc ? 'desc' : 'asc');\r\n setOrderBy(property);\r\n };\r\n const { rows, ismanageroverview, handleRemoveManagers, seasonDropDownIsOpen, toggleItem, seasons,\r\n handleReinvite, filterManagerSeason, filterHandleOnSelectSeason, translation } = props;\r\n const [activeRemove, setActiveRemove] = React.useState(false);\r\n\r\n const handleSelectAllClick = (event) => {\r\n\r\n if (event.target.checked) {\r\n const newSelecteds = rows.map((n) => n.id);\r\n setSelected(newSelecteds);\r\n setActiveRemove(true);\r\n return;\r\n }\r\n setSelected([]);\r\n setActiveRemove(false);\r\n };\r\n\r\n const handleClick = (event, name) => {\r\n const selectedIndex = selected.indexOf(name);\r\n let newSelected = [];\r\n\r\n if (selectedIndex === -1) {\r\n newSelected = newSelected.concat(selected, name);\r\n } else if (selectedIndex === 0) {\r\n newSelected = newSelected.concat(selected.slice(1));\r\n } else if (selectedIndex === selected.length - 1) {\r\n newSelected = newSelected.concat(selected.slice(0, -1));\r\n } else if (selectedIndex > 0) {\r\n newSelected = newSelected.concat(\r\n selected.slice(0, selectedIndex),\r\n selected.slice(selectedIndex + 1),\r\n );\r\n }\r\n\r\n setSelected(newSelected);\r\n setActiveRemove(newSelected.length > 0 ? true : false);\r\n };\r\n\r\n const handleInvite = (e) => {\r\n handleReinvite(e.currentTarget.id);\r\n };\r\n\r\n const handleOnSelectSeason = (e) => {\r\n filterHandleOnSelectSeason(e.currentTarget.id, e.target.outerText)\r\n };\r\n\r\n const handleChangePage = (event, newPage) => {\r\n\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (event) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const isSelected = (name) => selected.indexOf(name) !== -1;\r\n\r\n const emptyRows = rowsPerPage - Math.min(rowsPerPage, rows.length - page * rowsPerPage);\r\n\r\n const handleRemove = (e) => {\r\n var users = fromJS([]);\r\n rows.map((row, index) => {\r\n if (isSelected(row.id))\r\n users = users.push(fromJS({ \"Id\": row.id }));\r\n });\r\n handleRemoveManagers(users);\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n {(props.isRendering) ? null : \r\n {stableSort(rows, getComparator(order, orderBy))\r\n .map((row, index) => {\r\n const isItemSelected = isSelected(row.id);\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
{row.name}
\r\n
\r\n
\r\n {!ismanageroverview && ({row.emailAddress})}\r\n
\r\n {!ismanageroverview &&\r\n (\r\n
\r\n \r\n
\r\n )\r\n }\r\n
{ismanageroverview ? row.dateStarted : row.invitedBy}
\r\n
\r\n
\r\n {ismanageroverview ? row.lastLogin : row.invitationDate}\r\n {!ismanageroverview && ({row.status})}\r\n {!ismanageroverview && (\r\n )}\r\n {ismanageroverview && (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n })}\r\n {\r\n //emptyRows > 0 && (\r\n //\r\n // \r\n //\r\n //)\r\n }\r\n
}\r\n \r\n
\r\n {\r\n //\r\n }\r\n
\r\n );\r\n}\r\n","import { toast } from 'react-toastify';\r\n\r\nimport { tokenKey, addManager, authUrl } from '../../constants';\r\n\r\nimport fetchWithBearerToken from '../../SharedActions/fetchWithBearerToken';\r\n\r\nexport default (entity) => async (dispatch) => {\r\n \r\n const token = sessionStorage.getItem(tokenKey);\r\n const body = JSON.stringify({\r\n \"email\": entity.email,\r\n \"role\": entity.role,\r\n \"phoneNumber\": entity.phoneNumber,\r\n \"firstName\": entity.firstName,\r\n \"lastName\": entity.lastName,\r\n \"profilePicture\": entity.profilePicture,\r\n \"photo\": entity.photo,\r\n \"teamId\":'teamId',\r\n });\r\n\r\n const result = await fetchWithBearerToken(`${authUrl}/Account/RegisterUser`, 'POST', body);\r\n\r\n if (result.ok) {\r\n var response = await result.json();\r\n if (!response.isSucceeded)\r\n toast.error(`Failed adding manager. ${response.errorMessage}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n\r\n dispatch({ type: addManager, result: new Date().toString() });\r\n }\r\n else {\r\n var response = await result.json();\r\n toast.error(`Failed adding manage. ${response.errorMessage}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n\r\n}","import { toast } from 'react-toastify';\r\nimport fetchWithBearerToken from '../../SharedActions/fetchWithBearerToken';\r\nimport { webAppUrl, getManagerOverview } from '../../constants';\r\n\r\nexport default (isActive) => async (dispatch) => {\r\n const url = `${webAppUrl}/api/manager/GetUserManagerOverviewByClubId?isactive=${isActive}`;\r\n\r\n const response = await fetchWithBearerToken(url);\r\n\r\n if (response.ok) { \r\n const managers = await response.json();\r\n dispatch({\r\n type: getManagerOverview,\r\n manager: managers\r\n });\r\n }\r\n else {\r\n toast.error(`Failed fetching data. ${response.errorMessage}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n}\r\n","import { toast } from 'react-toastify';\r\nimport { webAppUrl, tokenKey } from '../../constants';\r\nimport getManagers from '../actions/fetchManagerOverview';\r\n\r\nexport default (userManagers,userId,isManagerOverview,t) => async (dispatch) => {\r\n let url = `${webAppUrl}/api/Manager/RemoveManagers?role=Manager`;\r\n\r\n let response = await fetch(url, {\r\n method: `POST`,\r\n headers: {\r\n 'Authorization': `Bearer ${sessionStorage.getItem(tokenKey)}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n , body: JSON.stringify(userManagers)\r\n });\r\n \r\n if (response.ok) {\r\n toast.success(t('messagessuccess.successdeletemanager'), {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n dispatch(getManagers(isManagerOverview));\r\n }\r\n else {\r\n toast.success(`${t('messagesfailed.failedremove')} ${response.errorMessage}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n}\r\n","import { toast } from 'react-toastify';\r\nimport { authUrl } from '../../constants';\r\nimport fetchWithBearerToken from '../../SharedActions/fetchWithBearerToken';\r\nimport getManagers from '../../Manager/actions/fetchManagerOverview';\r\n\r\nexport default (userId) => async (dispatch) => {\r\n\r\n const body = JSON.stringify({\r\n \"id\": userId,\r\n \"role\": \"Manager\"\r\n });\r\n\r\n const result = await fetchWithBearerToken(`${authUrl}/Account/ReInviteUser`, 'POST', body);\r\n if (result.ok) {\r\n toast.success(\"The invitation is sent\", {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n dispatch(getManagers(false));\r\n }\r\n else {\r\n toast.error(`Failed Re-Invite Trainer : ${response.errorMessage}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n};","import { toast } from 'react-toastify';\r\nimport fetchWithBearerToken from '../../SharedActions/fetchWithBearerToken';\r\nimport { webAppUrl, getManagerOverview } from '../../constants';\r\n\r\nexport default (seasonId) => async (dispatch) => {\r\n const url = `${webAppUrl}/api/manager/GetUserManagerOverviewByFilterSeasonId?SeasonId=${seasonId}`;\r\n\r\n const response = await fetchWithBearerToken(url);\r\n\r\n if (response.ok) {\r\n const managers = await response.json();\r\n dispatch({\r\n type: getManagerOverview,\r\n manager: managers\r\n });\r\n }\r\n else {\r\n toast.error(`Failed fetching data. ${response.errorMessage}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n}\r\n","import { fromJS } from 'immutable';\r\nimport '../bootstrap_css/style.css';\r\nimport { connect } from 'react-redux';\r\nimport React, { Component } from 'react';\r\nimport MaterialTable from './MaterialTable';\r\nimport { Modal } from 'reactstrap';\r\nimport imageUpload from '../images/upload.jpg';\r\nimport addManager from '../../store/Manager/InvitedManager/addManager';\r\nimport getManagers from '../../store/Manager/actions/fetchManagerOverview';\r\nimport getSeason from '../../store/MasterData/getSeason';\r\nimport { bindActionCreators } from 'redux';\r\nimport TextInputField from '../SharedComponents/TextInputField';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { userId } from '../../store/constants';\r\nimport { toast } from 'react-toastify';\r\nimport removeManagers from '../../store/Manager/actions/removeManagers';\r\nimport uploadPicture from '../../store/profilePicture/uploadPicture';\r\nimport ModalDelete from '../SharedComponents/ModalDelete';\r\nimport reInviteManager from '../../store/Manager/actions/reInviteManager';\r\nimport getActiveManagersBySeason from '../../store/Manager/actions/fetchActiveManagersBySeason';\r\n\r\nclass Manager extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isRendering: true,\r\n seasonDropdownIsOpen: false,\r\n season: [\r\n {\r\n id: 0,\r\n title: 'Season 1',\r\n selected: false,\r\n key: 'season'\r\n },\r\n {\r\n id: 1,\r\n title: 'Season 2',\r\n selected: false,\r\n key: 'season'\r\n }],\r\n modal: false,\r\n deleteManagerRow: null,\r\n deletemodal: false,\r\n fields: fromJS({\r\n firstName: \"\",\r\n lastName: \"\",\r\n email: \"\",\r\n role: \"Manager\",\r\n phoneNumber: \"\",\r\n profilePicture: \"file.png\",\r\n imgTemp: null,\r\n photoDate: null,\r\n photo: null\r\n }),\r\n manageroverview: true,\r\n filtermanager: '',\r\n filteredSeasonId: '',\r\n errors: fromJS({}),\r\n isinitload: true,\r\n isVisible: false,\r\n };\r\n\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.uploadFileChange = this.uploadFileChange.bind(this);\r\n this.saveUploadedPhoto = this.saveUploadedPhoto.bind(this);\r\n this.toggleItem = this.toggleItem.bind(this);\r\n this.hideComponent = this.hideComponent.bind(this);\r\n }\r\n\r\n hideComponent() {\r\n this.setState({ isVisible: true });\r\n }\r\n\r\n toggle = (addModal) => {\r\n\r\n const { modal, deletemodal, fields } = this.state;\r\n\r\n if (addModal) {\r\n\r\n\r\n let newFieldsState = fields.set('firstName', '');\r\n newFieldsState = newFieldsState.set('lastName', '');\r\n newFieldsState = newFieldsState.set('email', '');\r\n newFieldsState = newFieldsState.set('phoneNumber', '');\r\n newFieldsState = newFieldsState.set('imgTemp', null);\r\n newFieldsState = newFieldsState.set('photoDate', null);\r\n newFieldsState = newFieldsState.set('photo', null);\r\n\r\n this.setState({\r\n modal: !modal,\r\n fields: newFieldsState,\r\n errors: fromJS({})\r\n });\r\n }\r\n else {\r\n\r\n this.setState({\r\n deletemodal: !deletemodal\r\n });\r\n }\r\n\r\n }\r\n\r\n manageroverviewstate = (e) => {\r\n const { manageroverview, filteredSeasonId } = this.state;\r\n this.setState({\r\n manageroverview: !manageroverview,\r\n isRendering: true\r\n });\r\n if (!manageroverview)\r\n this.props.getActiveManagersBySeason(filteredSeasonId)\r\n .then(t => this.hideLoading())\r\n else\r\n this.props.getManagers(!manageroverview)\r\n .then(t => this.hideLoading())\r\n }\r\n\r\n handleChange(field, value) {\r\n\r\n this.setState({\r\n fields: this.state.fields.set(field, value),\r\n errors: this.state.errors.delete(field),\r\n });\r\n }\r\n\r\n handleSubmit() {\r\n const { fields, modal, manageroverview } = this.state;\r\n let errorList = fromJS({});\r\n const requiredField = ['firstName', 'lastName', 'email']\r\n const allField = ['firstName', 'lastName', 'email', 'phoneNumber'];\r\n\r\n const simpleEmailRegexp = new RegExp('[^@]+@[^\\.]+\\..+');\r\n\r\n requiredField.map((x) => {\r\n if (fields.get(x) == undefined || fields.get(x) == '') errorList = errorList.set(x, true)\r\n });\r\n\r\n allField.map((x) => {\r\n if (fields.get(x).length > 50) errorList = errorList.set(x, true)\r\n });\r\n\r\n if (!simpleEmailRegexp.test(fields.get('email'))) {\r\n errorList = errorList.set('email', true);\r\n }\r\n\r\n if (errorList.size > 0) {\r\n this.setState({\r\n errors: errorList\r\n });\r\n\r\n return;\r\n }\r\n this.props.addManager(fields.toJS())\r\n .then(t => this.hideLoading());\r\n\r\n this.setState({\r\n modal: !modal\r\n });\r\n }\r\n\r\n closeModal = (addModal) => {\r\n const { modal, deletemodal } = this.state;\r\n if (addModal) {\r\n this.setState({\r\n modal: !modal\r\n });\r\n }\r\n else {\r\n this.setState({\r\n deletemodal: !deletemodal\r\n });\r\n }\r\n }\r\n\r\n uploadFileChange(e) {\r\n const files = e.target.files;\r\n const { t } = this.props;\r\n\r\n if (files === undefined) return;\r\n\r\n let formData = new FormData();\r\n let fileType = '';\r\n\r\n if (files[0] !== null) {\r\n fileType = files[0].type;\r\n }\r\n\r\n if (files[0].size > '6000000') {\r\n toast.success(\"file size limit\", {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n return;\r\n }\r\n\r\n if (fileType !== 'image/png' && fileType !== 'image/jpeg' && fileType !== 'image/jpg') {\r\n\r\n toast.success(\"format not allowed\", {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n return;\r\n }\r\n\r\n formData.append('file', files[0]);\r\n\r\n const dateTag = new Date().toString().replace('+', ' ');\r\n\r\n let newFields = this.state.fields.set('imgTemp', URL.createObjectURL(files[0]));\r\n\r\n newFields = newFields.set('photoDate', dateTag);\r\n\r\n this.setState({\r\n fields: newFields\r\n });\r\n\r\n this.props.uploadPicture(formData, dateTag, null, t)\r\n .then(t => this.hideLoading());\r\n }\r\n\r\n ModalExample = (modal) => {\r\n\r\n const { fields, errors } = this.state;\r\n const { t } = this.props;\r\n const selectedPict = fields.get('imgTemp') !== null ? fields.get('imgTemp') : imageUpload;\r\n\r\n return (\r\n { this.toggle(true) }} className=\"trainermodal\">\r\n
\r\n

{t('general.invite') + ' ' + t('managers.lowermanagersingle')}

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

{t('general.photonote')}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{t('general.role')}\r\n \r\n
{t('general.firstname')}\r\n this.handleChange(field, value)}\r\n hasError={errors.has('firstName')} />\r\n
{t('general.lastname')}\r\n this.handleChange(field, value)}\r\n hasError={errors.has('lastName')} />\r\n
{t('general.e-mail')} this.handleChange(field, value)}\r\n hasError={errors.has('email')} />
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n componentDidMount() {\r\n const { manageroverview } = this.state;\r\n //this.props.getManagers(manageroverview);\r\n this.props.getSeason()\r\n .then(t => {\r\n this.hideLoading();\r\n this.hideComponent();\r\n });\r\n\r\n this.setState({ isRendering: true }, () => {\r\n this.setState({ isRendering: false });\r\n });\r\n }\r\n\r\n handleRemoveManagers = (managers) => {\r\n const { deletemodal } = this.state;\r\n const { t } = this.props;\r\n var isValidItems = true;\r\n if (managers.size == 0) {\r\n toast.success(t('validationerror.failednoselectedmgr'), {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n else {\r\n managers.map((row, index) => {\r\n var obj = row.toJS();\r\n if (obj.Id == sessionStorage.getItem(userId)) {\r\n toast.success(t('validationerror.failedcontainsmgr'), {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n isValidItems = false;\r\n return;\r\n }\r\n });\r\n if (isValidItems)\r\n this.setState({ deletemodal: !deletemodal, deleteManagerRow: managers });\r\n }\r\n }\r\n\r\n okRemove = () => {\r\n const { deleteManagerRow, manageroverview, deletemodal } = this.state;\r\n const { t } = this.props;\r\n this.props.removeManagers(deleteManagerRow.toJS(), sessionStorage.getItem(userId), manageroverview, t)\r\n .then(t => this.hideLoading());\r\n\r\n this.setState({\r\n deletemodal: !deletemodal,\r\n deleteManagerRow: null\r\n });\r\n }\r\n\r\n saveUploadedPhoto(e) {\r\n\r\n this.setState({\r\n fields: this.state.fields.set('photo', e.id),\r\n errors: this.state.errors.delete('photo')\r\n });\r\n }\r\n\r\n toggleItem = () => {\r\n const { seasonDropdownIsOpen } = this.state;\r\n this.setState({\r\n seasonDropdownIsOpen: !seasonDropdownIsOpen\r\n });\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const { addManagerResult, profilePictureUpload, seasons } = this.props;\r\n const { fields, manageroverview, seasonDropdownIsOpen, isinitload } = this.state;\r\n\r\n if (profilePictureUpload && profilePictureUpload.dateTimeTag == fields.get('photoDate')) {\r\n if (prevProps.profilePictureUpload && profilePictureUpload.id !== prevProps.profilePictureUpload.id)\r\n this.saveUploadedPhoto(profilePictureUpload)\r\n .then(t => this.hideLoading());\r\n\r\n //if prev profilepic is undefined\r\n if (profilePictureUpload && prevProps.profilePictureUpload === undefined)\r\n this.saveUploadedPhoto(profilePictureUpload)\r\n .then(t => this.hideLoading());\r\n }\r\n\r\n if (addManagerResult && prevProps.addManagerResult !== addManagerResult) {\r\n this.props.getManagers(manageroverview)\r\n .then(t => this.hideLoading());\r\n }\r\n\r\n var initfilteredSeason = '';\r\n var initfilteredSeasonId = '';\r\n if (isinitload && seasons.length > 0) {\r\n seasons.map((row, index) => {\r\n if (row.isCurrent) {\r\n initfilteredSeason = row.seasonName;\r\n initfilteredSeasonId = row.id;\r\n this.props.getActiveManagersBySeason(row.id)\r\n .then(t => this.hideLoading());\r\n }\r\n });\r\n this.setState({\r\n isinitload: false,\r\n filtermanager: initfilteredSeason,\r\n filteredSeasonId: initfilteredSeasonId\r\n });\r\n }\r\n\r\n if (JSON.stringify(this.props) !== JSON.stringify(prevProps))\r\n this.setState({ isRendering: false });\r\n }\r\n\r\n handleReinvite = (userId) => {\r\n if (userId)\r\n this.props.reInviteManager(userId)\r\n .then(t => this.hideLoading());\r\n\r\n }\r\n\r\n handleOnSelectSeason = (seasonId, seasonName) => {\r\n const { manageroverview } = this.state;\r\n if (seasonId)\r\n this.props.getActiveManagersBySeason(seasonId)\r\n .then(t => this.hideLoading());\r\n else\r\n this.props.getManagers(manageroverview)\r\n .then(t => this.hideLoading());\r\n this.setState({\r\n filtermanager: seasonName,\r\n filteredSeasonId: seasonId\r\n });\r\n }\r\n\r\n hideLoading() {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n }\r\n\r\n render() {\r\n const { modal, manageroverview, deletemodal, seasonDropdownIsOpen, filtermanager, isVisible } = this.state;\r\n const { managerOverviewData, seasons, t } = this.props;\r\n const headCellsManagerOverview = [\r\n { id: 'name', numeric: false, disablePadding: true, label: t('managers.title') },\r\n { id: 'datestarted', numeric: false, disablePadding: false, label: t('general.activesince') },\r\n { id: 'lastlogin', numeric: true, disablePadding: false, label: t('general.lastlogin') },\r\n { id: 'action', numeric: true, disablePadding: false, align: 'center', label: t('general.view') }];\r\n\r\n const headCellsManagerInvited = [\r\n { id: 'name', numeric: false, disablePadding: true, label: t('managers.title') },\r\n { id: 'emailAddress', numeric: false, disablePadding: true, label: t('general.e-mail') },\r\n { id: 'invitedby', numeric: true, disablePadding: false, label: t('general.invitedby') },\r\n { id: 'invitationDate', numeric: true, disablePadding: false, label: t('general.invitedate') },\r\n { id: 'status', numeric: true, disablePadding: false, label: t('general.status') },\r\n { id: 'action', numeric: true, disablePadding: false, align: 'center', label: t('general.action') }];\r\n\r\n return (
\r\n {isVisible && (\r\n )}\r\n {this.ModalExample(modal)}\r\n \r\n
);\r\n }\r\n}\r\n\r\nexport default connect((state) => {\r\n return {\r\n managerOverviewData: state.manager.managers,\r\n addManagerResult: state.manager.addManagerResult,\r\n profilePictureUpload: state.profilePicture.profilePictureUpload,\r\n seasons: state.masterData.seasons\r\n }\r\n},\r\n dispatch => bindActionCreators({\r\n addManager,\r\n getManagers,\r\n removeManagers,\r\n uploadPicture,\r\n getSeason,\r\n reInviteManager,\r\n getActiveManagersBySeason\r\n }, dispatch))(withTranslation()(Manager));","import packageJson from '../../package.json';\r\nimport React, { Component } from 'react';\r\n\r\nclass Version extends Component {\r\n render() {\r\n return (\r\n \r\n Proseason:
\r\n Version: {packageJson.version}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default (Version);","import { toast } from 'react-toastify';\r\nimport { tokenKey, updateLoggedInUser, userId, userRole, userEmail, authUrl } from '../../constants';\r\n\r\nexport default (loginData) => async (dispatch) => {\r\n const loading = document.querySelector('.loading');\r\n var url = `${authUrl}/Account/Login`;\r\n var reqBody = {\r\n 'userName': loginData.email,\r\n 'password': loginData.password,\r\n 'rememberLogin': true\r\n }\r\n\r\n try {\r\n const response = await fetch(url, {\r\n method: 'POST',\r\n mode: 'cors',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify(reqBody)\r\n });\r\n const result = await response.json();\r\n\r\n if (!response.ok || result.errorMessage !== null) {\r\n toast.error(`login or password incorrect`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n sessionStorage.removeItem(tokenKey);\r\n sessionStorage.removeItem(userId);\r\n sessionStorage.removeItem(userEmail);\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n } else {\r\n //toast.success(\"Login Succeeded\", {\r\n // position: toast.POSITION.TOP_RIGHT\r\n //});\r\n sessionStorage.setItem(tokenKey, result.accessToken);\r\n sessionStorage.setItem(userId, result.id);\r\n sessionStorage.setItem(userRole, result.role);\r\n dispatch({ type: updateLoggedInUser, loggedInUser: result });\r\n }\r\n } catch (e) {\r\n console.log(e);\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n }\r\n};","import React, { Component, useState } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport loginUserAction from '../../store/users/actions/loginAction';\r\nimport { loggedInUserSelector } from '../../store/users/selectors/authSelector';\r\nimport LoginLogo from './Images/logo.svg';\r\nimport LoginBanner from './Images/login_banner.jpg';\r\nimport './Login.css';\r\nimport { Redirect } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Link } from 'react-router-dom';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faEye, faEyeSlash } from '@fortawesome/free-solid-svg-icons'\r\n\r\nconst Login = (props) => {\r\n const [email, setEmail] = useState('');\r\n const [passDisplayed, setPassDisplay] = useState(false);\r\n const [password, setPassword] = useState('');\r\n const { userLoggedIn, loginUser } = props;\r\n const handleEmailChange = e => {\r\n setEmail(e.target.value);\r\n }\r\n const handlePasswordChange = e => {\r\n setPassword(e.target.value);\r\n }\r\n const handleSubmit = () => {\r\n const entity = { email, password };\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"visible\";\r\n loginUser(entity);\r\n }\r\n const togglePass = () => {\r\n setPassDisplay(!passDisplayed);\r\n }\r\n const keyPressed = (event) => {\r\n if (event.key === \"Enter\") {\r\n handleSubmit()\r\n }\r\n } \r\n const { t } = useTranslation();\r\n\r\n if (userLoggedIn.accessToken) {\r\n return ;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

{t('login.welcome')}

\r\n

{t('login.fillInDetails')}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n {t('login.forgotPassword')}\r\n
\r\n
{t('login.questionnew')} {t('login.joinnow')}
\r\n
\r\n
\r\n
\r\n
© 2021 Pro Season b.v. All Rights Reserved
\r\n
\r\n );\r\n}\r\n\r\nexport default connect(\r\n (state) => {\r\n return {\r\n userLoggedIn: loggedInUserSelector(state),\r\n }\r\n },\r\n dispatch => bindActionCreators({\r\n loginUser: loginUserAction\r\n }, dispatch),\r\n)(Login);\r\n","import { toast } from 'react-toastify';\r\nimport { authUrl, resetPassword } from '../../constants'\r\nexport default (entity) => async (dispatch) => {\r\n const url = `${authUrl}/Account/ResetPassword?email=${encodeURIComponent(entity.email)}`; \r\n const response = await fetch(url, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n });\r\n\r\n if (response.ok) {\r\n toast.success(\"Reset password success\", {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n dispatch({ type: resetPassword, result: true });\r\n } \r\n};","import React, { Component, useState } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport LoginLogo from '../../images/logo.svg';\r\nimport './ForgotPassword.css';\r\nimport { useTranslation } from 'react-i18next';\r\nimport forgotPasswordAction from '../../../../src/store/users/actions/forgotPassword';\r\nimport checkList from '../../../components/images/Checklist_Small.png';\r\nimport { toast } from 'react-toastify';\r\n\r\nconst ForgotPassword = (props) => {\r\n const { forgotPassword, resetstatus } = props;\r\n const [email, setEmail] = useState('');\r\n const [emailHide, setEmailHide] = useState('');\r\n const { t } = useTranslation();\r\n\r\n const handleEmailChange = e => {\r\n setEmail(e.target.value);\r\n var a = e.target.value.split(\"@\");\r\n var b = a[0];\r\n var newstr = \"\";\r\n for (var i in b) {\r\n if (i > 0 && i < b.length - 1) newstr += \"*\";\r\n else newstr += b[i];\r\n }\r\n setEmailHide(newstr + \"@\" + a[1]);\r\n }\r\n\r\n const handleSubmit = (e) => {\r\n const entity = { email };\r\n if (email == '') {\r\n alert('no e-mail set');\r\n return\r\n }\r\n\r\n if (validEmail(email)) {\r\n forgotPassword(entity);\r\n }\r\n else {\r\n toast.success(\"The email-address is not valid\", {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n e.preventDefault();\r\n }\r\n\r\n const validEmail = (stringEmail) => {\r\n return /^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/.test(stringEmail);\r\n }\r\n\r\n const handleBackToLogin = (e) => {\r\n props.history.push('/login')\r\n e.preventDefault();\r\n }\r\n\r\n return (\r\n \r\n {!resetstatus &&\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

{t('forgotpassword.forgotPasswordTitle')}

\r\n

{t('forgotpassword.forgotPasswordDesc')}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n {resetstatus &&\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n

{t('forgotpassworddone.title')}

\r\n

{t('forgotpassworddone.done').replace(\"{0}\", emailHide)}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n \r\n );\r\n}\r\n\r\nexport default connect(\r\n (state) => {\r\n return {\r\n resetstatus: state.users.resetPasswordResult,\r\n }\r\n },\r\n dispatch => bindActionCreators({\r\n forgotPassword: forgotPasswordAction\r\n }, dispatch),\r\n)(ForgotPassword);\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\n\r\nconst PageNotFound = props => (\r\n
\r\n This page does not exist.\r\n
\r\n);\r\n\r\nexport default connect()(PageNotFound);\r\n","import * as URI from 'urijs';\r\n\r\nexport const routingStateSelector = state => state.routing;\r\nexport const activationStateSelector = state => state.users.userActivated;\r\nexport const validTokenStateSelector = state => state.users.tokenValid;\r\n\r\nexport const routingLocationSelector = state => {\r\n const routingLocation = routingStateSelector(state).location;\r\n const url = new URI(routingLocation.search);\r\n var query = url.query(true);\r\n return {\r\n query,\r\n ...routingLocation\r\n }\r\n}","import { toast } from 'react-toastify';\r\nimport { tokenKey, updateLoggedInUser, userId, userRole, userEmail, authUrl, updatePasswordToken } from '../../constants';\r\nimport { encryptPassword } from '../../../helpers/encryptionHelper';\r\nimport fetchWithBearerToken from '../../SharedActions/fetchWithBearerToken';\r\n\r\nexport default (passwordData) => async (dispatch) =>{\r\n\r\n let url = `${authUrl}/Account/`;//'SetupResetPassword ;\r\n if (passwordData.reset) url = `${url}SetupResetPassword`;\r\n if (passwordData.activate) url = `${url}SetupInitialPassword`;\r\n\r\n var reqBody = {\r\n 'password': passwordData.password,\r\n 'token':passwordData.token\r\n }\r\n\r\n const response = await fetchWithBearerToken(url, 'POST', JSON.stringify(reqBody));\r\n\r\n if (response.ok) {\r\n var result = await response.json();\r\n\r\n toast.success(\"Setup Password Succeeded\", {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n\r\n if (passwordData.activate && !result.item2.includes(\"Manager\"))\r\n window.location.href = \"/congratulation\";\r\n\r\n if (passwordData.reset && !result.item2.includes(\"Manager\"))\r\n window.location.href = \"/passwordchanged\";\r\n\r\n dispatch({\r\n type: updatePasswordToken,\r\n resetPassword: true\r\n });\r\n }\r\n else {\r\n toast.error(`setup password failed.${result.errorMessage}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { Redirect } from 'react-router-dom';\r\nimport './ChangePassword.css';\r\nimport LoginLogo from '../../images/logo.svg';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { routingLocationSelector } from '../../../store/general/selectors/generalSelector';\r\nimport { resetPasswordSelector } from '../../../store/users/selectors/authSelector';\r\nimport changePasswordAction from '../../../store/users/actions/changePasswordAction';\r\nimport { bindActionCreators } from 'redux';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faEye, faEyeSlash } from '@fortawesome/free-solid-svg-icons'\r\nimport { toast } from 'react-toastify';\r\n\r\nclass ChangePassword extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n password: \"\",\r\n repeatPassword: \"\",\r\n isActivation: false,\r\n passDisplay: false,\r\n repeatDisplay: false,\r\n passwordValidationText: \"\",\r\n passwordValidationLength: 'Have at least 6 characters',\r\n passwordValidationSpecial: 'Include special characters',\r\n };\r\n this.handleRepeatPasswordChange = this.handleRepeatPasswordChange.bind(this);\r\n this.checkPasswordValidation = this.checkPasswordValidation.bind(this);\r\n }\r\n\r\n handleRepeatPasswordChange(e) {\r\n this.setState({\r\n repeatPassword: e.target.value\r\n });\r\n }\r\n\r\n handleSubmit = () => {\r\n const { password, repeatPassword, passwordValidationLength, passwordValidationSpecial, passwordValidationLetter } = this.state;\r\n\r\n const { routingLocation, resetPassword } = this.props;\r\n\r\n if (password !== repeatPassword) {\r\n toast.success(\"The passwords do not match.\", {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n return;\r\n }\r\n\r\n const { activatetoken, recoverytoken } = routingLocation.query;\r\n\r\n if (activatetoken)\r\n \r\n this.props.changePasswordAction({ password, token: activatetoken, activate: true })\r\n .then(t => {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n });\r\n\r\n if (recoverytoken)\r\n this.props.changePasswordAction({ password, token: recoverytoken, reset: true })\r\n .then(t => {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n const { routingLocation } = this.props;\r\n\r\n }\r\n\r\n checkPasswordValidation = (e) => {\r\n const value = e.target.value;\r\n let passwordLength = '';\r\n let passwordSpecial = '';\r\n if (!value.match('^.{8,15}$')) {\r\n passwordLength = 'Have at least 8 characters';\r\n }\r\n if (!value.match('^(?=.*[!@#$%^&*(),.?\":{}|<>])|(?=.*[0-9])')) {\r\n passwordSpecial = 'Include special characters';\r\n }\r\n this.setState({\r\n passwordValidationLength: passwordLength,\r\n passwordValidationSpecial: passwordSpecial,\r\n password: value\r\n });\r\n }\r\n\r\n togglePass = () => {\r\n const { passDisplay } = this.state;\r\n this.setState({\r\n passDisplay: !passDisplay\r\n });\r\n }\r\n\r\n togglePassRepeat = () => {\r\n const { repeatDisplay } = this.state;\r\n this.setState({\r\n repeatDisplay: !repeatDisplay\r\n });\r\n }\r\n\r\n render() {\r\n const { password, repeatPassword, isActivation, repeatDisplay, passDisplay, passwordValidationLength, passwordValidationSpecial } = this.state;\r\n const { routingLocation, t, resetPassword } = this.props;\r\n const { activatetoken, recoverytoken } = routingLocation.query;\r\n const disableButton = passwordValidationLength == '' && passwordValidationSpecial == '' && repeatPassword == password;\r\n if (resetPassword)\r\n return ();\r\n\r\n if (activatetoken || recoverytoken)\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

{t('tokenactivation.passwordreset')}

\r\n
\r\n \r\n
    \r\n {passwordValidationLength !== '' ?\r\n (
  • {t('changepassword.criteria1')}
  • ) :\r\n (
  • {t('changepassword.criteria1')}
  • )}\r\n {passwordValidationSpecial !== '' ?\r\n (
  • {passwordValidationSpecial}
  • ) :\r\n (
  • {t('changepassword.criteria2')}
  • )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
);\r\n return ();\r\n }\r\n}\r\n\r\nexport default connect((state) => {\r\n return {\r\n routingLocation: routingLocationSelector(state),\r\n resetPassword: resetPasswordSelector(state)\r\n }\r\n}, dispatch => bindActionCreators({ changePasswordAction }, dispatch))(withTranslation()(ChangePassword));","import { updateUserActivationState, authUrl } from '../../constants';\r\n\r\nexport default (token, isrecoverypassword, email) => async (dispatch) => {\r\n var url;\r\n if (isrecoverypassword)\r\n url = `${authUrl}/Account/ResetPasswordTokenValidation?email=${encodeURIComponent(email)}&resetactivatetoken=${token}`\r\n else\r\n url = `${authUrl}/Account/TokenConfirmation?email=${encodeURIComponent(email)}&activatetoken=${token}`\r\n\r\n const response = await fetch(url);\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"visible\";\r\n\r\n if (response.ok) {\r\n let responseJson = await response.json();\r\n if (typeof responseJson === 'boolean') {\r\n responseJson = {\r\n invitationValid : responseJson\r\n };\r\n }\r\n dispatch({ type: updateUserActivationState, userActivated: true, tokenValid: responseJson.invitationValid });\r\n if (responseJson.invitationValid) {\r\n setTimeout(() => {\r\n if (isrecoverypassword) {\r\n window.location.href = `/changepassword?recoverytoken=` + `${token}`;\r\n return;\r\n }\r\n \r\n if (responseJson.checkoutUrl) {\r\n window.location.href = responseJson.checkoutUrl;\r\n return;\r\n }\r\n \r\n window.location.href = `/changepassword?activatetoken=` + `${token}`;\r\n\r\n }, 1000);\r\n }\r\n loading.style.visibility = \"hidden\";\r\n }\r\n else {\r\n dispatch({ type: updateUserActivationState, userActivated: false, tokenValid: false });\r\n loading.style.visibility = \"hidden\";\r\n }\r\n};","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport {\r\n routingLocationSelector,\r\n activationStateSelector,\r\n validTokenStateSelector\r\n} from '../../../src/store/general/selectors/generalSelector';\r\nimport fetchTokenValidationAction from '../../../src/store/users/actions/fetchTokenValidation';\r\nimport LoginLogo from '../images/logo.svg';\r\nimport { Link } from 'react-router-dom';\r\nimport { withTranslation } from 'react-i18next';\r\nimport Source from '../images/loading.gif';\r\n\r\nclass TokenConfirmation extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isRecoveryPassword: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const { routingLocation } = this.props;\r\n\r\n if (routingLocation && routingLocation.query) {\r\n this.setState.isRecoveryPassword = this.props.routingLocation.query.resetactivatetoken ? true : false;\r\n const token = this.setState.isRecoveryPassword ? routingLocation.query['resetactivatetoken'] : routingLocation.query['activatetoken'];\r\n const email = routingLocation.query['email'];\r\n if (token) {\r\n this.props.fetchTokenValidation(token, this.setState.isRecoveryPassword, email);\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n const { activationState, validTokenState, t } = this.props;\r\n if (activationState === false) {\r\n return (\r\n \r\n {renderActivationFailed(this.props, t)}\r\n \r\n );\r\n }\r\n else if (activationState === true && validTokenState === true) {\r\n return (\r\n \r\n {renderActivationOnprogress(this.props, t)}\r\n \r\n );\r\n }\r\n else if (activationState === true && validTokenState === false) {\r\n return (\r\n \r\n {renderActivationTokenNotValid(this.props, t)}\r\n \r\n );\r\n }\r\n else {\r\n return (\r\n \r\n {renderActivationOnprogress(this.props, t)}\r\n \r\n );\r\n }\r\n }\r\n}\r\n\r\nfunction renderActivationOnprogress(props, t) {\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n );\r\n}\r\n\r\nfunction renderResetPasswordTokenValidationSuccess(props, t) {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

{t('tokenvalidation.validatednl')}

\r\n

{t('tokenvalidation.validateden')}

\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nfunction renderActivationFailed(props, t) {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

{t('tokenvalidation.somethingwrongnl')}

\r\n

{t('tokenvalidation.somethingwrongen')}

\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nfunction renderActivationTokenNotValid(props, t) {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

De activatielink is niet meer geldig.

\r\n

Te laat met activeren? Geen probleem, vraag je clubmanager om opnieuw een\r\nuitnodiging te versturen en je kunt binnen no-time aan de slag!

\r\n
\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nexport default connect(\r\n (state) => {\r\n return {\r\n routingLocation: routingLocationSelector(state),\r\n activationState: activationStateSelector(state),\r\n validTokenState: validTokenStateSelector(state),\r\n }\r\n },\r\n dispatch => bindActionCreators({\r\n fetchTokenValidation: fetchTokenValidationAction,\r\n }, dispatch)\r\n)(withTranslation()(TokenConfirmation));","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Link } from 'react-router-dom';\r\nimport {\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TableRow,\r\n TableSortLabel,\r\n Button\r\n} from '@material-ui/core';\r\nimport { MdChevronRight } from \"react-icons/md\";\r\nimport { FaCaretUp } from 'react-icons/fa';\r\nimport { lighten, makeStyles } from '@material-ui/core/styles';\r\nimport { Input, Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';\r\nimport trashwhite from '../images/Trash.svg';\r\nimport roundplus from '../images/round_plus_icon.svg';\r\nimport ProfilePic from '../SharedComponents/ProfileThumImage';\r\nimport { fromJS } from 'immutable';\r\n\r\nfunction createData(id, name, invitedby, invitationdate, status) {\r\n return { id, name, invitedby, invitationdate, status };\r\n}\r\n\r\nfunction descendingComparator(a, b, orderBy) {\r\n if (b[orderBy] < a[orderBy]) {\r\n return -1;\r\n }\r\n if (b[orderBy] > a[orderBy]) {\r\n return 1;\r\n }\r\n return 0;\r\n}\r\n\r\nfunction getComparator(order, orderBy) {\r\n return order === 'desc'\r\n ? (a, b) => descendingComparator(a, b, orderBy)\r\n : (a, b) => -descendingComparator(a, b, orderBy);\r\n}\r\n\r\nfunction stableSort(array, comparator) {\r\n const stabilizedThis = array.map((el, index) => [el, index]);\r\n stabilizedThis.sort((a, b) => {\r\n const order = comparator(a[0], b[0]);\r\n if (order !== 0) return order;\r\n return a[1] - b[1];\r\n });\r\n return stabilizedThis.map((el) => el[0]);\r\n}\r\n\r\nfunction EnhancedTableHead(props) {\r\n const { classes, onSelectAllClick, order, orderBy, numSelected, rowCount, onRequestSort, headCells, isPlayerOverview } = props;\r\n const createSortHandler = (property) => (event) => {\r\n onRequestSort(event, property);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {headCells.map((headCell) => (\r\n \r\n\r\n {headCell.label != 'View' &&\r\n < TableSortLabel\r\n active={orderBy === headCell.id}\r\n direction={orderBy === headCell.id ? order : 'asc'}\r\n onClick={createSortHandler(headCell.id)}\r\n IconComponent={FaCaretUp}\r\n >\r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n }\r\n {\r\n headCell.label == 'View' &&\r\n {headCell.label}\r\n }\r\n \r\n ))}\r\n \r\n \r\n );\r\n}\r\n\r\nEnhancedTableHead.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n numSelected: PropTypes.number.isRequired,\r\n onRequestSort: PropTypes.func.isRequired,\r\n onSelectAllClick: PropTypes.func.isRequired,\r\n order: PropTypes.oneOf(['asc', 'desc']).isRequired,\r\n orderBy: PropTypes.string.isRequired,\r\n rowCount: PropTypes.number.isRequired,\r\n};\r\n\r\nconst useToolbarStyles = makeStyles((theme) => ({\r\n root: {\r\n paddingLeft: theme.spacing(2),\r\n paddingRight: theme.spacing(1),\r\n },\r\n highlight:\r\n theme.palette.type === 'light'\r\n ? {\r\n color: theme.palette.secondary.main,\r\n backgroundColor: lighten(theme.palette.secondary.light, 0.85),\r\n }\r\n : {\r\n color: theme.palette.text.primary,\r\n backgroundColor: theme.palette.secondary.dark,\r\n },\r\n title: {\r\n flex: '1 1 100%',\r\n },\r\n}));\r\n\r\nconst EnhancedTableToolbar = (props) => {\r\n const classes = useToolbarStyles();\r\n const { numSelected, rows, isPlayerOverview, seasonDropDownIsOpen, toggleItem, seasons, handleOnSelectSeason, filteredSeason, isActiveRemove, t } = props;\r\n let totalCount = 0;\r\n if (rows)\r\n totalCount = rows.length;\r\n\r\n return (\r\n
\r\n
{t('general.all') + ' ' + t('players.lowerplayers')}
{totalCount}
\r\n
\r\n {t('general.invited')}\r\n \r\n {t('general.active')}\r\n
\r\n
\r\n {/* { e.preventDefault(); props.handleRemove(); }}*/}\r\n {/* data-target=\"#delete_modal\">\"\"*/}\r\n
\r\n {isPlayerOverview && (\r\n \r\n \r\n {filteredSeason}\r\n \r\n \r\n {\r\n seasons.map((row, index) => {\r\n return (\r\n
\r\n {row.seasonName}{/*current*/}\r\n
\r\n
)\r\n })\r\n }\r\n
\r\n
)}\r\n
\r\n { e.preventDefault(); props.toggle(); }} className=\"btn_adnew\" data-toggle=\"modal\" data-target=\"#trainer_modal\">\"\"\r\n
\r\n
\r\n );\r\n};\r\n\r\nEnhancedTableToolbar.propTypes = {\r\n numSelected: PropTypes.number.isRequired,\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n width: '100%',\r\n },\r\n paper: {\r\n width: '100%',\r\n marginBottom: theme.spacing(2),\r\n },\r\n table: {\r\n minWidth: 750,\r\n },\r\n visuallyHidden: {\r\n border: 0,\r\n clip: 'rect(0 0 0 0)',\r\n height: 1,\r\n margin: -1,\r\n overflow: 'hidden',\r\n padding: 0,\r\n position: 'absolute',\r\n top: 20,\r\n width: 1,\r\n },\r\n buttonInvitationDisable: {\r\n background: 'grey',\r\n border: 0,\r\n borderRadius: 10,\r\n boxShadow: '0 3px 5px 2px ',\r\n color: 'white',\r\n height: 40,\r\n padding: '0 5px',\r\n textTransform: 'none',\r\n pointerEvents: 'none',\r\n outline: 'none',\r\n },\r\n buttonInvitationEnable: {\r\n background: 'black',\r\n border: 0,\r\n borderRadius: 10,\r\n boxShadow: '0 3px 5px 2px ',\r\n color: 'white',\r\n height: 40,\r\n padding: '0 5px',\r\n textTransform: 'none',\r\n outline: 'none',\r\n }\r\n}));\r\n\r\nexport default function EnhancedTable(props) {\r\n const classes = useStyles();\r\n\r\n const [order, setOrder] = React.useState('asc');\r\n\r\n const [orderBy, setOrderBy] = React.useState('teamName');\r\n\r\n const [selected, setSelected] = React.useState([]);\r\n\r\n const [page, setPage] = React.useState(0);\r\n\r\n const [dense, setDense] = React.useState(false);\r\n\r\n const [rowsPerPage, setRowsPerPage] = React.useState(5);\r\n\r\n const { rows, headCells, isPlayerOverview, playerOverviewState, handleRemovePlayers, handleReinvite,\r\n seasonDropDownIsOpen, toggleItem, seasons, handleOnSelectSeasonFilter, filteredSeason, t } = props;\r\n\r\n const [activeRemove, setActiveRemove] = React.useState(false);\r\n\r\n const handleRequestSort = (event, property) => {\r\n const isAsc = orderBy === property && order === 'asc';\r\n setOrder(isAsc ? 'desc' : 'asc');\r\n setOrderBy(property);\r\n };\r\n\r\n const handleSelectAllClick = (event) => {\r\n\r\n if (event.target.checked) {\r\n const newSelecteds = rows.map((n) => n.id);\r\n setSelected(newSelecteds);\r\n setActiveRemove(true);\r\n return;\r\n }\r\n setSelected([]);\r\n setActiveRemove(false);\r\n };\r\n\r\n const handleClick = (event, name) => {\r\n const selectedIndex = selected.indexOf(name);\r\n let newSelected = [];\r\n\r\n if (selectedIndex === -1) {\r\n newSelected = newSelected.concat(selected, name);\r\n } else if (selectedIndex === 0) {\r\n newSelected = newSelected.concat(selected.slice(1));\r\n } else if (selectedIndex === selected.length - 1) {\r\n newSelected = newSelected.concat(selected.slice(0, -1));\r\n } else if (selectedIndex > 0) {\r\n newSelected = newSelected.concat(\r\n selected.slice(0, selectedIndex),\r\n selected.slice(selectedIndex + 1),\r\n );\r\n }\r\n\r\n setSelected(newSelected);\r\n setActiveRemove(newSelected.length > 0 ? true : false);\r\n };\r\n\r\n const handleInvite = (e) => {\r\n handleReinvite(e.currentTarget.id);\r\n };\r\n\r\n const isSelected = (name) => selected.indexOf(name) !== -1;\r\n\r\n const emptyRows = rowsPerPage - Math.min(rowsPerPage, rows.length - page * rowsPerPage);\r\n\r\n const handleRemove = (e) => {\r\n var users = fromJS([]);\r\n rows.map((row, index) => {\r\n if (isSelected(row.id))\r\n users = users.push(fromJS({\r\n \"Id\": row.id\r\n }));\r\n });\r\n handleRemovePlayers(users);\r\n }\r\n\r\n const handleOnSelectSeason = (e) => {\r\n handleOnSelectSeasonFilter(e.currentTarget.id, e.target.outerText) \r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n {(props.isRendering) ? null : \r\n {!isPlayerOverview && stableSort(rows, getComparator(order, orderBy))\r\n .map((row, index) => {\r\n const isItemSelected = isSelected(row.id);\r\n const labelId = `enhanced-table-checkbox-${index}`;\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n
\r\n
{row.name}
\r\n
\r\n
\r\n {row.emailAddress}\r\n
\r\n
\r\n
{row.invitedby}
\r\n
\r\n {row.invitationdate}\r\n {row.status}\r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n {isPlayerOverview && stableSort(rows, getComparator(order, orderBy))\r\n .map((row, index) => {\r\n const isItemSelected = isSelected(row.id);\r\n\r\n const labelId = `enhanced-table-checkbox-${index}`;\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n
\r\n
{row.name}
\r\n
\r\n
\r\n
\r\n
\r\n \"\"
\r\n
{row.teamName}
\r\n
\r\n
\r\n {row.totalTrainer > 1 &&\r\n (
\r\n \r\n
\r\n
\r\n
{row.totalTrainer} Trainers
\r\n
)\r\n }\r\n {row.totalTrainer <= 1 && (\r\n \r\n
\r\n
\r\n \r\n
\r\n
{row.trainerName}
\r\n
\r\n
)}\r\n \r\n
\r\n
\r\n
{row.overallProgress}%
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {` ${row.averageScore === '0.0' ? ' ' : row.averageScore }`}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n
}\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import { authUrl, addPlayer } from '../../constants';\r\nimport { toast } from 'react-toastify';\r\nimport fetchWithBearerToken from '../../SharedActions/fetchWithBearerToken';\r\n\r\nexport default (entity, t) => async (dispatch) => {\r\n\r\n const body = JSON.stringify({\r\n \"email\": entity.email,\r\n \"role\": \"Player\",\r\n \"phoneNumber\": entity.phoneNumber,\r\n \"firstName\": entity.firstName,\r\n \"lastName\": entity.lastName,\r\n \"profilePicture\": entity.profilePicture,\r\n \"primaryPosition\": \"BE6277D2-B896-4BD6-BB94-BAB085DF34A3\",\r\n \"teamId\": entity.teamId,\r\n \"photo\": entity.photo\r\n });\r\n\r\n const result = await fetchWithBearerToken(`${authUrl}/Account/RegisterUser`, 'POST', body);\r\n\r\n if (result.ok) {\r\n var response = await result.json();\r\n if (!response.isSucceeded)\r\n toast.error(`${t('messagesfailed.addplayer')} ${response.errorMessage}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n \r\n dispatch({ type: addPlayer, result: new Date().toString() });\r\n }\r\n else {\r\n var response = await result.json();\r\n toast.error(`${t('messagesfailed.addplayer')} ${response.errorMessage}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n\r\n }\r\n};","import { tokenKey, webAppUrl, addPlayer, getPlayerOverview } from '../../constants';\r\nimport { toast } from 'react-toastify';\r\nimport fetchWithBearerToken from '../../SharedActions/fetchWithBearerToken';\r\n\r\nexport default (isActive, clubSeasonId) => async (dispatch) => {\r\n \r\n const response = await fetchWithBearerToken(isActive ? `${webAppUrl}/api/Player/GetPlayerOverviewReportByClubId?${clubSeasonId !== null ? (clubSeasonId !== undefined ? \"clubSeasonId=\" + clubSeasonId : '') : ''}` :\r\n `${webAppUrl}/api/Player/GetUserManagerOverviewByClubId?isActive=${isActive}`);\r\n\r\n if (response.ok) {\r\n const players = await response.json();\r\n \r\n if (response.status === 204) {\r\n dispatch({\r\n type: getPlayerOverview,\r\n players: []\r\n });\r\n }\r\n else {\r\n dispatch({\r\n type: getPlayerOverview,\r\n players\r\n });\r\n }\r\n }\r\n else {\r\n toast.error(`Failed fetching data. ${response.errorMessage}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n};","import { tokenKey, webAppUrl, addPlayer, getPlayerOverview } from '../../constants';\r\nimport { toast } from 'react-toastify';\r\nimport fetchWithBearerToken from '../../SharedActions/fetchWithBearerToken';\r\n\r\nexport default () => async (dispatch) => {\r\n const response = await fetchWithBearerToken(`${webAppUrl}/api/Player/GetUserManagerOverviewByClubId`);\r\n\r\n if (response.ok) {\r\n const players = await response.json();\r\n dispatch({\r\n type: getPlayerOverview,\r\n players\r\n });\r\n }\r\n else {\r\n toast.error(`Failed fetching data. ${response.errorMessage}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n};","import {\r\n clearAddPlayerData\r\n} from '../../constants';\r\n\r\nexport default () => async (dispatch) => {\r\n dispatch({ type: clearAddPlayerData });\r\n};","import { toast } from 'react-toastify';\r\nimport { authUrl } from '../../constants';\r\nimport fetchWithBearerToken from '../../SharedActions/fetchWithBearerToken';\r\nimport getInvitedPlayers from '../InvitedPlayers/getInvitedPlayers';\r\n\r\nexport default (userId, t) => async (dispatch) => {\r\n\r\n const body = JSON.stringify({\r\n \"id\": userId,\r\n \"role\": \"Player\"\r\n });\r\n\r\n const result = await fetchWithBearerToken(`${authUrl}/Account/ReInviteUser`, 'POST', body);\r\n if (result.ok) {\r\n toast.success(t('messagessuccess.reinvitedplayer'), {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n dispatch(getInvitedPlayers(false));\r\n }\r\n else {\r\n toast.error(`t('messagesfailed.reinvitedplayer') : ${response.errorMessage}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n};","import { toast } from 'react-toastify';\r\nimport { webAppUrl, tokenKey } from '../../constants';\r\nimport getInvitedPlayers from '../InvitedPlayers/getInvitedPlayers';\r\n\r\nexport default (players, playerOverview, t) => async (dispatch) => {\r\n let url = `${webAppUrl}/api/Player/RemovePlayers?isActive=${playerOverview}`;\r\n\r\n let response = await fetch(url, {\r\n method: `POST`,\r\n headers: {\r\n 'Authorization': `Bearer ${sessionStorage.getItem(tokenKey)}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n , body: JSON.stringify(players)\r\n });\r\n\r\n if (response.ok) {\r\n toast.success(t('messagessuccess.removedplayers'), {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n dispatch(getInvitedPlayers(playerOverview));\r\n }\r\n else {\r\n toast.success(`${t('messagesfailed.failedremove')} ${response.errorMessage}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n}\r\n","import { fromJS } from 'immutable';\r\nimport '../bootstrap_css/style.css';\r\nimport { connect } from 'react-redux';\r\nimport React, { Component } from 'react';\r\nimport MaterialTable from './MaterialTable';\r\nimport { Modal } from 'reactstrap';\r\nimport imageUpload from '../images/upload.jpg';\r\nimport { bindActionCreators } from 'redux';\r\nimport TextInputField from '../SharedComponents/TextInputField';\r\nimport { withTranslation } from 'react-i18next';\r\nimport getTeams from '../../store/MasterData/getTeams';\r\nimport getSeason from '../../store/MasterData/getSeason';\r\nimport addPlayer from '../../store/Players/InvitedPlayers/addPlayer';\r\nimport getInvitedPlayers from '../../store/Players/InvitedPlayers/getInvitedPlayers';\r\nimport getPlayerOverview from '../../store/Players/PlayerOverview/GetPlayerOverview';\r\nimport { toast } from 'react-toastify';\r\nimport uploadPicture from '../../store/profilePicture/uploadPicture';\r\nimport clearAddPlayer from '../../store/Players/InvitedPlayers/clearAddPlayer';\r\nimport reInvitePlayer from '../../store/Players/actions/reInvitePlayer';\r\nimport ModalDelete from '../SharedComponents/ModalDelete';\r\nimport removePlayers from '../../store/Players/actions/removePlayers';\r\n\r\nclass Players extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isRendering: true,\r\n modal: false,\r\n seasonDropdownIsOpen: false,\r\n playerOverview: true,\r\n playerstodelete: null,\r\n deletemodal: false,\r\n fields: fromJS({\r\n firstName: \"\",\r\n lastName: \"\",\r\n email: \"\",\r\n role: \"Manager\",\r\n phoneNumber: \"\",\r\n profilePicture: \"file.png\",\r\n teamId: \"\",\r\n imgTemp: null,\r\n photoDate: null,\r\n photo: null\r\n }),\r\n errors: fromJS({}),\r\n filteredSeason: '',\r\n isinitload: true,\r\n isVisible: false,\r\n };\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.uploadFileChange = this.uploadFileChange.bind(this);\r\n this.saveUploadedPhoto = this.saveUploadedPhoto.bind(this);\r\n this.hideComponent = this.hideComponent.bind(this);\r\n }\r\n\r\n hideComponent() {\r\n this.setState({ isVisible: true });\r\n }\r\n\r\n toggle = (e) => {\r\n\r\n const { modal, fields } = this.state;\r\n\r\n let newFieldsState = fields.set('firstName', '');\r\n newFieldsState = newFieldsState.set('lastName', '');\r\n newFieldsState = newFieldsState.set('email', '');\r\n newFieldsState = newFieldsState.set('phoneNumber', '');\r\n newFieldsState = newFieldsState.set('imgTemp', null);\r\n newFieldsState = newFieldsState.set('photoDate', null);\r\n newFieldsState = newFieldsState.set('photo', null);\r\n\r\n this.setState({\r\n modal: !modal,\r\n fields: newFieldsState,\r\n errors: fromJS({})\r\n });\r\n }\r\n\r\n toggledelete = (e) => {\r\n const { deletemodal } = this.state;\r\n this.setState({\r\n deletemodal: !deletemodal,\r\n });\r\n }\r\n\r\n saveUploadedPhoto(e) {\r\n\r\n this.setState({\r\n fields: this.state.fields.set('photo', e.id),\r\n errors: this.state.errors.delete('photo')\r\n });\r\n }\r\n\r\n handleChange(field, value) {\r\n\r\n this.setState({\r\n fields: this.state.fields.set(field, value),\r\n errors: this.state.errors.delete(field),\r\n });\r\n }\r\n\r\n handleSubmit() {\r\n const { fields, modal } = this.state;\r\n const { t } = this.props;\r\n let errorList = fromJS({});\r\n const requiredField = ['firstName', 'lastName','email','teamId']\r\n const allField = ['firstName', 'lastName', 'email', 'phoneNumber'];\r\n\r\n const simpleEmailRegexp = new RegExp('[^@]+@[^\\.]+\\..+');\r\n\r\n requiredField.map((x) => {\r\n if (fields.get(x) == undefined || fields.get(x) == '') errorList = errorList.set(x, true)\r\n });\r\n\r\n allField.map((x) => {\r\n if (fields.get(x).length > 50) errorList = errorList.set(x, true)\r\n });\r\n\r\n if (!simpleEmailRegexp.test(fields.get('email'))) {\r\n errorList = errorList.set('email', true);\r\n }\r\n\r\n if (errorList.size > 0) {\r\n this.setState({\r\n errors: errorList\r\n });\r\n\r\n return;\r\n }\r\n this.props.addPlayer(fields.toJS(), t)\r\n .then(t => {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n });\r\n\r\n this.setState({\r\n modal: !modal,\r\n errors: fromJS({})\r\n });\r\n }\r\n\r\n playerOverviewstate = (e) => {\r\n const { playerOverview } = this.state;\r\n this.setState({\r\n playerOverview: !playerOverview,\r\n isRendering: true\r\n });\r\n this.props.getInvitedPlayers(!playerOverview)\r\n .then(t => {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n });\r\n }\r\n\r\n closeModal() {\r\n const { modal } = this.state;\r\n this.setState({\r\n modal: !modal\r\n });\r\n }\r\n\r\n closeDeleteModal = () => {\r\n const { deletemodal } = this.state;\r\n this.setState({\r\n deletemodal: !deletemodal\r\n });\r\n }\r\n\r\n handleTeamChange(e) {\r\n\r\n this.setState({\r\n fields: this.state.fields.set('teamId', e.target.value),\r\n errors: this.state.errors.delete('teamId'),\r\n });\r\n }\r\n\r\n uploadFileChange(e) {\r\n const files = e.target.files;\r\n const { t } = this.props;\r\n if (files === undefined) return;\r\n\r\n let formData = new FormData();\r\n let fileType = '';\r\n\r\n if (files[0] !== null) {\r\n fileType = files[0].type;\r\n }\r\n\r\n if (files[0].size > '6000000') {\r\n toast.success(\"file size limit\", {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n return;\r\n }\r\n\r\n if (fileType !== 'image/png' && fileType !== 'image/jpeg' && fileType !== 'image/jpg') {\r\n\r\n toast.success(\"format not allowed\", {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n return;\r\n }\r\n\r\n formData.append('file', files[0]);\r\n\r\n const dateTag = new Date().toString().replace('+', ' ');\r\n\r\n let newFields = this.state.fields.set('imgTemp', URL.createObjectURL(files[0]));\r\n\r\n newFields = newFields.set('photoDate', dateTag);\r\n\r\n this.setState({\r\n fields: newFields\r\n });\r\n\r\n this.props.uploadPicture(formData, dateTag, null, t)\r\n .then(t => {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n });\r\n }\r\n\r\n getResultFromReader(r) {\r\n this.setState({\r\n imgTemp: r.target.result\r\n });\r\n }\r\n\r\n AddPlayerModal = (modal) => {\r\n\r\n const { fields, errors } = this.state;\r\n const { allTeams, t } = this.props;\r\n\r\n const selectedPict = fields.get('imgTemp') !== null ? fields.get('imgTemp') : imageUpload;\r\n\r\n return (\r\n \r\n
\r\n

{t('general.invite') + ' ' + t('players.singlelowerplayer')}

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

{t('general.photonote')}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{t('general.role')}\r\n \r\n
{t('teams.singletitle')} \r\n \r\n
{t('general.firstname')}\r\n this.handleChange(field, value)}\r\n hasError={errors.has('firstName')} />\r\n
{t('general.lastname')}\r\n this.handleChange(field, value)}\r\n hasError={errors.has('lastName')} />\r\n
{t('general.e-mail')} this.handleChange(field, value)}\r\n hasError={errors.has('email')} />
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n createData(id, name, emailAddress, invitedby, invitationdate, status, action, multipletrainer, invitedById, isTokenExpired, invitorPicture, userPicture) {\r\n return { id, name, emailAddress, invitedby, invitationdate, status, action, multipletrainer, invitedById, isTokenExpired, invitorPicture, userPicture };\r\n }\r\n\r\n createPlayerOverviewData(id, name, teamId, teamName, trainerId, trainerName, overallProgress, averageScore, overallDiff, multipletrainer,\r\n totalTrainer, trainerPicture, userPicture, userId, clubPictureURL, trainerUserId) {\r\n\r\n return {\r\n id, name, teamId, teamName, trainerId, trainerName, overallProgress, averageScore, overallDiff, multipletrainer, overallStatus: overallDiff > 0, totalTrainer: totalTrainer == 0 ? 0 : totalTrainer,\r\n trainerPicture, userPicture, userId, clubPictureURL, trainerUserId\r\n };\r\n }\r\n\r\n handleReinvite = (userId) => {\r\n const { t } = this.props;\r\n if (userId)\r\n this.props.reInvitePlayer(userId, t)\r\n .then(t => {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n const { playerOverview } = this.state;\r\n Promise.all([\r\n this.props.getTeams(),\r\n this.props.getSeason()])\r\n .then(t => {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n this.hideComponent();\r\n });\r\n //this.props.getInvitedPlayers(playerOverview);\r\n\r\n this.setState({ isRendering: true }, () => {\r\n this.setState({ isRendering: false });\r\n });\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const { fields, playerOverview, isinitload } = this.state;\r\n const { addPlayerResult, profilePictureUpload, seasons } = this.props; \r\n if (profilePictureUpload && profilePictureUpload.dateTimeTag == fields.get('photoDate')) {\r\n if (prevProps.profilePictureUpload && profilePictureUpload.id !== prevProps.profilePictureUpload.id)\r\n this.saveUploadedPhoto(profilePictureUpload)\r\n .then(t => {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n });\r\n\r\n //if prev profilepic is undefined\r\n if (profilePictureUpload && prevProps.profilePictureUpload === undefined)\r\n this.saveUploadedPhoto(profilePictureUpload)\r\n .then(t => {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n });\r\n }\r\n if (addPlayerResult && prevProps.addPlayerResult !== addPlayerResult) {\r\n this.props.getInvitedPlayers(playerOverview)\r\n .then(t => {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n });\r\n }\r\n\r\n var initfilteredSeason = '';\r\n \r\n if (isinitload && seasons.length > 0) { \r\n seasons.map((row, index) => {\r\n if (row.isCurrent) {\r\n initfilteredSeason = row.seasonName;\r\n this.props.getInvitedPlayers(row.id)\r\n .then(t => {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n });\r\n }\r\n });\r\n this.setState({\r\n isinitload: false,\r\n filteredSeason: initfilteredSeason\r\n });\r\n }\r\n \r\n if (JSON.stringify(this.props) !== JSON.stringify(prevProps))\r\n this.setState({ isRendering: false });\r\n }\r\n\r\n handleRemovePlayers = (players) => {\r\n const { deletemodal } = this.state;\r\n const { t } = this.props;\r\n if (players.size == 0) {\r\n toast.success(t('validationerror.noselectedplayers'), {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n else {\r\n this.setState({\r\n deletemodal: !deletemodal,\r\n playerstodelete: players\r\n });\r\n }\r\n }\r\n\r\n okRemove = () => {\r\n const { playerstodelete, playerOverview, deletemodal } = this.state;\r\n const { t } = this.props;\r\n this.props.removePlayers(playerstodelete.toJS(), playerOverview, t);\r\n this.setState({\r\n deletemodal: !deletemodal,\r\n playerstodelete: null,\r\n });\r\n }\r\n\r\n toggleItem = () => {\r\n const { seasonDropdownIsOpen } = this.state;\r\n\r\n this.setState({\r\n seasonDropdownIsOpen: !seasonDropdownIsOpen\r\n });\r\n }\r\n\r\n handleOnSelectSeason = (seasonId, seasonName) => {\r\n const { playerOverview } = this.state;\r\n if (seasonId)\r\n this.props.getInvitedPlayers(true, seasonId)\r\n .then(t => {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n });\r\n else\r\n this.props.getInvitedPlayers(playerOverview)\r\n .then(t => {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n });\r\n\r\n this.setState({\r\n filteredSeason: seasonName\r\n });\r\n }\r\n\r\n render() {\r\n const { modal, playerOverview, seasonDropdownIsOpen, deletemodal, filteredSeason, isVisible } = this.state;\r\n const { players, seasons, t } = this.props;\r\n\r\n const invitedManagerHeadCells = [\r\n { id: 'name', numeric: false, disablePadding: true, label: t('players.title') },\r\n { id: 'emailAddress', numeric: false, disablePadding: true, label: t('general.e-mail') },\r\n { id: 'invitedby', numeric: true, disablePadding: false, label: t('general.invitedby') },\r\n { id: 'invitationdate', numeric: true, disablePadding: false, label: t('general.invitedate') },\r\n { id: 'status', numeric: true, disablePadding: false, label: t('general.status') },\r\n { id: 'action', numeric: true, disablePadding: false, align: 'center', label: t('general.action') },\r\n ];\r\n const overviewManagerHeadCells = [\r\n { id: 'name', numeric: false, disablePadding: true, label: t('players.title') },\r\n { id: 'teamName', numeric: false, disablePadding: true, label: t('teams.title') },\r\n { id: 'trainerName', numeric: false, disablePadding: true, label: t('trainers.title') },\r\n { id: 'overallProgress', numeric: false, disablePadding: true, label: t('general.progress') },\r\n { id: 'averageScore', numeric: true, disablePadding: true, label: t('overview.overall') },\r\n { id: 'action', numeric: true, disablePadding: false, align: 'center', label: t('general.view') },\r\n ];\r\n let rows = [];\r\n if (!playerOverview && players) {\r\n rows = players.map(x =>\r\n this.createData(x.id, x.name, x.emailAddress, x.invitedBy, x.invitationDate, x.status, 0, false, x.invitedById, x.isTokenExpired, x.invitorPicture, x.userPicture))\r\n }\r\n if (playerOverview && players) {\r\n\r\n rows = players.map(x =>\r\n this.createPlayerOverviewData(x.id, x.name, x.teamId, x.teamName, x.trainerId, x.trainerName, x.overallProgress, x.averageScore, x.overallDiff,\r\n x.multipleTrainer, x.totalTrainer, x.trainerPicture, x.userPicture, x.userId, x.clubPictureURL, x.trainerUserId))\r\n }\r\n return (
\r\n {isVisible && (\r\n )}\r\n {this.AddPlayerModal(modal)}\r\n \r\n
);\r\n }\r\n\r\n}\r\n\r\nexport default connect((state) => {\r\n return {\r\n allTeams: state.masterData.allTeams,\r\n players: state.player.playerOverview,\r\n addPlayerResult: state.player.addPlayerResult,\r\n profilePictureUpload: state.profilePicture.profilePictureUpload,\r\n seasons: state.masterData.seasons \r\n }\r\n},\r\n dispatch => bindActionCreators({\r\n getTeams,\r\n addPlayer,\r\n getInvitedPlayers,\r\n getPlayerOverview,\r\n uploadPicture,\r\n clearAddPlayer,\r\n reInvitePlayer,\r\n getSeason,\r\n removePlayers\r\n }, dispatch))(withTranslation()(Players));","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TableRow,\r\n TableSortLabel,\r\n Button\r\n} from '@material-ui/core';\r\n\r\nimport { lighten, makeStyles } from '@material-ui/core/styles';\r\nimport { Input, Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';\r\nimport trashwhite from '../images/Trash.svg';\r\nimport roundplus from '../images/round_plus_icon.svg';\r\nimport { MdChevronRight } from \"react-icons/md\";\r\nimport { Link } from 'react-router-dom';\r\nimport { formatDateStandart } from '../../helpers/dateHelper';\r\nimport { fromJS } from 'immutable';\r\nimport ProfilePic from '../SharedComponents/ProfileThumImage';\r\nimport { FaCaretUp } from 'react-icons/fa';\r\n\r\nfunction descendingComparator(a, b, orderBy) {\r\n if (b[orderBy] < a[orderBy]) {\r\n return -1;\r\n }\r\n if (b[orderBy] > a[orderBy]) {\r\n return 1;\r\n }\r\n return 0;\r\n}\r\n\r\nfunction getComparator(order, orderBy) {\r\n return order === 'desc'\r\n ? (a, b) => descendingComparator(a, b, orderBy)\r\n : (a, b) => -descendingComparator(a, b, orderBy);\r\n}\r\n\r\nfunction stableSort(array, comparator) {\r\n const stabilizedThis = array.map((el, index) => [el, index]);\r\n stabilizedThis.sort((a, b) => {\r\n const order = comparator(a[0], b[0]);\r\n if (order !== 0) return order;\r\n return a[1] - b[1];\r\n });\r\n return stabilizedThis.map((el) => el[0]);\r\n}\r\n\r\nfunction EnhancedTableHead(props) {\r\n const { classes, onSelectAllClick, order, orderBy, numSelected, rowCount, onRequestSort, headCells } = props;\r\n const createSortHandler = (property) => (event) => {\r\n onRequestSort(event, property);\r\n };\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {headCells.map((headCell) => (\r\n \r\n {headCell.label != 'View' &&\r\n < TableSortLabel\r\n active={orderBy === headCell.id}\r\n direction={orderBy === headCell.id ? order : 'asc'}\r\n onClick={createSortHandler(headCell.id)}\r\n IconComponent={FaCaretUp}\r\n >\r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n }\r\n {\r\n headCell.label == 'View' &&\r\n {headCell.label}\r\n }\r\n \r\n ))}\r\n \r\n \r\n );\r\n}\r\n\r\nEnhancedTableHead.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n numSelected: PropTypes.number.isRequired,\r\n onRequestSort: PropTypes.func.isRequired,\r\n onSelectAllClick: PropTypes.func.isRequired,\r\n order: PropTypes.oneOf(['asc', 'desc']).isRequired,\r\n orderBy: PropTypes.string.isRequired,\r\n rowCount: PropTypes.number.isRequired,\r\n};\r\n\r\nconst useToolbarStyles = makeStyles((theme) => ({\r\n root: {\r\n paddingLeft: theme.spacing(2),\r\n paddingRight: theme.spacing(1),\r\n },\r\n highlight:\r\n theme.palette.type === 'light'\r\n ? {\r\n color: theme.palette.secondary.main,\r\n backgroundColor: lighten(theme.palette.secondary.light, 0.85),\r\n }\r\n : {\r\n color: theme.palette.text.primary,\r\n backgroundColor: theme.palette.secondary.dark,\r\n },\r\n title: {\r\n flex: '1 1 100%',\r\n },\r\n}));\r\n\r\nconst EnhancedTableToolbar = (props) => {\r\n const classes = useToolbarStyles();\r\n const { numSelected, ismanageroverview, rows, seasonDropDownIsOpen, toggleItem, seasons,\r\n handleOnSelectSeason, filteredSeason, isActiveRemove, t } = props;\r\n\r\n return (\r\n
\r\n
{t('general.all') + ' ' + t('trainers.titlelower')}
{rows.length}
\r\n
\r\n {t('general.invited')}\r\n \r\n {t('general.active')}\r\n
\r\n
\r\n {/* { e.preventDefault(); props.handleRemove(); }}*/}\r\n {/* data-target=\"#delete_modal\">\"\"*/}\r\n
\r\n {ismanageroverview &&\r\n (\r\n \r\n {filteredSeason}\r\n \r\n \r\n {\r\n //\r\n //
All trainer
\r\n //
\r\n }\r\n {seasons.map((row, index) => {\r\n //let current = '';\r\n //current = row.isCurrent ? () : '';\r\n return (\r\n \r\n
\r\n {row.seasonName}{/*current*/}\r\n
\r\n
)\r\n })}\r\n {/*
+ Add new season
*/}\r\n
\r\n
)\r\n }\r\n
\r\n { e.preventDefault(); props.toggle(true); }} className=\"btn_adnew\" data-toggle=\"modal\" data-target=\"#trainer_modal\">\"\"\r\n
\r\n
\r\n );\r\n};\r\n\r\nEnhancedTableToolbar.propTypes = {\r\n numSelected: PropTypes.number.isRequired,\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n width: '100%',\r\n },\r\n paper: {\r\n width: '100%',\r\n marginBottom: theme.spacing(2),\r\n },\r\n table: {\r\n minWidth: 750,\r\n },\r\n visuallyHidden: {\r\n border: 0,\r\n clip: 'rect(0 0 0 0)',\r\n height: 1,\r\n margin: -1,\r\n overflow: 'hidden',\r\n padding: 0,\r\n position: 'absolute',\r\n top: 20,\r\n width: 1,\r\n },\r\n buttonInvitationDisable: {\r\n background: 'grey',\r\n border: 0,\r\n borderRadius: 10,\r\n boxShadow: '0 3px 5px 2px ',\r\n color: 'white',\r\n height: 40,\r\n padding: '0 15px',\r\n textTransform: 'none',\r\n pointerEvents: 'none',\r\n outline: 'none',\r\n },\r\n buttonInvitationEnable: {\r\n background: 'black',\r\n border: 0,\r\n borderRadius: 10,\r\n boxShadow: '0 3px 5px 2px ',\r\n color: 'white',\r\n height: 40,\r\n padding: '0 5px',\r\n textTransform: 'none',\r\n outline: 'none',\r\n }\r\n}));\r\n\r\nexport default function EnhancedTable(props) {\r\n const classes = useStyles();\r\n const [order, setOrder] = React.useState('asc');\r\n const [orderBy, setOrderBy] = React.useState('topTeamName');\r\n const [selected, setSelected] = React.useState([]);\r\n const [page, setPage] = React.useState(0);\r\n const [dense, setDense] = React.useState(false);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(5);\r\n const handleRequestSort = (event, property) => {\r\n const isAsc = orderBy === property && order === 'asc';\r\n setOrder(isAsc ? 'desc' : 'asc');\r\n setOrderBy(property);\r\n };\r\n const { rows, ismanageroverview, handleRemoveManagers, handleReinvite, seasonDropDownIsOpen,\r\n toggleItem, seasons, handleOnSelectSeasonFilterd, filteredSeason, t } = props;\r\n const [activeRemove, setActiveRemove] = React.useState(false);\r\n\r\n const handleSelectAllClick = (event) => {\r\n\r\n if (event.target.checked) {\r\n const newSelecteds = rows.map((n) => n.id);\r\n setSelected(newSelecteds);\r\n setActiveRemove(true);\r\n return;\r\n }\r\n setSelected([]);\r\n setActiveRemove(false);\r\n };\r\n\r\n const handleClick = (event, name) => {\r\n const selectedIndex = selected.indexOf(name);\r\n let newSelected = [];\r\n\r\n if (selectedIndex === -1) {\r\n newSelected = newSelected.concat(selected, name);\r\n } else if (selectedIndex === 0) {\r\n newSelected = newSelected.concat(selected.slice(1));\r\n } else if (selectedIndex === selected.length - 1) {\r\n newSelected = newSelected.concat(selected.slice(0, -1));\r\n } else if (selectedIndex > 0) {\r\n newSelected = newSelected.concat(\r\n selected.slice(0, selectedIndex),\r\n selected.slice(selectedIndex + 1),\r\n );\r\n }\r\n\r\n setSelected(newSelected);\r\n setActiveRemove(newSelected.length > 0 ? true : false);\r\n };\r\n\r\n const handleInvite = (e) => {\r\n handleReinvite(e.currentTarget.id);\r\n };\r\n\r\n const handleChangePage = (event, newPage) => {\r\n\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (event) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const isSelected = (name) => selected.indexOf(name) !== -1;\r\n\r\n const emptyRows = rowsPerPage - Math.min(rowsPerPage, rows.length - page * rowsPerPage);\r\n\r\n const handleRemove = (e) => {\r\n var users = fromJS([]);\r\n rows.map((row, index) => {\r\n if (isSelected(row.id))\r\n users = users.push(fromJS({\r\n \"Id\": row.id\r\n }));\r\n });\r\n handleRemoveManagers(users);\r\n }\r\n\r\n const handleOnSelectSeason = (e) => {\r\n handleOnSelectSeasonFilterd(e.currentTarget.id, e.target.outerText);\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n {(props.isRendering) ? null :\r\n \r\n {stableSort(rows, getComparator(order, orderBy))\r\n .map((row, index) => {\r\n const isItemSelected = isSelected(row.id);\r\n const labelId = `enhanced-table-checkbox-${index}`;\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n
\r\n
{row.name}
\r\n
\r\n
\r\n {!ismanageroverview && ({row.emailAddress})}\r\n {ismanageroverview && (\r\n \r\n
\r\n \"\"
\r\n
{row.teamName}
\r\n
\r\n
)}\r\n {!ismanageroverview && (
\r\n
\r\n \r\n
\r\n
{row.invitedBy}
\r\n
\r\n
)}\r\n {ismanageroverview && ({`${row.totalPlayer}`})}\r\n {ismanageroverview && (\r\n
\r\n
\r\n
{row.overallProgress}%
\r\n
\r\n
\r\n
)}\r\n {ismanageroverview ? formatDateStandart(row.lastUpdate) : row.invitationDate}\r\n {!ismanageroverview && ({row.status})}\r\n {!ismanageroverview && (\r\n \r\n )}\r\n {ismanageroverview && (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n })}\r\n {\r\n //emptyRows > 0 && (\r\n //\r\n // \r\n //\r\n //)\r\n }\r\n
}\r\n \r\n
\r\n {\r\n //\r\n }\r\n
\r\n );\r\n}\r\n","import { toast } from 'react-toastify';\r\nimport { addTrainer, authUrl } from '../../constants';\r\nimport fetchWithBearerToken from '../../SharedActions/fetchWithBearerToken';\r\n\r\nexport default (entity,t) => async (dispatch) => {\r\n \r\n const body = JSON.stringify({\r\n \"email\": entity.email,\r\n \"role\": entity.role,\r\n \"phoneNumber\": entity.phoneNumber,\r\n \"firstName\": entity.firstName,\r\n \"lastName\": entity.lastName,\r\n \"profilePicture\": entity.profilePicture,\r\n \"teamId\": entity.teamId,\r\n \"photo\": entity.photo\r\n });\r\n const result = await fetchWithBearerToken(`${authUrl}/Account/RegisterUser`, 'POST', body);\r\n\r\n if (result.ok) {\r\n var response = await result.json();\r\n if (!response.isSucceeded)\r\n toast.error(`${t('messagesfailed.addtrainer')} ${response.errorMessage}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n else\r\n dispatch({ type: addTrainer, result: new Date().toString() });\r\n }\r\n else {\r\n var response = await result.json();\r\n toast.error(`${t('messagesfailed.addtrainer')} ${response.errorMessage}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n}","import { toast } from 'react-toastify';\r\nimport fetchWithBearerToken from '../../SharedActions/fetchWithBearerToken';\r\nimport { webAppUrl, getTrainerOverview } from '../../constants';\r\n\r\nexport default (isActive, clubSeasonId) => async (dispatch) => {\r\n \r\n const url = `${webAppUrl}/api/trainer/GetTrainersOverview?isactive=${isActive}${clubSeasonId !== null ? (clubSeasonId !== undefined ? \"&&clubSeasonId=\" + clubSeasonId : '') : ''}`;\r\n\r\n const response = await fetchWithBearerToken(url);\r\n\r\n if (response.ok) {\r\n const trainers = await response.json();\r\n dispatch({\r\n type: getTrainerOverview,\r\n trainer: trainers\r\n });\r\n }\r\n else {\r\n toast.error(`Failed fetching data. ${response.errorMessage}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n}\r\n","import { toast } from 'react-toastify';\r\nimport { webAppUrl, tokenKey } from '../../constants';\r\nimport getTrainers from '../actions/fetchTrainerOverivew';\r\n\r\nexport default (userManagers, userId, isTrainerOverview,t) => async (dispatch) => {\r\n let url = `${webAppUrl}/api/Trainer/RemoveTrainers?role=Trainer`;\r\n\r\n let response = await fetch(url, {\r\n method: `POST`,\r\n headers: {\r\n 'Authorization': `Bearer ${sessionStorage.getItem(tokenKey)}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n , body: JSON.stringify(userManagers)\r\n });\r\n\r\n if (response.ok) {\r\n toast.success(t('messagessuccess.removetrainers'), {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n dispatch(getTrainers(isTrainerOverview));\r\n }\r\n else {\r\n toast.success(`${t('messagesfailed.failedremove')} ${response.errorMessage}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n}\r\n","import { toast } from 'react-toastify';\r\nimport { authUrl } from '../../constants';\r\nimport fetchWithBearerToken from '../../SharedActions/fetchWithBearerToken';\r\nimport getTrainers from '../actions/fetchTrainerOverivew';\r\n\r\nexport default (userId, t) => async (dispatch) => {\r\n\r\n const body = JSON.stringify({\r\n \"id\": userId,\r\n \"role\": \"Trainer\"\r\n });\r\n\r\n const result = await fetchWithBearerToken(`${authUrl}/Account/ReInviteUser`, 'POST', body);\r\n if (result.ok) {\r\n toast.success(t('messagessuccess.reinvitedtrainer'), {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n dispatch(getTrainers(false));\r\n }\r\n else {\r\n toast.error(`${t('messagesfailed.reinvitedtrainer')} : ${response.errorMessage}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n};","import { fromJS } from 'immutable';\r\nimport '../bootstrap_css/style.css';\r\nimport { connect } from 'react-redux';\r\nimport React, { Component } from 'react';\r\nimport MaterialTable from './MaterialTable';\r\nimport { Modal } from 'reactstrap';\r\nimport imageUpload from '../images/upload.jpg';\r\nimport addTrainer from '../../store/Trainers/actions/addTrainer';\r\nimport getTrainers from '../../store/Trainers/actions/fetchTrainerOverivew';\r\nimport { bindActionCreators } from 'redux';\r\nimport TextInputField from '../SharedComponents/TextInputField';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { userId } from '../../store/constants';\r\nimport { toast } from 'react-toastify';\r\nimport removeTrainers from '../../store/Trainers/actions/removeTrainers';\r\nimport getTeams from '../../store/MasterData/getTeams';\r\nimport getSeason from '../../store/MasterData/getSeason';\r\nimport clearTrainers from '../../store/Trainers/actions/clearTrainerData';\r\nimport uploadPicture from '../../store/profilePicture/uploadPicture';\r\nimport reInviteTrainer from '../../store/Trainers/actions/reInviteTrainer';\r\nimport ModalDelete from '../SharedComponents/ModalDelete';\r\n\r\nclass Trainers extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isRendering: true,\r\n seasonDropdownIsOpen: false,\r\n deleteTrainerRow: null,\r\n deleteModal: false,\r\n modal: false,\r\n fields: fromJS({\r\n firstName: \"\",\r\n lastName: \"\",\r\n email: \"\",\r\n role: \"Trainer\",\r\n phoneNumber: \"\",\r\n profilePicture: \"file.png\",\r\n teamId: \"\",\r\n imgTemp: null,\r\n photoDate: null,\r\n photo: null\r\n }),\r\n traineroverview: true,\r\n errors: fromJS({}),\r\n filteredSeason: '',\r\n isinitload: true,\r\n isVisible: false,\r\n };\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.uploadFileChange = this.uploadFileChange.bind(this);\r\n this.saveUploadedPhoto = this.saveUploadedPhoto.bind(this);\r\n this.hideComponent = this.hideComponent.bind(this);\r\n }\r\n\r\n hideComponent() {\r\n this.setState({ isVisible: true });\r\n }\r\n\r\n toggle = (addModal) => {\r\n\r\n const { modal, deleteModal, fields } = this.state;\r\n if (addModal) {\r\n let newFieldsState = fields.set('firstName', '');\r\n newFieldsState = newFieldsState.set('lastName', '');\r\n newFieldsState = newFieldsState.set('email', '');\r\n newFieldsState = newFieldsState.set('phoneNumber', '');\r\n newFieldsState = newFieldsState.set('imgTemp', null);\r\n newFieldsState = newFieldsState.set('photoDate', null);\r\n newFieldsState = newFieldsState.set('photo', null);\r\n\r\n this.setState({\r\n modal: !modal,\r\n fields: newFieldsState,\r\n errors: fromJS({})\r\n });\r\n }\r\n\r\n else {\r\n\r\n this.setState({\r\n deleteModal: !deleteModal\r\n });\r\n }\r\n\r\n }\r\n\r\n toggleItem = () => {\r\n const { seasonDropdownIsOpen } = this.state;\r\n this.setState({\r\n seasonDropdownIsOpen: !seasonDropdownIsOpen\r\n });\r\n }\r\n\r\n traineroverviewstate = (e) => {\r\n const { traineroverview } = this.state;\r\n this.setState({\r\n traineroverview: !traineroverview,\r\n isRendering: true\r\n });\r\n Promise.all([\r\n this.props.clearTrainers(),\r\n this.props.getTrainers(!traineroverview)])\r\n .then(t => {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n });\r\n }\r\n\r\n handleChange(field, value) {\r\n\r\n this.setState({\r\n fields: this.state.fields.set(field, value),\r\n errors: this.state.errors.delete(field),\r\n });\r\n }\r\n\r\n handleSubmit() {\r\n const { fields, modal } = this.state;\r\n const { t } = this.props;\r\n let errorList = fromJS({});\r\n const requiredField = ['firstName', 'lastName', 'email']\r\n const allField = ['firstName', 'lastName', 'email', 'phoneNumber'];\r\n const simpleEmailRegexp = new RegExp('[^@]+@[^\\.]+\\..+');\r\n\r\n requiredField.map((x) => {\r\n if (fields.get(x) == undefined || fields.get(x) == '') errorList = errorList.set(x, true)\r\n });\r\n\r\n allField.map((x) => {\r\n if (fields.get(x).length > 50) errorList = errorList.set(x, true)\r\n });\r\n\r\n if (!simpleEmailRegexp.test(fields.get('email'))) {\r\n errorList = errorList.set('email', true);\r\n }\r\n\r\n if (errorList.size > 0) {\r\n this.setState({\r\n errors: errorList\r\n });\r\n\r\n return;\r\n }\r\n this.props.addTrainer(fields.toJS(), t)\r\n .then(t => {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n });\r\n\r\n this.setState({\r\n modal: !modal\r\n });\r\n }\r\n\r\n saveUploadedPhoto(e) {\r\n\r\n this.setState({\r\n fields: this.state.fields.set('photo', e.id),\r\n errors: this.state.errors.delete('photo')\r\n });\r\n }\r\n\r\n uploadFileChange(e) {\r\n const files = e.target.files;\r\n const { t } = this.props;\r\n if (files === undefined) return;\r\n\r\n let formData = new FormData();\r\n let fileType = '';\r\n\r\n if (files[0] !== null) {\r\n fileType = files[0].type;\r\n }\r\n\r\n if (files[0].size > '6000000') {\r\n toast.success(\"file size limit\", {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n return;\r\n }\r\n\r\n if (fileType !== 'image/png' && fileType !== 'image/jpeg' && fileType !== 'image/jpg') {\r\n\r\n toast.success(\"format not allowed\", {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n return;\r\n }\r\n\r\n formData.append('file', files[0]);\r\n\r\n const dateTag = new Date().toString().replace('+', ' ');\r\n\r\n let newFields = this.state.fields.set('imgTemp', URL.createObjectURL(files[0]));\r\n\r\n newFields = newFields.set('photoDate', dateTag);\r\n\r\n this.setState({\r\n fields: newFields\r\n });\r\n\r\n this.props.uploadPicture(formData, dateTag, null, t)\r\n .then(t => {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n });\r\n }\r\n\r\n closeModal = (addModal) => {\r\n const { modal, deleteModal } = this.state;\r\n if (addModal) {\r\n this.setState({\r\n modal: !modal\r\n });\r\n }\r\n else {\r\n this.setState({\r\n deleteModal: !deleteModal\r\n });\r\n }\r\n }\r\n\r\n okRemove = () => {\r\n const { deleteTrainerRow, traineroverview, deleteModal } = this.state;\r\n const { t } = this.props;\r\n this.props.removeTrainers(deleteTrainerRow.toJS(), sessionStorage.getItem(userId), traineroverview, t)\r\n .then(t => {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n });\r\n\r\n this.setState({\r\n deleteModal: !deleteModal,\r\n deleteTrainerRow: null\r\n });\r\n }\r\n\r\n AddTrainerModal = (modal) => {\r\n\r\n const { fields, errors } = this.state;\r\n const { allTeams, t } = this.props;\r\n const selectedPict = fields.get('imgTemp') !== null ? fields.get('imgTemp') : imageUpload;\r\n\r\n return (\r\n { this.toggle(true) }} className=\"trainermodal\">\r\n
\r\n

{t('general.invite') + ' ' + t('trainers.singletitlelower')}

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

{t('general.photonote')}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{t('general.role')}\r\n \r\n
{t('teams.singletitle')}\r\n \r\n
{t('general.firstname')}\r\n this.handleChange(field, value)}\r\n hasError={errors.has('firstName')} />\r\n
{t('general.lastname')}\r\n this.handleChange(field, value)}\r\n hasError={errors.has('lastName')} />\r\n
{t('general.e-mail')}\r\n this.handleChange(field, value)}\r\n hasError={errors.has('email')} />\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n componentDidMount() {\r\n const { traineroverview } = this.state;\r\n Promise.all([\r\n this.props.getTeams(),\r\n this.props.getSeason()])\r\n .then(t => {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n this.hideComponent();\r\n });\r\n //this.props.getTrainers(traineroverview);\r\n\r\n this.setState({ isRendering: true }, () => {\r\n this.setState({ isRendering: false });\r\n });\r\n }\r\n\r\n handleReinvite = (userId) => {\r\n const { t } = this.props;\r\n if (userId)\r\n this.props.reInviteTrainer(userId, t)\r\n .then(t => {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n });\r\n }\r\n\r\n handleRemoveTrainers = (trainers) => {\r\n const { deleteModal } = this.state;\r\n const { t } = this.props;\r\n if (trainers.size == 0) {\r\n toast.success(t('validationerror.noselectedtrainers'), {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n else {\r\n this.setState({\r\n deleteModal: !deleteModal,\r\n deleteTrainerRow: trainers\r\n });\r\n }\r\n }\r\n\r\n handleTeamChange(e) {\r\n this.setState({\r\n fields: this.state.fields.set('teamId', e.target.value),\r\n errors: this.state.errors.delete('teamId'),\r\n });\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const { fields, traineroverview, isinitload } = this.state;\r\n\r\n const { addTrainerResult, profilePictureUpload, seasons } = this.props;\r\n\r\n if (profilePictureUpload && profilePictureUpload.dateTimeTag == fields.get('photoDate')) {\r\n if (prevProps.profilePictureUpload && profilePictureUpload.id !== prevProps.profilePictureUpload.id)\r\n this.saveUploadedPhoto(profilePictureUpload)\r\n .then(t => {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n });\r\n\r\n //if prev profilepic is undefined\r\n if (profilePictureUpload && prevProps.profilePictureUpload === undefined)\r\n this.saveUploadedPhoto(profilePictureUpload)\r\n .then(t => {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n });\r\n }\r\n\r\n if (addTrainerResult && prevProps.addTrainerResult !== addTrainerResult) {\r\n this.props.getTrainers(traineroverview)\r\n .then(t => {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n });\r\n }\r\n\r\n var initfilteredSeason = '';\r\n if (isinitload && seasons.length > 0) {\r\n seasons.map((row, index) => {\r\n if (row.isCurrent) {\r\n initfilteredSeason = row.seasonName;\r\n this.props.getTrainers(true, row.id)\r\n .then(t => {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n });\r\n }\r\n });\r\n this.setState({\r\n isinitload: false,\r\n filteredSeason: initfilteredSeason\r\n });\r\n }\r\n\r\n if (JSON.stringify(this.props) !== JSON.stringify(prevProps))\r\n this.setState({ isRendering: false });\r\n }\r\n\r\n handleOnSelectSeason = (seasonId, seasonName) => {\r\n const { traineroverview } = this.state;\r\n if (seasonId)\r\n this.props.getTrainers(true, seasonId)\r\n .then(t => {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n });\r\n else\r\n this.props.getTrainers(traineroverview)\r\n .then(t => {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n });\r\n\r\n this.setState({\r\n filteredSeason: seasonName\r\n });\r\n }\r\n\r\n render() {\r\n const { modal, traineroverview, deleteModal, seasonDropdownIsOpen, toggleItem, filteredSeason, isVisible } = this.state;\r\n const { trainerOverviewData, seasons, t } = this.props;\r\n\r\n const headCellsTrainerInvited = [\r\n { id: 'name', numeric: false, disablePadding: true, label: t('trainers.title') },\r\n { id: 'emailAddress', numeric: false, disablePadding: true, label: t('general.e-mail') },\r\n { id: 'invitedby', numeric: true, disablePadding: false, label: t('general.invitedby') },\r\n { id: 'invitationdate', numeric: true, disablePadding: false, label: t('general.invitedate') },\r\n { id: 'status', numeric: true, disablePadding: false, label: t('general.status') },\r\n { id: 'action', numeric: true, disablePadding: false, align: 'center', label: t('general.action') }];\r\n\r\n const headCellsTrainerOverview = [\r\n { id: 'name', numeric: false, disablePadding: true, label: t('trainers.title') },\r\n { id: 'topTeamName', numeric: false, disablePadding: true, label: t('teams.title') },\r\n { id: 'totalPlayer', numeric: false, disablePadding: false, align: 'left', label: t('players.title') },\r\n { id: 'overallProgress', numeric: true, disablePadding: false, align: 'left', label: t('general.progress') },\r\n { id: 'lastUpdate', numeric: true, disablePadding: false, label: t('general.lastupdate') },\r\n { id: 'id', numeric: true, disablePadding: false, align: 'center', label: t('general.view') }];\r\n\r\n return (
\r\n {isVisible && (\r\n )}\r\n {this.AddTrainerModal(modal)}\r\n \r\n
);\r\n }\r\n}\r\n\r\nexport default connect((state) => {\r\n return {\r\n trainerOverviewData: state.trainer.trainers,\r\n addTrainerResult: state.trainer.addTrainerResult,\r\n allTeams: state.masterData.allTeams,\r\n profilePictureUpload: state.profilePicture.profilePictureUpload,\r\n seasons: state.masterData.seasons\r\n }\r\n},\r\n dispatch => bindActionCreators({\r\n getTeams,\r\n addTrainer,\r\n getTrainers,\r\n removeTrainers,\r\n clearTrainers,\r\n uploadPicture,\r\n reInviteTrainer,\r\n getSeason\r\n }, dispatch))(withTranslation()(Trainers));","import { toast } from 'react-toastify';\r\nimport fetchWithBearerToken from '../../SharedActions/fetchWithBearerToken';\r\nimport { webAppUrl, getManagerById } from '../../constants';\r\n\r\nexport default (userId) => async (dispatch) => {\r\n const url = `${webAppUrl}/api/manager/GetManagerByUserId?userid=${userId}`;\r\n\r\n const response = await fetchWithBearerToken(url);\r\n \r\n if (response.ok) {\r\n const managerData = await response.json();\r\n dispatch({\r\n type: getManagerById,\r\n manager: managerData\r\n });\r\n }\r\n else {\r\n toast.error(`Failed fetching data. ${response.errorMessage}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n}\r\n","import { toast } from 'react-toastify';\r\n\r\nimport { tokenKey, updateManager, authUrl } from '../../constants';\r\n\r\nimport fetchWithBearerToken from '../../SharedActions/fetchWithBearerToken';\r\n\r\nexport default (entity) => async (dispatch) => {\r\n\r\n const token = sessionStorage.getItem(tokenKey);\r\n const body = JSON.stringify({\r\n \"id\": entity.id,\r\n \"firstName\": entity.firstname,\r\n \"lastName\": entity.lastname,\r\n \"nationalityId\": entity.nationalityid,\r\n \"birthPlace\": entity.birthplace,\r\n \"birthDate\": entity.birthdate,\r\n \"email\": entity.email,\r\n \"phoneNumber\": entity.telephone,\r\n \"address\": entity.address,\r\n \"photo\": entity.photo,\r\n \"position\": entity.position\r\n });\r\n\r\n const result = await fetchWithBearerToken(`${authUrl}/Account/UpdateUser`, 'POST', body);\r\n if (result.ok) {\r\n const updateResult = await result.json();\r\n if (updateResult.isSucceeded == false)\r\n\r\n toast.error(\"Account Updated\", {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n if (updateResult.isSucceeded == true)\r\n toast.success(\"Account Updated\", {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n window.location.reload();\r\n dispatch({ type: updateManager, result: new Date().toString() });\r\n }\r\n else\r\n toast.error(\"Update fail\", {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n\r\n};","import fetchWithBearerToken from '../../SharedActions/fetchWithBearerToken';\r\n\r\nimport { getHeaderDetail, webAppUrl } from '../../constants';\r\n\r\nexport default () =>async (dispatch) => {\r\n const url = `${webAppUrl}/api/Manager/GetUserDetailHeader`;\r\n\r\n const response = await fetchWithBearerToken(url);\r\n\r\n if (response.ok) {\r\n const headerDetailResult = await response.json();\r\n\r\n dispatch({\r\n type: getHeaderDetail,\r\n headerDetail: headerDetailResult\r\n });\r\n }\r\n}\r\n","import DatePicker, { registerLocale } from 'react-datepicker';\r\nimport React, { Component } from 'react';\r\nimport { FaRegCalendarAlt } from \"react-icons/fa\";\r\nimport nl from 'date-fns/locale/nl'\r\n\r\nregisterLocale(\"nl\", nl);\r\n\r\n\r\nclass DateInputField extends Component {\r\n\r\n DateCustomInput = ({ value, onClick }) => (\r\n
\r\n \r\n
\r\n );\r\n\r\n render() {\r\n\r\n const {\r\n value,\r\n field,\r\n dateFormat,\r\n disabled,\r\n extraClassName,\r\n } = this.props;\r\n\r\n\r\n const extraClass = this.props.hasError !== undefined && this.props.hasError ? 'is-invalid' : '';\r\n\r\n return (\r\n {\r\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()))\r\n this.props.onChange(this.props.field, utcDate);\r\n }}\r\n dateFormat=\"dd/MM/yyyy\" \r\n peekNextMonth\r\n showMonthDropdown\r\n showYearDropdown\r\n dropdownMode=\"select\"\r\n customInput={}\r\n />\r\n );\r\n }\r\n}\r\n\r\nexport default (DateInputField);\r\n","import { uploadProfilePicture, tokenKey, authUrl } from '../constants';\r\nimport { toast } from 'react-toastify';\r\n\r\n\r\nexport default (userId, t) => async (dispatch) => {\r\n var url = `${authUrl}/Account/ClearPhoto?userId=${userId}`;\r\n\r\n const tokenVar = sessionStorage.getItem(tokenKey);\r\n\r\n const response = await fetch(url, {\r\n method: 'POST',\r\n headers: {\r\n 'Authorization': 'Bearer ' + tokenVar\r\n }\r\n }).catch(error => { toast.error(error); });\r\n\r\n if (response.ok) {\r\n const resultContent = await response.json();\r\n\r\n //if (resultContent == null) {\r\n // toast.error(`${t('messagesfailed.uploadpic')} ${response.errorMessage}`, {\r\n // position: toast.POSITION.TOP_RIGHT\r\n // });\r\n // return;\r\n //}\r\n\r\n //toast.success(t('messagessuccess.uploadpic'), {\r\n // position: toast.POSITION.TOP_RIGHT\r\n //});\r\n\r\n dispatch({ type: uploadProfilePicture, userProfilePicture: resultContent })\r\n }\r\n};","import { fromJS } from 'immutable';\r\nimport '../../bootstrap_css/style.css';\r\nimport { connect } from 'react-redux';\r\nimport React, { Component } from 'react';\r\nimport getManager from '../../../store/Manager/actions/fetchManagerByUserId';\r\nimport { bindActionCreators } from 'redux';\r\nimport TextInputField from '../../SharedComponents/TextInputField';\r\nimport { withTranslation } from 'react-i18next';\r\nimport trashwhite from '../../images/Trash.svg';\r\nimport { routingLocationSelector } from '../../../store/general/selectors/generalSelector';\r\nimport ProfilePic from '../../SharedComponents/ProfileThumImage';\r\nimport { webAppUrl } from '../../../store/constants';\r\nimport { timeSince } from '../../../helpers/dateHelper';\r\nimport { toast } from 'react-toastify';\r\nimport uploadPicture from '../../../store/profilePicture/uploadPicture';\r\nimport updateManagerData from '../../../store/Manager/actions/updateManagerData';\r\nimport getHeaderDetail from '../../../store/users/actions/getHeaderDetail';\r\nimport { MdChevronLeft } from \"react-icons/md\";\r\nimport { formatDateOverviewPicker } from '../../../helpers/dateHelper';\r\nimport DateInputField from '../../SharedComponents/DateInputField';\r\nimport clearImage from '../../../store/profilePicture/clearImage';\r\n\r\nclass DetailManager extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n modal: false,\r\n fields: fromJS({\r\n id: '',\r\n firstname: '',\r\n lastname: '',\r\n nationality: '',\r\n birthplace: '',\r\n birthdate: '',\r\n email: '',\r\n telephone: '',\r\n address: '',\r\n role: '',\r\n datestarted: '',\r\n lastlogin: '',\r\n imgTemp: null,\r\n photoDate: '',\r\n photo: null,\r\n userPicture: '',\r\n clubname: '',\r\n clublogourl: '',\r\n }),\r\n errors: fromJS({}),\r\n userId: '',\r\n componentUpdated: false,\r\n displayed: false,\r\n };\r\n this.goBack = this.goBack.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.uploadFileChange = this.uploadFileChange.bind(this);\r\n this.saveUploadedPhoto = this.saveUploadedPhoto.bind(this);\r\n this.handleUpdate = this.handleUpdate.bind(this);\r\n this.setInvisible = this.setInvisible.bind(this);\r\n this.clear = this.clear.bind(this);\r\n\r\n this.setAlert = this.setAlert.bind(this)\r\n }\r\n\r\n handleChange(field, value) {\r\n const { fields } = this.state;\r\n this.setState({\r\n fields: this.state.fields.set(field, value),\r\n errors: this.state.errors.delete(field),\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n const { routingLocation } = this.props;\r\n\r\n if (routingLocation && routingLocation.query) {\r\n const userId = routingLocation.query['userId'];\r\n if (userId) {\r\n this.props.getManager(userId)\r\n .then(t => this.hideLoading());\r\n this.setState({\r\n userId: userId,\r\n })\r\n }\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const { managerData, profilePictureUpload, updatedManager } = this.props;\r\n if (updatedManager && updatedManager != prevProps.updatedManager) {\r\n this.props.getHeaderDetail()\r\n .then(t => this.hideLoading());\r\n }\r\n\r\n if (profilePictureUpload && profilePictureUpload !== prevProps.profilePictureUpload) {\r\n this.saveUploadedPhoto(profilePictureUpload);\r\n }\r\n\r\n if (managerData && prevProps.managerData != managerData) {\r\n\r\n this.setState({\r\n fields: fromJS({\r\n firstname: managerData.firstName,\r\n lastname: managerData.lastName,\r\n nationalityid: managerData.nationalityId,\r\n nationality: managerData.nationality,\r\n birthplace: managerData.birthPlace,\r\n birthdate: managerData.birthDate,\r\n email: managerData.email,\r\n telephone: managerData.phoneNumber,\r\n address: managerData.address,\r\n role: managerData.role,\r\n datestarted: managerData.dateStarted,\r\n lastlogin: managerData.lastLogin,\r\n userpicture: managerData.userPicture,\r\n clubname: managerData.clubName,\r\n clublogourl: managerData.clubLogoUrl,\r\n }),\r\n componentUpdated: false,\r\n })\r\n }\r\n }\r\n\r\n saveUploadedPhoto(e) {\r\n this.setState({\r\n fields: this.state.fields.set('photo', e.id),\r\n errors: this.state.errors.delete('photo')\r\n });\r\n }\r\n\r\n goBack(e) {\r\n this.props.history.goBack();\r\n e.preventDefault();\r\n }\r\n\r\n uploadFileChange(e) {\r\n const files = e.target.files;\r\n const { userId } = this.state;\r\n const { t, uploadPicture, getManager } = this.props;\r\n if (files === undefined) return;\r\n\r\n let formData = new FormData();\r\n let fileType = '';\r\n\r\n if (files[0] !== null) {\r\n fileType = files[0].type;\r\n }\r\n\r\n if (files[0].size > '6000000') {\r\n toast.success(\"file size limit\", {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n return;\r\n }\r\n\r\n if (fileType !== 'image/png' && fileType !== 'image/jpeg' && fileType !== 'image/jpg') {\r\n\r\n toast.success(\"format not allowed\", {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n return;\r\n }\r\n\r\n formData.append('file', files[0]);\r\n\r\n const dateTag = new Date().toString().replace('+', ' ');\r\n\r\n let newFields = this.state.fields.set('imgTemp', URL.createObjectURL(files[0]));\r\n\r\n newFields = newFields.set('photoDate', dateTag);\r\n\r\n this.setState({\r\n fields: newFields\r\n });\r\n\r\n uploadPicture(formData, dateTag, userId, t)\r\n .then(t => {\r\n getManager(userId);\r\n this.hideLoading();\r\n });\r\n }\r\n\r\n clear() {\r\n const i = document.querySelector('.upload-detail');\r\n const { t, clearImage, getManager } = this.props;\r\n const { userId } = this.state;\r\n\r\n clearImage(userId, t)\r\n .then(t => {\r\n i.value = '';\r\n getManager(userId);\r\n this.hideLoading();\r\n });\r\n }\r\n\r\n handleUpdate() {\r\n const { fields } = this.state;\r\n\r\n const { routingLocation } = this.props;\r\n\r\n const entity = fields.toJS();\r\n\r\n entity.id = routingLocation.query['userId'];\r\n\r\n //validation\r\n\r\n const simpleEmailRegexp = new RegExp('[^@]+@[^\\.]+\\..+');\r\n\r\n const hasValidEmail = simpleEmailRegexp.test(fields.get('email'));\r\n if (!hasValidEmail) {\r\n toast.success(\"invalid email format\", {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n return;\r\n }\r\n //end of validation\r\n\r\n this.props.updateManagerData(entity);\r\n }\r\n\r\n setInvisible(e) {\r\n const { displayed } = this.state;\r\n\r\n this.setState({ displayed: !displayed });\r\n }\r\n\r\n setAlert(e) {\r\n alert('throw');\r\n }\r\n\r\n hideLoading() {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n }\r\n\r\n handleDateChange = (field, d) => {\r\n\r\n this.setState({\r\n fields: this.state.fields.set(field, d)\r\n });\r\n }\r\n\r\n render() {\r\n const { t } = this.props;\r\n const { fields } = this.state;\r\n\r\n const hasPicture = fields.get('imgTemp') == null || fields.get('imgTemp') === undefined ? false : true;\r\n\r\n return (
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {/*
*/}\r\n {/* \"asdf\"*/}\r\n {/*
*/}\r\n
\r\n
\r\n \r\n {hasPicture && \"\"}\r\n {!hasPicture && }\r\n \"\"\r\n \"\"\r\n
\r\n
\r\n
\r\n
{fields.get('firstname') + ' ' + fields.get('lastname')}
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{t('general.activesince')}:{fields.get('datestarted')}
{t('general.lastlogin')}:{fields.get('lastlogin') ? fields.get('lastlogin') : ''}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{t('general.role')}\r\n this.handleChange(field, value)} value={fields.get('role')}\r\n extraClassName={'disabled-field-bg'}\r\n />\r\n
{t('general.firstname')} this.handleChange(field, value)} value={fields.get('firstname')} />
{t('general.lastname')} this.handleChange(field, value)} value={fields.get('lastname')} />
{t('generaldetail.nationality')}\r\n this.handleChange(field, value)} value={fields.get('nationality')}\r\n extraClassName={'disabled-field-bg'}\r\n />\r\n
{t('generaldetail.birthplace')} this.handleChange(field, value)} value={fields.get('birthplace')} />
{t('generaldetail.birthdate')}\r\n this.handleDateChange(field, new Date(date))}\r\n />\r\n
{t('general.e-mail')}\r\n this.handleChange(field, value)} \r\n value={fields.get('email')}\r\n extraClassName={'disabled-field-bg'}\r\n />\r\n
{t('generaldetail.telephone')}\r\n this.handleChange(field, value)} value={fields.get('telephone')} />\r\n
{t('generaldetail.address')}\r\n this.handleChange(field, value)} value={fields.get('address')}\r\n extraClassName={'disabled-field-bg'}\r\n />\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
);\r\n }\r\n}\r\n\r\nexport default connect((state) => {\r\n return {\r\n managerData: state.manager.manager,\r\n updatedManager: state.manager.updatedManager,\r\n routingLocation: routingLocationSelector(state),\r\n profilePictureUpload: state.profilePicture.profilePictureUpload\r\n }\r\n},\r\n dispatch => bindActionCreators({\r\n getManager,\r\n uploadPicture,\r\n clearImage,\r\n updateManagerData,\r\n getHeaderDetail\r\n }, dispatch))(withTranslation()(DetailManager));","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TableRow,\r\n TableSortLabel\r\n} from '@material-ui/core';\r\n\r\nimport { lighten, makeStyles } from '@material-ui/core/styles';\r\nimport { Input } from 'reactstrap';\r\nimport roundplus from '../images/round_plus_icon.svg';\r\nimport { MdChevronRight } from \"react-icons/md\";\r\nimport { FaCaretUp } from 'react-icons/fa';\r\nimport { Link } from 'react-router-dom';\r\nimport { timeSince } from '../../helpers/dateHelper';\r\nimport { fromJS } from 'immutable';\r\nimport ProfilePic from '../SharedComponents/ProfileThumImage';\r\n\r\nfunction descendingComparator(a, b, orderBy) {\r\n if (b[orderBy] < a[orderBy]) {\r\n return -1;\r\n }\r\n if (b[orderBy] > a[orderBy]) {\r\n return 1;\r\n }\r\n return 0;\r\n}\r\n\r\nfunction getComparator(order, orderBy) {\r\n return order === 'desc'\r\n ? (a, b) => descendingComparator(a, b, orderBy)\r\n : (a, b) => -descendingComparator(a, b, orderBy);\r\n}\r\n\r\nfunction stableSort(array, comparator) {\r\n const stabilizedThis = array.map((el, index) => [el, index]);\r\n stabilizedThis.sort((a, b) => {\r\n const order = comparator(a[0], b[0]);\r\n if (order !== 0) return order;\r\n return a[1] - b[1];\r\n });\r\n return stabilizedThis.map((el) => el[0]);\r\n}\r\n\r\nfunction EnhancedTableHead(props) {\r\n const { classes, onSelectAllClick, order, orderBy, numSelected, rowCount, onRequestSort, headCells } = props;\r\n const createSortHandler = (property) => (event) => {\r\n onRequestSort(event, property);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {headCells.map((headCell) => (\r\n \r\n {headCell.label != 'View' &&\r\n < TableSortLabel\r\n active={orderBy === headCell.id}\r\n direction={orderBy === headCell.id ? order : 'asc'}\r\n onClick={createSortHandler(headCell.id)}\r\n IconComponent={FaCaretUp}\r\n >\r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n }\r\n {\r\n headCell.label == 'View' &&\r\n {headCell.label}\r\n }\r\n \r\n ))}\r\n \r\n \r\n );\r\n}\r\n\r\nEnhancedTableHead.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n numSelected: PropTypes.number.isRequired,\r\n onRequestSort: PropTypes.func.isRequired,\r\n onSelectAllClick: PropTypes.func.isRequired,\r\n order: PropTypes.oneOf(['asc', 'desc']).isRequired,\r\n orderBy: PropTypes.string.isRequired,\r\n rowCount: PropTypes.number.isRequired,\r\n};\r\n\r\nconst useToolbarStyles = makeStyles((theme) => ({\r\n root: {\r\n paddingLeft: theme.spacing(2),\r\n paddingRight: theme.spacing(1),\r\n },\r\n highlight:\r\n theme.palette.type === 'light'\r\n ? {\r\n color: theme.palette.secondary.main,\r\n backgroundColor: lighten(theme.palette.secondary.light, 0.85),\r\n }\r\n : {\r\n color: theme.palette.text.primary,\r\n backgroundColor: theme.palette.secondary.dark,\r\n },\r\n title: {\r\n flex: '1 1 100%',\r\n },\r\n}));\r\n\r\nconst EnhancedTableToolbar = (props) => {\r\n const classes = useToolbarStyles();\r\n const { numSelected, rows, t } = props;\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nEnhancedTableToolbar.propTypes = {\r\n numSelected: PropTypes.number.isRequired,\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n width: '100%',\r\n },\r\n paper: {\r\n width: '100%',\r\n marginBottom: theme.spacing(2),\r\n },\r\n table: {\r\n minWidth: 750,\r\n },\r\n visuallyHidden: {\r\n border: 0,\r\n clip: 'rect(0 0 0 0)',\r\n height: 1,\r\n margin: -1,\r\n overflow: 'hidden',\r\n padding: 0,\r\n position: 'absolute',\r\n top: 20,\r\n width: 1,\r\n },\r\n buttonInvitation: {\r\n\r\n background: 'grey',\r\n border: 0,\r\n borderRadius: 10,\r\n boxShadow: '0 3px 5px 2px ',\r\n color: 'white',\r\n height: 40,\r\n padding: '0 5px',\r\n textTransform: 'none'\r\n }\r\n}));\r\n\r\nexport default function EnhancedTable(props) {\r\n const classes = useStyles();\r\n const [order, setOrder] = React.useState('asc');\r\n const [orderBy, setOrderBy] = React.useState('calories');\r\n const [selected, setSelected] = React.useState([]);\r\n const [page, setPage] = React.useState(0);\r\n const [dense, setDense] = React.useState(false);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(5);\r\n const handleRequestSort = (event, property) => {\r\n const isAsc = orderBy === property && order === 'asc';\r\n setOrder(isAsc ? 'desc' : 'asc');\r\n setOrderBy(property);\r\n };\r\n\r\n const { rows, handlePopulateUser, teamId } = props;\r\n\r\n const handleSelectAllClick = (event) => {\r\n if (event.target.checked) {\r\n const newSelecteds = rows.map((n) => n.teamTrainerId);\r\n setSelected(newSelecteds);\r\n handlePopulateUser(newSelecteds, false);\r\n\r\n return;\r\n }\r\n setSelected([]);\r\n handlePopulateUser(fromJS([]), false);\r\n };\r\n\r\n const handleClick = (event, name) => {\r\n const selectedIndex = selected.indexOf(name);\r\n let newSelected = [];\r\n\r\n if (selectedIndex === -1) {\r\n newSelected = newSelected.concat(selected, name);\r\n } else if (selectedIndex === 0) {\r\n newSelected = newSelected.concat(selected.slice(1));\r\n } else if (selectedIndex === selected.length - 1) {\r\n newSelected = newSelected.concat(selected.slice(0, -1));\r\n } else if (selectedIndex > 0) {\r\n newSelected = newSelected.concat(\r\n selected.slice(0, selectedIndex),\r\n selected.slice(selectedIndex + 1),\r\n );\r\n }\r\n\r\n setSelected(newSelected);\r\n handlePopulateUser(newSelected, false);\r\n };\r\n\r\n const handleChangePage = (event, newPage) => {\r\n\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (event) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const isSelected = (name) => selected.indexOf(name) !== -1;\r\n\r\n const emptyRows = rowsPerPage - Math.min(rowsPerPage, rows.length - page * rowsPerPage);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {stableSort(rows, getComparator(order, orderBy))\r\n .map((row, index) => {\r\n const isItemSelected = isSelected(row.id);\r\n const labelId = `enhanced-table-checkbox-${index}`;\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n a[orderBy]) {\r\n return 1;\r\n }\r\n return 0;\r\n}\r\n\r\nfunction getComparator(order, orderBy) {\r\n return order === 'desc'\r\n ? (a, b) => descendingComparator(a, b, orderBy)\r\n : (a, b) => -descendingComparator(a, b, orderBy);\r\n}\r\n\r\nfunction stableSort(array, comparator) {\r\n const stabilizedThis = array.map((el, index) => [el, index]);\r\n stabilizedThis.sort((a, b) => {\r\n const order = comparator(a[0], b[0]);\r\n if (order !== 0) return order;\r\n return a[1] - b[1];\r\n });\r\n return stabilizedThis.map((el) => el[0]);\r\n}\r\n\r\nfunction EnhancedTableHead(props) {\r\n const { classes, onSelectAllClick, order, orderBy, numSelected, rowCount, onRequestSort, headCells } = props;\r\n const createSortHandler = (property) => (event) => {\r\n onRequestSort(event, property);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {headCells.map((headCell) => (\r\n \r\n {headCell.label != 'View' &&\r\n < TableSortLabel\r\n active={orderBy === headCell.id}\r\n direction={orderBy === headCell.id ? order : 'asc'}\r\n onClick={createSortHandler(headCell.id)}\r\n IconComponent={FaCaretUp}\r\n >\r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n }\r\n {\r\n headCell.label == 'View' &&\r\n {headCell.label}\r\n }\r\n \r\n ))}\r\n \r\n \r\n );\r\n}\r\n\r\nEnhancedTableHead.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n numSelected: PropTypes.number.isRequired,\r\n onRequestSort: PropTypes.func.isRequired,\r\n onSelectAllClick: PropTypes.func.isRequired,\r\n order: PropTypes.oneOf(['asc', 'desc']).isRequired,\r\n orderBy: PropTypes.string.isRequired,\r\n rowCount: PropTypes.number.isRequired,\r\n};\r\n\r\nconst useToolbarStyles = makeStyles((theme) => ({\r\n root: {\r\n paddingLeft: theme.spacing(2),\r\n paddingRight: theme.spacing(1),\r\n },\r\n highlight:\r\n theme.palette.type === 'light'\r\n ? {\r\n color: theme.palette.secondary.main,\r\n backgroundColor: lighten(theme.palette.secondary.light, 0.85),\r\n }\r\n : {\r\n color: theme.palette.text.primary,\r\n backgroundColor: theme.palette.secondary.dark,\r\n },\r\n title: {\r\n flex: '1 1 100%',\r\n },\r\n}));\r\n\r\nconst EnhancedTableToolbar = (props) => {\r\n const classes = useToolbarStyles();\r\n const { numSelected, rows, toggle, t } = props;\r\n\r\n return (\r\n
\r\n
{t('general.all') + ' ' + t('players.lowerplayers')}
{rows.length}
\r\n \r\n
\r\n );\r\n};\r\n\r\nEnhancedTableToolbar.propTypes = {\r\n numSelected: PropTypes.number.isRequired,\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n width: '100%',\r\n },\r\n paper: {\r\n width: '100%',\r\n marginBottom: theme.spacing(2),\r\n },\r\n table: {\r\n minWidth: 750,\r\n },\r\n visuallyHidden: {\r\n border: 0,\r\n clip: 'rect(0 0 0 0)',\r\n height: 1,\r\n margin: -1,\r\n overflow: 'hidden',\r\n padding: 0,\r\n position: 'absolute',\r\n top: 20,\r\n width: 1,\r\n },\r\n buttonInvitation: {\r\n\r\n background: 'grey',\r\n border: 0,\r\n borderRadius: 10,\r\n boxShadow: '0 3px 5px 2px ',\r\n color: 'white',\r\n height: 40,\r\n padding: '0 5px',\r\n textTransform: 'none'\r\n }\r\n}));\r\n\r\nexport default function EnhancedTable(props) {\r\n const classes = useStyles();\r\n const [order, setOrder] = React.useState('asc');\r\n const [orderBy, setOrderBy] = React.useState('calories');\r\n const [selected, setSelected] = React.useState([]);\r\n const [page, setPage] = React.useState(0);\r\n const [dense, setDense] = React.useState(false);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(5);\r\n const handleRequestSort = (event, property) => {\r\n const isAsc = orderBy === property && order === 'asc';\r\n setOrder(isAsc ? 'desc' : 'asc');\r\n setOrderBy(property);\r\n };\r\n\r\n const { rows, handlePopulateUser, toggle, teamId } = props;\r\n\r\n const handleSelectAllClick = (event) => {\r\n\r\n if (event.target.checked) {\r\n const newSelecteds = rows.map((n) => n.teamPlayerId);\r\n setSelected(newSelecteds);\r\n handlePopulateUser(newSelecteds, true);\r\n return;\r\n }\r\n setSelected([]);\r\n handlePopulateUser(fromJS([]), true);\r\n };\r\n\r\n const handleClick = (event, name) => {\r\n const selectedIndex = selected.indexOf(name);\r\n let newSelected = [];\r\n\r\n if (selectedIndex === -1) {\r\n newSelected = newSelected.concat(selected, name);\r\n } else if (selectedIndex === 0) {\r\n newSelected = newSelected.concat(selected.slice(1));\r\n } else if (selectedIndex === selected.length - 1) {\r\n newSelected = newSelected.concat(selected.slice(0, -1));\r\n } else if (selectedIndex > 0) {\r\n newSelected = newSelected.concat(\r\n selected.slice(0, selectedIndex),\r\n selected.slice(selectedIndex + 1),\r\n );\r\n }\r\n\r\n setSelected(newSelected);\r\n handlePopulateUser(newSelected, true);\r\n };\r\n\r\n const handleChangePage = (event, newPage) => {\r\n\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (event) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const isSelected = (name) => selected.indexOf(name) !== -1;\r\n\r\n const emptyRows = rowsPerPage - Math.min(rowsPerPage, rows.length - page * rowsPerPage);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {stableSort(rows, getComparator(order, orderBy))\r\n .map((row, index) => {\r\n const isItemSelected = isSelected(row.id);\r\n const labelId = `enhanced-table-checkbox-${index}`;\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n a[orderBy]) {\r\n return 1;\r\n }\r\n return 0;\r\n}\r\n\r\nfunction getComparator(order, orderBy) {\r\n return order === 'desc'\r\n ? (a, b) => descendingComparator(a, b, orderBy)\r\n : (a, b) => -descendingComparator(a, b, orderBy);\r\n}\r\n\r\nfunction stableSort(array, comparator) {\r\n const stabilizedThis = array.map((el, index) => [el, index]);\r\n stabilizedThis.sort((a, b) => {\r\n const order = comparator(a[0], b[0]);\r\n if (order !== 0) return order;\r\n return a[1] - b[1];\r\n });\r\n return stabilizedThis.map((el) => el[0]);\r\n}\r\n\r\nfunction EnhancedTableHead(props) {\r\n const { classes, onSelectAllClick, order, orderBy, numSelected, rowCount, onRequestSort, headCells } = props;\r\n const createSortHandler = (property) => (event) => {\r\n onRequestSort(event, property);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {headCells.map((headCell) => (\r\n \r\n \r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n \r\n ))}\r\n \r\n \r\n );\r\n}\r\n\r\nEnhancedTableHead.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n numSelected: PropTypes.number.isRequired,\r\n onRequestSort: PropTypes.func.isRequired,\r\n onSelectAllClick: PropTypes.func.isRequired,\r\n order: PropTypes.oneOf(['asc', 'desc']).isRequired,\r\n orderBy: PropTypes.string.isRequired,\r\n rowCount: PropTypes.number.isRequired,\r\n};\r\n\r\nconst useToolbarStyles = makeStyles((theme) => ({\r\n root: {\r\n paddingLeft: theme.spacing(2),\r\n paddingRight: theme.spacing(1),\r\n },\r\n highlight:\r\n theme.palette.type === 'light'\r\n ? {\r\n color: theme.palette.secondary.main,\r\n backgroundColor: lighten(theme.palette.secondary.light, 0.85),\r\n }\r\n : {\r\n color: theme.palette.text.primary,\r\n backgroundColor: theme.palette.secondary.dark,\r\n },\r\n title: {\r\n flex: '1 1 100%',\r\n },\r\n}));\r\n\r\nconst EnhancedTableToolbar = (props) => {\r\n const classes = useToolbarStyles();\r\n const { numSelected, rows, toggle } = props;\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nEnhancedTableToolbar.propTypes = {\r\n numSelected: PropTypes.number.isRequired,\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n width: '100%'\r\n },\r\n paper: {\r\n width: '100%',\r\n marginBottom: theme.spacing(2),\r\n },\r\n table: {\r\n minWidth: 750,\r\n },\r\n visuallyHidden: {\r\n border: 0,\r\n clip: 'rect(0 0 0 0)',\r\n height: 1,\r\n margin: -1,\r\n overflow: 'hidden',\r\n padding: 0,\r\n position: 'absolute',\r\n top: 20,\r\n width: 1,\r\n },\r\n buttonInvitation: {\r\n\r\n background: 'grey',\r\n border: 0,\r\n borderRadius: 10,\r\n boxShadow: '0 3px 5px 2px ',\r\n color: 'white',\r\n height: 40,\r\n padding: '0 5px',\r\n textTransform: 'none'\r\n }\r\n}));\r\n\r\nexport default function EnhancedTable(props) {\r\n const classes = useStyles();\r\n const [order, setOrder] = React.useState('asc');\r\n const [orderBy, setOrderBy] = React.useState('calories');\r\n const [selected, setSelected] = React.useState([]);\r\n const [page, setPage] = React.useState(0);\r\n const [dense, setDense] = React.useState(false);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(5);\r\n const handleRequestSort = (event, property) => {\r\n const isAsc = orderBy === property && order === 'asc';\r\n setOrder(isAsc ? 'desc' : 'asc');\r\n setOrderBy(property);\r\n };\r\n\r\n const { rows, handlePopulateUser, toggle, teamHeader} = props;\r\n\r\n const handleSelectAllClick = (event) => {\r\n\r\n if (event.target.checked) {\r\n const newSelecteds = rows.map((n) => n.userId);\r\n setSelected(newSelecteds);\r\n handlePopulateUser(newSelecteds, true);\r\n return;\r\n }\r\n setSelected([]);\r\n handlePopulateUser(fromJS([]), true);\r\n };\r\n\r\n const handleClick = (event, name) => {\r\n const selectedIndex = selected.indexOf(name);\r\n let newSelected = [];\r\n\r\n if (selectedIndex === -1) {\r\n newSelected = newSelected.concat(selected, name);\r\n } else if (selectedIndex === 0) {\r\n newSelected = newSelected.concat(selected.slice(1));\r\n } else if (selectedIndex === selected.length - 1) {\r\n newSelected = newSelected.concat(selected.slice(0, -1));\r\n } else if (selectedIndex > 0) {\r\n newSelected = newSelected.concat(\r\n selected.slice(0, selectedIndex),\r\n selected.slice(selectedIndex + 1),\r\n );\r\n }\r\n\r\n setSelected(newSelected);\r\n handlePopulateUser(newSelected, props.status == 'player'? true:false);\r\n };\r\n\r\n const handleChangePage = (event, newPage) => {\r\n\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (event) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n\r\n const isSelected = (name) => selected.indexOf(name) !== -1;\r\n\r\n const emptyRows = rowsPerPage - Math.min(rowsPerPage, rows.length - page * rowsPerPage);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {stableSort(rows, getComparator(order, orderBy))\r\n .map((row, index) => {\r\n const isItemSelected = isSelected(row.userId);\r\n const labelId = `enhanced-table-checkbox-${index}`;\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n
{`${row.firstName} ${row.lastName}`}
\r\n
\r\n
\r\n\r\n \r\n
\r\n \"\"
\r\n
{row.teamName}
\r\n
\r\n
\r\n \r\n );\r\n })}\r\n {emptyRows > 0 && (\r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n
\r\n {\r\n //\r\n }\r\n
\r\n );\r\n}\r\n","import { toast } from 'react-toastify';\r\nimport fetchWithBearerToken from '../../SharedActions/fetchWithBearerToken';\r\nimport { webAppUrl, fetchTeamTrainerOverview } from '../../constants';\r\n\r\nexport default (t, clubSeasonId) => async (dispatch) => {\r\n var tes = clubSeasonId !== null ? (clubSeasonId !== undefined ? \"&&clubSeasonId=\" + clubSeasonId : '') : '';\r\n const url = `${webAppUrl}/api/trainer/GetTrainerOverviewByClubId?teamId=${t}${clubSeasonId !== null ? (clubSeasonId !== undefined ? \"&&clubSeasonId=\" + clubSeasonId : '') : ''}`; \r\n const response = await fetchWithBearerToken(url);\r\n \r\n if (response.ok) {\r\n const teamDetails = await response.json();\r\n dispatch({\r\n type: fetchTeamTrainerOverview,\r\n teamDetails\r\n });\r\n }\r\n else {\r\n toast.error(`Failed fetching data. ${response.errorMessage}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n}\r\n","import { webAppUrl, getPlayerOverview } from '../../constants';\r\nimport { toast } from 'react-toastify';\r\nimport fetchWithBearerToken from '../../SharedActions/fetchWithBearerToken';\r\nimport { fromJS } from 'immutable';\r\n\r\nexport default (t, clubSeasonId) => async (dispatch) => {\r\n\r\n const response = await fetchWithBearerToken(`${webAppUrl}/api/Player/GetTeamPlayerOverview?teamId=${t}${clubSeasonId !== null ? (clubSeasonId !== undefined ? \"&&clubSeasonId=\" + clubSeasonId : '') : ''}`);\r\n \r\n if (response.ok) {\r\n if (response.status === 204) {\r\n dispatch({\r\n type: getPlayerOverview,\r\n players: []\r\n });\r\n }\r\n else {\r\n const players = await response.json();\r\n \r\n dispatch({\r\n type: getPlayerOverview,\r\n players\r\n });\r\n }\r\n }\r\n else {\r\n toast.error(`Failed fetching data. ${response.errorMessage}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n};","import { toast } from 'react-toastify';\r\nimport { webAppUrl, tokenKey } from '../../constants';\r\nimport fetchPlayerOverview from '../../../store/TeamDetail/Action/fetchPlayerOverview';\r\n\r\nexport default (teamPlayers,teamId) => async (dispatch) => {\r\n let url = `${webAppUrl}/api/Player/RemovePlayersFromTeam`;\r\n\r\n let response = await fetch(url, {\r\n method: `POST`,\r\n headers: {\r\n 'Authorization': `Bearer ${sessionStorage.getItem(tokenKey)}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n , body: JSON.stringify(teamPlayers)\r\n });\r\n\r\n if (response.ok) {\r\n toast.success(`Succesfully removed players`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n dispatch(fetchPlayerOverview(teamId));\r\n\r\n }\r\n else {\r\n toast.success(`Failed remove data. ${response.errorMessage}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n}\r\n","import { toast } from 'react-toastify';\r\nimport { webAppUrl, tokenKey } from '../../constants';\r\nimport fetchTrainerOverview from '../../../store/TeamDetail/Action/fetchTrainerOverview';\r\n\r\nexport default (teamTrainers,teamId) => async (dispatch) => {\r\n let url = `${webAppUrl}/api/Trainer/RemoveTrainersFromTeam`;\r\n\r\n let response = await fetch(url, {\r\n method: `POST`,\r\n headers: {\r\n 'Authorization': `Bearer ${sessionStorage.getItem(tokenKey)}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n , body: JSON.stringify(teamTrainers)\r\n });\r\n\r\n if (response.ok) {\r\n toast.success(`Succesfully removed trainers`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n dispatch(fetchTrainerOverview(teamId));\r\n }\r\n else {\r\n toast.success(`Failed remove data. ${response.errorMessage}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n}\r\n","import { toast } from 'react-toastify';\r\nimport { webAppUrl, tokenKey } from '../../constants';\r\nimport fetchPlayerOverview from '../../../store/TeamDetail/Action/fetchPlayerOverview';\r\nimport fetchTrainerOverview from '../../../store/TeamDetail/Action/fetchTrainerOverview';\r\n\r\nexport default (teamPlayers, teamId, type, source, t) => async (dispatch) => {\r\n let url = `${webAppUrl}/api/Player/ChangeTeam`;\r\n const requestBody = JSON.stringify({ userId: teamPlayers, newTeamId: teamId, type });\r\n\r\n let response = await fetch(url, {\r\n method: `POST`,\r\n headers: {\r\n 'Authorization': `Bearer ${sessionStorage.getItem(tokenKey)}`,\r\n 'Content-Type': 'application/json'\r\n }\r\n , body: requestBody\r\n });\r\n\r\n if (response.ok) {\r\n toast.success(t('messagessuccess.changeteam'), {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n if (source == 'detail') {\r\n window.location.reload();\r\n }\r\n if (source == 'team') {\r\n dispatch(fetchPlayerOverview(teamId));\r\n dispatch(fetchTrainerOverview(teamId));\r\n }\r\n\r\n }\r\n else {\r\n toast.success(`${t('messagesfailed.changeteam')} ${response.errorMessage}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n}\r\n","import fetchWithBearerToken from '../../SharedActions/fetchWithBearerToken';\r\n\r\nimport { getAvailablePlayers, getAvailableTrainers, webAppUrl } from '../../constants';\r\n\r\nexport default (e) => async (dispatch) => {\r\n const url = `${webAppUrl}/api/Manager/getAvailablePlayersOrTrainers?key=${e}`;\r\n \r\n const response = await fetchWithBearerToken(url);\r\n\r\n if (response.ok) {\r\n const searchResult = await response.json();\r\n e == 'player' &&\r\n dispatch({\r\n type: getAvailablePlayers,\r\n result: searchResult\r\n });\r\n\r\n e == 'trainer' && \r\n dispatch({\r\n type: getAvailableTrainers,\r\n result: searchResult\r\n });\r\n }\r\n}\r\n","import fetchWithBearerToken from '../../SharedActions/fetchWithBearerToken';\r\n\r\nimport { getTeamDetail, webAppUrl } from '../../constants';\r\n\r\nexport default (e) => async (dispatch) => {\r\n const url = `${webAppUrl}/api/Team/GetTeamDetail?teamId=${e}`;\r\n \r\n const response = await fetchWithBearerToken(url);\r\n\r\n if (response.ok) {\r\n const searchResult = await response.json();\r\n\r\n dispatch({\r\n type: getTeamDetail,\r\n result: searchResult\r\n });\r\n }\r\n}\r\n","import { toast } from 'react-toastify';\r\nimport { webAppUrl, tokenKey, addPlayerTrainers } from '../../constants';\r\nimport fetchWithBearerToken from '../../SharedActions/fetchWithBearerToken';\r\nimport fetchPlayerOverview from '../../../store/TeamDetail/Action/fetchPlayerOverview';\r\nimport fetchTrainerOverview from '../../../store/TeamDetail/Action/fetchTrainerOverview';\r\n\r\nexport default (teamPlayers, teamId, type, t) => async (dispatch) => {\r\n\r\n let url = `${webAppUrl}/api/Team/${type == 'player' ? 'AddPlayerToTeam' : 'AddTrainerToTeam'}`;\r\n\r\n const requestBody = JSON.stringify({ user: teamPlayers, newTeamId: teamId });\r\n\r\n const response = await fetchWithBearerToken(url, 'POST', requestBody);\r\n\r\n if (response.ok) {\r\n toast.success(t('messagessuccess.addresult'), {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n\r\n dispatch(fetchPlayerOverview(teamId));\r\n dispatch(fetchTrainerOverview(teamId));\r\n }\r\n else {\r\n toast.error(`${t('messagesfailed.addresult')} ${response.errorMessage}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport teamLogo from '../images/Team_logo.png'\r\nimport { MdChevronLeft } from \"react-icons/md\";\r\nimport TrainerTable from './TrainerTable';\r\nimport PlayerTable from './PlayerTable';\r\nimport ChangePlayerModalTable from './ChangePlayerModal';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport fetchTrainerOverview from '../../store/TeamDetail/Action/fetchTrainerOverview';\r\nimport soccerIcon from '../../constants/Images/soccer_icon.svg';\r\nimport trashwhite from '../images/Trash.svg';\r\nimport { Modal, Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';\r\nimport { fromJS } from 'immutable';\r\nimport { toast } from 'react-toastify';\r\nimport removeTeamPlayers from '../../store/TeamDetail/Action/removeTeamPlayers';\r\nimport removeTeamTrainers from '../../store/TeamDetail/Action/removeTeamTrainers';\r\nimport getInvitedPlayers from '../../store/TeamDetail/Action/fetchPlayerOverview';\r\nimport { routingLocationSelector } from '../../store/general/selectors/generalSelector';\r\nimport getTeams from '../../store/MasterData/getTeams';\r\nimport changeTeamPlayers from '../../store/TeamDetail/Action/changeTeamPlayers';\r\nimport getSeason from '../../store/MasterData/getSeason';\r\nimport getAvailablePlayersOrTrainers from '../../store/Manager/actions/getAvailablePlayersOrTrainers';\r\nimport getTeamHeader from '../../store/TeamDetail/Action/getTeamDetail';\r\nimport addPlayersTrainers from '../../store/TeamDetail/Action/addTrainersPlayers';\r\nimport editicon from '../images/edit_ic.svg';\r\nimport TextInputField from '../SharedComponents/TextInputField';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport addTeam from '../../store/Teams/Action/addTeam';\r\n\r\nclass TeamDetail extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n modal: false,\r\n teamModal: false,\r\n seasonDropDownIsOpen: false,\r\n changeTeam: false,\r\n addPlayer: false,\r\n dataplayer: fromJS([]),\r\n changeModalStatus: '',\r\n newTeam: '',\r\n selectedRow: [],\r\n datatrainer: fromJS([]),\r\n dataplayerchange: fromJS([]),\r\n datatrainerchange: fromJS([]),\r\n trainersGridData: [],\r\n playersGridData: [],\r\n changeTeamData: [],\r\n teamId: '',\r\n teamName: '',\r\n division: '',\r\n filteredSeason: '',\r\n initfilteredSeason: true,\r\n }\r\n this.goBack = this.goBack.bind(this);\r\n this.handleRemove = this.handleRemove.bind(this);\r\n this.setSelectedRow = this.setSelectedRow.bind(this);\r\n this.closeModal = this.closeModal.bind(this);\r\n this.setTeam = this.setTeam.bind(this);\r\n this.handleTeamChange = this.handleTeamChange.bind(this);\r\n this.toggleItem = this.toggleItem.bind(this);\r\n this.handleOnSelectSeason = this.handleOnSelectSeason.bind(this);\r\n }\r\n\r\n hideLoading() {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n }\r\n\r\n setSelectedRow(e) {\r\n const { selectedRow } = this.state;\r\n\r\n var rows = selectedRow;\r\n\r\n rows.push(e);\r\n\r\n this.setState({\r\n selectedRow: rows\r\n });\r\n }\r\n\r\n toggleItem = () => {\r\n const { seasonDropDownIsOpen } = this.state;\r\n\r\n this.setState({\r\n seasonDropDownIsOpen: !seasonDropDownIsOpen\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n\r\n const { routingLocation } = this.props;\r\n\r\n Promise.all([\r\n this.props.getTeamHeader(routingLocation.query['teamId']),\r\n this.props.getTeams(),\r\n this.props.getSeason(),\r\n this.props.fetchTrainerOverview(routingLocation.query['teamId']),\r\n this.props.getInvitedPlayers(routingLocation.query['teamId'])])\r\n .then(t => this.hideLoading());\r\n\r\n this.setState({\r\n teamId: routingLocation.query['teamId']\r\n });\r\n }\r\n\r\n goBack(e) {\r\n this.props.history.goBack();\r\n e.preventDefault();\r\n }\r\n\r\n toggle = (e) => {\r\n const { modal, changeTeam, addPlayer } = this.state;\r\n const { t } = this.props;\r\n if (e == 'delete') {\r\n this.setState({\r\n modal: !modal,\r\n });\r\n }\r\n if (e == 'add') {\r\n this.props.getAvailablePlayersOrTrainers('player')\r\n .then(t => this.hideLoading());\r\n this.setState({\r\n addPlayer: !addPlayer,\r\n changeModalStatus: t('players.singlelowerplayer')\r\n });\r\n }\r\n if (e == 'addTrainer') {\r\n this.props.getAvailablePlayersOrTrainers('trainer')\r\n .then(t => this.hideLoading());\r\n this.setState({\r\n addPlayer: !addPlayer,\r\n changeModalStatus: t('trainers.singletitlelower')\r\n });\r\n }\r\n if (e == 'change') {\r\n this.setState({\r\n changeTeam: !changeTeam,\r\n });\r\n }\r\n }\r\n\r\n prepareToRemove = () => {\r\n const { dataplayer, datatrainer } = this.state;\r\n const { t } = this.props;\r\n if (dataplayer.size == 0 && datatrainer.size == 0) {\r\n toast.error(t('validationerror.noselecteditems'), {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n else\r\n this.toggle('delete');\r\n }\r\n\r\n prepareToChange = () => {\r\n const { dataplayer, datatrainer } = this.state;\r\n const { t } = this.props;\r\n if (dataplayer.size == 0 && datatrainer.size == 0) {\r\n toast.error(t('validationerror.noselecteditems'), {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n else\r\n this.toggle('change');\r\n\r\n }\r\n\r\n handleRemove = () => {\r\n const { dataplayer, datatrainer } = this.state;\r\n const { routingLocation } = this.props;\r\n const teamId = routingLocation.query['teamId'];\r\n\r\n if (dataplayer.size > 0)\r\n this.props.removeTeamPlayers(dataplayer, teamId)\r\n .then(t => this.hideLoading());\r\n\r\n if (datatrainer.size > 0)\r\n this.props.removeTeamTrainers(datatrainer, teamId)\r\n .then(t => this.hideLoading());\r\n\r\n this.toggle('delete');\r\n }\r\n\r\n handleTeamChange = () => {\r\n const { dataplayer, datatrainer, newTeam } = this.state;\r\n const { routingLocation, t } = this.props;\r\n const teamId = routingLocation.query['teamId'];\r\n\r\n if (dataplayer.size > 0)\r\n this.props.changeTeamPlayers(dataplayer, newTeam, 'player', 'team', t)\r\n .then(t => this.hideLoading());\r\n\r\n if (datatrainer.size > 0)\r\n this.props.changeTeamPlayers(datatrainer, newTeam, 'trainer', 'team', t)\r\n .then(t => this.hideLoading());\r\n\r\n this.toggle('change');\r\n }\r\n\r\n handlePopulateUser = (data, isPlayer) => {\r\n var users = fromJS([]);\r\n\r\n data.map((row) => {\r\n users = users.push(fromJS({\r\n \"Id\": row\r\n }));\r\n });\r\n if (isPlayer) {\r\n this.setState({\r\n dataplayer: users,\r\n });\r\n }\r\n else {\r\n this.setState({\r\n datatrainer: users,\r\n });\r\n }\r\n }\r\n\r\n handleSelectChangeUser = (data, isPlayer) => {\r\n var users = fromJS([]);\r\n\r\n data.map((row) => {\r\n users = users.push(fromJS({\r\n \"Id\": row\r\n }));\r\n });\r\n if (isPlayer) {\r\n this.setState({\r\n dataplayerchange: users,\r\n });\r\n }\r\n else {\r\n this.setState({\r\n datatrainerchange: users,\r\n });\r\n }\r\n }\r\n\r\n setTeam = (e) => {\r\n this.setState({ newTeam: e.target.value });\r\n }\r\n\r\n refreshToggleStatus = () => {\r\n\r\n this.setState({\r\n addPlayer: !this.state.addPlayer,\r\n dataplayerchange: fromJS([]),\r\n datatrainerchange: fromJS([])\r\n })\r\n }\r\n\r\n handleAddPlayerTrainerSubmit = () => {\r\n const { routingLocation, t } = this.props;\r\n const { dataplayerchange, datatrainerchange } = this.state;\r\n\r\n if (this.state.changeModalStatus == 'player') {\r\n this.props.addPlayersTrainers(dataplayerchange, routingLocation.query['teamId'], this.state.changeModalStatus, t)\r\n .then(t => this.hideLoading());\r\n }\r\n else {\r\n this.props.addPlayersTrainers(datatrainerchange, routingLocation.query['teamId'], this.state.changeModalStatus, t)\r\n .then(t => this.hideLoading());\r\n }\r\n\r\n }\r\n\r\n addPlayerModal = (modal) => {\r\n const { changeModalStatus, dataplayerchange, datatrainerchange } = this.state;\r\n const { availableTrainer, availablePlayer, teamHeader, t } = this.props;\r\n const headCellsChangeTeam = [\r\n { id: 'firstName', numeric: false, disablePadding: true, label: changeModalStatus == 'player' ? t('players.title') : t('trainers.title') },\r\n { id: 'teamName', numeric: false, disablePadding: true, label: t('generaldetail.currentteam') }];\r\n\r\n return (\r\n \r\n \r\n )\r\n }\r\n\r\n changeTeamModal = (modal) => {\r\n const { allTeams, teamHeader } = this.props;\r\n\r\n return ( { this.toggle('change') }} className=\"trainermodal\">\r\n
\r\n

Move player/trainer to another team

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Current team:\r\n \r\n
\r\n \"\"\r\n
Change to:\r\n \r\n
\r\n\r\n\r\n \r\n
\r\n
);\r\n }\r\n\r\n closeModal(addModal) {\r\n const { modal, deleteModal, changeTeam } = this.state;\r\n if (addModal)\r\n this.setState({\r\n modal: !modal\r\n });\r\n else\r\n this.setState({\r\n changeTeam: !changeTeam\r\n });\r\n }\r\n\r\n removeModalConfirmation = (modal) => {\r\n\r\n return (\r\n { this.toggle('delete') }} className=\"trainermodal\">\r\n
\r\n

Move player/trainer to another team

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Current team:\r\n \r\n
\r\n \"\"\r\n
Change to:\r\n \r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n editTeamModal = (modal) => {\r\n const { t } = this.props;\r\n const { teamName, division } = this.state;\r\n\r\n return (\r\n \r\n
\r\n

{t('general.edit') + ' ' + t('teams.singlelowerteams')}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{t('teams.teamname')}\r\n this.onChangeEventHandler(field, value)}\r\n //hasError={errors.has('teamname')}\r\n />\r\n
{t('generaldetail.division')}\r\n this.onChangeEventHandler(field, value)}\r\n //hasError={errors.has('division')}\r\n />\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n editTeam = (isOpen) => {\r\n this.setState({ teamModal: isOpen });\r\n }\r\n\r\n saveTeam = () => {\r\n const { division, teamId, teamName } = this.state;\r\n const team = fromJS({\r\n id: teamId,\r\n teamname: teamName,\r\n division: division\r\n }).toJS();\r\n\r\n this.setState({ teamModal: false });\r\n\r\n this.props.addTeam(team, this.props.t)\r\n .then(t1 => this.props.getTeamHeader(teamId)\r\n .then(t2 => this.hideLoading()));\r\n }\r\n\r\n onChangeEventHandler = (field, value) => {\r\n switch (field) {\r\n case 'teamName':\r\n this.setState({ teamName: value });\r\n break;\r\n case 'division':\r\n this.setState({ division: value });\r\n break;\r\n default:\r\n break;\r\n } \r\n }\r\n\r\n componentDidUpdate() {\r\n const { seasons, teamHeader } = this.props;\r\n const { initfilteredSeason, teamName, division, teamModal } = this.state;\r\n var currentSeason = '';\r\n\r\n if (seasons && seasons.length > 0 && initfilteredSeason) { \r\n seasons.map((x) => {\r\n if (x.isCurrent)\r\n currentSeason = x.seasonName;\r\n });\r\n this.setState({\r\n filteredSeason: currentSeason,\r\n initfilteredSeason: false,\r\n });\r\n }\r\n\r\n if (teamHeader && teamHeader.teamName != teamName && !teamModal) {\r\n this.setState({ teamName: teamHeader.teamName });\r\n }\r\n\r\n if (teamHeader && teamHeader.division != division && !teamModal) {\r\n this.setState({ division: teamHeader.division });\r\n }\r\n }\r\n\r\n handleOnSelectSeason = (e) => {\r\n const { teamId } = this.state;\r\n Promise.all([\r\n this.props.fetchTrainerOverview(teamId, e.currentTarget.id),\r\n this.props.getInvitedPlayers(teamId, e.currentTarget.id)])\r\n .then(t => this.hideLoading());\r\n this.setState({\r\n filteredSeason: e.target.outerText\r\n });\r\n }\r\n\r\n render() {\r\n const { modal, trainersGridData, playersGridData, changeTeam, seasonDropDownIsOpen,\r\n addPlayer, teamId, filteredSeason, teamModal } = this.state;\r\n const { trainerOverviewData, playerOverviewData, seasons, teamHeader, t } = this.props;\r\n\r\n const headCellsTrainerOverview = [\r\n { id: 'name', numeric: false, disablePadding: true, label: t('trainers.title') },\r\n { id: 'reports', numeric: true, disablePadding: false, label: t('general.reports') },\r\n { id: 'lastupdate', numeric: true, disablePadding: false, label: t('general.lastupdate') },\r\n { id: 'roles', numeric: true, disablePadding: false, label: t('general.roles') },\r\n { id: 'id', numeric: true, disablePadding: false, align: 'center', label: t('general.view') }];\r\n\r\n const headCellsPlayerOverview = [\r\n { id: 'name', numeric: false, disablePadding: true, label: t('players.title') },\r\n { id: 'reports', numeric: true, disablePadding: false, label: t('general.reports') },\r\n { id: 'trainers', numeric: false, disablePadding: false, label: t('trainers.title') },\r\n { id: 'overall', numeric: false, disablePadding: false, label: t('overview.overall') },\r\n { id: 'id', numeric: true, disablePadding: false, align: 'center', label: t('general.view') }];\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
{t('generaldetail.division')}
\r\n
{teamHeader && teamHeader.division}
\r\n
\r\n { e.preventDefault(); this.prepareToChange(); }} className=\"btn_change\">\"\"{t('generaldetail.change')}\r\n {/* { e.preventDefault(); this.prepareToRemove(); }} data-target=\"#delete_modal\">\"\"*/}\r\n \r\n \r\n {filteredSeason}\r\n \r\n \r\n {seasons.map((row, index) => {\r\n //let current = '';\r\n //current = row.isCurrent ? () : '';\r\n return (\r\n \r\n
\r\n {row.seasonName}{/*current*/}\r\n
\r\n
\r\n )\r\n })}\r\n {/*
+ Add new season
*/}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n {this.removeModalConfirmation(modal)}\r\n {this.changeTeamModal(changeTeam)}\r\n {this.addPlayerModal(addPlayer)}\r\n {this.editTeamModal(teamModal)}\r\n
);\r\n }\r\n}\r\n\r\nexport default connect((state) => {\r\n return {\r\n teamHeader: state.teamDetail.teamHeader,\r\n trainerOverviewData: state.teamDetail.teamDetails,\r\n playerOverviewData: state.player.playerOverview,\r\n routingLocation: routingLocationSelector(state),\r\n allTeams: state.masterData.allTeams,\r\n seasons: state.masterData.seasons,\r\n availablePlayer: state.manager.availablePlayerResult,\r\n availableTrainer: state.manager.availableTrainerResult\r\n }\r\n},\r\n dispatch => bindActionCreators(\r\n {\r\n getTeams, getTeamHeader, fetchTrainerOverview, getInvitedPlayers, removeTeamPlayers, removeTeamTrainers,\r\n changeTeamPlayers, getSeason, getAvailablePlayersOrTrainers, addPlayersTrainers,\r\n addTeam\r\n }\r\n , dispatch))(withTranslation()(TeamDetail));\r\n","import { toast } from 'react-toastify';\r\nimport fetchWithBearerToken from '../../SharedActions/fetchWithBearerToken';\r\nimport { webAppUrl, getManagerById, getTrainerById } from '../../constants';\r\n\r\nexport default (userId) => async (dispatch) => {\r\n const url = `${webAppUrl}/api/trainer/GetTrainerByUserId?userid=${userId}`;\r\n\r\n const response = await fetchWithBearerToken(url);\r\n\r\n if (response.ok) {\r\n const trainerData = await response.json();\r\n dispatch({\r\n type: getTrainerById,\r\n trainer: trainerData\r\n });\r\n }\r\n else {\r\n toast.error(`Failed fetching data. ${response.errorMessage}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n}\r\n","import { toast } from 'react-toastify';\r\nimport fetchWithBearerToken from '../../SharedActions/fetchWithBearerToken';\r\nimport { webAppUrl, fetchTrainerDetail } from '../../constants';\r\n\r\nexport default (userId, filter, searchname) => async (dispatch) => {\r\n const url = `${webAppUrl}/api/trainer/GetTrainerPersonalDetail?userId=${userId}&filter=${filter}&searchname=${searchname}`;\r\n\r\n const response = await fetchWithBearerToken(url);\r\n\r\n if (response.ok) {\r\n const trainers = await response.json();\r\n dispatch({\r\n type: fetchTrainerDetail,\r\n trainer: trainers\r\n });\r\n }\r\n else {\r\n toast.error(`Failed fetching data. ${response.errorMessage}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n}\r\n","import { fromJS } from 'immutable';\r\nimport '../../bootstrap_css/style.css';\r\nimport { connect } from 'react-redux';\r\nimport React, { Component } from 'react';\r\nimport getTrainer from '../../../store/Trainers/actions/fetchTrainerByUserId';\r\nimport { bindActionCreators } from 'redux';\r\nimport TextInputField from '../../SharedComponents/TextInputField';\r\nimport { withTranslation } from 'react-i18next';\r\nimport trashwhite from '../../images/Trash.svg';\r\nimport { routingLocationSelector } from '../../../store/general/selectors/generalSelector';\r\nimport ProfilePic from '../../SharedComponents/ProfileThumImage';\r\nimport { webAppUrl } from '../../../store/constants';\r\nimport { formatDateOverviewPicker } from '../../../helpers/dateHelper';\r\nimport { toast } from 'react-toastify';\r\nimport uploadPicture from '../../../store/profilePicture/uploadPicture';\r\nimport updateManagerData from '../../../store/Manager/actions/updateManagerData';\r\nimport getHeaderDetail from '../../../store/users/actions/getHeaderDetail';\r\nimport { Modal, UncontrolledCollapse } from 'reactstrap';\r\nimport checklistCompleted from '../../images/Checklist_Small.png';\r\nimport trainerGrey from '../../images/Trainer_Grey.png';\r\nimport getTrainerDetailReport from '../../../store/Trainers/TrainerDetail/fetchTrainerDetailReport';\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport DateInputField from '../../SharedComponents/DateInputField';\r\nimport defaultUser from '../../images/default_user.png';\r\nimport iconSearch from '../../images/ic_search.svg';\r\nimport getTeams from '../../../store/MasterData/getTeams';\r\nimport changeTeamPlayers from '../../../store/TeamDetail/Action/changeTeamPlayers';\r\nimport clearImage from '../../../store/profilePicture/clearImage';\r\nimport Linkify from 'react-linkify';\r\n//import getSeason from '../../../store/MasterData/getSeason';\r\n\r\nimport {\r\n MdChevronLeft,\r\n MdChevronRight,\r\n MdKeyboardArrowDown\r\n} from \"react-icons/md\";\r\n\r\nclass DetailTrainer extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n changeTeam: false,\r\n modal: false,\r\n newTeam: '',\r\n fields: fromJS({\r\n id: '',\r\n firstname: '',\r\n lastname: '',\r\n nationality: '',\r\n birthplace: '',\r\n birthdate: '',\r\n email: '',\r\n telephone: '',\r\n address: '',\r\n role: '',\r\n datestarted: '',\r\n lastlogin: '',\r\n imgTemp: null,\r\n photoDate: '',\r\n photo: null,\r\n userPicture: '',\r\n teamName: '',\r\n clubName: '',\r\n clubLogoUrl: '',\r\n openReports: '',\r\n totalReports: '',\r\n teamId: '',\r\n sharedData: false\r\n }),\r\n expandedRow: [],\r\n errors: fromJS({}),\r\n userId: '',\r\n componentUpdated: false,\r\n displayed: false,\r\n filteredreport: 'completed',\r\n searchvalue: '',\r\n };\r\n this.goBack = this.goBack.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.uploadFileChange = this.uploadFileChange.bind(this);\r\n this.saveUploadedPhoto = this.saveUploadedPhoto.bind(this);\r\n this.handleUpdate = this.handleUpdate.bind(this);\r\n this.setInvisible = this.setInvisible.bind(this);\r\n this.expandClick = this.expandClick.bind(this);\r\n this.setAlert = this.setAlert.bind(this);\r\n this.closeModal = this.closeModal.bind(this);\r\n this.setTeam = this.setTeam.bind(this);\r\n this.handleTeamChange = this.handleTeamChange.bind(this);\r\n this.toggle = this.toggle.bind(this);\r\n this.handleSearchChange = this.handleSearchChange.bind(this);\r\n this.onKeyUp = this.onKeyUp.bind(this);\r\n this.clear = this.clear.bind(this);\r\n }\r\n\r\n hideLoading() {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n }\r\n\r\n //toggleItem = () => {\r\n // const { seasonDropDownIsOpen } = this.state;\r\n\r\n // this.setState({\r\n // seasonDropDownIsOpen: !seasonDropDownIsOpen\r\n // });\r\n //}\r\n\r\n //handleOnSelectSeason = (e) => {\r\n // const { userId } = this.state;\r\n // //this.props.fetchPlayerDetailsByIdBySeason(userId, e.currentTarget.id)\r\n // // .then(t => this.hideLoading());\r\n\r\n // this.setState({\r\n // filteredSeason: e.target.outerText\r\n // });\r\n //}\r\n\r\n handleChange(field, value) {\r\n const { fields } = this.state;\r\n this.setState({\r\n fields: this.state.fields.set(field, value),\r\n errors: this.state.errors.delete(field),\r\n });\r\n }\r\n\r\n closeModal() {\r\n const { changeTeam } = this.state;\r\n this.setState({\r\n changeTeam: !changeTeam\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n const { routingLocation } = this.props;\r\n const { filteredreport } = this.state;\r\n this.props.getTeams();\r\n\r\n if (routingLocation && routingLocation.query) {\r\n\r\n const userId = routingLocation.query['userId'];\r\n\r\n if (userId) {\r\n Promise.all([\r\n this.props.getTrainer(userId),\r\n this.props.getTrainerDetailReport(userId, filteredreport, '')])\r\n /*this.props.getSeason() */ \r\n .then(t => this.hideLoading());\r\n\r\n this.setState({\r\n userId: userId,\r\n })\r\n }\r\n }\r\n }\r\n\r\n toggle = (e) => {\r\n const { changeTeam } = this.state;\r\n\r\n if (e == 'change') {\r\n this.setState({\r\n changeTeam: !changeTeam,\r\n });\r\n }\r\n }\r\n\r\n setTeam = (e) => {\r\n this.setState({ newTeam: e.target.value });\r\n }\r\n\r\n handleTeamChange = () => {\r\n const { dataplayer, datatrainer, newTeam } = this.state;\r\n const { routingLocation } = this.props;\r\n const teamId = routingLocation.query['teamId'];\r\n const userId = routingLocation.query['userId'];\r\n\r\n this.props.changeTeamPlayers([userId], newTeam, 'trainer', 'detail')\r\n .then(t => this.hideLoading());\r\n this.toggle('change');\r\n }\r\n\r\n changeTeamModal = (modal) => {\r\n const { allTeams, teamHeader } = this.props;\r\n const { fields } = this.state;\r\n return ( { this.toggle('change') }} className=\"trainermodal\">\r\n
\r\n

Move trainer to another team

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Current Team:\r\n \r\n
\r\n \"\"\r\n
Change to:\r\n \r\n
\r\n\r\n\r\n \r\n
\r\n
);\r\n }\r\n\r\n expandClick(e) {\r\n let id = e.currentTarget.id;\r\n let el = document.querySelector(`#${id}.skill-expand-arrow`);\r\n\r\n el.style.transformOrigin = 'center center';\r\n let tr = el.style.transform;\r\n\r\n if (tr == '')\r\n el.style.transform = 'rotate(90deg)';\r\n else\r\n el.style.transform = '';\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const { trainerData, profilePictureUpload, updatedManager } = this.props;\r\n if (updatedManager && updatedManager != prevProps.updatedManager) {\r\n this.props.getHeaderDetail()\r\n .then(t => this.hideLoading());\r\n }\r\n\r\n if (profilePictureUpload && profilePictureUpload !== prevProps.profilePictureUpload) {\r\n this.saveUploadedPhoto(profilePictureUpload);\r\n }\r\n\r\n if (trainerData && prevProps.trainerData != trainerData) {\r\n\r\n this.setState({\r\n fields: fromJS({\r\n firstname: trainerData.firstName,\r\n lastname: trainerData.lastName,\r\n nationalityid: trainerData.nationalityId,\r\n nationality: trainerData.nationality,\r\n birthplace: trainerData.birthPlace,\r\n birthdate: trainerData.birthDate,\r\n email: trainerData.email,\r\n telephone: trainerData.phoneNumber,\r\n address: trainerData.address,\r\n role: trainerData.role,\r\n datestarted: trainerData.dateStarted,\r\n lastlogin: trainerData.lastLogin,\r\n userpicture: trainerData.userPicture,\r\n teamName: trainerData.teamName,\r\n clubName: trainerData.clubName,\r\n openReports: trainerData.openReports,\r\n totalReports: trainerData.totalReports,\r\n clubLogoUrl: trainerData.clubLogoUrl,\r\n teamId: trainerData.teamId,\r\n sharedData: trainerData.sharedData\r\n }),\r\n componentUpdated: false,\r\n })\r\n }\r\n }\r\n\r\n formatDate = (date) => {\r\n if (date == null) return null;\r\n var d = new Date(date),\r\n month = '' + (d.getMonth() + 1),\r\n day = '' + d.getDate(),\r\n year = d.getFullYear(),\r\n hour = d.getHours(),\r\n minute = d.getMinutes();\r\n\r\n if (month.length < 2)\r\n month = '0' + month;\r\n if (day.length < 2)\r\n day = '0' + day;\r\n var newDate = [day, month, year].join('-');\r\n var newHour = [hour, minute].join(':');\r\n return newDate;\r\n }\r\n\r\n saveUploadedPhoto(e) {\r\n this.setState({\r\n fields: this.state.fields.set('photo', e.id),\r\n errors: this.state.errors.delete('photo')\r\n });\r\n }\r\n\r\n goBack(e) {\r\n this.props.history.goBack();\r\n e.preventDefault();\r\n }\r\n\r\n uploadFileChange(e) {\r\n const files = e.target.files;\r\n const { userId } = this.state;\r\n const { t, uploadPicture } = this.props;\r\n if (files === undefined) return;\r\n\r\n let formData = new FormData();\r\n let fileType = '';\r\n\r\n if (files[0] !== null) {\r\n fileType = files[0].type;\r\n }\r\n\r\n if (files[0].size > '6000000') {\r\n toast.success(\"file size limit\", {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n return;\r\n }\r\n\r\n if (fileType !== 'image/png' && fileType !== 'image/jpeg' && fileType !== 'image/jpg') {\r\n\r\n toast.success(\"format not allowed\", {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n return;\r\n }\r\n\r\n formData.append('file', files[0]);\r\n\r\n const dateTag = new Date().toString().replace('+', ' ');\r\n\r\n let newFields = this.state.fields.set('imgTemp', URL.createObjectURL(files[0]));\r\n\r\n newFields = newFields.set('photoDate', dateTag);\r\n\r\n this.setState({\r\n fields: newFields\r\n });\r\n\r\n uploadPicture(formData, dateTag, userId, t)\r\n .then(t => this.hideLoading()); }\r\n\r\n clear() {\r\n const i = document.querySelector('.upload-detail');\r\n const { t, clearImage, getTrainer } = this.props;\r\n const { userId } = this.state;\r\n\r\n clearImage(userId, t)\r\n .then(t => {\r\n i.value = '';\r\n getTrainer(userId);\r\n this.hideLoading();\r\n });\r\n }\r\n\r\n handleUpdate() {\r\n const { fields } = this.state;\r\n\r\n const { routingLocation } = this.props;\r\n\r\n const entity = fields.toJS();\r\n\r\n entity.id = routingLocation.query['userId'];\r\n\r\n //validation\r\n\r\n const simpleEmailRegexp = new RegExp('[^@]+@[^\\.]+\\..+');\r\n\r\n const hasValidEmail = simpleEmailRegexp.test(fields.get('email'));\r\n if (!hasValidEmail) {\r\n toast.success(\"invalid email format\", {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n return;\r\n }\r\n //end of validation\r\n\r\n this.props.updateManagerData(entity)\r\n .then(t => this.hideLoading());\r\n }\r\n\r\n setInvisible(e) {\r\n const { displayed } = this.state;\r\n\r\n this.setState({ displayed: !displayed });\r\n }\r\n\r\n setAlert(e) {\r\n alert('throw');\r\n }\r\n\r\n handleDateChange = (field, d) => {\r\n\r\n this.setState({\r\n fields: this.state.fields.set(field, d)\r\n });\r\n }\r\n\r\n handleFilter(filtered) {\r\n const { userId } = this.state;\r\n\r\n this.setState({\r\n filteredreport: filtered,\r\n searchvalue: '',\r\n });\r\n\r\n this.props.getTrainerDetailReport(userId, filtered, '')\r\n .then(t => this.hideLoading());\r\n }\r\n\r\n handleSearch() {\r\n const { searchvalue, userId } = this.state;\r\n this.props.getTrainerDetailReport(userId, '', searchvalue)\r\n .then(t => this.hideLoading());\r\n }\r\n\r\n handleSearchChange(e) {\r\n this.setState({\r\n searchvalue: e.currentTarget.value\r\n });\r\n }\r\n\r\n onKeyUp(event) {\r\n const { searchvalue, userId } = this.state;\r\n if (event.charCode === 13)\r\n this.props.getTrainerDetailReport(userId, '', searchvalue)\r\n .then(t => this.hideLoading());\r\n }\r\n\r\n render() {\r\n const { trainerReportDetailData, t } = this.props;\r\n const { fields, changeTeam, filteredreport, searchvalue } = this.state;\r\n\r\n const completed = trainerReportDetailData == null ? null : trainerReportDetailData.filter(f => f.isCompleted);\r\n const unCompleted = trainerReportDetailData == null ? null : trainerReportDetailData.filter(f => !f.isCompleted);\r\n const hasPicture = fields.get('imgTemp') == null || fields.get('imgTemp') === undefined ? false : true;\r\n const sharedData = fields.get('sharedData');\r\n if (completed) {\r\n completed.forEach((report,index) => { \r\n if (report) {\r\n report.self.forEach((reportDetail, index) => {\r\n reportDetail.hasFeedback = reportDetail.skillReports.find(skill => skill.comment != null && skill.comment != '') ? true : false;\r\n });\r\n }\r\n });\r\n }\r\n if (unCompleted) {\r\n unCompleted.forEach((report, index) => {\r\n report.hasFeedback = report.skillReports.find(skill => skill.comment != null && skill.comment != '') ? true : false;\r\n });\r\n }\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {/**/}\r\n
\r\n
\r\n \r\n {hasPicture && }\r\n {!hasPicture && }\r\n \"\"\r\n \"\"\r\n
\r\n
\r\n
\r\n
{fields.get('firstname') + ' ' + fields.get('lastname')}
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{t('general.open') + ' ' + t('general.lowerreports')}:{`${fields.get('openReports')}`}
{t('overview.completed') + ' ' + t('general.lowerreports')}:{fields.get('totalReports')}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{t('teams.singletitle')}\r\n this.handleChange(field, value)} value={fields.get('teamName')}\r\n extraClassName={'disabled-field-bg'}\r\n />\r\n
{t('general.role')}\r\n this.handleChange(field, value)} value={fields.get('role')}\r\n extraClassName={'disabled-field-bg'}\r\n />\r\n
{t('general.firstname')}\r\n this.handleChange(field, value)} value={fields.get('firstname')} />\r\n
{t('general.lastname')}\r\n this.handleChange(field, value)} value={fields.get('lastname')} />\r\n
Nationality\r\n this.handleChange(field, value)} value={fields.get('nationality')} />\r\n
Birth place this.handleChange(field, value)} value={fields.get('birthplace')} />
{t('generaldetail.birthdate')}\r\n this.handleDateChange(field, new Date(date))}\r\n />\r\n
{t('general.e-mail')}\r\n this.handleChange(field, value)} \r\n value={fields.get('email')}\r\n extraClassName={'disabled-field-bg'}\r\n />\r\n
Telephone this.handleChange(field, value)} value={fields.get('telephone')} />
Address this.handleChange(field, value)} value={fields.get('address')} />
\r\n {sharedData ?\r\n
\r\n \r\n
:\r\n
\r\n \r\n
}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {t('general.reports')}\r\n
\r\n {filteredreport == 'completed' ? (completed ? completed.reduce((a, b) => a + b.self.length, 0) : 0) :\r\n (unCompleted ? unCompleted.length : 0)}\r\n
\r\n \r\n
\r\n { this.handleSearchChange(e); }}\r\n onKeyPress={this.onKeyUp}\r\n placeholder={t('general.searchplayers')} />\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n {filteredreport == 'completed' ?\r\n completed !== null && completed.map((reportData) =>\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {reportData.playerName} {reportData.isActive ? \"\" : \"| \" + reportData.teamName}
\r\n
Average score
\r\n
\r\n
{reportData.totalScore.toPrecision(2)}
\r\n
\r\n {()}\r\n
\r\n
\r\n
\r\n
\r\n \r\n {reportData.self.map((obj) =>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {obj.playerName}
\r\n
Average score
\r\n
\r\n
\r\n {obj.averageScore.toPrecision(2)}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {t('general.reportstarted')}
\r\n
{obj.createdDate}
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n {t('general.reportcompleted')}
\r\n
{obj.modifiedDate}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n obj.skillReports.map((sr,index, report) =>\r\n (
\r\n
\r\n
{sr.skillName}
\r\n
\r\n {sr.score}\r\n
\r\n
\r\n
\r\n

{t('general.feedback')}

\r\n {sr.comment}\r\n
\r\n
\r\n )\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n

{t('general.notes')}

\r\n {obj.feedback}\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n ) :\r\n unCompleted !== null && unCompleted.map((reportData) =>\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{reportData.playerName}
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{t('general.progress')}:\r\n
\r\n
\r\n
\r\n
\r\n {reportData.totalProgress + '%'}\r\n
\r\n
\r\n
\r\n
\r\n {()}\r\n
\r\n
\r\n
{t('general.status')}:\r\n
\"\" {t('general.update')}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{reportData.createdDate}\r\n
\r\n {\r\n reportData.skillReports.map(sr =>\r\n (
\r\n
{sr.skillName}
\r\n
{sr.score}
\r\n
)\r\n )\r\n }\r\n
\r\n

{t('general.feedback')}

\r\n

{reportData.feedback}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {this.changeTeamModal(changeTeam)}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default connect((state) => {\r\n return {\r\n trainerData: state.trainer.trainer,\r\n updatedManager: state.manager.updatedManager,\r\n routingLocation: routingLocationSelector(state),\r\n profilePictureUpload: state.profilePicture.profilePictureUpload,\r\n trainerReportDetailData: state.trainer.trainerReportDetailData,\r\n allTeams: state.masterData.allTeams\r\n }\r\n},\r\n dispatch => bindActionCreators({\r\n getTrainer,\r\n uploadPicture,\r\n clearImage,\r\n updateManagerData,\r\n getHeaderDetail,\r\n getTrainerDetailReport,\r\n getTeams,\r\n changeTeamPlayers\r\n }, dispatch))(withTranslation()(DetailTrainer));","import { toast } from 'react-toastify';\r\nimport fetchWithBearerToken from '../../SharedActions/fetchWithBearerToken';\r\nimport { webAppUrl, fetchPlayerDetails } from '../../constants';\r\n\r\nexport default (playerId) => async (dispatch) => {\r\n const url = `${webAppUrl}/api/Player/GetPlayerDetailById?userId=${playerId}`;\r\n \r\n const response = await fetchWithBearerToken(url);\r\n\r\n if (response.ok) {\r\n const playerDetails = await response.json();\r\n dispatch({\r\n type: fetchPlayerDetails,\r\n player: playerDetails\r\n });\r\n }\r\n else {\r\n toast.error(`Failed fetching data. ${response.errorMessage}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n}\r\n","import { toast } from 'react-toastify';\r\nimport fetchWithBearerToken from '../../SharedActions/fetchWithBearerToken';\r\nimport { webAppUrl, fetchPlayerDetails } from '../../constants';\r\n\r\nexport default (playerId, clubSeasonId) => async (dispatch) => {\r\n \r\n const url = `${webAppUrl}/api/Player/GetPlayerDetailByIdBySeason?userId=${playerId}${clubSeasonId !== null ? (clubSeasonId !== undefined ? \"&&clubSeasonId=\" + clubSeasonId : '') : ''}`;\r\n\r\n const response = await fetchWithBearerToken(url);\r\n\r\n if (response.ok) {\r\n const playerDetails = await response.json();\r\n dispatch({\r\n type: fetchPlayerDetails,\r\n player: playerDetails\r\n });\r\n }\r\n else {\r\n toast.error(`Failed fetching data. ${response.errorMessage}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport checklistCompleted from '../../images/Checklist_Small.png';\r\nimport checklistCompletedGray from '../../images/Checklist_Gray.png';\r\nimport trainerGrey from '../../images/Trainer_Grey.png';\r\nimport { withTranslation } from 'react-i18next';\r\nimport ProfilePic from '../../SharedComponents/ProfileThumImage';\r\nimport defaultUser from '../../images/default_user.png';\r\nimport Linkify from 'react-linkify';\r\n\r\nclass DetailReportItem extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isOpen: false\r\n }\r\n this.openModal = this.openModal.bind(this)\r\n }\r\n\r\n openModal() {\r\n this.setState({ isOpen: true })\r\n }\r\n\r\n render() {\r\n const { playerReportReviews, t } = this.props;\r\n if (playerReportReviews) {\r\n playerReportReviews.forEach((report, index) => {\r\n report.hasFeedback = report.playerReportDetailsSkill.find(skill => skill.comment != null && skill.comment != '') ? true : false;\r\n //report.hasFeedback = false;\r\n });\r\n }\r\n \r\n return (\r\n
\r\n {playerReportReviews &&\r\n playerReportReviews.map((data) => {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {data.trainerName}
\r\n
Average score
\r\n
\r\n
\r\n {data.averageScore ? parseFloat(data.averageScore).toFixed(1) : ' '}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {t('general.reportstarted')}
\r\n
{data.createdDate}
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n {data.status == 'Completed' ? t('general.reportcompleted') : t('general.lastactivity')}
\r\n
{data.modifiedDate}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n data.playerReportDetailsSkill &&\r\n data.playerReportDetailsSkill.map((sr) => (\r\n
\r\n
\r\n
{sr.skillName}
\r\n
{sr.score}
\r\n
\r\n \r\n {/*
*/}\r\n
\r\n

{t('general.feedback')}

\r\n {sr.comment}\r\n
\r\n \r\n
))\r\n }\r\n
\r\n
\r\n
\r\n
\r\n

{t('general.notes')}

\r\n {data.feedback}\r\n
\r\n
\r\n
\r\n );\r\n })\r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default connect((state) => {\r\n return {\r\n //termsAndPrivacy: termsAndPrivacyStateSelector(state),\r\n }\r\n},\r\n dispatch => bindActionCreators({\r\n //getTermsAndPrivacy: getTermsAndPrivacyAction,\r\n }, dispatch))(withTranslation()(DetailReportItem));","import '../../bootstrap_css/style.css';\r\nimport React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport { withTranslation } from 'react-i18next';\r\nimport defaultUser from '../../images/default_user.png';\r\nimport DetailReportItem from './DetailReportItem';\r\nimport { UncontrolledCollapse } from 'reactstrap';\r\nimport { MdChevronRight, MdKeyboardArrowDown } from \"react-icons/md\";\r\nimport ProfilePic from '../../SharedComponents/ProfileThumImage';\r\n\r\nclass ReportPlayerItem extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.expandClick = this.expandClick.bind(this);\r\n }\r\n\r\n expandClick(e) {\r\n let id = e.currentTarget.id;\r\n let el = document.querySelector(`#${id}.skill-expand-arrow`);\r\n\r\n el.style.transformOrigin = 'center center';\r\n let tr = el.style.transform;\r\n\r\n if (tr == '')\r\n el.style.transform = 'rotate(90deg)';\r\n else\r\n el.style.transform = '';\r\n }\r\n\r\n\r\n\r\n render() {\r\n const { playerReportResponse } = this.props;\r\n \r\n return (\r\n
{playerReportResponse && playerReportResponse.map((obj) => { return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {obj.trainerName} {obj.isActive ? \"\" : \"| \" + obj.teamName}
\r\n
Average score
\r\n
\r\n \r\n
\r\n {obj.averageScore ? parseFloat(obj.averageScore).toFixed(1) : ' ' }\r\n \r\n
\r\n \r\n
\r\n {()}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
)})}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default connect((state) => {\r\n return {}\r\n},\r\n dispatch => bindActionCreators({}, dispatch))(ReportPlayerItem);","import { webAppUrl, getAllPositions} from '../constants';\r\nimport fetchWithBearerToken from '../SharedActions/fetchWithBearerToken';\r\n\r\nexport default () => async (dispatch) => {\r\n\r\n const result = await fetchWithBearerToken(`${webAppUrl}/api/MasterData/GetPositions`, 'GET');\r\n\r\n if (result.ok)\r\n {\r\n const resultData = await result.json()\r\n dispatch({ type: getAllPositions, result: resultData });\r\n }\r\n};","import { fromJS } from 'immutable';\r\nimport '../../bootstrap_css/style.css';\r\nimport { connect } from 'react-redux';\r\nimport React, { Component, useState } from 'react';\r\nimport fetchPlayerDetails from '../../../store/Players/PlayerDetails/fetchPlayerDetails';\r\nimport fetchPlayerDetailsByIdBySeason from '../../../store/Players/PlayerDetails/fetchPlayerDetailsByIdBySeason';\r\nimport { bindActionCreators } from 'redux';\r\nimport TextInputField from '../../SharedComponents/TextInputField';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { routingLocationSelector } from '../../../store/general/selectors/generalSelector';\r\nimport ProfilePic from '../../SharedComponents/ProfileThumImage';\r\nimport { webAppUrl } from '../../../store/constants';\r\nimport { formatDateOverviewPicker } from '../../../helpers/dateHelper';\r\nimport { toast } from 'react-toastify';\r\nimport uploadPicture from '../../../store/profilePicture/uploadPicture';\r\nimport { MdChevronLeft, MdChevronRight, MdExpandMore, MdExpandLess } from \"react-icons/md\";\r\nimport './DetailPlayer.css';\r\nimport ReportPlayerItem from './ReportPlayerItem';\r\nimport updatePlayerData from '../../../store/Manager/actions/updateManagerData';\r\nimport getPositions from '../../../store/MasterData/getPositions';\r\nimport DateInputField from '../../SharedComponents/DateInputField';\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport clearImage from '../../../store/profilePicture/clearImage';\r\nimport defaultUser from '../../images/default_user.png';\r\n\r\nimport { Input, Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';\r\nimport getSeason from '../../../store/MasterData/getSeason';\r\n\r\nclass DetailPlayer extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n modal: false,\r\n fields: fromJS({\r\n id: '',\r\n firstname: '',\r\n lastname: '',\r\n nationality: '',\r\n birthplace: '',\r\n birthdate: '',\r\n email: '',\r\n telephone: '',\r\n address: '',\r\n role: '',\r\n datestarted: '',\r\n lastlogin: '',\r\n imgTemp: null,\r\n photoDate: '',\r\n photo: null,\r\n clubname: '',\r\n teamname: '',\r\n position: '',\r\n positionName: '',\r\n averageScore: '',\r\n completionPercentage: '',\r\n clubPictureUrl: '',\r\n completedReport: 0,\r\n openReport: 0,\r\n sharedData: false,\r\n }),\r\n errors: fromJS({}),\r\n componentUpdated: false,\r\n displayed: false,\r\n showdetailoverall: false,\r\n userId: '',\r\n \r\n seasonDropDownIsOpen: false,\r\n filteredSeason: '',\r\n isinitload: true,\r\n initfilteredSeason: true,\r\n };\r\n this.goBack = this.goBack.bind(this);\r\n this.print = this.print.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.uploadFileChange = this.uploadFileChange.bind(this);\r\n this.saveUploadedPhoto = this.saveUploadedPhoto.bind(this);\r\n this.handleUpdate = this.handleUpdate.bind(this);\r\n this.setInvisible = this.setInvisible.bind(this);\r\n this.setAlert = this.setAlert.bind(this);\r\n this.clear = this.clear.bind(this);\r\n this.handleOnSelectSeason = this.handleOnSelectSeason.bind(this);\r\n this.toggleItem = this.toggleItem.bind(this);\r\n }\r\n\r\n hideLoading() {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n }\r\n \r\n toggleItem = () => {\r\n const { seasonDropDownIsOpen } = this.state;\r\n\r\n this.setState({\r\n seasonDropDownIsOpen: !seasonDropDownIsOpen\r\n });\r\n }\r\n \r\n handleOnSelectSeason = (e) => { \r\n const { userId } = this.state;\r\n this.props.fetchPlayerDetailsByIdBySeason(userId, e.currentTarget.id)\r\n .then(t => this.hideLoading()); \r\n \r\n this.setState({\r\n filteredSeason: e.target.outerText\r\n }); \r\n }\r\n \r\n\r\n toggle = (e) => {\r\n\r\n const { showdetailoverall } = this.state;\r\n this.setState({\r\n showdetailoverall: !showdetailoverall,\r\n });\r\n e.preventDefault();\r\n }\r\n\r\n handleChange(field, value) {\r\n const { fields } = this.state;\r\n this.setState({\r\n fields: this.state.fields.set(field, value),\r\n errors: this.state.errors.delete(field),\r\n });\r\n }\r\n\r\n handleDropdownChange(field, event) {\r\n\r\n this.setState({\r\n fields: this.state.fields.set(field, event.target.value),\r\n errors: this.state.errors.delete(field),\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n const { routingLocation } = this.props;\r\n \r\n this.props.getPositions();\r\n if (routingLocation && routingLocation.query) {\r\n const playerId = routingLocation.query['userId']\r\n if (playerId) {\r\n this.setState({ userId: playerId }); \r\n this.props.fetchPlayerDetails(playerId),\r\n this.props.getSeason() \r\n .then(t => this.hideLoading()); \r\n }\r\n } \r\n \r\n this.setState({ isRendering: true }, () => {\r\n this.setState({ isRendering: false });\r\n });\r\n \r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const { playerData, profilePictureUpload, updatedManager } = this.props;\r\n\r\n const { seasons} = this.props;\r\n const { initfilteredSeason} = this.state; \r\n var currentSeason = ''; \r\n if (seasons && seasons.length > 0 && initfilteredSeason) {\r\n \r\n seasons.map((x) => {\r\n if (x.isCurrent)\r\n currentSeason = x.seasonName;\r\n });\r\n this.setState({\r\n filteredSeason: currentSeason,\r\n initfilteredSeason: false,\r\n });\r\n }\r\n\r\n\r\n if (updatedManager && updatedManager != prevProps.updatedManager) {\r\n this.props.getHeaderDetail()\r\n .then(t => this.hideLoading());\r\n }\r\n\r\n if (profilePictureUpload && profilePictureUpload !== prevProps.profilePictureUpload) {\r\n this.saveUploadedPhoto(profilePictureUpload);\r\n }\r\n\r\n if (playerData && prevProps.playerData != playerData) {\r\n this.setState({\r\n fields: fromJS({\r\n firstname: playerData.firstName,\r\n lastname: playerData.lastName,\r\n nationalityid: playerData.nationalityId,\r\n nationality: playerData.nationality,\r\n birthplace: playerData.birthPlace,\r\n birthdate: playerData.birthDate,\r\n email: playerData.email,\r\n telephone: playerData.phoneNumber,\r\n address: playerData.address,\r\n role: playerData.role,\r\n datestarted: playerData.dateStarted,\r\n lastlogin: playerData.lastLogin,\r\n clubname: playerData.clubName,\r\n teamname: playerData.teamName,\r\n position: playerData.position,\r\n positionName: playerData.positionName,\r\n userpicture: playerData.userPicture,\r\n averageScore: playerData.averageScore,\r\n completionPercentage: playerData.completionPercentage,\r\n clubPictureUrl: playerData.clubPictureUrl,\r\n completedReport: playerData.completedReport,\r\n openReport: playerData.openReport,\r\n sharedData: playerData.sharedData \r\n }),\r\n componentUpdated: false,\r\n })\r\n }\r\n }\r\n\r\n saveUploadedPhoto(e) {\r\n this.setState({\r\n fields: this.state.fields.set('photo', e.id),\r\n errors: this.state.errors.delete('photo')\r\n });\r\n }\r\n\r\n goBack(e) {\r\n this.props.history.goBack();\r\n e.preventDefault();\r\n }\r\n \r\n print(e) {\r\n if (typeof e.preventDefault === 'function') {\r\n e.preventDefault();\r\n }\r\n if (this.state.fields.get('birthdate') instanceof Date) {\r\n toast.error(\"Please update unsaved birthdate before printing\", {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n else {\r\n window.print(); \r\n } \r\n }\r\n\r\n uploadFileChange(e) {\r\n const files = e.target.files;\r\n const { userId } = this.state;\r\n const { t, uploadPicture } = this.props;\r\n if (files === undefined) return;\r\n\r\n let formData = new FormData();\r\n let fileType = '';\r\n\r\n if (files[0] !== null) {\r\n fileType = files[0].type;\r\n }\r\n\r\n if (files[0].size > '6000000') {\r\n toast.success(\"file size limit\", {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n return;\r\n }\r\n\r\n if (fileType !== 'image/png' && fileType !== 'image/jpeg' && fileType !== 'image/jpg') {\r\n\r\n toast.success(\"format not allowed\", {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n return;\r\n }\r\n\r\n formData.append('file', files[0]);\r\n\r\n const dateTag = new Date().toString().replace('+', ' ');\r\n\r\n let newFields = this.state.fields.set('imgTemp', URL.createObjectURL(files[0]));\r\n\r\n newFields = newFields.set('photoDate', dateTag);\r\n\r\n this.setState({\r\n fields: newFields\r\n });\r\n\r\n uploadPicture(formData, dateTag, userId, t)\r\n .then(t => this.hideLoading());\r\n }\r\n\r\n clear() {\r\n const i = document.querySelector('.upload-detail');\r\n const { t, clearImage, fetchPlayerDetails } = this.props;\r\n const { userId } = this.state;\r\n\r\n clearImage(userId, t)\r\n .then(t => {\r\n i.value = '';\r\n fetchPlayerDetails(userId);\r\n this.hideLoading();\r\n });\r\n }\r\n\r\n handleUpdate() {\r\n const { fields } = this.state;\r\n\r\n const { routingLocation } = this.props;\r\n\r\n const entity = fields.toJS();\r\n\r\n entity.id = routingLocation.query['userId'];\r\n\r\n //validation\r\n\r\n const simpleEmailRegexp = new RegExp('[^@]+@[^\\.]+\\..+');\r\n\r\n const hasValidEmail = simpleEmailRegexp.test(fields.get('email'));\r\n if (!hasValidEmail) {\r\n toast.success(\"invalid email format\", {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n return;\r\n }\r\n //end of validation\r\n\r\n this.props.updatePlayerData(entity)\r\n .then(t => this.hideLoading());\r\n }\r\n\r\n setInvisible(e) {\r\n const { displayed } = this.state;\r\n\r\n this.setState({ displayed: !displayed });\r\n }\r\n\r\n setAlert(e) {\r\n alert('throw');\r\n }\r\n\r\n handleDateChange = (field, d) => {\r\n\r\n this.setState({\r\n fields: this.state.fields.set(field, d)\r\n });\r\n }\r\n\r\n \r\n render() {\r\n const { seasonDropDownIsOpen, filteredSeason } = this.state; \r\n const { seasons} = this.props;\r\n const { playerData, allPositions, t } = this.props;\r\n const { fields, showdetailoverall } = this.state;\r\n const hasPicture = fields.get('imgTemp') == null || fields.get('imgTemp') === undefined ? false : true;\r\n const skillsOverview = playerData && playerData.playerReportDetailsSkill ? playerData.playerReportDetailsSkill : fromJS({});\r\n const playerReportResponse = playerData && playerData.playerReportResponse ? playerData.playerReportResponse : fromJS({}); \r\n const sharedData = fields.get('sharedData');\r\n let pos = '';\r\n pos = allPositions.map((x, i) => ());\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \"Print\r\n \r\n \r\n {filteredSeason}\r\n \r\n \r\n {seasons.map((row, index) => {\r\n //let current = '';\r\n //current = row.isCurrent ? () : '';\r\n return (\r\n \r\n
\r\n {row.seasonName}\r\n
\r\n
\r\n )\r\n })}\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \"\"\r\n
\r\n \r\n {hasPicture && \"\"}\r\n {!hasPicture && }\r\n \"\"\r\n \"\"\r\n
\r\n
\r\n
\r\n
{fields.get('firstname') + ' ' + fields.get('lastname')}
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{t('generaldetail.birthdate')}:{fields.get('birthdate') && !(fields.get('birthdate') instanceof Date) ? fields.get('birthdate').split('T')[0] : ' '}
{t('general.open') + ' ' + t('general.lowerreports')}:{fields.get('openReport')}
{t('overview.completed') + ' ' + t('general.lowerreports')}:{fields.get('completedReport')}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n { /* left page */}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{t('teams.singletitle')}\r\n this.handleChange(field, value)} value={fields.get('teamname')}\r\n extraClassName={'disabled-field-bg'}\r\n />\r\n
{t('general.role')}\r\n this.handleChange(field, value)} value={fields.get('role')}\r\n extraClassName={'disabled-field-bg'}\r\n />\r\n
{t('general.firstname')} this.handleChange(field, value)} value={fields.get('firstname')} />
{t('general.lastname')} this.handleChange(field, value)} value={fields.get('lastname')} />
Nationality this.handleChange(field, value)} value={fields.get('nationality')} />
Birth place this.handleChange(field, value)} value={fields.get('birthplace')} />
{t('generaldetail.birthdate')}\r\n this.handleDateChange(field, new Date(date))}\r\n />\r\n
{t('general.e-mail')}\r\n this.handleChange(field, value)} \r\n value={fields.get('email')}\r\n extraClassName={'disabled-field-bg'}\r\n />\r\n
Telephone this.handleChange(field, value)} value={fields.get('telephone')} />
Address this.handleChange(field, value)} value={fields.get('address')} />
\r\n {sharedData ?\r\n
\r\n \r\n
:\r\n
\r\n \r\n
}\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n { /* right page */}\r\n
\r\n { /* overall section */}\r\n
\r\n
\r\n \r\n
{t('overview.completed') + ' ' + t('general.lowerreports')}\r\n
{fields.get('completedReport')}
\r\n
\r\n
\r\n
{t('generaldetail.overallscore')}
\r\n
{fields.get('averageScore') && fields.get('averageScore') != \"0\" ? parseFloat(fields.get('averageScore')).toFixed(1) : ' '}
\r\n
{showdetailoverall ?
: }
\r\n
\r\n
\r\n
\r\n
\r\n
{t('general.progress')}
\r\n
\r\n
\r\n
\r\n
\r\n {fields.get('completionPercentage') + '%'}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {skillsOverview &&\r\n skillsOverview.map((data) => {\r\n return (\r\n
\r\n
\r\n
{data.skillName}
\r\n
{data.score}
\r\n
\r\n
\r\n );\r\n })\r\n }\r\n
\r\n
\r\n
\r\n
\r\n \r\n {/**/}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default connect((state) => {\r\n return {\r\n playerData: state.player.player,\r\n routingLocation: routingLocationSelector(state),\r\n profilePictureUpload: state.profilePicture.profilePictureUpload,\r\n updatedManager: state.manager.updatedManager,\r\n seasons: state.masterData.seasons,\r\n allPositions: state.masterData.positions,\r\n }\r\n},\r\n dispatch => bindActionCreators({\r\n fetchPlayerDetails,\r\n fetchPlayerDetailsByIdBySeason,\r\n uploadPicture,\r\n clearImage,\r\n updatePlayerData,\r\n getPositions,\r\n getSeason,\r\n }, dispatch))(withTranslation()(DetailPlayer));","import { getClubDetails, webAppUrl, } from '../../constants';\r\nimport fetchWithBearerToken from '../../SharedActions/fetchWithBearerToken';\r\n\r\nexport default (userid) => async (dispatch) => {\r\n const url = `${webAppUrl}/api/user/GetClubDetails`;\r\n\r\n const response = await fetchWithBearerToken(url);\r\n\r\n if (response.ok) {\r\n const result = await response.json();\r\n dispatch({ type: getClubDetails, clubDetails: result });\r\n }\r\n else\r\n dispatch({ type: getClubDetails, clubDetails: null });\r\n};","import { webAppUrl, tokenKey } from '../../constants';\r\nimport { toast } from 'react-toastify';\r\nimport fetchClubDetails from '../../../store/users/actions/fetchClubDetails';\r\n\r\nexport default (club) => async (dispatch) => {\r\n const url = `${webAppUrl}/api/user/UpdateClubDetails`;\r\n\r\n var body = JSON.stringify({\r\n \"Id\": club.clubid,\r\n \"ClubName\": club.clubname,\r\n \"LogoUrl\": club.logotemp && club.logotemp != '' ? club.logotemp : club.logourl,\r\n \"Country\": club.country\r\n });\r\n\r\n const response = await fetch(url, {\r\n method: 'POST',\r\n headers: {\r\n 'Authorization': `Bearer ${sessionStorage.getItem(tokenKey)}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: body\r\n });\r\n\r\n if (response.ok) {\r\n dispatch(fetchClubDetails());\r\n toast.success(\"Club details updated\", {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n else {\r\n toast.error(\"Failed to update club details\", {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n};","import { webAppUrl, addSeason } from '../constants';\r\nimport { toast } from 'react-toastify';\r\nimport fetchWithBearerToken from '../SharedActions/fetchWithBearerToken';\r\n\r\nexport default (entity,t) => async (dispatch) => {\r\n\r\n var sd = new Date(Date.UTC(entity.startdate.getFullYear(), entity.startdate.getMonth(), entity.startdate.getDate()));\r\n var ed = new Date(Date.UTC(entity.enddate.getFullYear(), entity.enddate.getMonth(), entity.enddate.getDate()));\r\n\r\n const body = JSON.stringify({\r\n \"Id\": entity.id,\r\n \"SeasonName\": entity.seasonname,\r\n \"ReportFrequency\": entity.reportfreq,\r\n \"StartDate\": sd,\r\n \"EndDate\": ed,\r\n });\r\n\r\n const result = await fetchWithBearerToken(`${webAppUrl}/api/MasterData/AddOrUpdateSeason`, 'POST', body);\r\n\r\n if (result.ok) {\r\n var response = await result.json();\r\n if (response.isSucceeded)\r\n toast.success(`${t('messagessuccess.saveseason')}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n else\r\n toast.success(`${t('messagesfailed.seasonexist')}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n\r\n dispatch({ type: addSeason, result: new Date().toString() });\r\n }\r\n else {\r\n toast.error(`${t('messagesfailed.saveseason')} ${response.errorMessage}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n\r\n};","import { webAppUrl, addSeason } from '../constants';\r\nimport { toast } from 'react-toastify';\r\nimport fetchWithBearerToken from '../SharedActions/fetchWithBearerToken';\r\n\r\nexport default (clubSeasons) => async (dispatch) => {\r\n var data = [];\r\n clubSeasons.forEach(function (row) {\r\n var rowdata = { \r\n \"Id\": row.id,\r\n \"SeasonName\": row.seasonName,\r\n \"ReportFrequency\": parseInt(row.reportFrequency),\r\n };\r\n data.push(rowdata);\r\n }); \r\n \r\n const result = await fetchWithBearerToken(`${webAppUrl}/api/MasterData/UpdateSeasons`, 'POST', JSON.stringify(data));\r\n\r\n if (result.ok) {\r\n var response = await result.json();\r\n toast.success(`Seasons updated succesfully.`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n dispatch({ type: addSeason, result: new Date().toString() });\r\n }\r\n else {\r\n var response = await result.json();\r\n toast.error(`Failed update seasons. ${response.errorMessage}`, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n\r\n }\r\n};","import { fromJS } from 'immutable';\r\nimport '../../bootstrap_css/style.css';\r\nimport { connect } from 'react-redux';\r\nimport React, { Component, useState } from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport TextInputField from '../../SharedComponents/TextInputField';\r\nimport DateInputField from '../../SharedComponents/DateInputField';\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport { withTranslation } from 'react-i18next';\r\nimport { toast } from 'react-toastify';\r\nimport imageUpload from '../../images/upload.jpg';\r\nimport fetchClubDetails from '../../../store/users/actions/fetchClubDetails';\r\nimport updateClubDetails from '../../../store/users/actions/updateClubDetails';\r\nimport uploadPicture from '../../../store/profilePicture/uploadPicture';\r\nimport { Modal } from 'reactstrap';\r\nimport addSeason from '../../../store/MasterData/addSeason';\r\nimport updateSeason from '../../../store/MasterData/updateSeasons';\r\nimport EmptyTeamsImage from '../../images/Empty_logo_Big.png';\r\nimport './GeneralSettings.css';\r\nimport { TableCell, TableHead, TableRow, TableSortLabel } from '@material-ui/core';\r\nimport { formatDateOverviewPicker } from '../../../helpers/dateHelper';\r\nimport { FaCaretUp } from 'react-icons/fa';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nclass GeneralSettings extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n fields: fromJS({\r\n clubid: \"\",\r\n clubname: \"\",\r\n country: \"\",\r\n logourl: \"\",\r\n logotemp: \"\",\r\n clubSeasons: fromJS([]),\r\n }),\r\n fieldSeason: fromJS({\r\n id: \"00000000-0000-0000-0000-000000000000\",\r\n seasonname: \"\",\r\n reportfreq: 1,\r\n startdate: \"\",\r\n enddate: \"\",\r\n }),\r\n errorsfieldSeason: fromJS({}),\r\n componentUpdated: false,\r\n errors: fromJS({}),\r\n displayed: false,\r\n modal: false,\r\n allowminreport: true,\r\n actionseason: 'Add',\r\n order: 'asc',\r\n orderBy: 'season',\r\n\r\n };\r\n this.handleChange = this.handleChange.bind(this);\r\n this.uploadFileChange = this.uploadFileChange.bind(this);\r\n this.saveUploadedPhoto = this.saveUploadedPhoto.bind(this);\r\n this.setInvisible = this.setInvisible.bind(this);\r\n this.saveClubDetails = this.saveClubDetails.bind(this);\r\n this.updateSeasons = this.updateSeasons.bind(this);\r\n this.handleChangeSeason = this.handleChangeSeason.bind(this);\r\n this.handleRequestSort = this.handleRequestSort.bind(this);\r\n }\r\n\r\n hideLoading() {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n }\r\n\r\n toggle = (e) => {\r\n const { modal } = this.state;\r\n this.setState({\r\n modal: !modal,\r\n allowminreport: true,\r\n fieldSeason: fromJS({\r\n id: \"00000000-0000-0000-0000-000000000000\",\r\n seasonname: \"\",\r\n reportfreq: 1,\r\n startdate: \"\",\r\n enddate: \"\",\r\n }),\r\n actionseason: 'Add',\r\n });\r\n }\r\n\r\n handleEdit = (e) => {\r\n const { modal, fields } = this.state;\r\n var seasonId = e.currentTarget.id;\r\n if (seasonId) {\r\n const clubseason = fields.get('clubSeasons').toJS();\r\n const seasonFilter = clubseason.filter(function (i, n) {\r\n return i.id === seasonId;\r\n });\r\n this.setState({\r\n fieldSeason: fromJS({\r\n id: seasonFilter[0].id,\r\n seasonname: seasonFilter[0].seasonName,\r\n reportfreq: seasonFilter[0].reportFrequency,\r\n startdate: formatDateOverviewPicker(seasonFilter[0].startDate),\r\n enddate: formatDateOverviewPicker(seasonFilter[0].endDate),\r\n }),\r\n actionseason: 'Edit',\r\n });\r\n }\r\n this.setState({\r\n modal: !modal,\r\n allowminreport: false\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.props.fetchClubDetails()\r\n .then(t => this.hideLoading());\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const { clubDetails, profilePictureUpload, addSeasonResult } = this.props;\r\n if (clubDetails && clubDetails != prevProps.clubDetails) {\r\n this.setState({\r\n fields: fromJS({\r\n clubid: clubDetails.id,\r\n clubname: clubDetails.clubName,\r\n country: clubDetails.country,\r\n logourl: clubDetails.logoUrl,\r\n clubSeasons: clubDetails.clubSeasons,\r\n }),\r\n componentUpdated: true,\r\n })\r\n }\r\n\r\n if (profilePictureUpload && profilePictureUpload !== prevProps.profilePictureUpload) {\r\n this.saveUploadedPhoto(profilePictureUpload);\r\n }\r\n if (addSeasonResult && prevProps.addSeasonResult !== addSeasonResult) {\r\n this.props.fetchClubDetails()\r\n .then(t => this.hideLoading());\r\n }\r\n }\r\n\r\n saveUploadedPhoto(e) {\r\n this.setState({\r\n fields: this.state.fields.set('logotemp', e.id),\r\n errors: this.state.errors.delete('logotemp')\r\n });\r\n }\r\n\r\n handleChange(field, value) {\r\n this.setState({\r\n fields: this.state.fields.set(field, value),\r\n errors: this.state.errors.delete(field),\r\n });\r\n }\r\n\r\n handleChangeSeason(field, value) {\r\n this.setState({\r\n fieldSeason: this.state.fieldSeason.set(field, value),\r\n errorsfieldSeason: this.state.errorsfieldSeason.delete(field),\r\n });\r\n }\r\n\r\n changeUpdateSeason(id, newvalue, field) {\r\n const { fields } = this.state;\r\n var fieldsSeason = fields.get('clubSeasons').map((row, f) => {\r\n var newrow = row;\r\n if (row.get('id') == id) {\r\n var newrow = row.map((value, fieldrow) => {\r\n if (fieldrow == field)\r\n return newvalue;\r\n else\r\n return value;\r\n });\r\n }\r\n return newrow;\r\n });\r\n this.setState({\r\n fields: this.state.fields.set('clubSeasons', fieldsSeason)\r\n });\r\n }\r\n\r\n addOrMin = (e) => {\r\n const { fieldSeason } = this.state;\r\n var value = parseInt(fieldSeason.get('reportfreq'));\r\n\r\n if (e.target.outerText == '+')\r\n value = value + 1;\r\n else\r\n value = value - 1;\r\n\r\n this.setState({\r\n fieldSeason: this.state.fieldSeason.set('reportfreq', value < 0 ? 0 : value),\r\n });\r\n }\r\n\r\n uploadFileChange(e) {\r\n const files = e.target.files;\r\n const { t } = this.props;\r\n if (files === undefined) return;\r\n\r\n let formData = new FormData();\r\n let fileType = '';\r\n\r\n if (files[0] !== null) {\r\n fileType = files[0].type;\r\n }\r\n\r\n if (files[0].size > '6000000') {\r\n toast.success(\"file size limit\", {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n return;\r\n }\r\n\r\n if (fileType !== 'image/png' && fileType !== 'image/jpeg' && fileType !== 'image/jpg') {\r\n\r\n toast.success(\"format not allowed\", {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n return;\r\n }\r\n\r\n formData.append('file', files[0]);\r\n\r\n const dateTag = new Date().toString().replace('+', ' ');\r\n\r\n let newFields = this.state.fields.set('logourl', URL.createObjectURL(files[0]));\r\n\r\n this.setState({\r\n fields: newFields\r\n });\r\n\r\n this.props.uploadPicture(formData, dateTag, null, t)\r\n .then(t => this.hideLoading());\r\n }\r\n\r\n setInvisible(e) {\r\n const { displayed } = this.state;\r\n\r\n this.setState({ displayed: !displayed });\r\n }\r\n\r\n saveClubDetails() {\r\n const { fields } = this.state;\r\n this.props.updateClubDetails(fields.toJS())\r\n .then(t => this.hideLoading());\r\n }\r\n\r\n updateSeasons() {\r\n const { fields } = this.state;\r\n this.props.updateSeason(fields.get('clubSeasons').toJS())\r\n .then(t => this.hideLoading());\r\n }\r\n\r\n saveNewSeason() {\r\n const { fieldSeason, modal } = this.state;\r\n if (fieldSeason.get('seasonname') == '' || fieldSeason.get('reportfreq') == '') {\r\n toast.success(\"Please filled all the input\", {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n else {\r\n if (fieldSeason.get('startdate') > fieldSeason.get('enddate')) {\r\n toast.success(\"Start date can not more than end date\", {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n else {\r\n this.props.addSeason(fieldSeason.toJS())\r\n .then(t => this.hideLoading());\r\n this.setState({\r\n modal: !modal,\r\n fieldSeason: fromJS({\r\n id: \"00000000-0000-0000-0000-000000000000\",\r\n seasonname: \"\",\r\n reportfreq: \"1\",\r\n startdate: \"\",\r\n enddate: \"\",\r\n }),\r\n });\r\n }\r\n }\r\n }\r\n\r\n handleDateChange = (field, d) => {\r\n this.setState({\r\n fieldSeason: this.state.fieldSeason.set(field, d),\r\n });\r\n }\r\n\r\n addSeasonModal = (modal) => {\r\n const { fieldSeason, errors, allowminreport, actionseason } = this.state;\r\n return (\r\n \r\n

{actionseason} season

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Season name:\r\n this.handleChangeSeason(field, value)}\r\n hasError={errors.has('seasonname')}\r\n placeholder={''}\r\n />\r\n
Reports per player:\r\n
\r\n
\r\n \r\n \r\n \r\n this.handleChangeSeason(field, value)}\r\n hasError={errors.has('reportfreq')}\r\n extraClassName={'text-center'}\r\n placeholder={\"Report Frequency\"}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n
Start date:\r\n this.handleDateChange(field, date)}\r\n />\r\n\r\n
End date:\r\n this.handleDateChange(field, date)}\r\n />\r\n\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n handleRequestSort = (event, property) => {\r\n const { orderBy, order } = this.state;\r\n const isAsc = orderBy === property && order === 'asc';\r\n this.setState({\r\n order: isAsc ? 'desc' : 'asc',\r\n orderBy: property,\r\n });\r\n }\r\n\r\n render() {\r\n const { fields, modal, } = this.state;\r\n const { t } = this.props;\r\n const hasPicture = fields.get('logourl') == null || fields.get('logourl') === \"\" ? false : true;\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{t('general.clubsettings')}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {hasPicture && }\r\n {!hasPicture && \"\"}\r\n\r\n
\r\n

\r\n {t('general.photonote')}\r\n
\r\n {t('general.photonoteresolution')}\r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{t('general.clubname')}\r\n this.handleChange(field, value)}\r\n value={fields.get('clubname')} />\r\n
{t('general.country')}\r\n this.handleChange(field, value)}\r\n value={fields.get('country')} />\r\n
\r\n
\r\n
{t('general.update')}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {this.addSeasonModal(modal)}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nfunction EnhancedTableHead(props) {\r\n const { order, orderBy, onRequestSort, headCells } = props;\r\n const createSortHandler = (property) => (event) => {\r\n onRequestSort(event, property);\r\n };\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n {headCells.map((headCell) => (\r\n \r\n\r\n {headCell.label != 'Action' &&\r\n < TableSortLabel\r\n active={orderBy === headCell.id}\r\n direction={orderBy === headCell.id ? order : 'asc'}\r\n onClick={createSortHandler(headCell.id)}\r\n IconComponent={FaCaretUp}\r\n >\r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n }\r\n {\r\n headCell.label == 'Action' &&\r\n {headCell.label}\r\n }\r\n \r\n ))}\r\n \r\n \r\n );\r\n}\r\n\r\nEnhancedTableHead.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n numSelected: PropTypes.number.isRequired,\r\n onRequestSort: PropTypes.func.isRequired,\r\n onSelectAllClick: PropTypes.func.isRequired,\r\n order: PropTypes.oneOf(['asc', 'desc']).isRequired,\r\n orderBy: PropTypes.string.isRequired,\r\n rowCount: PropTypes.number.isRequired,\r\n};\r\n\r\nfunction getComparator(order, orderBy) {\r\n return order === 'desc'\r\n ? (a, b) => descendingComparator(a, b, orderBy)\r\n : (a, b) => -descendingComparator(a, b, orderBy);\r\n}\r\n\r\nfunction descendingComparator(a, b, orderBy) {\r\n if (b[orderBy] < a[orderBy]) {\r\n return -1;\r\n }\r\n if (b[orderBy] > a[orderBy]) {\r\n return 1;\r\n }\r\n return 0;\r\n}\r\n\r\nfunction stableSort(array, comparator) {\r\n const stabilizedThis = array.map((el, index) => [el, index]);\r\n stabilizedThis.sort((a, b) => {\r\n const order = comparator(a[0], b[0]);\r\n if (order !== 0) return order;\r\n return a[1] - b[1];\r\n });\r\n return stabilizedThis.map((el) => el[0]);\r\n}\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n width: '100%'\r\n },\r\n paper: {\r\n width: '100%',\r\n marginBottom: theme.spacing(2),\r\n },\r\n table: {\r\n minWidth: 750,\r\n },\r\n visuallyHidden: {\r\n border: 0,\r\n clip: 'rect(0 0 0 0)',\r\n height: 1,\r\n margin: -1,\r\n overflow: 'hidden',\r\n padding: 0,\r\n position: 'absolute',\r\n top: 20,\r\n width: 1,\r\n },\r\n buttonInvitation: {\r\n\r\n background: 'grey',\r\n border: 0,\r\n borderRadius: 10,\r\n boxShadow: '0 3px 5px 2px ',\r\n color: 'white',\r\n height: 40,\r\n padding: '0 5px',\r\n textTransform: 'none'\r\n }\r\n}));\r\n\r\nexport default connect((state) => {\r\n return {\r\n clubDetails: state.users.clubDetails,\r\n profilePictureUpload: state.profilePicture.profilePictureUpload,\r\n addSeasonResult: state.users.addSeasonResult,\r\n }\r\n},\r\n dispatch => bindActionCreators({\r\n fetchClubDetails,\r\n uploadPicture,\r\n updateClubDetails,\r\n addSeason,\r\n updateSeason,\r\n }, dispatch))(withTranslation()(GeneralSettings));","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport { Table, TableBody, TableCell, TableContainer, TableHead, TableRow, TableSortLabel } from '@material-ui/core';\r\nimport { Input, Modal } from 'reactstrap';\r\nimport { FaCaretUp } from 'react-icons/fa';\r\nimport { fromJS } from 'immutable';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport trash from '../images/Trash.svg';\r\nimport trashwhite from '../images/trash_white.svg';\r\nimport roundplus from '../images/round_plus_icon.svg';\r\nimport editicon from '../images/edit_ic.svg';\r\nimport fetchClubDetails from '../../store/users/actions/fetchClubDetails';\r\nimport updateClubDetails from '../../store/users/actions/updateClubDetails';\r\nimport uploadPicture from '../../store/profilePicture/uploadPicture';\r\nimport addSeason from '../../store/MasterData/addSeason';\r\nimport updateSeason from '../../store/MasterData/updateSeasons';\r\nimport TextInputField from '../SharedComponents/TextInputField';\r\nimport DateInputField from '../SharedComponents/DateInputField';\r\nimport { formatDateStandart } from '../../helpers/dateHelper';\r\nimport { formatDateOverviewPicker } from '../../helpers/dateHelper';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { toast } from 'react-toastify';\r\n\r\nclass Season extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isRendering: false,\r\n isVisible: false,\r\n order: 'asc',\r\n orderBy: '',\r\n rows: [],\r\n activeRemove: false,\r\n errorsfieldSeason: fromJS({}),\r\n componentUpdated: false,\r\n errors: fromJS({}),\r\n displayed: false,\r\n modal: false,\r\n allowminreport: true,\r\n actionseason: false,\r\n minReportFreq: 0,\r\n fieldSeason: fromJS({\r\n id: \"00000000-0000-0000-0000-000000000000\",\r\n seasonname: \"\",\r\n reportfreq: 1,\r\n startdate: \"\",\r\n enddate: \"\",\r\n amountOfCompleted: 0\r\n })\r\n };\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleChangeSeason = this.handleChangeSeason.bind(this);\r\n this.handleRequestSort = this.handleRequestSort.bind(this);\r\n this.hideComponent = this.hideComponent.bind(this);\r\n }\r\n\r\n hideComponent() {\r\n this.setState({ isVisible: true });\r\n }\r\n\r\n onClick = (eve, obj) => {\r\n this.setState({\r\n rows: this.state.rows.map(item => {\r\n if (typeof (obj) === 'undefined')\r\n return { ...item, isSelected: eve.target.checked }\r\n return item.id == obj ? { ...item, isSelected: eve.target.checked } : item\r\n }),\r\n activeRemove: eve.target.checked\r\n });\r\n }\r\n handleRemove = (e) => {\r\n //TO-DO: the API is not exist yet and flow for delete season is not clear\r\n }\r\n handleRequestSort = (event, property) => {\r\n const { orderBy, order } = this.state;\r\n const isAsc = orderBy === property && order === 'asc';\r\n this.setState({\r\n order: isAsc ? 'desc' : 'asc',\r\n orderBy: property,\r\n });\r\n }\r\n handleDateChange = (field, d) => {\r\n this.setState({\r\n fieldSeason: this.state.fieldSeason.set(field, d),\r\n });\r\n }\r\n handleChange(field, value) {\r\n this.setState({\r\n fields: this.state.fields.set(field, value),\r\n errors: this.state.errors.delete(field),\r\n });\r\n }\r\n handleChangeSeason(field, value) {\r\n this.setState({\r\n fieldSeason: this.state.fieldSeason.set(field, value),\r\n errorsfieldSeason: this.state.errorsfieldSeason.delete(field),\r\n });\r\n }\r\n save = () => {\r\n const { fieldSeason, modal } = this.state;\r\n const { t } = this.props;\r\n\r\n if (fieldSeason.get('seasonname') == '' || fieldSeason.get('reportfreq') == '') {\r\n toast.success(t('validationerror.mandatoryfield'), {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n else {\r\n if (fieldSeason.get('startdate') > fieldSeason.get('enddate')) {\r\n toast.success(t('validationerror.overlapdate'), {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n else {\r\n this.props.addSeason(fieldSeason.toJS(),t)\r\n .then(t => {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n });\r\n this.setState({\r\n modal: !modal,\r\n fieldSeason: fromJS({\r\n id: \"00000000-0000-0000-0000-000000000000\",\r\n seasonname: \"\",\r\n reportfreq: \"1\",\r\n startdate: \"\",\r\n enddate: \"\",\r\n }),\r\n });\r\n }\r\n }\r\n }\r\n addOrMin = (e) => {\r\n const { fieldSeason } = this.state;\r\n var value = parseInt(fieldSeason.get('reportfreq'));\r\n\r\n if (e.target.outerText == '+')\r\n value = value + 1;\r\n else\r\n value = value - 1;\r\n\r\n this.setState({\r\n fieldSeason: this.state.fieldSeason.set('reportfreq', value < this.state.minReportFreq ? this.state.minReportFreq : value),\r\n });\r\n }\r\n toggle = (e) => {\r\n const { modal } = this.state;\r\n this.setState({\r\n modal: !modal,\r\n allowminreport: true,\r\n fieldSeason: fromJS({\r\n id: \"00000000-0000-0000-0000-000000000000\",\r\n seasonname: \"\",\r\n reportfreq: 1,\r\n startdate: \"\",\r\n enddate: \"\",\r\n }),\r\n minReportFreq: 0\r\n });\r\n }\r\n handleEdit = (e) => {\r\n const { modal, rows, actionseason, allowminreport } = this.state;\r\n var seasonId = e.currentTarget.id;\r\n if (seasonId) {\r\n const seasonFilter = rows.filter(function (i, n) {\r\n return i.id === seasonId;\r\n });\r\n this.setState({\r\n fieldSeason: fromJS({\r\n id: seasonFilter[0].id,\r\n seasonname: seasonFilter[0].seasonName,\r\n reportfreq: seasonFilter[0].reportFrequency,\r\n startdate: formatDateOverviewPicker(seasonFilter[0].startDate),\r\n enddate: formatDateOverviewPicker(seasonFilter[0].endDate),\r\n amountOfCompleted: seasonFilter[0].amountOfCompleted\r\n }),\r\n actionseason: !actionseason,\r\n allowminreport: true,\r\n minReportFreq: seasonFilter[0].amountOfCompleted,\r\n modal: !modal\r\n });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.props.fetchClubDetails()\r\n .then(t => {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n this.hideComponent();\r\n });\r\n\r\n \r\n\r\n this.setState({ isRendering: true }, () => {\r\n this.setState({ isRendering: false });\r\n });\r\n }\r\n componentDidUpdate(prevProps) {\r\n const { clubDetails, profilePictureUpload, addSeasonResult } = this.props;\r\n if (clubDetails && clubDetails != prevProps.clubDetails) {\r\n this.setState({\r\n fields: fromJS({\r\n clubid: clubDetails.id,\r\n clubname: clubDetails.clubName,\r\n country: clubDetails.country,\r\n logourl: clubDetails.logoUrl,\r\n clubSeasons: clubDetails.clubSeasons,\r\n }),\r\n componentUpdated: true,\r\n rows: clubDetails.clubSeasons.map(obj => ({ ...obj, isSelected: false }))\r\n })\r\n }\r\n\r\n if (addSeasonResult && prevProps.addSeasonResult !== addSeasonResult) {\r\n this.props.fetchClubDetails()\r\n .then(t => {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n });\r\n }\r\n }\r\n render() {\r\n const { modal, actionseason, order, orderBy, rows, activeRemove, fieldSeason, errors, allowminreport, isVisible } = this.state;\r\n const { t } = this.props\r\n const headCells = [\r\n { id: 'seasonName', numeric: false, disablePadding: false, label: t('seasons.title') },\r\n { id: 'reportFrequency', numeric: false, disablePadding: false, label: t('general.reports') },\r\n { id: 'startDate', numeric: false, disablePadding: false, label: t('general.start') },\r\n { id: 'endDate', numeric: false, disablePadding: false, label: t('general.end') },\r\n { id: 'action', numeric: false, disablePadding: false, align: 'right', label: t('general.action') },\r\n ];\r\n\r\n return (\r\n
\r\n {isVisible && (\r\n \r\n )}\r\n
\r\n );\r\n }\r\n}\r\n\r\nfunction TContent(props) {\r\n const { rows, isVisible, handleRemove, isActiveRemove, toggle, errors, modal, handleEdit, addOrMin, handleDateChange,\r\n order, orderBy, onClick, onSort, headCells, fieldSeason, save, handleChangeSeason, allowminreport,\r\n actionseason, t } = props;\r\n const styles = useStyles();\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n { return f.isSelected }).length}\r\n order={order}\r\n orderBy={orderBy}\r\n onClick={onClick}\r\n onSort={onSort}\r\n rowCount={rows.length}\r\n headCells={headCells} />\r\n {(props.isRendering) ? null : \r\n {stableSort(rows, getComparator(order, orderBy)).map((row, index) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {row.seasonName}\r\n \r\n \r\n \r\n {`${row.reportFrequency ? row.reportFrequency : 0} per player`}\r\n \r\n \r\n \r\n {formatDateStandart(row.startDate)}\r\n \r\n \r\n {formatDateStandart(row.endDate)}\r\n \r\n \r\n { e.preventDefault(); handleEdit(e); }}>\r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n }\r\n
\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nfunction TBar(props) {\r\n const { rows, handleRemove, isActiveRemove, toggle, t } = props;\r\n const styles = useStyles();\r\n return (\r\n
\r\n
\r\n {t('general.all') + ' ' + t('seasons.titlelower')}\r\n
{rows.length}
\r\n
\r\n
\r\n {/**/}\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nfunction THead(props) {\r\n const { onClick, order, orderBy, numSelected, rowCount, onSort, headCells } = props;\r\n const classes = useStyles();\r\n const sortBy = (property) => (event) => {\r\n onSort(event, property);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {headCells.map((headCell) => (\r\n \r\n {headCell.label != 'Action' &&\r\n \r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n }\r\n {\r\n headCell.label == 'Action' &&\r\n {headCell.label}\r\n }\r\n \r\n ))}\r\n \r\n \r\n );\r\n}\r\n\r\nfunction SeasonModal(props) {\r\n const { fieldSeason, errors, allowminreport, actionseason, toggle, handleChangeSeason,\r\n handleDateChange, addOrMin, save, isOpen, t } = props;\r\n return (\r\n \r\n

{actionseason ? t('general.edit') : t('general.add')} {t('seasons.singlelowerseason')}

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{t('seasons.seasonname')}:\r\n handleChangeSeason(field, value)}\r\n hasError={errors.has('seasonname')}\r\n placeholder={''} />\r\n
{t('seasons.reportperplayer')}:\r\n
\r\n
\r\n \r\n handleChangeSeason(field, value)}\r\n hasError={errors.has('reportfreq')}\r\n extraClassName={'text-center'}\r\n placeholder={\"Report Frequency\"} />\r\n \r\n
\r\n
\r\n
{t('general.startdate')}:\r\n handleDateChange(field, date)} />\r\n
{t('general.enddate')}:\r\n handleDateChange(field, date)} />\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nfunction descendingComparator(a, b, orderBy) {\r\n if (b[orderBy] < a[orderBy]) {\r\n return -1;\r\n }\r\n if (b[orderBy] > a[orderBy]) {\r\n return 1;\r\n }\r\n return 0;\r\n}\r\n\r\nfunction getComparator(order, orderBy) {\r\n return order === 'desc'\r\n ? (a, b) => descendingComparator(a, b, orderBy)\r\n : (a, b) => -descendingComparator(a, b, orderBy);\r\n}\r\n\r\nfunction stableSort(array, comparator) {\r\n const stabilizedThis = array.map((el, index) => [el, index]);\r\n stabilizedThis.sort((a, b) => {\r\n const order = comparator(a[0], b[0]);\r\n if (order !== 0) return order;\r\n return a[1] - b[1];\r\n });\r\n return stabilizedThis.map((el) => el[0]);\r\n}\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n visuallyHidden: {\r\n border: 0,\r\n clip: 'rect(0 0 0 0)',\r\n height: 1,\r\n margin: -1,\r\n overflow: 'hidden',\r\n padding: 0,\r\n position: 'absolute',\r\n top: 20,\r\n width: 1,\r\n },\r\n box: {\r\n alignItems: 'center',\r\n backgroundColor: '#f6f6f6',\r\n borderRadius: '5px',\r\n display: 'inline-flex',\r\n fontWeight: '900',\r\n height: '40px',\r\n justifyContent: 'center',\r\n margin: '10px 10px 10px 0',\r\n width: '40px'\r\n },\r\n selected: {\r\n backgroundColor: '#0000000a'\r\n },\r\n off: {\r\n display: 'none'\r\n },\r\n on:\r\n {\r\n display: 'initial'\r\n }\r\n}));\r\n\r\nexport default connect((state) => {\r\n return {\r\n clubDetails: state.users.clubDetails,\r\n profilePictureUpload: state.profilePicture.profilePictureUpload,\r\n addSeasonResult: state.users.addSeasonResult,\r\n }\r\n}, dispatch => bindActionCreators({\r\n fetchClubDetails,\r\n uploadPicture,\r\n updateClubDetails,\r\n addSeason,\r\n updateSeason\r\n}, dispatch))(withTranslation()(Season));","import React, { Component } from 'react';\r\nimport './Congratulation.css';\r\nimport LoginLogo from '../images/logo.svg';\r\n\r\nclass Congratulation extends Component {\r\n render() {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Your account is activated!

\r\n

Open the Pro Season app on your mobile to login.

\r\n
\r\n
\r\n \r\n
);\r\n }\r\n}\r\n\r\nexport default Congratulation;","import React, { Component } from 'react';\r\nimport './Congratulation.css';\r\nimport LoginLogo from '../images/logo.svg';\r\n\r\nclass PasswordChanged extends Component {\r\n render() {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Je wachtwoord is aangepast!

\r\n

Open de Pro Season app op je mobiel om in te loggen.

\r\n
\r\n
\r\n \r\n
);\r\n }\r\n}\r\n\r\nexport default PasswordChanged;","import React, { useEffect, useState } from 'react'\r\nimport Select from 'react-select'\r\n\r\nexport function AdminHome() {\r\n const [getFile, setFile] = useState(null)\r\n const [getClub, setClub] = useState([])\r\n const [getSeason, setSeason] = useState([])\r\n const [getTeam, setTeam] = useState([])\r\n\r\n const handleFile = (obj) => {\r\n setFile(obj.target.files[0])\r\n }\r\n\r\n const handleUp = () => {\r\n let dBody = new FormData()\r\n dBody.append('batchData', getFile)\r\n fetch('/HomeAdmin', {\r\n method: 'POST',\r\n body: dBody\r\n })\r\n .then(response => response.json())\r\n .then(result => console.log(result))\r\n .catch(error => console.log(error))\r\n }\r\n\r\n const handleClub = (event) => {\r\n FSeason({setSeason:setSeason,clubId:event.value})\r\n }\r\n\r\n const handleSeason = (event) => {\r\n FTeam({setTeam:setTeam,seasonId:event.value})\r\n }\r\n\r\n useEffect(() => {\r\n FClub({setClub:setClub})\r\n },[])\r\n\r\n return
\r\n \r\n \r\n \r\n
\r\n}\r\n\r\nasync function FClub(props) {\r\n let clubs = await fetch('/Admin/Clubs')\r\n if (clubs.ok) {\r\n let result = await clubs.json()\r\n let dOption = result.map((valObj, valInd) => {\r\n return {\r\n label: `${valInd + 1}. ${valObj.clubName}`,\r\n value: valObj.id\r\n }\r\n })\r\n props.setClub(dOption)\r\n } else {\r\n throw new Error(clubs.status)\r\n }\r\n}\r\n\r\nfunction DFormat (val) {\r\n var date = new Date(val)\r\n var formatter = new Intl.DateTimeFormat('en-EN', {year:'numeric',month:'short',day:'numeric'})\r\n var formatted = formatter.formatToParts(date)\r\n var day = formatted.find(obj=>{return obj.type === 'day'})\r\n var month = formatted.find(obj=>{return obj.type === 'month'})\r\n var year = formatted.find(obj=>{return obj.type === 'year'})\r\n return `${day.value} ${month.value} ${year.value}`\r\n}\r\n\r\nasync function FSeason(props) {\r\n let clubs = await fetch('/Admin/Seasons?clubId=' + props.clubId)\r\n if (clubs.ok) {\r\n let result = await clubs.json()\r\n let dOption = result.map((valObj, valInd) => {\r\n return {\r\n label: `${valInd + 1}. [${DFormat(valObj.startDate)} - ${DFormat(valObj.endDate)}] ${valObj.seasonName}`,\r\n value: valObj.id\r\n }\r\n })\r\n props.setSeason(dOption)\r\n } else {\r\n throw new Error(clubs.status)\r\n }\r\n}\r\n\r\nasync function FTeam(props) {\r\n let clubs = await fetch('/Admin/Teams?seasonId=' + props.seasonId)\r\n if (clubs.ok) {\r\n let result = await clubs.json()\r\n let dOption = result.map((valObj, valInd) => {\r\n return {\r\n label: `${valInd + 1}. ${valObj.teamName}`,\r\n value: valObj.id\r\n }\r\n })\r\n props.setTeam(dOption)\r\n } else {\r\n throw new Error(clubs.status)\r\n }\r\n}\r\n\r\nconst dInit = { headers: { 'Content-Type': 'application/json' }, method: 'GET' }\r\n\r\nconst dStyle = {\r\n container: (provided) => ({\r\n ...provided,\r\n margin:'20px 0'\r\n }),\r\n indicatorsContainer: () => ({ display: 'none' }),\r\n indicatorSeparator: () => ({ display: 'none' }),\r\n multiValue: (provided) => ({\r\n ...provided,\r\n backgroundColor: 'transparent',\r\n color: '#616161',\r\n fontFamily: '\"Segoe UI-Regular\", Helvetica',\r\n fontSize: '14px',\r\n fontWeight: 400,\r\n fontStyle: 'normal'\r\n }),\r\n multiValueRemove: () => ({ display: 'none' }),\r\n option: (provided) => ({\r\n ...provided,\r\n backgroundColor: 'white',\r\n \"&:hover\": {\r\n backgroundColor: '#f5f5f5',\r\n },\r\n color: '#616161',\r\n fontFamily: '\"Segoe UI-Regular\", Helvetica',\r\n fontSize: '14px',\r\n fontWeight: 400,\r\n fontStyle: 'normal'\r\n }),\r\n singleValue: (provided) => ({\r\n ...provided,\r\n color: '#686868',\r\n fontFamily: '\"Segoe UI-Bold\", Helvetica',\r\n fontSize: '12px',\r\n fontWeight: 700,\r\n fontStyle: 'normal'\r\n }),\r\n valueContainer: (provided) => ({\r\n ...provided,\r\n color: '#616161',\r\n fontFamily: '\"Segoe UI-Regular\", Helvetica',\r\n fontSize: '14px',\r\n fontWeight: 400,\r\n fontStyle: 'normal'\r\n })\r\n}","import React, { Component } from 'react';\r\nimport { Route, Switch } from 'react-router';\r\nimport ProtectedRoute from './ProtectedRoute';\r\nimport Overview from '../components/Overview/Overview';\r\nimport Teams from '../components/Teams/Teams';\r\nimport Manager from '../components/Manager/Manager';\r\nimport Version from '../components/Version';\r\nimport Login from '../components/Login/Login';\r\nimport ForgotPassword from '../components/Users/ForgotPassword/ForgotPassword';\r\nimport PageNotFound from '../components/PageNotFound/PageNotFound';\r\nimport ChangePassword from '../components/Users/ChangePassword/ChangePassword';\r\nimport TokenValidation from '../components/Users/TokenValidation';\r\nimport Players from '../components/Players/Players';\r\nimport TermsAndPrivacy from '../components/TermsAndPrivacy/TermsAndPrivacy';\r\nimport Trainers from '../components/Trainers/Trainers';\r\nimport DetailManager from '../components/Manager/DetailManager/DetailManager';\r\nimport TeamDetail from '../components/TeamDetail/TeamDetail';\r\nimport TrainerDetail from '../components/Trainers/TrainerDetail/TrainerDetail';\r\nimport DetailPlayer from '../components/Players/DetailPlayer/DetailPlayer';\r\nimport GeneralSettings from '../components/Settings/General/GeneralSettings';\r\nimport Season from '../components/Settings/Season';\r\nimport Congratulation from '../components/Settings/Congratulation';\r\nimport PasswordChanged from '../components/Settings/PasswordChanged';\r\nimport { AdminHome } from '../components/Administrator/AdminPages'\r\n\r\n\r\nclass AllRoutes extends Component {\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default (AllRoutes);\r\n","export const MANAGER = \"MANAGER;\"","import { Map } from 'immutable';\r\nimport HomeIcon from './Images/home_icon.svg';\r\nimport PlayersIcon from './Images/players_icon.svg';\r\nimport SettingsIcon from './Images/settings_icon.svg';\r\nimport TeamIcon from './Images/team_icon.svg';\r\nimport SeasonIcon from './Images/season_icon.svg';\r\nimport TrainersIcon from './Images/trainers_icon.svg';\r\nimport ManagerWhite from './Images/Manager_white.svg';\r\nimport { MANAGER } from './NavConstant';\r\n\r\nexport const sidebarUrls = Map({\r\n '/': Map({\r\n to: '/',\r\n label: 'overview.title',\r\n matchExact: true,\r\n iconUrl: HomeIcon,\r\n disabled: false,\r\n shouldBeLoggedIn: false,\r\n allowedRoles: [MANAGER]\r\n }),\r\n 'Managers': Map({\r\n to: '/manager',\r\n label: 'managers.title',\r\n matchExact: false,\r\n iconUrl: ManagerWhite,\r\n disabled: false,\r\n shouldBeLoggedIn: false,\r\n allowedRoles: [MANAGER]\r\n }),\r\n 'Seasons': Map({\r\n to: '/season',\r\n label: 'seasons.title',\r\n matchExact: false,\r\n iconUrl: SeasonIcon,\r\n disabled: false,\r\n shouldBeLoggedIn: false,\r\n allowedRoles: [MANAGER]\r\n }),\r\n 'teams': Map({\r\n to: '/teams',\r\n label: 'teams.title',\r\n matchExact: false,\r\n iconUrl: TeamIcon,\r\n disabled: false,\r\n shouldBeLoggedIn: false,\r\n allowedRoles: [MANAGER]\r\n }),\r\n 'trainers': Map({\r\n to: '/trainers',\r\n label: 'trainers.title',\r\n matchExact: false,\r\n iconUrl: TrainersIcon,\r\n disabled: false,\r\n shouldBeLoggedIn: false,\r\n allowedRoles: [MANAGER]\r\n }),\r\n 'players': Map({\r\n to: '/players',\r\n label: 'players.title',\r\n matchExact: false,\r\n iconUrl: PlayersIcon,\r\n disabled: false,\r\n shouldBeLoggedIn: false,\r\n allowedRoles: [MANAGER]\r\n }),\r\n 'settings': Map({\r\n to: '/general-settings',\r\n label: 'settings.title',\r\n matchExact: false,\r\n iconUrl: SettingsIcon,\r\n disabled: false,\r\n shouldBeLoggedIn: false,\r\n allowedRoles: [MANAGER]\r\n })\r\n});\r\n\r\nexport const allUrls = sidebarUrls;","import React from 'react';\r\n\r\nexport default class Footer extends React.Component {\r\n render() {\r\n return (\r\n
\r\n Powered by Pro Season\r\n
\r\n );\r\n }\r\n}\r\n","import { tokenKey, updateLoggedInUser } from '../../constants';\r\n\r\nexport default () => async (dispatch) => {\r\n sessionStorage.removeItem(tokenKey);\r\n dispatch({ type: updateLoggedInUser, loggedInUser: null });\r\n window.location.href = \"/login\";\r\n};","import fetchWithBearerToken from '../../SharedActions/fetchWithBearerToken';\r\n\r\nimport { fetchByKeyword, webAppUrl } from '../../constants';\r\n\r\nexport default (e) => async (dispatch) => {\r\n const url = `${webAppUrl}/api/Manager/SearchByKeyword?key=${e}`;\r\n \r\n const response = await fetchWithBearerToken(url);\r\n\r\n if (response.ok) {\r\n const searchResult = await response.json();\r\n\r\n dispatch({\r\n type: fetchByKeyword,\r\n result: searchResult\r\n });\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { Fade } from 'reactstrap';\r\nimport { bindActionCreators } from 'redux';\r\nimport logOutAction from '../../store/users/actions/logoutAction';\r\nimport { loggedInUserSelector } from '../../store/users/selectors/authSelector';\r\nimport getHeaderDetail from '../../store/users/actions/getHeaderDetail';\r\nimport ProfileGreyIcon from './Images/ProfileGreyIcon.png';\r\nimport arrowGreyIcon from './Images/Sort_Grey.png';\r\nimport LogoutIcon from './Images/Logout_Dark.svg';\r\nimport './Header.css';\r\nimport ProfilePic from '../SharedComponents/ProfileThumImage';\r\nimport { Link } from 'react-router-dom';\r\nimport searchByKeyword from '../../store/Manager/actions/searchByKeyword';\r\nimport defaultteam from '../images/Team_logo.png';\r\nimport fetchClubDetails from '../../store/users/actions/fetchClubDetails';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { FaCaretDown } from 'react-icons/fa';\r\n\r\nclass Header extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.toggle = this.toggle.bind(this);\r\n this.toggleDropDown = this.toggleDropDown.bind(this);\r\n\r\n this.state = {\r\n searchKeyword: '',\r\n isOpen: false,\r\n dropdownOpen: false,\r\n fadeIn: true\r\n };\r\n }\r\n\r\n toggle() {\r\n this.setState({\r\n isOpen: !this.state.isOpen\r\n });\r\n }\r\n\r\n toggleDropDown(e) {\r\n e.preventDefault();\r\n this.setState({\r\n dropDownIsOpen: !this.state.dropDownIsOpen\r\n });\r\n }\r\n\r\n keywordChange = (e) => {\r\n\r\n //if (e.target.value !== null && e.target.value !== '') {\r\n\r\n // //this.props.toggleSearch(true);\r\n //}\r\n //else this.props.toggleSearch(false);\r\n this.props.toggleSearch(true);\r\n this.props.searchByKeyword(e.target.value).then(t => {\r\n const loading = document.querySelector('.loading');\r\n if (loading)\r\n loading.style.visibility = \"hidden\";\r\n });\r\n this.setState({\r\n searchKeyword: e.target.value\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.props.getHeaderDetail();\r\n this.props.fetchClubDetails();\r\n }\r\n\r\n render() {\r\n //populate the user detail\r\n const { dropDownIsOpen } = this.state;\r\n const {\r\n userLoggedIn, headerDetail, keywordResult, toggleSearch, profilBoxStatus, t\r\n } = this.props;\r\n const defaultPicture = sessionStorage.getItem('clubImage');\r\n\r\n return (\r\n
\r\n
\r\n
\r\n { this.props.toggleSearch(false); }} onChange={this.keywordChange} type=\"text\" className=\"searchbox\"\r\n placeholder={t('header.search')} />\r\n { toggleSearch(true); this.props.searchByKeyword(this.state.searchKeyword); }} className=\"search_submit\" />\r\n
\r\n \r\n
\r\n {keywordResult == null &&
0 result
}\r\n {keywordResult && keywordResult.map((row) =>\r\n
{ this.props.toggleSearch(false); window.location.reload(); }} className=\"searchbox-sub-container\">\r\n \r\n {row.role == 'Team' ? :\r\n }\r\n {`${row.firstName} ${row.lastName}`}\r\n
\r\n {`${row.role}`}\r\n \r\n
)}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{headerDetail ? `${headerDetail.firstName} ${headerDetail.lastName}` : 'fetching'}
\r\n
Manager
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default connect(\r\n (state) => {\r\n return {\r\n userLoggedIn: loggedInUserSelector(state),\r\n headerDetail: state.users.headerDetail,\r\n clubDetails: state.users.clubDetails,\r\n keywordResult: state.manager.keywordResult\r\n }\r\n },\r\n dispatch => bindActionCreators({\r\n logOut: logOutAction,\r\n getHeaderDetail,\r\n fetchClubDetails,\r\n searchByKeyword\r\n }, dispatch),\r\n)(withTranslation()(Header));","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { NavItem, NavLink } from 'reactstrap';\r\nimport { isOnPath } from '../../../helpers/routingHelper';\r\nimport { withTranslation } from 'react-i18next';\r\nimport './NavMenuItem.css';\r\n\r\nclass NavMenuItem extends React.Component {\r\n render() {\r\n const {\r\n pathname,\r\n navItem,\r\n } = this.props;\r\n const { t } = this.props;\r\n return (\r\n \r\n \r\n \r\n {t(navItem.get('label'))}\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default (withTranslation()(NavMenuItem));","export const isOnPath = (currentPath, targetPath, matchExactly) => {\r\n if (matchExactly) {\r\n return currentPath === targetPath;\r\n }\r\n return currentPath.indexOf(targetPath) !== -1;\r\n}","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { List } from 'immutable';\r\nimport { routingLocationSelector } from '../../store/general/selectors/generalSelector';\r\nimport { loggedInUserSelector } from '../../store/users/selectors/authSelector';\r\nimport NavMenuItem from './NavMenuItem/NavMenuItem';\r\nimport { Map } from 'immutable';\r\nimport EmptyTeamsImage from '../images/Empty_logo_Big.png';\r\nimport { fromJS } from 'immutable';\r\n\r\nclass SideNavMenu extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n fields: fromJS({\r\n clubid: \"\",\r\n clubname: \"\",\r\n country: \"\",\r\n logourl: \"\",\r\n logotemp: \"\",\r\n clubSeasons: fromJS([]),\r\n })\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const { clubDetails } = this.props;\r\n if (clubDetails && prevProps.clubDetails !== clubDetails) {\r\n this.setState({\r\n fields: fromJS({\r\n clubid: clubDetails.id,\r\n clubname: clubDetails.clubName,\r\n country: clubDetails.country,\r\n logourl: clubDetails.logoUrl,\r\n clubSeasons: clubDetails.clubSeasons,\r\n })\r\n });\r\n sessionStorage.setItem('clubImage', clubDetails.logoUrl === '' ? EmptyTeamsImage : clubDetails.logoUrl);\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n routingLocation,\r\n urls = Map(),\r\n isOpen,\r\n toggleOpen,\r\n loggedInUser,\r\n clubDetails\r\n } = this.props;\r\n const { fields } = this.state;\r\n const roles = loggedInUser ? loggedInUser.role : ['GUEST'];\r\n \r\n const allowedUrls = (urlsToFilter) => {\r\n return urlsToFilter.filter(url => {\r\n if (!url.get('allowedRoles')) {\r\n return true;\r\n } else {\r\n const roleAllowed =\r\n !url.get('allowedRoles')\r\n || url.get('allowedRoles').some(role => role.includes(role));\r\n \r\n return roleAllowed;\r\n }\r\n });\r\n };\r\n const filteredUrls = allowedUrls(urls);\r\n\r\n return (\r\n
\r\n { e.preventDefault(); toggleOpen(false) }}>×\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default connect(\r\n (state) => {\r\n return {\r\n routingLocation: routingLocationSelector(state),\r\n loggedInUser: loggedInUserSelector(state),\r\n clubDetails: state.users.clubDetails\r\n }\r\n },\r\n null,\r\n)(SideNavMenu);","import { tokenKey, updateLoggedInUser, userId,authUrl } from '../../constants';\r\n\r\nexport default () => async (dispatch) => {\r\n const bearerToken = sessionStorage.getItem(tokenKey);\r\n if (!bearerToken) {\r\n sessionStorage.removeItem(tokenKey);\r\n sessionStorage.removeItem(userId);\r\n return;\r\n }\r\n const url = `${authUrl}/Account/AuthenticateWithBearerToken?`;\r\n const response = await fetch(url, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${bearerToken}`\r\n },\r\n });\r\n\r\n if (response.status == 401) {\r\n sessionStorage.removeItem(tokenKey);\r\n sessionStorage.removeItem(userId);\r\n }\r\n else {\r\n const result = await response.json();\r\n if (!response.ok) {\r\n sessionStorage.removeItem(tokenKey);\r\n sessionStorage.removeItem(userId);\r\n }\r\n }\r\n\r\n \r\n};","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport { sidebarUrls } from '../constants/urls';\r\nimport './bootstrap_css/bootstrap.min.css';\r\nimport './bootstrap_css/style.css';\r\nimport './bootstrap_css/fonts/font.css';\r\nimport Footer from './Footer/Footer';\r\nimport Header from './Header/Header';\r\nimport './Layout.css';\r\nimport SideNavMenu from './SideNavMenu/SideNavMenu';\r\nimport { loggedInUserSelector } from '../store/users/selectors/authSelector';\r\nimport Login from './Login/Login';\r\nimport { routingLocationSelector } from '../store/general/selectors/generalSelector';\r\nimport { Redirect } from 'react-router-dom';\r\nimport loginWithBearerToken from '../store/users/actions/loginUserWithBearerToken';\r\n\r\nclass Layout extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n searchIsOpen: false,\r\n profileboxopen: false,\r\n }\r\n\r\n this.toggleOpen = this.toggleOpen.bind(this);\r\n this.toogleProfileBoxOpen = this.toogleProfileBoxOpen.bind(this);\r\n this.toogleProfileBoxOutside = this.toogleProfileBoxOutside.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n const width = this.container.offsetWidth;\r\n // This is done to simulate the original javascript code, for the width value, see style.css:433\r\n if (width >= 1199) {\r\n this.toggleOpen(true);\r\n }\r\n\r\n window.addEventListener('resize', this.resize);\r\n }\r\n\r\n resize = () => {\r\n if (window.innerWidth > 1200) {\r\n this.toggleOpen(true);\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener('resize', this.resize);\r\n }\r\n\r\n toggleSearch = (con) => {\r\n const { searchIsOpen, profileboxopen } = this.state; \r\n this.setState({\r\n searchIsOpen: con,\r\n profileboxopen: profileboxopen ? !profileboxopen : profileboxopen,\r\n })\r\n }\r\n\r\n toggleOpen(setOpen) {\r\n const { profileboxopen } = this.state;\r\n this.setState({\r\n sideNavOpen: setOpen,\r\n //profileboxopen: !profileboxopen,\r\n })\r\n }\r\n\r\n toogleProfileBoxOutside() {\r\n const { profileboxopen } = this.state; \r\n this.setState({\r\n profileboxopen: profileboxopen ? !profileboxopen : profileboxopen,\r\n })\r\n }\r\n\r\n toogleProfileBoxOpen() {\r\n const { profileboxopen } = this.state;\r\n this.setState({\r\n profileboxopen: !profileboxopen,\r\n })\r\n }\r\n\r\n render() {\r\n const { userLoggedIn, routingLocation } = this.props;\r\n const { searchIsOpen, profileboxopen } = this.state;\r\n const path = routingLocation.pathname;\r\n\r\n // If user is not logged in, Show page directly.\r\n if (userLoggedIn.accessToken) {\r\n return (\r\n
(this.container = el)}>\r\n
\r\n \r\n
\r\n \r\n
{ this.toggleSearch(false) }}>\r\n
\r\n this.toggleOpen(true)}>☰ \r\n
\r\n {this.props.children}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n if (path == '/') {\r\n
(this.container = el)}>\r\n {this.props.children}\r\n
\r\n }\r\n return (\r\n
(this.container = el)}>\r\n {this.props.children}\r\n
\r\n )\r\n\r\n }\r\n}\r\n\r\nexport default connect(\r\n (state) => {\r\n return {\r\n routingLocation: routingLocationSelector(state),\r\n userLoggedIn: loggedInUserSelector(state)\r\n }\r\n },\r\n dispatch => bindActionCreators({\r\n loginUserWithBearerToken: loginWithBearerToken,\r\n }, dispatch),\r\n)(Layout);\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport loginUserWithBearerTokenAction from './store/users/actions/loginUserWithBearerToken';\r\n\r\nclass Startup extends Component {\r\n componentWillMount() {\r\n \r\n this.props.loginUserWithBearerToken();\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default connect(\r\n null,\r\n dispatch => bindActionCreators({\r\n loginUserWithBearerToken: loginUserWithBearerTokenAction,\r\n }, dispatch),\r\n)(Startup);","import React, { Component } from 'react';\r\nimport Source from './images/loading.gif';\r\n\r\nclass Loading extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { loading: true };\r\n }\r\n render() {\r\n if (this.state.loading)\r\n return (\r\n \r\n \r\n
);\r\n else\r\n return null;\r\n }\r\n}\r\n\r\nexport default Loading;","import React, { Component } from 'react';\r\nimport AllRoutes from './routes/AllRoutes';\r\nimport Layout from './components/Layout';\r\nimport Startup from './Startup';\r\nimport { ToastContainer } from 'react-toastify';\r\nimport Loading from './components/Loading_custom';\r\n\r\nclass App extends Component {\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default (App);","// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport default function register() {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Lets check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl);\r\n } else {\r\n // Is not local host. Just register service worker\r\n registerValidSW(swUrl);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n console.log('New content is available; please refresh.');\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n if (\r\n response.status === 404 ||\r\n response.headers.get('content-type').indexOf('javascript') === -1\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import i18n from \"i18next\";\r\nimport { initReactI18next } from \"react-i18next\";\r\nimport nlResource from './translations/nl.json';\r\nimport enResource from './translations/en.json';\r\n\r\n//https://github.com/i18next/react-i18next\r\n\r\nconst allowedLanguages = ['en', 'nl'];\r\n\r\nconst defaultLng = 'en'; //change this to use a different language!\r\nlet lng = defaultLng;\r\n\r\nconst storageLanguage = localStorage.getItem('language');\r\nif (storageLanguage && allowedLanguages.indexOf(storageLanguage) > -1) {\r\n lng = storageLanguage;\r\n}\r\n\r\ni18n\r\n .use(initReactI18next)\r\n .init({\r\n lng,\r\n debug: true,\r\n interpolation: {\r\n escapeValue: false\r\n },\r\n resources: {\r\n nl: { translation: nlResource },\r\n en: { translation: enResource },\r\n },\r\n });\r\n\r\nexport default i18n;\r\n","import 'bootstrap/dist/css/bootstrap.css';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport { ConnectedRouter } from 'react-router-redux';\r\nimport { createBrowserHistory } from 'history';\r\nimport configureStore from './store/configureStore';\r\nimport App from './App';\r\nimport registerServiceWorker from './registerServiceWorker';\r\nimport WebFont from 'webfontloader';\r\nimport \"./i18n\";\r\n\r\n//WebFont.load({\r\n// google: {\r\n// families: ['Montserrat', 'sans-serif', 'Avenir', 'Avenir 85', 'Avenir Roman']\r\n// }\r\n//});\r\n\r\n// Create browser history to use in the Redux store\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nconst history = createBrowserHistory({ basename: baseUrl });\r\n\r\n// Get the application-wide store instance, prepopulating with state from the server where available.\r\nconst initialState = window.initialReduxState;\r\nconst store = configureStore(history, initialState);\r\n\r\nconst rootElement = document.getElementById('root');\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n ,\r\nrootElement);\r\n \r\n//registerServiceWorker();\r\n","import { applyMiddleware, combineReducers, compose, createStore } from 'redux';\r\nimport thunk from 'redux-thunk';\r\nimport { routerReducer, routerMiddleware } from 'react-router-redux';\r\nimport usersReducer from './users/reducers/usersReducer';\r\nimport manager from './Manager/reducers';\r\nimport authReducer from './auth/authReducer';\r\nimport masterDataReducer from './MasterData/reducers';\r\nimport playerReducer from './Players/reducers';\r\nimport trainerReducer from './Trainers/reducers';\r\nimport pictureReducer from './profilePicture/reducer';\r\nimport teamReducer from './Teams/reducers';\r\nimport teamDetailReducer from './TeamDetail/reducers';\r\nimport dashboardReducer from './Overview/reducers';\r\n\r\nexport default function configureStore(history, initialState) {\r\n\r\n const reducers = {\r\n auth: authReducer,\r\n users: usersReducer,\r\n manager,\r\n masterData: masterDataReducer,\r\n player: playerReducer,\r\n trainer: trainerReducer,\r\n profilePicture: pictureReducer,\r\n team: teamReducer,\r\n teamDetail: teamDetailReducer,\r\n dashboard: dashboardReducer\r\n };\r\n\r\n const middleware = [\r\n thunk,\r\n routerMiddleware(history)\r\n ];\r\n\r\n // In development, use the browser's Redux dev tools extension if installed\r\n const enhancers = [];\r\n const isDevelopment = process.env.NODE_ENV === 'development';\r\n if (isDevelopment && typeof window !== 'undefined' && window.devToolsExtension) {\r\n enhancers.push(window.devToolsExtension());\r\n }\r\n\r\n const rootReducer = combineReducers({\r\n ...reducers,\r\n routing: routerReducer\r\n });\r\n\r\n return createStore(\r\n rootReducer,\r\n initialState,\r\n compose(applyMiddleware(...middleware), ...enhancers)\r\n );\r\n}\r\n","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/round_plus_icon.0dcad711.svg\";","module.exports = __webpack_public_path__ + \"static/media/logo.12301b1e.svg\";","module.exports = \"data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABkAAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjAtYzA2MSA2NC4xNDA5NDksIDIwMTAvMTIvMDctMTA6NTc6MDEgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUuMSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjc2MDVENjgzQTk1MjExRUFBQzNFQTU1NUEzNEEwMjA1IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjc2MDVENjg0QTk1MjExRUFBQzNFQTU1NUEzNEEwMjA1Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzYwNUQ2ODFBOTUyMTFFQUFDM0VBNTU1QTM0QTAyMDUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzYwNUQ2ODJBOTUyMTFFQUFDM0VBNTU1QTM0QTAyMDUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAABAQEBAQEBAQEBAQEBAQEBAQEB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\"","module.exports = __webpack_public_path__ + \"static/media/Trash.7b8bd970.svg\";","module.exports = __webpack_public_path__ + \"static/media/Team_logo.98c5f795.png\";","module.exports = \"data:image/png;base64,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\""],"sourceRoot":""}