{"version":3,"sources":["auth/reducer.js","components/Menu/reducer.js","constants/styling-constants.js","components/Menu/DropDownMenuItem/DropDownMenuItem.js","components/Menu/DropDownMenuItem/LanguageContainer.js","components/Menu/messages.js","components/Menu/Menu.js","components/Menu/index.js","components/Logo/index.js","components/Logo/grayLogo.js","components/Layout/flexSpaceBetween.js","components/Layout/ContentWrapper.js","components/Layout/Container.js","components/Layout/ImageBackground.js","components/Form/Error.js","components/Form/Input.js","components/Form/TextArea.js","components/Form/DatePicker.js","components/Form/selectValuesHoc.js","components/Form/ListSelect.js","components/Form/messages.js","components/Form/Select.js","components/Form/MultiSelect.js","components/Form/Checkbox.js","components/Form/FormGroup.js","components/PrivateRoute/index.js","components/Text/H2.js","components/Text/H3.js","components/Text/H4.js","components/Text/H1.js","components/Text/P.js","components/Text/TextLabel.js","components/Text/TextSection.js","components/Tables/index.js","components/Modals/index.js","components/ProgressBar/index.js","components/GeneralError/index.js","components/Icons/index.js","components/Buttons/index.js","components/ConfirmationModal/messages.js","components/ConfirmationModal/index.js","components/ContactForm/messages.js","containers/User/reducer.js","validators/index.js","constants/country-codes.js","components/ContactForm/AddUserForm/AddUserForm.js","components/ContactForm/AddUserForm/index.js","components/ContactForm/ContactForm.js","components/ContactForm/index.js","components/Form/FileUpload.js","components/Header/index.js","containers/Start/reducer.js","components/Links/index.js","containers/Start/messages.js","containers/Start/Hero.js","containers/Start/InfoSection.js","containers/Start/index.js","containers/HowItWorksVolunteer/messages.js","containers/HowItWorksVolunteer/HowItWorksVolunteer.js","containers/HowItWorksVolunteer/index.js","containers/HowItWorksOrganizer/messages.js","containers/HowItWorksOrganizer/HowItWorksOrganizer.js","containers/HowItWorksOrganizer/index.js","containers/FAQ/messages.js","containers/FAQ/index.js","containers/About/messages.js","containers/About/index.js","containers/PrivacyPolicy/messages.js","containers/PrivacyPolicy/index.js","containers/Contact/messages.js","containers/Contact/index.js","containers/Terms/messages.js","containers/Terms/index.js","containers/MyPages/Event/reducer.js","containers/MyPages/Event/messages.js","containers/MyPages/Event/List/EventList.js","containers/MyPages/Event/List/index.js","containers/MyPages/messages.js","containers/MyPages/TopNavigation.js","containers/MyPages/Event/EventStart.js","constants/lists/event-additional-questions.js","constants/lists/index.js","constants/lists/food-options.js","constants/lists/shoe-sizes.js","constants/lists/shirt-sizes.js","constants/lists/skills.js","constants/lists/currencies.js","constants/lists/payments.js","containers/MyPages/Event/EventNew.js","containers/MyPages/Event/Station/messages.js","constants/municipalities.js","containers/User/service.js","components/Map/messages.js","components/Map/apiConfig.js","components/Map/index.js","containers/MyPages/Event/Station/StationNewForm.js","containers/MyPages/Event/Station/StationsList.js","containers/MyPages/Event/Station/StationNewBase.js","containers/MyPages/Event/ConfirmNewBase/messages.js","containers/MyPages/Event/ConfirmNewBase/ConfirmEvent.js","containers/MyPages/Event/ConfirmNewBase/index.js","containers/MyPages/Event/NewBase/EventNewBase.js","containers/MyPages/Event/NewBase/index.js","containers/MyPages/Event/EventCopy.js","containers/MyPages/Event/Station/StaffPerStation.js","containers/MyPages/Event/CopyBase/EventCopyBase.js","containers/MyPages/Offer/reducer.js","containers/MyPages/Event/CopyBase/index.js","containers/MyPages/Event/Edit/messages.js","containers/MyPages/Event/Edit/EventEdit.js","containers/MyPages/Event/Edit/index.js","containers/MyPages/Event/Station/StationsEditList.js","containers/MyPages/Event/Station/StationEditForm.js","containers/MyPages/Event/Station/StationEditBase.js","containers/MyPages/Event/Station/index.js","containers/MyPages/Event/Base/messages.js","containers/MyPages/Event/StationOffers/SendReminderButton/messages.js","containers/MyPages/Event/StationOffers/SendReminderButton/SendReminderButton.js","containers/MyPages/Event/StationOffers/SendReminderButton/index.js","containers/MyPages/Event/StationOffers/SendInvitationButton/messages.js","containers/MyPages/Event/StationOffers/SendInvitationButton/SendInvitationButton.js","containers/MyPages/Event/StationOffers/SendInvitationButton/index.js","containers/MyPages/Event/StationOffers/messages.js","containers/MyPages/Event/StationOffers/AddGroup.js","containers/MyPages/Event/StationOffers/ModalsContent/AddVolunteersFirst.js","containers/MyPages/Event/StationOffers/ModalsContent/ViewVolunteers.js","containers/MyPages/Event/StationOffers/StationOffers.js","containers/MyPages/Event/StationOffers/index.js","containers/MyPages/Event/SendOuts/reducer.js","containers/MyPages/Event/SendOuts/messages.js","containers/MyPages/Event/SendOuts/SendOutsForm/StationsListCheckboxes.js","containers/MyPages/Event/SendOuts/SendOutsForm/SendOutsForm.js","containers/MyPages/Event/SendOuts/SendOutsForm/index.js","containers/MyPages/Event/SendOuts/SendOutsList/SendOutsList.js","containers/MyPages/Event/SendOuts/SendOutsList/index.js","containers/MyPages/Event/SendOuts/SendOut/SendOut.js","containers/MyPages/Event/SendOuts/SendOut/index.js","containers/MyPages/Event/Attendance/messages.js","containers/MyPages/Event/Attendance/AttendanceList.js","containers/MyPages/Event/Attendance/index.js","containers/MyPages/Event/Attendance/StationAttendance/messages.js","containers/MyPages/Event/Attendance/reducer.js","containers/MyPages/Event/Attendance/GroupAttendance/messages.js","containers/MyPages/Event/Attendance/GroupAttendance/GroupAttendance.js","containers/MyPages/Event/Attendance/GroupAttendance/index.js","containers/MyPages/Event/Attendance/StationAttendance/StationAttendance.js","containers/MyPages/Event/Attendance/StationAttendance/index.js","containers/MyPages/Event/Base/EventBase.js","containers/MyPages/Event/Base/index.js","containers/MyPages/Event/EventRouter.js","containers/MyPages/VolunteerContext/messages.js","containers/MyPages/VolunteerContext/reducer.js","containers/MyPages/VolunteerContext/MyGroupsList/MyGroupsList.js","containers/MyPages/VolunteerContext/MyGroupsList/index.js","containers/MyPages/Offer/messages.js","containers/MyPages/Offer/GroupOffers.js","containers/MyPages/Offer/index.js","containers/MyPages/VolunteerContext/VolunteerContextStart.js","containers/MyPages/VolunteerContext/GroupForm/messages.js","containers/MyPages/VolunteerContext/GroupForm/GroupForm.js","containers/MyPages/VolunteerContext/GroupForm/index.js","containers/MyPages/VolunteerContext/GroupConfirm/messages.js","containers/MyPages/VolunteerContext/Volunteers/messages.js","containers/MyPages/VolunteerContext/Volunteers/VolunteerForm.js","containers/MyPages/VolunteerContext/Volunteers/VolunteerList.js","containers/MyPages/VolunteerContext/Volunteers/Volunteers.js","containers/MyPages/VolunteerContext/Volunteers/index.js","containers/MyPages/VolunteerContext/GroupConfirm/GroupConfirm.js","containers/MyPages/VolunteerContext/GroupConfirm/index.js","containers/MyPages/VolunteerContext/GroupAvailability/reducer.js","containers/MyPages/VolunteerContext/GroupAvailability/messages.js","containers/MyPages/VolunteerContext/GroupAvailability/AddGroupAvailabilityForm.js","containers/MyPages/VolunteerContext/GroupAvailability/GroupAvailability.js","containers/MyPages/VolunteerContext/GroupAvailability/index.js","containers/MyPages/VolunteerContext/GroupBase/GroupBase.js","containers/MyPages/VolunteerContext/GroupBase/index.js","containers/MyPages/VolunteerContext/GroupNewBase/messages.js","containers/MyPages/VolunteerContext/GroupNewBase/GroupNewBase.js","containers/MyPages/VolunteerContext/GroupNewBase/index.js","containers/MyPages/VolunteerContext/GroupEngagement/messages.js","containers/MyPages/VolunteerContext/GroupEngagement/GroupAttendeesForm.js","containers/MyPages/VolunteerContext/GroupEngagement/GroupAttendees.js","containers/MyPages/VolunteerContext/GroupEngagement/GroupEngagement.js","containers/MyPages/VolunteerContext/GroupEngagement/index.js","containers/MyPages/VolunteerContext/VolunteerContextRouter.js","containers/MyPages/TeamLeader/messages.js","containers/MyPages/TeamLeader/List/TeamLeaderList.js","containers/MyPages/TeamLeader/reducer.js","containers/MyPages/TeamLeader/List/index.js","containers/MyPages/TeamLeader/TeamLeaderStart.js","containers/MyPages/TeamLeader/Event/index.js","containers/MyPages/TeamLeader/TeamLeaderRouter.js","containers/MyPages/MyPagesRouter.js","components/Footer/messages.js","components/Footer/index.js","components/Cookies/messages.js","components/Cookies/index.js","containers/SelfRegistration/messages.js","containers/SelfRegistration/SelfRegistrationForm.js","containers/SelfRegistration/reducer.js","containers/SelfRegistration/index.js","containers/MyPages/MyProfile/messages.js","containers/MyPages/MyProfile/MyProfile.js","containers/MyPages/MyProfile/index.js","containers/MyPages/MyProfile/MyProfileStart.js","components/TestWall/messages.js","components/TestWall/index.js","components/Main/index.js","containers/User/Components/Wrapper.js","containers/User/Components/ButtonWrapper.js","containers/User/Login/messages.js","containers/User/Login/Login.js","containers/User/Login/index.js","containers/User/Register/reducer.js","containers/User/Register/messages.js","containers/User/Components/PasswordVerification/messages.js","containers/User/Components/PasswordVerification/index.js","containers/User/Register/Register.js","containers/User/Register/index.js","containers/User/ConfirmRegistration/messages.js","components/ReminderModal/messages.js","components/ReminderModal/index.js","containers/User/ConfirmRegistration/ConfirmRegistration.js","containers/User/ConfirmRegistration/index.js","containers/User/ForgotPassword/reducer.js","containers/User/ForgotPassword/messages.js","containers/User/ForgotPassword/ForgotPassword.js","containers/User/ForgotPassword/index.js","containers/User/ChangePassword/messages.js","containers/User/ChangePassword/ChangePassword.js","containers/User/ChangePassword/index.js","App.js","registerServiceWorker.js","ScrollToTop.js","auth/service.js","auth/saga.js","containers/User/Register/service.js","containers/User/Register/saga.js","containers/MyPages/VolunteerContext/service.js","containers/MyPages/Event/service.js","containers/MyPages/VolunteerContext/saga.js","containers/MyPages/Event/saga.js","containers/User/ForgotPassword/service.js","containers/User/ForgotPassword/saga.js","containers/Start/saga.js","containers/MyPages/VolunteerContext/GroupAvailability/service.js","containers/MyPages/VolunteerContext/GroupAvailability/saga.js","containers/MyPages/Offer/service.js","containers/MyPages/Offer/saga.js","containers/User/saga.js","containers/MyPages/Event/SendOuts/service.js","containers/MyPages/Event/SendOuts/saga.js","containers/MyPages/Event/Attendance/service.js","containers/MyPages/Event/Attendance/saga.js","containers/MyPages/TeamLeader/service.js","containers/MyPages/TeamLeader/saga.js","containers/SelfRegistration/service.js","containers/SelfRegistration/saga.js","sagas.js","setup/api.js","aws-config.js","index.js","images/Volex_bild_undersida2.jpg","images/Volex_bild_undersida6.jpg","images/hero.jpg","images/VolEx_logo_pos.svg","images/VolEx_logo_footer.svg","images/Volex_bild_undersida7.jpg","images/Volex_bild_undersida9.jpg","images/Volex_bild_undersida11.jpg","images/Volex_bild_LoggaIn.jpg"],"names":["status","NOT_LOGGED_IN","LOGGING_IN","LOGIN_FAILED","LOGGED_IN","LOGGING_OUT","PENDING","VERIFYING","VERIFYING_FAILED","VERIFYING_SUCCESS","NEW_PASSWORD_REQUIRED","CHANGING_PASSWORD","CHANGE_PASSWORD_FAILED","INIT","SENDING","SENT","SENT_FAILED","initialState","user","accessToken","refreshToken","expiresIn","error","passwordChallengeEmail","activationCodeStatus","stateToUse","showMobileMenu","selectedLanguage","colors","text","grayStartGradient","gray","lightGray","lightGray2","lightGray3","lightGray4","lightGray5","lightGray6","mediumLightGray","pink","pinkEndGradient","darkPink","lightPink","lightPink2","lightPink3","mediumPink","orange","green","darkGreen","greenEndGradient","lightGreen","lighterGreen","inputPlaceholderGrey","breakPoints","buttonStyles","ItemWrapper","styled","li","DropDownUl","ul","StyledItem","MobileBorder","div","Item","item","callback","selectedItem","onClick","className","id","label","DropDownMenuItem","props","handleClick","bind","this","onSelect","items","length","find","i","map","key","Component","connect","state","menu","dispatch","data","type","payload","selectLanguage","defineMessages","menuItems","organizer","volunteer","myPages","myProfile","register","login","logOut","language","swe","eng","nor","contact","Wrapper","nav","MenuList","MenuItem","MobileMenuButton","button","StyledLink","NavLink","tempItems","labelKey","messages","Menu","handleLogout","handleOnMobileMenuClick","e","preventDefault","logout","location","pathname","window","reload","history","push","innerWidth","toggleMobileMenu","to","langListTranslated","opt","Object","assign","intl","formatMessage","auth","renderLoggedInLinks","injectIntl","withRouter","img","Logo","src","GrayLogo","FlexSpaceBetween","ContentWrapper","Container","Grid","ImageBackground","StyledError","p","Error","SmallError","StyledInput","input","Input","ErrorComponent","initialValue","placeholder","min","disabled","meta","touched","warning","readonly","md","value","TextArea","css","extend","StyledDatePicker","DateTimePicker","DatePickerHOC","date","time","moment","format","onChange","onBlur","Date","timeFormat","SmallDatePicker","DatePicker","TimePicker","withObjectValues","undefined","valueField","Array","isArray","v","filter","d","includes","StyledSelect","SelectList","display","ReadonlyItem","multiple","textField","multiSelect","emptyList","emptyFilter","select","fileUpload","fileTooBig","totalFileSizeTooBig","DropdownList","selectMessages","SelectComponent","name","valuedField","SmallSelect","IntlSmallSelect","compose","StyledMulti","Multiselect","StyledCheckbox","Checkbox","checked","htmlFor","FormGroup","component","rest","Route","render","Redirect","from","H2","h2","H3","h3","H4","h4","H1","h1","WhiteH1","P","ItalicP","WhiteP","BoldP","TextLabel","TextSection","section","WhiteTable","table","WhiteTableWithLastToRight","BorderTable","TableStatus","span","TableRow","tr","TableRowWithClick","children","row","Title","LargeModal","Modal","PopUpModal","show","handleHide","title","titleSize","backdrop","handleConfirm","handleNext","handleCancel","bgColor","onHide","Header","style","backgroundColor","closeButton","fontSize","Body","BarWrapper","BottomBar","bg","TopBar","Steps","StepWrapper","borderColor","color","notActiveColor","notActiveBorder","Step","step","currentStep","ProgressBar","renderStep","states","goToStep","wrapperBorder","wrapperBg","stepColor","stepNotActiveColor","stepNotActiveBorder","bottomBarBg","width","getBarWidth","topBarBg","GeneralError","IconBase","CircleIcon","icon","GrayCircleIcon","commonStyles","ButtonTemplate","busy","check","Button","BigGreenButton","BigGrayButton","TableButton","StyledToggleButton","ToggleButton","SmallGrayButton","SmallPinkButton","SmallGreenButton","MediumGrayButton","DeleteButton","startGradientColor","endGradientColor","hoverStartGradientColor","hoverEndGradientColor","confirmDeleteTitle","confirmDeleteButton","cancelDeleteButton","ModalWrapper","Content","Footer","footer","buttonText","theme","bsSize","renderConfirmButton","contactForm","addContactButton","contactList","email","phone","deleteText","contactEmptyMessage","contactExistMessage","addUserForm","info","form","firstName","lastName","countryCode","phoneNumber","cancelButton","confirmButton","getUserByEmail","newUser","newUserStatus","newUserError","required","password","match","minNumber","integer","isNaN","parseInt","Number","isInt","max","positiveNumbers","maxLength250","minLength3","unique","definitions","message","s","test","String","toLowerCase","onlyNumbers","atLeastOneArrayElement","values","organizerNumber","validateFileArraySize","files","reduce","currentValue","f","size","afterTodaysDate","countryCodes","ButtonNoMarginRight","AddUserForm","handleSubmit","resetUser","touch","valid","createUser","Field","validate","xs","Select","noValidate","renderForm","renderError","hide","reduxForm","selector","formValueSelector","ownProps","newEmail","initialValues","event","DeleteRowButton","ContactForm","showDeleteContactModal","deletingContactPerson","contactToDelete","newContactEmail","contactError","showAddUserModal","onDeleteContact","onConfirmDeleteContact","renderContactsTableRow","toggleModal","onContactFieldChange","handleContactSubmit","toggleAddUserModal","prevProps","userEmail","updateListFromRequest","userEmailStatus","setState","JSON","parse","stringify","change","updateContactList","validateContact","listContainsSubmittedEmail","toBeDeleted","emailInvalid","fieldValue","target","validity","typeMismatch","updatedContactList","slice","indexToRemove","indexOf","splice","sm","c","el","document","getElementById","ReactDOM","createPortal","renderContactList","renderAddUserForm","ContactFormForm","StyledFileUpload","file","FileUpload","handleFileSelect","handleFileRemove","validateFileSize","totalFileSize","newFiles","maxFileSize","changeValue","updatedFiles","index","Math","round","renderTotalFileSize","defaultProps","header","LinkedLogo","Link","calendarStatus","events","LinkButton","GreenLinkButton","BigHashLinkButton","HashLink","BigHashGreenLinkButton","NavLinkButton","GreenNavLinkButton","CircleLinkButtonStyle","CircleLinkButton","SmallGrayLinkButton","WhiteLink","slogan","sloganLoggedIn","organizerButton","volunteerButton","volunteerButtonLoggedIn","currentEventsTitle","InfoSection","section1","section2","section3","section4","section5","Background","BackgroundLogged","Slogan","SloganLogged","ButtonWrapper","ButtonWrapperLogged","Hero","loggedUser","Start","b","buttonpress","Auth","currentSession","then","session","a","currentUserInfo","idToken","jwtToken","attributes","given_name","start","fetchEvents","startDate","endDate","pageIntro","firstSection","title1","title2","secondSection","firstParagraph","secondParagraph","thirdParagraph","list","element1","element2","element3","element4","element5","thirdSection","registerButton","generateSections","generateParagraphs","generateTitles","generateListItems","StyledList","H3WithMarginBottom","HowItWorksVolunteer","sections","sectionTitleKey","titles","listItems","paragraphs","listElementCode","paragraph","listItemCode","Paragraph","ListItem","ListItems","Section","HowItWorksGenerator","paymentTypes","basicServicesTitle","basicServicesPrice","basicServicesText","additionalServicesTitle","additionalServicesText","PriceRow","Row","P12","HowItWorksOrganizer","headerTitle","volunteerPageTitle","organizerPageTitle","FAQ","role","questions","questionCode","question","answerCode","answer","renderQuestions","pageTitle","section6","section7","section8","section9","About","paragraph1","paragraph2","paragraph3","paragraph4","PrivacyPolicyGenerator","Contact","pageIntro1","pageIntro2","volunteerTitle","organizerTitle","ItalicPWithMargin","TermSection","H2WithMargin","Terms","termType","NOT_SUBMITTED","FETCHING","FETCHED","SUBMITTING","SUCCESS","FAILED","eventStatus","submitEvent","confirmEvent","fetchEvent","reset","eventsSummaries","progressBar","chooseEvent","adjustEvent","registerEvent","registerStation","staffStation","newStations","newEventLink","copyEventLink","searchVolunteerGroup","copyEvent","listTitle","settingsTitle","stationsListTitle","nextButton","saveButton","choose","nextStep","city","startTime","sameNameModal","cancel","confirm","myEvents","showPrevious","noEventsMessage","removalModal","body","removalCheckbox","eventTitle","eventDate","substitute","option","include","clothesSize","foodOptions","shoeSize","invoiceAddress","website","deleteContactMessage","saveEventButton","statusApproved","statusUnconfirmed","statusHistoric","statusUnknown","Table","TableRowHeader","EventList","renderRow","handleRemoveEvent","togglePreviousEvents","sortField","sortDirection","eventToBeRemoved","showRemovalModal","removalCheckboxChecked","removalError","removalPending","pastEvents","getEventsSummaries","setTimeout","removeEvent","getFullYear","getMonth","getDate","past","buttonTitle","renderStatus","visibility","stopPropagation","renderTableHeader","sort","localeCompare","eventList","setDate","pastList","some","setHistoric","renderEventsTable","eventsLink","teamLeadersLink","volunteersLink","IconWrapper","Col","ListWrapper","EventStart","additionalQuestions","shoeSizes","shirtSizes","skills","currencies","payments","lists","EventNew","submitClicked","nextClicked","userAdded","setEventId","updateContactListFromForm","included","shirtSizesTranslated","MultiSelect","foodOptionsTranslated","unsorted","sorted","fieldValues","newEvent","contactPersons","sortShirtSizes","onClickNext","LoadedComponent","loadedProps","additionalQuestionOptions","q","onSubmit","ListSelect","renderShirtSizes","renderFoodOptions","contactListCopy","station","signedUp","present","description","noMarker","markerTitle","mapTitle","municipality","endTime","noStationsError","workStation","officialQuantity","group","stationEdit","editStationButton","cancelEditButton","addNewStationButton","noStation","formTitle","teamLeaderFormTitle","teamLeader","officialMinimumAge","officialGroup","payment","paymentType","currency","groupPayment","paymentAdult","paymentChild","addStationButton","myStation","amount","minimumAge","paymentGroup","deleteTitle","deleteMessage","noStationsMessage","stationNameAlreadyExistError","manned","unmanned","paymentTypeList","perPerson","hourlyRate","compensationByAgreement","staffPerStation","municipalities","request","headers","Authorization","API","get","inputFieldPlaceholder","API_KEY","Geocode","setApiKey","setLanguage","setRegion","SWEDEN_NE","lat","lng","SWEDEN_SW","containerStyle","height","alignContent","marginBottom","inputStyle","boxSizing","border","padding","borderRadius","boxShadow","outline","textOverflow","position","top","left","libraries","formatCoordinates","coordinates","toFixed","getCoordinatesFromLocation","memoize","fromAddress","response","results","geometry","console","getLocationFromCoordinates","fromLatLng","formatted_address","isLoaded","useJsApiLoader","region","googleMapsApiKey","useState","mapRef","setMapRef","searchBox","setSearchBox","bounds","setBounds","markerLocation","markerPosition","setMarkerPosition","showMarker","setShowMarker","markerAnimation","setMarkerAnimation","positionMarker","onMarkerChange","bounceMarker","initBounds","useCallback","ne","google","maps","LatLng","sw","LatLngBounds","mapContainerStyle","center","readOnly","latLng","zoom","onLoad","onDblClick","options","disableDoubleClickZoom","showSearchBox","onPlacesChanged","place","getPlaces","plus_code","fitBounds","viewport","onSearch","onKeyPress","draggable","visible","onDragEnd","onRightClick","onMarkerRemove","animation","FormWrapper","MapsWrapper","dateRangeValidation","allValues","uniqueNameValidator","stations","StationNewForm","handleSearch","handleMarkerChange","handleMarkerRemove","handlePaymentChange","renderSkills","renderMunicipalities","onStationSubmit","handleChangeStart","hourRate","submitting","scrollTo","setCoordinates","nextProps","m","skillOptions","skill","teamLeaderEmail","markerCoordinates","paymentTypeFieldValue","resp","newStation","onSubmitStation","catch","paymentOptions","currencyOptions","Map","newValue","previousValue","renderAddUserModal","React","Status","StatusUnmanned","StationsList","showModal","stationToDelete","deleting","stationsList","onDelete","onConfirmDelete","updatedList","onDeleteStation","end","officialMiniumumAge","join","hideStatus","StationNewBase","addingStation","clickedNext","showError","handleSubmitStation","handleDeleteStation","handleClickNext","stationList","floor","random","set","hour","minute","resetForm","confirmTitle","confirmText1","confirmText2","confirmListElement1","confirmListElement2","confirmationModalTitle","confirmationModalText","eventConfirmedText","cancelConfirmButton","confirmModalButton","ConfirmEvent","confirming","resetEvent","EventNewBase","handleNextClick","link","handleEventSubmit","renderPage","EventCopy","makeEvent","initialize","newStart","newDate","oldDate","date1","date2","utc1","UTC","utc2","daysDiff","hoursDiff","minsDiff","setHours","getHours","setMinutes","getMinutes","oldStart","dateDayDifference","forEach","incrementDate","defaultValue","Div","eventOffers","setEventOffersToBeSubmitted","offerRows","setOfferRows","selectedRowIndicies","setSelectedRowIndicies","useEffect","newOffers","o","offer","stationId","stationName","groupName","volunteers","childAttendance","adultAttendance","groupId","or","columns","dataField","hidden","headerStyle","textAlign","classes","keyField","wrapperClasses","hover","selectRow","mode","clickToSelect","selectColumnPosition","selected","isSelect","r","onSelectAll","rows","ids","defaultSorted","order","EventCopyBase","eventOffersToBeSubmitted","handleEventPicked","saveEvent","fetchEventOffers","eventId","fetchGroupOffers","updateOfferAttendees","createOffer","confirmStationOffers","statuses","groupOffer","groupOfferError","groupOfferAcceptError","groupOfferRejectError","groupOffers","stationOffers","stationOfferError","availableGroups","deleteOfferError","offerCreateStatus","sendOfferReminderStatus","sendOfferInvitationStatus","sendOfferReminderGroups","offers","organizerName","organizerEmail","organizerWebsite","shoeSizeChoices","food","glutenFree","lactoseFree","milkProteinFree","vegan","vegetarian","clothesChoices","clothes","requestError","userNotFound","editButton","confirmModalTitle","confirmModalText","cancelConfirmModalButton","deleteContactModalText","EventEdit","showContactModal","contactFieldValue","showConfirmModal","toggleReadonly","handleConfirmEvent","toggleConfirmModal","hasShirt","isTeamleaderView","fieldValuesWithContactList","renderButtons","enableReinitialize","Attributes","DeleteListItemButton","StationsEdit","renderStationList","hasOwnProperty","onStationClick","stationIndex","stationKey","setMarkerLocation","setMarkerCoordinates","setSubmitting","setShowAddUserModal","setCenter","setTeamLeaderEmail","submitStatus","setSubmitStatus","currStation","filteredStations","uniqueValidator","dataRangeIndexValidation","handleStationSubmit","nameStart","substring","lastIndexOf","toggleEditForm","PaymentTypeFieldValue","Value","renderEditForm","StationEditBase","showEditForm","showNewForm","showNewStationForm","elem","scroll","offsetTop","offsetParent","behavior","currentKey","scrollToForm","StationsEditList","eventDataLink","stationLink","groupLink","paymentLink","matchLink","sendOutsLink","attendanceLink","sendReminder","success","noGroupsMatched","CustomError","SentMessageLabel","SendReminderButton","sendOfferReminder","groups","renderSuccess","sendInvitation","noInvitationSent","SendInvitationButton","sentToNone","numberSent","arr","concat","sendInvitationStatus","noMailSent","lastReminder","officialsAllocated","officialsProposed","officialPreliminary","officialsAwaitingAnswer","officialsAccepted","officialsMissing","officialsNotAllocated","noSkills","groupTable","requestedQuantity","ages","draft","proposal","accepted","rejected","addGroup","selectGroup","groupSummary","members","sports","toManyRequestedError","allocatedError","createOfferError","notConfirmedWarning","historicWarning","StyledTd","td","getNumOfOccupiedVolunteers","allOffers","occupiedVolunteers","getGroupOptions","groupsWithoutDoublets","currentGroup","GroupPos","groupArr","numberOfMembers","gd","ao","groupAvailability","organizationName","GroupSummary","AddGroup","groupMemberError","groupOptions","maxAllowedOfficials","maxOfficials","checkGroupMemberError","officialsDraft","checkIfAllIsAllocated","untouch","updateGroupOptions","availableGroup","toManyRequestedVolunteers","numberOfRequested","toManyRequestedFromGroup","renderGroupMemberError","renderAllocatedError","renderCreateOfferError","AddGroupForm","SummaryWrapper","SummaryHeader","SkillBox","SkillWrapper","SummaryRow","AddVolunteersForm","fetchAvailableGroups","renderMinimumAge","restProps","StationSummaryRow","prevModal","nextModal","AddVolunteersFirst","StyledBorderTable","StationOfferRow","onDeleteRow","g","ViewVolunteers1","showDeleteGroupModal","deletingOffer","offerToDelete","onDeleteGroupOffer","deleteOffer","fluid","ViewVolunteers","Stations","nextAddVolunteersModal","currId","nextId","field","toggleAddVolunteersModal","handleSort","resetAvailableGroups","mod","n","modal","filterStationOffers","allocated","formattedStations","formatStations","reverse","formatModals","onSort","headerClasses","rowEvents","rowIndex","justifyContent","margin","marginLeft","StationsForm","StationOffers","fetchStatus","sendOuts","sendOut","fetchSingleStatus","sortOnCreatedAt","createdAt","previousSendOuts","infoItalic","receivers","age","recipientTypes","recipientTypeOptions","VOLUNTEERS","CONTACT_PERSONS","volunteerExpected","noStations","subject","attachments","attachmentsButton","noRecipientTypes","sendButton","sendError","sent","created","noSendOuts","single","TDDisabledText","TDGrayBackground","StationsListCheckboxes","expanded","setExpanded","haveNoGroups","stationsWithNoGroups","onChangeStation","vals","renderVolunteerRowHeader","noGroups","eventStations","rowId","prevExpanded","newExpanded","onRowClick","renderGroupNames","renderVolunteerExpected","attendees","vol","count","result","TagWrapper","TextLabelNoMargin","Tag","H2WithLink","SendOutsForm","addExtra","extra","keys","ex","k","replace","mappedRecipientTypes","rt","sendOutSent","handleSendOutSubmit","validateStations","validateRecipientTypes","getExtraValues","getMapCoordinates","extraValues","newValues","sendSendOut","linkBase","SendOutsList","fetchSendOuts","sendOutId","renderSpinner","renderTable","SendOut","fetchSendOut","params","es","renderSelectedStations","attendanceList","showButton","offerError","sortOnStartTime","AttendanceListRowWithRouter","url","AttendanceList","stationsWithOffers","matchOfferWithStation","offerStatus","renderContent","attendance","noOffers","groupAttendance","tableHeader","submit","attendanceExceedVolunteers","submitError","attendanceNotAvailable","GroupAttendance","isStationOpen","hasValidationError","today","diff","submitAttendance","renderContactPersons","StationAttendance","fetchStationOffers","renderOffers","NavigationWrapper","EventBase","exact","Switch","path","Station","Attendance","EventRouter","localStorage","setItem","registerGroup","registerVolunteers","registerAvailability","newGroupLink","answerRequestLink","updateVolunteersLink","myGroups","noGroupsMessage","groupStatus","submitGroup","fetchGroup","confirmGroup","statusGroupSummaries","groupsSummaries","publicEvents","publicEventError","completeEvents","completeEventError","MyGroupsList","getGroupsSummaries","rejectedButton","acceptedButton","pendingButton","noOffersMessage","showPreviousEvents","selfRegistration","notification","StyledToast","ToastContainer","EventWrapper","GroupWrapper","EventNameWrapper","GroupNameWrapper","TableColumn","RedButton","GreyButton","GreenButton","white","CopyButton","GroupOffers","filterOffersOnStatus","copy","selfRegistrationLink","selfRegistrationGroupName","selfRegistrationEventId","togglePast","handleCopy","handleCreateLink","fetchGroupsOffers","toast","toastId","navigator","clipboard","writeText","origin","replaceAll","createLink","offerA","offerB","statusOrder","isAfter","stationIdGroupId","renderProposalButton","offerList","sortedEvents","e0","e1","array","renderEvent","futureList","toISOString","renderEventList","sortedGroups","g0","g1","groupList","eventName","renderGroupOffers","sortedOffers","sortingFunction","prev","curr","GroupOffersComponent","VolunteerContextStart","marginTop","groupInfo","orgNumber","orgName","alignment","sport","bank","accountNumber","editGroup","addButton","saveGroupButton","editGroupButton","deleteContactText","sortedSports","GroupForm","isNew","getInitialContactList","renderMunicipality","saveGroup","buttons","newGroup","GroupFormForm","resetGroup","personalInfoTitle","otherInfoTitle","goBack","substituteTitle","substituteOption","foodOptionsTitle","shirtSizesTitle","specialDiets","shirtSize","emailAlreadyExistError","deleteVolunteerTitle","deleteVolunteerMessage","noVolunteersMessage","validateEmailComparison","newVolunteer","volunteerToEdit","errors","VolunteerForm","newVolunteerErrors","buttonDisabled","substituteCheckbox","handleVolunteerSubmit","fillFormWithVolunteer","participant","participate","volunteersList","participation","findIndex","updatedVolunteerList","uuidv4","goBackToList","found","participations","renderVolunteers","includedSpecialDietsTranslated","includedShirtSizesTranslated","styleRow","renderVolunteerFormGroup","onSubmitSuccess","VolunteerList","volunteerToDelete","renderVolunteersTableRow","submittingVolunteerForm","onVolunteerRowClick","Volunteers","groupToSubmit","volunteerEditKey","editingVolunteer","obj","GroupConfirm","GroupConfirmForm","SAVING","SAVE_SUCCESS","SAVE_FAILED","availabilities","loading","addForm","period","types","newRow","TableDatePicker","StyledButton","AddAvailabilityFormComponent","sortedEventList","mun","typeOptions","validdate","AddAvailabilityForm","add","SmallThinGrayButton","GroupAvailability","addGroupAvailability","submitAvailabilities","fetchPublicEvents","fetchGroupAvailabilities","submitGroupAvailabilities","newAvailabilities","newAvailabities","availability","organizerSK","organizerPK","groupSK","availabilityStatus","borderWidth","products","deleteGroupAvailibility","eventFound","publicEvent","close","SmallDeleteButton","NoPaddingModalBody","AddInterestModal","GroupAvailabilityForm","publicEventsError","groupAvailabilities","saveAvailabilities","fetchAvailabilities","fetchCompleteEvent","GroupBase","handleGroupSubmit","handleConfirmSubmit","groupForm","confirmation","GroupNewBase","goToNextStep","updatedGroup","handleAvailabilitySubmit","renderGroupForm","renderConfirmation","call","newVolunteers","newVolunteersCreate","missingSpecialInfo","notEnoughAttendee","createButton","submitButton","requiredSkills","confirmText","confirmText3","rejectButton","confirmModalCancelButton","confirmModalRejectButton","rejectModalText","rejectModalCancelButton","rejectModalRejectButton","rejectModalTitle","offerConfirmedText","offerRejectedText","GroupAttendeesForm","createNewVoluntee","editVolunteer","specialInfoPopUp","selectAll","submitNewAttendees","update","updateOffers","newAttendees","attendeesMissingSpecialInfo","attendee","att","_","remove","specialDiet","nonNullOfferAttendees","availableAttendee","formattedAttendee","diet","getSpecialDiets","shirt","sub","showPopup","handleClose","getColumns","rowStyle","cursor","GroupAttendees","addVolunteersPopup","deleteAttendees","currentAttendees","exist","GroupEngagement","showRejectModal","rejecting","toggleRejectModal","onConfirmOffer","onRejectOffer","fetchGroupOffer","resetGroupOfferError","acceptStationOffer","rejectStationOffer","renderAcceptError","renderRejectError","renderStatusBasedContent","GroupEngagementWithForm","VolunteerRouter","confirmed","noEvents","TeamLeaderList","handleRowClick","fetchTeamleaderEvents","eventMessages","teamleader","TeamLeaderStart","fetchTeamleaderEvent","TeamLeaderRouter","TeamLeaderEvent","MyPagesRouter","defaultLocation","getItem","VolunteerContextRouter","about","faq","terms","personalData","copyRight","CopyRight","SocialIcon","IconLink","FloatedDiv","FooterMenu","href","cookiesAgreed","StyledTitle","CookiesMessage","substituteField","confirmationModal","setShowModal","setData","showSuccess","setShowSuccess","setBusy","setSubstituteCheckbox","hash","emailValidator","messagesVol","formError","submitVolunteer","fetchPublicEvent","SelfRegistrationForm","MyProfile","handleProfileSubmit","renderPhone","destroyOnUnmount","cc","phoneWithoutCountryCode","updateUserInfo","MyProfileStart","RowWrapper","InnerWrapper","authStoredUser","renderApp","PrivacyPolicy","SelfRegistration","Cookies","Center","loginButton","forgotPassword","UserNotFoundException","ResourceNotFoundException","UserNotConfirmedException","default","NotAuthorizedException","resetPasswordInfo","Login","code","warn","search","renderResetPasswordText","LoginForm","loginSubmit","introText1","introText2","introText3","repeatPassword","passwordRules","lowerCase","upperCase","number","InvalidParameterException","InvalidPhoneNumber","TextElement","paddingTop","containsNumber","string","containsUpperCase","containsLowerCase","PasswordVerification","Register","onPasswordChange","resetRegister","registerError","registerSubmit","verificationCode","popupReminder","confirmRegistrationButtom","resendConfirmationCodeButton","CodeMismatchException","activationCodeError","modalConfirmButtonText","ConfirmRegistration","showReminderModal","hideReminderModal","resendConfirmationCode","renderActivationCodeError","ConfirmationRegistrationForm","confirmRegistration","CODE_NOT_SENT","CODE_SENT","NEW_PASSWORD_SET","explainingMessage","verifyModal","redirectButton","sendCodeButton","codeSent","LimitExceededException","genericError","ForgotPassword","handleHideModal","resetState","verifyRedirect","resetPasswordSubmit","sendForgotPasswordCode","newPassword","changePasswordButton","InvalidPasswordException","infoText","ChangePassword","goToLogin","resetAuth","ChangePasswordForm","changePassword","App","Main","isLocalhost","Boolean","hostname","registerValidSW","swUrl","serviceWorker","registration","onupdatefound","installingWorker","installing","onstatechange","controller","log","ScrollToTop","signIn","confirmSignUp","resendSignUp","updateUserAttributes","phoneWithCountryCode","substr","currentUserPoolUser","family_name","phone_number","completeNewPassword","loginSaga","resendConfirmationSaga","confirmRegistrationSaga","logoutSaga","loadAuthenticatedUserSaga","getUserInfoSaga","changePasswordSaga","action","challengeName","put","signOut","currentAuthenticatedUser","emailVerified","email_verified","phoneNumberVerified","phone_number_verified","signUp","username","custom","registerSaga","createEvent","post","getEventsByDateRange","groupSaga","fetchGroupsSummaries","confirmGroupSaga","getGroup","confirmEventSaga","fetchEventsSummaries","getEvent","del","makeHistoric","resetPassword","forgotPasswordSubmit","forgotPasswordSaga","forgotPasswordResetSaga","resetPasswordSaga","fetchCalendarEvents","getGroupAvailability","saveGroupAvailabilitySaga","getGroupAvailabilitySaga","searchParams","URLSearchParams","param","append","toString","fetchGroupOffersSaga","fetchGroupOfferSaga","updateOfferAttendeesSaga","fetchEventOffersSaga","fetchStationOffersSaga","fetchAllOffersSaga","fetchGroupsEventsSaga","fetchAvailableGroupsSaga","createOfferSaga","confirmStationOffersSaga","acceptGroupOfferSaga","rejectGroupOfferSaga","deleteOfferSaga","sendOfferReminderSaga","getUserByEmailSaga","createUserSaga","S3Exception","statusCode","fetchEventSendOut","sendSendOutSaga","fetchSendOutsSaga","fetchSendOutSaga","userId","fileKeys","Storage","contentType","level","err","submitAttendanceSaga","addVolunteer","watcherSaga","takeLatest","takeEvery","injectAuthorizationHeader","config","oauth","store","getState","refreshTokenSetup","Promise","reject","stage","identityPoolId","userPoolId","userPoolWebClientId","endpoints","endpoint","bucket","Amplify","configure","awsConfig","sagaMiddleware","createSagaMiddleware","reduxDevTools","__REDUX_DEVTOOLS_EXTENSION__","createStore","combineReducers","formReducer","LOGGIN_OUT","existingEvent","e2","changed","dd","offerCreateStatusSuccess","offerCreateStatusError","stationOffer","sendOfferInvitationGroups","createLinkStatus","newState","newSuccessGroups","newGroups","applyMiddleware","axios","interceptors","use","run","updateLocale","week","dow","doy","locale","momentLocalizer","ToggleLabels","onlyKeys","keyDown","keyUp","addEventListener","removeEventListener","val","keyCode","altKey","ctrlKey","labels","Swedish","English","ConnectedToggleLabels","URL","process","fetch","ready","unregister","checkValidServiceWorker","registerServiceWorker","module","exports"],"mappings":"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","file":"static/js/main.a13a60a0.chunk.js","sourcesContent":["// actions\r\nexport const AUTH_STORED_USER = 'AUTH_STORED_USER';\r\nexport const AUTH_STORED_USER_FAILED = 'AUTH_STORED_USER_FAILED';\r\nexport const LOGIN_SUBMIT = 'LOGIN_SUBMIT';\r\nexport const LOGIN_SUCCESS = 'LOGIN_SUCCESS';\r\nexport const LOGIN_FAILED = 'LOGIN_FAILED';\r\nexport const NEW_PASSWORD_REQUIRED = 'NEW_PASSWORD_REQUIRED';\r\nexport const LOGOUT = 'LOGOUT';\r\nexport const LOGOUT_SUCCESS = 'LOGOUT_SUCCESS';\r\nexport const LOGOUT_FAILED = 'LOGOUT_FAILED';\r\nexport const REGISTRATION_CONFIRM_SUBMIT = 'REGISTRATION_CONFIRM_SUBMIT';\r\nexport const REGISTRATION_CONFIRM_SUCCESS = 'REGISTRATION_CONFIRM_SUCCESS';\r\nexport const REGISTRATION_CONFIRM_FAILED = 'REGISTRATION_CONFIRM_FAILED';\r\nexport const REGISTRATION_RESEND_CODE = 'REGISTRATION_RESEND_CODE';\r\nexport const REGISTRATION_RESEND_CODE_FAILED = 'REGISTRATION_RESEND_CODE_FAILED';\r\nexport const REGISTRATION_RESEND_CODE_SUCCESS = 'REGISTRATION_RESEND_CODE_SUCCESS';\r\nexport const GET_USER_INFO = 'GET_USER_INFO';\r\nexport const GET_USER_INFO_SUCCESS = 'GET_USER_INFO_SUCCESS';\r\nexport const GET_USER_INFO_FAILED = 'GET_USER_INFO_FAILED';\r\nexport const UPDATE_USER_INFO = 'UPDATE_USER_INFO';\r\nexport const UPDATE_USER_INFO_SUCCESS = 'UPDATE_USER_INFO_SUCCESS';\r\nexport const UPDATE_USER_INFO_FAILED = 'UPDATE_USER_INFO_FAILED';\r\nexport const CHANGE_PASSWORD_SUBMIT = 'CHANGE_PASSWORD_SUBMIT';\r\nexport const CHANGE_PASSWORD_FAILED = 'CHANGE_PASSWORD_FAILED';\r\nexport const RESET = 'RESET';\r\n\r\nexport const status = {\r\n NOT_LOGGED_IN: 'NOT_LOGGED_IN',\r\n LOGGING_IN: 'LOGGING_IN',\r\n LOGIN_FAILED: 'LOGIN_FAILED',\r\n LOGGED_IN: 'LOGGED_IN',\r\n LOGGING_OUT: 'LOGGING_OUT',\r\n PENDING: 'PENDING',\r\n VERIFYING: 'VERIFYING',\r\n VERIFYING_FAILED: 'VERIFYING_FAILED',\r\n VERIFYING_SUCCESS: 'VERIFYING_SUCCESS',\r\n NEW_PASSWORD_REQUIRED: 'NEW_PASSWORD_REQUIRED',\r\n CHANGING_PASSWORD: 'CHANGING_PASSWORD',\r\n CHANGE_PASSWORD_FAILED: 'CHANGE_PASSWORD_FAILED',\r\n INIT: 'INIT',\r\n SENDING: 'SENDING',\r\n SENT: 'SENT',\r\n SENT_FAILED: 'SENT_FAILED',\r\n};\r\n\r\nexport function loginSubmit (data) {\r\n return {\r\n type: LOGIN_SUBMIT,\r\n payload: data,\r\n };\r\n}\r\n\r\nexport function changePassword (data) {\r\n return {\r\n type: CHANGE_PASSWORD_SUBMIT,\r\n payload: data,\r\n };\r\n}\r\n\r\nexport function confirmRegistration (data) {\r\n return {\r\n type: REGISTRATION_CONFIRM_SUBMIT,\r\n payload: data,\r\n };\r\n}\r\n\r\nexport function resendConfirmationCode (data) {\r\n return {\r\n type: REGISTRATION_RESEND_CODE,\r\n payload: data,\r\n };\r\n}\r\n\r\nexport function logout () {\r\n return {\r\n type: LOGOUT,\r\n };\r\n}\r\n\r\nexport function authStoredUser () {\r\n return {\r\n type: AUTH_STORED_USER,\r\n };\r\n}\r\n\r\nexport function updateUserInfo (data) {\r\n return {\r\n type: UPDATE_USER_INFO,\r\n payload: data,\r\n };\r\n}\r\n\r\nexport function reset () {\r\n return {\r\n type: RESET,\r\n };\r\n}\r\n\r\n// reducer with initial state\r\nconst initialState = {\r\n status: status.PENDING,\r\n user: null,\r\n accessToken: null,\r\n refreshToken: null,\r\n expiresIn: null,\r\n error: null,\r\n passwordChallengeEmail: null,\r\n activationCodeStatus: status.INIT,\r\n};\r\n\r\nconst stateToUse = initialState;\r\n\r\nexport default function auth(state = stateToUse, action) {\r\n if (!action) {\r\n return state;\r\n }\r\n\r\n switch (action.type) {\r\n case LOGIN_SUBMIT:\r\n return Object.assign({}, state, {error: null}, {status: status.LOGGING_IN});\r\n case LOGIN_SUCCESS:\r\n return Object.assign({}, state, action.payload, {status: status.LOGGED_IN});\r\n case LOGIN_FAILED:\r\n return Object.assign({}, state, action.payload, {error: action.payload}, {status: status.LOGIN_FAILED, user: null});\r\n case NEW_PASSWORD_REQUIRED:\r\n return Object.assign({}, state, {status: status.NEW_PASSWORD_REQUIRED, user: action.payload.user, passwordChallengeEmail: action.payload.email.toLowerCase()});\r\n case REGISTRATION_CONFIRM_SUBMIT:\r\n return Object.assign({}, state, {error: null}, {status: status.VERIFYING});\r\n case REGISTRATION_CONFIRM_FAILED:\r\n return Object.assign({}, state, {error: action.payload}, {status: status.VERIFYING_FAILED});\r\n case LOGOUT:\r\n return Object.assign({}, state, {status: status.LOGGIN_OUT, user: null});\r\n case LOGOUT_SUCCESS:\r\n return initialState;\r\n case AUTH_STORED_USER_FAILED:\r\n return Object.assign({}, state, action.payload, {status: status.NOT_LOGGED_IN, user: null});\r\n case REGISTRATION_CONFIRM_SUCCESS:\r\n return Object.assign({}, state, {error: null}, {status: status.VERIFYING_SUCCESS});\r\n case GET_USER_INFO_SUCCESS:\r\n return Object.assign({}, state, {user: action.payload});\r\n case GET_USER_INFO_FAILED:\r\n return state;\r\n case UPDATE_USER_INFO_SUCCESS:\r\n return Object.assign({}, state,{user: action.payload});\r\n case UPDATE_USER_INFO_FAILED:\r\n return state;\r\n case CHANGE_PASSWORD_SUBMIT:\r\n return Object.assign({}, state, {error: null}, {status: status.CHANGING_PASSWORD});\r\n case CHANGE_PASSWORD_FAILED:\r\n return Object.assign({}, state, {error: action.payload}, {status: status.CHANGE_PASSWORD_FAILED, user: null});\r\n case REGISTRATION_RESEND_CODE:\r\n return Object.assign({}, state, {activationCodeStatus: status.SENDING});\r\n case REGISTRATION_RESEND_CODE_SUCCESS:\r\n return Object.assign({}, state, {activationCodeStatus: status.SENT});\r\n case REGISTRATION_RESEND_CODE_FAILED:\r\n return Object.assign({}, state, {activationCodeStatus: status.SENT_FAILED});\r\n case RESET:\r\n return Object.assign({}, initialState);\r\n default:\r\n return state;\r\n }\r\n}\r\n","\r\n// actions\r\nexport const TOGGLE_MOBILE_MENU = 'TOGGLE_MOBILE_MENU';\r\nexport const SELECT_LANGUAGE = 'SELECT_LANGUAGE';\r\n\r\nexport function toggleMobileMenu () {\r\n return {\r\n type: TOGGLE_MOBILE_MENU,\r\n };\r\n}\r\n\r\nexport function selectLanguage (data) {\r\n return {\r\n type: SELECT_LANGUAGE,\r\n payload: data,\r\n };\r\n}\r\n\r\n// reducer with initial state\r\nconst initialState = {\r\n showMobileMenu: false,\r\n selectedLanguage: 1, // TODO: Not sure this is the best location for the language value. Maybe create an 'App'-reducer?\r\n};\r\n\r\nexport default function auth(state = initialState, action) {\r\n if (!action) {\r\n return state;\r\n }\r\n\r\n switch (action.type) {\r\n case TOGGLE_MOBILE_MENU:\r\n return Object.assign({}, state, {showMobileMenu: !state.showMobileMenu});\r\n case SELECT_LANGUAGE:\r\n return Object.assign({}, state, {selectedLanguage: action.payload.id});\r\n default:\r\n return state;\r\n }\r\n}\r\n","const colors = {\r\n text: '#585a5f',\r\n grayStartGradient: '#757378',\r\n gray: '#585a5f',\r\n lightGray: '#ebe7ea',\r\n lightGray2: '#d0d3d9',\r\n lightGray3: '#fcfcfc',\r\n lightGray4: '#bcbcc1',\r\n lightGray5: '#f9f8f9',\r\n lightGray6: '#e7e3e5',\r\n mediumLightGray: '#949398',\r\n pink: '#ef7f78 ',\r\n pinkEndGradient: '#d6686b',\r\n darkPink: '#eb6c6d',\r\n lightPink: '#fbf0ee',\r\n lightPink2: '#f8d9d7',\r\n lightPink3: '#ed807a',\r\n mediumPink: '#f7dfda',\r\n orange: '#f2746d',\r\n green: '#00adba',\r\n darkGreen: '#009fac',\r\n greenEndGradient: '#009aa2',\r\n lightGreen: '#e2f0f1',\r\n lighterGreen: '#bdddd8',\r\n inputPlaceholderGrey: '#BCBCC1',\r\n};\r\n\r\nconst breakPoints = {\r\n // To be used with max-width. Min-width needs +1\r\n lg: 1199,\r\n md: 991,\r\n sm: 767,\r\n xs: 575,\r\n};\r\n\r\nconst headerHeight = '75';\r\n\r\nconst buttonStyles = {\r\n fontSize: '18px',\r\n color: '#FFF',\r\n padding: '23px 70px',\r\n borderRadius: '5px',\r\n};\r\n\r\nexport {\r\n colors,\r\n breakPoints,\r\n headerHeight,\r\n buttonStyles\r\n};\r\n","import React, { Component, Fragment } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { colors, breakPoints, headerHeight } from \"../../../constants/styling-constants\";\r\nimport styled from \"styled-components\";\r\n\r\nconst ItemWrapper = styled.li`\r\n display: inline-block;\r\n margin-left: 45px;\r\n position: relative;\r\n padding: 30px 0;\r\n i {\r\n margin-left: 7px;\r\n transition: transform 0.2s ease;\r\n @media (max-width: ${breakPoints.md}px) {\r\n display: none;\r\n }\r\n }\r\n &:hover {\r\n ul {\r\n display: inline-block;\r\n }\r\n i {\r\n transform: rotate(90deg);\r\n }\r\n }\r\n @media (max-width: ${breakPoints.md}px) {\r\n margin-left: 50px;\r\n padding: 0;\r\n .selected-item-wrapper {\r\n display: none;\r\n }\r\n }\r\n`;\r\n\r\nconst DropDownUl = styled.ul`\r\n position: absolute;\r\n display: none;\r\n z-index: 3;\r\n top: ${headerHeight}px;\r\n left: -23px;\r\n @media (max-width: ${breakPoints.md}px) {\r\n display: block;\r\n position: relative;\r\n top: 0;\r\n left: 0;\r\n }\r\n`;\r\n\r\n\r\nconst StyledItem = styled.li`\r\n padding: 25px;\r\n background-color: #FFF;\r\n cursor: pointer;\r\n transition: background-color 0.1s ease;\r\n &:hover {\r\n background-color: ${colors.lightPink2};\r\n }\r\n @media (max-width: ${breakPoints.md}px) {\r\n background-color: transparent;\r\n padding: 15px 0;\r\n &.active {\r\n color: ${colors.pink}\r\n }\r\n &:hover {\r\n background-color: transparent;\r\n color: ${colors.pink}\r\n }\r\n }\r\n`;\r\n\r\nconst MobileBorder = styled.div`\r\n display: none;\r\n height: 2px;\r\n width: 40px;\r\n margin: 20px 0;\r\n background-color: ${colors.gray};\r\n @media (max-width: ${breakPoints.md}px) {\r\n display: block;\r\n }\r\n`;\r\n\r\n/* TODO: Replace icon with thin version from FontAwesome Pro */\r\n\r\nconst Item = ({ item, callback, selectedItem }) => {\r\n const onClick = () => {\r\n callback(item);\r\n };\r\n\r\n return (\r\n \r\n {item.label}\r\n \r\n );\r\n};\r\n\r\nclass DropDownMenuItem extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.handleClick = this.handleClick.bind(this);\r\n }\r\n\r\n handleClick(item) {\r\n this.props.onSelect(item);\r\n }\r\n\r\n render() {\r\n if (!this.props.items || this.props.items.length === 0) {\r\n return null;\r\n }\r\n\r\n const selectedItem = this.props.items.find(i => i.id === this.props.selectedItem);\r\n\r\n if (!selectedItem) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n
\r\n {selectedItem.label}\r\n \r\n
\r\n \r\n \r\n {this.props.items.map(i => )}\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nDropDownMenuItem.propTypes = {\r\n items: PropTypes.array,\r\n selectedItem: PropTypes.number.isRequired,\r\n onSelect: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default DropDownMenuItem;\r\n","import { connect } from 'react-redux';\r\nimport { selectLanguage } from '../reducer';\r\nimport DropDownMenuItem from './DropDownMenuItem';\r\n\r\nconst mapStateToProps = state => ({\r\n selectedItem: state.menu.selectedLanguage,\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n onSelect: data => dispatch(selectLanguage(data)),\r\n});\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(DropDownMenuItem);\r\n","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n menuItems: {\r\n organizer: {\r\n id: 'menu-item.organizer',\r\n },\r\n volunteer: {\r\n id: 'menu-item.volunteer',\r\n },\r\n myPages: {\r\n id: 'menu-item.my-pages',\r\n },\r\n myProfile: {\r\n id: 'my-profile.title'\r\n },\r\n register: {\r\n id: 'menu-item.register',\r\n },\r\n login: {\r\n id: 'menu-item.login',\r\n },\r\n logOut: {\r\n id: 'menu-item.logout',\r\n },\r\n language: {\r\n swe: {\r\n id: 'menu-item.language.swe.placeholder',\r\n },\r\n eng: {\r\n id: 'menu-item.language.eng.placeholder',\r\n },\r\n nor: {\r\n id: 'menu-item.language.nor.placeholder',\r\n },\r\n },\r\n contact: {\r\n id: 'menu-item.contact',\r\n },\r\n },\r\n});\r\n","import React, { Component, Fragment } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { colors, breakPoints } from \"../../constants/styling-constants\";\r\nimport { status } from \"../../auth/reducer\";\r\nimport DropDownMenuItem from \"./DropDownMenuItem/LanguageContainer\";\r\nimport messages from \"./messages\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\n\r\nconst Wrapper = styled.nav`\r\n text-align: right;\r\n @media (max-width: ${breakPoints.md}px) {\r\n text-align: left;\r\n }\r\n`;\r\n\r\nconst MenuList = styled.ul`\r\n list-style: none;\r\n transition: transform 0.5s ease;\r\n @media (max-width: ${breakPoints.md}px) {\r\n transform: translateX(100%); \r\n display: block;\r\n background-color: ${colors.lightGray3};\r\n position: fixed;\r\n top: 0px;\r\n height: 100%;\r\n width: 100%\r\n left: 0;\r\n margin-top: 75px;\r\n padding-top: 30px;\r\n z-index: 1000;\r\n overflow-y: scroll;\r\n li {\r\n display: block;\r\n }\r\n }\r\n &.mobile-menu {\r\n transform: translateX(0);\r\n }\r\n`;\r\n\r\nconst MenuItem = styled.li`\r\n display: inline-block;\r\n margin-left: 45px;\r\n padding: 30px 0;\r\n @media (max-width: ${breakPoints.md}px) {\r\n margin-left: 25px;\r\n }\r\n @media (max-width: ${breakPoints.md}px) {\r\n margin-left: 50px;\r\n }\r\n &.only-mobile {\r\n @media (min-width: ${breakPoints.md + 1}px) {\r\n display: none;\r\n }\r\n }\r\n`;\r\n\r\nconst MobileMenuButton = styled.button`\r\n display: none;\r\n background-color: transparent;\r\n border: none;\r\n outline: none;\r\n font-size: 40px;\r\n @media (max-width: ${breakPoints.md}px) {\r\n display: inline-block;\r\n }\r\n`;\r\n\r\nconst StyledLink = styled(NavLink)`\r\n font-size: 16px;\r\n color: ${colors.text}\r\n &.active {\r\n color: ${colors.pink}\r\n }\r\n &:hover {\r\n text-decoration: none;\r\n color: ${colors.pink};\r\n }\r\n`;\r\n\r\nconst tempItems = [\r\n {\r\n id: 1,\r\n labelKey: messages.menuItems.language.swe\r\n },\r\n {\r\n id: 2,\r\n labelKey: messages.menuItems.language.eng\r\n },\r\n];\r\n\r\nclass Menu extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.handleLogout = this.handleLogout.bind(this);\r\n this.handleOnMobileMenuClick = this.handleOnMobileMenuClick.bind(this);\r\n }\r\n\r\n handleLogout(e) {\r\n e.preventDefault();\r\n this.props.logout();\r\n if (this.props.location.pathname === \"/\") {\r\n window.location.reload();\r\n } else {\r\n this.props.history.push(\"/\");\r\n }\r\n }\r\n\r\n handleOnMobileMenuClick() {\r\n if (window.innerWidth <= breakPoints.md) {\r\n this.props.toggleMobileMenu();\r\n }\r\n }\r\n\r\n renderLoggedInLinks() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n render() {\r\n const langListTranslated = tempItems.map(opt => Object.assign({}, opt, { label: this.props.intl.formatMessage(opt.labelKey) }));\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 {this.props.auth.status !== status.LOGGED_IN\r\n ? \r\n \r\n \r\n : this.renderLoggedInLinks()\r\n }\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default injectIntl(Menu);\r\n","import { connect } from 'react-redux';\r\nimport { logout } from '../../auth/reducer';\r\nimport { toggleMobileMenu } from './reducer';\r\nimport Menu from './Menu';\r\nimport { withRouter } from 'react-router';\r\n\r\nconst mapStateToProps = state => ({\r\n auth: state.auth,\r\n showMobileMenu: state.menu.showMobileMenu,\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n logout: data => dispatch(logout()),\r\n toggleMobileMenu: () => dispatch(toggleMobileMenu()),\r\n});\r\n\r\nexport default withRouter(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(Menu));\r\n","import React from 'react';\r\nimport styled from 'styled-components';\r\nimport img from '../../images/VolEx_logo_pos.svg';\r\nimport { breakPoints } from '../../constants/styling-constants';\r\n\r\nconst Wrapper = styled.img`\r\n width: 150px;\r\n @media (max-width: ${breakPoints.sm}px) {\r\n width: 125px;\r\n }\r\n`;\r\n\r\nconst Logo = () => ();\r\n\r\nexport default Logo;\r\n","import React from 'react';\r\nimport styled from 'styled-components';\r\nimport img from '../../images/VolEx_logo_footer.svg';\r\n\r\nconst Wrapper = styled.img`\r\n width: 150px;\r\n`;\r\n\r\nconst GrayLogo = () => ();\r\n\r\nexport default GrayLogo;\r\n","import styled from 'styled-components';\r\n\r\nconst FlexSpaceBetween = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: space-between;\r\n align-items: center;\r\n`;\r\n\r\nexport default FlexSpaceBetween;\r\n","import styled from 'styled-components';\r\n\r\nconst ContentWrapper = styled.div`\r\n padding: 100px 0 90px;\r\n`;\r\n\r\nexport default ContentWrapper;\r\n","import { Grid } from 'react-bootstrap/lib';\r\nimport styled from 'styled-components';\r\n\r\nconst Container = styled(Grid)`\r\n @media (min-width: 1170px) {\r\n width: 980px;\r\n }\r\n`;\r\n\r\nexport default Container;\r\n","import styled from 'styled-components';\r\n\r\nconst ImageBackground = styled.div`\r\n background-size: cover;\r\n height: 420px;\r\n display flex;\r\n align-items: center;\r\n`;\r\n\r\nexport default ImageBackground;\r\n","import React from 'react';\r\nimport styled from 'styled-components';\r\nimport { colors } from '../../constants/styling-constants';\r\n\r\nconst StyledError = styled.p`\r\n margin-bottom: 10px;\r\n color: ${colors.pink};\r\n text-align: right;\r\n font-style: italic;\r\n font-size: 14px;\r\n`;\r\n\r\nconst Error = ({error, className = ''}) => (error ? {error} : null);\r\n\r\nconst SmallError = styled(Error)`\r\n margin-bottom: 6px;\r\n font-size: 10px;\r\n`;\r\n\r\nexport default Error;\r\n\r\nexport {\r\n SmallError\r\n};\r\n","import React, { Fragment } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { SmallError } from \"./Error\";\r\nimport { colors } from \"../../constants/styling-constants\";\r\nimport { TextLabel, P } from \"../index\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\n\r\nconst StyledInput = styled.input`\r\n font-size: 17px;\r\n padding: 13px 15px;\r\n background-color: #FFF;\r\n width: 100%;\r\n margin-bottom: 15px;\r\n border: none;\r\n outline: none;\r\n &::placeholder {\r\n color: ${colors.lightGray4};\r\n }\r\n &.has-error {\r\n margin-bottom: 5px;\r\n background-color: ${colors.lightPink2}\r\n &::placeholder {\r\n color: ${colors.pink};\r\n }\r\n }\r\n &.border {\r\n border: 1px solid ${colors.lightGray4};\r\n border-radius: 3px;\r\n &:disabled {\r\n background-color: ${colors.lightGray3};\r\n color: ${colors.mediumLightGray};\r\n }\r\n`;\r\n\r\nconst Input = (ErrorComponent = SmallError) => ({ className = \"\", initialValue, input, placeholder, min, type, disabled, meta: { touched, error, warning }, readonly = false }) => {\r\n if (readonly) {\r\n return (\r\n \r\n \r\n {placeholder}\r\n \r\n \r\n

{initialValue ? initialValue : input.value}

\r\n \r\n
\r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n {touched &&\r\n ((error && ) ||\r\n (warning && {warning}))}\r\n \r\n );\r\n};\r\n\r\nconst SmallInput = styled(Input(SmallError))`\r\n font-size: 12px;\r\n padding: 9px 11px;\r\n margin-bottom: 11px;\r\n`;\r\n\r\nexport default Input();\r\nexport {\r\n SmallInput\r\n};\r\n","import React, { Fragment } from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\nimport { SmallError } from \"./Error\";\r\nimport { colors } from \"../../constants/styling-constants\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport { TextLabel, P } from \"../index\";\r\n\r\n\r\nconst TextAreaTemplate = ({ className, input, placeholder, readonly, meta: { touched, error, warning } }) => {\r\n\r\n if (readonly) {\r\n return (\r\n \r\n \r\n {placeholder}\r\n \r\n \r\n

{input.value}

\r\n \r\n
\r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n {touched &&\r\n ((error && ) ||\r\n (warning && {warning}))}\r\n \r\n );\r\n};\r\n\r\nconst TextArea = styled(TextAreaTemplate)`\r\n font-size: 17px;\r\n padding: 13px 15px;\r\n background-color: #FFF;\r\n width: 100%;\r\n margin-bottom: 15px;\r\n border: none;\r\n outline: none;\r\n height: 100px;\r\n resize: vertical;\r\n &::placeholder {\r\n color: ${colors.lightGray4};\r\n }\r\n ${({ meta: { touched, error } }) => touched && error && css`\r\n margin-bottom: 5px;\r\n background-color: ${colors.lightPink2}\r\n &::placeholder {\r\n color: ${colors.pink};\r\n }\r\n `}\r\n`;\r\n\r\nconst GrayTextArea = TextArea.extend`\r\n background-color: ${colors.lightGray5};\r\n`;\r\n\r\nexport {\r\n TextArea,\r\n GrayTextArea\r\n};\r\n","import React, { Fragment } from \"react\";\r\nimport { DateTimePicker } from \"react-widgets\";\r\nimport styled from \"styled-components\";\r\nimport { SmallError } from \"./Error\";\r\nimport { colors } from \"../../constants/styling-constants\";\r\nimport { TextLabel, P } from \"../index\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport moment from \"moment\";\r\n\r\nconst StyledDatePicker = styled(DateTimePicker)`\r\n font-size: 17px;\r\n margin-bottom: 15px;\r\n .rw-widget-picker {\r\n background-color: #FFF;\r\n width: 100%;\r\n border: none;\r\n border-radius: 0;\r\n }\r\n &.rw-state-focus .rw-widget-picker {\r\n box-shadow: none;\r\n }\r\n input {\r\n outline: none;\r\n padding: 13px 15px;\r\n &::placeholder {\r\n color: ${colors.lightGray4};\r\n }\r\n }\r\n &.has-error {\r\n margin-bottom: 5px;\r\n input {\r\n &::placeholder {\r\n color: ${colors.pink};\r\n }\r\n }\r\n input, .rw-select {\r\n background-color: ${colors.lightPink2}\r\n }\r\n }\r\n`;\r\n\r\nconst DatePickerHOC = (ErrorComponent = SmallError) => ({ className = \"\", input, placeholder, meta: { touched, error, warning }, date = true, time = false, readonly = false }) => {\r\n if (readonly) {\r\n return (\r\n \r\n \r\n {placeholder}\r\n \r\n \r\n

{moment(input.value).format((time && date && \"YYYY-MM-DD HH:mm\") || (date && \"YYYY-MM-DD\") || (time && \"HH:mm\") || \"\")}

\r\n \r\n
\r\n );\r\n }\r\n\r\n return (\r\n \r\n input.onBlur()}\r\n format={(time && date && \"YYYY-MM-DD HH:mm\") || (date && \"YYYY-MM-DD\") || (time && \"HH:mm\") || \"\"}\r\n time={time}\r\n date={date}\r\n placeholder={placeholder}\r\n value={!input.value ? null : new Date(input.value)}\r\n timeFormat=\"HH:mm\"\r\n />\r\n {touched &&\r\n ((error && ) ||\r\n (warning && {warning}))}\r\n \r\n );\r\n};\r\n\r\nconst SmallDatePicker = styled(DatePickerHOC(SmallError))`\r\n font-size: 12px;\r\n margin-bottom: 11px;\r\n .rw-widget-picker {\r\n background-color: #FFF;\r\n width: 100%;\r\n border: none;\r\n border-radius: 0;\r\n }\r\n &.rw-state-focus .rw-widget-picker {\r\n box-shadow: none;\r\n }\r\n input {\r\n padding: 9px 11px;\r\n }\r\n`;\r\n\r\nconst DatePicker = DatePickerHOC();\r\n\r\nexport const TimePicker = (props) => \r\n\r\nexport default DatePicker;\r\n\r\nexport {\r\n SmallDatePicker\r\n};\r\n","import React from 'react';\r\n\r\n// Higher order component to deal with storing id's in store and giving objects to Input\r\nconst withObjectValues = (Component) => (props) => {\r\n return (\r\n props.input.onBlur(),\r\n onChange: (e) => {\r\n if (props.data[0] && props.data[0][props.valueField] !== undefined) {\r\n if(Array.isArray(e)) {\r\n props.input.onChange(e.map(v => v[props.valueField]));\r\n } else {\r\n props.input.onChange(e[props.valueField]);\r\n }\r\n } else {\r\n props.input.onChange(e);\r\n }\r\n },\r\n value: Array.isArray(props.input.value) ? props.data.filter(d => (props.input.value || []).includes(d[props.valueField])) : props.input.value === null || props.input.value === undefined ? null : props.valueField ? props.data.find(d => d[props.valueField] === props.input.value) : props.input.value,\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport { withObjectValues };","import React, { Fragment } from \"react\";\r\nimport { SelectList } from \"react-widgets\";\r\nimport styled from \"styled-components\";\r\nimport { colors } from \"../../constants/styling-constants\";\r\nimport { TextLabel } from \"../index\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport { withObjectValues } from \"./selectValuesHoc\";\r\nimport { SmallError } from \"./Error\";\r\n\r\nconst StyledSelect = styled(SelectList)`\r\n font-size: 17px;\r\n margin-bottom: 15px;\r\n background-color: transparent;\r\n &.rw-widget-container {\r\n border: none;\r\n outline: none;\r\n box-shadow: none;\r\n &.rw-state-focus {\r\n box-shadow: none;\r\n }\r\n }\r\n li {\r\n padding-left: 0;\r\n display: ${props => props.display};\r\n &.rw-state-focus {\r\n border: none;\r\n }\r\n }\r\n &.rw-state-focus:hover {\r\n background-color: transparent;\r\n }\r\n &.rw-state-focus {\r\n background-color: transparent;\r\n }\r\n &.has-error {\r\n margin-bottom: 5px;\r\n background-color: ${colors.lightPink2}\r\n &::placeholder {\r\n color: ${colors.pink};\r\n }\r\n }\r\n .rw-list-option:hover {\r\n background-color: transparent;\r\n border-color: transparent;\r\n }\r\n`;\r\n\r\nconst ReadonlyItem = styled.div`\r\n display: inline-block;\r\n margin-right: 15px;\r\n`;\r\n\r\nconst ListSelect = ({ className = \"\", multiple = true, placeholder = null, readonly = false, input, data, valueField, textField, meta: { touched, error, warning }, display }) => {\r\n if (readonly) {\r\n return (\r\n \r\n \r\n {placeholder ? {placeholder} : null}\r\n \r\n \r\n {input && input.value ? input.value.map((v) => {\r\n const item = data.find(d => v[valueField] === d[valueField]);\r\n\r\n if (item) {\r\n return ({item[textField]});\r\n }\r\n\r\n return null;\r\n })\r\n : null}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {placeholder ? {placeholder} : null}\r\n \r\n {touched &&\r\n ((error && ) ||\r\n (warning && {warning}))}\r\n \r\n );\r\n};\r\n\r\nexport default withObjectValues(ListSelect);\r\n","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n multiSelect: {\r\n messages: {\r\n emptyList: {\r\n id: 'forms.select.empty-list',\r\n },\r\n emptyFilter: {\r\n id: 'forms.select.empty-filter',\r\n },\r\n },\r\n },\r\n select: {\r\n messages: {\r\n emptyList: {\r\n id: 'forms.select.empty-list',\r\n },\r\n emptyFilter: {\r\n id: 'forms.select.empty-filter',\r\n },\r\n },\r\n },\r\n fileUpload: {\r\n fileTooBig: {\r\n id: 'forms.file-upload.file-to-big',\r\n },\r\n totalFileSizeTooBig: {\r\n id: 'forms.file-upload.total-file-size-too-big',\r\n },\r\n },\r\n});\r\n","import React, { Fragment } from \"react\";\r\nimport { compose } from \"redux\"\r\nimport { DropdownList } from \"react-widgets\";\r\nimport styled from \"styled-components\";\r\nimport { colors } from \"../../constants/styling-constants\";\r\nimport { SmallError } from \"./Error\";\r\nimport { TextLabel, P } from \"../index\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport messages from \"./messages\";\r\nimport { injectIntl } from \"react-intl\";\r\nimport { withObjectValues } from \"./selectValuesHoc\";\r\n\r\nconst StyledSelect = styled(DropdownList)`\r\n font-size: 17px;\r\n margin-bottom: 15px;\r\n .rw-widget-picker {\r\n background-color: #FFF;\r\n width: 100%;\r\n border: none;\r\n border-radius: 0;\r\n }\r\n .rw-widget-input {\r\n height: 46px;\r\n }\r\n .rw-input {\r\n outline: none;\r\n padding: 15px;\r\n }\r\n button {\r\n background-color: ${colors.gray};\r\n }\r\n .rw-i {\r\n color: #FFF;\r\n }\r\n .rw-placeholder {\r\n color: ${colors.lightGray4};\r\n }\r\n .rw-filter-input {\r\n width: inherit;\r\n }\r\n &.has-error {\r\n margin-bottom: 5px;\r\n .rw-input {\r\n background-color: ${colors.lightPink2};\r\n }\r\n .rw-placeholder {\r\n color: ${colors.pink};\r\n }\r\n }\r\n &.border {\r\n border: 1px solid ${colors.lightGray4};\r\n }\r\n`;\r\n\r\nconst selectMessages = formatMessage => ({\r\n emptyFilter: formatMessage(messages.select.messages.emptyFilter),\r\n emptyList: formatMessage(messages.select.messages.emptyList),\r\n});\r\n\r\nconst SelectComponent = (ErrorComponent = SmallError) => ({ className = \"\", input, readonly = false, data = [], intl, valueField, filter, placeholder, textField, meta: { touched, error, warning } }) => {\r\n if (readonly) {\r\n const item = typeof input.value === \"object\" && input.value !== null ? data.find(d => d.id === input.value.id) : data.find(d => d.id === input.value);\r\n return (\r\n \r\n \r\n {placeholder}\r\n \r\n \r\n

{item ? item.name : input.value}

\r\n \r\n
\r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n {touched &&\r\n ((error && ) ||\r\n (warning && {warning}))}\r\n \r\n );\r\n};\r\n\r\nconst SmallSelect = styled(SelectComponent(SmallError))`\r\n font-size: 12px;\r\n min-width: 135px;\r\n margin-bottom: 11px;\r\n .rw-widget-input {\r\n height: 32px;\r\n }\r\n`;\r\n\r\nconst IntlSmallSelect = withObjectValues(injectIntl(SmallSelect));\r\n\r\nexport default compose(withObjectValues, injectIntl)(SelectComponent())\r\n\r\nexport {\r\n IntlSmallSelect as SmallSelect\r\n};\r\n","import React, { Fragment } from \"react\";\r\nimport { compose } from \"redux\"\r\nimport { Multiselect } from \"react-widgets\";\r\nimport styled, { css } from \"styled-components\";\r\nimport { colors } from \"../../constants/styling-constants\";\r\nimport Error from \"./Error\";\r\nimport { TextLabel } from \"../index\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport { injectIntl } from \"react-intl\";\r\nimport messages from \"./messages\";\r\nimport { withObjectValues } from \"./selectValuesHoc\";\r\n\r\nconst StyledMulti = styled(Multiselect)`\r\n font-size: 17px;\r\n margin-bottom: 15px;\r\n .rw-widget-picker {\r\n &, &:hover, &:active {\r\n background-color: ${props => (props.error ? colors.lightPink2 : \"#FFF\")};\r\n }\r\n width: 100%;\r\n border: none;\r\n border-radius: 0;\r\n }\r\n \r\n .rw-widget-picker > div {\r\n vertical-align: top;\r\n }\r\n \r\n .rw-widget-input {\r\n height: 46px;\r\n }\r\n input::placeholder {\r\n color: ${colors.inputPlaceholderGrey};\r\n }\r\n .rw-input-reset {\r\n padding-top: 5px;\r\n width: 100%;\r\n ${props => props.error && css`\r\n &::placeholder {\r\n color: ${colors.pink};\r\n }\r\n `}\r\n }\r\n .rw-i {\r\n color: #FFF;\r\n }\r\n .rw-multiselect-taglist {\r\n li {\r\n height: 40px;\r\n }\r\n button {\r\n background-color: transparent;\r\n }\r\n }\r\n`;\r\n\r\nconst ReadonlyItem = styled.div`\r\n display: inline-block;\r\n margin-right: 15px;\r\n margin-bottom: 10px;\r\n`;\r\n\r\nconst multiselectMessages = formatMessage => ({\r\n emptyFilter: formatMessage(messages.multiSelect.messages.emptyFilter),\r\n emptyList: formatMessage(messages.multiSelect.messages.emptyList),\r\n});\r\n\r\n\r\nconst MultiComponent = ({ input, data, valueField, intl, placeholder, textField, meta: { touched, error, warning }, readonly = false }) => {\r\n if (readonly) {\r\n return (\r\n \r\n \r\n {placeholder ? {placeholder} : null}\r\n \r\n \r\n {input.value ?\r\n input.value.map((v) => {\r\n const item = data.find(d => v === d.id || v === d);\r\n if (item) {\r\n return ({item.name});\r\n }\r\n return null;\r\n })\r\n :\r\n null}\r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n {touched &&\r\n ((error && ) ||\r\n (warning && {warning}))}\r\n \r\n );\r\n};\r\n\r\nexport default compose(withObjectValues, injectIntl)(MultiComponent)\r\n","import React, { Fragment } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport PropTypes from \"prop-types\";\r\nimport { colors } from \"../../constants/styling-constants\";\r\n\r\nconst StyledCheckbox = styled.input`\r\n display: none;\r\n &+ label:before {\r\n font-family: Font Awesome\\\\ 5 Free;\r\n display: inline-block;\r\n content: \"\\\\F0C8\";\r\n font-size: 20px;\r\n cursor: pointer;\r\n }\r\n &:checked + label:before {\r\n content: \"\\\\F14A\";\r\n }\r\n &:disabled + label:before {\r\n color: ${colors.mediumLightGray};\r\n }\r\n &.error + label {\r\n color: ${colors.darkPink}\r\n }\r\n`;\r\n\r\n// TODO: This can currently not be used as a Redux Form Field Compoenent as it is used as a normal checkbox (see\r\n// StationsListCheckboxes)\r\n\r\nconst Checkbox = ({ checked, id, label = null, name, className, onChange, disabled = false }) => {\r\n return (\r\n \r\n \r\n {}\r\n \r\n )\r\n};\r\n\r\nCheckbox.propTypes = {\r\n id: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]).isRequired\r\n};\r\n\r\nexport default Checkbox;\r\n","import styled from 'styled-components';\r\n\r\nconst FormGroup = styled.div`\r\n margin-bottom: 55px;\r\n`;\r\n\r\nexport default FormGroup;\r\n","import React from \"react\";\r\nimport {\r\n Route,\r\n Redirect,\r\n} from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\n\r\nconst PrivateRoute = ({ component: Component, auth, ...rest }) => (\r\n {\r\n if (auth.status === \"LOGGED_IN\") {\r\n return ;\r\n } else if (auth.status === \"PENDING\") {\r\n return null;\r\n } else {\r\n return ;\r\n }\r\n }\r\n }\r\n />\r\n);\r\n\r\nconst mapStateToProps = (state) => ({\r\n auth: state.auth\r\n});\r\n\r\nexport default connect(mapStateToProps)(PrivateRoute);\r\n","import styled from 'styled-components';\r\nimport { colors } from '../../constants/styling-constants';\r\n\r\nconst H2 = styled.h2`\r\n color: ${colors.text};\r\n font-size: 28px;\r\n font-weight: bold;\r\n margin-bottom: 35px;\r\n`;\r\n\r\nconst H2Large = H2.extend`\r\n font-size: 35px;\r\n`;\r\n\r\nconst H2LargeCenter = H2Large.extend`\r\n text-align: center;\r\n`;\r\n\r\nconst H2WithButton = styled(H2)`\r\n margin-bottom: 40px;\r\n position: relative;\r\n .right-content {\r\n position: absolute;\r\n right: 0;\r\n top: -5px;\r\n text-align: right;\r\n }\r\n button {\r\n margin-top: 0;\r\n margin-right: 0;\r\n font-weight: 500;\r\n }\r\n p {\r\n font-size: 14px;\r\n font-weight: 500;\r\n margin-top: 10px;\r\n font-style: italic;\r\n }\r\n`;\r\n\r\nexport {\r\n H2,\r\n H2Large,\r\n H2LargeCenter,\r\n H2WithButton\r\n};\r\n","import styled from 'styled-components';\r\nimport { colors } from '../../constants/styling-constants';\r\n\r\nconst H3 = styled.h3`\r\n color: ${colors.text};\r\n font-size: 24px;\r\n font-weight: bold;\r\n margin-bottom: 20px;\r\n`;\r\n\r\nconst H3Large = H3.extend`\r\n font-size: 35px;\r\n`;\r\n\r\nconst H3LargeCenter = H3Large.extend`\r\n text-align: center;\r\n`;\r\n\r\nexport {\r\n H3,\r\n H3Large,\r\n H3LargeCenter\r\n};\r\n","import styled from 'styled-components';\r\nimport { colors } from '../../constants/styling-constants';\r\n\r\nconst H4 = styled.h4`\r\n color: ${colors.text};\r\n font-size: 20px;\r\n font-weight: bold;\r\n margin-bottom: 20px;\r\n`;\r\n\r\nexport {\r\n H4,\r\n};\r\n","import styled from 'styled-components';\r\nimport { colors } from '../../constants/styling-constants';\r\n\r\nconst H1 = styled.h1`\r\n color: ${colors.text};\r\n font-size: 42px;\r\n font-weight: bold;\r\n margin-bottom: 40px;\r\n`;\r\n\r\nexport const WhiteH1 = H1.extend`\r\n color: #FFF;\r\n`;\r\n\r\nexport default H1;\r\n","import styled from 'styled-components';\r\nimport { colors } from '../../constants/styling-constants';\r\n\r\nconst P = styled.p`\r\n color: ${colors.text};\r\n font-size: 16px;\r\n margin-bottom: 15px;\r\n line-height: 20px;\r\n`;\r\n\r\nconst ItalicP = P.extend`\r\n font-style: italic;\r\n`;\r\n\r\nconst WhiteP = P.extend`\r\n color: #FFF;\r\n`;\r\n\r\nconst BoldP = P.extend`\r\n font-weight: bold;\r\n`;\r\n\r\nexport {\r\n WhiteP,\r\n ItalicP,\r\n BoldP,\r\n}\r\n\r\n\r\nexport default P;\r\n","import styled from 'styled-components';\r\nimport { colors } from '../../constants/styling-constants';\r\n\r\nconst TextLabel = styled.p`\r\n color: ${colors.text};\r\n font-weight: 600;\r\n font-size: 16px;\r\n margin-bottom: 10px;\r\n line-height: 20px;\r\n`;\r\n\r\nexport default TextLabel;\r\n","import styled from 'styled-components';\r\n\r\nexport const TextSection = styled.section`\r\n margin-bottom: 70px;\r\n`;\r\n","import React from 'react';\r\nimport styled from 'styled-components';\r\nimport { colors } from '../../constants/styling-constants';\r\n\r\nconst WhiteTable = styled.table`\r\n width: 100%;\r\n max-width: 100%;\r\n tr {\r\n transition: background-color 0.1s ease;\r\n }\r\n th {\r\n \r\n }\r\n td, th {\r\n background-color: #FFF;\r\n border-bottom: 1px solid ${colors.lightPink};\r\n padding: 13px;\r\n }\r\n .right {\r\n text-align: right;\r\n }\r\n .no-background {\r\n background-color: transparent;\r\n border: none;\r\n }\r\n .small-cell {\r\n width: 1%;\r\n white-space:nowrap;\r\n }\r\n`;\r\n\r\nconst WhiteTableWithLastToRight = WhiteTable.extend`\r\n td:last-child {\r\n width:1%;\r\n white-space:nowrap;\r\n }\r\n`;\r\n\r\nconst BorderTable = styled.table`\r\n width: 100%;\r\n font-size: 12px;\r\n border-collapse: collapse;\r\n tr {\r\n }\r\n th, td {\r\n padding: 15px 10px;\r\n }\r\n td {\r\n border: 1px solid ${colors.lightPink};\r\n background-color: #FFF;\r\n padding: 13px;\r\n }\r\n .right {\r\n text-align: right;\r\n }\r\n .no-background {\r\n background-color: transparent;\r\n border: none;\r\n }\r\n`;\r\n\r\nconst TableStatus = styled.span`\r\n font-size: 14px;\r\n &.draft {\r\n color: ${colors.orange};\r\n }\r\n &.historic {\r\n color: ${colors.lightGray4};\r\n }\r\n`;\r\n\r\nconst TableRow = styled.tr`\r\n cursor: pointer;\r\n &:hover td:not(.no-background){\r\n background-color: ${colors.lightGray3}\r\n }\r\n`;\r\n\r\nconst TableRowWithClick = ({children, row, callback}) => {\r\n const handleClick = () => {\r\n callback(row);\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport {\r\n WhiteTable,\r\n BorderTable,\r\n WhiteTableWithLastToRight,\r\n TableStatus,\r\n TableRowWithClick,\r\n TableRow\r\n};\r\n","import React from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport styled from \"styled-components\";\r\nimport { breakPoints } from \"../../constants/styling-constants\";\r\n\r\n\r\nconst Title = styled.div`\r\n font-size: 20px\r\n font-weight: 600;\r\n`\r\n\r\nconst LargeModal = styled(Modal)`\r\n .modal-dialog {\r\n width: 60%;\r\n }\r\n z-index: 99999;\r\n\r\n @media (max-width: ${breakPoints.sm}px) {\r\n .modal-dialog {\r\n width: 100%;\r\n max-width: 360px;\r\n }\r\n`;\r\n\r\nconst PopUpModal = ({\r\n show,\r\n handleHide,\r\n title,\r\n titleSize,\r\n backdrop,\r\n handleConfirm,\r\n handleNext,\r\n handleCancel,\r\n children,\r\n bgColor = \"#ffffff\"\r\n}) => (\r\n \r\n \r\n {title}\r\n \r\n {children}\r\n \r\n);\r\n\r\nexport default PopUpModal;\r\n","import React, { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport styled from \"styled-components\";\r\n\r\nconst Wrapper = styled.div`\r\n margin-bottom: 75px;\r\n`;\r\n\r\nconst BarWrapper = styled.div`\r\n margin: 0 50px;\r\n position: relative;\r\n z-index: 1;\r\n`;\r\n\r\nconst BottomBar = styled.div`\r\n height: 15px;\r\n background-color: ${props => props.bg}\r\n`;\r\n\r\nconst TopBar = styled.div`\r\n height: 15px;\r\n top: 0;\r\n position: absolute;\r\n background-color: ${props => props.bg};\r\n width: 25%;\r\n transition: all 0.5s ease;\r\n`;\r\n\r\nconst Steps = styled.div`\r\n display: flex;\r\n position: relative;\r\n z-index: 2;\r\n justify-content: space-between;\r\n align-items: top;\r\n margin-top: -29px;\r\n`;\r\n\r\nconst StepWrapper = styled.div`\r\n width: 100px;\r\n text-align: center;\r\n display: inline-block;\r\n cursor: pointer;\r\n .step-number {\r\n display: inline-block;\r\n text-align: center;\r\n border: 5px solid ${props => props.borderColor};\r\n background-color: ${props => props.backgroundColor};\r\n border-radius: 100%;\r\n width: 45px;\r\n height: 45px;\r\n line-height: 35px;\r\n color: ${props => props.color};\r\n font-weight: bold;\r\n margin-bottom 13px;\r\n transition: all 0.3s ease;\r\n }\r\n .step-text {\r\n display: block;\r\n font-size: 14px;\r\n transition: all 0.3s ease;\r\n }\r\n &.not-active {\r\n cursor: default;\r\n .step-number, .step-text {\r\n color: ${props => props.notActiveColor};\r\n border-color: ${props => props.notActiveBorder};\r\n }\r\n }\r\n`;\r\n\r\nconst Step = ({ step, currentStep, callback, borderColor, backgroundColor, color, notActiveColor, notActiveBorder }) => {\r\n const handleClick = () => {\r\n callback(step.step);\r\n };\r\n\r\n return (\r\n currentStep ? \"not-active\" : \"\")}\r\n onClick={step.step < currentStep ? handleClick : null}\r\n notActiveBorder={notActiveBorder}\r\n notActiveColor={notActiveColor}\r\n color={color}\r\n borderColor={borderColor}\r\n backgroundColor={backgroundColor}\r\n >\r\n {step.step + 1}\r\n {step.name}\r\n \r\n );\r\n};\r\n\r\nclass ProgressBar extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.renderStep = this.renderStep.bind(this);\r\n }\r\n\r\n getBarWidth() {\r\n if (this.props.currentStep === 0) {\r\n return 0;\r\n }\r\n\r\n return (this.props.currentStep / (this.props.states.length - 1)) * 100;\r\n }\r\n\r\n renderStep(step) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.props.states.map(this.renderStep)}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nProgressBar.propTypes = {\r\n states: PropTypes.array.isRequired,\r\n currentStep: PropTypes.number.isRequired,\r\n goToStep: PropTypes.func.isRequired,\r\n wrapperBorder: PropTypes.string.isRequired,\r\n wrapperBg: PropTypes.string.isRequired,\r\n stepColor: PropTypes.string.isRequired,\r\n stepNotActiveColor: PropTypes.string.isRequired,\r\n stepNotActiveBorder: PropTypes.string.isRequired,\r\n topBarBg: PropTypes.string.isRequired,\r\n bottomBarBg: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default ProgressBar;\r\n","import React, { Fragment } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { colors } from \"../../constants/styling-constants\";\r\n\r\nconst StyledError = styled.div`\r\n display: flex;\r\n align-items: center;\r\n flex-direction: row;\r\n padding-bottom: 10px;\r\n .icon {\r\n border: 2px solid ${colors.pink};\r\n border-radius: 100%;\r\n height: 35px;\r\n flex-basis: 35px;\r\n flex-grow: 0;\r\n flex-shrink: 0;\r\n line-height: 35px;\r\n font-size: 18px;\r\n text-align: center;\r\n color: ${colors.pink};\r\n margin-right: 15px;\r\n }\r\n .text {\r\n \r\n }\r\n .icon, .text {\r\n display: inline-block;\r\n }\r\n`;\r\n\r\nconst GeneralError = ({ children }) => (\r\n \r\n !\r\n {children}\r\n \r\n);\r\n\r\nexport default GeneralError;\r\n","import React from 'react';\r\nimport styled from 'styled-components';\r\nimport { colors } from '../../constants/styling-constants';\r\n\r\nconst IconBase = styled.span`\r\n display: inline-block;\r\n width: 25px;\r\n height: 25px;\r\n line-height: 25px;\r\n border-radius: 100%;\r\n background-color: ${colors.pink};\r\n &.green {\r\n background-color: ${colors.green};\r\n }\r\n color: #FFF;\r\n font-size: 12px;\r\n`;\r\n\r\nconst CircleIcon = ({icon = \"fas fa-chevron-right\", className}) => ();\r\n\r\nconst GrayCircleIcon = styled(CircleIcon)`\r\n background-color: ${colors.gray};\r\n`;\r\n\r\nexport {\r\n CircleIcon,\r\n GrayCircleIcon\r\n};\r\n","import React, { Fragment } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { colors, buttonStyles } from \"../../constants/styling-constants\";\r\nimport { GrayCircleIcon } from \"../Icons/index\";\r\n\r\nconst commonStyles = {\r\n fontSize: \"18px\",\r\n color: \"#FFF\",\r\n padding: \"30px 70px\",\r\n borderRadius: \"5px\",\r\n};\r\n\r\nconst ButtonTemplate = ({ label, onClick, icon = null, busy = false, check = false, disabled = false, type = \"submit\", className, children, style }) => (\r\n \r\n {icon && !busy ? : null}\r\n {busy ? : null}\r\n {check ? : null}\r\n {children && !label ? children : {label}}\r\n \r\n);\r\n\r\nconst Button = styled(ButtonTemplate)`\r\n display: inline-block;\r\n margin-right: 55px;\r\n margin-bottom: 40px;\r\n font-size: ${buttonStyles.fontSize};\r\n color: ${buttonStyles.color};\r\n padding: 10px 21px;\r\n vertical-align: middle;\r\n background-color: ${colors.pink};\r\n background: linear-gradient(${colors.pink}, ${colors.pinkEndGradient});\r\n border-radius: ${buttonStyles.borderRadius};\r\n border: none;\r\n display: inline-block;\r\n outline: none;\r\n width: 196px;\r\n height: 80px;\r\n &:disabled {\r\n background: linear-gradient(${colors.mediumPink}, ${colors.mediumPink});\r\n &:hover {\r\n background: linear-gradient(${colors.mediumPink}, ${colors.mediumPink});\r\n }\r\n }\r\n i {\r\n margin-right: 8px;\r\n }\r\n // TODO: Add transition for hover effect\r\n &:hover {\r\n background: linear-gradient(${colors.darkPink}, ${colors.pinkEndGradient});\r\n }\r\n`;\r\n\r\nconst BigGreenButton = styled(Button)`\r\n background: ${colors.green};\r\n background: linear-gradient(${colors.green}, ${colors.greenEndGradient});\r\n &:hover {\r\n background: linear-gradient(${colors.darkGreen}, ${colors.greenEndGradient});\r\n }\r\n &:disabled {\r\n background: linear-gradient(${colors.lighterGreen}, ${colors.lighterGreen});\r\n &:hover {\r\n background: linear-gradient(${colors.lighterGreen}, ${colors.lighterGreen});\r\n }\r\n }\r\n`;\r\n\r\nconst BigGrayButton = styled(Button)`\r\n background: ${colors.gray};\r\n background: linear-gradient(${colors.grayStartGradient}, ${colors.gray});\r\n &:hover {\r\n background: linear-gradient(${colors.gray}, ${colors.gray});\r\n }\r\n &:disabled {\r\n background: linear-gradient(${colors.lightGray4}, ${colors.lightGray4});\r\n &:hover {\r\n background: linear-gradient(${colors.lightGray4}, ${colors.lightGray4});\r\n }\r\n }\r\n`;\r\n\r\nconst TableButton = styled(ButtonTemplate)`\r\n display: inline-block;\r\n color: #FFF;\r\n background-color: ${colors.gray};\r\n background: linear-gradient(${colors.grayStartGradient}, ${colors.gray});\r\n border: ${colors.gray};\r\n outline: none;\r\n font-size: 12px;\r\n padding: 7px 13px;\r\n // TODO: Add transition for hover effect\r\n &:hover {\r\n background: linear-gradient(${colors.gray}, ${colors.gray});\r\n }\r\n`;\r\n\r\nconst StyledToggleButton = styled.button`\r\n display: inline-block;\r\n background-color: transparent;\r\n padding: 0;\r\n outline: none;\r\n border: none;\r\n margin: 25px 0;\r\n span:first-child {\r\n margin-right 13px;\r\n }\r\n`;\r\n\r\nconst ToggleButton = ({ label, callback, icon }) => (\r\n \r\n \r\n\r\n {label}\r\n \r\n);\r\n\r\nconst SmallGrayButton = styled(ButtonTemplate)`\r\n font-size: 14px;\r\n color: ${commonStyles.color};\r\n border-color: transparent;\r\n border: none;\r\n padding: 6px 20px;\r\n vertical-align: middle;\r\n background-color: ${colors.gray};\r\n background: linear-gradient(${colors.grayStartGradient}, ${colors.gray});\r\n border-radius: ${commonStyles.borderRadius};\r\n display: inline-block;\r\n margin-top: 20px;\r\n margin-right: 20px;\r\n text-align: center;\r\n outline: none;\r\n height: 40px;\r\n width: 196px;\r\n &.sendReminder {\r\n margin-top: 0px;\r\n margin-right: -15px;\r\n }\r\n &.submit {\r\n margin-top: 0px;\r\n margin-right: 0px;\r\n }\r\n &.rightPos {\r\n float: right;\r\n }\r\n i {\r\n margin-right: 8px;\r\n }\r\n // TODO: Add transition for hover effect\r\n &:hover {\r\n background: linear-gradient(${colors.gray}, ${colors.gray});\r\n }\r\n &:disabled {\r\n background: linear-gradient(${colors.lightGray4}, ${colors.lightGray4});\r\n &:hover {\r\n background: linear-gradient(${colors.lightGray4}, ${colors.lightGray4});\r\n }\r\n }\r\n`;\r\n\r\nconst SmallPinkButton = styled(SmallGrayButton)`\r\n background-color: ${colors.pink};\r\n background: linear-gradient(${colors.pink}, ${colors.pinkEndGradient});\r\n border: none;\r\n &:disabled {\r\n background: linear-gradient(${colors.mediumPink}, ${colors.mediumPink});\r\n &:hover {\r\n background: linear-gradient(${colors.mediumPink}, ${colors.mediumPink});\r\n }\r\n }\r\n // TODO: Add transition for hover effect\r\n &:hover {\r\n background: linear-gradient(${colors.darkPink}, ${colors.pinkEndGradient});\r\n }\r\n &.sendInvitation {\r\n margin-top: 0px;\r\n margin-left: -15px;\r\n margin-right: 0px;\r\n }\r\n`;\r\n\r\nconst SmallGreenButton = styled(SmallGrayButton)`\r\n background-color: ${colors.green};\r\n background: linear-gradient(${colors.green}, ${colors.greenEndGradient});\r\n border: none;\r\n &:disabled {\r\n background: linear-gradient(${colors.lighterGreen}, ${colors.lighterGreen});\r\n &:hover {\r\n background: linear-gradient(${colors.lighterGreen}, ${colors.lighterGreen});\r\n }\r\n }\r\n // TODO: Add transition for hover effect\r\n &:hover {\r\n background: linear-gradient(${colors.darkGreen}, ${colors.greenEndGradient});\r\n }\r\n`;\r\n\r\nconst MediumGrayButton = SmallGrayButton.extend`\r\n padding: 0;\r\n font-size: 16px;\r\n height: 40px;\r\n width: 196px;\r\n border: none;\r\n`;\r\n\r\nconst MediumPinkButton = Button.extend`\r\n padding: 0;\r\n font-size: 16px;\r\n height: 40px;\r\n width: 196px;\r\n`;\r\n\r\nconst MediumButton = MediumGrayButton.extend`\r\n background-color: ${props => props.bgColor};\r\n background: linear-gradient(${props => props.startGradientColor}, ${props => props.endGradientColor});\r\n &:hover {\r\n background: linear-gradient(${props => props.hoverStartGradientColor}, ${props => props.hoverEndGradientColor});\r\n }\r\n`;\r\n\r\nconst DeleteButtonTemplate = ({ onClick, className, type = \"button\" }) =>\r\n // TODO: Change to light version in FontAwesome Pro\r\n (\r\n \r\n \r\n \r\n )\r\n;\r\n\r\nconst DeleteButton = styled(DeleteButtonTemplate)`\r\n font-size: 20px;\r\n border: none;\r\n background-color: transparent;\r\n color: ${colors.gray};\r\n display: inline-block;\r\n padding: 0;\r\n text-align: center;\r\n outline: none;\r\n &.hidden2 {\r\n visibility: hidden;\r\n }\r\n`;\r\n\r\nconst TransparentButton = styled.button`\r\n border: none;\r\n margin: 0;\r\n padding: 0;\r\n background: none;\r\n`;\r\n\r\nconst removeMargin = component => styled(component)` margin: 0; `;\r\n\r\nexport {\r\n Button,\r\n SmallGrayButton,\r\n SmallPinkButton,\r\n SmallGreenButton,\r\n TableButton,\r\n MediumButton,\r\n ToggleButton,\r\n BigGrayButton,\r\n BigGreenButton,\r\n DeleteButton,\r\n MediumGrayButton,\r\n MediumPinkButton,\r\n removeMargin,\r\n TransparentButton\r\n};\r\n","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n confirmDeleteTitle: {\r\n id: 'message.confirm-delete.title',\r\n },\r\n confirmDeleteButton: {\r\n id: 'message.confirm-delete-button',\r\n },\r\n cancelDeleteButton: {\r\n id: 'message.cancel-delete-button',\r\n },\r\n});\r\n","import React from 'react';\r\nimport { Modal } from 'react-bootstrap/lib';\r\nimport { MediumGrayButton, SmallPinkButton, SmallGreenButton } from '../Buttons';\r\nimport { H2, P } from '../index';\r\nimport styled from 'styled-components';\r\nimport { colors } from '../../constants/styling-constants';\r\nimport messages from './messages';\r\nimport { FormattedMessage, injectIntl } from 'react-intl';\r\nimport { breakPoints } from \"../../constants/styling-constants\";\r\n\r\n\r\nexport const ModalWrapper = styled(Modal)`\r\n .modal-dialog {\r\n max-width: 530px;\r\n }\r\n .modal-content {\r\n border-radius: 0;\r\n padding: 30px;\r\n }\r\n z-index: 999999\r\n \r\n @media (max-width: ${breakPoints.sm}px) {\r\n .modal-dialog {\r\n max-width: 360px;\r\n }\r\n`;\r\n\r\nexport const Content = styled.section`\r\n text-align: center;\r\n padding: 0 15px;\r\n i {\r\n color: ${colors.pink};\r\n margin-bottom: 25px;\r\n }\r\n`;\r\n\r\nexport const Footer = styled.footer`\r\n display: flex;\r\n justify-content: space-between;\r\n padding: 0 15px;\r\n`;\r\n\r\nconst renderConfirmButton = (theme, label, busy, handleConfirm) => {\r\n switch(theme) {\r\n case 'pink':\r\n return ;\r\n case 'green':\r\n return ;\r\n case 'gray':\r\n return ;\r\n default:\r\n return ;\r\n }\r\n};\r\n\r\n// TODO: Change to slim version of icon in FontAwesome Pro\r\n// - add this when we add other types of icons to confirmations modals\r\nconst ConfirmationModal = (\r\n {\r\n show,\r\n handleHide,\r\n label = ,\r\n handleConfirm,\r\n icon = 'fa-times-circle',\r\n title = ,\r\n buttonText = ,\r\n text = '',\r\n busy = false,\r\n theme = 'gray',\r\n bgColor = colors.gray,\r\n startGradientColor = colors.grayStartGradient,\r\n endGradientColor = colors.gray,\r\n hoverStartGradientColor = colors.gray,\r\n hoverEndGradientColor = colors.gray,\r\n children\r\n }) => (\r\n \r\n \r\n \r\n

{title}

\r\n

{text}

\r\n {children}\r\n
\r\n
\r\n \r\n {renderConfirmButton(theme, buttonText, busy, handleConfirm)}\r\n
\r\n
\r\n
\r\n);\r\n\r\nexport default injectIntl(ConfirmationModal);\r\n","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n contactForm: {\r\n title: {\r\n id: 'contact-form.title',\r\n },\r\n contact: {\r\n id: 'contact-form.contact',\r\n },\r\n addContactButton: {\r\n id: 'contact-form.add-contact-button',\r\n },\r\n contactList: {\r\n name: {\r\n id: 'contact-form.contact-list.name',\r\n },\r\n email: {\r\n id: 'contact-form.contact-list.email',\r\n },\r\n phone: {\r\n id: 'contact-form.contact-list.phone',\r\n }\r\n },\r\n deleteText: {\r\n id: 'contact-form.delete-text',\r\n },\r\n contactEmptyMessage: {\r\n id: 'contact-form.contact-empty-message',\r\n },\r\n contactExistMessage: {\r\n id: 'contact-form.contact-exists-message',\r\n }\r\n },\r\n\r\n addUserForm: {\r\n title: {\r\n id: 'add-user-form.title',\r\n },\r\n info: {\r\n id: 'add-user-form.info-text',\r\n },\r\n form: {\r\n email: {\r\n id: 'add-user-form.form.email',\r\n },\r\n firstName: {\r\n id: 'add-user-form.form.first-name',\r\n },\r\n lastName: {\r\n id: 'add-user-form.form.last-name',\r\n },\r\n countryCode: {\r\n id: 'add-user-form.form.country-code',\r\n },\r\n phoneNumber: {\r\n id: 'add-user-form.form.phone-number',\r\n },\r\n },\r\n cancelButton: {\r\n id: 'add-user-form.cancel-button',\r\n },\r\n confirmButton: {\r\n id: 'add-user-form.confirm-button',\r\n },\r\n error: {\r\n id: 'add-user-form.error',\r\n }\r\n }\r\n});\r\n","/*\r\n * User for checking if user exist when adding contact persons\r\n */\r\n\r\nexport const GET_USER_BY_EMAIL = 'GET_USER_BY_EMAIL';\r\nexport const GET_USER_BY_EMAIL_SUCCESS = 'GET_USER_BY_EMAIL_SUCCESS';\r\nexport const GET_USER_BY_EMAIL_FAILED = 'GET_USER_BY_EMAIL_FAILED';\r\nexport const RESET_USER = 'RESET_USER';\r\nexport const CREATE_USER = 'CREATE_USER';\r\nexport const CREATE_USER_SUCCESS = 'CREATE_USER_SUCCESS';\r\nexport const CREATE_USER_FAILED = 'CREATE_USER_FAILED';\r\n\r\nexport const status = {\r\n INIT: 'INIT',\r\n FETCHING: 'FETCHING',\r\n FETCHED: 'FETCHED',\r\n FAILED: 'FAILED',\r\n SUBMITTING: 'SUBMITTNG',\r\n SUBMIT_SUCCESS: 'SUBMIT_SUCCESS',\r\n SUBMIT_FAILED: 'SUBMIT_FAILED',\r\n};\r\n\r\nexport function getUserByEmail (data) {\r\n return {\r\n type: GET_USER_BY_EMAIL,\r\n payload: data,\r\n };\r\n}\r\n\r\nexport function resetUser () {\r\n return {\r\n type: RESET_USER,\r\n };\r\n}\r\n\r\nexport function createUser (data) {\r\n return {\r\n type: CREATE_USER,\r\n payload: data,\r\n }\r\n}\r\n\r\nconst initialState = {\r\n status: status.INIT,\r\n user: null,\r\n error: null,\r\n newUser: null,\r\n newUserStatus: status.INIT,\r\n newUserError: null,\r\n};\r\n\r\nexport default function user(state = initialState, action) {\r\n\r\n if (!action) {\r\n return state;\r\n }\r\n\r\n switch (action.type) {\r\n case GET_USER_BY_EMAIL:\r\n return Object.assign({}, state, {status: status.FETCHING});\r\n case GET_USER_BY_EMAIL_SUCCESS:\r\n return Object.assign({}, state, {status: status.FETCHED, user: action.payload});\r\n case GET_USER_BY_EMAIL_FAILED:\r\n return Object.assign({}, state, {status: status.FAILED, user: null, error: action.payload});\r\n case RESET_USER:\r\n return Object.assign({}, initialState);\r\n case CREATE_USER:\r\n return Object.assign({}, state, {newUserStatus: status.SUBMITTING});\r\n case CREATE_USER_SUCCESS:\r\n return Object.assign({}, state, {newUserStatus: status.SUBMIT_SUCCESS, newUser: action.payload});\r\n case CREATE_USER_FAILED:\r\n return Object.assign({}, state, {newUserStatus: status.SUBMIT_FAILED, newUser: null, newUserError: action.payload});\r\n default:\r\n return state;\r\n }\r\n}","\r\nexport const required = (value) => {\r\n const errorString = 'Du måste fylla i fältet';\r\n if (Array.isArray(value)) {\r\n return value.length > 0 ? undefined : errorString;\r\n } \r\n return value ? undefined : errorString;\r\n};\r\n\r\nexport const password = (password) => {\r\n const errorString = 'Lösenordet uppfyller inte kraven';\r\n\r\n const numberRegEx = /[0-9]/g;\r\n const upperCase = /^(?=.*[A-Z])/;\r\n const lowerCase = /^(?=.*[a-z])/;\r\n\r\n return password.match(numberRegEx) && password.match(upperCase) && password.match(lowerCase) && password.length >= 8 ? undefined : errorString;\r\n}\r\n\r\nconst minNumber = min => value =>\r\n (value && value < min ? `Värdet måste vara minst ${min}` : undefined);\r\n\r\nexport const integer = (value) => {\r\n if(!isInt(value)) {\r\n return 'Värdet måste vara ett heltal';\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\nfunction isInt(value) {\r\n /*eslint-disable */\r\n return !isNaN(value) &&\r\n parseInt(Number(value), 10) == value &&\r\n !isNaN(parseInt(value, 10));\r\n /*eslint-enable */\r\n}\r\n\r\nexport const positiveNumbers = minNumber(0);\r\nexport const zeroOrHigher = minNumber(-1);\r\n\r\nconst maxLength = max => value =>\r\n (value && value.length > max ? `Värdet får vara max ${max} tecken långt` : undefined);\r\n\r\nexport const maxLength250 = maxLength(250);\r\n\r\nconst minLength = min => value =>\r\n (value && value.length < min ? `Must be ${min} characters or more` : undefined);\r\n\r\nexport const minLength3 = minLength(3);\r\n\r\nexport const unique = (definitions, message) => value => (definitions && definitions.find(s => s.name === value) ? `${message}` : undefined);\r\n\r\nexport const email = (email) => {\r\n const re = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n return re.test(String(email).toLowerCase()) ? undefined : 'Du måste fylla i en e-postadress';\r\n};\r\n\r\nexport const onlyNumbers = (value) => {\r\n const reg = /^[\\+]?\\d+$/;\r\n return reg.test(value) ? undefined : 'Telefonumret får endast innehålla siffor'\r\n};\r\n\r\nexport const atLeastOneArrayElement = label => values => {\r\n return values && values.length > 0 ? undefined : label;\r\n};\r\n\r\nexport const organizerNumber = (value) => {\r\n const reg = /^((\\d{6}[-]\\d{4})|(\\d{10})|(\\d{12})|(\\d{8}[-]\\d{4}))$/;\r\n return value.match(reg) ? undefined : 'Organisationsnummer uppfyller inte kraven'\r\n};\r\n\r\n// Max in MB and file.size in bytes\r\nexport const validateFileArraySize = max => (files) => {\r\n if (files && Array.isArray(files)) {\r\n const totalFileSize = files.reduce((currentValue, f) => {\r\n return f ? f.size + currentValue : 0 + currentValue;\r\n }, 0);\r\n\r\n const totalMb = totalFileSize / 1024 / 1024;\r\n\r\n return totalMb > max ? 'error' : undefined;\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nexport const afterTodaysDate = value => {\r\n return new Date(value) >= new Date() ? undefined : 'Datumet måste vara i framtiden'\r\n}\r\n\r\nexport const afterSetDate = value => date => {\r\n return new Date(value) >= new Date(date) ? undefined : 'Datumet får inte vara innan' + new Date(date)\r\n}\r\n","export const countryCodes = [\r\n '+46',\r\n '+1',\r\n '+44',\r\n];\r\n","import React, { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport {\r\n Input,\r\n FormGroup,\r\n GeneralError,\r\n H2,\r\n P,\r\n Select,\r\n} from \"../../index\";\r\nimport { ModalWrapper, Content, Footer } from \"../../ConfirmationModal/index\";\r\nimport { Modal } from \"react-bootstrap/lib\";\r\nimport { MediumGrayButton } from \"../../Buttons/index\";\r\nimport messages from \"../messages\";\r\nimport { Field, reduxForm, formValueSelector } from \"redux-form\";\r\nimport { required, minLength3, email, onlyNumbers } from \"../../../validators/index\";\r\nimport styled from \"styled-components\";\r\nimport { connect } from \"react-redux\"\r\nimport { status } from \"../../../containers/User/reducer\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport { countryCodes } from \"../../../constants/country-codes\";\r\n\r\nconst ButtonNoMarginRight = styled(MediumGrayButton)`\r\n margin-right: 0px;\r\n`;\r\n\r\nclass AddUserForm extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetUser();\r\n }\r\n\r\n /**\r\n * Custom handling of form values since this form will also submit parent form if we use normal redux-form way.\r\n */\r\n handleSubmit() {\r\n this.props.touch(\"email\", \"firstName\", \"lastName\", \"countryCode\", \"phoneNumber\");\r\n\r\n if (this.props.valid) {\r\n const user = {\r\n email: this.props.email,\r\n firstName: this.props.firstName,\r\n lastName: this.props.lastName,\r\n phoneNumber: this.props.countryCode + this.props.phoneNumber,\r\n type: this.props.type,\r\n };\r\n this.props.createUser(user);\r\n }\r\n }\r\n\r\n renderError() {\r\n if (this.props.newUserError) {\r\n return (\r\n {this.props.intl.formatMessage(messages.addUserForm.error)}\r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n renderForm() {\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 render() {\r\n const { show, intl } = this.props;\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n

{intl.formatMessage(messages.addUserForm.title)}

\r\n

{intl.formatMessage(messages.addUserForm.info)}

\r\n {this.renderForm()}\r\n {this.renderError()}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n );\r\n }\r\n\r\n}\r\n\r\nAddUserForm.propTypes = {\r\n show: PropTypes.bool,\r\n hide: PropTypes.func.isRequired,\r\n intl: PropTypes.object.isRequired,\r\n};\r\n\r\nAddUserForm = reduxForm({\r\n form: \"add-user-form\",\r\n})(AddUserForm);\r\n\r\nconst selector = formValueSelector(\"add-user-form\"); // <-- same as form name\r\n\r\nAddUserForm = connect(\r\n (state, ownProps) => {\r\n const firstName = selector(state, \"firstName\");\r\n const email = selector(state, \"email\") || ownProps.newEmail;\r\n const lastName = selector(state, \"lastName\");\r\n const phoneNumber = selector(state, \"phoneNumber\");\r\n const countryCode = selector(state, \"countryCode\");\r\n\r\n return {\r\n firstName,\r\n email,\r\n lastName,\r\n phoneNumber,\r\n countryCode,\r\n initialValues: {\r\n email: ownProps.newEmail,\r\n }\r\n };\r\n }\r\n)(AddUserForm);\r\n\r\nexport default AddUserForm;\r\n","import { connect } from \"react-redux\";\r\nimport { createUser, resetUser } from \"../../../containers/User/reducer\";\r\nimport AddUserForm from \"./AddUserForm\";\r\n\r\nconst mapStateToProps = (state, ownProps) => ({\r\n event: ownProps.event,\r\n status: state.user.newUserStatus,\r\n user: state.user.newUser,\r\n newUserError: state.user.newUserError,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n createUser: data => dispatch(createUser(data)),\r\n resetUser: () => dispatch(resetUser()),\r\n});\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(AddUserForm);\r\n","import React, { Component, Fragment } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport { SmallGrayButton, DeleteButton } from \"../Buttons/index\";\r\nimport messages from \"./messages\";\r\nimport { status as userEmailStatus } from \"../../containers/User/reducer\";\r\nimport {\r\n FormSectionTitle,\r\n Input,\r\n FormGroup,\r\n GeneralError,\r\n ConfirmationModal,\r\n BorderTable,\r\n} from \"../index\";\r\nimport { FormattedMessage } from \"react-intl\";\r\nimport { Field, reduxForm } from \"redux-form\";\r\nimport styled from \"styled-components\";\r\nimport AddUserForm from \"./AddUserForm/index\";\r\nimport ReactDOM from \"react-dom\";\r\n\r\nconst Wrapper = styled.div`\r\n margin-bottom: 80px;\r\n`;\r\n\r\nconst DeleteRowButton = ({ row, callback }) => {\r\n const onClick = () => {\r\n callback(row);\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nclass ContactForm extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n showDeleteContactModal: false,\r\n deletingContactPerson: false,\r\n contactToDelete: null,\r\n newContactEmail: null,\r\n contactError: null,\r\n showAddUserModal: false,\r\n };\r\n\r\n this.onDeleteContact = this.onDeleteContact.bind(this);\r\n this.onConfirmDeleteContact = this.onConfirmDeleteContact.bind(this);\r\n this.renderContactsTableRow = this.renderContactsTableRow.bind(this);\r\n this.toggleModal = this.toggleModal.bind(this);\r\n this.onContactFieldChange = this.onContactFieldChange.bind(this);\r\n this.handleContactSubmit = this.handleContactSubmit.bind(this);\r\n this.toggleAddUserModal = this.toggleAddUserModal.bind(this);\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.userEmail.status === \"FETCHING\" && this.props.userEmail.status === \"FETCHED\") {\r\n this.updateListFromRequest(this.props.userEmail.user);\r\n }\r\n if (this.props.userEmail.status === userEmailStatus.FAILED && prevProps.userEmail.status !== userEmailStatus.FAILED) {\r\n this.toggleAddUserModal();\r\n }\r\n if (this.props.newUserStatus === userEmailStatus.SUBMIT_SUCCESS && prevProps.newUserStatus !== userEmailStatus.SUBMIT_SUCCESS) {\r\n this.updateListFromRequest(this.props.newUser);\r\n this.toggleAddUserModal();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetUser();\r\n }\r\n\r\n toggleAddUserModal() {\r\n this.setState({ showAddUserModal: !this.state.showAddUserModal });\r\n }\r\n\r\n updateListFromRequest(user) {\r\n const contactList = JSON.parse(JSON.stringify(this.props.contactList));\r\n\r\n contactList.push({\r\n email: user.email,\r\n name: `${user.firstName} ${user.lastName}`,\r\n phone: user.phone || user.phoneNumber,\r\n id: contactList.length\r\n });\r\n\r\n this.props.change(\"contactPerson\", \"\");\r\n\r\n this.props.updateContactList(contactList);\r\n }\r\n\r\n handleContactSubmit() {\r\n this.validateContact(this.props.contactList);\r\n }\r\n\r\n validateContact(contactList) {\r\n const listContainsSubmittedEmail = contactList.find(contact => contact.email === this.state.newContactEmail && !contact.toBeDeleted);\r\n\r\n if (!this.state.newContactEmail) {\r\n this.setState({\r\n contactError: ,\r\n });\r\n } else if (listContainsSubmittedEmail) {\r\n this.setState({\r\n contactError: ,\r\n });\r\n } else if (!this.state.emailInvalid) {\r\n this.setState({ contactError: null });\r\n this.props.getUserByEmail({ email: this.state.newContactEmail });\r\n }\r\n }\r\n\r\n toggleModal() {\r\n this.setState({\r\n showDeleteContactModal: !this.state.showDeleteContactModal,\r\n });\r\n }\r\n\r\n onDeleteContact(row) {\r\n this.setState({\r\n showDeleteContactModal: true,\r\n contactToDelete: row,\r\n });\r\n }\r\n\r\n onContactFieldChange(e, fieldValue) {\r\n this.setState({\r\n newContactEmail: fieldValue,\r\n emailInvalid: e.target.validity.typeMismatch,\r\n contactError: null,\r\n });\r\n }\r\n\r\n onConfirmDeleteContact() {\r\n const updatedContactList = this.props.contactList.slice();\r\n const indexToRemove = updatedContactList.indexOf(this.state.contactToDelete);\r\n\r\n updatedContactList.splice(indexToRemove, 1);\r\n updatedContactList.push(Object.assign({}, this.state.contactToDelete, { toBeDeleted: true }));\r\n\r\n this.setState({\r\n showDeleteContactModal: false,\r\n contactToDelete: null,\r\n deletingContactPerson: false,\r\n });\r\n\r\n this.props.updateContactList(updatedContactList);\r\n }\r\n\r\n renderContactsTableRow(row) {\r\n return (\r\n \r\n {row.name}\r\n {row.email.toLowerCase()}\r\n {row.phone}\r\n {!this.props.readonly && row.email !== this.props.user.email ? : null}\r\n \r\n );\r\n }\r\n\r\n renderContactList() {\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 {this.props.contactList.filter(c => !c.toBeDeleted).map(this.renderContactsTableRow)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n renderAddUserForm() {\r\n const el = document.getElementById(\"add-new-user\");\r\n\r\n if (this.state.showAddUserModal && el) {\r\n // Render AddUserForm in Portal to keep it away from parent redux form which causes conflicts\r\n return ReactDOM.createPortal(\r\n ,\r\n el,\r\n );\r\n }\r\n }\r\n\r\n render() {\r\n const { readonly, intl } = this.props;\r\n\r\n return (\r\n \r\n \r\n {!readonly ?\r\n \r\n \r\n {this.state.contactError}\r\n \r\n : null\r\n }\r\n {!readonly ?\r\n \r\n :\r\n null\r\n }\r\n {this.renderContactList()}\r\n {this.renderAddUserForm()}\r\n \r\n\r\n );\r\n }\r\n\r\n}\r\n\r\nContactForm.propTypes = {\r\n contactList: PropTypes.array.isRequired,\r\n updateContactList: PropTypes.func.isRequired,\r\n getUserByEmail: PropTypes.func.isRequired,\r\n resetUser: PropTypes.func.isRequired,\r\n readonly: PropTypes.bool,\r\n};\r\n\r\nconst ContactFormForm = reduxForm({\r\n form: \"contact-form\",\r\n})(ContactForm);\r\n\r\nexport default ContactFormForm;\r\n","import { connect } from \"react-redux\";\r\nimport ContactForm from \"./ContactForm\";\r\nimport { getUserByEmail, resetUser } from \"../../containers/User/reducer\";\r\n\r\nconst mapStateToProps = state => ({\r\n userEmail: state.user,\r\n user: state.auth.user,\r\n newUserStatus: state.user.newUserStatus,\r\n newUser: state.user.newUser,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n getUserByEmail: (data) => dispatch(getUserByEmail(data)),\r\n resetUser: () => dispatch(resetUser()),\r\n});\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(ContactForm);\r\n","import React, { Component } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport Error from \"./Error\";\r\nimport { SmallPinkButton, SmallGreenButton, MediumGrayButton, DeleteButton } from \"../Buttons/index\";\r\nimport { colors } from \"../../constants/styling-constants\";\r\nimport { TextLabel } from \"../index\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport { BorderTable } from \"../Tables/index\";\r\nimport messages from \"./messages\";\r\nimport { injectIntl } from \"react-intl\";\r\nimport { validateFileArraySize } from \"../../validators\";\r\n\r\nconst StyledFileUpload = styled.div`\r\n .upload-btn-wrapper {\r\n position: relative;\r\n overflow: hidden;\r\n display: inline-block;\r\n }\r\n \r\n .btn {\r\n border: 2px solid gray;\r\n color: gray;\r\n background-color: white;\r\n padding: 8px 20px;\r\n border-radius: 8px;\r\n font-size: 20px;\r\n font-weight: bold;\r\n }\r\n \r\n .upload-btn-wrapper input[type=file] {\r\n font-size: 100px;\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n opacity: 0;\r\n cursor: pointer;\r\n }\r\n &.has-error {\r\n margin-bottom: 5px;\r\n background-color: ${colors.lightPink2}\r\n &::placeholder {\r\n color: ${colors.pink};\r\n }\r\n }\r\n &.border {\r\n border: 1px solid ${colors.lightGray4};\r\n border-radius: 3px;\r\n }\r\n`;\r\n\r\nconst DeleteRowButton = ({ file, callback }) => {\r\n const onClick = () => {\r\n callback(file);\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst renderConfirmButton = (theme, label) => {\r\n switch (theme) {\r\n case \"pink\":\r\n return ;\r\n case \"green\":\r\n return ;\r\n default:\r\n return ;\r\n }\r\n};\r\n\r\nclass FileUpload extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n fileTooBig: false,\r\n };\r\n\r\n this.handleFileSelect = this.handleFileSelect.bind(this);\r\n this.handleFileRemove = this.handleFileRemove.bind(this);\r\n this.validateFileSize = validateFileArraySize(this.props.totalFileSize);\r\n }\r\n\r\n handleFileSelect(e) {\r\n const newFiles = this.props.files.splice(0);\r\n const file = e.target.files[0];\r\n const fileSizeMB = file.size / 1024 / 1024;\r\n\r\n if (fileSizeMB <= this.props.maxFileSize) {\r\n newFiles.push(e.target.files[0]);\r\n this.props.changeValue(this.props.input.name, newFiles);\r\n this.setState({ fileTooBig: false });\r\n } else {\r\n this.setState({ fileTooBig: true });\r\n }\r\n }\r\n\r\n handleFileRemove(file) {\r\n const updatedFiles = this.props.files.filter(f => f.name !== file.name && f.size !== file.size);\r\n this.props.changeValue(this.props.input.name, updatedFiles);\r\n }\r\n\r\n renderTotalFileSize() {\r\n if (this.validateFileSize(this.props.files)) {\r\n return ;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n render() {\r\n const {\r\n theme,\r\n input,\r\n placeholder,\r\n buttonText,\r\n readonly = false,\r\n files,\r\n } = this.props;\r\n\r\n if (readonly) {\r\n return (\r\n \r\n \r\n {placeholder}\r\n \r\n \r\n {files.map((f, index) => (\r\n \r\n {f.name}\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 {renderConfirmButton(theme, buttonText)}\r\n \r\n
\r\n {this.state.fileTooBig &&\r\n }\r\n \r\n \r\n {files.map((file, index) => (\r\n \r\n {file.name}\r\n {Math.round((file.size / 1024 / 1024) * 100) / 100} Mb\r\n \r\n \r\n ))}\r\n \r\n \r\n {this.renderTotalFileSize()}\r\n
\r\n );\r\n }\r\n}\r\n\r\nFileUpload.defaultProps = {\r\n theme: \"gray\",\r\n files: [],\r\n maxFileSize: 20, // In MB,\r\n totalFileSize: 20,// In MB,\r\n};\r\n\r\nexport default injectIntl(FileUpload);\r\n","import React from \"react\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport Menu from \"../Menu\";\r\nimport Logo from \"../Logo\";\r\nimport { FlexSpaceBetween, Container } from \"../index\";\r\nimport { Link } from \"react-router-dom\";\r\nimport styled from \"styled-components\";\r\nimport { headerHeight, breakPoints } from \"../../constants/styling-constants\";\r\n\r\nconst Wrapper = styled.header`\r\n position: sticky;\r\n z-index: 9999;\r\n top: 0;\r\n padding: 0;\r\n background-color: #fff;\r\n height: ${headerHeight}px;\r\n @media (max-width: ${breakPoints.sm}px) {\r\n padding-top: 15px;\r\n }\r\n`;\r\n\r\nconst LinkedLogo = styled(Link)``;\r\n\r\nconst Header = () => (\r\n \r\n \r\n \r\n \r\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 Header;\r\n","export const FETCH_CALENDAR_EVENTS = 'FETCH_CALENDAR_EVENTS';\r\nexport const FETCH_CALENDAR_EVENTS_SUCCESS = 'FETCH_CALENDAR_EVENTS_SUCCESS';\r\nexport const FETCH_CALENDAR_EVENTS_FAILED = 'FETCH_CALENDAR_EVENTS_FAILED';\r\n\r\nexport const fetchEvents = ({startDate, endDate}) => ({\r\n type: FETCH_CALENDAR_EVENTS,\r\n payload: {startDate, endDate},\r\n});\r\n\r\nexport const calendarStatus = {\r\n FETCHING: 'FETCHING',\r\n FETCHED: 'FETCHED',\r\n ERROR: 'ERROR',\r\n};\r\n\r\nconst initialState = {\r\n events: null,\r\n};\r\n\r\nexport default function EVENT(state = initialState, action) {\r\n if (!action) {\r\n return state;\r\n }\r\n\r\n switch (action.type) {\r\n case FETCH_CALENDAR_EVENTS:\r\n return Object.assign({}, state, {status: calendarStatus.FETCHING});\r\n case FETCH_CALENDAR_EVENTS_SUCCESS:\r\n return Object.assign({}, state, {status: calendarStatus.FETCHED, events: action.payload});\r\n case FETCH_CALENDAR_EVENTS_FAILED:\r\n return Object.assign({}, state, {status: calendarStatus.ERROR, events: [], error: action.payload});\r\n default:\r\n return state;\r\n }\r\n}\r\n","import React, { Fragment } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { colors, buttonStyles, breakPoints } from \"../../constants/styling-constants\";\r\nimport { Link, NavLink } from \"react-router-dom\";\r\nimport { HashLink } from \"react-router-hash-link\";\r\nimport { CircleIcon } from \"../Icons/index\";\r\n\r\n// TODO: Add Hover effects\r\n\r\nconst LinkButton = styled(Link)`\r\n font-size: ${buttonStyles.fontSize};\r\n color: ${buttonStyles.color};\r\n padding: ${buttonStyles.padding};\r\n background-color: ${colors.pink};\r\n background: linear-gradient(${colors.pink}, ${colors.pinkEndGradient});\r\n border-radius: ${buttonStyles.borderRadius};\r\n display: inline-block;\r\n text-align: center;\r\n &:hover, &:visited {\r\n color: ${buttonStyles.color};\r\n text-decoration: none;\r\n }\r\n // TODO: Not sure if these size changes should apply to all links or only on the start page\r\n @media (max-width: ${breakPoints.sm}px) {\r\n padding: 15px 25px;\r\n font-size 16px;\r\n }\r\n @media (max-width: ${breakPoints.xs}px) {\r\n padding: 12px 25px;\r\n font-size 14px;\r\n }\r\n`;\r\n\r\nconst GreenLinkButton = LinkButton.extend`\r\n background-color: ${colors.green};\r\n background: linear-gradient(${colors.green}, ${colors.greenEndGradient});\r\n margin-bottom: 20px;\r\n`;\r\n\r\nconst BigLinkButton = LinkButton.extend`\r\n width: 245px;\r\n margin-bottom: 20px;\r\n @media (max-width: ${breakPoints.sm}px) {\r\n width: 180px;\r\n }\r\n @media (max-width: ${breakPoints.xs}px) {\r\n width: 130px;\r\n }\r\n // padding-left: 80px;\r\n // padding-right: 80px;\r\n`;\r\n\r\nconst BigHashLinkButton = styled(HashLink)`\r\n font-size: ${buttonStyles.fontSize};\r\n color: ${buttonStyles.color};\r\n padding: ${buttonStyles.padding};\r\n background-color: ${colors.pink};\r\n background: linear-gradient(${colors.pink}, ${colors.pinkEndGradient});\r\n border-radius: ${buttonStyles.borderRadius};\r\n display: inline-block;\r\n text-align: center;\r\n width: 245px;\r\n margin-bottom: 20px;\r\n // TODO: Add transition for hover effect\r\n &:hover, &:visited {\r\n color: ${buttonStyles.color};\r\n text-decoration: none;\r\n background: linear-gradient(${colors.darkPink}, ${colors.pinkEndGradient});\r\n }\r\n // TODO: Not sure if these size changes should apply to all links or only on the start page\r\n @media (max-width: ${breakPoints.sm}px) {\r\n padding: 15px 25px;\r\n font-size 16px;\r\n width: 180px;\r\n }\r\n @media (max-width: ${breakPoints.xs}px) {\r\n padding: 12px 25px;\r\n font-size 14px;\r\n width: 130px;\r\n }\r\n`;\r\n\r\nconst BigGreenLinkButton = GreenLinkButton.extend`\r\n width: 245px;\r\n @media (max-width: ${breakPoints.sm}px) {\r\n width: 180px;\r\n }\r\n @media (max-width: ${breakPoints.xs}px) {\r\n width: 130px;\r\n }\r\n // padding-left: 80px;\r\n // padding-right: 80px;\r\n`;\r\n\r\nconst BigHashGreenLinkButton = BigHashLinkButton.extend` \r\n background-color: ${colors.green};\r\n background: linear-gradient(${colors.green}, ${colors.greenEndGradient});\r\n margin-bottom: 20px;\r\n width: 245px;\r\n // TODO: Add transition for hover effect\r\n &:hover {\r\n background: linear-gradient(${colors.darkGreen}, ${colors.greenEndGradient});\r\n }\r\n @media (max-width: ${breakPoints.sm}px) {\r\n width: 180px;\r\n }\r\n @media (max-width: ${breakPoints.xs}px) {\r\n width: 130px;\r\n }\r\n`;\r\n\r\nconst NavLinkButton = styled(NavLink)`\r\n font-size: 14px;\r\n padding: 12px 25px;\r\n background-color: transparent;\r\n border-radius: ${buttonStyles.borderRadius};\r\n display: inline-block;\r\n margin-top: 20px;\r\n border: 1px solid ${colors.pink};\r\n color: ${colors.pink};\r\n margin-right 15px;\r\n transition: all 0.1s ease;\r\n // TODO: Fix transition effect, not working at the moment? \r\n &:hover, &.active {\r\n background-color: ${colors.pink};\r\n background: linear-gradient(${colors.pink}, ${colors.pinkEndGradient});\r\n color: #FFF;\r\n text-decoration: none;\r\n }\r\n &:visited {\r\n text-decoration: none;\r\n }\r\n`;\r\n\r\nconst GreenNavLinkButton = NavLinkButton.extend`\r\n border-color: ${colors.green};\r\n color: ${colors.green};\r\n // TODO: Add transition for hover effect\r\n &:hover, &.active {\r\n background-color: ${colors.green};\r\n background: linear-gradient(${colors.green}, ${colors.greenEndGradient});\r\n color: #FFF;\r\n }\r\n`;\r\n\r\nconst CircleLinkButtonStyle = styled(Link)`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n width: 250px;\r\n height: 250px;\r\n text-align: center;\r\n border-radius: 100%;\r\n border: 20px solid ${colors.lightPink3};\r\n color: ${colors.lightPink3};\r\n font-size: 24px;\r\n font-weight: bold;\r\n line-height: 30px;\r\n //padding: 15px 20px 0;\r\n &:hover {\r\n color: ${colors.darkPink};\r\n text-decoration: none;\r\n }\r\n span:first-child {\r\n margin-bottom: 20px;\r\n }\r\n &.green {\r\n border-color: ${colors.green};\r\n color: ${colors.green};\r\n span:nth-child(2) {\r\n background-color: ${colors.green};\r\n }\r\n &:hover {\r\n color: ${colors.darkGreen};\r\n }\r\n }\r\n`;\r\n\r\nconst CircleLinkButton = ({ to, label, className }) => (\r\n \r\n {label}\r\n \r\n \r\n);\r\n\r\nconst SmallGrayLinkButton = styled(Link)`\r\n font-size: 14px;\r\n color: ${buttonStyles.color};\r\n padding: 12px 25px;\r\n background-color: ${colors.gray};\r\n background: linear-gradient(${colors.grayStartGradient}, ${colors.gray});\r\n border-radius: ${buttonStyles.borderRadius};\r\n display: inline-block;\r\n margin-top: 20px;\r\n text-align: center;\r\n outline: none;\r\n // TODO: Add transition for hover effect\r\n &:hover { \r\n color: ${buttonStyles.color}; \r\n background: linear-gradient(${colors.gray}, ${colors.gray});\r\n text-decoration: none;\r\n }\r\n`;\r\n\r\n\r\nconst WhiteLink = styled(Link)`\r\n color: #FFF;\r\n &:hover, &:visited {\r\n color: #FFF;\r\n text-decoration: none;\r\n }\r\n`;\r\n\r\n\r\nexport {\r\n GreenLinkButton,\r\n LinkButton,\r\n BigLinkButton,\r\n BigGreenLinkButton,\r\n BigHashLinkButton,\r\n BigHashGreenLinkButton,\r\n NavLinkButton,\r\n GreenNavLinkButton,\r\n CircleLinkButton,\r\n SmallGrayLinkButton,\r\n WhiteLink\r\n};\r\n","import { defineMessages } from \"react-intl\";\r\n\r\nexport default defineMessages({\r\n slogan: {\r\n id: \"front-page.slogan\",\r\n },\r\n sloganLoggedIn: {\r\n id: \"front-page.slogan-logged-in\",\r\n },\r\n organizerButton: {\r\n id: \"front-page.organizer-button\",\r\n },\r\n volunteerButton: {\r\n id: \"front-page.volunteer-button\",\r\n },\r\n volunteerButtonLoggedIn: {\r\n id: \"front-page.volunteer-button-logged-in\",\r\n },\r\n currentEventsTitle: {\r\n id: \"front-page.current-events-title\",\r\n },\r\n InfoSection: {\r\n section1: {\r\n id: \"start-page.text-section-1\"\r\n },\r\n section2: {\r\n id: \"start-page.text-section-2\"\r\n },\r\n section3: {\r\n id: \"start-page.text-section-3\"\r\n },\r\n section4: {\r\n id: \"start-page.text-section-4\"\r\n },\r\n section5: {\r\n id: \"start-page.text-section-5\"\r\n },\r\n }\r\n});\r\n","import React, { Component, Fragment } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport img from \"../../images/hero.jpg\";\r\nimport { Grid } from \"react-bootstrap/lib\";\r\nimport { BigHashLinkButton, BigHashGreenLinkButton } from \"../../components/Links\";\r\nimport { breakPoints } from \"../../constants/styling-constants\";\r\nimport messages from \"./messages\";\r\nimport { FormattedMessage } from \"react-intl\";\r\nimport { ImageBackground } from \"../../components\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nconst maxWidth = \"900px\";\r\n\r\nconst Background = styled.section`\r\n height: 900px;\r\n background-image: url(${img});\r\n background-size: cover;\r\n @media (max-width: ${breakPoints.sm}px) {\r\n height: 700px;\r\n }\r\n @media (max-width: ${breakPoints.xs}px) {\r\n font-size: 40px;\r\n height: 484px;\r\n }\r\n`;\r\n\r\nconst BackgroundLogged = ImageBackground.extend`\r\n background-image: url(${img});\r\n`;\r\n\r\nconst Wrapper = styled(Grid)`\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n height: 100%;\r\n position: relative;\r\n`;\r\n\r\nconst Slogan = styled.h1`\r\n font-family: 'Pacifico', cursive;\r\n color: #FFF;\r\n font-size: 90px;\r\n text-align: center;\r\n max-width: ${maxWidth};\r\n margin: 0 auto;\r\n position: relative;\r\n @media (max-width: ${breakPoints.sm}px) {\r\n font-size: 70px;\r\n }\r\n @media (max-width: ${breakPoints.xs}px) {\r\n font-size: 45px;\r\n }\r\n`;\r\n\r\nconst SloganLogged = styled.h1`\r\n font-family: 'Pacifico', cursive;\r\n color: #FFF;\r\n font-size: 50px;\r\n line-height: 80px;\r\n text-align: center;\r\n max-width: ${maxWidth};\r\n margin: 0 auto;\r\n position: relative;\r\n @media (max-width: ${breakPoints.sm}px) {\r\n font-size: 70px;\r\n }\r\n @media (max-width: ${breakPoints.xs}px) {\r\n font-size: 45px;\r\n }\r\n`;\r\n\r\nconst ButtonWrapper = styled.div`\r\n position: absolute;\r\n max-width: ${maxWidth};\r\n width: 100%;\r\n max-width: 630px;\r\n bottom: 115px;\r\n display: flex;\r\n flex-wrap: wrap;\r\n justify-content: space-around;\r\n @media (max-width: ${breakPoints.sm}px) {\r\n max-width: 460px;\r\n }\r\n @media (max-width: ${breakPoints.xs}px) {\r\n bottom: 30px;\r\n max-width: 400px;\r\n }\r\n`;\r\n\r\nconst ButtonWrapperLogged = styled.div`\r\n position: absolute;\r\n max-width: ${maxWidth};\r\n width: 100%;\r\n max-width: 630px;\r\n bottom: 15px;\r\n display: flex;\r\n flex-wrap: wrap;\r\n justify-content: space-around;\r\n @media (max-width: ${breakPoints.sm}px) {\r\n max-width: 460px;\r\n }\r\n @media (max-width: ${breakPoints.xs}px) {\r\n bottom: 30px;\r\n max-width: 400px;\r\n }\r\n`;\r\n\r\nclass Hero extends Component {\r\n render() {\r\n const { name, loggedUser } = this.props;\r\n return (\r\n \r\n {loggedUser ?\r\n \r\n \r\n , {name}!\r\n \r\n \r\n \r\n \r\n \r\n \r\n :\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n );\r\n }\r\n}\r\n\r\nHero.propTypes = {\r\n name: PropTypes.string.isRequired,\r\n loggedUser: PropTypes.string,\r\n};\r\n\r\nexport default Hero;\r\n","import React from 'react';\r\nimport { Row, Col } from 'react-bootstrap/lib';\r\nimport {\r\n ContentWrapper,\r\n Container,\r\n H3,\r\n} from '../../components/index';\r\nimport messages from './messages';\r\nimport { FormattedMessage, injectIntl } from 'react-intl';\r\n\r\nconst InfoSection = () => (\r\n \r\n \r\n \r\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 injectIntl(InfoSection);\r\n","import { connect } from \"react-redux\";\r\nimport { fetchEvents } from \"./reducer\";\r\nimport React, { Component, Fragment } from \"react\";\r\nimport Hero from \"./Hero\";\r\nimport InfoSection from \"./InfoSection\";\r\nimport { Auth } from \"aws-amplify\";\r\nimport { status } from \"../../auth/reducer\";\r\n\r\nclass Start extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n\tname: \"\",\r\n\tb: true\r\n }\r\n this.buttonpress = this.buttonpress.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.auth.status === status.LOGGED_IN || this.props.auth.status === status.PENDING) {\r\n Auth.currentSession()\r\n .then(async (session) => {\r\n let info = await Auth.currentUserInfo();\r\n this.setState({\r\n loggedUser: session.idToken.jwtToken,\r\n name: info.attributes.given_name,\r\n });\r\n });\r\n }\r\n }\r\n\r\n buttonpress() {\r\n\t this.setState({b: !this.state.b})\r\n }\r\n\r\n render() {\r\n const { loggedUser, name } = this.state;\r\n return (\r\n \r\n \r\n {loggedUser ? null : }\r\n\r\n\t\r\n )\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n fetchEvents: data => dispatch(fetchEvents(data)),\r\n});\r\n\r\nconst mapStateToProps = (state) => ({\r\n auth: state.auth,\r\n events: state.start.events,\r\n});\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(Start);\r\n\r\n","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n title: {\r\n id: 'how-it-works-volunteer.header.title',\r\n },\r\n pageIntro: {\r\n id: 'how-it-works-volunteer.page-into-text',\r\n },\r\n firstSection: {\r\n title1: {\r\n id: 'how-it-works.section-1.title-1',\r\n },\r\n title2: {\r\n id: 'how-it-works.section-1.title-2',\r\n },\r\n text: {\r\n id: 'how-it-works.section-1.paragraph-1',\r\n },\r\n },\r\n secondSection: {\r\n title: {\r\n id: 'how-it-works.section-2.title-1',\r\n },\r\n text: {\r\n firstParagraph: {\r\n id: 'how-it-works.section-2.paragraph-1',\r\n },\r\n secondParagraph: {\r\n id: 'how-it-works.section-2.paragraph-2',\r\n },\r\n thirdParagraph: {\r\n id: 'how-it-works.section-2.paragraph-3',\r\n },\r\n },\r\n list: {\r\n element1: {\r\n id: 'how-it-works.section-2.list-element-1',\r\n },\r\n element2: {\r\n id: 'how-it-works.section-2.list-element-2',\r\n },\r\n element3: {\r\n id: 'how-it-works.section-2.list-element-3',\r\n },\r\n element4: {\r\n id: 'how-it-works.section-2.list-element-4',\r\n },\r\n element5: {\r\n id: 'how-it-works.section-2.list-element-5',\r\n },\r\n },\r\n },\r\n thirdSection: {\r\n title: {\r\n id: 'how-it-works.section-3.title-1',\r\n },\r\n text: {\r\n id: 'how-it-works.section-3.paragraph-1',\r\n },\r\n list: {\r\n element1: {\r\n id: 'how-it-works.section-3.list-element-1',\r\n },\r\n element2: {\r\n id: 'how-it-works.section-3.list-element-2',\r\n },\r\n element3: {\r\n id: 'how-it-works.section-3.list-element-3',\r\n },\r\n element4: {\r\n id: 'how-it-works.section-3.list-element-4',\r\n },\r\n element5: {\r\n id: 'how-it-works.section-3.list-element-5',\r\n },\r\n },\r\n },\r\n registerButton: {\r\n id: 'how-it-works-volunteer.button-text',\r\n },\r\n});\r\n","import React, { Component, Fragment } from \"react\";\r\nimport {\r\n ContentWrapper,\r\n Container,\r\n WhiteH1,\r\n H2,\r\n H3,\r\n P,\r\n TextSection,\r\n ImageBackground\r\n} from \"../../components/index\";\r\nimport { GreenLinkButton } from \"../../components/Links/index\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport img from \"../../images/Volex_bild_undersida2.jpg\";\r\nimport messages from \"./messages\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\nimport styled from \"styled-components\";\r\n\r\nconst StyledList = styled.ul`\r\n list-style: circle;\r\n padding-left: 2em;\r\n line-height: 1.5;\r\n`;\r\n\r\nconst Background = ImageBackground.extend`\r\n background-image: url(${img});\r\n`;\r\n\r\nconst H3WithMarginBottom = styled(H3)`\r\n margin-bottom: 70px;\r\n`;\r\n\r\nclass HowItWorksVolunteer extends Component {\r\n\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\nfunction* generateSections(formatMessage) {\r\n for (let section = 1; true; section++) {\r\n const sectionTitleKey = `how-it-works-volunteer.section-${section}.title-1`;\r\n const title = formatMessage({ id: sectionTitleKey });\r\n if (sectionTitleKey === title) {\r\n return;\r\n }\r\n yield {\r\n id: section,\r\n titles: [...generateTitles(section, formatMessage)],\r\n listItems: [...generateListItems(section, formatMessage)],\r\n paragraphs: [...generateParagraphs(section, formatMessage)],\r\n };\r\n }\r\n}\r\n\r\nfunction* generateParagraphs(section, formatMessage) {\r\n for (let i = 1; true; i++) {\r\n const listElementCode = `how-it-works-volunteer.section-${section}.paragraph-${i}`;\r\n const paragraph = formatMessage({ id: listElementCode });\r\n if (listElementCode === paragraph) {\r\n return;\r\n }\r\n yield {\r\n id: `${section}-${i}`,\r\n label: paragraph\r\n };\r\n }\r\n}\r\n\r\nfunction* generateTitles(section, formatMessage) {\r\n for (let i = 1; true; i++) {\r\n const listElementCode = `how-it-works-volunteer.section-${section}.title-${i}`;\r\n const title = formatMessage({ id: listElementCode });\r\n if (listElementCode === title) {\r\n return;\r\n }\r\n yield {\r\n id: `${section}-${i}`,\r\n label: title\r\n };\r\n }\r\n}\r\n\r\nfunction* generateListItems(section, formatMessage) {\r\n for (let i = 1; true; i++) {\r\n const listItemCode = `how-it-works-volunteer.section-${section}.list-element-${i}`;\r\n const item = formatMessage({ id: listItemCode });\r\n if (listItemCode === item) {\r\n return;\r\n }\r\n yield {\r\n id: `${section}-${i}`,\r\n label: item\r\n };\r\n }\r\n}\r\n\r\nconst Paragraph = ({ paragraph }) => (\r\n

\r\n {paragraph.label}\r\n

\r\n);\r\n\r\nconst Title = ({ title }) => (\r\n

\r\n {title.label}\r\n

\r\n);\r\n\r\nconst ListItem = ({ item }) => (\r\n
  • \r\n {item.label}\r\n
  • \r\n);\r\n\r\nconst ListItems = ({ items }) => {\r\n if (items.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {items.map(item => )}\r\n \r\n );\r\n};\r\n\r\nconst Section = ({ section }) => (\r\n \r\n {section.titles.map(paragraph => ())}\r\n {section.paragraphs.map(paragraph => ())}\r\n \r\n \r\n);\r\n\r\nconst HowItWorksGenerator = ({ sections }) => (\r\n \r\n {sections.map(section => ())}\r\n \r\n);\r\n\r\nexport default injectIntl(HowItWorksVolunteer);\r\n","import { connect } from 'react-redux';\r\nimport HowItWorksVolunteer from './HowItWorksVolunteer';\r\n\r\nconst mapStateToProps = state => ({\r\n auth: state.auth,\r\n});\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n)(HowItWorksVolunteer);","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n title: {\r\n id: 'how-it-works-organizer.header.title',\r\n },\r\n pageIntro: {\r\n id: 'how-it-works-organizer.page-into-text',\r\n },\r\n paymentTypes: {\r\n basicServicesTitle: {\r\n id: 'how-it-works-organizer.basic-services.title',\r\n },\r\n basicServicesPrice: {\r\n id: 'how-it-works-organizer.basic-services.price',\r\n },\r\n basicServicesText: {\r\n id: 'how-it-works-organizer.basic-services.text',\r\n },\r\n additionalServicesTitle: {\r\n id: 'how-it-works-organizer.additional-services.title',\r\n },\r\n additionalServicesText: {\r\n id: 'how-it-works-organizer.additional-services.text',\r\n }\r\n },\r\n firstSection: {\r\n title1: {\r\n id: 'how-it-works.section-1.title-1',\r\n },\r\n title2: {\r\n id: 'how-it-works.section-1.title-2',\r\n },\r\n text: {\r\n id: 'how-it-works.section-1.paragraph-1',\r\n },\r\n },\r\n secondSection: {\r\n title: {\r\n id: 'how-it-works.section-2.title-1',\r\n },\r\n text: {\r\n firstParagraph: {\r\n id: 'how-it-works.section-2.paragraph-1',\r\n },\r\n secondParagraph: {\r\n id: 'how-it-works.section-2.paragraph-2',\r\n },\r\n thirdParagraph: {\r\n id: 'how-it-works.section-2.paragraph-3',\r\n },\r\n },\r\n list: {\r\n element1: {\r\n id: 'how-it-works.section-2.list-element-1',\r\n },\r\n element2: {\r\n id: 'how-it-works.section-2.list-element-2',\r\n },\r\n element3: {\r\n id: 'how-it-works.section-2.list-element-3',\r\n },\r\n element4: {\r\n id: 'how-it-works.section-2.list-element-4',\r\n },\r\n element5: {\r\n id: 'how-it-works.section-2.list-element-5',\r\n },\r\n },\r\n },\r\n thirdSection: {\r\n title: {\r\n id: 'how-it-works.section-3.title-1',\r\n },\r\n text: {\r\n id: 'how-it-works.section-3.paragraph-1',\r\n },\r\n list: {\r\n element1: {\r\n id: 'how-it-works.section-3.list-element-1',\r\n },\r\n element2: {\r\n id: 'how-it-works.section-3.list-element-2',\r\n },\r\n element3: {\r\n id: 'how-it-works.section-3.list-element-3',\r\n },\r\n element4: {\r\n id: 'how-it-works.section-3.list-element-4',\r\n },\r\n element5: {\r\n id: 'how-it-works.section-3.list-element-5',\r\n },\r\n },\r\n },\r\n registerButton: {\r\n id: 'how-it-works-organizer.button-text',\r\n },\r\n});\r\n","import React, { Component, Fragment } from \"react\";\r\nimport {\r\n ContentWrapper,\r\n Container,\r\n WhiteH1,\r\n H2,\r\n H3,\r\n P,\r\n TextSection,\r\n ImageBackground,\r\n} from \"../../components/index\";\r\nimport { LinkButton } from \"../../components/Links/index\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport img from \"../../images/Volex_bild_undersida2.jpg\";\r\nimport messages from \"./messages\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\nimport styled from \"styled-components\";\r\n\r\nconst StyledList = styled.ul`\r\n list-style: circle;\r\n padding-left: 2em;\r\n line-height: 1.5;\r\n`;\r\n\r\nconst Background = ImageBackground.extend`\r\n background-image: url(${img});\r\n`;\r\n\r\nconst H3WithMarginBottom = styled(H3)`\r\n margin-bottom: 70px;\r\n`;\r\n\r\nconst PriceRow = styled(Row)`\r\n margin-bottom: 50px;\r\n`;\r\n\r\nconst BoldP = styled(P)`\r\n font-size: bold;\r\n`;\r\n\r\nconst P12 = styled.p`\r\n font-size: 12px;\r\n`;\r\n\r\nclass HowItWorksOrganizer extends Component {\r\n\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\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nfunction* generateSections(formatMessage) {\r\n for (let section = 1; true; section++) {\r\n const sectionTitleKey = `how-it-works-organizer.section-${section}.title-1`;\r\n const title = formatMessage({ id: sectionTitleKey });\r\n if (sectionTitleKey === title) {\r\n return;\r\n }\r\n yield {\r\n id: section,\r\n titles: [...generateTitles(section, formatMessage)],\r\n listItems: [...generateListItems(section, formatMessage)],\r\n paragraphs: [...generateParagraphs(section, formatMessage)],\r\n };\r\n }\r\n}\r\n\r\nfunction* generateParagraphs(section, formatMessage) {\r\n for (let i = 1; true; i++) {\r\n const listElementCode = `how-it-works-organizer.section-${section}.paragraph-${i}`;\r\n const paragraph = formatMessage({ id: listElementCode });\r\n if (listElementCode === paragraph) {\r\n return;\r\n }\r\n yield {\r\n id: `${section}-${i}`,\r\n label: paragraph\r\n };\r\n }\r\n}\r\n\r\nfunction* generateTitles(section, formatMessage) {\r\n for (let i = 1; true; i++) {\r\n const listElementCode = `how-it-works-organizer.section-${section}.title-${i}`;\r\n const title = formatMessage({ id: listElementCode });\r\n if (listElementCode === title) {\r\n return;\r\n }\r\n yield {\r\n id: `${section}-${i}`,\r\n label: title\r\n };\r\n }\r\n}\r\n\r\nfunction* generateListItems(section, formatMessage) {\r\n for (let i = 1; true; i++) {\r\n const listItemCode = `how-it-works-organizer.section-${section}.list-element-${i}`;\r\n const item = formatMessage({ id: listItemCode });\r\n if (listItemCode === item) {\r\n return;\r\n }\r\n yield {\r\n id: `${section}-${i}`,\r\n label: item\r\n };\r\n }\r\n}\r\n\r\nconst Paragraph = ({ paragraph }) => (\r\n

    \r\n {paragraph.label}\r\n

    \r\n);\r\n\r\nconst Title = ({ title }) => (\r\n

    \r\n {title.label}\r\n

    \r\n);\r\n\r\nconst ListItem = ({ item }) => (\r\n
  • \r\n {item.label}\r\n
  • \r\n);\r\n\r\nconst ListItems = ({ items }) => {\r\n if (items.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {items.map(item => )}\r\n \r\n );\r\n};\r\n\r\nconst Section = ({ section }) => (\r\n \r\n {section.titles.map(paragraph => ())}\r\n {section.paragraphs.map(paragraph => ())}\r\n \r\n \r\n);\r\n\r\nconst HowItWorksGenerator = ({ sections }) => (\r\n \r\n {sections.map(section => ())}\r\n \r\n);\r\n\r\nexport default injectIntl(HowItWorksOrganizer);\r\n","import { connect } from 'react-redux';\r\nimport HowItWorksOrganizer from './HowItWorksOrganizer';\r\n\r\nconst mapStateToProps = state => ({\r\n auth: state.auth,\r\n});\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n)(HowItWorksOrganizer);","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n headerTitle: {\r\n id: 'faq.header-title',\r\n },\r\n volunteerPageTitle: {\r\n id: 'faq-volunteer.page-title',\r\n },\r\n organizerPageTitle: {\r\n id: 'faq-organizer.page-title',\r\n },\r\n});\r\n","import React, { Component, Fragment } from \"react\";\r\nimport {\r\n ContentWrapper,\r\n Container,\r\n WhiteH1,\r\n TextLabel,\r\n P,\r\n H2,\r\n TextSection,\r\n ImageBackground\r\n} from \"../../components/index\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport img from \"../../images/Volex_bild_undersida6.jpg\";\r\nimport messages from \"./messages\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\n\r\nconst Background = ImageBackground.extend`\r\n background-image: url(${img});\r\n`;\r\n\r\nclass FAQ extends Component {\r\n renderQuestions(role) {\r\n const questions = [];\r\n\r\n for (let i = 1; i <= 40; i++) {\r\n const questionCode = `faq-${role}.${i}.question`;\r\n const question = this.props.intl.formatMessage({ id: questionCode });\r\n const answerCode = `faq-${role}.${i}.answer`;\r\n const answer = this.props.intl.formatMessage({ id: answerCode });\r\n\r\n if (questionCode !== question && answerCode !== answer) {\r\n questions.push({\r\n id: i,\r\n question,\r\n answer\r\n });\r\n }\r\n }\r\n\r\n return questions.map(question => (\r\n \r\n {question.question}\r\n

    {question.answer}

    \r\n
    \r\n ));\r\n }\r\n\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 {this.renderQuestions(\"volunteer\")}\r\n

    \r\n {this.renderQuestions(\"organizer\")}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default injectIntl(FAQ);\r\n","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n headerTitle: {\r\n id: 'about.header-title',\r\n },\r\n pageTitle: {\r\n id: 'about.page-title',\r\n },\r\n section1: {\r\n id: 'about.section1.text',\r\n },\r\n section2: {\r\n id: 'about.section2.text',\r\n },\r\n section3: {\r\n id: 'about.section3.text',\r\n },\r\n section4: {\r\n id: 'about.section4.text',\r\n },\r\n section5: {\r\n id: 'about.section5.text',\r\n },\r\n section6: {\r\n id: 'about.section6.text',\r\n },\r\n section7: {\r\n id: 'about.section7.text',\r\n },\r\n section8: {\r\n id: 'about.section8.text',\r\n },\r\n section9: {\r\n id: 'about.section9.text',\r\n },\r\n});\r\n","import React, { Component, Fragment } from \"react\";\r\nimport {\r\n ContentWrapper,\r\n Container,\r\n WhiteH1,\r\n H2,\r\n P,\r\n ImageBackground\r\n} from \"../../components/index\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport img from \"../../images/Volex_bild_undersida7.jpg\";\r\nimport messages from \"./messages\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\nconst Background = ImageBackground.extend`\r\n background-image: url(${img});\r\n`;\r\n\r\nclass About 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\n\r\nexport default About;\r\n","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n title: {\r\n id: 'privacy-policy.header-title',\r\n },\r\n section1: {\r\n title: {\r\n id: 'privacy-policy.section-1.title',\r\n },\r\n paragraph1: {\r\n id: 'privacy-policy.section-1.paragraph-1',\r\n },\r\n paragraph2: {\r\n id: 'privacy-policy.section-1.paragraph-2',\r\n },\r\n },\r\n section2: {\r\n title: {\r\n id: 'privacy-policy.section-2.title',\r\n },\r\n paragraph1: {\r\n id: 'privacy-policy.section-2.paragraph-1',\r\n },\r\n paragraph2: {\r\n id: 'privacy-policy.section-2.paragraph-2',\r\n },\r\n paragraph3: {\r\n id: 'privacy-policy.section-2.paragraph-3',\r\n },\r\n paragraph4: {\r\n id: 'privacy-policy.section-2.paragraph-4',\r\n },\r\n },\r\n section3: {\r\n title: {\r\n id: 'privacy-policy.section-3.title',\r\n },\r\n paragraph1: {\r\n id: 'privacy-policy.section-3.paragraph-1',\r\n },\r\n paragraph2: {\r\n id: 'privacy-policy.section-3.paragraph-2',\r\n },\r\n paragraph3: {\r\n id: 'privacy-policy.section-3.paragraph-3',\r\n },\r\n },\r\n section4: {\r\n title: {\r\n id: 'privacy-policy.section-4.title',\r\n },\r\n paragraph1: {\r\n id: 'privacy-policy.section-4.paragraph-1',\r\n },\r\n paragraph2: {\r\n id: 'privacy-policy.section-4.paragraph-2',\r\n },\r\n },\r\n section5: {\r\n title: {\r\n id: 'privacy-policy.section-5.title',\r\n },\r\n paragraph1: {\r\n id: 'privacy-policy.section-5.paragraph-1',\r\n },\r\n },\r\n section6: {\r\n title: {\r\n id: 'privacy-policy.section-6.title',\r\n },\r\n paragraph1: {\r\n id: 'privacy-policy.section-6.paragraph-1',\r\n },\r\n },\r\n section7: {\r\n title: {\r\n id: 'privacy-policy.section-7.title',\r\n },\r\n paragraph1: {\r\n id: 'privacy-policy.section-7.paragraph-1',\r\n },\r\n },\r\n section8: {\r\n title: {\r\n id: 'privacy-policy.section-8.title',\r\n },\r\n paragraph1: {\r\n id: 'privacy-policy.section-8.paragraph-1',\r\n },\r\n paragraph2: {\r\n id: 'privacy-policy.section-8.paragraph-2',\r\n },\r\n },\r\n section9: {\r\n title: {\r\n id: 'privacy-policy.section-9.title',\r\n },\r\n paragraph1: {\r\n id: 'privacy-policy.section-9.paragraph-1',\r\n },\r\n paragraph2: {\r\n id: 'privacy-policy.section-9.paragraph-2',\r\n },\r\n paragraph3: {\r\n id: 'privacy-policy.section-9.paragraph-3',\r\n },\r\n },\r\n});\r\n","import React, { Fragment } from \"react\";\r\nimport {\r\n ContentWrapper,\r\n Container,\r\n WhiteH1,\r\n H2,\r\n P,\r\n TextSection,\r\n ImageBackground\r\n} from \"../../components/index\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport img from \"../../images/Volex_bild_undersida9.jpg\";\r\nimport messages from \"./messages\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\n\r\nconst Background = ImageBackground.extend`\r\n background-image: url(${img});\r\n`;\r\n\r\nconst PrivacyPolicy = ({ intl }) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\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* generateParagraphs(section, formatMessage) {\r\n for (let i = 1; true; i++) {\r\n const listElementCode = `privacy-policy.section-${section}.paragraph-${i}`;\r\n const paragraph = formatMessage({ id: listElementCode });\r\n if (listElementCode === paragraph) {\r\n return;\r\n }\r\n yield {\r\n id: `${section}-${i}`,\r\n label: paragraph\r\n };\r\n }\r\n}\r\n\r\nfunction* generateSections(formatMessage) {\r\n for (let section = 1; true; section++) {\r\n const sectionTitleKey = `privacy-policy.section-${section}.title`;\r\n const title = formatMessage({ id: sectionTitleKey });\r\n if (sectionTitleKey === title) {\r\n return;\r\n }\r\n yield {\r\n id: section,\r\n title,\r\n paragraphs: [...generateParagraphs(section, formatMessage)]\r\n };\r\n }\r\n}\r\n\r\nconst Paragraph = ({ paragraph }) => (\r\n

    \r\n {paragraph.label}\r\n

    \r\n);\r\n\r\nconst Section = ({ section }) => (\r\n \r\n

    {section.title}

    \r\n {section.paragraphs.map(paragraph => ())}\r\n
    \r\n);\r\n\r\nconst PrivacyPolicyGenerator = ({ sections }) => (\r\n \r\n {sections.map(section => ())}\r\n \r\n);\r\n\r\nexport default injectIntl(PrivacyPolicy);\r\n","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n title: {\r\n id: 'contact.header-title',\r\n },\r\n section1: {\r\n id: 'contact.section1',\r\n },\r\n section2: {\r\n id: 'contact.section2',\r\n },\r\n});\r\n","import React, { Component, Fragment } from \"react\";\r\nimport {\r\n ContentWrapper,\r\n Container,\r\n WhiteH1,\r\n P,\r\n TextSection,\r\n ImageBackground\r\n} from \"../../components/index\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport img from \"../../images/Volex_bild_undersida11.jpg\";\r\nimport messages from \"./messages\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\nconst Background = ImageBackground.extend`\r\n background-image: url(${img});\r\n`;\r\n\r\nclass Contact 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\nexport default Contact;\r\n","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n headerTitle: {\r\n id: 'terms.header.title',\r\n },\r\n pageIntro1: {\r\n id: 'terms.page-intro-text.paragraph-1',\r\n },\r\n pageIntro2: {\r\n id: 'terms.page-intro-text.paragraph-2',\r\n },\r\n volunteerTitle: {\r\n id: 'terms-volunteer.page-title',\r\n },\r\n organizerTitle: {\r\n id: 'terms-organizer.page-title',\r\n },\r\n});\r\n","import React, { Component, Fragment } from \"react\";\r\nimport {\r\n ContentWrapper,\r\n Container,\r\n WhiteH1,\r\n TextLabel,\r\n P,\r\n ItalicP,\r\n H2,\r\n ImageBackground\r\n} from \"../../components/index\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport img from \"../../images/Volex_bild_undersida6.jpg\";\r\nimport messages from \"./messages\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\nimport styled from \"styled-components\";\r\n\r\nconst Background = ImageBackground.extend`\r\n background-image: url(${img});\r\n`;\r\n\r\nconst StyledList = styled.ul`\r\n list-style: circle;\r\n padding-left: 2em;\r\n line-height: 1.5;\r\n`;\r\n\r\nconst ItalicPWithMargin = styled(ItalicP)`\r\n margin-bottom: 50px;\r\n`;\r\n\r\nconst TermSection = styled.section`\r\n margin-top: 40px;\r\n`;\r\n\r\nconst H2WithMargin = styled(H2)`\r\n margin-top: 60px;\r\n`;\r\n\r\nclass Terms extends Component {\r\n\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\nfunction* generateSections(formatMessage, termType) {\r\n for (let section = 1; true; section++) {\r\n const sectionTitleKey = `terms-${termType}.section-${section}.title-1`;\r\n const title = formatMessage({ id: sectionTitleKey });\r\n if (sectionTitleKey === title) {\r\n return;\r\n }\r\n yield {\r\n id: section,\r\n titles: [...generateTitles(section, formatMessage, termType)],\r\n listItems: [...generateListItems(section, formatMessage, termType)],\r\n paragraphs: [...generateParagraphs(section, formatMessage, termType)],\r\n };\r\n }\r\n}\r\n\r\nfunction* generateParagraphs(section, formatMessage, termType) {\r\n for (let i = 1; true; i++) {\r\n const listElementCode = `terms-${termType}.section-${section}.paragraph-${i}`;\r\n const paragraph = formatMessage({ id: listElementCode });\r\n if (listElementCode === paragraph) {\r\n return;\r\n }\r\n yield {\r\n id: `${section}-${i}`,\r\n label: paragraph\r\n };\r\n }\r\n}\r\n\r\nfunction* generateTitles(section, formatMessage, termType) {\r\n for (let i = 1; true; i++) {\r\n const listElementCode = `terms-${termType}.section-${section}.title-${i}`;\r\n const title = formatMessage({ id: listElementCode });\r\n if (listElementCode === title) {\r\n return;\r\n }\r\n yield {\r\n id: `${section}-${i}`,\r\n label: title\r\n };\r\n }\r\n}\r\n\r\nfunction* generateListItems(section, formatMessage, termType) {\r\n for (let i = 1; true; i++) {\r\n const listItemCode = `terms-${termType}.section-${section}.list-element-${i}`;\r\n const item = formatMessage({ id: listItemCode });\r\n if (listItemCode === item) {\r\n return;\r\n }\r\n yield {\r\n id: `${section}-${i}`,\r\n label: item\r\n };\r\n }\r\n}\r\n\r\nconst Paragraph = ({ paragraph }) => (\r\n

    \r\n {paragraph.label}\r\n

    \r\n);\r\n\r\nconst Title = ({ title }) => (\r\n \r\n {title.label}\r\n \r\n);\r\n\r\nconst ListItem = ({ item }) => (\r\n
  • \r\n {item.label}\r\n
  • \r\n);\r\n\r\nconst ListItems = ({ items }) => {\r\n if (items.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {items.map(item => )}\r\n \r\n );\r\n};\r\n\r\nconst Section = ({ section }) => (\r\n \r\n {section.titles.map(paragraph => ())}\r\n {section.paragraphs.map(paragraph => ())}\r\n \r\n \r\n);\r\n\r\nconst HowItWorksGenerator = ({ sections }) => (\r\n \r\n {sections.map(section => ())}\r\n \r\n);\r\n\r\nexport default injectIntl(Terms);\r\n","\r\n// actions\r\nexport const EVENT_SUBMIT = 'EVENT_SUBMIT';\r\nexport const EVENT_FETCHING = 'EVENT_FETCHING';\r\nexport const EVENT_FETCHED = 'EVENT_FETCHED';\r\nexport const EVENT_SUCCESS = 'EVENT_SUCCESS';\r\nexport const EVENT_FAILED = 'EVENT_FAILED';\r\nexport const EVENT_RESET = 'EVENT_RESET';\r\nexport const EVENT_SAVING = 'EVENT_SAVING';\r\nexport const EVENT_SAVING_FAILED = 'EVENT_SAVING_FAILED';\r\nexport const EVENT_SAVED = 'EVENT_SAVED';\r\nexport const EVENTS_SUMMARIES = 'EVENTS_SUMMARIES';\r\nexport const EVENTS_SUMMARIES_FAILED = 'EVENTS_SUMMARIES_FAILED';\r\nexport const EVENTS_SUMMARIES_SUCCESS = 'EVENTS_SUMMARIES_SUCCESS';\r\nexport const EVENT_CONFIRM = 'EVENT_CONFIRM';\r\nexport const EVENT_CONFIRM_SUCCESS = 'EVENT_CONFIRM_SUCCESS';\r\nexport const EVENT_CONFIRM_FAILED = 'EVENT_CONFIRM_FAILED';\r\nexport const EVENT_REMOVE = 'EVENT_REMOVE';\r\nexport const EVENT_REMOVE_SUCCESS = 'EVENT_REMOVE_SUCCESS';\r\nexport const EVENT_REMOVE_FAILED = 'EVENT_REMOVE_FAILED';\r\nexport const SET_HISTORIC = 'SET_HISTORIC';\r\nexport const SET_HISTORIC_FAILED = 'SET_HISTORIC_FAILED';\r\nexport const SET_HISTORIC_SUCCESS = 'SET_HISTORIC_SUCCESS';\r\n\r\nexport const status = {\r\n NOT_SUBMITTED: 'NOT_SUBMITTED',\r\n FETCHING: 'FETCHING',\r\n FETCHED: 'FETCHED',\r\n SUBMITTING: 'SUBMITTING',\r\n SUCCESS: 'SUCCESS', // ??? Succeeeded what?\r\n FAILED: 'FAILED', // ??? failed what?\r\n};\r\n\r\nexport const eventStatus = status;\r\n\r\nexport function submitEvent (data) {\r\n return {\r\n type: EVENT_SUBMIT,\r\n payload: data,\r\n };\r\n}\r\n\r\nexport function confirmEvent (data) {\r\n return {\r\n type: EVENT_CONFIRM,\r\n payload: data,\r\n };\r\n}\r\n\r\nexport function fetchEvent (data) {\r\n return {\r\n type: EVENT_FETCHING,\r\n payload: data,\r\n };\r\n}\r\n\r\nexport function getEventsSummaries (data) {\r\n return {\r\n type: EVENTS_SUMMARIES,\r\n payload: data,\r\n };\r\n}\r\n\r\nexport function removeEvent (data) {\r\n return {\r\n type: EVENT_REMOVE,\r\n payload: data,\r\n };\r\n}\r\n\r\nexport function reset (data) {\r\n return {\r\n type: EVENT_RESET,\r\n payload: data,\r\n };\r\n}\r\n\r\nexport function setHistoric (data) {\r\n return {\r\n type: SET_HISTORIC,\r\n payload: data,\r\n };\r\n}\r\n\r\n// reducer with initial state\r\nconst initialState = {\r\n status: status.NOT_SUBMITTED,\r\n error: null,\r\n event: null,\r\n eventsSummaries: null,\r\n};\r\n\r\nexport default function EVENT(state = initialState, action) {\r\n if (!action) {\r\n return state;\r\n }\r\n\r\n switch (action.type) {\r\n case EVENT_SUBMIT:\r\n return Object.assign({}, state, {status: status.SUBMITTING});\r\n case EVENT_CONFIRM:\r\n return Object.assign({}, state, {status: status.SUBMITTING});\r\n case EVENT_FETCHING:\r\n return Object.assign({}, state, {status: status.FETCHING});\r\n case EVENT_FETCHED:\r\n return Object.assign({}, state, {status: status.FETCHED, event: action.payload});\r\n case EVENT_SUCCESS:\r\n return Object.assign({}, state, {status: status.SUCCESS, event: action.payload});\r\n case EVENT_FAILED:\r\n return Object.assign({}, state, action.payload, {status: status.FAILED, error: action.payload});\r\n case EVENT_RESET:\r\n return initialState;\r\n case EVENTS_SUMMARIES_SUCCESS:\r\n return Object.assign({}, state, {eventsSummaries: action.payload});\r\n case EVENTS_SUMMARIES_FAILED:\r\n return Object.assign({}, state, {eventsSummaries: []});\r\n case EVENT_CONFIRM_SUCCESS:\r\n return Object.assign({}, state, {status: status.SUCCESS, event: action.payload});\r\n case EVENT_REMOVE_SUCCESS:\r\n return Object.assign({}, state, {eventsSummaries: state.eventsSummaries.filter(e => e.eventId !== action.payload.eventId)});\r\n case EVENT_REMOVE_FAILED:\r\n return Object.assign({}, state, {});\r\n case SET_HISTORIC:\r\n return Object.assign({}, state, {status: status.SUBMITTING});\r\n case SET_HISTORIC_SUCCESS:\r\n return Object.assign({}, state, {eventsSummaries: state.eventsSummaries.map(e1 => action.payload.some(e2 => e2.Attributes.eventId === e1.eventId) ? Object.assign({}, e1, {status: \"HISTORIC\"}) : e1), status: status.SUCCESS});\r\n case SET_HISTORIC_FAILED:\r\n return Object.assign({}, state, {status: status.FAILED, error: action.payload});\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n progressBar: {\r\n chooseEvent: {\r\n id: 'progress-bar.choose-event',\r\n },\r\n adjustEvent: {\r\n id: 'progress-bar.adjust-event',\r\n },\r\n registerEvent: {\r\n id: 'progress-bar.register-event',\r\n },\r\n registerStation: {\r\n id: 'progress-bar.register-station',\r\n },\r\n staffStation: {\r\n id: 'progress-bar.staff-station',\r\n },\r\n confirmEvent: {\r\n id: 'progress-bar.confirm-event',\r\n },\r\n newStations: {\r\n id: 'progress-bar.new-stations'\r\n }\r\n },\r\n title: {\r\n id: 'event-start.title',\r\n },\r\n text: {\r\n id: 'event-start.text',\r\n },\r\n newEventLink: {\r\n id: 'event-start.new-event-link',\r\n },\r\n copyEventLink: {\r\n id: 'event-start.copy-event-link',\r\n },\r\n searchVolunteerGroup: {\r\n id: 'event-start.search-volunteer-group-link',\r\n },\r\n copyEvent: {\r\n listTitle: {\r\n id: 'copy-event.list-title'\r\n },\r\n settingsTitle: {\r\n id: 'copy-event.settings-title'\r\n },\r\n stationsListTitle : {\r\n id: 'copy-event.stations-list-title'\r\n },\r\n nextButton: {\r\n id: 'copy-event.next-button'\r\n },\r\n saveButton: {\r\n id: 'copy-event.save-button'\r\n },\r\n choose: {\r\n id: 'copy-event.choose'\r\n },\r\n nextStep: {\r\n id: 'copy-event.next-step'\r\n },\r\n form: {\r\n title: {\r\n id: 'copy-event.form.title'\r\n },\r\n name: {\r\n id: 'copy-event.form.name'\r\n },\r\n date: {\r\n id: 'copy-event.form.date'\r\n },\r\n city: {\r\n id: 'copy-event.form.city'\r\n },\r\n startTime: {\r\n id: 'copy-event.form.startTime'\r\n }\r\n },\r\n sameNameModal: {\r\n title: {\r\n id: 'copy-event.same-name-modal.title'\r\n },\r\n text: {\r\n id: 'copy-event.same-name-modal.text'\r\n },\r\n cancel: {\r\n id: 'copy-event.same-name-modal.cancel'\r\n },\r\n confirm: {\r\n id: 'copy-event.same-name-modal.confirm'\r\n }\r\n }\r\n },\r\n myEvents: {\r\n title: {\r\n id: 'my-events.title',\r\n },\r\n show: {\r\n id: 'my-events.show-event-link',\r\n },\r\n showPrevious: {\r\n id: 'my-events.show-previous-events-link',\r\n },\r\n list: {\r\n noEventsMessage: {\r\n id: 'my-events.list.no-events',\r\n },\r\n },\r\n removalModal: {\r\n title: {\r\n id: 'my-events.removalModal.title'\r\n },\r\n body: {\r\n id: 'my-events.removalModal.body'\r\n }\r\n },\r\n removalCheckbox: {\r\n id: 'my-events.removalCheckbox'\r\n },\r\n header: {\r\n eventTitle: {\r\n id: 'my-events.header.title',\r\n },\r\n eventDate: {\r\n id: 'my-events.header.date',\r\n },\r\n eventStatus: {\r\n id: 'my-events.header.status',\r\n },\r\n },\r\n },\r\n registerEvent: {\r\n title: {\r\n id: 'register-event.page.title',\r\n },\r\n form: {\r\n event: {\r\n title: {\r\n id: 'register-event.event.form.title',\r\n },\r\n name: {\r\n id: 'register-event.form.event.name.placeholder',\r\n },\r\n date: {\r\n id: 'register-event.form.event.date.placeholder',\r\n },\r\n startTime: {\r\n id: 'register-event.form.event.startTime.placeholder',\r\n },\r\n city: {\r\n id: 'register-event.form.event.city.placeholder',\r\n },\r\n },\r\n substitute: {\r\n title: {\r\n id: 'register-event.form.substitute.title',\r\n },\r\n option: {\r\n id: 'register-event.form.substitute.option',\r\n },\r\n },\r\n include: {\r\n title: {\r\n id: 'register-event.include.form.title',\r\n },\r\n list: {\r\n clothesSize: {\r\n id: 'register-event.include.list.volunteer-clothes-size.placeholder',\r\n },\r\n foodOptions: {\r\n id: 'register-event.include.list.food-options.placeholder',\r\n },\r\n shoeSize: {\r\n id: 'register-event.include.list.shoe-size.placeholder',\r\n },\r\n },\r\n clothesSize: {\r\n title: {\r\n id: 'register-event.include.clothes-size.form.title',\r\n },\r\n placeholder: {\r\n id: 'register-event.form.include.clothes-size.placeholder',\r\n },\r\n },\r\n foodOptions: {\r\n title: {\r\n id: 'register-event.form.include.food-options.title',\r\n },\r\n placeholder: {\r\n id: 'register-event.form.include.food-options.placeholder',\r\n },\r\n },\r\n shoeSize: {\r\n title: {\r\n id: 'register-event.include.shoe-size.form.title',\r\n },\r\n placeholder: {\r\n id: 'register-event.form.include.shoe-size.placeholer',\r\n },\r\n },\r\n },\r\n organizer: {\r\n title: {\r\n id: 'register-event.organizer.form.title',\r\n },\r\n organizerNumber: {\r\n id: 'register-event.form.organizer.organizer-number.placeholder',\r\n },\r\n name: {\r\n id: 'register-event.form.organizer.name.placeholder',\r\n },\r\n email: {\r\n id: 'register-event.form.organizer.email.placeholder'\r\n },\r\n invoiceAddress: {\r\n id: 'register-event.form.organizer.invoice-address.placeholder'\r\n },\r\n website: {\r\n id: 'register-event.form.organizer.website.placeholder',\r\n },\r\n },\r\n contact: {\r\n title: {\r\n id: 'register-event.organizer.contact.form.title',\r\n },\r\n email: {\r\n id: 'register-event.form.organizer.contact.email.placeholder',\r\n },\r\n button: {\r\n id: 'register-event.form.organizer.contact.add-button',\r\n },\r\n },\r\n },\r\n contactList: {\r\n name: {\r\n id: 'register-station.list.contacts.name',\r\n },\r\n email: {\r\n id: 'register-station.list.contacts.email',\r\n },\r\n button: {\r\n id: 'register-station.list.contacts.add-button',\r\n },\r\n },\r\n deleteContactMessage: {\r\n id: 'register-event.my-station.delete.text',\r\n },\r\n saveEventButton: {\r\n id: 'register-event.save-button',\r\n },\r\n nextButton: {\r\n id: 'register-event.next-step-button',\r\n },\r\n contactEmptyMessage: {\r\n id: 'register-event.contact-field-empty-message',\r\n },\r\n contactExistMessage: {\r\n id: 'register-event.contact-already-exist-message',\r\n },\r\n },\r\n statusApproved: {\r\n id: 'event.status-approved',\r\n },\r\n statusUnconfirmed: {\r\n id: 'event.status-unconfirmed',\r\n },\r\n statusHistoric: {\r\n id: 'event.status-historic',\r\n },\r\n statusUnknown: {\r\n id: 'event.status-unknown',\r\n },\r\n});\r\n","import React, { Component } from \"react\";\r\nimport { H2, WhiteTable, TableStatus, TableRowWithClick, TableRow, ConfirmationModal, Checkbox } from \"../../../../components/index\";\r\nimport { TableButton, ToggleButton, DeleteButton } from \"../../../../components/Buttons/index\";\r\nimport styled from \"styled-components\";\r\nimport { breakPoints } from \"../../../../constants/styling-constants\";\r\nimport { withRouter } from \"react-router\";\r\nimport messages from \"../messages\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\n\r\nconst Table = styled(WhiteTable)`\r\n @media (max-width: ${breakPoints.sm}px) {\r\n .table-button-col {\r\n display: none;\r\n }\r\n .table-status-col {\r\n display: none;\r\n }\r\n }\r\n`;\r\n\r\nconst TableRowHeader = TableRow.extend`\r\n th {\r\n background: transparent;\r\n font-weight: bold;\r\n }\r\n`;\r\n\r\nconst Wrapper = styled.div`\r\n margin-bottom: 85px;\r\n`;\r\n\r\nclass EventList extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.renderRow = this.renderRow.bind(this);\r\n this.handleClick = this.handleClick.bind(this);\r\n this.handleRemoveEvent = this.handleRemoveEvent.bind(this);\r\n this.handleHide = this.handleHide.bind(this);\r\n this.togglePreviousEvents = this.togglePreviousEvents.bind(this);\r\n\r\n this.state = {\r\n sortField: \"date\",\r\n sortDirection: -1,\r\n eventToBeRemoved: {},\r\n showRemovalModal: false,\r\n removalCheckboxChecked: false,\r\n removalError: false,\r\n removalPending: false,\r\n pastEvents: false\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.props.getEventsSummaries();\r\n }\r\n\r\n handleClick(row) {\r\n this.props.history.push(`/my-pages/events/${row.id}`);\r\n }\r\n\r\n handleHide() {\r\n this.setState({\r\n showRemovalModal: false,\r\n eventToBeRemoved: {},\r\n removalPending: false,\r\n removalError: false,\r\n removalCheckboxChecked: false,\r\n });\r\n }\r\n\r\n handleRemoveEvent(event) {\r\n if(this.state.removalCheckboxChecked) {\r\n this.setState({removalPending: true})\r\n setTimeout(() => this.setState({\r\n showRemovalModal: false,\r\n eventToBeRemoved: {},\r\n removalPending: false,\r\n removalError: false,\r\n removalCheckboxChecked: false,\r\n }), 500);\r\n this.props.removeEvent(event.id);\r\n } else {\r\n this.setState({removalError: true});\r\n }\r\n }\r\n\r\n togglePreviousEvents() {\r\n this.setState({pastEvents: !this.state.pastEvents})\r\n }\r\n\r\n renderStatus(status) {\r\n switch (status) {\r\n case \"CONFIRMED\":\r\n return ();\r\n case \"DRAFT\":\r\n return ();\r\n case \"HISTORIC\":\r\n return ();\r\n default:\r\n return ();\r\n }\r\n }\r\n getDate(date) {\r\n return date.getFullYear() + \"-\" + (date.getMonth()<9 ? \"0\" : \"\") + (date.getMonth()+1) + \"-\" + (date.getDate() <10 ? \"0\" : \"\") + date.getDate();\r\n }\r\n\r\n renderRow(row, past=false) {\r\n const buttonTitle = this.props.buttonTitle ? this.props.buttonTitle : messages.myEvents.show;\r\n return (\r\n \r\n {row.name}\r\n {row.date ? this.getDate(new Date(row.date)) : \"\"}\r\n {this.renderStatus(row.status)}\r\n \r\n \r\n {e.stopPropagation(); this.setState({eventToBeRemoved: row, showRemovalModal: true})}}/>\r\n \r\n \r\n );\r\n }\r\n renderTableHeader() {\r\n return (\r\n \r\n this.state.sortField === \"name\" ? this.setState({sortDirection:this.state.sortDirection*-1}) : this.setState({sortField:\"name\"})}>\r\n this.state.sortField === \"date\" ? this.setState({sortDirection:this.state.sortDirection*-1}) : this.setState({sortField:\"date\"})}>\r\n this.state.sortField === \"status\" ? this.setState({sortDirection:this.state.sortDirection*-1}) : this.setState({sortField:\"status\"})}>\r\n \r\n \r\n )\r\n }\r\n\r\n renderEventsTable(events, past=false) {\r\n \r\n if (events.length === 0) {\r\n // User has no events, show no events message\r\n return (\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 {this.renderTableHeader()}\r\n {events.sort((a,b) => a[this.state.sortField] ? -1 : 1).sort((a, b) => a && b && a[this.state.sortField] && b[this.state.sortField] ? this.state.sortDirection * a[this.state.sortField].localeCompare(b[this.state.sortField]) : 0).map(e => this.renderRow(e, past))}\r\n \r\n
    \r\n );\r\n }\r\n\r\n render() {\r\n const title = this.props.title ? this.props.title : messages.myEvents.title;\r\n const eventList = this.props.eventsSummaries ? this.props.eventsSummaries.filter(event => !event.date ? false : new Date(event.date) > new Date().setDate(new Date().getDate() - 7)) : null;\r\n const pastList = this.props.eventsSummaries ? this.props.eventsSummaries.filter(event => !eventList.some(e => e.id === event.id)) : null;\r\n\r\n if(pastList){\r\n pastList.map(event => {if(event.status === \"CONFIRMED\") {this.props.setHistoric({id: event.id})}});\r\n }\r\n\r\n //const eventLista = this.props.eventsSummaries ? this.props.eventsSummaries.filter(event => !event.date ? false : event.date.localeCompare(new Date().toISOString()) >= 0) : null;\r\n //const pastLista = this.props.eventsSummaries ? this.props.eventsSummaries.filter(event => !event.date ? true : event.date.localeCompare(new Date().toISOString()) < 0) : null;\r\n return (\r\n \r\n this.handleRemoveEvent(this.state.eventToBeRemoved)}\r\n children={this.state.removalPending ?\r\n :\r\n this.setState({removalCheckboxChecked: !this.state.removalCheckboxChecked})}\r\n label={\" \" + this.props.intl.formatMessage(messages.myEvents.removalCheckbox)}\r\n disabled={false}\r\n className={(this.state.removalError ? \"error\" : \"\")}\r\n />}\r\n />\r\n

    \r\n {(this.props.eventsSummaries) ? this.renderEventsTable(eventList) : }\r\n {(this.props.eventsSummaries) ? : \"\"}\r\n {(pastList && this.state.pastEvents) ? this.renderEventsTable(pastList, true) : \"\"}\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(injectIntl(EventList));\r\n","import { connect } from \"react-redux\";\r\nimport { withRouter } from \"react-router\";\r\nimport { getEventsSummaries, removeEvent, setHistoric } from \"../reducer\";\r\nimport EventList from \"./EventList\";\r\n\r\nconst mapStateToProps = state => ({\r\n eventsSummaries: state.event.eventsSummaries,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n getEventsSummaries: data => dispatch(getEventsSummaries(data)),\r\n removeEvent: data => dispatch(removeEvent(data)),\r\n setHistoric: data => dispatch(setHistoric(data)),\r\n});\r\n\r\nexport default withRouter(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(EventList));\r\n","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n eventsLink: {\r\n id: 'top-navigation.events-link',\r\n },\r\n teamLeadersLink: {\r\n id: 'top-navigation.teamleaders-link',\r\n },\r\n volunteersLink: {\r\n id: 'top-navigation.volunteers-link',\r\n },\r\n list: {\r\n title: {\r\n id: 'teamleader.list.title'\r\n }\r\n }\r\n});\r\n","import React from 'react';\r\nimport { Container } from '../../components';\r\nimport { NavLinkButton, GreenNavLinkButton } from '../../components/Links';\r\nimport { Row, Col } from 'react-bootstrap/lib';\r\nimport messages from './messages';\r\nimport { FormattedMessage, injectIntl } from 'react-intl';\r\n\r\nconst Wrapper = Container.extend`\r\n margin-bottom: 70px;\r\n`;\r\n\r\nconst TopNavigation = () => (\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 injectIntl(TopNavigation);\r\n","import React, { Component } from \"react\";\r\nimport { ContentWrapper, Container, H1, P } from \"../../../components/index\";\r\nimport { CircleLinkButton } from \"../../../components/Links\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport styled from \"styled-components\";\r\nimport { breakPoints } from \"../../../constants/styling-constants\";\r\nimport EventList from \"./List\";\r\nimport TopNavigation from \"../TopNavigation\";\r\nimport messages from \"./messages\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\n\r\nconst IconWrapper = styled(Col)`\r\n //display: flex; - Add this when we add search group support\r\n justify-content: space-around;\r\n margin-top: 90px;\r\n margin-bottom: 90px;\r\n @media (max-width: ${breakPoints.xs}px) {\r\n flex-direction: column;\r\n align-items: center;\r\n a {\r\n margin-bottom: 25px;\r\n }\r\n }\r\n`;\r\n\r\nconst ListWrapper = styled(Col)`\r\n @media (max-width: ${breakPoints.xs}px) {\r\n padding-right: 0;\r\n }\r\n`;\r\n \r\n\r\nclass EventStart extends Component {\r\n render() {\r\n // - Add this when we add search group\r\n // support\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 injectIntl(EventStart);\r\n","const additionalQuestions = [\r\n \"CLOTHES\",\r\n \"FOOD\",\r\n //'SHOE',\r\n];\r\n\r\nexport default additionalQuestions;\r\n","import { default as foodOptions } from './food-options';\r\nimport { default as shoeSizes } from './shoe-sizes';\r\nimport { default as shirtSizes } from './shirt-sizes';\r\nimport { default as skills } from './skills';\r\nimport { default as currencies } from './currencies';\r\nimport { default as payments } from './payments';\r\nimport { default as additionalQuestions } from './event-additional-questions';\r\n\r\nexport default {\r\n foodOptions,\r\n shoeSizes,\r\n shirtSizes,\r\n skills,\r\n currencies,\r\n payments,\r\n additionalQuestions,\r\n}\r\n","const foodOptions = [\r\n 'GLUTEN_FREE',\r\n 'LACTOSE_FREE',\r\n 'MILK_PROTEIN_FREE',\r\n 'VEGETARIAN',\r\n 'VEGAN',\r\n];\r\n\r\nexport default foodOptions;\r\n","export { default as foodOptions } from './food-options';\r\nconst shoeSizes = [\r\n '37',\r\n '38',\r\n '39',\r\n '40',\r\n '41',\r\n '42',\r\n '43',\r\n '44',\r\n];\r\n\r\nexport default shoeSizes;\r\n","const shirtSizes = [\r\n 'XS',\r\n 'S',\r\n 'M',\r\n 'L',\r\n 'XL',\r\n 'XXL',\r\n];\r\n\r\nexport default shirtSizes;\r\n","const specialCompetence = [\r\n 'ACROBATICS',\r\n 'CHEERLEADING',\r\n 'DRIVING_LICENCE_B',\r\n 'FORKLIFT_LICENCE',\r\n 'BUS_DRIVER',\r\n 'TRACTOR_LICENCE',\r\n 'BOATING_LICENSE',\r\n 'CHOIR_SINGING',\r\n 'PERCUSSION',\r\n 'BRASS_BAND',\r\n 'FLIPS',\r\n 'STUNT',\r\n];\r\n\r\nexport default specialCompetence;\r\n","const currencies = [\r\n 'SEK',\r\n 'EUR',\r\n];\r\n\r\nexport default currencies;\r\n","const paymentTypes = [\r\n 'COMPENSATIONBYAGREEMENT',\r\n 'GROUPPAYMENT',\r\n 'PERPERSON',\r\n 'HOURLYRATE',\r\n 'NOCOMPENSATION',\r\n];\r\n\r\nexport default paymentTypes;\r\n","import React, { Component, Fragment } from \"react\";\r\nimport {\r\n H1,\r\n H2,\r\n Input,\r\n DatePicker,\r\n MultiSelect,\r\n FormGroup,\r\n TextLabel,\r\n ContactForm,\r\n TimePicker,\r\n ListSelect,\r\n} from \"../../../components\";\r\nimport { Button } from \"../../../components/Buttons\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport { connect } from \"react-redux\";\r\nimport { Field, reduxForm, formValueSelector } from \"redux-form\";\r\nimport {\r\n required,\r\n minLength3,\r\n maxLength250,\r\n organizerNumber,\r\n afterTodaysDate,\r\n} from \"../../../validators\";\r\nimport messages from \"./messages\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\nimport { eventStatus } from \"./reducer\";\r\nimport { lists } from \"../../../constants/lists.js\"; // TODO: Add updated volex-data repository\r\nimport additionalQuestions from \"../../../constants/lists/event-additional-questions\";\r\n\r\nconst { foodOptions, shoeSizes, shirtSizes } = lists;\r\n\r\nconst withLoadedProps = (LoadedComponent, loadedProps) => (props) =>\r\n ;\r\n\r\nclass EventNew extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n contactList: [],\r\n submitClicked: false,\r\n nextClicked: false,\r\n userAdded: false,\r\n };\r\n\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleNext = this.handleNext.bind(this);\r\n this.setEventId = this.setEventId.bind(this);\r\n this.updateContactListFromForm = this.updateContactListFromForm.bind(this);\r\n }\r\n\r\n updateContactListFromForm(contactList) {\r\n this.setState({ contactList });\r\n }\r\n\r\n renderShirtSizes() {\r\n if (!this.props.included) {\r\n return null;\r\n }\r\n\r\n const hasShirt = this.props.included.includes(\"CLOTHES\");\r\n\r\n if (hasShirt) {\r\n const shirtSizesTranslated = shirtSizes.map((opt) => ({\r\n id: opt,\r\n name: this.props.intl.formatMessage({\r\n id: `shirt-size.${opt.toLowerCase()}`,\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 return null;\r\n }\r\n\r\n renderFoodOptions() {\r\n if (!this.props.included) {\r\n return null;\r\n }\r\n\r\n const hasFood = this.props.included.includes(\"FOOD\");\r\n\r\n if (hasFood) {\r\n const foodOptionsTranslated = foodOptions.map((opt) => ({\r\n id: opt,\r\n name: this.props.intl.formatMessage({\r\n id: `food.${opt.toLowerCase()}`,\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 return null;\r\n }\r\n /*\r\n renderShoeSizes() {\r\n if (!this.props.included) {\r\n return null;\r\n }\r\n\r\n const hasShoe = this.props.included.includes(\"SHOE\");\r\n const shoeSizeOptions = shoeSizes.map(size => ({\r\n id: size,\r\n name: size\r\n }));\r\n\r\n if (hasShoe) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return null;\r\n }\r\n */\r\n\r\n static getDerivedStateFromProps(props, state) {\r\n const contactListCopy = state.contactList.slice();\r\n\r\n if (\r\n props.user &&\r\n !state.contactList.find(\r\n (contact) => contact.email === props.user.email\r\n ) &&\r\n !state.userAdded\r\n ) {\r\n contactListCopy.push({\r\n email: props.user.email,\r\n name: `${props.user.firstName} ${props.user.lastName}`,\r\n id: state.contactList.length,\r\n phone: props.user.phone,\r\n });\r\n return {\r\n contactList: contactListCopy,\r\n userAdded: true,\r\n };\r\n }\r\n\r\n if (props.status === eventStatus.SUCCESS) {\r\n return {\r\n submitClicked: false,\r\n nextClicked: false,\r\n };\r\n }\r\n\r\n return null;\r\n }\r\n\r\n sortShirtSizes(unsorted) {\r\n const sorted = []\r\n if(unsorted.includes(\"XS\")){ sorted.push(\"XS\")}\r\n if(unsorted.includes(\"S\")){ sorted.push(\"S\")}\r\n if(unsorted.includes(\"M\")){ sorted.push(\"M\")}\r\n if(unsorted.includes(\"L\")){ sorted.push(\"L\")}\r\n if(unsorted.includes(\"XL\")){ sorted.push(\"XL\")}\r\n if(unsorted.includes(\"XXL\")){ sorted.push(\"XXL\")}\r\n \r\n return sorted\r\n }\r\n\r\n setEventId(fieldValues) {\r\n const newEvent = Object.assign({}, fieldValues, {\r\n contactPersons: this.state.contactList.filter((c) => !c.toBeDeleted),\r\n });\r\n if (this.props.event) {\r\n newEvent.id = this.props.event.id;\r\n }\r\n\r\n return newEvent;\r\n }\r\n\r\n handleSubmit(fieldValues) {\r\n\r\n if (this.state.submitClicked) {\r\n return;\r\n }\r\n\r\n this.setState({\r\n submitClicked: true,\r\n });\r\n\r\n if(fieldValues.shirtSizes){\r\n const sorted = this.sortShirtSizes(fieldValues.shirtSizes)\r\n fieldValues.shirtSizes = sorted\r\n }\r\n\r\n this.props.submitEvent(this.setEventId(fieldValues));\r\n }\r\n\r\n handleNext(fieldValues) {\r\n\r\n this.setState({\r\n nextClicked: true,\r\n });\r\n\r\n if(fieldValues.shirtSizes){\r\n const sorted = this.sortShirtSizes(fieldValues.shirtSizes)\r\n fieldValues.shirtSizes = sorted\r\n }\r\n\r\n this.props.onClickNext(this.setEventId(fieldValues), 1);\r\n }\r\n\r\n render() {\r\n const additionalQuestionOptions = additionalQuestions.map((q) => ({\r\n id: q,\r\n value: this.props.intl.formatMessage({\r\n id: `lists.additionalQuestions.${q}`,\r\n }),\r\n }));\r\n\r\n return (\r\n \r\n \r\n \r\n

    \r\n \r\n

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

    \r\n \r\n

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n \r\n \r\n \r\n \r\n\r\n \r\n {this.renderShirtSizes()}\r\n {this.renderFoodOptions()}\r\n \r\n \r\n }\r\n \r\n {/*this.renderShoeSizes()*/}\r\n \r\n

    \r\n \r\n

    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nEventNew = reduxForm({\r\n form: \"event\",\r\n})(EventNew);\r\n\r\n// Decorate with connect to read form values\r\nconst selector = formValueSelector(\"event\"); // <-- same as form name\r\n\r\nEventNew = connect((state) => {\r\n const included = selector(state, \"included\");\r\n\r\n return {\r\n included,\r\n };\r\n})(EventNew);\r\n\r\nexport default injectIntl(EventNew);\r\n","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n title: {\r\n id: 'register-station.page.title',\r\n },\r\n text: {\r\n id: 'register-station.text',\r\n },\r\n station: {\r\n title: {\r\n id: 'register-station.form.title',\r\n },\r\n signedUp: {\r\n id: \"group.volunteer.table.signedUp.title\"\r\n },\r\n present: {\r\n id: \"group.volunteer.table.present.title\"\r\n },\r\n form: {\r\n title: {\r\n id: 'register-station.station.form.title',\r\n },\r\n id: {\r\n id: 'register-station.form.station.id.placeholder',\r\n },\r\n description: {\r\n id: 'register-station.form.station.description.placeholder',\r\n },\r\n noMarker: {\r\n id: 'register-station.form.station.no-marker',\r\n },\r\n markerTitle: {\r\n id: 'register-station.form.station.marker-title'\r\n },\r\n mapTitle: {\r\n id: 'register-station.form.station.map-title',\r\n },\r\n municipality: {\r\n id: 'register-station.form.station.municipality.placeholder',\r\n },\r\n startTime: {\r\n id: 'register-station.form.station.start-time.placeholder',\r\n },\r\n endTime: {\r\n id: 'register-station.form.station.end-time.placeholder',\r\n },\r\n },\r\n noStationsError: {\r\n id: 'register-station.form.no-stations-message',\r\n },\r\n workStation: {\r\n id: `station-allocation.table.workStation`\r\n },\r\n officialQuantity: {\r\n id: \"station-allocation.table.officialQuantity\",\r\n },\r\n },\r\n group: {\r\n title: {\r\n id: \"station-allocation.table.header.groupName\",\r\n },\r\n },\r\n stationEdit: {\r\n title: {\r\n id: 'edit-station.title',\r\n },\r\n form: {\r\n id: {\r\n id: 'edit-station.form.station.id.placeholder',\r\n },\r\n description: {\r\n id: 'edit-station.form.station.description.placeholder',\r\n },\r\n startTime: {\r\n id: 'edit-station.form.station.start-time.placeholder',\r\n },\r\n endTime: {\r\n id: 'edit-station.form.station.end-time.placeholder',\r\n },\r\n },\r\n editStationButton: {\r\n id: 'edit-station-button',\r\n },\r\n cancelEditButton: {\r\n id: 'cancel-edit-station-button',\r\n },\r\n addNewStationButton: {\r\n id: 'edit-station.add-new-station-button',\r\n },\r\n noStation: {\r\n id: 'edit-station.list.no-stations-message',\r\n },\r\n formTitle: {\r\n id: 'edit-station.form-title',\r\n },\r\n teamLeaderFormTitle: {\r\n id: 'edit-station.team-leader-form-title',\r\n },\r\n },\r\n teamLeader: {\r\n form: {\r\n title: {\r\n id: 'register-station.team-leader.form.title',\r\n },\r\n name: {\r\n id: 'register-station.form.team-leader.name.placeholder',\r\n },\r\n email: {\r\n id: 'register-station.form.team-leader.email.placeholder',\r\n },\r\n phone: {\r\n id: 'register-station.form.team-leader.phone.placeholder',\r\n },\r\n },\r\n },\r\n volunteer: {\r\n form: {\r\n title: {\r\n id: 'register-station.volunteer.form.title',\r\n },\r\n officialQuantity: {\r\n id: 'register-station.form.volunteer.quantity.placeholder',\r\n },\r\n officialMinimumAge: {\r\n id: 'register-station.form.volunteer.minimum-age.placeholder',\r\n },\r\n skills: {\r\n id: 'register-station.form.volunteer.skills.placeholder',\r\n },\r\n officialGroup: {\r\n id: 'register-station.form.volunteer.phone.placeholder',\r\n },\r\n },\r\n },\r\n payment: {\r\n form: {\r\n title: {\r\n id: 'register-form.payment.form.title',\r\n },\r\n paymentType: {\r\n id: 'register-station.form.payment.payment-type.placeholder',\r\n },\r\n currency: {\r\n id: 'register-station.form.payment.currency.placeholder',\r\n },\r\n groupPayment: {\r\n id: 'register-station.form.payment.groupPayment.placeholder',\r\n },\r\n paymentAdult: {\r\n id: 'register-station.form.payment.payment-adult.placeholder',\r\n },\r\n paymentChild: {\r\n id: 'register-station.form.payment.payment-child.placeholder',\r\n },\r\n },\r\n },\r\n addStationButton: {\r\n id: 'register-station.add-station-button',\r\n },\r\n myStation: {\r\n title: {\r\n id: 'register-station.my-station.table.title',\r\n },\r\n list: {\r\n id: {\r\n id: 'register-station.table.my-station.id.placeholder',\r\n },\r\n description: {\r\n id: 'register-station.table.my-station.description.placeholder',\r\n },\r\n startTime: {\r\n id: 'register-station.table.my-station.start-time.placeholder',\r\n },\r\n endTime: {\r\n id: 'register-station.table.my-station.end-time.placeholder',\r\n },\r\n municipality: {\r\n id: 'register-station.table.my-station.municipality.placeholder',\r\n },\r\n amount: {\r\n id: 'register-station.table.my-station.amount.placeholder',\r\n },\r\n minimumAge: {\r\n id: 'register-station.table.my-station.minimum-age.placeholder',\r\n },\r\n type: {\r\n id: 'register-station.table.my-station.type.placeholder',\r\n },\r\n currency: {\r\n id: 'register-station.table.my-station.currency.placeholder',\r\n },\r\n paymentGroup: {\r\n id: 'register-station.table.my-station.payment-group.placeholder',\r\n },\r\n paymentAdult: {\r\n id: 'register-station.table.my-station.payment-adult.placeholder',\r\n },\r\n paymentChild: {\r\n id: 'register-station.table.my-station.payment-child.placeholder',\r\n },\r\n skills: {\r\n id: 'register-station.table.my-station.skills.placeholder',\r\n },\r\n officialGroup: {\r\n id: 'register-station.table.my-station.official-group.placeholder',\r\n },\r\n status: {\r\n id: 'register-station.table.my-station.status.placeholder',\r\n },\r\n groupPayment: {\r\n id: 'register-station.table.my-station.group-payment.placeholder',\r\n },\r\n },\r\n },\r\n deleteTitle: {\r\n id: 'register-event.my-station.delete.title',\r\n },\r\n deleteMessage: {\r\n id: 'register-event.my-station.delete.text',\r\n },\r\n nextButton: {\r\n id: 'register-event.my-station.next-button',\r\n },\r\n cancelDeleteButton: {\r\n id: 'message.cancel-delete-button',\r\n },\r\n noStationsMessage: {\r\n id: 'register-event.no-stations-yet-message',\r\n },\r\n stationNameAlreadyExistError: {\r\n id: 'station.station-name-already-exist-error',\r\n },\r\n status: {\r\n manned: {\r\n id: 'register-event.my-event.status.manned',\r\n },\r\n unmanned: {\r\n id: 'register-event.my-event.status.unmanned',\r\n },\r\n },\r\n paymentTypeList: {\r\n groupPayment: { \r\n value: {\r\n id: 'station.payment-type.GROUPPAYMENT',\r\n },\r\n },\r\n perPerson: {\r\n value: {\r\n id: 'station.payment-type.PERPERSON',\r\n },\r\n },\r\n hourlyRate: {\r\n value: {\r\n id: 'station.payment-type.HOURLYRATE',\r\n },\r\n },\r\n compensationByAgreement: {\r\n value: {\r\n id: 'station.payment-type.COMPENSATIONBYAGREEMENT',\r\n },\r\n },\r\n },\r\n staffPerStation: {\r\n title: {\r\n id: \"progress-bar.staff-station\"\r\n },\r\n info: {\r\n id: \"progress-bar.staff-station.info\"\r\n }\r\n },\r\n});\r\n","export const municipalities = [\r\n {id: '1440', name: 'Ale'},\r\n {id: '1489', name: 'Alingsås' },\r\n {id: '764', name: 'Alvesta' },\r\n {id: '604', name: 'Aneby'},\r\n {id: '1984', name: 'Arboga'},\r\n {id: '2506', name: 'Arjeplog'},\r\n {id: '2505', name: 'Arvidsjaur'},\r\n {id: '1784', name: 'Arvika'},\r\n {id: '1882', name: 'Askersund'},\r\n {id: '2084', name: 'Avesta'},\r\n {id: '1460', name: 'Bengtsfors'},\r\n {id: '2326', name: 'Berg'},\r\n {id: '2403', name: 'Bjurholm'},\r\n {id: '1260', name: 'Bjuv'},\r\n {id: '2582', name: 'Boden'},\r\n {id: '1443', name: 'Bollebygd'},\r\n {id: '2183', name: 'Bollnäs'},\r\n {id: '885', name: 'Borgholm'},\r\n {id: '2081', name: 'Borlänge'},\r\n {id: '1490', name: 'Borås'},\r\n {id: '127', name: 'Botkyrka'},\r\n {id: '560', name: 'Boxholm'},\r\n {id: '1272', name: 'Bromölla'},\r\n {id: '2305', name: 'Bräcke'},\r\n {id: '1231', name: 'Burlöv'},\r\n {id: '1278', name: 'Båstad'},\r\n {id: '1438', name: 'Dals-Ed'},\r\n {id: '162', name: 'Danderyd'},\r\n {id: '1862', name: 'Degerfors'},\r\n {id: '2425', name: 'Dorotea'},\r\n {id: '1730', name: 'Eda'},\r\n {id: '125', name: 'Ekerö'},\r\n {id: '686', name: 'Eksjö'},\r\n {id: '862', name: 'Emmaboda'},\r\n {id: '381', name: 'Enköping'},\r\n {id: '484', name: 'Eskilstuna'},\r\n {id: '1285', name: 'Eslöv'},\r\n {id: '1445', name: 'Essunga'},\r\n {id: '1982', name: 'Fagersta'},\r\n {id: '1382', name: 'Falkenberg'},\r\n {id: '1499', name: 'Falköping'},\r\n {id: '2080', name: 'Falun'},\r\n {id: '1782', name: 'Filipstad'},\r\n {id: '562', name: 'Finspång'},\r\n {id: '482', name: 'Flen'},\r\n {id: '1763', name: 'Forshaga'},\r\n {id: '1439', name: 'Färgelanda'},\r\n {id: '2026', name: 'Gagnef'},\r\n {id: '662', name: 'Gislaved'},\r\n {id: '461', name: 'Gnesta'},\r\n {id: '617', name: 'Gnosjö'},\r\n {id: '980', name: 'Gotland'},\r\n {id: '1764', name: 'Grums'},\r\n {id: '1444', name: 'Grästorp'},\r\n {id: '1447', name: 'Gullspång'},\r\n {id: '2523', name: 'Gällivare'},\r\n {id: '2180', name: 'Gävle'},\r\n {id: '1480', name: 'Göteborg'},\r\n {id: '1471', name: 'Götene'},\r\n {id: '643', name: 'Habo'},\r\n {id: '1783', name: 'Hagfors'},\r\n {id: '1861', name: 'Hallsberg'},\r\n {id: '1961', name: 'Hallstahammar'},\r\n {id: '1380', name: 'Halmstad'},\r\n {id: '1761', name: 'Hammarö'},\r\n {id: '136', name: 'Haninge'},\r\n {id: '2583', name: 'Haparanda'},\r\n {id: '331', name: 'Heby'},\r\n {id: '2083', name: 'Hedemora'},\r\n {id: '1283', name: 'Helsingborg'},\r\n {id: '1466', name: 'Herrljunga'},\r\n {id: '1497', name: 'Hjo'},\r\n {id: '2104', name: 'Hofors'},\r\n {id: '126', name: 'Huddinge'},\r\n {id: '2184', name: 'Hudiksvall'},\r\n {id: '860', name: 'Hultsfred'},\r\n {id: '1315', name: 'Hylte'},\r\n {id: '305', name: 'Håbo'},\r\n {id: '1863', name: 'Hällefors'},\r\n {id: '2361', name: 'Härjedalen'},\r\n {id: '2280', name: 'Härnösand'},\r\n {id: '1401', name: 'Härryda'},\r\n {id: '1293', name: 'Hässleholm'},\r\n {id: '1284', name: 'Höganäs'},\r\n {id: '821', name: 'Högsby'},\r\n {id: '1266', name: 'Hörby'},\r\n {id: '1267', name: 'Höör'},\r\n {id: '2510', name: 'Jokkmokk'},\r\n {id: '123', name: 'Järfälla'},\r\n {id: '680', name: 'Jönköping'},\r\n {id: '2514', name: 'Kalix'},\r\n {id: '880', name: 'Kalmar'},\r\n {id: '1446', name: 'Karlsborg'},\r\n {id: '1082', name: 'Karlshamn'},\r\n {id: '1883', name: 'Karlskoga'},\r\n {id: '1080', name: 'Karlskrona'},\r\n {id: '1780', name: 'Karlstad'},\r\n {id: '483', name: 'Katrineholm'},\r\n {id: '1715', name: 'Kil'},\r\n {id: '513', name: 'Kinda'},\r\n {id: '2584', name: 'Kiruna'},\r\n {id: '1276', name: 'Klippan'},\r\n {id: '330', name: 'Knivsta'},\r\n {id: '2282', name: 'Kramfors'},\r\n {id: '1290', name: 'Kristianstad'},\r\n {id: '1781', name: 'Kristinehamn'},\r\n {id: '2309', name: 'Krokom'},\r\n {id: '1881', name: 'Kumla'},\r\n {id: '1384', name: 'Kungsbacka'},\r\n {id: '1960', name: 'Kungsör'},\r\n {id: '1482', name: 'Kungälv'},\r\n {id: '1261', name: 'Kävlinge'},\r\n {id: '1983', name: 'Köping'},\r\n {id: '1381', name: 'Laholm'},\r\n {id: '1282', name: 'Landskrona'},\r\n {id: '1860', name: 'Laxå'},\r\n {id: '1814', name: 'Lekeberg'},\r\n {id: '2029', name: 'Leksand'},\r\n {id: '1441', name: 'Lerum'},\r\n {id: '761', name: 'Lessebo'},\r\n {id: '186', name: 'Lidingö'},\r\n {id: '1494', name: 'Lidköping'},\r\n {id: '1462', name: 'LillaEdet'},\r\n {id: '1885', name: 'Lindesberg'},\r\n {id: '580', name: 'Linköping'},\r\n {id: '781', name: 'Ljungby'},\r\n {id: '2161', name: 'Ljusdal'},\r\n {id: '1864', name: 'Ljusnarsberg'},\r\n {id: '1262', name: 'Lomma'},\r\n {id: '2085', name: 'Ludvika'},\r\n {id: '2580', name: 'Luleå'},\r\n {id: '1281', name: 'Lund'},\r\n {id: '2481', name: 'Lycksele'},\r\n {id: '1484', name: 'Lysekil'},\r\n {id: '1280', name: 'Malmö'},\r\n {id: '2023', name: 'Malung-Sälen'},\r\n {id: '2418', name: 'Malå'},\r\n {id: '1493', name: 'Mariestad'},\r\n {id: '1463', name: 'Mark'},\r\n {id: '767', name: 'Markaryd'},\r\n {id: '1461', name: 'Mellerud'},\r\n {id: '586', name: 'Mjölby'},\r\n {id: '2062', name: 'Mora'},\r\n {id: '583', name: 'Motala'},\r\n {id: '642', name: 'Mullsjö'},\r\n {id: '1430', name: 'Munkedal'},\r\n {id: '1762', name: 'Munkfors'},\r\n {id: '1481', name: 'Mölndal'},\r\n {id: '861', name: 'Mönsterås'},\r\n {id: '840', name: 'Mörbylånga'},\r\n {id: '182', name: 'Nacka'},\r\n {id: '1884', name: 'Nora'},\r\n {id: '1962', name: 'Norberg'},\r\n {id: '2132', name: 'Nordanstig'},\r\n {id: '2401', name: 'Nordmaling'},\r\n {id: '581', name: 'Norrköping'},\r\n {id: '188', name: 'Norrtälje'},\r\n {id: '2417', name: 'Norsjö'},\r\n {id: '881', name: 'Nybro'},\r\n {id: '140', name: 'Nykvarn'},\r\n {id: '480', name: 'Nyköping'},\r\n {id: '192', name: 'Nynäshamn'},\r\n {id: '682', name: 'Nässjö'},\r\n {id: '2101', name: 'Ockelbo'},\r\n {id: '1060', name: 'Olofström'},\r\n {id: '2034', name: 'Orsa'},\r\n {id: '1421', name: 'Orust'},\r\n {id: '1273', name: 'Osby'},\r\n {id: '882', name: 'Oskarshamn'},\r\n {id: '2121', name: 'Ovanåker'},\r\n {id: '481', name: 'Oxelösund'},\r\n {id: '2521', name: 'Pajala'},\r\n {id: '1402', name: 'Partille'},\r\n {id: '1275', name: 'Perstorp'},\r\n {id: '2581', name: 'Piteå'},\r\n {id: '2303', name: 'Ragunda'},\r\n {id: '2409', name: 'Robertsfors'},\r\n {id: '1081', name: 'Ronneby'},\r\n {id: '2031', name: 'Rättvik'},\r\n {id: '1981', name: 'Sala'},\r\n {id: '128', name: 'Salem'},\r\n {id: '2181', name: 'Sandviken'},\r\n {id: '191', name: 'Sigtuna'},\r\n {id: '1291', name: 'Simrishamn'},\r\n {id: '1265', name: 'Sjöbo'},\r\n {id: '1495', name: 'Skara'},\r\n {id: '2482', name: 'Skellefteå'},\r\n {id: '1904', name: 'Skinnskatteberg'},\r\n {id: '1264', name: 'Skurup'},\r\n {id: '1496', name: 'Skövde'},\r\n {id: '2061', name: 'Smedjebacken'},\r\n {id: '2283', name: 'Sollefteå'},\r\n {id: '163', name: 'Sollentuna'},\r\n {id: '184', name: 'Solna'},\r\n {id: '2422', name: 'Sorsele'},\r\n {id: '1427', name: 'Sotenäs'},\r\n {id: '1230', name: 'Staffanstorp'},\r\n {id: '1415', name: 'Stenungsund'},\r\n {id: '180', name: 'Stockholm'},\r\n {id: '1760', name: 'Storfors'},\r\n {id: '2421', name: 'Storuman'},\r\n {id: '486', name: 'Strängnäs'},\r\n {id: '1486', name: 'Strömstad'},\r\n {id: '2313', name: 'Strömsund'},\r\n {id: '183', name: 'Sundbyberg'},\r\n {id: '2281', name: 'Sundsvall'},\r\n {id: '1766', name: 'Sunne'},\r\n {id: '1907', name: 'Surahammar'},\r\n {id: '1214', name: 'Svalöv'},\r\n {id: '1263', name: 'Svedala'},\r\n {id: '1465', name: 'Svenljunga'},\r\n {id: '1785', name: 'Säffle'},\r\n {id: '2082', name: 'Säter'},\r\n {id: '684', name: 'Sävsjö'},\r\n {id: '2182', name: 'Söderhamn'},\r\n {id: '582', name: 'Söderköping'},\r\n {id: '181', name: 'Södertälje'},\r\n {id: '1083', name: 'Sölvesborg'},\r\n {id: '1435', name: 'Tanum'},\r\n {id: '1472', name: 'Tibro'},\r\n {id: '1498', name: 'Tidaholm'},\r\n {id: '360', name: 'Tierp'},\r\n {id: '2262', name: 'Timrå'},\r\n {id: '763', name: 'Tingsryd'},\r\n {id: '1419', name: 'Tjörn'},\r\n {id: '1270', name: 'Tomelilla'},\r\n {id: '1737', name: 'Torsby'},\r\n {id: '834', name: 'Torsås'},\r\n {id: '1452', name: 'Tranemo'},\r\n {id: '687', name: 'Tranås'},\r\n {id: '1287', name: 'Trelleborg'},\r\n {id: '1488', name: 'Trollhättan'},\r\n {id: '488', name: 'Trosa'},\r\n {id: '138', name: 'Tyresö'},\r\n {id: '160', name: 'Täby'},\r\n {id: '1473', name: 'Töreboda'},\r\n {id: '1485', name: 'Uddevalla'},\r\n {id: '1491', name: 'Ulricehamn'},\r\n {id: '2480', name: 'Umeå'},\r\n {id: '114', name: 'Upplands Väsby'},\r\n {id: '139', name: 'Upplands-Bro'},\r\n {id: '380', name: 'Uppsala'},\r\n {id: '760', name: 'Uppvidinge'},\r\n {id: '584', name: 'Vadstena'},\r\n {id: '665', name: 'Vaggeryd'},\r\n {id: '563', name: 'Valdemarsvik'},\r\n {id: '115', name: 'Vallentuna'},\r\n {id: '2021', name: 'Vansbro'},\r\n {id: '1470', name: 'Vara'},\r\n {id: '1383', name: 'Varberg'},\r\n {id: '187', name: 'Vaxholm'},\r\n {id: '1233', name: 'Vellinge'},\r\n {id: '685', name: 'Vetlanda'},\r\n {id: '2462', name: 'Vilhelmina'},\r\n {id: '884', name: 'Vimmerby'},\r\n {id: '2404', name: 'Vindeln'},\r\n {id: '428', name: 'Vingåker'},\r\n {id: '1442', name: 'Vårgårda'},\r\n {id: '1487', name: 'Vänersborg'},\r\n {id: '2460', name: 'Vännäs'},\r\n {id: '120', name: 'Värmdö'},\r\n {id: '683', name: 'Värnamo'},\r\n {id: '883', name: 'Västervik'},\r\n {id: '1980', name: 'Västerås'},\r\n {id: '780', name: 'Växjö'},\r\n {id: '512', name: 'Ydre'},\r\n {id: '1286', name: 'Ystad'},\r\n {id: '1492', name: 'Åmål'},\r\n {id: '2260', name: 'Ånge'},\r\n {id: '2321', name: 'Åre'},\r\n {id: '1765', name: 'Årjäng'},\r\n {id: '2463', name: 'Åsele'},\r\n {id: '1277', name: 'Åstorp'},\r\n {id: '561', name: 'Åtvidaberg'},\r\n {id: '765', name: 'Älmhult'},\r\n {id: '2039', name: 'Älvdalen'},\r\n {id: '319', name: 'Älvkarleby'},\r\n {id: '2560', name: 'Älvsbyn'},\r\n {id: '1292', name: 'Ängelholm'},\r\n {id: '1407', name: 'Öckerö'},\r\n {id: '509', name: 'Ödeshög'},\r\n {id: '1880', name: 'Örebro'},\r\n {id: '1257', name: 'Örkelljunga'},\r\n {id: '2284', name: 'Örnsköldsvik'},\r\n {id: '2380', name: 'Östersund'},\r\n {id: '117', name: 'Österåker'},\r\n {id: '382', name: 'Östhammar'},\r\n {id: '1256', name: 'Östra Göinge'},\r\n {id: '2513', name: 'Överkalix'},\r\n {id: '2518', name: 'Övertorneå'},\r\n {id: '3001', name: 'Trysil (Norge)'}\r\n];\r\n","import { Auth, API } from 'aws-amplify';\r\n\r\nexport const getUserByEmail = ({email}) =>\r\n Auth.currentSession()\r\n .then((session) => {\r\n const request = {\r\n headers: {\r\n Authorization: session.idToken.jwtToken,\r\n },\r\n };\r\n return API.get('volex-protected', `/user/${email}`, request);\r\n });\r\n\r\nexport const createUser = (data) =>\r\n Auth.currentSession()\r\n .then((session) => {\r\n const request = {\r\n body: data,\r\n headers: {\r\n Authorization: session.idToken.jwtToken,\r\n },\r\n };\r\n return API.post('volex-protected', `/user`, request);\r\n });","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n\tinputFieldPlaceholder: {\r\n\t\tid: 'google-maps.input-field-placeholder'\r\n\t}\r\n})","export const API_KEY = \"AIzaSyA_dof29ei1FTL9fW8NACMhJrur99SGn2I\";","import React, { useState, useCallback } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { GoogleMap, StandaloneSearchBox, Marker, useJsApiLoader } from '@react-google-maps/api';\r\nimport { injectIntl } from 'react-intl';\r\nimport messages from './messages';\r\nimport Geocode from 'react-geocode';\r\nimport memoize from 'memoize-one';\r\nimport { API_KEY } from \"./apiConfig\";\r\n\r\nGeocode.setApiKey(API_KEY);\r\nGeocode.setLanguage(\"sv\");\r\nGeocode.setRegion(\"se\");\r\n\r\n\r\n// Coordinate bounds for sweden\r\nconst SWEDEN_NE = {lat: 69.1062472602, lng: 23.9033785336};\r\nconst SWEDEN_SW = {lat: 55.3617373725, lng: 11.0273686052};\r\n\r\nconst containerStyle = {\r\n height: '100%',\r\n width: '100%',\r\n alignContent: 'center',\r\n marginBottom: '15px'\r\n};\r\n\r\nconst inputStyle = {\r\n boxSizing: `border-box`,\r\n border: `1px solid transparent`,\r\n width: `50%`,\r\n height: `100%`,\r\n padding: `0 12px`,\r\n borderRadius: `3px`,\r\n boxShadow: `0 2px 6px rgba(0, 0, 0, 0.3)`,\r\n fontSize: `24px`,\r\n outline: `none`,\r\n textOverflow: `ellipses`,\r\n position: 'relative',\r\n top: 15,\r\n left: 215\r\n};\r\n\r\nconst libraries = ['places'];\r\n\r\nfunction MapsComponent(props) {\r\n const { isLoaded } = useJsApiLoader({\r\n id: 'google-map-script',\r\n region: 'se',\r\n googleMapsApiKey: API_KEY,\r\n libraries: libraries\r\n })\r\n\r\n const [mapRef, setMapRef] = useState(null);\r\n const [searchBox, setSearchBox] = useState(null);\r\n const [bounds, setBounds] = useState(null);\r\n const [markerPosition, setMarkerPosition] = useState(props.markerLocation);\r\n const [showMarker, setShowMarker] = useState(props.showMarker);\r\n const [markerAnimation, setMarkerAnimation] = useState(2); //Animation 2 == DROP\r\n\r\n const positionMarker = (coordinates) => {\r\n if(!showMarker){\r\n setMarkerAnimation(2);\r\n setShowMarker(true);\r\n }\r\n setMarkerPosition(coordinates);\r\n props.onMarkerChange(coordinates);\r\n }\r\n\r\n const bounceMarker = () => {\r\n setMarkerAnimation(1); // Animation 1 == BOUNCE, one bounce = 750ms\r\n setTimeout(() => setMarkerAnimation(null), 750); // this means it will bounce once\r\n }\r\n\r\n const onMapClick = (e) => {\r\n if (props.readOnly) \r\n return;\r\n \r\n if (showMarker)\r\n bounceMarker();\r\n else {\r\n const coordinates = {\r\n lat: e.latLng.lat(),\r\n lng: e.latLng.lng()\r\n };\r\n positionMarker(coordinates);\r\n }\r\n }\r\n\r\n const onMapDblClick = (e) => {\r\n if (props.readOnly)\r\n return;\r\n \r\n const coordinates = {\r\n lat: e.latLng.lat(),\r\n lng: e.latLng.lng()\r\n };\r\n\r\n positionMarker(coordinates);\r\n }\r\n\r\n const onMarkerRightClick = (e) => {\r\n if (props.readOnly)\r\n return;\r\n\r\n setShowMarker(false);\r\n setMarkerPosition(null);\r\n props.onMarkerRemove();\r\n }\r\n\r\n const onMarkerClick = (e) => {\r\n //TODO: make the map fitbounds on marker location\r\n }\r\n\r\n const onMarkerDragEnd = (e) => {\r\n bounceMarker();\r\n\r\n const coordinates = {\r\n lat: e.latLng.lat(),\r\n lng: e.latLng.lng()\r\n };\r\n\r\n positionMarker(coordinates);\r\n };\r\n\r\n const onSearch = () => {\r\n const place = searchBox.getPlaces()[0];\r\n if(place.plus_code) { //If searching for a coordinate you probably want the pin to go exactly there\r\n const coordinates = {\r\n lat: place.geometry.location.lat(),\r\n lng: place.geometry.location.lng()\r\n };\r\n bounceMarker();\r\n positionMarker(coordinates);\r\n }\r\n mapRef.fitBounds(place.geometry.viewport);\r\n props.onSearch(place);\r\n }\r\n\r\n const onLoad = map => {\r\n initBounds();\r\n setMapRef(map);\r\n }\r\n\r\n const initBounds = useCallback(function callback() {\r\n // Set coordinate bounds for the search box\r\n // Can only access maps API in this function\r\n const ne = new window.google.maps.LatLng(SWEDEN_NE);\r\n const sw = new window.google.maps.LatLng(SWEDEN_SW);\r\n setBounds(new window.google.maps.LatLngBounds(sw, ne));\r\n }, []);\r\n\r\n return isLoaded ? (\r\n \r\n {props.showSearchBox &&\r\n \r\n { e.key === 'Enter' && e.preventDefault(); }} // Prevent the enter key from submitting forms when searching\r\n />\r\n \r\n }\r\n \r\n \r\n ) : <>\r\n}\r\n\r\nexport function formatCoordinates(coordinates) {\r\n return \"( \" + coordinates.lat.toFixed(6) + \" , \" + coordinates.lng.toFixed(6) + \" )\"\r\n}\r\n\r\nexport const getCoordinatesFromLocation = memoize(\r\n location => Geocode.fromAddress(location).then(\r\n response => { \r\n return response.results[0].geometry.location;\r\n },\r\n error => {\r\n console.error(error);\r\n return null;\r\n }\r\n )\r\n)\r\n\r\nexport const getLocationFromCoordinates = memoize(\r\n coordinates => Geocode.fromLatLng(coordinates.lat, coordinates.lng).then(\r\n response => {\r\n return response.results[0].formatted_address;\r\n },\r\n error => {\r\n console.error(error);\r\n return null;\r\n }\r\n )\r\n)\r\n\r\nMapsComponent.propTypes = {\r\n center: PropTypes.object.isRequired,\r\n showSearchBox: PropTypes.bool.isRequired,\r\n zoom: PropTypes.number.isRequired,\r\n onSearch: PropTypes.func,\r\n onMarkerChange: PropTypes.func,\r\n markerLocation: PropTypes.object,\r\n showMarker: PropTypes.bool,\r\n readOnly: PropTypes.bool,\r\n};\r\n\r\nexport default injectIntl(MapsComponent);","import React, { Fragment } from \"react\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport {\r\n H2,\r\n TextLabel,\r\n FormGroup,\r\n Input,\r\n TextArea,\r\n DatePicker,\r\n Select,\r\n MultiSelect,\r\n} from \"../../../../components/index\";\r\nimport { Button } from \"../../../../components/Buttons/index\";\r\nimport { Field, reduxForm } from \"redux-form\";\r\nimport {\r\n required,\r\n unique,\r\n positiveNumbers,\r\n integer,\r\n maxLength250\r\n} from \"../../../../validators/index\";\r\nimport styled from \"styled-components\";\r\nimport messages from \"./messages\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\nimport { municipalities } from \"../../../../constants/municipalities\";\r\nimport { eventStatus } from \"../reducer\";\r\nimport AddUserForm from \"../../../../components/ContactForm/AddUserForm/index\";\r\nimport { status as userEmailStatus } from \"../../../User/reducer\";\r\nimport { getUserByEmail } from \"../../../User/service\";\r\nimport { lists } from \"../../../../constants/lists.js\"; // TODO: Add updated volex-data repository\r\nimport moment from \"moment\";\r\nimport MapsComponent, { \r\n formatCoordinates, \r\n getCoordinatesFromLocation, \r\n getLocationFromCoordinates \r\n} from '../../../../components/Map';\r\nimport { breakPoints } from \"../../../../constants/styling-constants\";\r\n\r\nconst { skills, payments, currencies } = lists;\r\n\r\nconst FormWrapper = styled.form`\r\n margin-top: 80px;\r\n`;\r\n\r\nconst MapsWrapper = styled.div`\r\n height: 500px;\r\n width: 600px;\r\n @media (max-width: ${breakPoints.sm}px) {\r\n width: 350px;\r\n height: 275px;\r\n }\r\n`;\r\n\r\nconst dateRangeValidation = (value, allValues) => {\r\n const start = moment(allValues.start).format();\r\n const end = moment(value).format();\r\n\r\n return end < start ? \"Slutdatum måste vara senare än startdatum\" : undefined; //TODO: Read from messages.js instead of fixed\r\n};\r\n\r\nconst uniqueNameValidator = (stations = [], formatMessage) =>\r\n unique(stations, formatMessage(messages.stationNameAlreadyExistError));\r\n\r\nclass StationNewForm extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.handleSearch = this.handleSearch.bind(this);\r\n this.handleMarkerChange = this.handleMarkerChange.bind(this);\r\n this.handleMarkerRemove = this.handleMarkerRemove.bind(this);\r\n this.handlePaymentChange = this.handlePaymentChange.bind(this);\r\n this.renderSkills = this.renderSkills.bind(this);\r\n this.renderMunicipalities = this.renderMunicipalities.bind(this);\r\n this.onStationSubmit = this.onStationSubmit.bind(this);\r\n this.handleChangeStart = this.handleChangeStart.bind(this);\r\n this.toggleAddUserModal = this.toggleAddUserModal.bind(this);\r\n\r\n this.state = {\r\n showAddUserModal: false,\r\n compensationByAgreement: false,\r\n hourRate: false,\r\n submitting: false,\r\n showMarker: false,\r\n uniqueNameValidator: uniqueNameValidator(\r\n props.event && Array.isArray(props.event.stations)\r\n ? props.event.stations\r\n : [],\r\n props.intl.formatMessage\r\n )\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n if (\r\n this.props.location &&\r\n this.props.location.pathname === \"/my-pages/events/new\"\r\n ) {\r\n window.scrollTo(0, 0);\r\n }\r\n this.setCoordinates(this.props.event.city);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.newUserStatus === userEmailStatus.SUBMIT_SUCCESS && this.props.newUserStatus !== userEmailStatus.SUBMIT_SUCCESS) {\r\n this.toggleAddUserModal();\r\n }\r\n if (\r\n nextProps.status === eventStatus.SUCCESS &&\r\n this.props.status === eventStatus.SUBMITTING\r\n ) {\r\n this.setState({\r\n submitting: false,\r\n uniqueNameValidator: uniqueNameValidator(\r\n nextProps.event.stations,\r\n nextProps.intl.formatMessage\r\n )\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Call touch on the start or end to validate when one changes\r\n */\r\n handleChangeStart() {\r\n this.props.touch(\"end\");\r\n }\r\n\r\n renderMunicipalities() {\r\n return (\r\n this.setCoordinates(municipalities.find(m => m.id === fieldValue).name)}\r\n />\r\n );\r\n }\r\n\r\n renderSkills() {\r\n const skillOptions = skills.map(skill => ({\r\n id: skill,\r\n name: this.props.intl.formatMessage({ id: `lists.skills.${skill}` })\r\n }));\r\n return (\r\n \r\n );\r\n }\r\n\r\n renderAddUserModal() {\r\n const email = this.state.teamLeaderEmail\r\n\r\n return (\r\n \r\n )\r\n }\r\n\r\n setCoordinates(location) {\r\n getCoordinatesFromLocation(location).then(coordinates =>\r\n this.setState({center: coordinates})\r\n )\r\n }\r\n\r\n handleMarkerChange(coordinates) {\r\n getLocationFromCoordinates(coordinates).then(location => {\r\n this.setState({\r\n markerLocation: location,\r\n markerCoordinates: coordinates,\r\n showMarker: true\r\n })\r\n })\r\n }\r\n\r\n handleMarkerRemove() {\r\n this.setState({\r\n markerLocation: null,\r\n markerCoordinates: null,\r\n showMarker: false\r\n });\r\n }\r\n\r\n handleSearch(place) {\r\n this.setState({\r\n center: place.geometry.location\r\n });\r\n }\r\n\r\n handlePaymentChange(paymentTypeFieldValue) {\r\n switch (paymentTypeFieldValue) {\r\n case \"COMPENSATIONBYAGREEMENT\":\r\n this.props.change(\"compensationByAgreement\", \"\");\r\n this.props.change(\"groupPayment\", \"\");\r\n this.props.change(\"paymentAdult\", \"\");\r\n this.props.change(\"paymentChild\", \"\");\r\n this.setState({\r\n hourRate: false,\r\n compensationByAgreement: true\r\n });\r\n return;\r\n case \"NOCOMPENSATION\":\r\n this.props.change(\"compensationByAgreement\", \"\");\r\n this.props.change(\"groupPayment\", \"\");\r\n this.props.change(\"paymentAdult\", \"\");\r\n this.props.change(\"paymentChild\", \"\");\r\n this.setState({\r\n hourRate: false,\r\n compensationByAgreement: true\r\n });\r\n return;\r\n case \"HOURLYRATE\":\r\n this.props.change(\"groupPayment\", \"\");\r\n this.setState({\r\n hourRate: false,\r\n compensationByAgreement: false\r\n });\r\n return;\r\n case \"GROUPPAYMENT\":\r\n this.props.change(\"paymentAdult\", \"\");\r\n this.props.change(\"paymentChild\", \"\");\r\n this.setState({\r\n hourRate: true,\r\n compensationByAgreement: false\r\n });\r\n return;\r\n case \"PERPERSON\":\r\n this.props.change(\"groupPayment\", \"\");\r\n this.setState({\r\n hourRate: false,\r\n compensationByAgreement: false\r\n });\r\n return;\r\n default:\r\n return;\r\n }\r\n }\r\n\r\n toggleAddUserModal() {\r\n this.setState({ showAddUserModal: !this.state.showAddUserModal });\r\n }\r\n\r\n onStationSubmit(station) {\r\n if (this.state.submitting) return;\r\n\r\n if (this.state.markerCoordinates) {\r\n station = {...station, markerLocation: this.state.markerLocation, markerCoordinates: this.state.markerCoordinates};\r\n }\r\n\r\n if (station.teamLeaderEmail) {\r\n getUserByEmail({email: station.teamLeaderEmail})\r\n .then(resp => {\r\n const newStation = station;\r\n this.setState({\r\n submitting: true\r\n });\r\n this.props.onSubmitStation(newStation);\r\n }).catch(e => this.toggleAddUserModal());\r\n } else {\r\n const newStation = station;\r\n this.setState({\r\n submitting: true\r\n });\r\n this.props.onSubmitStation(newStation);\r\n }\r\n }\r\n\r\n render() {\r\n const paymentOptions = payments.map(payment => ({\r\n id: payment,\r\n name: this.props.intl.formatMessage({ id: `lists.payments.${payment}` })\r\n }));\r\n const currencyOptions = currencies.map(currency => ({\r\n id: currency,\r\n name: this.props.intl.formatMessage({\r\n id: `lists.currencies.${currency}`\r\n })\r\n }));\r\n return (\r\n \r\n \r\n \r\n \r\n

    \r\n \r\n

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.renderMunicipalities()}\r\n \r\n \r\n \r\n \r\n \r\n {this.state.center && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {this.state.markerLocation ? this.state.markerLocation : }\r\n \r\n \r\n {this.state.markerCoordinates ? formatCoordinates(this.state.markerCoordinates) : \"\" }\r\n \r\n \r\n \r\n \r\n \r\n \r\n this.setState({teamLeaderEmail: newValue})}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.renderSkills()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!this.state.compensationByAgreement ? (\r\n \r\n \r\n {this.state.hourRate ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n ) : null}\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n {this.state.showAddUserModal && this.renderAddUserModal()}\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default reduxForm({\r\n form: \"station\"\r\n})(injectIntl(StationNewForm));\r\n","import React, { Component } from \"react\";\r\nimport {\r\n H2,\r\n BorderTable,\r\n ConfirmationModal\r\n} from \"../../../../components/index\";\r\nimport moment from \"moment\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport { DeleteButton } from \"../../../../components/Buttons/index\";\r\nimport styled from \"styled-components\";\r\nimport { colors } from \"../../../../constants/styling-constants\";\r\nimport messages from \"./messages\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\nimport { eventStatus } from \"../reducer\";\r\nimport { municipalities } from \"../../../../constants/municipalities\";\r\n\r\nconst Wrapper = styled.div`\r\n margin-bottom: 80px;\r\n`;\r\n\r\nconst Status = styled.div`\r\n padding: 8px;\r\n background-color: ${colors.gray};\r\n width: 100%;\r\n color: #FFF;\r\n text-align: center;\r\n`;\r\n\r\nconst StatusUnmanned = Status.extend`\r\n background-color: ${colors.pink};\r\n`;\r\n\r\nconst Button = ({ row, callback }) => {\r\n const onClick = () => {\r\n callback(row);\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nclass StationsList extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n showModal: false,\r\n stationToDelete: null,\r\n deleting: false,\r\n stationsList: this.props.stationsList,\r\n };\r\n\r\n this.renderRow = this.renderRow.bind(this);\r\n this.onDelete = this.onDelete.bind(this);\r\n this.onConfirmDelete = this.onConfirmDelete.bind(this);\r\n this.toggleModal = this.toggleModal.bind(this);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.status === eventStatus.SUCCESS && this.props.status === eventStatus.SUBMITTING && this.state.deleting) {\r\n this.setState({\r\n showModal: false,\r\n stationToDelete: null,\r\n deleting: false,\r\n });\r\n }\r\n }\r\n\r\n onDelete(row) {\r\n this.setState({\r\n showModal: true,\r\n stationToDelete: row,\r\n });\r\n }\r\n\r\n onConfirmDelete() {\r\n this.setState({\r\n deleting: true,\r\n });\r\n\r\n const updatedList = this.props.stationsList.slice();\r\n const indexToRemove = updatedList.indexOf(this.state.stationToDelete);\r\n updatedList.splice(indexToRemove, 1);\r\n this.props.onDeleteStation(updatedList);\r\n }\r\n\r\n toggleModal() {\r\n this.setState({\r\n showModal: !this.state.showModal,\r\n });\r\n }\r\n\r\n renderStatus(status) {\r\n switch (status) {\r\n case \"MANNED\":\r\n return ;\r\n default:\r\n return ;\r\n }\r\n }\r\n\r\n renderRow(row, key) {\r\n return (\r\n \r\n {row.name}\r\n {moment(row.start).format(\"HH:mm\")}\r\n {moment(row.end).format(\"HH:mm\")}\r\n {(municipalities.find(municipality => municipality.id === row.municipality) || {}).name}\r\n {row.officialQuantity}\r\n {row.officialMiniumumAge}\r\n {this.props.intl.formatMessage({ id: `station.payment-type.${row.paymentType}` })}\r\n {row.currency}\r\n {row.groupPayment}\r\n {row.paymentAdult}\r\n {row.paymentChild}\r\n {row.skills ? row.skills.map(skill => this.props.intl.formatMessage({ id: `lists.skills.${skill}` })).join(\", \") : null}\r\n {(!this.props.hideStatus && {this.renderStatus(\"UNMANNED\")})}\r\n {this.props.onDeleteStation ? : null}\r\n \r\n );\r\n }\r\n\r\n render() {\r\n const title = this.props.title ? this.props.title : messages.myStation.title\r\n return (\r\n \r\n \r\n \r\n

    \r\n {\r\n this.props.stationsList.length > 0\r\n ? \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {(!this.props.hideStatus && )}\r\n \r\n \r\n \r\n \r\n {this.props.stationsList.map(this.renderRow)}\r\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 injectIntl(StationsList);\r\n","import React, { Fragment } from \"react\";\r\nimport { connect } from \"react-redux\"\r\nimport { reset } from \"redux-form\";\r\nimport StationNewForm from \"./StationNewForm\";\r\nimport StationsList from \"./StationsList\";\r\nimport {\r\n H1,\r\n P,\r\n GeneralError,\r\n} from \"../../../../components/index\";\r\nimport { Button } from \"../../../../components/Buttons/index\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport messages from \"./messages\";\r\nimport moment from \"moment\";\r\nimport { injectIntl, FormattedMessage } from \"react-intl\";\r\n\r\nclass StationNewBase extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n stations: this.props.event && this.props.event.stations ? this.props.event.stations : [],\r\n addingStation: false,\r\n clickedNext: false,\r\n showError: false,\r\n };\r\n\r\n this.handleSubmitStation = this.handleSubmitStation.bind(this);\r\n this.handleDeleteStation = this.handleDeleteStation.bind(this);\r\n this.handleClickNext = this.handleClickNext.bind(this);\r\n }\r\n\r\n submitEvent(stationList) {\r\n this.setState({\r\n stations: stationList,\r\n });\r\n this.props.submitEvent({\r\n ...this.props.event,\r\n stations: stationList,\r\n });\r\n }\r\n\r\n handleSubmitStation(station) {\r\n this.submitEvent([\r\n ...this.state.stations,\r\n {\r\n ...station,\r\n id: Math.floor(Math.random() * 10000),\r\n },\r\n ]);\r\n // this.props.resetForm()\r\n }\r\n\r\n handleDeleteStation(stationsList) {\r\n this.submitEvent(stationsList);\r\n }\r\n\r\n handleClickNext() {\r\n if (this.state.stations.length < 1) {\r\n this.setState({\r\n showError: true,\r\n });\r\n } else {\r\n this.props.onClickNext(2);\r\n }\r\n }\r\n\r\n render() {\r\n const initialValues = {\r\n start: moment(this.props.event.date)\r\n .set({\r\n hour: 8,\r\n minute: 0\r\n })\r\n .format(\"YYYY-MM-DD HH:mm\"),\r\n end: moment(this.props.event.date)\r\n .set({\r\n hour: 18,\r\n minute: 0\r\n })\r\n .format(\"YYYY-MM-DD HH:mm\"),\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 {this.state.showError && this.state.stations.length < 1 ?\r\n : null}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch, ownProps) => ({\r\n resetForm: () => dispatch(reset(\"station\"))\r\n});\r\n\r\nexport default connect(null, mapDispatchToProps)(injectIntl(StationNewBase));\r\n","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n confirmTitle: {\r\n id: 'confirm-event.title',\r\n },\r\n confirmText1: {\r\n id: 'confirm-event.text-1',\r\n },\r\n confirmText2: {\r\n id: 'confirm-event.text-2',\r\n },\r\n confirmListElement1: {\r\n id: 'confirm-event.list-element-1',\r\n },\r\n confirmListElement2: {\r\n id: 'confirm-event.list-element-2',\r\n },\r\n event: {\r\n name: {\r\n id: 'confirm-event.name.placeholder',\r\n },\r\n date: {\r\n id: 'confirm-event.date.placeholder',\r\n },\r\n startTime: {\r\n id: 'confirm-event.startTime.placeholder',\r\n },\r\n city: {\r\n id: 'confirm-event.city.placeholder',\r\n },\r\n },\r\n confirmButton: {\r\n id: 'confirm-event-button',\r\n },\r\n confirmationModalTitle: {\r\n id: 'confirm-event.confirmation-modal.title',\r\n },\r\n confirmationModalText: {\r\n id: 'confirm-event.confirmation-modal.text',\r\n },\r\n eventConfirmedText: {\r\n id: 'confirm-event.event-confirmed-text',\r\n },\r\n cancelConfirmButton: {\r\n id: 'confirm-event.cancel-confirm-button',\r\n },\r\n confirmModalButton: {\r\n id: 'confirm-event.confirm-button',\r\n },\r\n});\r\n","import React, { Component, Fragment } from \"react\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\nimport messages from \"./messages\";\r\nimport { Field, reduxForm } from \"redux-form\";\r\nimport { Button } from \"../../../../components/Buttons/index\";\r\nimport { eventStatus } from \"../reducer\";\r\nimport styled from \"styled-components\";\r\n\r\nimport {\r\n H1,\r\n P,\r\n FormGroup,\r\n Input,\r\n DatePicker,\r\n ContentWrapper,\r\n ConfirmationModal,\r\n TimePicker\r\n} from \"../../../../components\";\r\n\r\nconst StyledList = styled.ul`\r\n list-style: circle;\r\n padding-left: 2em;\r\n line-height: 1.5;\r\n`;\r\n\r\nclass ConfirmEvent extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n showModal: false,\r\n confirming: false,\r\n eventStatus: this.props.event ? this.props.event.status : {},\r\n };\r\n\r\n this.handleConfirm = this.handleConfirm.bind(this);\r\n this.toggleModal = this.toggleModal.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.location && this.props.location.pathname === \"/my-pages/events/new\") {\r\n window.scrollTo(0, 0);\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.status === eventStatus.SUCCESS && this.props.status === eventStatus.SUBMITTING && this.state.confirming) {\r\n this.toggleModal();\r\n this.setState({\r\n confirming: false,\r\n eventStatus: nextProps.event.status,\r\n });\r\n }\r\n }\r\n\r\n handleConfirm() {\r\n this.setState({\r\n confirming: true,\r\n });\r\n\r\n this.props.confirmEvent(this.props.event);\r\n }\r\n\r\n toggleModal(e) {\r\n e && e.preventDefault();\r\n this.setState({\r\n showModal: !this.state.showModal,\r\n });\r\n }\r\n\r\n\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\n busy={this.state.confirming}\r\n theme=\"pink\"\r\n />\r\n \r\n \r\n {this.state.eventStatus === \"DRAFT\" ?\r\n \r\n :\r\n

    \r\n }\r\n \r\n
    \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nConfirmEvent = reduxForm({\r\n form: \"event\",\r\n})(ConfirmEvent);\r\n\r\nexport default injectIntl(ConfirmEvent);\r\n","import { connect } from \"react-redux\";\r\nimport { reset, submitEvent, confirmEvent } from \"../reducer\";\r\nimport ConfirmEvent from \"./ConfirmEvent\";\r\n\r\nconst mapStateToProps = (state, ownProps) => ({\r\n event: ownProps.event,\r\n status: state.event.status,\r\n initialValues: ownProps.event,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n submitEvent: data => dispatch(submitEvent(data)),\r\n confirmEvent: data => dispatch(confirmEvent(data)),\r\n resetEvent: () => dispatch(reset()),\r\n});\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(ConfirmEvent);\r\n","import React, { Component } from \"react\";\r\nimport { ContentWrapper, Container, ProgressBar } from \"../../../../components/index\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport RegisterEvent from \"../EventNew\";\r\nimport StationNewBase from \"../Station/StationNewBase\";\r\nimport ConfirmEvent from \"../ConfirmNewBase\";\r\nimport messages from \"../messages\";\r\nimport { colors } from \"../../../../constants/styling-constants\";\r\nimport { FormattedMessage } from \"react-intl\";\r\nimport { eventStatus } from \"../reducer\";\r\n\r\nconst states = [\r\n {\r\n step: 0,\r\n name: ,\r\n },\r\n {\r\n step: 1,\r\n name: ,\r\n },\r\n {\r\n step: 2,\r\n name: ,\r\n },\r\n];\r\n\r\nclass EventNewBase extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n currentStep: 0,\r\n clickedNext: false,\r\n nextStep: null,\r\n };\r\n\r\n this.goToStep = this.goToStep.bind(this);\r\n this.handleNextClick = this.handleNextClick.bind(this);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.status === eventStatus.SUCCESS && this.props.status === eventStatus.SUBMITTING && this.state.clickedNext) {\r\n this.goToStep(this.state.nextStep);\r\n this.setState({\r\n clickedNext: false,\r\n });\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.reset();\r\n }\r\n\r\n goToStep(step) {\r\n if (step >= 0 && step <= states.length) {\r\n this.setState({\r\n currentStep: step,\r\n });\r\n\r\n if (states[step] && states[step].link) {\r\n this.props.history.push(states[step].link);\r\n }\r\n }\r\n }\r\n\r\n handleNextClick(newEvent, step) {\r\n this.props.submitEvent(newEvent);\r\n this.setState({\r\n clickedNext: true,\r\n nextStep: step,\r\n });\r\n }\r\n\r\n renderPage() {\r\n switch (this.state.currentStep) {\r\n case 0:\r\n return ;\r\n case 1:\r\n return ;\r\n case 2:\r\n return ;\r\n default:\r\n return ;\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.renderPage()}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default EventNewBase;\r\n","import { connect } from \"react-redux\";\r\nimport { submitEvent, reset } from \"../reducer\";\r\nimport EventNewBase from \"./EventNewBase\";\r\n\r\nconst mapStateToProps = (state) => {\r\n const obj = {\r\n event: state.event.event,\r\n error: state.event.error,\r\n status: state.event.status,\r\n user: state.auth.user,\r\n newUserStatus: state.user.newUserStatus,\r\n };\r\n\r\n return obj;\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n submitEvent: data => dispatch(submitEvent(data)),\r\n reset: () => dispatch(reset({})),\r\n});\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(EventNewBase);\r\n","import React, { Component, Fragment } from \"react\";\r\nimport {\r\n H1,\r\n H2,\r\n Input,\r\n DatePicker,\r\n FormGroup,\r\n TimePicker,\r\n ConfirmationModal,\r\n} from \"../../../components\";\r\nimport { Button } from \"../../../components/Buttons\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport { connect } from \"react-redux\";\r\nimport { Field, reduxForm, formValueSelector } from \"redux-form\";\r\nimport { required, minLength3, maxLength250, afterTodaysDate } from \"../../../validators\";\r\nimport messages from \"./messages\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\n\r\nclass EventCopy extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n submitClicked: false,\r\n nextClicked: false,\r\n userAdded: false,\r\n showModal: false,\r\n };\r\n\r\n this.handleNext = this.handleNext.bind(this);\r\n this.makeEvent = this.makeEvent.bind(this);\r\n this.toggleModal = this.toggleModal.bind(this);\r\n this.handleConfirm = this.handleConfirm.bind(this);\r\n }\r\n\r\n componentDidMount () {\r\n const event = this.props.newEvent ? this.props.newEvent : this.props.event\r\n this.props.initialize({ name: event.name, \r\n city: event.city, \r\n newStart: new Date(event.startTime), \r\n date: this.props.newEvent ? new Date(event.date) : ''});\r\n }\r\n\r\n dateDayDifference(newDate, oldDate) {\r\n const date1 = new Date(newDate);\r\n const date2 = new Date(oldDate);\r\n\r\n const utc1 = Date.UTC(date1.getFullYear(), date1.getMonth(), date1.getDate());\r\n const utc2 = Date.UTC(date2.getFullYear(), date2.getMonth(), date2.getDate());\r\n\r\n return Math.floor((utc1 - utc2) / (1000 * 60 * 60 * 24));\r\n }\r\n\r\n incrementDate(oldDate, daysDiff, hoursDiff, minsDiff) {\r\n const date = new Date(oldDate);\r\n date.setDate(date.getDate() + daysDiff)\r\n date.setHours(date.getHours() + hoursDiff);\r\n date.setMinutes(date.getMinutes() + minsDiff);\r\n\r\n return date\r\n }\r\n\r\n makeEvent(fieldValues) {\r\n let newEvent = Object.assign({}, this.props.event);\r\n newEvent = Object.assign(newEvent, fieldValues);\r\n newEvent.id = null;\r\n newEvent.status = \"DRAFT\";\r\n\r\n // Update station start/end time according to new event start time\r\n const newStart = new Date(fieldValues.newStart);\r\n const oldStart = new Date(this.props.event.startTime);\r\n const hoursDiff = newStart.getHours() - oldStart.getHours();\r\n const minsDiff = newStart.getMinutes() - oldStart.getMinutes();\r\n \r\n const daysDiff = this.dateDayDifference(fieldValues.date, this.props.event.date);\r\n\r\n const stations = JSON.parse(JSON.stringify(this.props.event.stations));\r\n if (stations) {\r\n stations.forEach(s => {\r\n s.start = this.incrementDate(s.start, daysDiff, hoursDiff, minsDiff);\r\n s.end = this.incrementDate(s.end, daysDiff, hoursDiff, minsDiff);\r\n \r\n s.id = Math.floor(Math.random() * 10000);\r\n });\r\n }\r\n\r\n newEvent.startTime = fieldValues.newStart;\r\n newEvent.stations = [];\r\n\r\n return {\r\n ...newEvent,\r\n stations: stations,\r\n };\r\n }\r\n\r\n handleNext(fieldValues) {\r\n this.setState({\r\n fieldValues: fieldValues\r\n });\r\n if(fieldValues.name === this.props.event.name) {\r\n this.toggleModal();\r\n } else {\r\n this.setState({\r\n nextClicked: true\r\n });\r\n this.props.onClickNext(this.makeEvent(fieldValues), 2);\r\n }\r\n }\r\n\r\n toggleModal(e) {\r\n this.setState({\r\n showModal: !this.state.showModal\r\n });\r\n }\r\n\r\n handleConfirm() {\r\n this.setState({\r\n nextClicked: true\r\n });\r\n this.props.onClickNext(this.makeEvent(this.state.fieldValues), 2);\r\n }\r\n\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\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nEventCopy = reduxForm({\r\n form: \"event\"\r\n})(EventCopy);\r\n\r\n// Decorate with connect to read form values\r\nconst selector = formValueSelector(\"event\"); // <-- same as form name\r\n\r\nEventCopy = connect(state => {\r\n const included = selector(state, \"included\");\r\n\r\n return {\r\n included\r\n };\r\n})(EventCopy);\r\n\r\nexport default injectIntl(EventCopy);\r\n","import React, { useEffect, useState } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { injectIntl, FormattedMessage } from \"react-intl\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport messages from \"./messages\";\r\nimport PropTypes from \"prop-types\";\r\nimport { H2, P } from \"../../../../components\";\r\n\r\nconst Div = styled.div`\r\n .staff-per-station-table {\r\n margin-bottom: 50px;\r\n }\r\n`;\r\n\r\nfunction StaffPerStation({\r\n intl,\r\n eventOffers,\r\n event,\r\n setEventOffersToBeSubmitted,\r\n}) {\r\n const [offerRows, setOfferRows] = useState();\r\n const [selectedRowIndicies, setSelectedRowIndicies] = useState([]);\r\n\r\n function getTotalAttendance(offer) {\r\n const childAttendance = parseInt(offer.childAttendance);\r\n const adultAttendance = parseInt(offer.adultAttendance);\r\n\r\n return childAttendance + adultAttendance || 0;\r\n }\r\n\r\n useEffect(() => {\r\n if (!eventOffers || !event || !event.id || !eventOffers[event.id]) {\r\n return;\r\n }\r\n\r\n try {\r\n const newOffers = eventOffers[event.id]\r\n .filter((o) => o.status === \"ACCEPTED\")\r\n .map((o, i) => {\r\n const station = event.stations.find((s) => s.id === o.stationId);\r\n if (!station) return undefined;\r\n\r\n return {\r\n id: i,\r\n stationName: station.name,\r\n officialQuantity: parseInt(station.officialQuantity),\r\n groupName: o.group.name,\r\n signedUp: parseInt(o.volunteers),\r\n present: parseInt(getTotalAttendance(o)),\r\n groupId: o.group.groupId,\r\n stationId: station.id,\r\n };\r\n });\r\n setOfferRows(newOffers);\r\n } catch (e) {\r\n console.error(`Failed parsing number with error ${e}`);\r\n }\r\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n useEffect(() => {\r\n if (offerRows) {\r\n setEventOffersToBeSubmitted(\r\n offerRows\r\n .filter((or) => !selectedRowIndicies.includes(or.id))\r\n .map((o) => ({\r\n volunteers: o.signedUp,\r\n groupId: o.groupId,\r\n stationName: o.stationName,\r\n }))\r\n );\r\n }\r\n }, [offerRows, selectedRowIndicies]); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n const handleOnSelect = (row, isSelect) => {\r\n if (isSelect) {\r\n setSelectedRowIndicies([...selectedRowIndicies, row.id]);\r\n } else {\r\n setSelectedRowIndicies(selectedRowIndicies.filter((r) => r !== row.id));\r\n }\r\n };\r\n\r\n const handleOnSelectAll = (isSelect, rows) => {\r\n const ids = rows.map((r) => r.id);\r\n if (isSelect) {\r\n setSelectedRowIndicies(ids);\r\n } else {\r\n setSelectedRowIndicies([]);\r\n }\r\n };\r\n\r\n const columns = [\r\n {\r\n dataField: \"id\",\r\n text: \"id\",\r\n hidden: true,\r\n sort: true,\r\n },\r\n {\r\n dataField: \"stationName\",\r\n text: intl.formatMessage(messages.station.workStation),\r\n headerStyle: {\r\n textAlign: \"center\",\r\n },\r\n sort: true,\r\n },\r\n {\r\n dataField: \"officialQuantity\",\r\n text: intl.formatMessage(messages.station.officialQuantity),\r\n headerStyle: {\r\n textAlign: \"center\",\r\n },\r\n sort: true,\r\n },\r\n {\r\n dataField: \"groupName\",\r\n text: intl.formatMessage(messages.group.title),\r\n headerStyle: {\r\n textAlign: \"center\",\r\n },\r\n sort: true,\r\n },\r\n {\r\n dataField: \"signedUp\",\r\n text: intl.formatMessage(messages.station.signedUp),\r\n headerStyle: {\r\n textAlign: \"center\",\r\n },\r\n sort: true,\r\n },\r\n {\r\n dataField: \"present\",\r\n text: intl.formatMessage(messages.station.present),\r\n headerStyle: {\r\n textAlign: \"center\",\r\n },\r\n sort: true,\r\n },\r\n ];\r\n\r\n const defaultSorted = [\r\n {\r\n dataField: \"stationName\",\r\n order: \"asc\",\r\n },\r\n ];\r\n\r\n return (\r\n
    \r\n

    \r\n \r\n

    \r\n

    \r\n \r\n

    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n );\r\n}\r\n\r\nStaffPerStation.propTypes = {\r\n onClickNext: PropTypes.func,\r\n event: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default injectIntl(StaffPerStation);\r\n","import React, { Component } from \"react\";\r\nimport {\r\n ContentWrapper,\r\n Container,\r\n ProgressBar,\r\n} from \"../../../../components/index\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport EventCopy from \"../EventCopy\";\r\nimport StationsList from \"../Station/StationsList\";\r\nimport messages from \"../messages\";\r\nimport { colors } from \"../../../../constants/styling-constants\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\nimport { eventStatus } from \"../reducer\";\r\nimport EventList from \"../List\";\r\nimport StaffPerStation from \"../Station/StaffPerStation\";\r\nimport { Button } from \"../../../../components/Buttons/index\";\r\n\r\nconst states = [\r\n {\r\n step: 0,\r\n name: ,\r\n },\r\n {\r\n step: 1,\r\n name: ,\r\n },\r\n {\r\n step: 2,\r\n name: ,\r\n },\r\n {\r\n step: 3,\r\n name: ,\r\n },\r\n];\r\n\r\nclass EventCopyBase extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n currentStep: 0,\r\n submitClicked: false,\r\n nextStep: null,\r\n eventOffersToBeSubmitted: [],\r\n };\r\n\r\n this.goToStep = this.goToStep.bind(this);\r\n this.handleNextClick = this.handleNextClick.bind(this);\r\n this.handleEventPicked = this.handleEventPicked.bind(this);\r\n this.saveEvent = this.saveEvent.bind(this);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (\r\n nextProps.status === eventStatus.SUCCESS &&\r\n this.props.status === eventStatus.SUBMITTING &&\r\n this.state.submitClicked\r\n )\r\n this.props.history.push(\"/my-pages/events\");\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.reset();\r\n }\r\n\r\n goToStep(step) {\r\n if (step === 0) {\r\n this.props.reset();\r\n }\r\n if (step >= 0 && step <= states.length) {\r\n this.setState({\r\n currentStep: step,\r\n });\r\n if (states[step].link) {\r\n this.props.history.push(states[step].link);\r\n }\r\n }\r\n }\r\n\r\n handleNextClick(newEvent, step) {\r\n this.setState({\r\n event: newEvent,\r\n nextStep: step,\r\n });\r\n this.goToStep(step);\r\n }\r\n\r\n handleEventPicked(row) {\r\n this.props.fetchEventOffers({ eventId: row.id });\r\n this.props.fetchEvent({ id: row.id });\r\n this.goToStep(1);\r\n }\r\n\r\n saveEvent() {\r\n if (this.state.submitClicked) {\r\n return;\r\n }\r\n this.setState({\r\n submitClicked: true,\r\n });\r\n\r\n this.props.submitEvent({\r\n ...this.state.event,\r\n eventOffers: this.state.eventOffersToBeSubmitted,\r\n });\r\n }\r\n\r\n renderPage() {\r\n switch (this.state.currentStep) {\r\n case 0:\r\n return (\r\n \r\n );\r\n case 1:\r\n return (\r\n (this.props.event && (\r\n this.handleNextClick(event, 2)}\r\n />\r\n )) || \r\n );\r\n case 2:\r\n return (\r\n \r\n \r\n this.handleNextClick(this.state.event, 3)}\r\n label={this.props.intl.formatMessage(\r\n messages.copyEvent.nextButton\r\n )}\r\n />\r\n \r\n );\r\n case 3:\r\n return (\r\n \r\n {\r\n this.setState({ eventOffersToBeSubmitted: newOffers });\r\n }}\r\n />\r\n this.saveEvent()}\r\n label={this.props.intl.formatMessage(\r\n messages.copyEvent.saveButton\r\n )}\r\n />\r\n \r\n );\r\n default:\r\n return ;\r\n }\r\n }\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.renderPage()}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default injectIntl(EventCopyBase);\r\n","export const GROUP_OFFERS_FETCH = \"GROUP_OFFERS_FETCH\";\r\nexport const GROUP_OFFERS_FETCH_SUCCESS = \"GROUP_OFFERS_FETCH_SUCCESS\";\r\nexport const GROUP_OFFERS_FETCH_FAILED = \"GROUP_OFFERS_FETCH_FAILED\";\r\nexport const EVENT_OFFERS_FETCH = \"EVENT_OFFERS_FETCH\";\r\nexport const EVENT_OFFERS_FETCH_SUCCESS = \"EVENT_OFFERS_FETCH_SUCCESS\";\r\nexport const EVENT_OFFERS_FETCH_FAILED = \"EVENT_OFFERS_FETCH_FAILED\";\r\nexport const STATION_OFFERS_FETCH = \"STATION_OFFERS_FETCH\";\r\nexport const STATION_OFFERS_FETCH_SUCCESS = \"STATION_OFFERS_FETCH_SUCCESS\";\r\nexport const STATION_OFFERS_FETCH_FAILED = \"STATION_OFFERS_FETCH_FAILED\";\r\nexport const STATION_OFFER_UPDATE = \"STATION_OFFER_UPDATE\";\r\nexport const ALL_OFFERS_FETCH = \"ALL_OFFERS_FETCH\";\r\nexport const ALL_OFFERS_FETCH_SUCCESS = \"ALL_OFFERS_FETCH_SUCCESS\";\r\nexport const ALL_OFFERS_FETCH_FAILED = \"ALL_OFFERS_FETCH_FAILED\";\r\nexport const AVAILABLE_GROUPS_FETCH = \"AVAILABLE_GROUPS_FETCH\";\r\nexport const AVAILABLE_GROUPS_FETCH_SUCCESS = \"AVAILABLE_GROUPS_FETCH_SUCCESS\";\r\nexport const AVAILABLE_GROUPS_FETCH_FAILED = \"AVAILABLE_GROUPS_FETCH_FAILED\";\r\nexport const AVAILABLE_GROUPS_RESET = \"AVAILABLE_GROUPS_RESET\";\r\nexport const DELETE_OFFER = \"DELETE_OFFER\";\r\nexport const DELETE_OFFER_SUCCESS = \"DELETE_OFFER_SUCCESS\";\r\nexport const DELETE_OFFER_FAILED = \"DELETE_OFFER_FAILED\";\r\nexport const OFFER_CREATE = \"OFFER_CREATE\";\r\nexport const OFFER_CREATE_SUCCESS = \"OFFER_CREATE_SUCCESS\";\r\nexport const OFFER_CREATE_FAILED = \"OFFER_CREATE_FAILED\";\r\nexport const GROUPS_OFFERS_FETCH = \"GROUPS_OFFERS_FETCH\";\r\nexport const GROUPS_OFFERS_FETCH_SUCCESS = \"GROUPS_OFFERS_FETCH_SUCCESS\";\r\nexport const GROUPS_OFFERS_FETCH_FAILED = \"GROUPS_OFFERS_FETCH_FAILED\";\r\nexport const CONFIRM_STATION_OFFERS = \"CONFIRM_STATION_OFFERS\";\r\nexport const CONFIRM_STATION_OFFERS_SUCCESS = \"CONFIRM_STATION_OFFERS_SUCCESS\";\r\nexport const CONFIRM_STATION_OFFERS_FAILED = \"CONFIRM_STATION_OFFERS_FAILED\";\r\nexport const ACCEPT_STATION_OFFER = \"ACCEPT_STATION_OFFER\";\r\nexport const ACCEPT_STATION_OFFER_SUCCESS = \"ACCEPT_STATION_OFFER_SUCCESS\";\r\nexport const ACCEPT_STATION_OFFER_FAILED = \"ACCEPT_STATION_OFFER_FAILED\";\r\nexport const REJECT_STATION_OFFER = \"REJECT_STATION_OFFER\";\r\nexport const REJECT_STATION_OFFER_SUCCESS = \"REJECT_STATION_OFFER_SUCCESS\";\r\nexport const REJECT_STATION_OFFER_FAILED = \"REJECT_STATION_OFFER_FAILED\";\r\nexport const GROUP_OFFER_FETCH = \"GROUP_OFFER_FETCH\";\r\nexport const GROUP_OFFER_FETCH_SUCCESS = \"GROUP_OFFER_FETCH_SUCCESS\";\r\nexport const GROUP_OFFER_FETCH_FAILED = \"GROUP_OFFER_FETCH_FAILED\";\r\nexport const RESET_GROUP_OFFER_ERROR = \"RESET_GROUP_OFFER_ERROR\";\r\nexport const SEND_OFFER_REMINDER = \"SEND_OFFER_REMINDER\";\r\nexport const SEND_OFFER_REMINDER_SUCCESS = \"SEND_OFFER_REMINDER_SUCCESS\";\r\nexport const SEND_OFFER_REMINDER_FAILED = \"SEND_OFFER_REMINDER_FAILED\";\r\nexport const SEND_OFFER_INVITATION = \"SEND_OFFER_INVITATION\";\r\nexport const SEND_OFFER_INVITATION_SUCCESS = \"SEND_OFFER_INVITATION_SUCCESS\";\r\nexport const SEND_OFFER_INVITATION_FAILED = \"SEND_OFFER_INVITATION_FAILED\";\r\nexport const UPDATE_OFFER_ATTENDEES = \"UPDATE_OFFER_ATTENDEES\";\r\nexport const UPDATE_OFFER_ATTENDEES_FAILED = \"UPDATE_OFFER_ATTENDEES_FAILED\";\r\nexport const CREATE_SELF_REGISTRATION_LINK = \"CREATE_SELF_REGISTRATION_LINK\";\r\nexport const CREATE_SELF_REGISTRATION_LINK_FAIL = \"CREATE_SELF_REGISTRATION_LINK_FAIL\";\r\nexport const CREATE_SELF_REGISTRATION_LINK_SUCCESS = \"CREATE_SELF_REGISTRATION_LINK_SUCCESS\";\r\n\r\nexport function fetchGroupOffers(data) {\r\n return {\r\n type: GROUP_OFFERS_FETCH,\r\n payload: data,\r\n };\r\n}\r\n\r\nexport function fetchGroupOffer(data) {\r\n return {\r\n type: GROUP_OFFER_FETCH,\r\n payload: data,\r\n }\r\n}\r\n\r\nexport function fetchAllOffers(data) {\r\n return {\r\n type: ALL_OFFERS_FETCH,\r\n payload: data,\r\n };\r\n}\r\n\r\nexport function updateOfferAttendees(data) {\r\n return {\r\n type: UPDATE_OFFER_ATTENDEES,\r\n payload: data,\r\n }\r\n}\r\n\r\nexport function fetchGroupsOffers(data) {\r\n return {\r\n type: GROUPS_OFFERS_FETCH,\r\n payload: data,\r\n };\r\n}\r\n\r\nexport function fetchEventOffers(data) {\r\n return {\r\n type: EVENT_OFFERS_FETCH,\r\n payload: data,\r\n };\r\n}\r\n\r\nexport function fetchStationOffers(data) {\r\n return {\r\n type: STATION_OFFERS_FETCH,\r\n payload: data,\r\n }\r\n}\r\n\r\nexport function fetchAvailableGroups(data) {\r\n return {\r\n type: AVAILABLE_GROUPS_FETCH,\r\n payload: data,\r\n };\r\n}\r\n\r\nexport function resetAvailableGroups() {\r\n return {\r\n type: AVAILABLE_GROUPS_RESET\r\n }\r\n}\r\n\r\nexport function createOffer(data) {\r\n return {\r\n type: OFFER_CREATE,\r\n payload: data,\r\n };\r\n}\r\n\r\nexport function deleteOffer(data) {\r\n return {\r\n type: DELETE_OFFER,\r\n payload: data,\r\n };\r\n}\r\n\r\nexport function confirmStationOffers(data) {\r\n return {\r\n type: CONFIRM_STATION_OFFERS,\r\n payload: data,\r\n };\r\n}\r\n\r\nexport function acceptStationOffer(data) {\r\n return {\r\n type: ACCEPT_STATION_OFFER,\r\n payload: data\r\n };\r\n}\r\n\r\nexport function rejectStationOffer(data) {\r\n return {\r\n type: REJECT_STATION_OFFER,\r\n payload: data\r\n };\r\n}\r\n\r\nexport function resetGroupOfferError() {\r\n return {\r\n type: RESET_GROUP_OFFER_ERROR,\r\n };\r\n}\r\n\r\nexport function sendOfferReminder(data) {\r\n return {\r\n type: SEND_OFFER_REMINDER,\r\n payload: data\r\n };\r\n}\r\n\r\nexport function sendOfferInvitation(data) {\r\n return {\r\n type: SEND_OFFER_INVITATION,\r\n payload: data\r\n };\r\n}\r\n\r\nexport function createLink(data) {\r\n return {\r\n type: CREATE_SELF_REGISTRATION_LINK,\r\n payload: data\r\n };\r\n}\r\n\r\nconst statuses = {\r\n INIT: \"INIT\",\r\n FETCHING: \"FETCHING\",\r\n FETCHED: \"FETCHED\",\r\n SUBMITTING: \"SUBMITTING\",\r\n SUBMIT_SUCCESS: \"SUBMIT_SUCCESS\",\r\n SUBMIT_FAILED: \"SUBMIT_FAILED\",\r\n};\r\n\r\nconst initialState = {\r\n status: statuses.INIT,\r\n groupOffer: null,\r\n groupOfferError: null,\r\n groupOfferAcceptError: null,\r\n groupOfferRejectError: null,\r\n groupOffers: null,\r\n eventOffers: {},\r\n stationOffers: null,\r\n stationOfferError: null,\r\n availableGroups: {},\r\n deleteOfferError: null,\r\n offerCreateStatus: {},\r\n sendOfferReminderStatus: statuses.INIT,\r\n sendOfferInvitationStatus: statuses.INIT,\r\n sendOfferReminderGroups: []\r\n};\r\n\r\nexport default function offers(state = initialState, action) {\r\n if (!action) {\r\n return state;\r\n }\r\n\r\n switch (action.type) {\r\n case GROUP_OFFERS_FETCH:\r\n return Object.assign({}, state, { status: statuses.FETCHING });\r\n case GROUP_OFFERS_FETCH_SUCCESS:\r\n return Object.assign({}, state, {\r\n status: statuses.FETCHED,\r\n groupOffers: action.payload\r\n });\r\n case GROUP_OFFERS_FETCH_FAILED:\r\n return Object.assign({}, state, { error: action.payload });\r\n case ALL_OFFERS_FETCH:\r\n return Object.assign({}, state, { status: statuses.FETCHING });\r\n case ALL_OFFERS_FETCH_SUCCESS:\r\n return Object.assign({}, state, {\r\n status: statuses.FETCHED,\r\n groupOffers: action.payload.groupOffers,\r\n eventOffers: action.payload.eventOffers\r\n });\r\n case ALL_OFFERS_FETCH_FAILED:\r\n return Object.assign({}, state, { error: action.payload });\r\n case EVENT_OFFERS_FETCH:\r\n return state;\r\n case EVENT_OFFERS_FETCH_SUCCESS:\r\n return Object.assign({}, state, { status: statuses.FETCHED }, {\r\n eventOffers: action.payload.reduce((events, offer) => {\r\n if (Array.isArray(events[offer.eventId])) {\r\n events[offer.eventId].push(offer);\r\n } else {\r\n events[offer.eventId] = [offer];\r\n }\r\n return events;\r\n }, {}),\r\n });\r\n case EVENT_OFFERS_FETCH_FAILED:\r\n return Object.assign({}, state, { error: action.payload });\r\n case AVAILABLE_GROUPS_FETCH_SUCCESS:\r\n return Object.assign({}, state, { availableGroups: Object.assign({}, state.availableGroups, { [`${action.eventId}_${action.stationId}`]: action.payload }) });\r\n case AVAILABLE_GROUPS_FETCH_FAILED:\r\n return state;\r\n case AVAILABLE_GROUPS_RESET:\r\n return Object.assign({}, state, { availableGroups: {} });\r\n case GROUPS_OFFERS_FETCH_SUCCESS:\r\n return Object.assign({}, state, {\r\n status: statuses.FETCHED,\r\n groupOffers: action.payload\r\n });\r\n case CONFIRM_STATION_OFFERS_SUCCESS:\r\n const data = action.payload;\r\n // We need to do a immutable copy of eventOffers so that redux recognizes it and upd ate\r\n var changed = false\r\n const eventOffers = JSON.parse(JSON.stringify(state.eventOffers));\r\n for (const d in data) {\r\n\t const dd = data[d]\r\n\t const offer = eventOffers[dd.eventId].find((o) => o.eventId === dd.eventId && o.groupId === dd.groupId && o.stationId === dd.stationId)\r\n\t if (offer) {\r\n\t offer.status = dd.status\r\n\t changed = true\r\n\t }\r\n }\r\n if (changed) {\r\n return Object.assign({}, state, { eventOffers: eventOffers, sendInvitationStatus: statuses.SUBMIT_SUCCESS, });\r\n }\r\n return state;\r\n case CONFIRM_STATION_OFFERS_FAILED:\r\n return Object.assign({}, state, { error: action.payload });\r\n case ACCEPT_STATION_OFFER_SUCCESS:\r\n return Object.assign({}, state, {\r\n groupOffer: action.payload,\r\n groupOfferAcceptError: null\r\n });\r\n case ACCEPT_STATION_OFFER_FAILED:\r\n return Object.assign({}, state, { groupOfferAcceptError: action.payload });\r\n case REJECT_STATION_OFFER_SUCCESS:\r\n return Object.assign({}, state, {\r\n groupOffer: action.payload,\r\n groupOfferRejectError: null\r\n });\r\n case REJECT_STATION_OFFER_FAILED:\r\n return Object.assign({}, state, { groupOfferRejectError: action.payload });\r\n case GROUP_OFFER_FETCH_SUCCESS:\r\n return Object.assign({}, state, {\r\n groupOffer: action.payload,\r\n error: null\r\n });\r\n case GROUP_OFFER_FETCH_FAILED:\r\n return Object.assign({}, state, { groupOfferError: action.payload });\r\n case DELETE_OFFER_SUCCESS:\r\n return Object.assign({}, state, { deleteOfferError: null });\r\n case DELETE_OFFER_FAILED:\r\n return Object.assign({}, state, { deleteOfferError: action.payload });\r\n case RESET_GROUP_OFFER_ERROR:\r\n return Object.assign({}, state, { groupOfferError: null });\r\n case OFFER_CREATE:\r\n const offerCreateStatusSuccess = state.offerCreateStatus;\r\n offerCreateStatusSuccess[action.payload.stationId] = statuses.SUBMITTING;\r\n\r\n return Object.assign({}, state, { offerCreateStatus: offerCreateStatusSuccess });\r\n case OFFER_CREATE_SUCCESS:\r\n const offerCreateStatus = Object.assign({}, state.offerCreateStatus);\r\n offerCreateStatus[action.data.stationId] = statuses.SUBMIT_SUCCESS;\r\n\r\n return Object.assign({}, state, { offerCreateStatus });\r\n case OFFER_CREATE_FAILED:\r\n const offerCreateStatusError = Object.assign({}, state.offerCreateStatus);\r\n offerCreateStatusError[action.data.stationId] = statuses.SUBMIT_FAILED;\r\n\r\n return Object.assign({}, state, { offerCreateStatus: offerCreateStatusError });\r\n case STATION_OFFERS_FETCH_SUCCESS:\r\n return Object.assign({}, state, {\r\n stationOffers: action.payload,\r\n stationOfferError: null\r\n });\r\n case STATION_OFFERS_FETCH_FAILED:\r\n return Object.assign({}, state, {\r\n stationOffers: null,\r\n stationOfferError: action.payload\r\n });\r\n case STATION_OFFER_UPDATE:\r\n // Attendance saga receives an updated offer. Update here as well\r\n const stationOffers = JSON.parse(JSON.stringify(state.stationOffers));\r\n const stationOffer = stationOffers.find(o => o.stationIdGroupId === action.payload.stationIdGroupId);\r\n\r\n if (stationOffer) {\r\n stationOffer.adultAttendance = action.payload.adultAttendance;\r\n stationOffer.childAttendance = action.payload.childAttendance;\r\n return Object.assign({}, state, { stationOffers: stationOffers });\r\n } else {\r\n return state;\r\n }\r\n case SEND_OFFER_REMINDER:\r\n return Object.assign({}, state, { sendOfferReminderStatus: statuses.SUBMITTING });\r\n case SEND_OFFER_REMINDER_SUCCESS:\r\n return Object.assign({}, state, {\r\n sendOfferReminderStatus: statuses.SUBMIT_SUCCESS,\r\n sendOfferReminderGroups: action.payload\r\n });\r\n case SEND_OFFER_REMINDER_FAILED:\r\n return Object.assign({}, state, {\r\n sendOfferReminderStatus: statuses.SUBMIT_FAILED,\r\n sendOfferReminderGroups: []\r\n });\r\n case SEND_OFFER_INVITATION:\r\n return Object.assign({}, state, { sendOfferInvitationStatus: statuses.SUBMITTING });\r\n case SEND_OFFER_INVITATION_SUCCESS:\r\n return Object.assign({}, state, {\r\n sendOfferInvitationStatus: statuses.SUBMIT_SUCCESS,\r\n sendOfferInvitationGroups: action.payload\r\n });\r\n case SEND_OFFER_INVITATION_FAILED:\r\n return Object.assign({}, state, {\r\n sendOfferInvitationStatus: statuses.SUBMIT_FAILED,\r\n sendOfferInvitationGroups: []\r\n });\r\n case UPDATE_OFFER_ATTENDEES:\r\n return state;\r\n case UPDATE_OFFER_ATTENDEES_FAILED:\r\n return Object.assign({}, state, {\r\n groupOffer: null,\r\n error: action.payload\r\n });\r\n case CREATE_SELF_REGISTRATION_LINK_SUCCESS:\r\n return Object.assign({}, state, {\r\n link: action.payload\r\n });\r\n case CREATE_SELF_REGISTRATION_LINK_FAIL:\r\n return Object.assign({}, state, {\r\n link: null,\r\n error: action.payload\r\n });\r\n case CREATE_SELF_REGISTRATION_LINK:\r\n return Object.assign({}, state, {\r\n createLinkStatus: statuses.SUBMITTING\r\n });\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport { statuses };\r\n","import { connect } from \"react-redux\";\r\nimport { submitEvent, reset, fetchEvent } from \"../reducer\";\r\nimport EventCopyBase from \"./EventCopyBase\";\r\nimport { fetchEventOffers, createOffer } from '../../Offer/reducer';\r\n\r\nconst mapStateToProps = (state) => {\r\n const obj = {\r\n eventOffers: state.offers.eventOffers,\r\n event: state.event.event,\r\n error: state.event.error,\r\n status: state.event.status,\r\n user: state.auth.user,\r\n };\r\n\r\n return obj;\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n fetchEventOffers: data => dispatch(fetchEventOffers(data)),\r\n createOffer: data => dispatch(createOffer(data)),\r\n fetchEvent: data => dispatch(fetchEvent(data)),\r\n submitEvent: data => dispatch(submitEvent(data)),\r\n reset: () => dispatch(reset({})),\r\n});\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(EventCopyBase);\r\n","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n event: {\r\n name: {\r\n id: 'event.name.title',\r\n },\r\n date: {\r\n id: 'event.date.title',\r\n },\r\n startTime: {\r\n id: 'event.date.startTime',\r\n },\r\n city: {\r\n id: 'event.city.title',\r\n },\r\n organizer: {\r\n title: {\r\n id: 'event.organizer.title',\r\n },\r\n organizerNumber: {\r\n id: 'event.organizer.organizer-number.title',\r\n },\r\n organizerName: {\r\n id: 'event.organizer.organizer-name.title',\r\n },\r\n organizerEmail: {\r\n id: 'event.organizer.organizer-email.title',\r\n },\r\n invoiceAddress: {\r\n id: 'event.organizer.invoice-address.title',\r\n },\r\n organizerWebsite: {\r\n id: 'event.organizer.organizer-website.title',\r\n },\r\n },\r\n shoeSizeChoices: {\r\n title: {\r\n id: 'event.shoe-sizes.title',\r\n },\r\n shoeSizes: {\r\n id: 'event.shoe-sizes.my-choices.title',\r\n },\r\n },\r\n included: {\r\n title: {\r\n id: 'event.included.title',\r\n },\r\n },\r\n substitute: {\r\n title:{\r\n id: 'event.substitute.title',\r\n },\r\n option:{\r\n id: 'event.substitute.option',\r\n },\r\n },\r\n foodOptions: {\r\n title: {\r\n id: 'event.food.title',\r\n },\r\n food: {\r\n id: 'event.food.my-choices.title',\r\n },\r\n glutenFree: {\r\n id: 'edit-event.form.include.food-options.gluten-free.placeholder',\r\n },\r\n lactoseFree: {\r\n id: 'edit-event.form.include.food-options.lactose-free.placeholder',\r\n },\r\n milkProteinFree: {\r\n id: 'edit-event.form.include.food-options.milk-protein-free.placeholder',\r\n },\r\n vegan: {\r\n id: 'edit-event.form.include.food-options.vegan.placeholder',\r\n },\r\n vegetarian: {\r\n id: 'edit-event.form.include.food-options.vegetarian.placeholder',\r\n },\r\n },\r\n clothesChoices: {\r\n title: {\r\n id: 'event.clothes.title',\r\n },\r\n clothes: {\r\n id: 'event.clothes.my-choices.title',\r\n },\r\n },\r\n contact: {\r\n email: {\r\n id: 'event.contact.form.email.placeholder',\r\n },\r\n title: {\r\n id: 'event.contact-persons.title',\r\n },\r\n addContactButton: {\r\n id: 'event.contact.add-contact-button',\r\n },\r\n contactEmptyMessage: {\r\n id: 'event.contact.contact-field-empty-message',\r\n },\r\n contactExistMessage: {\r\n id: 'event.contact.contact-already-exist-message',\r\n },\r\n list: {\r\n name: {\r\n id: 'event.contact.list.name',\r\n },\r\n email: {\r\n id: 'event.contact.list.email',\r\n },\r\n phone: {\r\n id: 'event.contact.list.phone',\r\n },\r\n },\r\n requestError: {\r\n id: 'event.contact.request-error',\r\n },\r\n userNotFound: {\r\n id: 'event.contact.user-not-found',\r\n },\r\n },\r\n },\r\n confirmButton: {\r\n id: 'event.confirm-button',\r\n },\r\n editButton: {\r\n id: 'event.edit-button',\r\n },\r\n saveButton: {\r\n id: 'event.save-button',\r\n },\r\n confirmModalTitle: {\r\n id: 'event.confirm-modal.title',\r\n },\r\n confirmModalText: {\r\n id: 'event.confirm-modal.text',\r\n },\r\n confirmModalButton: {\r\n id: 'event.confirm-modal.confirm-button',\r\n },\r\n cancelConfirmModalButton: {\r\n id: 'event.confirm-modal.cancel-button',\r\n },\r\n deleteContactModalText: {\r\n id: 'event.delete-modal.text',\r\n },\r\n});\r\n","import React, { Component, Fragment } from \"react\";\r\nimport { Field, reduxForm, formValueSelector } from \"redux-form\";\r\nimport { connect } from \"react-redux\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport { status } from \"../reducer\";\r\nimport {\r\n H2,\r\n Input,\r\n DatePicker,\r\n MultiSelect,\r\n FormGroup,\r\n ConfirmationModal,\r\n ContactForm,\r\n ListSelect,\r\n} from \"../../../../components\";\r\nimport { Button, BigGrayButton } from \"../../../../components/Buttons\";\r\nimport {\r\n required,\r\n minLength3,\r\n maxLength250,\r\n organizerNumber,\r\n afterTodaysDate,\r\n} from \"../../../../validators\";\r\nimport messages from \"./messages\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\nimport styled from \"styled-components\";\r\nimport { lists } from \"../../../../constants/lists.js\"; // TODO: Add updated volex-data repository\r\nimport { TimePicker } from \"../../../../components/Form/DatePicker\";\r\nimport additionalQuestions from \"../../../../constants/lists/event-additional-questions\";\r\n\r\nconst { foodOptions, shoeSizes, shirtSizes } = lists;\r\n\r\nconst ButtonWrapper = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n margin-bottom: 40px;\r\n`;\r\n\r\nconst withLoadedProps = (LoadedComponent, loadedProps) => (props) =>\r\n ;\r\n\r\nclass EventEdit extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n readonly: true,\r\n contactList: this.props.initialValues.contactPersons,\r\n showContactModal: false,\r\n deleting: false,\r\n contactError: null,\r\n contactFieldValue: null,\r\n emailInvalid: null,\r\n contactToDelete: null,\r\n confirming: false,\r\n showConfirmModal: false,\r\n submitting: false,\r\n eventStatus: this.props.event ? this.props.event.status : {},\r\n };\r\n\r\n this.toggleReadonly = this.toggleReadonly.bind(this);\r\n this.handleEventSubmit = this.handleEventSubmit.bind(this);\r\n this.handleConfirmEvent = this.handleConfirmEvent.bind(this);\r\n this.toggleConfirmModal = this.toggleConfirmModal.bind(this);\r\n this.updateContactListFromForm = this.updateContactListFromForm.bind(this);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (\r\n nextProps.status === status.SUCCESS &&\r\n this.props.status === status.SUBMITTING &&\r\n this.state.submitting\r\n ) {\r\n this.toggleReadonly();\r\n this.setState({\r\n submitting: false,\r\n });\r\n }\r\n\r\n if (\r\n nextProps.status === status.SUCCESS &&\r\n this.props.status === status.SUBMITTING &&\r\n this.state.deleting\r\n ) {\r\n this.toggleReadonly();\r\n this.setState({\r\n deleting: false,\r\n });\r\n }\r\n\r\n if (\r\n nextProps.status === status.SUCCESS &&\r\n this.props.status === status.SUBMITTING &&\r\n this.state.confirming\r\n ) {\r\n this.toggleConfirmModal();\r\n this.setState({\r\n confirming: false,\r\n eventStatus: nextProps.event.status,\r\n });\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetUser();\r\n }\r\n\r\n updateContactListFromForm(contactList) {\r\n this.setState({ contactList });\r\n }\r\n\r\n toggleReadonly(e) {\r\n if (e) {\r\n e.preventDefault();\r\n }\r\n\r\n this.setState({\r\n readonly: !this.state.readonly,\r\n });\r\n }\r\n\r\n renderShirtSizes() {\r\n if (!this.props.included) {\r\n return null;\r\n }\r\n\r\n const hasShirt = this.props.included.includes(\"CLOTHES\");\r\n\r\n if (hasShirt !== null && hasShirt !== undefined) {\r\n // save this if we need to add it again (2018-08-16)\r\n if (hasShirt) {\r\n const shirtSizesTranslated = shirtSizes.map((opt) => ({\r\n id: opt,\r\n name: this.props.intl.formatMessage({\r\n id: `shirt-size.${opt.toLowerCase()}`,\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 return null;\r\n }\r\n }\r\n\r\n renderFoodOptions() {\r\n if (!this.props.included) {\r\n return null;\r\n }\r\n\r\n const hasFood = this.props.included.includes(\"FOOD\");\r\n\r\n if (hasFood) {\r\n const foodOptionsTranslated = foodOptions.map((opt) => ({\r\n id: opt,\r\n name: this.props.intl.formatMessage({\r\n id: `food.${opt.toLowerCase()}`,\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 return null;\r\n }\r\n /*\r\n renderShoeSizes() {\r\n if (!this.props.included) {\r\n return null;\r\n }\r\n\r\n const hasShoes = this.props.included.includes(\"SHOE\");\r\n const shoeSizeOptions = shoeSizes.map(size => ({\r\n id: size,\r\n name: size\r\n }));\r\n\r\n if (hasShoes) {\r\n return (\r\n \r\n

    \r\n \r\n

    \r\n \r\n
    \r\n );\r\n }\r\n\r\n return null;\r\n }*/\r\n\r\n handleConfirmEvent() {\r\n this.setState({\r\n confirming: true,\r\n });\r\n\r\n this.props.confirmEvent(this.props.event);\r\n }\r\n\r\n toggleConfirmModal(e) {\r\n e && e.preventDefault();\r\n this.setState({\r\n showConfirmModal: !this.state.showConfirmModal,\r\n });\r\n }\r\n\r\n renderButtons() {\r\n if (this.props.isTeamleaderView || this.props.event.status === \"HISTORIC\") {\r\n return null;\r\n }\r\n if (this.state.readonly) {\r\n return (\r\n \r\n \r\n {this.state.eventStatus === \"DRAFT\" && this.props.event.stations ? (\r\n \r\n ) : null}\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n handleEventSubmit(fieldValues) {\r\n this.setState({\r\n submitting: true,\r\n });\r\n\r\n if(fieldValues.foodOptions && !this.props.included.includes(\"FOOD\")){\r\n delete fieldValues.foodOptions\r\n }\r\n\r\n if(fieldValues.shirtSizes && !this.props.included.includes(\"CLOTHES\")){\r\n delete fieldValues.shirtSizes\r\n }\r\n\r\n const fieldValuesWithContactList = Object.assign({}, fieldValues, {\r\n contactPersons: this.state.contactList.filter((c) => !c.toBeDeleted),\r\n });\r\n if (this.props.event) {\r\n fieldValuesWithContactList.id = this.props.event.id;\r\n }\r\n\r\n this.props.submitEvent(fieldValuesWithContactList);\r\n }\r\n\r\n render() {\r\n const additionalQuestionOptions = additionalQuestions.map((q) => ({\r\n id: q,\r\n value: this.props.intl.formatMessage({\r\n id: `lists.additionalQuestions.${q}`,\r\n }),\r\n }));\r\n return (\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.renderShirtSizes()}\r\n {this.renderFoodOptions()}\r\n \r\n \r\n {/*this.renderShoeSizes()*/}\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.renderButtons()}\r\n \r\n
    \r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nEventEdit = reduxForm({\r\n form: \"editEvent\",\r\n enableReinitialize: true,\r\n // destroyOnUnmount: false,\r\n})(EventEdit);\r\n\r\n// Decorate with connect to read form values\r\nconst selector = formValueSelector(\"editEvent\"); // <-- same as form name\r\n\r\nEventEdit = connect((state) => {\r\n // Included is needed to know if we should render shirt sizes, food options, and shoe sizes.\r\n const included = selector(state, \"included\");\r\n\r\n return {\r\n included,\r\n };\r\n})(EventEdit);\r\n\r\nexport default injectIntl(EventEdit);\r\n","import { connect } from \"react-redux\";\r\nimport { withRouter } from \"react-router\";\r\nimport { submitEvent, reset, confirmEvent } from \"../reducer\";\r\nimport EventEdit from \"./EventEdit\";\r\nimport { getUserByEmail, resetUser } from \"../../../User/reducer\";\r\n\r\nconst mapStateToProps = (state, ownProps) => ({\r\n event: ownProps.event,\r\n status: state.event.status,\r\n // TODO: Temp solution to handle weird backend response. Handle in backend instead.\r\n initialValues: Array.isArray(ownProps.event) && ownProps.event[0].Attributes ? ownProps.event[0].Attributes : ownProps.event,\r\n user: state.auth.user,\r\n userEmail: state.user,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n submitEvent: data => dispatch(submitEvent(data)),\r\n confirmEvent: data => dispatch(confirmEvent(data)),\r\n resetEvent: () => dispatch(reset()),\r\n getUserByEmail: (data) => dispatch(getUserByEmail(data)),\r\n resetUser: () => dispatch(resetUser()),\r\n});\r\n\r\nexport default withRouter(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(EventEdit));\r\n","import React, { Component, Fragment } from \"react\";\r\nimport moment from \"moment\";\r\nimport { DeleteButton } from \"../../../../components/Buttons/index\";\r\nimport { eventStatus } from \"../reducer\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport styled from \"styled-components\";\r\nimport { colors } from \"../../../../constants/styling-constants\";\r\nimport {\r\n H2,\r\n BorderTable,\r\n ConfirmationModal\r\n} from \"../../../../components/index\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\nimport messages from \"./messages\";\r\nimport { municipalities } from \"../../../../constants/municipalities\";\r\nimport { breakPoints } from \"../../../../constants/styling-constants\";\r\n\r\nconst Wrapper = styled.div`\r\n margin-bottom: 80px;\r\n`;\r\n\r\nconst Status = styled.div`\r\n padding: 8px;\r\n background-color: ${colors.gray};\r\n width: 100%;\r\n color: #FFF;\r\n text-align: center;\r\n`;\r\n\r\nconst StatusUnmanned = Status.extend`\r\n background-color: ${colors.pink};\r\n`;\r\n\r\nconst DeleteListItemButton = ({ row, callback }) => {\r\n const onClick = () => {\r\n callback(row);\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst Table = styled(BorderTable)`\r\n display: inline-block;\r\n float: left;\r\n @media (max-width: ${breakPoints.sm}px) {\r\n .table-mobile-view {\r\n display: none;\r\n }\r\n`;\r\n\r\nconst TableRowWithClick = styled(\"tr\")`\r\n cursor: pointer;\r\n`;\r\n\r\nclass StationsEdit extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n showModal: false,\r\n stationToDelete: null,\r\n deleting: false,\r\n };\r\n\r\n this.renderRow = this.renderRow.bind(this);\r\n this.onDelete = this.onDelete.bind(this);\r\n this.onConfirmDelete = this.onConfirmDelete.bind(this);\r\n this.toggleModal = this.toggleModal.bind(this);\r\n this.renderStatus = this.renderStatus.bind(this);\r\n this.renderStationList = this.renderStationList.bind(this);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.status === eventStatus.SUCCESS && this.props.status === eventStatus.SUBMITTING && this.state.deleting) {\r\n this.setState({\r\n showModal: false,\r\n stationToDelete: null,\r\n deleting: false,\r\n });\r\n }\r\n }\r\n\r\n toggleModal() {\r\n this.setState({\r\n showModal: !this.state.showModal,\r\n });\r\n }\r\n\r\n onDelete(row) {\r\n this.setState({\r\n showModal: true,\r\n stationToDelete: row,\r\n });\r\n }\r\n\r\n onConfirmDelete() {\r\n this.setState({\r\n deleting: true,\r\n });\r\n\r\n const updatedList = this.props.event.stations.slice();\r\n const indexToRemove = updatedList.indexOf(this.state.stationToDelete);\r\n updatedList.splice(indexToRemove, 1);\r\n this.props.onDeleteStation(updatedList);\r\n }\r\n\r\n /**\r\n * Calculate if the station is manned by checking if number of accepted proposals are higher than officialQuantity\r\n *\r\n * This should probably be handled by backend instead.\r\n */\r\n renderStatus(station) {\r\n const offers = this.props.eventOffers.hasOwnProperty(this.props.event.eventId) ? this.props.eventOffers[this.props.event.eventId] : null;\r\n let manned = 0;\r\n\r\n if (offers) {\r\n for (let o of offers) {\r\n if (o.stationId === station.id && o.status === \"ACCEPTED\") {\r\n manned = manned + parseInt(o.volunteers, 10);\r\n }\r\n }\r\n }\r\n\r\n if (manned >= parseInt(station.officialQuantity, 10)) {\r\n return ;\r\n }\r\n\r\n return ;\r\n }\r\n\r\n renderRow(row, key) {\r\n return (\r\n this.props.onStationClick(key, row)}\r\n >\r\n {row.name}\r\n {moment(row.start).format(\"HH:mm\")}\r\n {moment(row.end).format(\"HH:mm\")}\r\n {(municipalities.find(municipality => municipality.id === row.municipality) || {}).name}\r\n {row.officialQuantity}\r\n {row.officialMiniumumAge}\r\n {this.props.intl.formatMessage({ id: `station.payment-type.${row.paymentType}` })}\r\n {row.currency}\r\n {row.groupPayment}\r\n {row.paymentAdult}\r\n {row.paymentChild}\r\n {row.skills ? row.skills.map(skill => this.props.intl.formatMessage({ id: `lists.skills.${skill}` })).join(\", \") : null}\r\n {this.renderStatus(row)}\r\n {this.props.event.status === \"HISTORIC\" ? null : \r\n \r\n }\r\n \r\n\r\n );\r\n }\r\n\r\n renderStationList() {\r\n return (\r\n \r\n \r\n \r\n

    \r\n {this.props.event.stations ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.props.event.stations.map(this.renderRow)}\r\n \r\n
    \r\n
    \r\n :\r\n

    \r\n }\r\n \r\n
    \r\n }\r\n busy={this.state.deleting}\r\n theme=\"pink\"\r\n />\r\n
    \r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {this.renderStationList()}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default injectIntl(StationsEdit);\r\n","import React, { Component, Fragment, useEffect, useState } from \"react\";\r\nimport { Button, BigGrayButton } from \"../../../../components/Buttons\";\r\nimport { eventStatus } from \"../reducer\";\r\nimport { status as userEmailStatus } from \"../../../User/reducer\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport styled from \"styled-components\";\r\nimport { municipalities } from \"../../../../constants/municipalities\";\r\nimport {\r\n required,\r\n unique,\r\n positiveNumbers,\r\n integer,\r\n maxLength250,\r\n} from \"../../../../validators/index\";\r\nimport { Field, reduxForm } from \"redux-form\";\r\nimport moment from \"moment\";\r\nimport {\r\n H2,\r\n TextLabel,\r\n FormGroup,\r\n Input,\r\n TextArea,\r\n MultiSelect,\r\n DatePicker,\r\n Select,\r\n} from \"../../../../components/index\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\nimport AddUserForm from \"../../../../components/ContactForm/AddUserForm/index\";\r\nimport messages from \"./messages\";\r\nimport { getUserByEmail } from \"../../../User/service\";\r\nimport { lists } from \"../../../../constants/lists.js\"; // TODO: Add updated volex-data repository\r\nimport MapsComponent, {\r\n formatCoordinates,\r\n getCoordinatesFromLocation,\r\n getLocationFromCoordinates,\r\n} from \"../../../../components/Map\";\r\nimport { breakPoints } from \"../../../../constants/styling-constants\";\r\n\r\n\r\nconst { skills, payments, currencies } = lists;\r\n\r\nconst FormWrapper = styled.form`\r\n margin-top: 80px;\r\n`;\r\n\r\nconst MapsWrapper = styled.div`\r\n height: 500px;\r\n width: 600px;\r\n @media (max-width: ${breakPoints.sm}px) {\r\n width: 350px;\r\n height: 275px;\r\n }\r\n`;\r\n\r\nconst dateRangeValidation = (stationIndex) => (value, event) => {\r\n const start = moment(event.stations[stationIndex].start).format();\r\n const end = moment(value).format();\r\n\r\n return end < start ? \"Slutdatum måste vara senare än startdatum\" : undefined;\r\n};\r\n\r\nconst StationEditForm = (props) => {\r\n const uniqueValidator = () => {\r\n const stations = props.event ? props.event.stations : null;\r\n const currStation = props.event\r\n ? props.event.stations[props.stationKey]\r\n : null;\r\n const filteredStations =\r\n stations && currStation\r\n ? stations.filter((s) => s.id !== currStation.id)\r\n : [];\r\n return unique(\r\n filteredStations,\r\n props.intl.formatMessage(messages.stationNameAlreadyExistError)\r\n );\r\n };\r\n\r\n const [markerLocation, setMarkerLocation] = useState(\r\n props.event.stations[props.stationKey].markerLocation\r\n );\r\n const [markerCoordinates, setMarkerCoordinates] = useState(\r\n props.event.stations[props.stationKey].markerCoordinates\r\n );\r\n const [showMarker, setShowMarker] = useState(!!markerCoordinates);\r\n const [submitting, setSubmitting] = useState(false);\r\n const [showAddUserModal, setShowAddUserModal] = useState(false);\r\n const [center, setCenter] = useState(markerCoordinates);\r\n const [teamLeaderEmail, setTeamLeaderEmail] = useState(null);\r\n const [submitStatus, setSubmitStatus] = useState(false);\r\n const [uniqueNameValidator, setUniqueNameValidator] = useState(() =>\r\n uniqueValidator()\r\n );\r\n const dataRangeIndexValidation = dateRangeValidation(props.stationKey);\r\n\r\n const handleStationSubmit = (fieldValues) => {\r\n if (\r\n markerCoordinates ||\r\n (props.event.stations[props.stationKey].markerCoordinates &&\r\n !markerCoordinates)\r\n ) {\r\n fieldValues.stations[props.stationKey].markerLocation = markerLocation;\r\n fieldValues.stations[props.stationKey].markerCoordinates =\r\n markerCoordinates;\r\n }\r\n if (fieldValues.stations[props.stationKey].teamLeaderEmail) {\r\n getUserByEmail({\r\n email: fieldValues.stations[props.stationKey].teamLeaderEmail,\r\n })\r\n .then((resp) => {\r\n setSubmitting(true);\r\n props.submitEvent(fieldValues);\r\n })\r\n .catch((e) => toggleAddUserModal());\r\n } else {\r\n setSubmitting(true);\r\n props.submitEvent(fieldValues);\r\n }\r\n };\r\n\r\n /**\r\n * Call touch on the start or end to validate when one changes\r\n */\r\n const handleChangeStart = (event, newValue, previousValue, name) => {\r\n const nameStart = name.substring(0, name.lastIndexOf(\"][\") + 1);\r\n props.touch(`${nameStart}[end]`);\r\n };\r\n\r\n useEffect(() => {\r\n if (props.newUserStatus === userEmailStatus.SUBMIT_SUCCESS)\r\n toggleAddUserModal();\r\n }, [props.newUserStatus]);\r\n\r\n useEffect(() => {\r\n if (props.status === eventStatus.SUBMITTING) {\r\n setSubmitStatus(true);\r\n }\r\n if (props.status === eventStatus.SUCCESS && submitStatus) {\r\n setSubmitting(false);\r\n setSubmitStatus(false);\r\n props.toggleEditForm();\r\n }\r\n }, [props.status]);\r\n\r\n const toggleAddUserModal = () => setShowAddUserModal(!showAddUserModal);\r\n\r\n useEffect(() => {\r\n setMarkerCoordinates(\r\n props.event.stations[props.stationKey].markerCoordinates\r\n );\r\n setMarkerLocation(props.event.stations[props.stationKey].markerLocation);\r\n setCenter(markerCoordinates);\r\n setShowMarker(!!markerCoordinates);\r\n\r\n if (!markerCoordinates) {\r\n setCoordinates(props.event.city);\r\n }\r\n }, [props.stationKey]);\r\n\r\n const renderMunicipalities = (id) => {\r\n return (\r\n \r\n setCoordinates(municipalities.find((m) => m.id === fieldValue).name)\r\n }\r\n />\r\n );\r\n };\r\n\r\n const renderSkills = (id) => {\r\n const skillOptions = skills.map((skill) => ({\r\n id: skill,\r\n name: props.intl.formatMessage({ id: `lists.skills.${skill}` }),\r\n }));\r\n return (\r\n \r\n );\r\n };\r\n\r\n const setCoordinates = (location) => {\r\n getCoordinatesFromLocation(location).then((coordinates) =>\r\n setCenter(coordinates)\r\n );\r\n };\r\n\r\n if (!center) {\r\n setCoordinates(props.event.city);\r\n }\r\n\r\n const handleMarkerChange = (coordinates) => {\r\n getLocationFromCoordinates(coordinates).then((location) => {\r\n setMarkerCoordinates(coordinates);\r\n setMarkerLocation(location);\r\n setShowMarker(true);\r\n });\r\n };\r\n\r\n const handleMarkerRemove = () => {\r\n setMarkerCoordinates(null);\r\n setMarkerLocation(null);\r\n setShowMarker(false);\r\n };\r\n\r\n const handleSearch = (place) => {\r\n setCenter(place.geometry.location);\r\n };\r\n\r\n const handlePaymentChange = (PaymentTypeFieldValue) => {\r\n switch (PaymentTypeFieldValue) {\r\n case \"GROUPAYMENT\":\r\n props.change(`[stations][${props.stationKey}][paymentAdult]`, \"\");\r\n props.change(`[stations][${props.stationKey}][paymentAdult]`, \"\");\r\n props.change(`[stations][${props.stationKey}][paymentChild]`, \"\");\r\n props.change(\r\n `[stations][${props.stationKey}][compensationByAgreement]`,\r\n \"\"\r\n );\r\n break;\r\n case \"COMPENSATIONBYAGREEMENT\":\r\n default:\r\n props.change(`[stations][${props.stationKey}][groupPayment]`, \"\");\r\n props.change(`[stations][${props.stationKey}][paymentAdult]`, \"\");\r\n props.change(`[stations][${props.stationKey}][paymentChild]`, \"\");\r\n props.change(`[stations][${props.stationKey}][currency]`, \"\");\r\n break;\r\n case \"NOCOMPENSATION\":\r\n props.change(`[stations][${props.stationKey}][groupPayment]`, \"\");\r\n props.change(`[stations][${props.stationKey}][paymentAdult]`, \"\");\r\n props.change(`[stations][${props.stationKey}][paymentChild]`, \"\");\r\n props.change(`[stations][${props.stationKey}][currency]`, \"\");\r\n break;\r\n case \"PERPERSON\":\r\n props.change(`[stations][${props.stationKey}][groupPayment]`, \"\");\r\n props.change(\r\n `[stations][${props.stationKey}][compensationByAgreement]`,\r\n \"\"\r\n );\r\n break;\r\n case \"HOURLYRATE\":\r\n props.change(`[stations][${props.stationKey}][groupPayment]`, \"\");\r\n props.change(\r\n `[stations][${props.stationKey}][compensationByAgreement]`,\r\n \"\"\r\n );\r\n break;\r\n }\r\n props.handlePaymentChange(PaymentTypeFieldValue);\r\n };\r\n\r\n const renderAddUserModal = () => {\r\n const email = teamLeaderEmail;\r\n\r\n return (\r\n \r\n );\r\n };\r\n\r\n const renderEditForm = (id) => {\r\n const paymentOptions = payments.map((payment) => ({\r\n id: payment,\r\n name: props.intl.formatMessage({ id: `lists.payments.${payment}` }),\r\n }));\r\n const currencyOptions = currencies.map((currency) => ({\r\n id: currency,\r\n name: props.intl.formatMessage({\r\n id: `lists.currencies.${currency}`,\r\n }),\r\n }));\r\n return (\r\n \r\n \r\n \r\n

    \r\n {props.isTeamleaderView ?\r\n :\r\n \r\n }\r\n

    \r\n {props.isTeamleaderView ? null : (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {renderMunicipalities(id)}\r\n \r\n \r\n \r\n \r\n \r\n {center && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {markerLocation ? (\r\n markerLocation\r\n ) : (\r\n \r\n )}\r\n \r\n \r\n {markerCoordinates ? formatCoordinates(markerCoordinates) : \"\"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n setTeamLeaderEmail(e.target.Value)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {renderSkills(id)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!props.compensationByAgreement ? (\r\n \r\n \r\n {props.groupPayment ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n ) : null}\r\n \r\n \r\n {renderButtons()}\r\n
    \r\n {showAddUserModal && renderAddUserModal()}\r\n \r\n );\r\n };\r\n\r\n const renderButtons = () => {\r\n if (props.isTeamleaderView) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n return (\r\n
    \r\n {typeof uniqueNameValidator === \"function\"\r\n ? renderEditForm(props.stationKey)\r\n : null}\r\n
    \r\n );\r\n};\r\n\r\nexport default reduxForm({\r\n form: \"stationEdit\",\r\n})(injectIntl(StationEditForm));\r\n","import React, { Component, Fragment } from \"react\";\r\nimport StationsEditList from \"./StationsEditList\";\r\nimport StationEditForm from \"./StationEditForm\";\r\nimport { Button } from \"../../../../components/Buttons\";\r\nimport StationNewForm from \"./StationNewForm\";\r\nimport { injectIntl } from \"react-intl\";\r\nimport messages from \"./messages\";\r\nimport moment from \"moment\";\r\n\r\nclass StationEditBase extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n stations: this.props.event.stations ? this.props.event.stations : [],\r\n showEditForm: false,\r\n showNewForm: false,\r\n stationKey: null,\r\n groupPayment: false,\r\n compensationByAgreement: false\r\n };\r\n\r\n this.handleSubmitStation = this.handleSubmitStation.bind(this);\r\n this.onDeleteStation = this.onDeleteStation.bind(this);\r\n this.submitEvent = this.submitEvent.bind(this);\r\n this.onStationClick = this.onStationClick.bind(this);\r\n this.toggleEditForm = this.toggleEditForm.bind(this);\r\n this.showNewStationForm = this.showNewStationForm.bind(this);\r\n this.handlePaymentChange = this.handlePaymentChange.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.props.fetchEventOffers({ eventId: this.props.event.eventId });\r\n }\r\n\r\n handlePaymentChange(PaymentTypeFieldValue) {\r\n switch (PaymentTypeFieldValue) {\r\n case \"COMPENSATIONBYAGREEMENT\":\r\n this.setState({\r\n groupPayment: false,\r\n compensationByAgreement: true\r\n });\r\n return;\r\n case \"HOURLYRATE\":\r\n this.setState({\r\n groupPayment: false,\r\n compensationByAgreement: false\r\n });\r\n return;\r\n case \"GROUPPAYMENT\":\r\n this.setState({\r\n groupPayment: true,\r\n compensationByAgreement: false\r\n });\r\n return;\r\n case \"PERPERSON\":\r\n this.setState({\r\n groupPayment: false,\r\n compensationByAgreement: false\r\n });\r\n return;\r\n case \"NOCOMPENSATION\":\r\n this.setState({\r\n groupPayment: false,\r\n compensationByAgreement: true\r\n });\r\n return;\r\n default:\r\n return;\r\n }\r\n }\r\n\r\n showNewStationForm() {\r\n this.setState({\r\n showNewForm: true,\r\n showEditForm: false\r\n });\r\n }\r\n\r\n toggleEditForm() {\r\n if (!this.state.showEditForm) {\r\n this.setState({\r\n showEditForm: true,\r\n showNewForm: false\r\n });\r\n } else {\r\n this.setState({\r\n showEditForm: false\r\n });\r\n }\r\n }\r\n\r\n scrollToForm() {\r\n let elem = document.getElementById(\"station-edit-form\");\r\n\r\n if (elem && window.scroll) {\r\n let offsetTop = 0;\r\n do {\r\n if (!isNaN(elem.offsetTop)) {\r\n offsetTop += elem.offsetTop;\r\n }\r\n // eslint-disable-next-line no-cond-assign\r\n } while ((elem = elem.offsetParent));\r\n\r\n window.scroll({\r\n top: offsetTop - 20,\r\n left: 0,\r\n behavior: \"smooth\"\r\n });\r\n }\r\n }\r\n\r\n onStationClick(key, row) {\r\n this.handlePaymentChange(row.paymentType);\r\n const currentKey = this.state.stationKey;\r\n this.setState(\r\n {\r\n stationKey: key,\r\n showEditForm: true,\r\n showNewForm: false\r\n },\r\n () => {\r\n // Only scroll if user clicks on a different station\r\n if (currentKey !== key) {\r\n this.scrollToForm();\r\n }\r\n }\r\n );\r\n }\r\n\r\n submitEvent(stationList) {\r\n this.setState({\r\n stations: stationList\r\n });\r\n this.props.submitEvent({\r\n ...this.props.event,\r\n stations: stationList\r\n });\r\n }\r\n\r\n handleSubmitStation(station) {\r\n this.submitEvent([\r\n ...this.state.stations,\r\n {\r\n ...station,\r\n id: Math.floor(Math.random() * 10000)\r\n }\r\n ]);\r\n }\r\n\r\n onDeleteStation(stationsList) {\r\n this.setState({\r\n showEditForm: false\r\n });\r\n this.submitEvent(stationsList);\r\n }\r\n\r\n render() {\r\n const initialValues = {\r\n start: moment(this.props.event.date)\r\n .set({\r\n hour: 8,\r\n minute: 0\r\n })\r\n .format(\"YYYY-MM-DD HH:mm\"),\r\n end: moment(this.props.event.date)\r\n .set({\r\n hour: 18,\r\n minute: 0\r\n })\r\n .format(\"YYYY-MM-DD HH:mm\")\r\n };\r\n\r\n return (\r\n \r\n \r\n {this.props.isTeamleaderView || this.props.event.status === \"HISTORIC\" ? null : (\r\n this.showNewStationForm()}\r\n label={this.props.intl.formatMessage(\r\n messages.stationEdit.addNewStationButton\r\n )}\r\n />\r\n )}\r\n {this.state.showEditForm ? (\r\n \r\n ) : null}\r\n {this.state.showNewForm ? (\r\n \r\n ) : null}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default injectIntl(StationEditBase);\r\n","import { connect } from \"react-redux\";\r\nimport { withRouter } from \"react-router\";\r\nimport { submitEvent, reset } from \"../reducer\";\r\nimport StationEditBase from \"./StationEditBase\";\r\nimport { fetchEventOffers } from \"../../Offer/reducer\";\r\nimport { resetUser } from \"../../../User/reducer\";\r\n\r\nconst mapStateToProps = (state, ownProps) => ({\r\n event: ownProps.event,\r\n status: state.event.status,\r\n initialValues: ownProps.event,\r\n user: state.auth.user,\r\n newUserStatus: state.user.newUserStatus,\r\n eventOffers: state.offers.eventOffers,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n submitEvent: data => dispatch(submitEvent(data)),\r\n resetEvent: () => dispatch(reset()),\r\n fetchEventOffers: data => dispatch(fetchEventOffers(data)),\r\n resetUser: () => dispatch(resetUser()),\r\n});\r\n\r\nexport default withRouter(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(StationEditBase));\r\n","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n eventDataLink: {\r\n id: 'event-edit.edit-data-link',\r\n },\r\n stationLink: {\r\n id: 'event-edit.edit-stations-link',\r\n },\r\n groupLink: {\r\n id: 'event-edit.edit-group-link',\r\n },\r\n paymentLink: {\r\n id: 'event-edit.edit-payment-link',\r\n },\r\n matchLink: {\r\n id: 'event-edit.match-link',\r\n },\r\n sendOutsLink: {\r\n id: 'event-edit.send-outs-link',\r\n },\r\n attendanceLink: {\r\n id: 'event-edit.attendance-link',\r\n },\r\n error: {\r\n id: 'event-edit.error',\r\n }\r\n});\r\n","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n sendReminder: {\r\n buttonText: {\r\n id: 'send-reminder.button-text',\r\n },\r\n error: {\r\n id: 'send-reminder.error',\r\n },\r\n success: {\r\n id: 'send-reminder.success',\r\n },\r\n noGroupsMatched: {\r\n id: 'send-reminder.no-groups-matched',\r\n }\r\n }\r\n});","import React from 'react';\r\nimport { FormattedMessage } from 'react-intl';\r\nimport { SmallGrayButton } from '../../../../../components/Buttons';\r\nimport { statuses } from '../../../Offer/reducer';\r\nimport { Error } from '../../../../../components'\r\nimport styled from 'styled-components';\r\nimport messages from './messages';\r\n\r\nconst CustomError = styled(Error)`\r\n font-weight: normal;\r\n text-align: center;\r\n margin-top: 5px;\r\n`;\r\n\r\nconst SentMessageLabel = styled.p`\r\n font-size: 14px;\r\n font-weight: 300;\r\n margin-right: -15px;\r\n`\r\n\r\nconst SendReminderButton = ({status, sendOfferReminder, sendOfferReminderGroups, eventId, intl}) => {\r\n const onClick = () => {\r\n sendOfferReminder({eventId});\r\n };\r\n\r\n const renderError = () => {\r\n if (status === statuses.SUBMIT_FAILED) {\r\n return \r\n }\r\n\r\n return null;\r\n }\r\n\r\n const renderSuccess = () => {\r\n if (status === statuses.SUBMIT_SUCCESS) {\r\n if (sendOfferReminderGroups.length > 0) {\r\n const groups = sendOfferReminderGroups.map(s => s.group.name);\r\n\r\n return

    \r\n } else {\r\n return \r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n } \r\n onClick={onClick} \r\n busy={status === statuses.SUBMITTING}\r\n check={status === statuses.SUBMIT_SUCCESS}\r\n />\r\n {renderError()}\r\n {renderSuccess()}\r\n
    \r\n );\r\n};\r\n\r\nexport default SendReminderButton;","import SendReminderButton from \"./SendReminderButton\";\r\nimport { connect } from \"react-redux\";\r\nimport { sendOfferReminder } from \"../../../Offer/reducer\";\r\n\r\nconst mapStateToProps = (state) => ({\r\n status: state.offers.sendOfferReminderStatus,\r\n sendOfferReminderGroups: state.offers.sendOfferReminderGroups\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n sendOfferReminder: data => dispatch(sendOfferReminder(data)),\r\n});\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(SendReminderButton);\r\n","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n sendInvitation: {\r\n buttonText: {\r\n id: 'send-invitation.button-text',\r\n },\r\n error: {\r\n id: 'send-invitation.error',\r\n },\r\n success: {\r\n id: 'send-invitation.success',\r\n },\r\n noInvitationSent: {\r\n id: 'send-invitation.noInvitationSent',\r\n },\r\n noGroupsMatched: {\r\n id: 'send-invitation.no-groups-matched',\r\n }\r\n }\r\n});","import React, { Fragment } from \"react\";\r\nimport { FormattedMessage } from \"react-intl\";\r\nimport { SmallPinkButton } from \"../../../../../components/Buttons\";\r\nimport { statuses } from \"../../../Offer/reducer\";\r\nimport { Error } from \"../../../../../components\"\r\nimport styled from \"styled-components\";\r\nimport messages from \"./messages\"\r\n\r\nconst CustomError = styled(Error)`\r\n font-weight: normal;\r\n text-align: center;\r\n margin-top: 5px;\r\n`;\r\n\r\nconst SentMessageLabel = styled.p`\r\n font-size: 14px;\r\n font-weight: 300;\r\n margin-left: -15px;\r\n`\r\n\r\nclass SendInvitationButton extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n sentToNone: false,\r\n numberSent: 0,\r\n }\r\n }\r\n\r\n onClick () {\r\n const { eventOffers, eventId, confirmStationOffers } = this.props;\r\n var numberSent = 0;\r\n this.setState({sentToNone: false, numberSent: 0})\r\n if (eventOffers && eventOffers[eventId]) {\r\n\tconst offers = eventOffers[eventId].reduce((arr, offer) => {\r\n\t\tconst { groupId, stationId } = offer\r\n\t return offer.status === \"DRAFT\" ? arr.concat({groupId, stationId}) : arr\r\n\t}, [])\r\n\tconfirmStationOffers({\r\n\t offers: offers,\r\n\t eventId: eventId\r\n\t})\r\n\tnumberSent = offers.length\r\n }\r\n if (numberSent === 0) {\r\n this.setState({sentToNone: true})\r\n }\r\n else {\r\n this.setState({numberSent: numberSent})\r\n }\r\n }\r\n\r\n renderError () {\r\n const { intl, status } = this.props;\r\n if (status === statuses.SUBMIT_FAILED) {\r\n return \r\n }\r\n return null;\r\n }\r\n\r\n renderSuccess () {\r\n const { numberSent } = this.state;\r\n if (this.state.sentToNone === true) {\r\n return \r\n }\r\n if (numberSent !== 0) {//status === statuses.SUBMIT_SUCCESS) {\r\n return {numberSent} \r\n }\r\n return null;\r\n }\r\n\r\n\r\n render () {\r\n const { intl, status } = this.props;\r\n return (\r\n \r\n this.onClick()}\r\n busy={status === statuses.SUBMITTING}\r\n check={status === statuses.SUBMIT_SUCCESS}\r\n />\r\n {this.renderError()}\r\n {this.renderSuccess()}\r\n \r\n )\r\n }\r\n}\r\n\r\n// const SendInvitationButton = ({ status, eventId, intl, eventOffers, confirmStationOffer }) => {\r\n// const onClick = () => {\r\n// if (eventOffers && eventOffers[eventId]) {\r\n// for (const offer of eventOffers[eventId]) {\r\n// if (offer.status === \"DRAFT\") {\r\n// confirmStationOffer({\r\n// groupId: offer.groupId,\r\n// stationId: offer.stationId,\r\n// eventId: eventId\r\n// })\r\n// }\r\n// }\r\n// }\r\n// };\r\n\r\n// const renderError = () => {\r\n// if (status === statuses.SUBMIT_FAILED) {\r\n// return \r\n// }\r\n// return null;\r\n// }\r\n\r\n// const renderSuccess = () => {\r\n// if (status === statuses.SUBMIT_SUCCESS) {\r\n// return \r\n// }\r\n// return null;\r\n// }\r\n\r\n// return (\r\n// \r\n// \r\n// {renderError()}\r\n// {renderSuccess()}\r\n// \r\n// );\r\n\r\n// };\r\n\r\nexport default SendInvitationButton;\r\n","import SendInvitationButton from \"./SendInvitationButton\";\r\nimport { connect } from \"react-redux\";\r\nimport { confirmStationOffers } from \"../../../Offer/reducer\";\r\n\r\nconst mapStateToProps = (state) => ({\r\n status: state.offers.sendInvitationStatus,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n confirmStationOffers: data => dispatch(confirmStationOffers(data)),\r\n});\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(SendInvitationButton);\r\n","import { defineMessages } from \"react-intl\";\r\n\r\nexport default defineMessages({\r\n header: {\r\n noMailSent: {\r\n id: \"station-allocation.table.header.noMailSent\"\r\n },\r\n lastReminder: {\r\n id: \"station-allocation.table.header.lastReminderSent\"\r\n },\r\n stations: {\r\n id: \"station-allocation.table.header.stations\",\r\n },\r\n },\r\n station: {\r\n workStation: {\r\n id: `station-allocation.table.workStation`\r\n },\r\n officialQuantity: {\r\n id: \"station-allocation.table.officialQuantity\",\r\n },\r\n officialsAllocated: {\r\n id: \"station-allocation.table.officialsAllocated\",\r\n },\r\n officialsProposed: {\r\n id: \"station-allocation.table.officialsProposed\",\r\n },\r\n officialPreliminary: {\r\n id: \"station-allocation.table.officialPreliminary\",\r\n },\r\n officialsAwaitingAnswer: {\r\n id: \"station-allocation.table.officialsAwaitingAnswer\",\r\n },\r\n officialsAccepted: {\r\n id: \"station-allocation.table.officialsAccepted\",\r\n },\r\n officialsMissing: {\r\n id: \"station-allocation.table.officialsMissing\",\r\n },\r\n officialsNotAllocated: {\r\n id: \"station-allocation.table.officialsNotAllocated\",\r\n },\r\n officialMinimumAge: {\r\n id: \"station-allocation.table.age-limit\",\r\n },\r\n skills: {\r\n id: \"station-allocation.table.skills\",\r\n },\r\n noSkills: {\r\n id: \"station-allocation.table.noSkills\",\r\n },\r\n },\r\n groupTable: {\r\n header: {\r\n groupName: {\r\n id: \"station-allocation.table.header.groupName\",\r\n },\r\n requestedQuantity: {\r\n id: \"station-allocation.table.header.requestedQuantity\",\r\n },\r\n ages: {\r\n id: \"station-allocation.table.header.ages\",\r\n },\r\n skills: {\r\n id: \"station-allocation.table.header.skills\",\r\n },\r\n },\r\n draft: {\r\n id: \"station-allocation.table.status-draft\",\r\n },\r\n proposal: {\r\n id: \"station-allocation.table.status-proposal\",\r\n },\r\n accepted: {\r\n id: \"station-allocation.table.status-accepted\",\r\n },\r\n rejected: {\r\n id: \"station-allocation.table.status-rejected\",\r\n }\r\n },\r\n addGroup: {\r\n title: {\r\n id: \"station-allocation.addGroup.title\",\r\n },\r\n button: {\r\n id: \"station-allocation.addGroup.button\",\r\n },\r\n selectGroup: {\r\n id: \"station-allocation.addGroup.selectGroup.placeholder\",\r\n },\r\n requestedQuantity: {\r\n id: \"station-allocation.addGroup.requestedQuantity\",\r\n },\r\n groupSummary: {\r\n title: {\r\n id: \"station-allocation.addGroup.groupSummary.title\",\r\n },\r\n name: {\r\n id: \"station-allocation.addGroup.groupSummary.name\",\r\n },\r\n ages: {\r\n id: \"station-allocation.addGroup.groupSummary.ages\",\r\n },\r\n members: {\r\n id: \"station-allocation.addGroup.groupSummary.members\",\r\n },\r\n sports: {\r\n id: \"station-allocation.addGroup.groupSummary.sports\",\r\n },\r\n skills: {\r\n id: \"station-allocation.addGroup.groupSummary.skills\",\r\n },\r\n },\r\n toManyRequestedError: {\r\n id: \"station-allocation.addGroup.to-many-requested-error\",\r\n },\r\n allocatedError: {\r\n id: \"station-allocation.addGroup.allocated-error\",\r\n },\r\n createOfferError: {\r\n id: \"station-allocation.addGroup.create-offer-error\",\r\n }\r\n },\r\n offers: {\r\n groupName: {\r\n id: \"station-allocation.offer.groupName\",\r\n },\r\n requestedQuantity: {\r\n id: \"station-allocation.offer.requestedQuantity\",\r\n },\r\n status: {\r\n id: \"station-allocation.offer.status\",\r\n },\r\n },\r\n saveButton: {\r\n id: \"station-offer.send-button\",\r\n },\r\n confirmModalTitle: {\r\n id: \"station-offers.confirm-delete-group-offer-modal.title\",\r\n },\r\n confirmModalText: {\r\n id: \"station-offers.confirm-delete-group-offer-modal.text\",\r\n },\r\n confirmModalButton: {\r\n id: \"station-offers.confirm-delete-modal.confirm-button\",\r\n },\r\n cancelConfirmModalButton: {\r\n id: \"station-offers.confirm-delete-modal.cancel-button\",\r\n },\r\n notConfirmedWarning: {\r\n id: \"station-offers.not-confirmed-warning\",\r\n },\r\n historicWarning: {\r\n id: \"station-offers.historic-warning\",\r\n },\r\n});\r\n","import React, { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport styled from \"styled-components\";\r\nimport { Field, reduxForm, formValueSelector } from \"redux-form\";\r\nimport { connect } from \"react-redux\";\r\nimport messages from \"./messages\";\r\nimport { Input, Select, GeneralError } from \"../../../../components\";\r\nimport { SmallGrayButton } from \"../../../../components/Buttons\";\r\nimport { Col } from \"react-bootstrap/lib\";\r\nimport { FormattedMessage } from \"react-intl\";\r\nimport { required } from \"../../../../validators/index\";\r\nimport { statuses } from \"../../Offer/reducer\";\r\n\r\nconst FormWrapper = styled.div`\r\n margin: 20px 0;\r\n`;\r\n\r\nconst StyledTd = styled.td`\r\n padding: 0 15px 10px 0;\r\n font-size: 18px;\r\n`;\r\n\r\nconst maxOfficials = max => value =>\r\n value > max ? `Du kan max lägga in ${max} funktionärer` : undefined;\r\n\r\nconst getNumOfOccupiedVolunteers = (group, allOffers) => {\r\n let occupiedVolunteers = 0;\r\n if (allOffers) {\r\n allOffers.forEach(offer => {\r\n if (\r\n group &&\r\n group.groupId === offer.groupId &&\r\n offer.status !== \"REJECTED\"\r\n ) {\r\n occupiedVolunteers += parseInt(offer.volunteers, 10);\r\n } else if (\r\n (group === undefined || group === null) &&\r\n offer.status !== \"REJECTED\"\r\n ) {\r\n occupiedVolunteers += parseInt(offer.volunteers, 10);\r\n }\r\n });\r\n }\r\n return occupiedVolunteers;\r\n};\r\n\r\n/**\r\n * Filter out doublets, sort, and filter out all groups that already have an offer\r\n *\r\n * @station: Current event station\r\n * @availableGroups: Array of group availabilities\r\n */\r\nconst getGroupOptions = (station, availableGroups, allOffers, intl) => {\r\n const groupsWithoutDoublets = availableGroups\r\n .slice()\r\n .filter((currentGroup, GroupPos, groupArr) => {\r\n return (\r\n groupArr\r\n .map(group => group[\"groupId\"])\r\n .indexOf(currentGroup[\"groupId\"]) === GroupPos\r\n );\r\n });\r\n groupsWithoutDoublets.sort((a, b) => {\r\n let comparision;\r\n if (a.group.numberOfMembers > b.group.numberOfMembers) {\r\n comparision = 1;\r\n } else {\r\n comparision = -1;\r\n }\r\n return comparision * -1;\r\n });\r\n\r\n // Filter out groups that have an offer on this station\r\n const groupWithoutOfferOnThisStation = groupsWithoutDoublets.filter(\r\n gd =>\r\n !allOffers.find(\r\n ao => ao.groupId === gd.groupId && ao.stationId === station.id\r\n )\r\n );\r\n // Filter out groups that don't have any available volunteers\r\n const groupsWithAvailableVolunteers = groupWithoutOfferOnThisStation.filter(\r\n groupAvailability => {\r\n const occupiedVolunteers = getNumOfOccupiedVolunteers(\r\n groupAvailability.group,\r\n allOffers\r\n );\r\n return occupiedVolunteers < groupAvailability.group.numberOfMembers;\r\n }\r\n );\r\n\r\n const groupOptions = groupsWithAvailableVolunteers.map(({ group }) => {\r\n const occupiedVolunteers = getNumOfOccupiedVolunteers(group, allOffers);\r\n\r\n return {\r\n id: group.id,\r\n text: `${group.organizationName} - ${\r\n group.name\r\n } - ${group.numberOfMembers - occupiedVolunteers} ${\r\n group.skills\r\n ? ` - ${group.skills\r\n .map(skill => intl.formatMessage({ id: `lists.skills.${skill}` }))\r\n .join(\", \")}`\r\n : \"\"\r\n }`\r\n };\r\n });\r\n\r\n return groupOptions;\r\n};\r\n\r\nconst GroupSummary = ({ group, formatMessage, occupiedVolunteers }) => {\r\n if (!group) {\r\n return null;\r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    {group.ages.join(\", \")}
    {group.numberOfMembers - occupiedVolunteers}
    {(group.sports || []).join(\", \")}
    \r\n {group.skills\r\n ? group.skills\r\n .map(skill =>\r\n formatMessage({\r\n id: `lists.skills.${skill}`\r\n }).toLowerCase()\r\n )\r\n .join(\", \")\r\n : null}\r\n
    \r\n \r\n );\r\n};\r\n\r\nclass AddGroup extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n const { availableGroups = [], intl, allOffers, station } = this.props;\r\n\r\n this.state = {\r\n groupMemberError: false,\r\n allocatedError: false,\r\n groupOptions: getGroupOptions(station, availableGroups, allOffers, intl)\r\n };\r\n\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n //this.confirmStationOffers = this.confirmStationOffers.bind(this);\r\n\r\n this.maxAllowedOfficials = maxOfficials(\r\n parseInt(this.props.station.officialQuantity, 10)\r\n );\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (\r\n this.props.volunteers !== prevProps.volunteers &&\r\n this.state.groupMemberError\r\n ) {\r\n this.checkGroupMemberError();\r\n }\r\n if (this.state.allocatedError) {\r\n const {\r\n officialsAllocated,\r\n officialsProposed,\r\n officialsDraft\r\n } = this.props;\r\n\r\n if (\r\n officialsAllocated !== prevProps.officialsAllocated ||\r\n officialsProposed !== prevProps.officialsProposed ||\r\n officialsDraft !== prevProps.officialsDraft\r\n ) {\r\n this.checkIfAllIsAllocated(this.props.volunteers);\r\n }\r\n }\r\n if (\r\n prevProps.offerCreateStatus[this.props.station.id] ===\r\n statuses.SUBMITTING &&\r\n this.props.offerCreateStatus[this.props.station.id] ===\r\n statuses.SUBMIT_SUCCESS\r\n ) {\r\n // Clear the group field and untouch it to hide the validation message\r\n this.props.change(\"group\", \"\");\r\n this.props.untouch(\"group\", \"\");\r\n this.updateGroupOptions();\r\n }\r\n\r\n if (\r\n this.props.availableGroups !== prevProps.availableGroups ||\r\n prevProps.allOffers.length !== this.props.allOffers.length\r\n ) {\r\n this.updateGroupOptions();\r\n }\r\n }\r\n\r\n updateGroupOptions() {\r\n const { availableGroups = [], intl, allOffers, station } = this.props;\r\n this.setState({\r\n groupOptions: getGroupOptions(station, availableGroups, allOffers, intl)\r\n });\r\n }\r\n\r\n /**\r\n * Check if requested volunteers are lower or equal to number of group members\r\n */\r\n checkGroupMemberError() {\r\n const group = this.props.availableGroups\r\n .map(availableGroup => availableGroup.group)\r\n .find(group => group.id === this.props.group);\r\n const occupiedVolunteers = getNumOfOccupiedVolunteers(\r\n group,\r\n this.props.allOffers\r\n );\r\n const toManyRequestedVolunteers =\r\n this.props.volunteers > group.numberOfMembers - occupiedVolunteers;\r\n\r\n if (this.state.groupMemberError !== toManyRequestedVolunteers) {\r\n this.setState({ groupMemberError: toManyRequestedVolunteers });\r\n }\r\n\r\n return toManyRequestedVolunteers;\r\n }\r\n\r\n /**\r\n * Check if more volunteers are requested than what is missing on the station.\r\n *\r\n * Error = Antal > Behov - Accepted - Proposal - Draft\r\n */\r\n checkIfAllIsAllocated(numberOfRequested) {\r\n const {\r\n officialsAllocated,\r\n officialsProposed,\r\n officialsDraft,\r\n station\r\n } = this.props;\r\n const allocatedError =\r\n parseInt(numberOfRequested, 10) >\r\n parseInt(station.officialQuantity, 10) -\r\n officialsAllocated -\r\n officialsProposed -\r\n officialsDraft;\r\n if (allocatedError !== this.state.allocatedError) {\r\n this.setState({ allocatedError });\r\n }\r\n\r\n return allocatedError;\r\n }\r\n\r\n // confirmStationOffers() {\r\n // if (this.props.offers) {\r\n // for (const offer of this.props.offers) {\r\n // if (offer.status === \"DRAFT\") {\r\n // this.props.confirmStationOffer({\r\n // groupId: offer.groupId,\r\n // stationId: offer.stationId,\r\n // eventId: offer.eventId\r\n // });\r\n // }\r\n // }\r\n // }\r\n \r\n // }\r\n\r\n handleSubmit(fieldValues) {\r\n const toManyRequestedFromGroup = this.checkGroupMemberError();\r\n const allocatedError = this.checkIfAllIsAllocated(fieldValues.volunteers);\r\n\r\n if (!toManyRequestedFromGroup && !allocatedError) {\r\n this.props.createOffer({\r\n volunteers: fieldValues.volunteers ? fieldValues.volunteers : 1,\r\n groupId: fieldValues.group,\r\n stationId: this.props.station.id,\r\n eventId: this.props.eventId\r\n });\r\n }\r\n }\r\n\r\n renderGroupMemberError() {\r\n if (!this.state.groupMemberError) {\r\n return null;\r\n }\r\n return (\r\n \r\n {this.props.intl.formatMessage(messages.addGroup.toManyRequestedError)}\r\n \r\n );\r\n }\r\n\r\n renderAllocatedError() {\r\n if (!this.state.allocatedError) {\r\n return null;\r\n }\r\n return (\r\n \r\n {this.props.intl.formatMessage(messages.addGroup.allocatedError)}\r\n \r\n );\r\n }\r\n\r\n renderCreateOfferError() {\r\n const { offerCreateStatus, station } = this.props;\r\n\r\n if (\r\n offerCreateStatus &&\r\n offerCreateStatus[station.id] &&\r\n offerCreateStatus[station.id] === statuses.SUBMIT_FAILED\r\n ) {\r\n return (\r\n \r\n \r\n {this.props.intl.formatMessage(messages.addGroup.createOfferError)}\r\n \r\n \r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n render() {\r\n const {\r\n availableGroups = [],\r\n intl,\r\n allOffers,\r\n offerCreateStatus,\r\n station\r\n } = this.props;\r\n const group = this.props.group\r\n ? availableGroups\r\n .map(availableGroup => availableGroup.group)\r\n .find(group => group.id === this.props.group)\r\n : null;\r\n const occupiedVolunteers = getNumOfOccupiedVolunteers(group, allOffers);\r\n return (\r\n
    \r\n {this.props.event.status == \"HISTORIC\" ? \"\" : \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n\r\n {this.renderGroupMemberError()}\r\n {this.renderAllocatedError()}\r\n {this.renderCreateOfferError()}\r\n \r\n {/* */}\r\n \r\n }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nAddGroup.propTypes = {\r\n createOffer: PropTypes.func.isRequired,\r\n station: PropTypes.object.isRequired,\r\n availableGroups: PropTypes.array\r\n};\r\n\r\nlet AddGroupForm = reduxForm({\r\n form: `addGroup ${Math.random() * 100}`\r\n})(AddGroup);\r\n\r\nAddGroupForm = connect((state, ownProps) => {\r\n const selector = formValueSelector(ownProps.form);\r\n return {\r\n group: selector(state, \"group\"),\r\n volunteers: selector(state, \"volunteers\"),\r\n initialValues: {\r\n volunteers: ownProps.station ? ownProps.station.officialQuantity - ownProps.officialsProposed - \r\n ownProps.officialsAllocated - ownProps.officialsDraft : 1\r\n }\r\n };\r\n})(AddGroupForm);\r\n\r\nexport default AddGroupForm;\r\n","import React, { Component, Fragment } from \"react\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport styled from \"styled-components\";\r\nimport messages from \"./../messages\";\r\nimport AddGroup from \"../AddGroup\";\r\nimport { ViewVolunteers } from \".\";\r\nimport { SmallGrayButton } from \"../../../../../components/Buttons\";\r\nimport { breakPoints } from \"../../../../../constants/styling-constants\";\r\n\r\n\r\nconst SummaryWrapper = styled.div`\r\n font-size: 18px;\r\n justify-content: space-between;\r\n font-weight: 500;\r\n color: #404040;\r\n background: white;\r\n margin-bottom: 20px;\r\n padding-bottom: 15px;\r\n padding-top: 15px;\r\n`;\r\n\r\nconst Header = styled.div`\r\n font-weight: 600;\r\n font-size: 18px;\r\n display: inline-flex;\r\n`;\r\n\r\nconst SummaryHeader = styled(Row)`\r\n font-weight: 500;\r\n font-size: 24px;\r\n margin-left: 5px;\r\n margin-bottom: 5px;\r\n`;\r\n\r\nconst SkillBox = styled.div`\r\n border: 1px solid #dddddd;\r\n margin-left: 2px;\r\n margin-bottom: 2px;\r\n display: inline-block;\r\n background-color: #eeeeee;\r\n &.empty {\r\n border: 0px;\r\n background-color: transparent;\r\n }\r\n p {\r\n margin-top: 2px;\r\n margin-bottom: 2px;\r\n margin-left: 4px;\r\n margin-right: 4px;\r\n }\r\n`;\r\n\r\nconst SkillWrapper = styled.div`\r\n display: flow-root;\r\n margin-left: -5px;\r\n`;\r\n\r\nconst SummaryRow = styled(Row)`\r\n margin-left: 5px;\r\n margin-bottom: 5px;\r\n`;\r\n\r\nconst ButtonWrapper = styled(Row)`\r\n margin-left: 15px;\r\n width: 90%;\r\n justify-content: space-around;\r\n @media (max-width: ${breakPoints.sm}px) {\r\n flex-direction: column;\r\n align-items: center;\r\n }\r\n`;\r\n\r\nclass AddVolunteersForm extends Component {\r\n componentDidMount() {\r\n if (!Array.isArray(this.props.availableGroups)) {\r\n const { municipality, start, end, id } = this.props.station;\r\n this.props.fetchAvailableGroups({\r\n eventId: this.props.eventId,\r\n location: municipality,\r\n startDate: start,\r\n endDate: end,\r\n stationId: id\r\n });\r\n }\r\n }\r\n\r\n StationSummaryRow(){\r\n const { station, \r\n officialsProposed,\r\n officialsAllocated, \r\n officialsDraft } = this.props;\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n {station.name}\r\n \r\n \r\n \r\n \r\n \r\n {\": \"}\r\n \r\n \r\n {station.officialQuantity}\r\n \r\n \r\n \r\n \r\n \r\n {\": \"}\r\n \r\n {station.officialQuantity - officialsProposed - officialsAllocated - officialsDraft}\r\n \r\n {this.renderMinimumAge()}\r\n {this.renderSkills()}\r\n \r\n
    \r\n );\r\n }\r\n\r\n\r\n renderMinimumAge() {\r\n const { station } = this.props;\r\n return (\r\n \r\n \r\n :\r\n {\" \"}\r\n \r\n {station.officialMiniumumAge}\r\n \r\n );\r\n }\r\n\r\n renderSkills() {\r\n const { station, intl } = this.props;\r\n return (\r\n \r\n \r\n :\r\n {\" \"}\r\n \r\n \r\n \r\n {station.skills && station.skills.length > 0 ? (\r\n station.skills.map((skill, index) => (\r\n \r\n

    {intl.formatMessage({ id: `lists.skills.${skill}` })}

    \r\n
    \r\n ))\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 { availableGroups, ...restProps } = this.props;\r\n const { station } = this.props;\r\n return (\r\n \r\n {this.StationSummaryRow()}\r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n this.props.prevModal()}\r\n label={\"Föregående\"}\r\n />\r\n this.props.nextModal()}\r\n label={\"Nästa\"}\r\n />\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nlet AddVolunteersFirst = injectIntl(AddVolunteersForm);\r\n\r\nexport default AddVolunteersFirst;\r\n","import React, { Component } from \"react\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\nimport { Row, Col, Grid } from \"react-bootstrap/lib\";\r\nimport styled from \"styled-components\";\r\nimport { DeleteButton, SmallPinkButton } from \"../../../../../components/Buttons\";\r\nimport {\r\n BorderTable,\r\n GeneralError,\r\n ConfirmationModal\r\n} from \"../../../../../components\";\r\nimport messages from \"./../messages\";\r\nimport { reduxForm } from \"redux-form\";\r\n\r\nconst StyledBorderTable = styled(BorderTable)`\r\n margin-bottom: 20px;\r\n font-size: 18px;\r\n`;\r\n\r\nconst validate = values => null;\r\n\r\nconst DeleteListItemButton = ({ row, callback }) => {\r\n const onClick = () => {\r\n callback(row);\r\n };\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst StationOfferRow = ({ groupId, volunteers, status, offer, availableGroups, onDeleteRow, formatMessage, eventStatus }) => {\r\n let group = null;\r\n if (Array.isArray(availableGroups)) {\r\n group = availableGroups.find(g => g.groupId === groupId);\r\n }\r\n return (\r\n \r\n {group ? group.group.name : (offer ? offer.group.name : \"\")}\r\n {volunteers}\r\n {formatMessage(messages.groupTable[status.toLowerCase()])}\r\n \r\n {eventStatus == \"HISTORIC\" ? \"\" : \r\n \r\n }\r\n \r\n \r\n )\r\n};\r\n\r\nclass ViewVolunteers1 extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n showDeleteGroupModal: false,\r\n deletingOffer: false,\r\n offerToDelete: false,\r\n };\r\n this.onDeleteGroupOffer = this.onDeleteGroupOffer.bind(this);\r\n this.onConfirmDelete = this.onConfirmDelete.bind(this);\r\n this.confirmStationOffers = this.confirmStationOffers.bind(this);\r\n this.toggleModal = this.toggleModal.bind(this);\r\n }\r\n\r\n\r\n componentDidMount() {\r\n if (!Array.isArray(this.props.availableGroups)) {\r\n const { municipality, start, end, id } = this.props.station;\r\n this.props.fetchAvailableGroups({\r\n eventId: this.props.eventId,\r\n location: municipality,\r\n startDate: start,\r\n endDate: end,\r\n stationId: id\r\n });\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if ((!this.props.deleteOfferError && nextProps.deleteOfferError) || (this.props.offers && (!nextProps.offers || this.props.offers.length > nextProps.offers.length))) {\r\n this.setState({\r\n showDeleteGroupModal: false,\r\n deletingOffer: false\r\n });\r\n }\r\n }\r\n\r\n onConfirmDelete() {\r\n this.props.deleteOffer({\r\n eventId: this.props.eventId,\r\n groupId: this.state.offerToDelete.groupId,\r\n stationId: this.state.offerToDelete.stationId\r\n });\r\n this.setState({\r\n deletingOffer: true\r\n });\r\n }\r\n\r\n onDeleteGroupOffer(row) {\r\n this.toggleModal();\r\n this.setState({\r\n offerToDelete: row,\r\n });\r\n }\r\n\r\n toggleModal() {\r\n this.setState({\r\n showDeleteGroupModal: !this.state.showDeleteGroupModal,\r\n });\r\n }\r\n\r\n confirmStationOffers() {\r\n if (this.props.offers) {\r\n\tconst offers = this.props.offers.reduce((arr, offer) => {\r\n\t const { groupId, stationId } = offer\r\n\t return offer.status === \"DRAFT\" ? arr.concat({groupId, stationId}) : arr\r\n\t}, [])\r\n\r\n\tthis.props.confirmStationOffers({\r\n\t offers: offers,\r\n\t eventId: this.props.eventId\r\n\t})\r\n }\r\n }\r\n\r\n render() {\r\n const { intl, station, offers = [], deleteOfferError, availableGroups } = this.props;\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 {offers.filter(offer => offer.stationId === station.id).map((offer, index) =>\r\n )}\r\n \r\n \r\n {deleteOfferError ? (\r\n {deleteOfferError.message}) : null}\r\n \r\n {this.props.event.status == \"HISTORIC\" ? \"\" :\r\n { return offer.status === \"DRAFT\" ? 1 : 0 } ) === undefined}\r\n type=\"button\"\r\n className=\"submit rightPos\"\r\n onClick={this.confirmStationOffers}\r\n label={intl.formatMessage(messages.saveButton)}\r\n />\r\n }\r\n \r\n \r\n\r\n \r\n )\r\n }\r\n}\r\n\r\nlet ViewVolunteers = reduxForm({\r\n form: \"view-volunteers-modal\",\r\n validate,\r\n})(injectIntl(ViewVolunteers1));\r\n\r\nexport default ViewVolunteers;\r\n","import React, { Component, Fragment } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\nimport SendReminderButton from \"./SendReminderButton\";\r\nimport SendInvitationButton from \"./SendInvitationButton\";\r\nimport { AddVolunteersFirst } from \"./ModalsContent\";\r\nimport { P, H2, PopUpModal } from \"../../../../components\";\r\nimport messages from \"./messages\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport styled from \"styled-components\";\r\nimport { breakPoints } from \"../../../../constants/styling-constants\";\r\n\r\nexport const filterStationOffers = ({ offers = [], eventId, stationId }) =>\r\n (Array.isArray(offers[eventId]) &&\r\n offers[eventId].filter(offer => offer.stationId === stationId)) ||\r\n undefined;\r\n\r\nconst ButtonWrapper = styled(Col)`\r\n //display: flex; - Add this when we add search group support\r\n @media (max-width: ${breakPoints.xs}px) {\r\n flex-direction: column;\r\n align-items: center;\r\n }\r\n`;\r\nclass Stations extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n order: 'desc',\r\n field: 'officialQuantity'\r\n };\r\n this.toggleAddVolunteersModal = this.toggleAddVolunteersModal.bind(this);\r\n this.handleSort = this.handleSort.bind(this);\r\n }\r\n\r\n toggleAddVolunteersModal(id) {\r\n this.setState({\r\n [`showAddVolunteersModal${id}`]: !this.state[\r\n `showAddVolunteersModal${id}`\r\n ]\r\n });\r\n }\r\n\r\n nextAddVolunteersModal = (currId, nextId) => {\r\n this.setState({\r\n [`showAddVolunteersModal${currId}`]: !this.state[\r\n `showAddVolunteersModal${currId}`\r\n ],\r\n [`showAddVolunteersModal${nextId}`]: !this.state[\r\n `showAddVolunteersModal${nextId}`\r\n ]\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.props.fetchEventOffers({ eventId: this.props.eventId });\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetAvailableGroups();\r\n }\r\n\r\n formatModals(stations) {\r\n const { availableGroups, ...restProps } = this.props;\r\n const {\r\n eventOffers,\r\n eventId\r\n } = this.props;\r\n\r\n const mod = (n, m) => {\r\n return ((n % m) + m) % m;\r\n }\r\n\r\n return stations.map((station, index) => {\r\n const modal = (\r\n this.toggleAddVolunteersModal(station.id)}\r\n backdrop='static'\r\n >\r\n this.toggleAddVolunteersModal(station.id)}\r\n nextModal={() => this.nextAddVolunteersModal(station.id, stations[mod(index+1, stations.length)].id)}\r\n prevModal={() => this.nextAddVolunteersModal(station.id, stations[mod(index-1, stations.length)].id)}\r\n {...restProps}\r\n />\r\n )\r\n\r\n return {\r\n modal,\r\n ...station\r\n };\r\n });\r\n }\r\n\r\n formatStations() {\r\n const {\r\n initialValues: { stations = [] } = {},\r\n eventOffers,\r\n eventId\r\n } = this.props;\r\n\r\n return stations.map((station, index) => {\r\n const offers = filterStationOffers({\r\n offers: eventOffers,\r\n eventId,\r\n stationId: station.id\r\n });\r\n const officialsAllocated = offers\r\n ? offers\r\n .filter(offer => offer.status === \"ACCEPTED\")\r\n .reduce((allocated, offer) => allocated + +offer.volunteers, 0)\r\n : 0;\r\n const officialsDraft = offers\r\n ? offers\r\n .filter(offer => offer.status === \"DRAFT\")\r\n .reduce((allocated, offer) => allocated + +offer.volunteers, 0)\r\n : 0;\r\n const officialsProposed = offers\r\n ? offers\r\n .filter(offer => offer.status === \"PROPOSAL\")\r\n .reduce((allocated, offer) => allocated + +offer.volunteers, 0)\r\n : 0;\r\n let officialsMissing =\r\n station.officialQuantity - officialsAllocated < 0\r\n ? 0\r\n : station.officialQuantity - officialsAllocated;\r\n\r\n const officialQuantity = parseInt(station.officialQuantity);\r\n\r\n return {\r\n offers,\r\n officialsAllocated,\r\n officialsDraft,\r\n officialsProposed,\r\n officialsMissing,\r\n ...station,\r\n officialQuantity,\r\n };\r\n });\r\n }\r\n\r\n handleSort(field, order) {\r\n this.setState({\r\n field: field,\r\n order: order\r\n });\r\n }\r\n\r\n render() {\r\n let formattedStations = this.formatStations();\r\n formattedStations.sort((a, b) => (a[this.state.field] > b[this.state.field] ? 1 : -1))\r\n if (this.state.order === \"desc\") formattedStations.reverse();\r\n formattedStations = this.formatModals(formattedStations);\r\n\r\n const columns = [\r\n {\r\n dataField: \"id\",\r\n text: \"id\",\r\n hidden: true,\r\n sort: true\r\n },\r\n {\r\n dataField: \"name\",\r\n text: this.props.intl.formatMessage(messages.station.workStation),\r\n headerStyle: {\r\n textAlign: \"center\"\r\n },\r\n sort: true,\r\n onSort: this.handleSort\r\n },\r\n {\r\n dataField: \"officialQuantity\",\r\n text: this.props.intl.formatMessage(messages.station.officialQuantity),\r\n headerStyle: {\r\n textAlign: \"center\"\r\n },\r\n sort: true,\r\n onSort: this.handleSort\r\n },\r\n {\r\n dataField: \"officialsDraft\",\r\n text: this.props.intl.formatMessage(\r\n messages.station.officialPreliminary\r\n ),\r\n headerStyle: {\r\n textAlign: \"center\"\r\n },\r\n headerClasses: \"hidden-xs\",\r\n classes: \"hidden-xs\",\r\n sort: true,\r\n onSort: this.handleSort\r\n },\r\n {\r\n dataField: \"officialsProposed\",\r\n text: this.props.intl.formatMessage(\r\n messages.station.officialsAwaitingAnswer\r\n ),\r\n headerStyle: {\r\n textAlign: \"center\"\r\n },\r\n headerClasses: \"hidden-xs\",\r\n classes: \"hidden-xs\",\r\n sort: true,\r\n onSort: this.handleSort\r\n },\r\n {\r\n dataField: \"officialsAllocated\",\r\n text: this.props.intl.formatMessage(\r\n messages.station.officialsAllocated\r\n ),\r\n headerStyle: {\r\n textAlign: \"center\"\r\n },\r\n sort: true,\r\n onSort: this.handleSort\r\n },\r\n {\r\n dataField: \"officialsMissing\",\r\n text: this.props.intl.formatMessage(messages.station.officialsMissing),\r\n headerStyle: {\r\n textAlign: \"center\",\r\n },\r\n headerClasses: \"hidden-xs\",\r\n classes: \"hidden-xs\",\r\n sort: true,\r\n onSort: this.handleSort\r\n }\r\n ];\r\n\r\n const { initialValues: { stations = [] } = {} } = this.props;\r\n\r\n const rowEvents = {\r\n onClick: (e, row, rowIndex) => {\r\n this.toggleAddVolunteersModal(row.id);\r\n },\r\n };\r\n\r\n if (this.props.event.status == \"DRAFT\") {\r\n \r\n return (\r\n

    \r\n \r\n

    \r\n );\r\n }\r\n\r\n return (\r\n \r\n {formattedStations.map(s => {return s.modal})}\r\n

    \r\n \r\n

    \r\n \r\n \r\n {this.props.event.status == \"HISTORIC\" ? \"\" : \r\n \r\n }\r\n \r\n \r\n {this.props.event.status == \"HISTORIC\" ? \"\" : \r\n \r\n }\r\n \r\n \r\n
    \r\n
    \r\n {stations.length > 0 && (\r\n \r\n \r\n \r\n )}\r\n
    \r\n );\r\n }\r\n}\r\n\r\n// This shall change according to how the server serves stationAllocations\r\nlet StationsForm = injectIntl(Stations);\r\n\r\nStationsForm = connect(state => ({\r\n initialValues: {\r\n // Shallow copy of stations and then sort it on officialQuantity\r\n stations: state.event.event.stations\r\n ? state.event.event.stations\r\n .map(s => Object.assign({}, s))\r\n : [],\r\n },\r\n}))(StationsForm);\r\n\r\nexport default StationsForm;\r\n","import StationOffers from \"./StationOffers\";\r\nimport { withRouter } from \"react-router\";\r\nimport { connect } from \"react-redux\";\r\nimport {\r\n fetchEventOffers,\r\n fetchAvailableGroups,\r\n createOffer,\r\n confirmStationOffers,\r\n deleteOffer,\r\n resetAvailableGroups\r\n} from \"../../Offer/reducer\";\r\n\r\nconst mapStateToProps = (state, ownProps) => ({\r\n eventOffers: state.offers.eventOffers,\r\n availableGroups: state.offers.availableGroups,\r\n event: ownProps.event,\r\n deleteOfferError: state.offers.deleteOfferError,\r\n offerCreateStatus: state.offers.offerCreateStatus,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n fetchEventOffers: data => dispatch(fetchEventOffers(data)),\r\n fetchAvailableGroups: data => dispatch(fetchAvailableGroups(data)),\r\n createOffer: data => dispatch(createOffer(data)),\r\n //confirmStationOffer: data => dispatch(confirmStationOffer(data)),\r\n confirmStationOffers: data => dispatch(confirmStationOffers(data)),\r\n deleteOffer: data => dispatch(deleteOffer(data)),\r\n resetAvailableGroups: () => dispatch(resetAvailableGroups())\r\n});\r\n\r\nexport default withRouter(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(StationOffers));\r\n","export const SEND_SEND_OUT = 'SEND_SEND_OUT';\r\nexport const SEND_OUT_SUCCESS = 'SEND_OUT_SUCCESS';\r\nexport const SEND_OUT_FAILED = 'SEND_OUT_FAILED';\r\nexport const FETCH_SEND_OUTS = 'FETCH_SEND_OUTS';\r\nexport const FETCH_SEND_OUTS_SUCCESS = 'FETCH_SEND_OUTS_SUCCESS';\r\nexport const FETCH_SEND_OUTS_FAILED = 'FETCH_SEND_OUTS_FAILED';\r\nexport const FETCH_SEND_OUT = 'FETCH_SEND_OUT';\r\nexport const FETCH_SEND_OUT_SUCCESS = 'FETCH_SEND_OUT_SUCCESS';\r\nexport const FETCH_SEND_OUT_FAILED = 'FETCH_SEND_OUT_FAILED';\r\n\r\nexport function sendSendOut (data) {\r\n return {\r\n type: SEND_SEND_OUT,\r\n payload: data,\r\n };\r\n}\r\n\r\nexport function fetchSendOuts (data) {\r\n return {\r\n type: FETCH_SEND_OUTS,\r\n payload: data,\r\n };\r\n}\r\n\r\nexport function fetchSendOut (data) {\r\n return {\r\n type: FETCH_SEND_OUT,\r\n payload: data,\r\n };\r\n}\r\n\r\nexport const status = {\r\n PENDING: 'PENDING',\r\n SENDING: 'SENDING',\r\n SEND_SUCCESS: 'SEND_SUCCESS',\r\n SEND_FAILED: 'SEND_FAILED',\r\n};\r\n\r\nexport const fetchStatus = {\r\n PENDING: 'PENDING',\r\n FETCHING: 'FETCHING',\r\n FETCH_SUCCESS: 'FETCH_SUCCESS',\r\n FETCH_FAILED: 'FETCH_FAILED',\r\n};\r\n\r\nexport const initialState = {\r\n status: status.PENDING,\r\n fetchStatus: fetchStatus.PENDING,\r\n sendOuts: null,\r\n error: null,\r\n sendOut: null,\r\n fetchSingleStatus: fetchStatus.PENDING,\r\n};\r\n\r\n\r\nconst sortOnCreatedAt = (a,b) => {\r\n return new Date(b.createdAt) - new Date(a.createdAt);\r\n};\r\n\r\nexport default function auth(state = initialState, action) {\r\n if (!action) {\r\n return state;\r\n }\r\n\r\n switch (action.type) {\r\n case SEND_SEND_OUT:\r\n return Object.assign({}, state, {status: status.SENDING});\r\n case SEND_OUT_SUCCESS:\r\n return Object.assign({}, state, {status: status.SEND_SUCCESS});\r\n case SEND_OUT_FAILED:\r\n return Object.assign({}, state, {status: status.SEND_FAILED, error: action.payload});\r\n case FETCH_SEND_OUTS:\r\n return Object.assign({}, state, {fetchStatus: fetchStatus.FETCHING});\r\n case FETCH_SEND_OUTS_SUCCESS:\r\n const sendOuts = action.payload.sort(sortOnCreatedAt);\r\n return Object.assign({}, state, {fetchStatus: fetchStatus.FETCH_SUCCESS, sendOuts: sendOuts});\r\n case FETCH_SEND_OUTS_FAILED:\r\n return Object.assign({}, state, {fetchStatus: fetchStatus.FETCH_FAILED});\r\n case FETCH_SEND_OUT:\r\n return Object.assign({}, state, {fetchSingleStatus: fetchStatus.FETCHING});\r\n case FETCH_SEND_OUT_SUCCESS:\r\n return Object.assign({}, state, {fetchSingleStatus: fetchStatus.FETCH_SUCCESS, sendOut: action.payload});\r\n case FETCH_SEND_OUT_FAILED:\r\n return Object.assign({}, state, {fetchSingleStatus: fetchStatus.FETCH_FAILED});\r\n default:\r\n return state;\r\n }\r\n}","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n form: {\r\n title: {\r\n id: 'send-outs.form.title',\r\n },\r\n previousSendOuts: {\r\n id: 'send-outs.form.previous-send-outs',\r\n },\r\n info: {\r\n id: 'send-outs.form.info',\r\n },\r\n infoItalic: {\r\n id: 'send-outs.form.info-italic',\r\n },\r\n receivers: {\r\n title: {\r\n id: 'send-outs.form.receivers-title',\r\n },\r\n info: {\r\n id: 'send-outs.form.receivers-info',\r\n }\r\n },\r\n header: {\r\n name: {\r\n id: 'send-outs.form.header-name',\r\n },\r\n age: {\r\n id: 'send-outs.form.header-age',\r\n },\r\n phone: {\r\n id: 'send-outs.form.header-phone',\r\n },\r\n email: {\r\n id: 'send-outs.form.header-email',\r\n },\r\n },\r\n recipientTypes: {\r\n id: 'send-outs.form.recipient-types',\r\n },\r\n recipientTypeOptions: {\r\n VOLUNTEERS: {\r\n id: 'send-outs.form.recipient-type-options.volunteers',\r\n },\r\n CONTACT_PERSONS: {\r\n id: 'send-outs.form.recipient-type-options.contact-persons',\r\n },\r\n },\r\n volunteerExpected: {\r\n id: 'send-outs.form.stations.volunteerExpected'\r\n },\r\n officialQuantity: {\r\n id: 'send-outs.form.stations.officialQuantity'\r\n },\r\n stations: {\r\n name: {\r\n id: 'send-outs.form.stations.name',\r\n },\r\n groups: {\r\n id: 'send-outs.form.stations.groups',\r\n },\r\n noStations: {\r\n id: 'send-outs.form.stations.no-stations',\r\n }\r\n },\r\n subject: {\r\n id: 'send-outs.form.subject',\r\n },\r\n message: {\r\n id: 'send-outs.form.message',\r\n },\r\n attachments: {\r\n id: 'send-outs.form.attachments',\r\n },\r\n attachmentsButton: {\r\n id: 'send-outs.form.attachments-button',\r\n },\r\n noStationsError: {\r\n id: 'send-outs.form.no-stations-error',\r\n },\r\n noRecipientTypes: {\r\n id: 'send-outs.form.no-recipient-types-error',\r\n },\r\n sendButton: {\r\n id: 'send-outs.form.send-button',\r\n },\r\n sendError: {\r\n id: 'send-outs.form.send-error',\r\n },\r\n sent: {\r\n id: 'send-outs.form.sent',\r\n }\r\n },\r\n list: {\r\n title: {\r\n id: 'send-outs.list.title',\r\n },\r\n created: {\r\n id: 'send-outs.list.created',\r\n },\r\n subject: {\r\n id: 'send-outs.list.subject',\r\n },\r\n noSendOuts: {\r\n id: 'send-outs.list.no-send-outs',\r\n }\r\n },\r\n single: {\r\n title: {\r\n id: 'send-outs.single.title',\r\n },\r\n error: {\r\n id: 'send-outs.single.error',\r\n },\r\n }\r\n});\r\n","import React, { Fragment, useState } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport messages from \"../messages\";\r\nimport { FormattedMessage } from \"react-intl\";\r\nimport {\r\n Checkbox,\r\n BorderTable,\r\n Error,\r\n P,\r\n} from \"../../../../../components\";\r\nimport styled from \"styled-components\";\r\nimport { colors } from \"../../../../../constants/styling-constants\";\r\n\r\nconst TDDisabledText = styled.td`\r\n &.no-groups {\r\n color: ${colors.mediumLightGray};\r\n }\r\n`;\r\n\r\nconst TDGrayBackground = styled.td`\r\n background-color: ${colors.lightGray} !important;\r\n`;\r\n\r\nconst StationsListCheckboxes = ({ stations, values = [], changeValue, offers, groups = [], meta: { touched, error, warning } }) => {\r\n const [expanded, setExpanded] = useState([]);\r\n const haveNoGroups = (station, allOffers) => {\r\n const ofs = allOffers.filter(o => o.stationId === station.id && o.status === \"ACCEPTED\");\r\n return ofs.length === 0;\r\n };\r\n \r\n const stationsWithNoGroups = stations ? stations.filter(s => haveNoGroups(s, offers)) : [];\r\n\r\n const onChangeStation = (e) => {\r\n const name = parseInt(e.target.name, 10);\r\n let vals = [];\r\n\r\n if (e.target.checked) {\r\n vals = values.splice(0);\r\n vals.push(parseInt(name, 10));\r\n } else {\r\n const index = values.indexOf(name);\r\n\r\n if (index > -1) {\r\n vals = values.filter(v => v !== name);\r\n }\r\n }\r\n\r\n changeValue(\"stations\", vals);\r\n };\r\n\r\n const onRowClick = (rowId) => {\r\n const prevExpanded = expanded;\r\n const isRowExpanded = prevExpanded.includes(rowId);\r\n const newExpanded = isRowExpanded ? prevExpanded.filter(id => id !== rowId) : prevExpanded.concat(rowId);\r\n setExpanded(newExpanded);\r\n }\r\n\r\n const renderVolunteerRowHeader = (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n const renderVolunteerRow = (volunteer) => {\r\n return (\r\n \r\n \r\n \r\n {volunteer.name}\r\n {volunteer.age}\r\n {volunteer.phone}\r\n {volunteer.email}\r\n \r\n );\r\n }\r\n \r\n const renderRow = (station) => {\r\n const noGroups = haveNoGroups(station, offers);\r\n const group = groups.filter(eventStations => eventStations.stationId === station.id);\r\n const rows = [\r\n onRowClick(station.id)}>\r\n \r\n \r\n \r\n \r\n {expanded.includes(station.id) ? : }\r\n \r\n {station.name}\r\n {renderGroupNames(station, offers)}\r\n {renderVolunteerExpected(station, offers)}\r\n {station.officialQuantity}\r\n \r\n ];\r\n\r\n if(group.length === 0)\r\n return rows;\r\n \r\n if(expanded.includes(station.id)) {\r\n rows.push(renderVolunteerRowHeader);\r\n group.map(g => g.attendees ? rows.push(g.group.volunteers.filter(vol => g.attendees.includes(vol.id)).map(vol => renderVolunteerRow(vol))) : null);\r\n }\r\n return rows;\r\n }\r\n\r\n const onChangeAll = () => {\r\n let vals = [];\r\n\r\n if (values.length !== stations.length - stationsWithNoGroups.length) {\r\n vals = stations.reduce((result, s) => {\r\n if (!haveNoGroups(s, offers)) {\r\n result.push(parseInt(s.id, 10));\r\n }\r\n return result;\r\n }, []);\r\n }\r\n\r\n changeValue(\"stations\", vals);\r\n };\r\n\r\n const renderVolunteerExpected = (station, allOffers) => {\r\n var count = 0;\r\n allOffers.filter(o => o.stationId === station.id && o.status === \"ACCEPTED\").map(o => {\r\n if (o.attendees) {\r\n count = count + o.attendees.length;\r\n }\r\n return o;\r\n })\r\n return count;\r\n }\r\n\r\n const renderGroupNames = (station, allOffers) => {\r\n const ofs = allOffers.filter(o => o.stationId === station.id && o.status === \"ACCEPTED\").map(o => o.group.name);\r\n return ofs.join(\", \");\r\n };\r\n\r\n if (!stations) {\r\n return (

    );\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {stations.map(stations => renderRow(stations))}\r\n \r\n \r\n {touched &&\r\n ((error && ) ||\r\n (warning && {warning}))}\r\n \r\n );\r\n};\r\n\r\nStationsListCheckboxes.propTypes = {\r\n stations: PropTypes.array,\r\n values: PropTypes.array,\r\n changeValue: PropTypes.func.isRequired,\r\n offers: PropTypes.array,\r\n};\r\n\r\nexport default StationsListCheckboxes;\r\n","import React, { Component } from \"react\";\r\nimport connect from \"react-redux/lib/connect/connect\";\r\nimport { Field, reduxForm, formValueSelector } from \"redux-form\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport {\r\n H2,\r\n H3,\r\n P,\r\n ItalicP,\r\n FormGroup,\r\n ListSelect,\r\n Input,\r\n TextLabel,\r\n TextArea,\r\n FileUpload,\r\n GeneralError,\r\n TextSection,\r\n} from \"../../../../../components\";\r\nimport { SmallGrayLinkButton } from \"../../../../../components/Links/index\";\r\nimport { SmallPinkButton } from \"../../../../../components/Buttons\";\r\nimport messages from \"../messages\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\nimport StationsListCheckboxes from \"./StationsListCheckboxes\";\r\nimport {\r\n required,\r\n maxLength250,\r\n minLength3,\r\n atLeastOneArrayElement,\r\n validateFileArraySize\r\n} from \"../../../../../validators/index\";\r\nimport { status } from \"../reducer\";\r\nimport moment from \"moment\";\r\nimport styled from \"styled-components\";\r\nimport { breakPoints } from \"../../../../../constants/styling-constants\";\r\n\r\n\r\nconst TagWrapper = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n`;\r\n\r\nconst TextLabelNoMargin = TextLabel.extend`\r\n margin: 0;\r\n`;\r\n\r\nconst Tag = P.extend`\r\n margin: 0;\r\n margin-left: 5px;\r\n `;\r\n\r\nconst H2WithLink = H2.extend`\r\n display: flex;\r\n justify-content: space-between;\r\n margin-top: 0px;\r\n @media (max-width: ${breakPoints.xs}px) {\r\n flex-direction: column;\r\n align-items: center;\r\n .mobile-view{\r\n margin-top: 15px;\r\n }\r\n }\r\n`;\r\n\r\nconst recipientTypes = [\"VOLUNTEERS\", \"CONTACT_PERSONS\"];\r\nconst totalMaxFileSize = 6.3;\r\n\r\nclass SendOutsForm extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n mappedRecipientTypes: recipientTypes.map(rt => ({\r\n id: rt,\r\n value: this.props.intl.formatMessage({ id: `form.recipientTypeOptions.${rt}` })\r\n })),\r\n sendOutSent: false,\r\n };\r\n\r\n this.handleSendOutSubmit = this.handleSendOutSubmit.bind(this);\r\n this.validateStations = atLeastOneArrayElement(this.props.intl.formatMessage(messages.form.noStationsError));\r\n this.validateStations = this.validateStations.bind(this);\r\n this.validateRecipientTypes = atLeastOneArrayElement(this.props.intl.formatMessage(messages.form.noRecipientTypes));\r\n this.validateRecipientTypes = this.validateRecipientTypes.bind(this);\r\n this.validateFileSize = validateFileArraySize(totalMaxFileSize);\r\n this.getExtraValues = this.getExtraValues.bind(this);\r\n }\r\n\r\n async componentDidMount() {\r\n this.props.fetchEventOffers({ eventId: this.props.event.id });\r\n\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props.status === status.SEND_SUCCESS && prevProps.status !== status.SEND_SUCCESS) {\r\n this.props.reset();\r\n\r\n this.setState({ sendOutSent: true }, () => {\r\n window.setTimeout(() => {\r\n this.setState({ sendOutSent: false });\r\n }, 5000);\r\n });\r\n }\r\n }\r\n\r\n getMapCoordinates(stationId) {\r\n const coordinates = this.props.event.stations.filter(s => s.id === stationId)[0].markerCoordinates;\r\n return \"https://maps.google.com/?q=\" + coordinates.lat.toFixed(6) + \",\" + coordinates.lng.toFixed(6);\r\n }\r\n\r\n getExtraValues(stations) {\r\n const extra = stations.map(id => { return {id: id, coordinates: this.getMapCoordinates(id)}})\r\n return extra; //[{id: 1231, coordinate: 123123, annat: \"hej\"}, {id: 3123, coordinate: 123128371092, annat: \"dasdkhsa\"}];\r\n }\r\n\r\n addExtra = (stations, message, extra) => {\r\n const keys = ['coordinates']; //Add more keys here to be able to include more tags in a message\r\n const messages = stations.map(s => {\r\n let m = message;\r\n const e = extra.filter(ex => ex.id === s)[0];\r\n keys.map(k => m = m.replace('\\\\' + k, e[k]));\r\n return {id: s, message: m};\r\n });\r\n return messages;\r\n }\r\n\r\n handleSendOutSubmit(fieldValues) {\r\n const extraValues = this.getExtraValues(fieldValues.stations);\r\n const messages = this.addExtra(fieldValues.stations, fieldValues.message, extraValues);\r\n fieldValues.stations.map(id => {\r\n const newValues = JSON.parse(JSON.stringify(Object.assign(fieldValues, { // This may look bad but is needed to create a DEEP copy of the object.\r\n eventId: this.props.event.id,\r\n createdAt: moment().format(),\r\n stations: [id],\r\n message: messages.filter(m => m.id === id)[0].message\r\n })));\r\n return this.props.sendSendOut(newValues);\r\n })\r\n }\r\n\r\n renderError() {\r\n if (this.props.status === status.SEND_FAILED) {\r\n return ()\r\n }\r\n\r\n return null;\r\n }\r\n\r\n renderSuccess() {\r\n if (this.state.sendOutSent) {\r\n return (

    );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n render() {\r\n const linkBase = this.props.isTeamleaderView ? \"/my-pages/teamleaders\" : \"/my-pages/events\";\r\n if(this.props.event.status === \"HISTORIC\"){\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 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 Tags: \\coordinates\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.renderError()}\r\n {this.renderSuccess()}\r\n \r\n \r\n
    \r\n );\r\n }\r\n\r\n}\r\n\r\nSendOutsForm = reduxForm({\r\n form: \"sendOutsForm\",\r\n})(SendOutsForm);\r\n\r\nconst selector = formValueSelector(\"sendOutsForm\");\r\n\r\nSendOutsForm = connect(\r\n state => ({\r\n initialValues: {\r\n // Shallow copy of stations and then sort it on officialQuantity\r\n stations: [],\r\n },\r\n stations: selector(state, \"stations\"),\r\n attachments: selector(state, \"attachments\")\r\n })\r\n)(SendOutsForm);\r\n\r\nexport default injectIntl(SendOutsForm);\r\n","import { connect } from \"react-redux\";\r\nimport { sendSendOut } from \"../reducer\";\r\nimport { withRouter } from \"react-router\";\r\nimport { fetchEventOffers } from \"../../../Offer/reducer\";\r\nimport SendOutsForm from \"./SendOutsForm\";\r\n\r\nconst mapStateToProps = (state) => ({\r\n status: state.sendOuts.status,\r\n eventOffers: state.offers.eventOffers,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n sendSendOut: data => dispatch(sendSendOut(data)),\r\n fetchEventOffers: data => dispatch(fetchEventOffers(data)),\r\n});\r\n\r\nexport default withRouter(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(SendOutsForm));\r\n","import React, { Component } from \"react\";\r\nimport moment from \"moment\";\r\nimport {\r\n BorderTable,\r\n FormGroup,\r\n H2,\r\n P,\r\n} from \"../../../../../components\";\r\nimport messages from \"../messages\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\nimport { status, fetchStatus } from \"../reducer\";\r\nimport styled from \"styled-components\";\r\nimport { withRouter } from \"react-router-dom\";\r\n\r\nconst TableRowWithClick = styled(\"tr\")`\r\n cursor: pointer;\r\n`;\r\n\r\nclass SendOutsList extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.onRowClick = this.onRowClick.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.props.fetchSendOuts(this.props.event.id);\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props.status === status.SEND_SUCCESS && prevProps.status !== status.SEND_SUCCESS) {\r\n this.props.fetchSendOuts(this.props.event.id);\r\n }\r\n }\r\n\r\n onRowClick(sendOut) {\r\n const linkBase = this.props.isTeamleaderView ? \"/my-pages/teamleaders\" : \"/my-pages/events\";\r\n this.props.history.push(`${linkBase}/${this.props.event.id}/sendouts/${sendOut.sendOutId}`);\r\n }\r\n\r\n renderSpinner() {\r\n if (this.props.fetchStatus === fetchStatus.FETCHING) {\r\n return ();\r\n }\r\n\r\n return null;\r\n }\r\n\r\n renderTable() {\r\n if (this.props.fetchStatus === fetchStatus.FETCH_SUCCESS && (!this.props.sendOuts || this.props.sendOuts.length === 0)) {\r\n return (

    );\r\n }\r\n\r\n if (!this.props.sendOuts) {\r\n return null;\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 {this.props.sendOuts.map((s, index) => {\r\n return (\r\n this.onRowClick(s)}\r\n >\r\n {moment(s.createdAt).format(\"YYYY-MM-DD HH:mm\")}\r\n {s.subject}\r\n \r\n )\r\n })}\r\n \r\n \r\n )\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

    \r\n {this.renderSpinner()}\r\n {this.renderTable()}\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(injectIntl(SendOutsList));\r\n","import { connect } from \"react-redux\";\r\nimport { withRouter } from \"react-router\";\r\nimport { fetchSendOuts } from \"../reducer\";\r\nimport SendOutsList from \"./SendOutsList\";\r\n\r\nconst mapStateToProps = (state) => ({\r\n fetchStatus: state.sendOuts.fetchStatus,\r\n status: state.sendOuts.status,\r\n sendOuts: state.sendOuts.sendOuts,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n fetchSendOuts: data => dispatch(fetchSendOuts(data)),\r\n});\r\n\r\nexport default withRouter(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(SendOutsList));\r\n","import React, { Component, Fragment } from \"react\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { fetchStatus } from \"../reducer\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\nimport messages from \"../messages\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport {\r\n H2,\r\n P,\r\n GeneralError,\r\n TextLabel,\r\n ListSelect,\r\n Input,\r\n TextArea,\r\n FileUpload,\r\n} from \"../../../../../components\";\r\n\r\nconst recipientTypes = [\"VOLUNTEERS\", \"CONTACT_PERSONS\"];\r\n\r\nclass SendOut extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n mappedRecipientTypes: recipientTypes.map(rt => ({\r\n id: rt,\r\n value: this.props.intl.formatMessage({ id: `form.recipientTypeOptions.${rt}` })\r\n })),\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.props.fetchSendOut({\r\n sendOutId: this.props.match.params.sendOutId,\r\n eventId: this.props.event.id\r\n });\r\n }\r\n\r\n renderSelectedStations() {\r\n const stations = [];\r\n\r\n this.props.sendOut.stations.forEach(s => {\r\n const station = this.props.event.stations.find(es => es.id === s);\r\n if (stations) {\r\n stations.push(station.name);\r\n }\r\n });\r\n\r\n return stations.join(\", \");\r\n }\r\n\r\n render() {\r\n if (this.props.status === fetchStatus.FETCHING) {\r\n return ();\r\n }\r\n\r\n if (!this.props.sendOut) {\r\n return null;\r\n }\r\n\r\n if (this.props.status === fetchStatus.FETCH_FAILED) {\r\n return (\r\n \r\n )\r\n }\r\n return (\r\n \r\n

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

    {this.renderSelectedStations()}

    \r\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 withRouter(injectIntl(SendOut));\r\n","import { connect } from \"react-redux\";\r\nimport { withRouter } from \"react-router\";\r\nimport { fetchSendOut } from \"../reducer\";\r\nimport SendOut from \"./SendOut\";\r\n\r\nconst mapStateToProps = (state) => ({\r\n status: state.sendOuts.fetchSingleStatus,\r\n sendOut: state.sendOuts.sendOut,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n fetchSendOut: data => dispatch(fetchSendOut(data)),\r\n});\r\n\r\nexport default withRouter(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(SendOut));\r\n","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n attendanceList: {\r\n title: {\r\n id: 'attendance.list.title',\r\n },\r\n description: {\r\n id: 'attendance.list.description',\r\n },\r\n showButton: {\r\n id: 'attendance.list.show-button',\r\n },\r\n offerError: {\r\n id: 'attendance.list.offer-error'\r\n },\r\n noStations: {\r\n id: 'attendance.list.no-stations'\r\n }\r\n },\r\n\r\n});\r\n","import React, { Component } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport messages from \"./messages\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\nimport {\r\n H2,\r\n P,\r\n WhiteTableWithLastToRight,\r\n TableRowWithClick,\r\n GeneralError\r\n} from \"../../../../components/index\";\r\nimport { TableButton } from \"../../../../components/Buttons/index\";\r\nimport moment from \"moment\";\r\nimport { withRouter } from \"react-router\";\r\nimport { statuses } from \"../../Offer/reducer\";\r\n\r\nconst Wrapper = styled.div`\r\n margin-bottom: 80px;\r\n`;\r\n\r\nconst sortOnStartTime = (a, b) => {\r\n if (a.start < b.start)\r\n return -1;\r\n if (a.start > b.start)\r\n return 1;\r\n return 0;\r\n};\r\n\r\nconst AttendanceListRow = ({ station, intl, history, match }) => {\r\n const onClick = () => {\r\n history.push(`${match.url}/${station.id}`);\r\n };\r\n\r\n const renderGroupNames = (station) => {\r\n if (!station.offers) {\r\n return \"\";\r\n }\r\n\r\n const names = station.offers\r\n .filter(o => o.status === \"ACCEPTED\")\r\n .map(o => o.group.name);\r\n\r\n return names.join(\", \");\r\n };\r\n\r\n return (\r\n \r\n {station.name}\r\n {moment(station.start).format(\"HH:mm\")}\r\n {renderGroupNames(station)}\r\n \r\n \r\n )\r\n\r\n};\r\n\r\nconst AttendanceListRowWithRouter = withRouter(AttendanceListRow);\r\n\r\nclass AttendanceList extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n stationsWithOffers: this.matchOfferWithStation(this.props.event.stations, this.props.eventOffers)\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (!prevProps.eventOffers.hasOwnProperty(this.props.event.id) && this.props.eventOffers.hasOwnProperty(this.props.event.id)) {\r\n this.setState({\r\n stationsWithOffers: this.matchOfferWithStation(this.props.event.stations, this.props.eventOffers)\r\n });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.props.fetchEventOffers({ eventId: this.props.event.id });\r\n }\r\n\r\n matchOfferWithStation(stations, offers) {\r\n if (!offers.hasOwnProperty(this.props.event.id)) {\r\n return stations || [];\r\n }\r\n\r\n const stationsWithOffers = JSON.parse(JSON.stringify(stations));\r\n const eventOffers = offers[this.props.event.id].filter(o => stationsWithOffers.find(s => s.id === o.stationId));\r\n\r\n eventOffers.forEach(o => {\r\n const station = stationsWithOffers.find(s => s.id === o.stationId);\r\n if (!station.offers) {\r\n station.offers = [];\r\n }\r\n station.offers.push(o);\r\n });\r\n\r\n stationsWithOffers.sort(sortOnStartTime);\r\n\r\n return stationsWithOffers;\r\n }\r\n\r\n renderTable() {\r\n return (\r\n \r\n \r\n {this.state.stationsWithOffers.length === 0\r\n ? \r\n \r\n \r\n : this.state.stationsWithOffers.map(station => )}\r\n \r\n \r\n );\r\n }\r\n\r\n renderContent() {\r\n if (this.props.offerError) {\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n if (this.props.offerStatus !== statuses.FETCHED) {\r\n return ;\r\n }\r\n\r\n return this.renderTable();\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n

    \r\n

    \r\n {this.renderContent()}\r\n \r\n
    \r\n\r\n
    \r\n );\r\n }\r\n\r\n}\r\n\r\nexport default injectIntl(AttendanceList);\r\n","import { connect } from \"react-redux\";\r\nimport { fetchEventOffers } from \"../../Offer/reducer\";\r\nimport AttendanceList from \"./AttendanceList\";\r\nimport { withRouter } from \"react-router\";\r\n\r\nconst mapStateToProps = (state, ownProps) => ({\r\n event: ownProps.event,\r\n eventOffers: state.offers.eventOffers,\r\n offerStatus: state.offers.status,\r\n offerError: state.offers.error,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n fetchEventOffers: data => dispatch(fetchEventOffers(data)),\r\n});\r\n\r\nexport default withRouter(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(AttendanceList));\r\n","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n attendance: {\r\n form: {\r\n name: {\r\n id: 'attendance.form.name',\r\n },\r\n start: {\r\n id: 'attendance.form.start',\r\n },\r\n end: {\r\n id: 'attendance.form.end',\r\n },\r\n officialQuantity: {\r\n id: 'attendance.form.officialQuantity',\r\n },\r\n officialMinimumAge: {\r\n id: 'attendance.form.officialMinimumAge',\r\n }\r\n },\r\n offerError: {\r\n id: 'attendance.offer-error'\r\n },\r\n noOffers: {\r\n id: 'attendance.no-offers'\r\n }\r\n }\r\n});\r\n","export const ATTENDANCE_SUBMIT = 'ATTENDANCE_SUBMIT';\r\nexport const ATTENDANCE_SUBMIT_SUCCESS = 'ATTENDANCE_SUBMIT_SUCCESS';\r\nexport const ATTENDANCE_SUBMIT_FAILED = 'ATTENDANCE_SUBMIT_FAILED';\r\nexport const RESET = 'RESET';\r\n\r\nexport function submitAttendance (data) {\r\n return {\r\n type: ATTENDANCE_SUBMIT,\r\n payload: data,\r\n };\r\n}\r\n\r\nexport function reset (data) {\r\n return {\r\n type: RESET,\r\n };\r\n}\r\n\r\nconst statuses = {\r\n INIT: 'INIT',\r\n SUBMITTING: 'SUBMITTING',\r\n SUBMITTED: 'SUBMITTED',\r\n FAILED: 'FAILED'\r\n};\r\n\r\nconst initialState = {\r\n groups: {}, // Will have groupId as key and contain status\r\n};\r\n\r\nexport default function attendance(state = initialState, action) {\r\n if (!action) {\r\n return state;\r\n }\r\n\r\n switch (action.type) {\r\n case RESET:\r\n return Object.assign({}, initialState);\r\n case ATTENDANCE_SUBMIT:\r\n const newState = Object.assign({}, state);\r\n newState.groups[action.payload.groupId] = statuses.SUBMITTING;\r\n return newState;\r\n case ATTENDANCE_SUBMIT_SUCCESS:\r\n const newSuccessGroups = Object.assign({}, state.groups);\r\n newSuccessGroups[action.payload.groupId] = statuses.SUBMITTED;\r\n\r\n return Object.assign({}, {groups: newSuccessGroups});\r\n case ATTENDANCE_SUBMIT_FAILED:\r\n const newGroups = Object.assign({}, state.groups);\r\n newGroups[action.payload.groupId] = statuses.FAILED;\r\n\r\n return Object.assign({}, {groups: newGroups});\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport {statuses};\r\n","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n groupAttendance: {\r\n title: {\r\n id: 'attendance.group.title'\r\n },\r\n volunteers: {\r\n id: 'attendance.group.volunteers'\r\n },\r\n contactPersons: {\r\n id: 'attendance.group.contact-persons'\r\n },\r\n tableHeader: {\r\n name: {\r\n id: 'attendance.group.table-header.name'\r\n },\r\n email: {\r\n id: 'attendance.group.table-header.email'\r\n },\r\n phone: {\r\n id: 'attendance.group.table-header.phone'\r\n }\r\n },\r\n formTitle: {\r\n id: 'attendance.group.form-title'\r\n },\r\n form: {\r\n adultAttendance: {\r\n id: 'attendance.group.form.adult-attendance'\r\n },\r\n childAttendance: {\r\n id: 'attendance.group.form.child-attendance'\r\n },\r\n submit: {\r\n id: 'attendance.group.form.submit'\r\n }\r\n },\r\n attendanceExceedVolunteers: {\r\n id: 'attendance.group.form.attendance-exceed-volunteers' \r\n },\r\n submitError: {\r\n id: 'attendance.group.form.submit-error'\r\n },\r\n attendanceNotAvailable: {\r\n id: 'attendance.group.form.attendance-not-available'\r\n }\r\n }\r\n\r\n});\r\n","import React, { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport {\r\n H3,\r\n H4,\r\n P,\r\n Input,\r\n TextSection,\r\n BorderTable,\r\n TextLabel,\r\n FormGroup,\r\n GeneralError\r\n} from \"../../../../../components/index\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\nimport messages from \"./messages\";\r\nimport { Field, reduxForm } from \"redux-form\";\r\nimport { required, positiveNumbers, integer } from \"../../../../../validators/index\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport { Button } from \"../../../../../components/Buttons/index\";\r\nimport { statuses } from \"../reducer\";\r\nimport moment from \"moment\";\r\n\r\nclass GroupAttendance extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isStationOpen: this.isStationOpen(),\r\n hasValidationError: false,\r\n };\r\n\r\n this.onSubmit = this.onSubmit.bind(this);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.reset();\r\n }\r\n\r\n /**\r\n * Station is open if it is today or in the past\r\n * @returns {boolean}\r\n */\r\n isStationOpen() {\r\n const today = moment().format(\"YYYY-MM-DD\");\r\n const start = moment(this.props.station.start).format(\"YYYY-MM-DD\");\r\n const diff = moment(today).diff(start);\r\n\r\n return diff >= 0 && this.props.event.status !== \"HISTORIC\";\r\n }\r\n\r\n onSubmit(fieldValues) {\r\n try {\r\n if(parseInt(this.props.offer.volunteers) >= parseInt(fieldValues.adultAttendance) + parseInt(fieldValues.childAttendance)) {\r\n this.setState({ hasValidationError: false })\r\n this.props.submitAttendance({\r\n ...fieldValues,\r\n eventId: this.props.offer.eventId,\r\n stationId: this.props.offer.stationId,\r\n groupId: this.props.offer.groupId,\r\n });\r\n } else {\r\n this.setState({ hasValidationError: true })\r\n }\r\n \r\n } catch (e) {\r\n console.error(`Failed parsing attendance string with err`)\r\n }\r\n }\r\n\r\n renderError() {\r\n if (this.props.attendance.groups.hasOwnProperty(this.props.offer.groupId) && this.props.attendance.groups[this.props.offer.groupId] === statuses.FAILED) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n }\r\n\r\n renderContactPersons() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {this.props.intl.formatMessage(messages.groupAttendance.tableHeader.name)}\r\n {this.props.intl.formatMessage(messages.groupAttendance.tableHeader.email)}\r\n {this.props.intl.formatMessage(messages.groupAttendance.tableHeader.phone)}\r\n \r\n \r\n \r\n {this.props.offer.group.contactPersons.map((c, index) => {\r\n return (\r\n \r\n {c.name}\r\n {c.email.toLowerCase()}\r\n {c.phone}\r\n \r\n )\r\n })}\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n renderForm() {\r\n return (\r\n \r\n \r\n \r\n

    \r\n {!this.state.isStationOpen\r\n ?

    \r\n : null\r\n }\r\n \r\n \r\n {this.state.hasValidationError &&\r\n \r\n \r\n \r\n }\r\n \r\n {this.renderError()}\r\n \r\n \r\n
    \r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

    {this.props.offer.group.name}

    \r\n \r\n {this.renderForm()}\r\n {this.renderContactPersons()}\r\n
    \r\n );\r\n }\r\n\r\n}\r\n\r\nGroupAttendance.propTypes = {\r\n offer: PropTypes.object.isRequired,\r\n station: PropTypes.object.isRequired,\r\n};\r\n\r\nGroupAttendance = reduxForm({\r\n enableReinitialize: true,\r\n})(GroupAttendance);\r\n\r\nexport default injectIntl(GroupAttendance);\r\n","import { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router';\r\nimport { submitAttendance, reset } from '../reducer';\r\nimport GroupAttendance from './GroupAttendance';\r\n\r\nconst mapStateToProps = (state, ownProps) => ({\r\n event: state.event.event,\r\n attendance: state.attendance,\r\n initialValues: {\r\n adultAttendance: ownProps.offer.adultAttendance || '',\r\n childAttendance: ownProps.offer.childAttendance || '',\r\n }\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n submitAttendance: data => dispatch(submitAttendance(data)),\r\n reset: () => dispatch(reset()),\r\n});\r\n\r\nexport default withRouter(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(GroupAttendance));\r\n","import React, { Component, Fragment } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\nimport messages from \"./messages\";\r\nimport {\r\n H2,\r\n P,\r\n GeneralError,\r\n Input,\r\n ContentWrapper\r\n} from \"../../../../../components/index\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport moment from \"moment\";\r\nimport GroupAttendance from \"../GroupAttendance\";\r\n\r\nconst Wrapper = styled.div`\r\n margin-bottom: 80px;\r\n`;\r\n\r\nclass StationAttendance extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n station: this.props.event.stations.find(s => s.id === parseInt(this.props.stationId, 10))\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.props.fetchStationOffers({\r\n eventId: this.props.eventId,\r\n stationId: this.props.stationId\r\n });\r\n }\r\n\r\n renderOffers() {\r\n if (this.props.offerError) {\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n if (!this.props.stationOffers) {\r\n return ;\r\n }\r\n\r\n if (this.props.stationOffers.length === 0) {\r\n return (\r\n

    \r\n );\r\n }\r\n\r\n return (\r\n \r\n {this.props.stationOffers\r\n .filter(o => o.status === 'ACCEPTED')\r\n .map(o => )}\r\n \r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n

    {this.state.station.name}

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n {this.renderOffers()}\r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n\r\n}\r\n\r\nexport default injectIntl(StationAttendance);\r\n","import { connect } from \"react-redux\";\r\nimport { withRouter } from \"react-router\";\r\nimport { fetchStationOffers } from \"../../../Offer/reducer\";\r\nimport StationAttendance from \"./StationAttendance\";\r\n\r\nconst mapStateToProps = (state, ownProps) => ({\r\n event: ownProps.event,\r\n stationOffers: state.offers.stationOffers,\r\n offerError: state.offers.stationOfferError,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n fetchStationOffers: data => dispatch(fetchStationOffers(data)),\r\n});\r\n\r\nexport default withRouter(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(StationAttendance));\r\n","import React, { Component, Fragment } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport styled from \"styled-components\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport { ContentWrapper, Container, H1, GeneralError } from \"../../../../components/index\";\r\nimport { NavLinkButton } from \"../../../../components/Links\";\r\nimport { status } from \"../reducer\";\r\nimport {\r\n Switch,\r\n Route\r\n} from \"react-router-dom\";\r\nimport EventEdit from \"../Edit\";\r\nimport StationsEdit from \"../Station\";\r\nimport { FormattedMessage } from \"react-intl\";\r\nimport messages from \"./messages\";\r\nimport StationOffers from \"../StationOffers\";\r\nimport SendOutsForm from \"../SendOuts/SendOutsForm\";\r\nimport SendOutsList from \"../SendOuts/SendOutsList\";\r\nimport SendOut from \"../SendOuts/SendOut\";\r\nimport AttendanceList from \"../Attendance\";\r\nimport StationAttendance from \"../Attendance/StationAttendance\";\r\n\r\nconst NavigationWrapper = styled.nav`\r\n margin-bottom: 90px;\r\n`;\r\n\r\nclass EventBase extends Component {\r\n componentDidMount() {\r\n this.props.fetchEvent({ id: this.props.match.params.id });\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.reset();\r\n }\r\n\r\n renderContent() {\r\n const isTeamleaderView = this.props.isTeamleaderView;\r\n\r\n if (this.props.status === status.FETCHING) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (this.props.status === status.FAILED) {\r\n return ;\r\n }\r\n\r\n if (this.props.event) {\r\n const linkBase = isTeamleaderView ? \"/my-pages/teamleaders\" : \"/my-pages/events\";\r\n\r\n return (\r\n \r\n \r\n \r\n

    {this.props.event.name}

    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n {this.props.isTeamleaderView\r\n ? null\r\n :\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n />\r\n }\r\n />\r\n {this.props.isTeamleaderView\r\n ? null\r\n : }\r\n />\r\n }\r\n }\r\n />\r\n }\r\n />\r\n }\r\n />\r\n }\r\n />\r\n }\r\n isTeamleaderView={isTeamleaderView}\r\n />\r\n \r\n
    \r\n );\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n {this.renderContent()}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nEventBase.propTypes = {\r\n isTeamleaderView: PropTypes.bool.isRequired,\r\n}\r\n\r\nexport default EventBase;\r\n","import { connect } from \"react-redux\";\r\nimport { fetchEvent, submitEvent, reset } from \"../reducer\";\r\nimport EventBase from \"./EventBase\";\r\n\r\nconst mapStateToProps = (state) => {\r\n const obj = {\r\n event: state.event.event,\r\n error: state.event.error,\r\n status: state.event.status,\r\n isTeamleaderView: false,\r\n };\r\n\r\n return obj;\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n fetchEvent: data => dispatch(fetchEvent(data)),\r\n submitEvent: data => dispatch(submitEvent(data)),\r\n reset: () => dispatch(reset({})),\r\n});\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(EventBase);\r\n","import React from 'react';\r\nimport {\r\n Switch,\r\n Route\r\n} from 'react-router-dom';\r\nimport EventStart from './EventStart';\r\nimport EventNewBase from './NewBase';\r\nimport EventCopyBase from './CopyBase';\r\nimport EventBase from './Base';\r\nimport styled from 'styled-components';\r\nimport { colors } from '../../../constants/styling-constants';\r\n\r\nconst Wrapper = styled.div`\r\n flex: 1;\r\n background-color: ${colors.lightPink};\r\n`;\r\n\r\nconst EventRouter = ({ match }) => {\r\n localStorage.setItem('homePath', 'events');\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\nexport default EventRouter;\r\n","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n progressBar: {\r\n registerGroup: {\r\n id: 'new-group.progressbar.register-group.placeholder',\r\n },\r\n registerVolunteers: {\r\n id: 'new-group.progressbar.register-volunteers.placeholder',\r\n },\r\n registerAvailability: {\r\n id: 'group.progressbar.register-availability.placeholder',\r\n },\r\n },\r\n title: {\r\n id: 'volunteer-start.title',\r\n },\r\n text: {\r\n id: 'volunteer-start.text',\r\n },\r\n newGroupLink: {\r\n id: 'volunteer-start.new-group-link',\r\n },\r\n answerRequestLink: {\r\n id: 'volunteer-start.answer-request-link',\r\n },\r\n updateVolunteersLink: {\r\n id: 'volunteer-start.update-volunteers-link',\r\n },\r\n myGroups: {\r\n title: {\r\n id: 'volunteer-start.my-groups.list.title',\r\n },\r\n button: {\r\n id: 'volunteer-start.my-groups.list.update-button',\r\n },\r\n },\r\n myEvents: {\r\n title: {\r\n id: 'volunteer-start.my-events.list.title',\r\n },\r\n button: {\r\n id: 'volunteer-start.my-events.list.update-button',\r\n },\r\n },\r\n statusApproved: {\r\n id: 'group.status-approved',\r\n },\r\n statusUnconfirmed: {\r\n id: 'group.status-unconfirmed',\r\n },\r\n statusHistoric: {\r\n id: 'group.status-historic'\r\n },\r\n statusUnknown: {\r\n id: 'group.status-unknown',\r\n },\r\n noGroupsMessage: {\r\n id: 'group.no-groups',\r\n }\r\n});\r\n","\r\n// actions\r\nexport const GROUP_SUBMIT = 'GROUP_SUBMIT';\r\nexport const GROUP_FETCHING = 'GROUP_FETCHING';\r\nexport const GROUP_FETCHED = 'GROUP_FETCHED';\r\nexport const GROUP_SUCCESS = 'GROUP_SUCCESS';\r\nexport const GROUP_FAILED = 'GROUP_FAILED';\r\nexport const GROUP_RESET = 'GROUP_RESET';\r\nexport const GROUPS_SUMMARIES = 'GROUPS_SUMMARIES';\r\nexport const GROUPS_SUMMARIES_SUCCESS = 'GROUPS_SUMMARIES_SUCCESS';\r\nexport const GROUPS_SUMMARIES_FAILED = 'GROUPS_SUMMARIES_FAILED';\r\nexport const FETCH_PUBLIC_EVENTS = 'FETCH_PUBLIC_EVENTS';\r\nexport const FETCH_PUBLIC_EVENTS_SUCCESS = 'FETCH_PUBLIC_EVENTS_SUCCESS';\r\nexport const FETCH_PUBLIC_EVENTS_FAILED = 'FETCH_PUBLIC_EVENTS_FAILED';\r\nexport const FETCH_COMPLETE_EVENT = 'FETCH_COMPLETE_EVENT';\r\nexport const FETCH_COMPLETE_EVENT_SUCCESS = 'FETCH_COMPLETE_EVENT_SUCCESS';\r\nexport const FETCH_COMPLETE_EVENT_FAILED = 'FETCH_COMPLETE_EVENT_FAILED';\r\nexport const GROUP_CONFIRM = 'GROUP_CONFIRM';\r\nexport const GROUP_CONFIRM_SUCCESS = 'GROUP_CONFIRM_SUCCESS';\r\nexport const GROUP_CONFIRM_FAILED = 'GROUP_CONFIRM_FAILED';\r\nexport const LINK = 'LINK';\r\nexport const LINK_SUCCESS = 'LINK_SUCCESS';\r\nexport const LINK_FAILED = 'LINK_FAILED';\r\n\r\n\r\nexport const status = {\r\n INIT: 'INIT',\r\n NOT_SUBMITTED: 'NOT_SUBMITTED',\r\n FETCHING: 'FETCHING',\r\n FETCHED: 'FETCHED',\r\n SUBMITTING: 'SUBMITTING',\r\n SUCCESS: 'SUCCESS',\r\n FAILED: 'FAILED',\r\n};\r\n\r\nexport const groupStatus = status;\r\n\r\nexport function submitGroup (data) {\r\n return {\r\n type: GROUP_SUBMIT,\r\n payload: data,\r\n };\r\n}\r\n\r\nexport function fetchGroup (data) {\r\n return {\r\n type: GROUP_FETCHING,\r\n payload: data,\r\n };\r\n}\r\n\r\nexport function confirmGroup (data) {\r\n return {\r\n type: GROUP_CONFIRM,\r\n payload: data,\r\n };\r\n}\r\n\r\nexport function reset () {\r\n return {\r\n type: GROUP_RESET\r\n };\r\n}\r\n\r\nexport function getGroupSummaries () {\r\n return {\r\n type: GROUPS_SUMMARIES,\r\n };\r\n}\r\n\r\nexport function fetchPublicEvents (data) {\r\n return {\r\n type: FETCH_PUBLIC_EVENTS,\r\n payload: data,\r\n };\r\n}\r\n\r\nexport function fetchCompleteEvent (data) {\r\n return {\r\n type: FETCH_COMPLETE_EVENT,\r\n payload: {\r\n id: data\r\n }\r\n }\r\n}\r\n\r\nexport function createLink( data ) {\r\n return {\r\n type: LINK,\r\n payload: {\r\n id: data\r\n }\r\n }\r\n}\r\n\r\n// reducer with initial state\r\nconst initialState = {\r\n status: status.NOT_SUBMITTED,\r\n statusGroupSummaries: status.INIT,\r\n group: null,\r\n error: null,\r\n groupsSummaries: [],\r\n publicEvents: [],\r\n publicEventError: null,\r\n completeEvents: [],\r\n completeEventError: null\r\n};\r\n\r\nexport default function group(state = initialState, action) {\r\n if (!action) {\r\n return state;\r\n }\r\n\r\n switch (action.type) {\r\n case GROUP_SUBMIT:\r\n return Object.assign({}, state, {status: status.SUBMITTING});\r\n case GROUP_CONFIRM:\r\n return Object.assign({}, state, {status: status.SUBMITTING});\r\n case GROUP_FETCHING:\r\n return Object.assign({}, state, {status: status.FETCHING});\r\n case GROUP_FETCHED:\r\n return Object.assign({}, state, {status: status.FETCHED, group: action.payload});\r\n case GROUP_SUCCESS:\r\n return Object.assign({}, state, {status: status.SUCCESS, group: action.payload});\r\n case GROUP_FAILED:\r\n return Object.assign({}, state, action.payload, {status: status.FAILED, error: action.payload});\r\n case GROUP_RESET:\r\n return Object.assign({}, initialState, {publicEvents: state.publicEvents});\r\n case GROUPS_SUMMARIES:\r\n return Object.assign({}, state, {statusGroupSummaries: status.FETCHING});\r\n case GROUPS_SUMMARIES_SUCCESS:\r\n return Object.assign({}, state, {groupsSummaries: action.payload, statusGroupSummaries: status.INIT});\r\n case GROUPS_SUMMARIES_FAILED:\r\n return Object.assign({}, state, {groupsSummaries: [], statusGroupSummaries: status.INIT});\r\n case FETCH_PUBLIC_EVENTS_SUCCESS:\r\n return Object.assign({}, state, {publicEvents: action.payload, publicEventError: null});\r\n case FETCH_PUBLIC_EVENTS_FAILED:\r\n return Object.assign({}, state, {publicEvents: [], publicEventError: action.error});\r\n case FETCH_COMPLETE_EVENT_SUCCESS:\r\n // Only add an event if it isn't stored already\r\n const existingEvent = state.completeEvents.find((e) => e.eventId === action.payload.eventId);\r\n\r\n if (existingEvent) {\r\n return state;\r\n }\r\n // Immutable copy of array of objects\r\n const completeEvents = state.completeEvents.map(e => {\r\n return Object.assign({}, e);\r\n });\r\n completeEvents.push(action.payload);\r\n return Object.assign({}, state, {completeEvents: completeEvents});\r\n case FETCH_COMPLETE_EVENT_FAILED:\r\n return Object.assign({}, state, {completeEvents: [], completeEventError: action.error});\r\n case GROUP_CONFIRM_SUCCESS:\r\n return Object.assign({}, state, {status: status.SUCCESS, group: action.payload});\r\n case LINK_SUCCESS:\r\n return Object.assign({}, state, {status: status.SUCCESS, link: action.payload});\r\n case LINK_FAILED:\r\n return Object.assign({}, state, {status: status.FAILED, link: action.payload});\r\n default:\r\n return state;\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { H2, TableRowWithClick, TableRow, TableStatus, WhiteTableWithLastToRight } from \"../../../../components/index\";\r\nimport { TableButton } from \"../../../../components/Buttons/index\";\r\nimport { breakPoints } from \"../../../../constants/styling-constants\";\r\nimport styled from \"styled-components\";\r\nimport { withRouter } from \"react-router\";\r\nimport messages from \"../messages\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\nimport { status } from \"../reducer\";\r\n\r\nconst Wrapper = styled.div`\r\n margin-bottom: 85px;\r\n`;\r\n\r\nconst Table = styled(WhiteTableWithLastToRight)`\r\n @media (max-width: ${breakPoints.sm}px) {\r\n .table-button-col {\r\n display: none;\r\n }\r\n }\r\n`;\r\n\r\nclass MyGroupsList extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.renderRow = this.renderRow.bind(this);\r\n this.handleClick = this.handleClick.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.props.getGroupsSummaries();\r\n }\r\n\r\n handleClick(row) {\r\n this.props.history.push(`/my-pages/volunteers/${row.id}`);\r\n }\r\n\r\n renderStatus(status) {\r\n switch (status) {\r\n case \"CONFIRMED\":\r\n return ();\r\n case \"DRAFT\":\r\n return ();\r\n case \"HISTORIC\":\r\n return ()\r\n default:\r\n return ();\r\n }\r\n }\r\n\r\n renderRow(row) {\r\n return (\r\n \r\n {row.name}\r\n {row.organizationName}\r\n {this.renderStatus(row.status)}\r\n \r\n \r\n );\r\n }\r\n\r\n renderContent() {\r\n if (this.props.statusGroupSummaries === status.FETCHING) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n \r\n {this.props.groupsSummaries.length > 0\r\n ? this.props.groupsSummaries.sort((a, b) => a && b && a.name && b.name ? a.name.localeCompare(b.name) : 0).map(this.renderRow)\r\n : \r\n \r\n \r\n }\r\n \r\n
    \r\n )\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

    \r\n {this.renderContent()}\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(injectIntl(MyGroupsList));\r\n","import { connect } from \"react-redux\";\r\nimport MyGroupsList from \"./MyGroupsList\";\r\nimport { withRouter } from \"react-router\";\r\nimport { getGroupSummaries } from \"../reducer\";\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n getGroupsSummaries: data => dispatch(getGroupSummaries(data)),\r\n});\r\n\r\nconst mapStateToProps = state => ({\r\n groupsSummaries: state.group.groupsSummaries,\r\n statusGroupSummaries: state.group.statusGroupSummaries\r\n});\r\n\r\nexport default withRouter(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(MyGroupsList));\r\n","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n offers: {\r\n title: {\r\n id: 'volunteer-start.my-events.list.title',\r\n },\r\n button: {\r\n id: 'volunteer-start.my-events.handle-event-button',\r\n },\r\n rejectedButton: {\r\n id: 'volunteer-start.my-events.handle-event.rejected-button',\r\n },\r\n acceptedButton: {\r\n id: 'volunteer-start.my-events.handle-event.accepted-button',\r\n },\r\n pendingButton: {\r\n id: 'volunteer-start.my-events.handle-event.pending-proposal-button',\r\n },\r\n noOffersMessage: {\r\n id: 'volunteer-start.my-events.no-offers-message',\r\n },\r\n showPreviousEvents: {\r\n id: 'volunteer-start.my-events.show-previous-events'\r\n }\r\n },\r\n selfRegistration: {\r\n button:{\r\n id: 'volunteer-start.my-events.self-registration-button'\r\n },\r\n notification:{\r\n id: 'volunteer-start.my-events.self-registration-notification'\r\n },\r\n },\r\n});\r\n\r\n\r\n","import React, { Component } from \"react\";\r\nimport {\r\n H2,\r\n H4,\r\n BoldP,\r\n TableRowWithClick,\r\n WhiteTableWithLastToRight,\r\n TableRow,\r\n TextLabel,\r\n} from \"../../../components/index\";\r\nimport styled from \"styled-components\";\r\nimport messages from \"./messages\";\r\nimport { colors } from \"../../../constants/styling-constants\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\nimport { breakPoints } from \"../../../constants/styling-constants\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { TableButton, ToggleButton, SmallGreenButton } from \"../../../components/Buttons/index\";\r\nimport { ToastContainer, toast } from \"react-toastify\";\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\nimport moment from \"moment\";\r\n\r\nconst StyledToast = styled(ToastContainer)`\r\n --toastify-color-success: ${colors.green};\r\n`\r\n\r\nconst Wrapper = styled.div`\r\n margin-bottom: 85px;\r\n`;\r\n\r\nconst EventWrapper = styled.div`\r\n margin-bottom: 40px;\r\n`;\r\n\r\nconst GroupWrapper = styled.div`\r\n margin-bottom: 20px;\r\n`;\r\nconst EventNameWrapper = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: space-between;\r\n margin-right: 13px;\r\n`;\r\nconst GroupNameWrapper = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: space-between;\r\n margin-right: 13px;\r\n align-items: center;\r\n margin-bottom: 10px;\r\n`;\r\n\r\nconst Table = styled(WhiteTableWithLastToRight)`\r\n @media (max-width: ${breakPoints.sm}px) {\r\n .table-button-col {\r\n display: none;\r\n }\r\n }\r\n`;\r\n\r\nconst TableColumn = styled.td`\r\n word-wrap: break-word;\r\n width: 520px;\r\n max-width: 520px;\r\n @media (max-width: ${breakPoints.sm}px) {\r\n width: 100%;\r\n }\r\n`;\r\n\r\nconst RedButton = styled(TableButton)`\r\n background: ${colors.lightPink3};\r\n border: ${colors.darkPink};\r\n width: 134px;\r\n &:hover {\r\n background: ${colors.darkPink};\r\n }\r\n`;\r\n\r\nconst GreyButton = styled(TableButton)`\r\n background: ${colors.lightGray4};\r\n border: ${colors.mediumLightGray};\r\n width: 134px;\r\n &:hover {\r\n background: ${colors.mediumLightGray};\r\n }\r\n`;\r\n\r\nconst GreenButton = styled(TableButton)`\r\n background: ${colors.darkGreen};\r\n border: ${colors.darkGreen};\r\n color: ${colors.white};\r\n width: 134px;\r\n\r\n &:hover {\r\n background: ${colors.greenEndGradient};\r\n }\r\n`;\r\n\r\nconst DarkGreyButton = styled(TableButton)`\r\n width: 134px;\r\n`;\r\n\r\nconst CopyButton = styled(SmallGreenButton)`\r\n width: 200px;\r\n height: 35px;\r\n margin: 0px;\r\n padding: 5px 10px;\r\n`;\r\n\r\nclass GroupOffers extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n groupOffers: this.filterOffersOnStatus(this.props.groupOffers),\r\n past: false,\r\n copy: true,\r\n selfRegistrationLink: null,\r\n selfRegistrationGroupName: null,\r\n selfRegistrationEventId: null,\r\n };\r\n\r\n this.renderRow = this.renderRow.bind(this);\r\n this.handleClick = this.handleClick.bind(this);\r\n this.togglePast = this.togglePast.bind(this);\r\n this.handleCopy = this.handleCopy.bind(this);\r\n this.handleCreateLink = this.handleCreateLink.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.props.fetchGroupsOffers();\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n this.setState({\r\n groupOffers: this.filterOffersOnStatus(nextProps.groupOffers),\r\n selfRegistrationLink: nextProps.selfRegistrationLink,\r\n }, () => this.state.selfRegistrationLink ? this.handleCopy() : \"\");\r\n }\r\n\r\n filterOffersOnStatus(offers) {\r\n return offers ? offers.filter((o) => o.status !== \"DRAFT\") : null;\r\n }\r\n\r\n handleClick(row) {\r\n this.props.history.push(\r\n `/my-pages/volunteers/engagement/${row.eventId}/${row.groupId}/${row.stationId}`\r\n );\r\n }\r\n\r\n handleCopy() {\r\n if(!this.state.copy){\r\n toast.success(this.props.intl.formatMessage(messages.selfRegistration.notification), {theme: \"colored\", toastId: \"id\"})\r\n navigator.clipboard.writeText(window.location.origin +\r\n \"/self-registration/\" +\r\n this.state.selfRegistrationGroupName.replaceAll(' ', '%20') + \r\n \"/\" + this.state.selfRegistrationEventId + \r\n \"/\" + this.state.selfRegistrationLink.link);\r\n this.setState({copy: true});\r\n }\r\n }\r\n\r\n handleCreateLink(groupOffers) {\r\n this.setState({copy: false, selfRegistrationLink: null, selfRegistrationGroupName: groupOffers[0].groupName, selfRegistrationEventId: groupOffers[0].eventId});\r\n this.props.createLink({ groupId: groupOffers[0].groupId, eventId: groupOffers[0].eventId });\r\n }\r\n\r\n togglePast() {\r\n this.setState({past: !this.state.past})\r\n }\r\n\r\n\r\n renderStatus(status) {\r\n return status;\r\n }\r\n\r\n sortingFunction(offerA, offerB) {\r\n const statusOrder = [\"PROPOSAL\", \"ACCEPTED\", \"REJECTED\"];\r\n if (offerA.status !== offerB.status)\r\n return statusOrder.indexOf(offerA.status) >\r\n statusOrder.indexOf(offerB.status)\r\n ? 1\r\n : -1;\r\n if (\r\n offerA.status === \"ACCEPTED\" &&\r\n moment(offerA.station.start).isAfter(new Date())\r\n )\r\n return moment(offerA.station.start).isAfter(moment(offerB.station.start)) ? -1 : 1;\r\n return moment(offerA.station.start).isAfter(moment(offerB.station.start)) ? 1 : -1;\r\n }\r\n\r\n\r\n\r\n renderProposalButton(status, startDate) {\r\n switch (status) {\r\n case \"ACCEPTED\":\r\n if (moment(startDate).isAfter(new Date())) {\r\n return (\r\n \r\n );\r\n } else {\r\n return (\r\n \r\n );\r\n }\r\n case \"REJECTED\":\r\n return (\r\n \r\n );\r\n case \"PROPOSAL\":\r\n return (\r\n \r\n );\r\n default:\r\n return (\r\n \r\n );\r\n }\r\n }\r\n\r\n renderRow(row) {\r\n return (\r\n \r\n {row.station.name}\r\n \r\n {this.renderProposalButton(\r\n row.status,\r\n row.station ? moment(row.station.start).format(\"YYYY-MM-DD\") : null\r\n )}\r\n \r\n \r\n );\r\n }\r\n\r\n renderLoader() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n renderNoOffers() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n renderEventList(offerList, past=false) {\r\n \r\n const sortedEvents = offerList.sort((e0, e1) => e0.eventId.localeCompare(e1.eventId));\r\n const eventList = past ? sortedEvents.filter((offer, index, array) => !index || offer.eventId !== array[index - 1].eventId)\r\n .sort((a,b) => moment(a.station.start).isAfter(moment(b.station.start)) ? -1 : 1) : sortedEvents.filter((offer, index, array) => !index || offer.eventId !== array[index - 1].eventId)\r\n .sort((a,b) => moment(a.station.start).isAfter(moment(b.station.start)) ? 1 : -1);\r\n return (\r\n \r\n {eventList.map(e => this.renderEvent(e, sortedEvents.filter(offer => offer.eventId === e.eventId), past))}\r\n \r\n )\r\n\r\n }\r\n\r\n renderOffers() {\r\n if (!this.state.groupOffers) {\r\n return ;\r\n }\r\n if (this.state.groupOffers.length < 1) {\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n else{\r\n const futureList = this.state.groupOffers && this.state.groupOffers[0].station ? this.state.groupOffers.filter(offer => offer.station.start.localeCompare(new Date().toISOString()) >= 0 && offer.status !== \"REJECTED\") : [];\r\n const pastList = this.state.groupOffers && this.state.groupOffers[0].station ? this.state.groupOffers.filter(offer => (offer.station.start.localeCompare(new Date().toISOString()) < 0 || offer.status === \"REJECTED\") && offer.status !== \"PROPOSAL\") : [];\r\n return(\r\n \r\n {this.renderEventList(futureList)}\r\n \r\n {this.state.past ? this.renderEventList(pastList, true) : \"\"}\r\n \r\n )\r\n }\r\n }\r\n\r\n renderEvent(event, offers, past) {\r\n const sortedGroups = offers.sort((g0, g1) => g0.groupId.localeCompare(g1.groupId));\r\n const groupList = sortedGroups.filter((offer, index, array) => !index || offer.groupId !== array[index - 1].groupId).map(g => g.groupName);\r\n return (\r\n \r\n \r\n

    \r\n {event.eventName}\r\n

    \r\n

    \r\n {event.station ? moment(event.station.start).format(\"YYYY-MM-DD\") : null}\r\n

    \r\n
    \r\n {groupList.map(groupName => this.renderGroupOffers(groupName, sortedGroups.filter(offer => offer.groupName === groupName), past))}\r\n
    \r\n )\r\n } \r\n \r\n renderGroupOffers(groupName, groupOffers, past) {\r\n const sortedOffers = groupOffers.sort(this.sortingFunction);\r\n const accepted = sortedOffers.reduce((prev, curr) => prev || curr.status === \"ACCEPTED\" , false);\r\n return (\r\n \r\n \r\n \r\n {groupName}\r\n \r\n {past === false && accepted ? \r\n this.handleCreateLink(groupOffers)}/> : \"\"}\r\n \r\n \r\n \r\n {sortedOffers.map(this.renderRow)}\r\n \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

    \r\n \r\n

    \r\n {this.renderOffers()}\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(injectIntl(GroupOffers));\r\n","import { connect } from \"react-redux\";\r\nimport { withRouter } from \"react-router\";\r\nimport { default as GroupOffersComponent } from \"./GroupOffers\";\r\nimport { fetchGroupsOffers, createLink } from \"./reducer\";\r\n\r\nconst mapStateToProps = (state) => ({\r\n groupOffers: state.offers.groupOffers,\r\n selfRegistrationLink: state.offers.link\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n fetchGroupsOffers: data => dispatch(fetchGroupsOffers(data)),\r\n createLink: data => dispatch(createLink(data)),\r\n});\r\n\r\nexport const GroupOffers = withRouter(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(GroupOffersComponent));\r\n\r\n","import React, { Component } from \"react\";\r\nimport { ContentWrapper, Container, H1, P } from \"../../../components\";\r\nimport { CircleLinkButton } from \"../../../components/Links\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport styled from \"styled-components\";\r\nimport { breakPoints } from \"../../../constants/styling-constants\";\r\nimport MyGroupsList from \"./MyGroupsList\";\r\nimport TopNavigation from \"../TopNavigation\";\r\nimport messages from \"./messages\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\nimport { GroupOffers } from \"../Offer\";\r\n\r\nconst IconWrapper = styled(Col)`\r\n display: flex;\r\n @media (max-width: ${breakPoints.xs}px) {\r\n flex-direction: column;\r\n align-items: center;\r\n a {\r\n margin-bottom: 25px;\r\n }\r\n }\r\n`;\r\n\r\nclass VolunteerContextStart 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\nexport default injectIntl(VolunteerContextStart);\r\n","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n title: {\r\n id: 'register-group.title',\r\n },\r\n form: {\r\n groupInfo: {\r\n title: {\r\n id: 'register-group.group-info.form.title',\r\n },\r\n name: {\r\n id: 'register-group.form.group-info.name.placeholder',\r\n },\r\n orgNumber: {\r\n id: 'register-group.form.group-info.org-number.placeholder',\r\n },\r\n orgName: {\r\n id: 'register-group.form.group-info.org-name.placeholder',\r\n },\r\n municipality: {\r\n id: 'register-group.form.group-info.municipality.placeholder',\r\n },\r\n },\r\n contact: {\r\n title: {\r\n id: 'register-group.contact.form.title',\r\n },\r\n\r\n },\r\n members: {\r\n title: {\r\n id: 'register-group.members.form.title',\r\n },\r\n numberOfMembers: {\r\n id: 'register-group.form.members.number-of-members.placeholder',\r\n },\r\n },\r\n ages: {\r\n title: {\r\n id: 'register-group.ages.form.title',\r\n },\r\n ages: {\r\n id: 'register-group.form.ages.ages.placeholder',\r\n },\r\n },\r\n alignment: {\r\n sport: {\r\n id: 'register-group.form.alignment.sport.placeholder',\r\n },\r\n skills: {\r\n id: 'register-group.form.alignment.skills.placeholder',\r\n },\r\n },\r\n payment: {\r\n title: {\r\n id: 'register-group.payment.form.title',\r\n },\r\n bank: {\r\n id: 'register-group.form.payment.bank.placeholder',\r\n },\r\n accountNumber: {\r\n id: 'register-group.form.payment.account-number.placeholder',\r\n },\r\n },\r\n },\r\n editGroup: {\r\n form: {\r\n contact: {\r\n id: 'edit-group.form.contact.placeholder',\r\n },\r\n contactExistMessage: {\r\n id: 'edit-group.form.contact-exist-message',\r\n },\r\n contactEmptyMessage: {\r\n id: 'edit-group.form.contact-empty-message',\r\n },\r\n userNotFound: {\r\n id: 'edit-group.form.contact-user-not-found',\r\n },\r\n addContactButton: {\r\n id: 'edit-group.form.add-contact-button',\r\n },\r\n },\r\n contactList: {\r\n name: {\r\n id: 'edit-group.contacts.name.placeholder',\r\n },\r\n email: {\r\n id: 'edit-group.contacts.email.placeholder',\r\n },\r\n phone: {\r\n id: 'edit-group.contacts.phone.placeholder',\r\n },\r\n },\r\n },\r\n volunteers: {\r\n title: {\r\n id: 'edit-group.volunteers.form.title',\r\n },\r\n form: {\r\n name: {\r\n id: 'edit-group.volunteers.name.placeholder',\r\n },\r\n email: {\r\n id: 'edit-group.volunteers.email.placeholder',\r\n },\r\n phone: {\r\n id: 'edit-group.volunteers.phone.placeholder',\r\n },\r\n age: {\r\n id: 'edit-group.volunteers.age.placeholder',\r\n },\r\n addButton: {\r\n id: 'edit-group.volunteers.add-button',\r\n },\r\n },\r\n },\r\n saveGroupButton: {\r\n id: 'save-group-button',\r\n },\r\n nextButton: {\r\n id: 'next-step-button',\r\n },\r\n editGroupButton: {\r\n id: 'edit-group-button',\r\n },\r\n deleteContactText: {\r\n id: 'group.delete-contact.text',\r\n },\r\n});\r\n","// TODO fix this file!!!\r\n// this file is bad, we should move form declaration to parent component and make this to a form section https://redux-form.com/6.5.0/docs/api/formsection.md/\r\n\r\n\r\nimport React from 'react';\r\nimport sports from '../../../../sports.json';\r\nimport { Field, reduxForm } from 'redux-form';\r\nimport { Row, Col } from 'react-bootstrap/lib';\r\nimport {\r\n P,\r\n FormSectionTitle,\r\n Input,\r\n Select,\r\n ListSelect,\r\n FormGroup,\r\n GeneralError,\r\n MultiSelect,\r\n ContactForm,\r\n} from '../../../../components/index';\r\nimport { BigGreenButton } from '../../../../components/Buttons/index';\r\nimport { required, minLength3, positiveNumbers, integer } from '../../../../validators/index';\r\nimport { groupStatus } from '../reducer';\r\nimport messages from './messages';\r\nimport { FormattedMessage, injectIntl } from 'react-intl';\r\nimport { municipalities } from '../../../../constants/municipalities';\r\nimport {lists} from '../../../../constants/lists.js'; // TODO: Add updated volex-data repository\r\nconst {skills} = lists;\r\n\r\nconst withLoadedProps = (LoadedComponent, loadedProps) => props => ;\r\n\r\nconst ages = [\r\n {id: '10', value: '10'},\r\n {id: '11', value: '11'},\r\n {id: '12', value: '12'},\r\n {id: '13', value: '13'},\r\n {id: '14', value: '14'},\r\n {id: '15', value: '15'},\r\n {id: '16', value: '16'},\r\n {id: '17', value: '17'},\r\n {id: '18+', value: '18+'},\r\n];\r\n\r\n// Sort on name but keep 'Ingen' (id 0) on top\r\nconst sortSportOnName = (a,b) => {\r\n if (a.id !== '0' && b.id !== '0' && a.name < b.name) {\r\n return -1;\r\n }\r\n if (a.id !== '0' && b.id !== '0' && a.name > b.name) {\r\n return 1;\r\n }\r\n return 0;\r\n};\r\n\r\nconst sortedSports = sports.sort(sortSportOnName);\r\n\r\n\r\nclass GroupForm extends React.Component {\r\n constructor (props) {\r\n super(props);\r\n\r\n this.state = {\r\n readonly: !this.isNew(),\r\n contactList: this.isNew() ? this.getInitialContactList() : this.props.group && Array.isArray(this.props.group.contactPersons) ? this.props.group.contactPersons : [],\r\n showDeleteContactModal: false,\r\n deletingContactPerson: false,\r\n contactToDelete: null,\r\n newContactEmail: null,\r\n contactError: null,\r\n emailInvalid: null,\r\n submitClicked: false,\r\n nextClicked: false,\r\n };\r\n\r\n this.toggleReadonly = this.toggleReadonly.bind(this);\r\n this.renderSkills = this.renderSkills.bind(this);\r\n this.renderMunicipality = this.renderMunicipality.bind(this);\r\n this.handleContactSubmit = this.handleContactSubmit.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleClickNext = this.handleClickNext.bind(this);\r\n this.saveGroup = this.saveGroup.bind(this);\r\n this.updateContactListFromForm = this.updateContactListFromForm.bind(this);\r\n }\r\n\r\n componentWillReceiveProps (nextProps) {\r\n if (this.isNew() && nextProps.user && !this.props.user) {\r\n this.setState({\r\n contactList: [{email: nextProps.user.email, name: `${nextProps.user.firstName } ${ nextProps.user.lastName}`, phone: nextProps.user.phone}]\r\n })\r\n }\r\n if (nextProps.status === groupStatus.SUCCESS && this.props.status !== groupStatus.SUCCESS) {\r\n this.setState({\r\n submitClicked: false,\r\n });\r\n }\r\n }\r\n\r\n getInitialContactList () {\r\n if (this.props.user) {\r\n const user = this.props.user;\r\n return [{email: user.email, name: `${user.firstName } ${ user.lastName}`, phone: user.phone}];\r\n }\r\n return [];\r\n }\r\n\r\n updateContactListFromForm (contactList) {\r\n this.setState({contactList});\r\n }\r\n\r\n validateContact (contactList) {\r\n const listContainsSubmittedEmail = contactList.find(contact => contact.email === this.state.newContactEmail && !contact.toBeDeleted);\r\n\r\n if (!this.state.newContactEmail) {\r\n this.setState({\r\n contactError: ,\r\n });\r\n } else if (listContainsSubmittedEmail) {\r\n this.setState({\r\n contactError: ,\r\n });\r\n } else if (!this.state.emailInvalid) {\r\n this.props.getUserByEmail({email: this.state.newContactEmail});\r\n }\r\n }\r\n\r\n handleContactSubmit() {\r\n this.validateContact(this.state.contactList);\r\n }\r\n\r\n renderSkills () {\r\n const skillOptions = skills.map(skill => ({id: skill, name: this.props.intl.formatMessage({id: `lists.skills.${skill}`})}));\r\n return (\r\n \r\n );\r\n }\r\n\r\n renderMunicipality () {\r\n return (\r\n \r\n );\r\n }\r\n\r\n isNew () {\r\n return !this.props.match.params.id;\r\n }\r\n\r\n toggleReadonly (e) {\r\n e && e.preventDefault();\r\n\r\n this.setState({\r\n readonly: !this.state.readonly,\r\n });\r\n }\r\n\r\n renderButtons () {\r\n const buttons = [];\r\n if (!this.isNew() && this.state.readonly) {\r\n buttons.push();\r\n }\r\n else if (!this.isNew()) {\r\n buttons.push();\r\n } \r\n if (this.props.onClickNext) {\r\n buttons.push();\r\n }\r\n\r\n return buttons;\r\n }\r\n\r\n saveGroup (fieldValues) {\r\n const newGroup = Object.assign({}, fieldValues, {contactPersons: this.state.contactList.filter(c => !c.toBeDeleted)});\r\n newGroup.numberOfMembers = parseInt(newGroup.numberOfMembers, 10);\r\n\r\n if (this.props.group) {\r\n newGroup.id = this.props.group.id;\r\n }\r\n\r\n this.props.submitGroup(newGroup);\r\n }\r\n\r\n handleClickNext (fieldValues) {\r\n this.setState({\r\n nextClicked: true,\r\n });\r\n\r\n this.saveGroup(fieldValues);\r\n this.props.onClickNext(1);\r\n }\r\n\r\n handleSubmit(fieldValues) {\r\n if (this.state.submitClicked) {\r\n return;\r\n }\r\n\r\n this.setState({\r\n submitClicked: true,\r\n });\r\n\r\n this.saveGroup(fieldValues);\r\n if (!this.props.onClickNext) {\r\n this.toggleReadonly();\r\n }\r\n }\r\n\r\n render () {\r\n if ((!this.isNew() && (this.props.status === groupStatus.NOT_SUBMITTED || this.props.status === groupStatus.FETCHING)) || !this.props.user) {\r\n return (

    Show spinner...

    );\r\n }\r\n\r\n return (
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.renderMunicipality()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.renderSkills()}\r\n \r\n \r\n {/* Uncomment block below when payment info should be added */}\r\n {/* \r\n \r\n \r\n \r\n */}\r\n \r\n \r\n \r\n \r\n {this.renderButtons()}\r\n \r\n \r\n
    );\r\n }\r\n}\r\n\r\nconst formName = 'groupForm';\r\nconst GroupFormForm = reduxForm({\r\n form: formName,\r\n})(GroupForm);\r\n\r\nexport default injectIntl(GroupFormForm);\r\n","import { connect } from \"react-redux\";\r\nimport { submitGroup, reset } from \"../reducer\";\r\nimport GroupForm from \"./GroupForm\";\r\nimport { resetUser } from \"../../../User/reducer\";\r\n\r\nconst mapStateToProps = state => ({\r\n group: state.group.group,\r\n status: state.group.status,\r\n user: state.auth.user,\r\n initialValues: state.group.group,\r\n userEmail: state.user,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n submitGroup: data => dispatch(submitGroup(data)),\r\n resetGroup: () => dispatch(reset()),\r\n resetUser: () => dispatch(resetUser()),\r\n});\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(GroupForm);\r\n","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n confirmTitle: {\r\n id: 'confirm-group.title',\r\n },\r\n confirmText2: {\r\n id: 'new-group.confirmation.text-2',\r\n },\r\n group: {\r\n numberOfMembers: {\r\n id: 'confirm-group.number-of-members.placeholder',\r\n },\r\n },\r\n confirmationModalTitle: {\r\n id: 'confirm-group.confirmation-modal.title',\r\n },\r\n confirmationModalText: {\r\n id: 'confirm-group.confirmation-modal.text',\r\n },\r\n cancelConfirmButton: {\r\n id: 'confirm-group.cancel-confirm-button',\r\n },\r\n confirmModalButton: {\r\n id: 'confirm-group.confirm-button',\r\n },\r\n confirmButton: {\r\n id: 'confirm-group-button',\r\n },\r\n nextButton: {\r\n id: 'confirm-next-button',\r\n },\r\n});\r\n","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n title: {\r\n id: 'register-volunteers.title',\r\n },\r\n text: {\r\n id: 'register-volunteers.text',\r\n },\r\n volunteers: {\r\n personalInfoTitle: {\r\n id: 'register-group.volunteers.form.personal-info-title',\r\n },\r\n otherInfoTitle: {\r\n id: 'register-group.volunteers.form.other-info-title',\r\n },\r\n form: {\r\n goBack: {\r\n id: 'group.volunteer.form.goBack'\r\n },\r\n name: {\r\n id: 'group.volunteer.form.name.placeholder',\r\n },\r\n email: {\r\n id: 'group.volunteer.form.email.placeholder',\r\n },\r\n phone: {\r\n id: 'group.volunteer.form.phone.placeholder',\r\n },\r\n age: {\r\n id: 'group.volunteer.form.age.placeholder',\r\n },\r\n substitute:{\r\n id: 'group.volunteer.form.substitute.placeholder',\r\n },\r\n substituteTitle: {\r\n id: 'group.volunteer.form.substitute.title',\r\n },\r\n substituteOption: {\r\n id: 'group.volunteer.form.substitute.option',\r\n },\r\n foodOptionsTitle: {\r\n id: 'group.volunteer.form.food-options-title',\r\n },\r\n shirtSizesTitle: {\r\n id: 'group.volunteer.form.shirt-sizes-title',\r\n },\r\n specialDiets: {\r\n lactoseFree: {\r\n id: 'group.volunteer.form.special-diets.lactose-free.placeholder',\r\n },\r\n glutenFree: {\r\n id: 'group.volunteer.form.special-diets.gluten-free.placeholder',\r\n },\r\n vegetarian: {\r\n id: 'group.volunteer.form.special-diets.vegetarian.placeholder',\r\n },\r\n vegan: {\r\n id: 'group.volunteer.form.special-diets.vegan.placeholder',\r\n },\r\n },\r\n shirtSize: {\r\n id: 'group.volunteer.form.shirt-size.placeholder',\r\n },\r\n addButton: {\r\n id: 'group.volunteer.form.add-button',\r\n },\r\n emailAlreadyExistError: {\r\n id: 'group.volunteer.form.email-already-exist.error',\r\n },\r\n },\r\n list: {\r\n name: {\r\n id: 'group.volunteer.list.name.placeholder',\r\n },\r\n email: {\r\n id: 'group.volunteer.list.email.placeholder',\r\n },\r\n phone: {\r\n id: 'group.volunteer.list.phone.placeholder',\r\n },\r\n age: {\r\n id: 'group.volunteer.list.age.placeholder',\r\n },\r\n specialDiets: {\r\n id: 'group.volunteer.list.special-diets.title',\r\n },\r\n shirtSize: {\r\n id: 'group.volunteer.list.shirt-size.placeholder',\r\n },\r\n },\r\n cancelDeleteButton: {\r\n id: 'group.volunteer.list.cancel-delete-volunteer-button',\r\n },\r\n deleteVolunteerTitle: {\r\n id: 'group.volunteer.list.delete-volunteer-title',\r\n },\r\n deleteVolunteerMessage: {\r\n id: 'group.volunteer.list.delete-volunteer-text',\r\n },\r\n noVolunteersMessage: {\r\n id: 'register-group.volunteers.no-volunteers-yet-message',\r\n },\r\n nextButton: {\r\n id: 'edit-group.volunteers.next-button',\r\n },\r\n },\r\n});\r\n","import React, { Component, Fragment } from \"react\";\r\nimport { injectIntl, FormattedMessage } from \"react-intl\";\r\nimport { Field, reset, reduxForm } from \"redux-form\";\r\nimport { required, email, integer } from \"../../../../validators/index\";\r\nimport { groupStatus } from \"../reducer\";\r\nimport messages from \"./messages\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport { positiveNumbers } from \"../../../../validators/index\";\r\nimport {\r\n Input,\r\n FormSectionTitle,\r\n FormGroup,\r\n GeneralError,\r\n ListSelect,\r\n Select,\r\n H4,\r\n Checkbox,\r\n} from \"../../../../components\";\r\nimport {\r\n BigGreenButton,\r\n BigGrayButton,\r\n} from \"../../../../components/Buttons/index\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\nimport { lists } from \"../../../../constants/lists.js\"; // TODO: Add updated volex-data repository\r\n\r\nconst { foodOptions, shirtSizes } = lists;\r\n\r\nfunction validateEmailComparison(newVolunteer, volunteers, volunteerToEdit) {\r\n const errors = {};\r\n if (\r\n !newVolunteer.email ||\r\n (volunteers.find((v) => v.email === newVolunteer.email) &&\r\n (!volunteerToEdit ||\r\n (volunteerToEdit && volunteerToEdit.email !== newVolunteer.email)))\r\n ) {\r\n errors.email = (\r\n \r\n \r\n \r\n );\r\n }\r\n return Object.keys(errors).length > 0 ? errors : null;\r\n}\r\n\r\nconst withLoadedProps = (LoadedComponent, loadedProps) => (props) =>\r\n ;\r\n\r\nclass VolunteerForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n readonly: false, // !this.isNew(),\r\n newVolunteerErrors: null,\r\n submitting: false,\r\n emailInvalid: null,\r\n buttonDisabled: false,\r\n substituteCheckbox: false,\r\n };\r\n\r\n this.handleVolunteerSubmit = this.handleVolunteerSubmit.bind(this);\r\n this.onContactFieldChange = this.onContactFieldChange.bind(this);\r\n this.fillFormWithVolunteer = this.fillFormWithVolunteer.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n if (\r\n this.props.location &&\r\n this.props.location.pathname === \"/my-pages/volunteers/new\"\r\n ) {\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n if(this.props.volunteerToEdit){\r\n this.fillFormWithVolunteer(this.props.volunteerToEdit);\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (\r\n nextProps.volunteerToEdit !== this.props.volunteerToEdit &&\r\n nextProps.volunteerToEdit !== null &&\r\n !this.state.submitting\r\n ) {\r\n this.fillFormWithVolunteer(nextProps.volunteerToEdit);\r\n }\r\n if (nextProps.status === groupStatus.SUCCESS && this.state.submitting) {\r\n this.setState({\r\n submitting: false,\r\n });\r\n this.props.reset();\r\n }\r\n }\r\n\r\n isNew() {\r\n return !this.props.match.params.id;\r\n }\r\n\r\n handleVolunteerSubmit(fieldValues) {\r\n this.setState({ buttonDisabled: true });\r\n setTimeout(() => this.setState({ buttonDisabled: false }), 500);\r\n const specialDiets = fieldValues.specialDiets ? (fieldValues.specialDiets || []).filter((v) => !!v) : null;\r\n const participant = []\r\n const participate = {}\r\n participate.eventId = this.props.offer ? this.props.offer.eventId : null;\r\n\r\n if(fieldValues.shirtSize || fieldValues.specialDiets || fieldValues.substitute){\r\n const shirtSize = (fieldValues.shirtSize || []);\r\n\r\n if(!fieldValues.shirtSize){\r\n participate.specialDiets = specialDiets\r\n }\r\n else if(!fieldValues.specialDiets){\r\n participate.shirtSize = shirtSize\r\n }\r\n else{\r\n participate.specialDiets = specialDiets\r\n participate.shirtSize = shirtSize\r\n }\r\n\r\n if(fieldValues.substitute && this.state.substituteCheckbox){\r\n participate.substitute = fieldValues.substitute\r\n }\r\n\r\n participant.push(participate)\r\n }\r\n\r\n const newVolunteer = Object.assign({}, fieldValues);\r\n const volunteersList = this.props.group.volunteers\r\n ? this.props.group.volunteers.slice()\r\n : [];\r\n const errors = validateEmailComparison(\r\n newVolunteer,\r\n volunteersList,\r\n this.props.volunteerToEdit\r\n );\r\n if (!errors && !this.state.emailInvalid) {\r\n this.setState({\r\n newVolunteerErrors: null,\r\n submitting: false,\r\n });\r\n\r\n if (this.props.volunteerToEdit) {\r\n if(this.props.volunteerToEdit.participation){\r\n newVolunteer.participation = this.props.volunteerToEdit.participation;\r\n }\r\n\r\n if(newVolunteer.participation && this.props.offer){\r\n const index = newVolunteer.participation.findIndex((event) => event.eventId === this.props.offer.eventId)\r\n index === -1 ? newVolunteer.participation.push(participate) : newVolunteer.participation[index] = participate\r\n }\r\n else{newVolunteer.participation = participant}\r\n\r\n const updatedVolunteerList = volunteersList.map((v) =>\r\n v.id === this.props.volunteerToEdit.id\r\n ? (v = Object.assign({}, newVolunteer, {\r\n id: this.props.volunteerToEdit.id,\r\n }))\r\n : v\r\n );\r\n if(updatedVolunteerList)\r\n this.props.saveGroup(updatedVolunteerList);\r\n } else {\r\n newVolunteer.id = uuidv4();\r\n\r\n if(participant.length > 0 && participate.eventId !== null){\r\n newVolunteer.participation = participant\r\n }\r\n volunteersList.push(newVolunteer);\r\n this.props.saveGroup(volunteersList);\r\n if (typeof this.props.goBackToList === \"function\") {\r\n this.props.goBackToList();\r\n }\r\n }\r\n } else {\r\n this.setState({\r\n newVolunteerErrors: errors,\r\n });\r\n }\r\n }\r\n\r\n onContactFieldChange(e) {\r\n const newVolunteer = { email: e.target.value };\r\n const volunteersList = this.props.group.volunteers\r\n ? this.props.group.volunteers.slice()\r\n : [];\r\n const volunteerToEdit = this.props.volunteerToEdit;\r\n const error = validateEmailComparison(\r\n newVolunteer,\r\n volunteersList,\r\n volunteerToEdit\r\n );\r\n\r\n this.setState({\r\n emailInvalid: e.target.validity.typeMismatch,\r\n newVolunteerErrors: error,\r\n });\r\n }\r\n\r\n fillFormWithVolunteer(volunteer) {\r\n this.props.change(\"name\", volunteer.name);\r\n this.props.change(\"email\", volunteer.email);\r\n this.props.change(\"phone\", volunteer.phone);\r\n this.props.change(\"age\", volunteer.age);\r\n\r\n if(this.props.offer){\r\n const found = volunteer.participation ? volunteer.participation.find((participations) => participations.eventId === this.props.offer.eventId) : undefined;\r\n if(found !== undefined && found.specialDiets){\r\n this.props.change(\"specialDiets\", found.specialDiets);\r\n }\r\n if(found !== undefined && found.shirtSize){\r\n this.props.change(\"shirtSize\", found.shirtSize);\r\n }\r\n if(found !== undefined && found.substitute){\r\n this.setState({substituteCheckbox: true})\r\n this.props.change(\"substitute\", found.substitute)\r\n \r\n }\r\n }\r\n }\r\n\r\n renderVolunteerFormGroup() {\r\n if (this.state.readonly) {\r\n return this.renderVolunteers();\r\n }\r\n\r\n const includedSpecialDietsTranslated = this.props.offer && this.props.offer.foodOptions\r\n ? this.props.offer.foodOptions.map((opt) => ({\r\n id: opt,\r\n label: this.props.intl.formatMessage({\r\n id: `food.${opt.toLowerCase()}`,\r\n }),\r\n }))\r\n : null;\r\n const includedShirtSizesTranslated = this.props.offer && this.props.offer.shirtSizes\r\n ? this.props.offer.shirtSizes.map((opt) => ({\r\n id: opt,\r\n label: this.props.intl.formatMessage({\r\n id: `shirt-size.${opt.toLowerCase()}`,\r\n }),\r\n }))\r\n : null;\r\n\r\n const styleRow =\r\n typeof this.props.goBackToList === \"function\"\r\n ? { display: \"flex\", justifyContent: \"center\" }\r\n : {};\r\n\r\n const errors = this.state.newVolunteerErrors || {};\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 {errors.email || null}\r\n \r\n \r\n {this.props.offer && this.props.offer.substitute === \"active\" ?\r\n
    \r\n

    \r\n this.setState({substituteCheckbox: !this.state.substituteCheckbox})}\r\n label={\" \" + this.props.intl.formatMessage(messages.volunteers.form.substituteOption)}\r\n checked={this.state.substituteCheckbox}\r\n />\r\n
    \r\n : null}\r\n {this.state.substituteCheckbox ?\r\n
    \r\n

    \r\n \r\n
    \r\n : null\r\n }\r\n
    \r\n {this.props.offer ? (this.props.offer.foodOptions || this.props.offer.shirtSizes ? (\r\n \r\n \r\n \r\n \r\n {this.props.offer.foodOptions ? (\r\n <>\r\n

    \r\n \r\n \r\n ) : null}\r\n {this.props.offer.shirtSizes ? (\r\n <>\r\n

    \r\n \r\n \r\n ) : null}\r\n
    \r\n ) : null) : null}\r\n {!this.state.readonly ? (\r\n
    \r\n {typeof this.props.goBackToList === \"function\" && (\r\n this.props.goBackToList()}\r\n label={this.props.intl.formatMessage(\r\n messages.volunteers.form.goBack\r\n )}\r\n />\r\n )}\r\n \r\n
    \r\n ) : null}\r\n \r\n
    \r\n \r\n );\r\n }\r\n\r\n render() {\r\n return {this.renderVolunteerFormGroup()};\r\n }\r\n}\r\n\r\nconst afterSubmit = (result, dispatch) => dispatch(reset(\"volunteer\"));\r\n\r\nexport default reduxForm({\r\n form: \"volunteer\",\r\n onSubmitSuccess: afterSubmit,\r\n})(injectIntl(VolunteerForm));\r\n","import React, { Component, Fragment } from \"react\";\r\nimport { injectIntl, FormattedMessage } from \"react-intl\";\r\nimport messages from \"./messages\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport { DeleteButton } from \"../../../../components/Buttons/index\";\r\nimport { groupStatus } from \"../reducer\";\r\nimport styled from \"styled-components\";\r\nimport { BorderTable, ConfirmationModal } from \"../../../../components/index\";\r\n\r\nconst Wrapper = styled.div`\r\n margin-bottom: 80px;\r\n`;\r\n\r\nconst Table = styled(BorderTable)`\r\n display: inline-block;\r\n float: left;\r\n`;\r\n\r\nconst DeleteRowButton = ({ row, callback }) => {\r\n const onClick = () => {\r\n callback(row);\r\n };\r\n\r\n return ;\r\n};\r\n\r\nclass VolunteerList extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n showModal: false,\r\n deleting: false,\r\n volunteerToDelete: null,\r\n volunteers: this.props.group ? this.props.group.volunteers : null\r\n };\r\n\r\n this.toggleModal = this.toggleModal.bind(this);\r\n this.onDelete = this.onDelete.bind(this);\r\n this.onConfirmDelete = this.onConfirmDelete.bind(this);\r\n this.renderVolunteersTableRow = this.renderVolunteersTableRow.bind(this);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.status === groupStatus.SUCCESS && this.state.deleting) {\r\n this.setState({\r\n deleting: false,\r\n showModal: false,\r\n volunteers: this.props.group.volunteers\r\n });\r\n }\r\n\r\n if (\r\n nextProps.status === groupStatus.SUCCESS &&\r\n this.props.submittingVolunteerForm\r\n ) {\r\n this.setState({\r\n volunteers: this.props.group.volunteers\r\n });\r\n }\r\n }\r\n\r\n toggleModal() {\r\n this.setState({\r\n showModal: !this.state.showModal\r\n });\r\n }\r\n\r\n onDelete(row) {\r\n this.setState({\r\n showModal: true,\r\n volunteerToDelete: row\r\n });\r\n }\r\n\r\n onConfirmDelete() {\r\n this.setState({\r\n deleting: true\r\n });\r\n\r\n const updatedList = this.state.volunteers.slice();\r\n const indexToRemove = updatedList.indexOf(this.state.volunteerToDelete);\r\n updatedList.splice(indexToRemove, 1);\r\n this.props.saveGroup(updatedList);\r\n }\r\n\r\n renderVolunteersTableRow(row, key) {\r\n // TODO - find better solution for row click event - delete column needs to be excluded from row click event\r\n return (\r\n \r\n this.props.onVolunteerRowClick(key, row)}>\r\n {row.name}\r\n \r\n this.props.onVolunteerRowClick(key, row)}>\r\n {row.email.toLowerCase()}\r\n \r\n this.props.onVolunteerRowClick(key, row)}>\r\n {row.phone}\r\n \r\n this.props.onVolunteerRowClick(key, row)}>\r\n {row.age}\r\n \r\n {/*\r\n this.props.onVolunteerRowClick(key, row)}>{row.specialDiets ? row.specialDiets.map(diet => this.props.intl.formatMessage({ id: `food.${diet.toLowerCase()}` })).join(\", \") : null}\r\n this.props.onVolunteerRowClick(key, row)}>{row.shirtSize ? this.props.intl.formatMessage({ id: `shirt-size.${row.shirtSize.toLowerCase()}` }) : null}\r\n */}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n renderVolunteers() {\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 {this.state.volunteers.map(this.renderVolunteersTableRow)}\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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 return (\r\n \r\n {this.state.volunteers && this.state.volunteers.length > 0 ? (\r\n this.renderVolunteers()\r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default injectIntl(VolunteerList);\r\n","import React, { Component, Fragment } from \"react\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport { BigGreenButton } from \"../../../../components/Buttons\";\r\nimport { injectIntl, FormattedMessage } from \"react-intl\";\r\nimport { groupStatus } from \"../reducer\";\r\nimport messages from \"../GroupConfirm/messages\";\r\nimport styled from \"styled-components\";\r\nimport VolunteerForm from \"./VolunteerForm\";\r\nimport VolunteerList from \"./VolunteerList\";\r\nimport {\r\n ConfirmationModal,\r\n} from \"../../../../components\";\r\n\r\nconst Wrapper = styled.div`\r\n margin-bottom: 80px;\r\n`;\r\n\r\nclass Volunteers extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n submitting: false,\r\n volunteerToEdit: null,\r\n confirming: false,\r\n showModal: false,\r\n groupStatus: this.props.group ? this.props.group.status : {},\r\n };\r\n\r\n this.saveGroup = this.saveGroup.bind(this);\r\n this.isNew = this.isNew.bind(this);\r\n this.onVolunteerRowClick = this.onVolunteerRowClick.bind(this);\r\n this.handleConfirm = this.handleConfirm.bind(this);\r\n this.toggleModal = this.toggleModal.bind(this);\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props.status === groupStatus.SUCCESS && this.state.submitting) {\r\n this.setState({\r\n submitting: false,\r\n volunteerToEdit: null,\r\n });\r\n }\r\n\r\n if (prevProps.group.status !== \"CONFIRMED\" && this.props.group.status === \"CONFIRMED\") {\r\n this.setState({\r\n confirming: false,\r\n showModal: null,\r\n });\r\n this.props.history.push(`/my-pages/volunteers/${this.props.group.groupId}/volunteers`);\r\n }\r\n }\r\n\r\n isNew() {\r\n return !this.props.match.params.id;\r\n }\r\n\r\n handleConfirm() {\r\n this.setState({\r\n confirming: true,\r\n });\r\n\r\n this.props.confirmGroup(this.props.group);\r\n }\r\n\r\n toggleModal(e) {\r\n e && e.preventDefault();\r\n this.setState({\r\n showModal: !this.state.showModal,\r\n });\r\n }\r\n\r\n saveGroup(volunteersList) {\r\n const groupToSubmit = this.props.group;\r\n groupToSubmit.volunteers = volunteersList;\r\n this.props.submitGroup(groupToSubmit);\r\n this.setState({\r\n submitting: true,\r\n });\r\n }\r\n\r\n onVolunteerRowClick(key, row) {\r\n this.setState({\r\n volunteerToEdit: row,\r\n volunteerEditKey: key,\r\n editingVolunteer: true,\r\n });\r\n }\r\n\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 {this.props.group && this.props.group.status === \"DRAFT\"\r\n ? \r\n : null\r\n }\r\n \r\n \r\n }\r\n busy={this.state.confirming}\r\n theme=\"green\"\r\n />\r\n );\r\n }\r\n}\r\n\r\nexport default injectIntl(Volunteers);\r\n","import { connect } from 'react-redux';\r\nimport { submitGroup, reset, status, confirmGroup } from '../reducer';\r\nimport Volunteers from './Volunteers';\r\n\r\nconst mapStateToProps = (state) => {\r\n const obj = {\r\n group: state.group.group,\r\n status: state.group.status,\r\n user: state.auth.user,\r\n };\r\n if (state.group.status === status.FETCHED) {\r\n obj.initialValues = state.group.volunteers;\r\n }\r\n\r\n return obj;\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n submitGroup: data => dispatch(submitGroup(data)),\r\n resetGroup: () => dispatch(reset()),\r\n confirmGroup: data => dispatch(confirmGroup(data)),\r\n});\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(Volunteers);\r\n","import React, { Fragment } from \"react\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\nimport messages from \"./messages\";\r\nimport { Field, reduxForm } from \"redux-form\";\r\nimport { BigGreenButton } from \"../../../../components/Buttons/index\";\r\nimport { groupStatus } from \"../reducer\";\r\nimport {\r\n P,\r\n Input,\r\n ConfirmationModal,\r\n} from \"../../../../components\";\r\n\r\nclass GroupConfirm extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n showModal: false,\r\n confirming: false,\r\n groupStatus: this.props.group ? this.props.group.status : {},\r\n };\r\n\r\n this.handleConfirm = this.handleConfirm.bind(this);\r\n this.toggleModal = this.toggleModal.bind(this);\r\n this.onClickNext = this.onClickNext.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.location && this.props.location.pathname === \"/my-pages/volunteers/new\") {\r\n window.scrollTo(0, 0);\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props.status === groupStatus.SUCCESS && prevProps === groupStatus.SUBMITTING && this.state.confirming) {\r\n this.toggleModal();\r\n this.setState({\r\n confirming: false,\r\n groupStatus: this.props.group.status,\r\n });\r\n }\r\n\r\n if (prevProps.group.status !== \"CONFIRMED\" && this.props.group.status === \"CONFIRMED\") {\r\n this.setState({\r\n confirming: false,\r\n showModal: false,\r\n groupStatus: this.props.group ? this.props.group.status : {},\r\n });\r\n\r\n const url = `/my-pages/volunteers/${this.props.group.groupId}/confirm`;\r\n if (url !== this.props.history.location.pathname) {\r\n this.props.history.push(`/my-pages/volunteers/${this.props.group.groupId}/confirm`);\r\n }\r\n }\r\n }\r\n\r\n handleConfirm() {\r\n this.setState({\r\n confirming: true,\r\n });\r\n\r\n this.props.confirmGroup(this.props.group);\r\n }\r\n\r\n toggleModal(e) {\r\n e && e.preventDefault();\r\n this.setState({\r\n showModal: !this.state.showModal,\r\n });\r\n }\r\n\r\n onClickNext() {\r\n this.props.onClickNext(2);\r\n }\r\n\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 {this.props.isNew ? : null}\r\n \r\n \r\n
    \r\n }\r\n busy={this.state.confirming}\r\n theme=\"green\"\r\n />\r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst GroupConfirmForm = reduxForm({\r\n form: \"group-confirm\",\r\n})(GroupConfirm);\r\n\r\nexport default injectIntl(GroupConfirmForm);\r\n","import { connect } from 'react-redux';\r\nimport { reset, submitGroup, confirmGroup } from '../reducer';\r\nimport GroupConfirm from './GroupConfirm';\r\n\r\nconst mapStateToProps = (state, ownProps) => ({\r\n group: ownProps.group,\r\n status: state.group.status,\r\n initialValues: ownProps.group,\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n submitGroup: data => dispatch(submitGroup(data)),\r\n resetEvent: () => dispatch(reset()),\r\n confirmGroup: data => dispatch(confirmGroup(data)),\r\n});\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(GroupConfirm);\r\n","export const GROUP_AVAIL_SAVE = 'GROUP_AVAIL_SAVE';\r\nexport const GROUP_AVAIL_SAVE_SUCCESS = 'GROUP_AVAIL_SAVE_SUCCESS';\r\nexport const GROUP_AVAIL_SAVE_FAILED = 'GROUP_AVAIL_SAVE_FAILED';\r\nexport const GROUP_AVAIL_FETCH = 'GROUP_AVAIL_FETCH';\r\nexport const GROUP_AVAIL_FETCH_SUCCESS = 'GROUP_AVAIL_FETCH_SUCCESS';\r\nexport const GROUP_AVAIL_FETCH_FAILED = 'GROUP_AVAIL_FETCH_FAILED';\r\n\r\nexport const status = {\r\n SAVING: 'SAVING',\r\n NOT_SUBMITTED: 'NOT_SUBMITTED',\r\n SAVE_SUCCESS: 'SAVE_SUCCESS',\r\n SAVE_FAILED: 'SAVE_FAILED',\r\n};\r\n\r\nexport const saveAvailabilitiesStatus = status;\r\n\r\nexport function saveAvailabilities (data) {\r\n return {\r\n type: GROUP_AVAIL_SAVE,\r\n payload: data,\r\n };\r\n}\r\n\r\nexport function fetchAvailabilities (data) {\r\n return {\r\n type: GROUP_AVAIL_FETCH,\r\n payload: data,\r\n };\r\n}\r\n\r\nconst initialState = {\r\n status: status.NOT_SUBMITTED,\r\n availabilities: null,\r\n};\r\n\r\nexport default function groupAvailability (state = initialState, action) {\r\n if (!action) {\r\n return state;\r\n }\r\n\r\n switch (action.type) {\r\n case GROUP_AVAIL_SAVE:\r\n return Object.assign({}, state, {status: status.SAVING});\r\n case GROUP_AVAIL_FETCH_SUCCESS:\r\n return Object.assign({}, state, {availabilities: action.payload});\r\n case GROUP_AVAIL_FETCH_FAILED:\r\n return Object.assign({}, state, {availabilities: [], error: action.payload});\r\n case GROUP_AVAIL_SAVE_SUCCESS:\r\n return Object.assign({}, state, {status: status.SAVE_SUCCESS, availabilities: action.payload});\r\n case GROUP_AVAIL_SAVE_FAILED:\r\n return Object.assign({}, state, {status: status.SAVE_FAILED, availabilities: [], error: action.payload});\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\n","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n title: {\r\n id: 'group-availability.title'\r\n },\r\n loading: {\r\n id: 'commmon.loading.message'\r\n },\r\n addForm: {\r\n title: {\r\n id: 'group-availability.add-form.title'\r\n },\r\n submit: {\r\n id: 'group-availability.add-form.submit'\r\n }\r\n },\r\n table: {\r\n type: {\r\n id: 'group-availability.table.header.type',\r\n },\r\n location: {\r\n id: 'group-availability.table.header.location',\r\n },\r\n period: {\r\n id: 'group-availability.table.header.period',\r\n },\r\n event: {\r\n id: 'group-availability.table.header.event',\r\n },\r\n input: {\r\n type: {\r\n id: 'group-availability.table.input.type',\r\n },\r\n types: {\r\n period: {\r\n id: 'group-availability.table.input.type.PERIOD',\r\n },\r\n event: {\r\n id: 'group-availability.table.input.type.EVENT',\r\n },\r\n },\r\n location: {\r\n id: 'group-availability.table.input.location',\r\n },\r\n startDate: {\r\n id: 'group-availability.table.input.startDate',\r\n },\r\n endDate: {\r\n id: 'group-availability.table.input.endDate',\r\n },\r\n event: {\r\n id: 'group-availability.table.input.event',\r\n },\r\n },\r\n newRow: {\r\n id: 'group-availability.table.addAvailability',\r\n },\r\n },\r\n saveButton: {\r\n id: 'group-availability.save-button',\r\n },\r\n});\r\n\r\n","import \"./index.css\";\r\nimport React, { Component, Fragment } from \"react\";\r\nimport { injectIntl } from \"react-intl\";\r\nimport { reduxForm, Field } from \"redux-form\";\r\nimport messages from \"./messages\";\r\nimport styled from \"styled-components\";\r\nimport {\r\n SmallDatePicker,\r\n SmallSelect,\r\n FormGroup\r\n} from \"../../../../components/index\";\r\nimport { BigGreenButton } from \"../../../../components/Buttons\";\r\nimport { municipalities } from \"../../../../constants/municipalities\";\r\nimport { required } from \"../../../../validators\";\r\nimport moment from \"moment\";\r\n\r\nconst TableDatePicker = styled(SmallDatePicker)``;\r\nconst StyledButton = styled(BigGreenButton)`\r\n margin: 0 0 0 0;\r\n background-color: #009aa2;\r\n background: linear-gradient(#00adba,#009aa2);\r\n`;\r\n\r\nclass AddAvailabilityFormComponent extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n type: null,\r\n event: null\r\n };\r\n }\r\n\r\n render() {\r\n const {\r\n intl,\r\n events,\r\n fetchEvent,\r\n completeEvents = [],\r\n handleSubmit\r\n } = this.props || {};\r\n const sortedEventList = events.sort((a, b) => a.name.localeCompare(b.name));\r\n let mun = municipalities;\r\n if (this.state.type && this.state.type === \"EVENT\" && this.state.event) {\r\n const event = completeEvents.find(e => e.eventId === this.state.event);\r\n if (!event) {\r\n fetchEvent(this.state.event);\r\n } else {\r\n mun = municipalities.filter(m => {\r\n return event.stations && event.stations.find(s => s.municipality === m.id);\r\n });\r\n }\r\n }\r\n const typeOptions = [\"PERIOD\", \"EVENT\"].map(k => ({\r\n value: k,\r\n text: intl.formatMessage({\r\n id: `group-availability.table.input.type.${k}`\r\n })\r\n }));\r\n return (\r\n
    \r\n \r\n this.setState({ type: value })}\r\n component={SmallSelect}\r\n validate={[required]}\r\n />\r\n {this.state.type === \"PERIOD\" && (\r\n \r\n \r\n \r\n \r\n )}\r\n {this.state.type === \"EVENT\" && (\r\n this.setState({ event: value })}\r\n filter\r\n component={SmallSelect}\r\n valueField=\"eventId\"\r\n textField=\"name\"\r\n validdate={[required]}\r\n />\r\n )}\r\n {this.state.type && (\r\n \r\n )}\r\n \r\n {intl.formatMessage(messages.addForm.submit)}\r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst AddAvailabilityForm = reduxForm({\r\n form: \"addInterestForm\",\r\n initialValues: {\r\n startDate: moment(),\r\n endDate: moment().add(1, \"days\")\r\n }\r\n})(\r\n injectIntl(AddAvailabilityFormComponent)\r\n);\r\n\r\nexport default AddAvailabilityForm;\r\n","import \"./index.css\";\r\nimport React, {Component} from 'react';\r\nimport { withRouter } from 'react-router';\r\nimport {FormattedMessage, injectIntl} from 'react-intl';\r\n\r\nimport { connect } from 'react-redux'\r\nimport { reset } from 'redux-form';\r\nimport { status } from './reducer';\r\n\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport { Modal } from 'react-bootstrap/lib';\r\n\r\nimport moment from 'moment';\r\nimport messages from './messages';\r\n\r\nimport { H2, TextSection } from '../../../../components/index';\r\nimport { DeleteButton, SmallGrayButton, removeMargin } from '../../../../components/Buttons';\r\nimport { ModalWrapper, Content } from '../../../../components/ConfirmationModal';\r\nimport { municipalities } from '../../../../constants/municipalities';\r\nimport AddAvailabilityForm from './AddGroupAvailabilityForm'\r\nimport styled from \"styled-components\";\r\n\r\nconst SmallThinGrayButton = removeMargin(SmallGrayButton);\r\n\r\nclass GroupAvailability extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n showModal: false,\r\n }\r\n\r\n this.toggleModal = this.toggleModal.bind(this);\r\n this.addGroupAvailability = this.addGroupAvailability.bind(this);\r\n this.submitAvailabilities = this.submitAvailabilities.bind(this);\r\n\r\n }\r\n\r\n UNSAFE_componentWillMount () {\r\n const { fetchPublicEvents, groupId, fetchGroupAvailabilities } = this.props || {};\r\n fetchPublicEvents({startDate: moment().format('YYYY-MM-DD'), endDate: moment().add(3, 'years').format('YYYY-MM-DD')});\r\n groupId && fetchGroupAvailabilities({ groupId: groupId })\r\n }\r\n\r\n toggleModal() {\r\n const { resetForm } = this.props || {};\r\n resetForm()\r\n this.setState({\r\n showModal: !this.state.showModal\r\n });\r\n }\r\n\r\n addGroupAvailability(data) {\r\n const { initialValues: { availabilities = [] } = {}, groupId, submitGroupAvailabilities } = this.props || {}\r\n const newAvailabilities = [...availabilities]\r\n newAvailabilities.push({...data})\r\n const toSubmit = {\r\n groupId: groupId,\r\n availabilities: newAvailabilities,\r\n };\r\n submitGroupAvailabilities(toSubmit);\r\n this.toggleModal()\r\n }\r\n\r\n deleteGroupAvailibility(data) {\r\n const { initialValues: { availabilities = [] } = {} } = this.props || {}\r\n const newAvailabities = availabilities.filter(availability => \r\n !(availability.organizerSK === data.organizerSK && \r\n availability.organizerPK === data.organizerPK &&\r\n availability.groupSK === data.groupSK &&\r\n availability.location === data.location &&\r\n availability.type === data.type \r\n ))\r\n this.submitAvailabilities(newAvailabities)\r\n }\r\n\r\n submitAvailabilities(data) {\r\n const { availabilityStatus, groupId, submitGroupAvailabilities } = this.props || {};\r\n // Prevent double click by not saving when request is ongoing\r\n if (availabilityStatus === status.SAVING) {\r\n return;\r\n }\r\n const toSubmit = {\r\n groupId: groupId,\r\n availabilities: data,\r\n };\r\n submitGroupAvailabilities(toSubmit);\r\n }\r\n\r\n render() {\r\n const columns = [\r\n {\r\n dataField: \"id\",\r\n text: \"id\",\r\n hidden: true,\r\n }, \r\n {\r\n dataField: \"type\",\r\n text: this.props.intl.formatMessage(messages.table.event),\r\n sort: true,\r\n }, \r\n {\r\n dataField: \"location\",\r\n text: this.props.intl.formatMessage(messages.table.location),\r\n sort: true,\r\n },\r\n {\r\n dataField: \"button\",\r\n text: \"\",\r\n classes: \"hidden-column\",\r\n headerStyle: {backgroundColor: \"#e2f0f1\", borderWidth: 0}\r\n }\r\n ]\r\n\r\n const { initialValues: { availabilities = [] } = {}, intl, publicEvents, fetchEvent, completeEvents, groupId, group } = this.props || {}\r\n const products = availabilities ? availabilities.map(availability => {\r\n const location = municipalities.find(municipality => municipality.id === availability.location) || {}\r\n switch (availability.type) {\r\n case \"PERIOD\":\r\n return {id: availability.organizerSK, type: `${moment(availability.startDate).format(\"DD MMMM YYYY\")} - ${moment(availability.endDate).format(\"DD MMMM YYYY\")}`, location: location.name, button: this.deleteGroupAvailibility(availability)} />}\r\n default: { //case \"EVENT\"\r\n const eventFound = (this.props && completeEvents) && (completeEvents.find(publicEvent => publicEvent.eventId === availability.eventId)) //|| fetchEvent(availability.eventId))\r\n return {id : availability.organizerSK, type: eventFound.name || , location: location.name, button: this.deleteGroupAvailibility(availability)} />}\r\n }\r\n }\r\n }) : []\r\n if (!groupId && !group.group.groupId) {\r\n return

    {'[Det ska inte vara tillåtet att gå hit utan att ha sparat gruppen eftersom vi inte har något grupp-id att referera till. Går ju såklart att bygga men det ger ökad komplexitet så det är ett hörn som vi bör kutta tillsvidare.]'}

    ;\r\n }\r\n\r\n return (\r\n \r\n

    \r\n {products.length > 0 && (\r\n \r\n )}\r\n {\r\n this.setState({showModal: !this.state.showModal})\r\n }}>\r\n \r\n \r\n }\r\n />\r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst SmallDeleteButton = styled(DeleteButton)`\r\n display: block;\r\n margin-left: auto;\r\n margin-right: 0;\r\n i {\r\n font-size: 30px;\r\n color: gray;\r\n }\r\n`;\r\n\r\nconst NoPaddingModalBody = styled(Modal.Body)`\r\n padding: 0px;\r\n`;\r\n\r\nconst AddInterestModal = ({ show, close, form, title }) => (\r\n \r\n \r\n \r\n
    \r\n

    {title}

    \r\n \r\n
    \r\n {form}\r\n
    \r\n
    \r\n
    \r\n)\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n resetForm: () => dispatch(reset(\"addInterestForm\"))\r\n})\r\n\r\nconst GroupAvailabilityForm = withRouter(connect(null, mapDispatchToProps)((injectIntl(GroupAvailability))))\r\n\r\nexport default GroupAvailabilityForm;\r\n","import { connect } from \"react-redux\";\r\nimport { fetchPublicEvents, fetchCompleteEvent } from \"../reducer\";\r\nimport GroupAvailability from \"./GroupAvailability\";\r\nimport { saveAvailabilities, fetchAvailabilities } from \"./reducer\";\r\n\r\nconst mapStateToProps = (state) => ({\r\n group: state.group,\r\n completeEvents: state.group.completeEvents,\r\n publicEvents: state.group.publicEvents,\r\n event: state.event,\r\n publicEventsError: state.group.publicEventsError,\r\n status: state.group.status,\r\n availabilityStatus: state.groupAvailabilities.status,\r\n initialValues: { availabilities: state.groupAvailabilities.availabilities },\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n submitGroupAvailabilities: data => dispatch(saveAvailabilities(data)),\r\n fetchGroupAvailabilities: data => dispatch(fetchAvailabilities(data)),\r\n fetchPublicEvents: data => dispatch(fetchPublicEvents(data)),\r\n fetchEvent: data => dispatch(fetchCompleteEvent(data))\r\n});\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(GroupAvailability);\r\n","import React, { Component, Fragment } from \"react\";\r\nimport { ContentWrapper, Container, H1 } from \"../../../../components\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport GroupForm from \"../GroupForm\";\r\nimport Volunteers from \"../Volunteers\";\r\nimport GroupConfirm from \"../GroupConfirm\";\r\nimport messages from \"../messages\";\r\nimport { FormattedMessage } from \"react-intl\";\r\nimport styled from \"styled-components\";\r\nimport { GreenNavLinkButton } from \"../../../../components/Links\";\r\nimport { groupStatus } from \"../reducer\";\r\nimport GroupAvailability from \"../GroupAvailability\";\r\nimport {\r\n Switch,\r\n Route\r\n} from \"react-router-dom\";\r\n\r\nconst states = [\r\n {\r\n step: 0,\r\n name: ,\r\n },\r\n {\r\n step: 1,\r\n name: ,\r\n },\r\n {\r\n step: 2,\r\n name: ,\r\n },\r\n];\r\n\r\nconst NavigationWrapper = styled.nav`\r\n margin-bottom: 90px;\r\n`;\r\n\r\nclass GroupBase extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n currentStep: 0,\r\n clickedNext: false,\r\n nextStep: 1,\r\n };\r\n\r\n this.goToStep = this.goToStep.bind(this);\r\n this.handleGroupSubmit = this.handleGroupSubmit.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n if (!this.isNew()) {\r\n this.props.fetchGroup({ id: this.props.match.params.id });\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.status === groupStatus.SUCCESS && this.props.status === groupStatus.SUBMITTING && this.state.clickedNext) {\r\n this.goToStep(this.state.nextStep);\r\n this.setState({\r\n clickedNext: false,\r\n });\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.reset();\r\n }\r\n\r\n goToStep(step) {\r\n if (step >= 0 && step <= states.length) {\r\n this.setState({\r\n currentStep: step,\r\n });\r\n\r\n if (states[step].link) {\r\n this.props.history.push(states[step].link);\r\n }\r\n }\r\n }\r\n\r\n handleGroupSubmit(step) {\r\n this.setState({\r\n clickedNext: true,\r\n nextStep: step,\r\n });\r\n }\r\n\r\n isNew() {\r\n return !this.props.match.params.id;\r\n }\r\n\r\n render() {\r\n if (!this.props.group) {\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 return (\r\n \r\n \r\n \r\n \r\n

    {this.props.group.name}

    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n />\r\n (\r\n )}\r\n />\r\n }\r\n />\r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default GroupBase;\r\n","import { connect } from \"react-redux\";\r\nimport { submitGroup, fetchGroup, reset } from \"../reducer\";\r\nimport GroupBase from \"./GroupBase\";\r\n\r\nconst mapStateToProps = (state) => {\r\n const obj = {\r\n group: state.group.group,\r\n error: state.group.error,\r\n status: state.group.status,\r\n user: state.auth.user,\r\n };\r\n\r\n return obj;\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n submitGroup: data => dispatch(submitGroup(data)),\r\n fetchGroup: data => dispatch(fetchGroup(data)),\r\n reset: () => dispatch(reset({})),\r\n});\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(GroupBase);\r\n","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n progressBar: {\r\n registerGroup: {\r\n id: 'new-group.progressbar.register-group.placeholder',\r\n },\r\n registerVolunteers: {\r\n id: 'new-group.progressbar.register-volunteers.placeholder',\r\n },\r\n registerAvailability: {\r\n id: 'new-group.progressbar.register-availability.placeholder',\r\n },\r\n },\r\n groupForm: {\r\n title: {\r\n id: 'new-group.group-form.title',\r\n },\r\n text: {\r\n id: 'new-group.group-form.text',\r\n },\r\n },\r\n availability: {\r\n title: {\r\n id: 'new-group.availability.title',\r\n },\r\n text: {\r\n id: 'new-group.availability.text',\r\n },\r\n },\r\n volunteers: {\r\n title: {\r\n id: 'new-group.volunteers.title',\r\n },\r\n text: {\r\n id: 'new-group.volunteers.text',\r\n },\r\n },\r\n confirmation: {\r\n title: {\r\n id: 'new-group.confirmation.title',\r\n },\r\n text: {\r\n id: 'new-group.confirmation.text',\r\n },\r\n },\r\n nextButton: {\r\n id: 'next-step-button',\r\n },\r\n});\r\n","import React, { Component, Fragment } from \"react\";\r\nimport { ContentWrapper, Container, ProgressBar } from \"../../../../components/index\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport GroupForm from \"../GroupForm\";\r\nimport GroupConfirm from \"../GroupConfirm\";\r\nimport Volunteers from \"../Volunteers\";\r\nimport { colors } from \"../../../../constants/styling-constants\";\r\nimport messages from \"./messages\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\nimport { groupStatus } from \"../reducer\";\r\nimport {\r\n H1,\r\n P\r\n} from \"../../../../components\";\r\nimport GroupAvailability from \"../GroupAvailability\";\r\n\r\nconst states = [\r\n {\r\n step: 0,\r\n name: ,\r\n },\r\n {\r\n step: 1,\r\n name: ,\r\n },\r\n {\r\n step: 2,\r\n name: ,\r\n },\r\n];\r\n\r\nclass GroupNewBase extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n currentStep: 0,\r\n clickedNext: false,\r\n };\r\n\r\n\r\n this.goToStep = this.goToStep.bind(this);\r\n this.goToNextStep = this.goToNextStep.bind(this);\r\n this.handleGroupSubmit = this.handleGroupSubmit.bind(this);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.reset();\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.status === groupStatus.SUCCESS && this.props.status === groupStatus.SUBMITTING && this.state.clickedNext) {\r\n this.goToStep(this.state.currentStep + 1);\r\n this.setState({\r\n clickedNext: false,\r\n });\r\n }\r\n }\r\n\r\n goToStep(step) {\r\n if (step >= 0 && step <= states.length) {\r\n this.setState({\r\n currentStep: step,\r\n });\r\n\r\n if (states[step].link) {\r\n this.props.history.push(states[step].link);\r\n }\r\n }\r\n }\r\n\r\n goToNextStep() {\r\n const nextStep = this.state.currentStep + 1;\r\n this.goToStep(nextStep);\r\n }\r\n\r\n handleGroupSubmit() {\r\n this.setState({\r\n clickedNext: true,\r\n });\r\n }\r\n\r\n handleAvailabilitySubmit(data) {\r\n if (this.props.group && this.props.group.id) {\r\n const updatedGroup = Object.assign({}, this.props.group, { availabilities: data });\r\n this.props.submitGroup(updatedGroup);\r\n }\r\n }\r\n\r\n renderGroupForm() {\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 renderVolunteers() {\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 renderConfirmation() {\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 renderPage() {\r\n return [\r\n this.renderGroupForm,\r\n this.renderConfirmation,\r\n this.renderVolunteers,\r\n ][this.state.currentStep].call(this);\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.renderPage()}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default injectIntl(GroupNewBase);\r\n","import { connect } from \"react-redux\";\r\nimport { submitGroup, reset } from \"../reducer\";\r\nimport GroupNewBase from \"./GroupNewBase\";\r\n\r\nconst mapStateToProps = (state) => {\r\n const obj = {\r\n group: state.group.group,\r\n error: state.group.error,\r\n status: state.group.status,\r\n user: state.auth.user,\r\n };\r\n\r\n return obj;\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n submitGroup: data => dispatch(submitGroup(data)),\r\n reset: () => dispatch(reset({})),\r\n});\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(GroupNewBase);\r\n","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n modal: {\r\n newVolunteers: {\r\n id: 'group.volunteer.modal.newVolunteers'\r\n },\r\n newVolunteersCreate: {\r\n\tid: 'group.volunteer.modal.newVolunteersCreate'\r\n },\r\n missingSpecialInfo: {\r\n id: 'group.volunteer.modal.missingSpecialInfo'\r\n },\r\n },\r\n attendees: {\r\n title: {\r\n id: 'group.volunteer.form.list.title'\r\n },\r\n name: {\r\n id: 'group.volunteer.form.name.placeholder',\r\n },\r\n email: {\r\n id: 'group.volunteer.form.email.placeholder',\r\n },\r\n phone: {\r\n id: 'group.volunteer.form.phone.placeholder',\r\n },\r\n age: {\r\n id: 'group.volunteer.form.age.placeholder',\r\n },\r\n notEnoughAttendee: {\r\n id: 'group.volunteer.form.notEnoughAttendee'\r\n },\r\n addButton: {\r\n id: 'group.volunteer.form.addButton'\r\n },\r\n createButton: {\r\n id: 'group.volunteer.form.createButton'\r\n },\r\n submitButton: {\r\n id: 'group.volunteer.form.submitButton'\r\n },\r\n closeButton: {\r\n id: 'group.volunteer.popUp.closeButton'\r\n },\r\n specialDiets: {\r\n title: {\r\n id: 'group.volunteer.list.special-diets.title'\r\n },\r\n lactoseFree: {\r\n id: 'group.volunteer.form.special-diets.lactose-free.placeholder',\r\n },\r\n glutenFree: {\r\n id: 'group.volunteer.form.special-diets.gluten-free.placeholder',\r\n },\r\n vegetarian: {\r\n id: 'group.volunteer.form.special-diets.vegetarian.placeholder',\r\n },\r\n vegan: {\r\n id: 'group.volunteer.form.special-diets.vegan.placeholder',\r\n },\r\n },\r\n shirtSize: {\r\n id: 'group.volunteer.form.shirt-size.placeholder',\r\n },\r\n substitute: {\r\n id: 'group.engagement.volunteer.form.substitute'\r\n },\r\n },\r\n form: {\r\n name: {\r\n id: 'engagement-proposal.form.station-name.placeholder'\r\n },\r\n date: {\r\n id: 'engagement-proposal.form.date.placeholder',\r\n },\r\n start: {\r\n id: 'engagement-proposal.form.start-time.placeholder',\r\n },\r\n end: {\r\n id: 'engagement-proposal.form.end-time.placeholder',\r\n },\r\n officialQuantity: {\r\n id: 'engagement-proposal.form.official-quantity.placeholder',\r\n },\r\n description: {\r\n id: 'engagement-proposal.form.description.placeholder',\r\n },\r\n paymentType: {\r\n id: 'engagement-proposal.form.payment-type.placeholder',\r\n },\r\n paymentAdult: {\r\n id: 'engagement-proposal.form.payment-adult.placeholder',\r\n },\r\n paymentChild: {\r\n id: 'engagement-proposal.form.payment-child.placeholder',\r\n },\r\n groupPayment: {\r\n id: 'engagement-proposal.form.group-payment.placeholder',\r\n },\r\n requiredSkills: {\r\n id: 'engagement-proposal.form.skills.placeholder'\r\n }\r\n },\r\n confirmTitle: {\r\n id: 'engagement-proposal.title',\r\n },\r\n confirmText: {\r\n id: 'engagement-proposal.info',\r\n },\r\n confirmText2: {\r\n id: 'engagement-proposal.info.2',\r\n },\r\n confirmText3: {\r\n id: 'engagement-proposal.info.3',\r\n },\r\n confirmButton: {\r\n id: 'engagement-proposal.confirm-button',\r\n },\r\n rejectButton: {\r\n id: 'engagement-proposal.reject-button',\r\n },\r\n confirmModalText: {\r\n id: 'engagement-proposal.modal-confirm-text',\r\n },\r\n confirmModalTitle: {\r\n id: 'engagement-proposal.modal-confirm.-title',\r\n },\r\n confirmModalCancelButton: {\r\n id: 'engagement-proposal.modal-confirm.cancel-button',\r\n },\r\n confirmModalRejectButton: {\r\n id: 'engagement-proposal.modal-confirm.confirm-button',\r\n },\r\n rejectModalText: {\r\n id: 'engagement-proposal.modal-reject-text',\r\n },\r\n rejectModalCancelButton: {\r\n id: 'engagement-proposal.modal-reject.cancel-button',\r\n },\r\n rejectModalRejectButton: {\r\n id: 'engagement-proposal.modal-reject.reject-button',\r\n },\r\n rejectModalTitle: {\r\n id: 'engagement-proposal.modal-reject.-title',\r\n },\r\n offerConfirmedText: {\r\n id: 'engagement-proposal.confirmed-text',\r\n },\r\n offerRejectedText: {\r\n id: 'engagement-proposal.rejected-text',\r\n }\r\n});\r\n","import React, { Component, Fragment } from \"react\";\r\nimport {FormattedMessage, injectIntl } from \"react-intl\";\r\nimport messages from \"./messages\";\r\nimport _ from \"lodash\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport { BigGreenButton, BigGrayButton } from \"../../../../components/Buttons\";\r\nimport VolunteerForm from \"../Volunteers/VolunteerForm\";\r\nimport { GeneralError, PopUpModal } from \"../../../../components\";\r\n\r\nclass GroupAttendeesForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n selected: [],\r\n createNewVoluntee: false,\r\n volunteerToEdit: {},\r\n editVolunteer: false,\r\n specialInfoPopUp: false,\r\n };\r\n this.selectRow = this.selectRow.bind(this);\r\n this.selectAll = this.selectAll.bind(this);\r\n this.goBackToList = this.goBackToList.bind(this);\r\n this.createNewVoluntee = this.createNewVoluntee.bind(this);\r\n this.submitNewAttendees = this.submitNewAttendees.bind(this);\r\n this.specialInfoPopUp = this.specialInfoPopUp.bind(this);\r\n }\r\n\r\n submitNewAttendees() {\r\n this.setState({ error: false });\r\n const { offer, update, updateOffers } = this.props;\r\n const { attendees = [] } = offer;\r\n const newAttendees = this.state[\"selected\"];\r\n\r\n if (!newAttendees.length > 0) {\r\n this.setState({ error: true });\r\n return;\r\n }\r\n\r\n const attendeesMissingSpecialInfo = [];\r\n /*if(this.props.offer.foodOptions && this.props.offer.shirtSizes){\r\n newAttendees.map((attendee) => attendee.participation ? \r\n attendee.participation.some((event) => event.eventId === this.props.offer.eventId && event.specialDiets && event.shirtSize ? \r\n true : false)? attendees.push(attendee.id) : attendeesMissingSpecialInfo.push(attendee.id):attendeesMissingSpecialInfo.push(attendee.id))\r\n }*/\r\n /*else if(this.props.offer.foodOptions){\r\n newAttendees.map((attendee) => attendee.participation ? \r\n attendee.participation.some((event) => event.eventId === this.props.offer.eventId && event.specialDiets ? \r\n true : false)? attendees.push(attendee.id) : attendeesMissingSpecialInfo.push(attendee.id):attendeesMissingSpecialInfo.push(attendee.id))\r\n }*/\r\n if(this.props.offer.shirtSizes){\r\n newAttendees.map((attendee) => attendee.participation ? \r\n attendee.participation.some((event) => event.eventId === this.props.offer.eventId && event.shirtSize ? \r\n true : false)? attendees.push(attendee.id) : attendeesMissingSpecialInfo.push(attendee.id):attendeesMissingSpecialInfo.push(attendee.id))\r\n }\r\n else{\r\n newAttendees.map((att) => attendees.push(att.id))\r\n }\r\n \r\n if(attendees.length > 0){\r\n update({\r\n eventId: offer.eventId,\r\n groupId: offer.groupId,\r\n stationId: offer.stationId,\r\n attendees: attendees,\r\n });\r\n updateOffers({\r\n eventId: offer.eventId,\r\n groupId: offer.groupId,\r\n });\r\n }\r\n this.setState({ selected: [] });\r\n\r\n if(attendeesMissingSpecialInfo.length > 0){\r\n this.setState({ specialInfoPopUp: true });\r\n }\r\n else{\r\n this.props.handleHide();\r\n }\r\n \r\n }\r\n\r\n selectRow(row) {\r\n var selected = this.state[\"selected\"];\r\n if (\r\n !selected.find(function (el) {\r\n return el.id === row.id;\r\n })\r\n ) {\r\n selected.push(row);\r\n } else {\r\n _.remove(selected, function (el) {\r\n return el.id === row.id;\r\n });\r\n }\r\n this.setState(selected);\r\n }\r\n\r\n selectAll(isSelect, rows) {\r\n var selected = [];\r\n if (isSelect) {\r\n rows.forEach((row) => selected.push(row));\r\n }\r\n this.setState({ selected: selected });\r\n }\r\n\r\n getColumns(intl) {\r\n const columns = [\r\n { dataField: \"id\", text: \"id\", hidden: true },\r\n {\r\n dataField: \"name\",\r\n text: intl.formatMessage(messages.attendees.name),\r\n sort: true,\r\n },\r\n {\r\n dataField: \"email\",\r\n text: intl.formatMessage(messages.attendees.email),\r\n sort: true,\r\n },\r\n {\r\n dataField: \"age\",\r\n text: intl.formatMessage(messages.attendees.age),\r\n sort: true,\r\n },\r\n ...(this.props.offer && this.props.offer.foodOptions\r\n ? [\r\n {\r\n dataField: \"specialDiets\",\r\n text: intl.formatMessage(messages.attendees.specialDiets.title),\r\n sort: true,\r\n },\r\n ]\r\n : []),\r\n ...(this.props.offer && this.props.offer.shirtSizes\r\n ? [\r\n {\r\n dataField: \"shirtSize\",\r\n text: intl.formatMessage(messages.attendees.shirtSize),\r\n sort: true,\r\n },\r\n ]\r\n : []),\r\n ...(this.props.offer && this.props.offer.substitute === \"active\"\r\n ? [\r\n {\r\n dataField: \"substitute\",\r\n text: intl.formatMessage(messages.attendees.substitute),\r\n sort: true,\r\n },\r\n ]\r\n : []),\r\n ];\r\n return columns;\r\n }\r\n\r\n goBackToList() {\r\n this.setState({ createNewVoluntee: false });\r\n this.setState({ volunteerToEdit: null });\r\n this.setState({ editVolunteer: false });\r\n }\r\n\r\n handleClose() {\r\n if(this.state.createNewVoluntee || this.state.editVolunteer){\r\n this.goBackToList();\r\n }\r\n else{\r\n this.props.handleHide();\r\n }\r\n }\r\n\r\n getSpecialDiets(group, intl) {\r\n if (group && group.specialDiets && group.specialDiets.length > 0) {\r\n return group.specialDiets.map((specialDiet, index) => {\r\n return index === 0\r\n ? intl.formatMessage({ id: `food.${specialDiet.toLowerCase()}` })\r\n : \", \" +\r\n intl.formatMessage({ id: `food.${specialDiet.toLowerCase()}` });\r\n });\r\n }\r\n }\r\n\r\n createNewVoluntee() {\r\n this.setState({ createNewVoluntee: true });\r\n }\r\n\r\n specialInfoPopUp(){\r\n this.setState({ specialInfoPopUp: false });\r\n this.props.handleHide();\r\n }\r\n\r\n\r\n render() {\r\n const onRowClick = {\r\n onClick: (e, row, rowIndex) => {\r\n this.setState({ volunteerToEdit: row });\r\n this.setState({ editVolunteer: true });\r\n this.setState({ createNewVoluntee: true });\r\n },\r\n };\r\n\r\n const { intl, group, offer, offers } = this.props;\r\n const nonNullOfferAttendees =\r\n offer && offer.attendees && offer.attendees.length > 0\r\n ? offer.attendees\r\n : [];\r\n\r\n const availableAttendee =\r\n group && group.volunteers && group.volunteers.length > 0\r\n ? group.volunteers.filter(\r\n (volunteer) =>\r\n !nonNullOfferAttendees.find(\r\n (attendee) => attendee === volunteer.id\r\n )\r\n )\r\n : [];\r\n \r\n const noOtherStations =\r\n offers && group && group.volunteers && group.volunteers.length > 0\r\n ? availableAttendee.filter(\r\n (vol) => !offers.some(\r\n (offer) => offer.attendees ? offer.attendees.includes(vol.id) : false\r\n ))\r\n : [];\r\n \r\n const formattedAttendee = noOtherStations.map((attendee) => {\r\n const { substitute, specialDiets, shirtSize, ...rest } = attendee;\r\n const diet = attendee.participation\r\n ? attendee.participation.map((event) =>\r\n event.eventId === this.props.offer.eventId && event.specialDiets\r\n ? this.getSpecialDiets(event, intl)\r\n : null\r\n )\r\n : null;\r\n \r\n const shirt = attendee.participation\r\n ? attendee.participation.map((event) =>\r\n event.eventId === this.props.offer.eventId && event.shirtSize\r\n ? event.shirtSize\r\n : null\r\n )\r\n : null;\r\n\r\n const sub = attendee.participation\r\n ? attendee.participation.map((event) =>\r\n event.eventId === this.props.offer.eventId && event.substitute\r\n ? event.substitute\r\n : null\r\n )\r\n : null;\r\n \r\n return { substitute: sub, specialDiets: diet, shirtSize: shirt, ...rest };\r\n });\r\n return (\r\n \r\n this.handleClose()}\r\n >\r\n }\r\n id=\"missingSpecialInfoPopUp\"\r\n bgColor=\"#e2f0f1\"\r\n show={this.state.specialInfoPopUp}\r\n handleHide={this.specialInfoPopUp}\r\n >\r\n }/>\r\n \r\n \r\n {this.state.createNewVoluntee && (\r\n {\r\n const groupToSubmit = this.props.group;\r\n groupToSubmit.volunteers = volunteersList;\r\n this.props.saveGroup(groupToSubmit);\r\n this.goBackToList()\r\n }}\r\n />\r\n )}\r\n {!this.state.createNewVoluntee && (\r\n \r\n \r\n {this.state.error && (\r\n \r\n {intl.formatMessage(messages.attendees.notEnoughAttendee)}\r\n \r\n )}\r\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 injectIntl(GroupAttendeesForm);\r\n","import React, { Component, Fragment } from \"react\";\r\nimport { injectIntl } from \"react-intl\";\r\nimport { submitGroup } from \"../reducer\";\r\nimport messages from \"./messages\";\r\nimport { connect } from \"react-redux\";\r\nimport { updateOfferAttendees, fetchGroupOffers } from \"../../Offer/reducer\";\r\nimport { DeleteButton, BigGreenButton } from \"../../../../components/Buttons\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport { H3 } from \"../../../../components\";\r\nimport GroupAttendeesForm from \"./GroupAttendeesForm\";\r\n\r\nclass GroupAttendees extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n addVolunteersPopup: false,\r\n };\r\n this.toggleAddVolunteersModal = this.toggleAddVolunteersModal.bind(this);\r\n this.deleteAttendees = this.deleteAttendees.bind(this);\r\n }\r\n\r\n getColumns(intl) {\r\n const columns = [\r\n { dataField: \"id\", text: \"id\", hidden: true },\r\n {\r\n dataField: \"name\",\r\n text: intl.formatMessage(messages.attendees.name),\r\n sort: true,\r\n },\r\n {\r\n dataField: \"email\",\r\n text: intl.formatMessage(messages.attendees.email),\r\n sort: true,\r\n },\r\n {\r\n dataField: \"phone\",\r\n text: intl.formatMessage(messages.attendees.phone),\r\n sort: true,\r\n },\r\n {\r\n dataField: \"age\",\r\n text: intl.formatMessage(messages.attendees.age),\r\n sort: true,\r\n },\r\n ...this.props.offer && this.props.offer.foodOptions ? \r\n [{\r\n dataField: \"specialDiets\",\r\n text: intl.formatMessage(messages.attendees.specialDiets.title),\r\n sort: true\r\n }]\r\n : [],\r\n ...this.props.offer && this.props.offer.shirtSizes ?\r\n [{\r\n dataField: \"shirtSize\",\r\n text: intl.formatMessage(messages.attendees.shirtSize),\r\n sort: true\r\n }]\r\n : [], \r\n ...this.props.offer && this.props.offer.substitute === \"active\" ?\r\n [{\r\n dataField: \"substitute\",\r\n text: intl.formatMessage(messages.attendees.substitute),\r\n sort: true\r\n }]\r\n : [],\r\n {\r\n dataField: \"button\",\r\n text: \"\",\r\n classes: \"hidden-column\",\r\n headerStyle: { backgroundColor: \"#e2f0f1\", borderWidth: 0 },\r\n },\r\n ];\r\n return columns;\r\n }\r\n\r\n toggleAddVolunteersModal() {\r\n this.setState({ addVolunteersPopup: !this.state.addVolunteersPopup });\r\n }\r\n\r\n getSpecialDiets(group, intl) {\r\n if (group && group.specialDiets && group.specialDiets.length > 0) {\r\n return group.specialDiets.map((specialDiet, index) => {\r\n return index === 0\r\n ? intl.formatMessage({ id: `food.${specialDiet.toLowerCase()}` })\r\n : \", \" +\r\n intl.formatMessage({\r\n id: `food.${specialDiet.toLowerCase()}`,\r\n });\r\n });\r\n }\r\n }\r\n\r\n deleteAttendees({ id }) {\r\n const { updateOfferAttendees, fetchGroupOffers, offer } = this.props;\r\n const newAttendees = offer.attendees.filter((attendee) => attendee !== id);\r\n\r\n updateOfferAttendees({\r\n eventId: offer.eventId,\r\n groupId: offer.groupId,\r\n stationId: offer.stationId,\r\n attendees: newAttendees,\r\n });\r\n\r\n fetchGroupOffers({\r\n eventId: offer.eventId,\r\n groupId: offer.groupId,\r\n });\r\n }\r\n\r\n render() {\r\n const { offer, offers, group, intl } = this.props;\r\n const currentAttendees = (\r\n offer &&\r\n offer.attendees &&\r\n offer.attendees.length > 0 &&\r\n group &&\r\n group.volunteers &&\r\n group.volunteers.length > 0\r\n ? offer.attendees.map((id) => {\r\n const volunteer = group.volunteers.find(\r\n (volunteer) => volunteer.id === id\r\n );\r\n if(volunteer){\r\n const diet = volunteer.participation ? volunteer.participation.map((event) => event.eventId === this.props.offer.eventId && event.specialDiets ? this.getSpecialDiets(event, intl) : null) : null\r\n const shirt = volunteer.participation ? volunteer.participation.map((event) => event.eventId === this.props.offer.eventId && event.shirtSize ? event.shirtSize : null) : null\r\n const substitute = volunteer.participation ? volunteer.participation.map((event) => event.eventId === this.props.offer.eventId && event.substitute ? event.substitute : null) : null\r\n return {\r\n id: volunteer.id,\r\n name: volunteer.name,\r\n email: volunteer.email,\r\n phone: volunteer.phone,\r\n age: volunteer.age,\r\n specialDiets: diet,\r\n shirtSize: shirt,\r\n substitute: substitute,\r\n\r\n button: (\r\n this.deleteAttendees({ id: volunteer.id })}\r\n />\r\n ), // TODO\r\n };\r\n } else {\r\n this.deleteAttendees({ id });\r\n return undefined;\r\n }\r\n })\r\n : []\r\n ).filter((exist) => exist);\r\n\r\n return (\r\n \r\n

    {intl.formatMessage(messages.attendees.title)}

    {/* //TODO */}\r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state, ownProps) => ({\r\n ...ownProps,\r\n initialValues: state.offers.groupOffer,\r\n groupOffer: state.offers.groupOffer,\r\n group: state.group.group,\r\n groupOfferError: state.offers.groupOfferError,\r\n groupOfferAcceptError: state.offers.groupOfferAcceptError,\r\n groupOfferRejectError: state.offers.groupOfferRejectError,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n updateOfferAttendees: (data) => dispatch(updateOfferAttendees(data)),\r\n submitGroup: (data) => dispatch(submitGroup(data)),\r\n fetchGroupOffers: (data) => dispatch(fetchGroupOffers(data)),\r\n});\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(injectIntl(GroupAttendees));\r\n","import React, { Component, Fragment } from \"react\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport { Field, reduxForm } from \"redux-form\";\r\nimport messages from \"./messages\";\r\nimport { GeneralError } from \"../../../../components/index\";\r\nimport styled from \"styled-components\";\r\nimport { breakPoints } from \"../../../../constants/styling-constants\";\r\n\r\n\r\n\r\nimport {\r\n P,\r\n FormGroup,\r\n Input,\r\n TextSection,\r\n ContentWrapper,\r\n H2,\r\n Container,\r\n DatePicker,\r\n TextArea,\r\n ConfirmationModal,\r\n TextLabel\r\n} from \"../../../../components\";\r\nimport { BigGreenButton, BigGrayButton } from \"../../../../components/Buttons\";\r\nimport GroupAttendees from \"./GroupAttendees\";\r\nimport MapsComponent, { formatCoordinates } from '../../../../components/Map'\r\n\r\nconst MapsWrapper = styled.div`\r\n height: 500px;\r\n width: 600px;\r\n @media (max-width: ${breakPoints.sm}px) {\r\n width: 350px;\r\n height: 275px;\r\n }\r\n`;\r\n\r\nclass GroupEngagement extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n showConfirmModal: false,\r\n showRejectModal: false,\r\n confirming: false,\r\n rejecting: false\r\n };\r\n\r\n this.toggleConfirmModal = this.toggleConfirmModal.bind(this);\r\n this.toggleRejectModal = this.toggleRejectModal.bind(this);\r\n this.onConfirmOffer = this.onConfirmOffer.bind(this);\r\n this.onRejectOffer = this.onRejectOffer.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.props.fetchGroup({ id: this.props.match.params.groupId });\r\n this.props.fetchGroupOffers({\r\n\tgroupId: this.props.match.params.groupId,\r\n eventId: this.props.match.params.eventId,\r\n });\r\n this.props.fetchGroupOffer({\r\n eventId: this.props.match.params.eventId,\r\n\tstationId: this.props.match.params.stationId,\r\n\tgroupId: this.props.match.params.groupId,\r\n });\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetGroupOfferError();\r\n this.props.resetGroup();\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n // Handle accept error\r\n if (!this.props.groupOfferAcceptError && nextProps.groupOfferAcceptError) {\r\n this.setState({\r\n showConfirmModal: false,\r\n confirming: false\r\n });\r\n }\r\n\r\n // Handle reject error\r\n if (!this.props.groupOfferRejectError && nextProps.groupOfferRejectError) {\r\n this.setState({\r\n showRejectModal: false,\r\n rejecting: false\r\n });\r\n }\r\n if (\r\n this.props.groupOffer &&\r\n this.props.groupOffer.status !== nextProps.groupOffer.status\r\n ) {\r\n this.setState({\r\n showRejectModal: false,\r\n rejecting: false,\r\n showConfirmModal: false,\r\n confirming: false\r\n });\r\n }\r\n }\r\n\r\n toggleConfirmModal() {\r\n this.setState({\r\n showConfirmModal: !this.state.showConfirmModal\r\n });\r\n }\r\n\r\n onConfirmOffer() {\r\n this.setState({\r\n confirming: true\r\n });\r\n\r\n this.props.acceptStationOffer({\r\n eventId: this.props.match.params.eventId,\r\n groupId: this.props.match.params.groupId,\r\n stationId: this.props.match.params.stationId\r\n });\r\n }\r\n\r\n toggleRejectModal() {\r\n this.setState({\r\n showRejectModal: !this.state.showRejectModal\r\n });\r\n }\r\n\r\n onRejectOffer() {\r\n this.setState({\r\n rejecting: true\r\n });\r\n\r\n this.props.rejectStationOffer({\r\n eventId: this.props.match.params.eventId,\r\n groupId: this.props.match.params.groupId,\r\n stationId: this.props.match.params.stationId\r\n });\r\n }\r\n\r\n renderAcceptError() {\r\n if (this.props.groupOfferAcceptError) {\r\n return (\r\n {this.props.groupOfferAcceptError.message}\r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n renderRejectError() {\r\n if (this.props.groupOfferRejectError) {\r\n return (\r\n {this.props.groupOfferRejectError.message}\r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n renderStatusBasedContent(status) {\r\n switch (status) {\r\n case \"REJECTED\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"ACCEPTED\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"PROPOSAL\":\r\n default:\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n }\r\n\r\n\r\n renderContent() {\r\n const confirmText2 = this.props.intl.formatMessage(messages.confirmText2) === 'engagement-proposal.info.2' ? null : ;\r\n const confirmText3 = this.props.intl.formatMessage(messages.confirmText3) === 'engagement-proposal.info.3' ? null : ;\r\n\r\n if (this.props.groupOfferError) {\r\n return {this.props.groupOfferError.message};\r\n }\r\n if (!this.props.groupOffer) {\r\n return ;\r\n }\r\n return (\r\n \r\n

    \r\n \r\n

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.props.initialValues.station.markerLocation ? this.props.initialValues.station.markerLocation : \"\" } {/*TODO: messages.js */}\r\n \r\n \r\n {this.props.initialValues.station.markerCoordinates ? formatCoordinates(this.props.initialValues.station.markerCoordinates) : \"\" }\r\n \r\n {this.props.initialValues.station.markerCoordinates &&\r\n \r\n \r\n \r\n }\r\n
    \r\n \r\n {this.props.groupOffer.station.skills ? \r\n this.props.intl.formatMessage({ id: `lists.skills.${skill}` })).join(\", \")}\r\n type=\"text\"\r\n placeholder={this.props.intl.formatMessage(\r\n messages.form.requiredSkills\r\n )}\r\n component={Input}\r\n readonly\r\n >\r\n \r\n : null }\r\n \r\n
    \r\n {this.props.groupOffer.station.paymentType !== \"NOCOMPENSATION\" && (\r\n \r\n )}\r\n {this.props.groupOffer.station.paymentType === \"GROUPPAYMENT\" && (\r\n \r\n )}\r\n {(this.props.groupOffer.station.paymentType === \"PERPERSON\" ||\r\n this.props.groupOffer.station.paymentType === \"HOURLYRATE\") && (\r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n

    \r\n \r\n

    \r\n

    \r\n {confirmText2}\r\n

    \r\n

    \r\n {confirmText3}\r\n

    \r\n
    \r\n \r\n
    \r\n \r\n \r\n {this.renderAcceptError()}\r\n {this.renderRejectError()}\r\n {this.renderStatusBasedContent(this.props.groupOffer.status)}\r\n \r\n \r\n
    \r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n {this.renderContent()}\r\n {/* this.props.updateOfferAttendees(\r\n {eventId: this.props.groupOffer.eventId, \r\n groupId: this.props.groupOffer.groupId,\r\n stationId: this.props.groupOffer.stationId,\r\n attendees: [5069]})}\r\n label={this.props.intl.formatMessage(messages.rejectButton)}\r\n /> */}\r\n {this.props.groupOffer &&\r\n this.props.groupOffer.status === \"ACCEPTED\" && (\r\n \r\n )}\r\n\r\n \r\n }\r\n busy={this.state.confirming}\r\n />\r\n \r\n }\r\n busy={this.state.rejecting}\r\n />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst GroupEngagementWithForm = reduxForm({\r\n enableReinitialize: true,\r\n form: \"group-confirm\"\r\n})(GroupEngagement);\r\n\r\nexport default injectIntl(GroupEngagementWithForm);\r\n","import { connect } from \"react-redux\";\r\nimport GroupEngagement from \"./GroupEngagement\";\r\nimport { fetchGroupOffer, fetchGroupOffers, acceptStationOffer, rejectStationOffer, resetGroupOfferError, updateOfferAttendees } from \"../../Offer/reducer\";\r\nimport { fetchGroup, reset } from \"../reducer\";\r\n\r\nconst mapStateToProps = (state, ownProps) => ({\r\n ...ownProps,\r\n initialValues: state.offers.groupOffer,\r\n groupOffer: state.offers.groupOffer,\r\n groupOffers: state.offers.groupOffers,\r\n group: state.group.group,\r\n groupOfferError: state.offers.groupOfferError,\r\n groupOfferAcceptError: state.offers.groupOfferAcceptError,\r\n groupOfferRejectError: state.offers.groupOfferRejectError,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n fetchGroupOffer: data => dispatch(fetchGroupOffer(data)),\r\n fetchGroupOffers: data => dispatch(fetchGroupOffers(data)),\r\n fetchGroup: data => dispatch(fetchGroup(data)),\r\n acceptStationOffer: data => dispatch(acceptStationOffer(data)),\r\n rejectStationOffer: data => dispatch(rejectStationOffer(data)),\r\n updateOfferAttendees: data => dispatch(updateOfferAttendees(data)),\r\n resetGroupOfferError: data => dispatch(resetGroupOfferError(data)),\r\n resetGroup: () => dispatch(reset())\r\n});\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(GroupEngagement);\r\n\r\n","import React from 'react';\r\nimport {\r\n Switch,\r\n Route\r\n} from 'react-router-dom';\r\nimport VolunteerContextStart from './VolunteerContextStart';\r\nimport GroupBase from './GroupBase';\r\nimport GroupNewBase from './GroupNewBase';\r\n\r\nimport styled from 'styled-components';\r\nimport { colors } from '../../../constants/styling-constants';\r\nimport GroupEngagement from './GroupEngagement';\r\n\r\nconst Wrapper = styled.div`\r\n background-color: ${colors.lightGreen};\r\n flex: 1;\r\n`;\r\n\r\nconst VolunteerRouter = ({ match }) => {\r\n localStorage.setItem('homePath', 'volunteers');\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\nexport default VolunteerRouter;\r\n","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n title: {\r\n id: 'team-leader-start.title',\r\n },\r\n text: {\r\n id: 'team-leader-start.text',\r\n },\r\n\r\n list: {\r\n title: {\r\n id: 'team-leader.list.title',\r\n },\r\n showButton: {\r\n id: 'team-leader.list.show-button',\r\n },\r\n confirmed: {\r\n id: 'team-leader.list.confirmed',\r\n },\r\n draft: {\r\n id: 'team-leader.list.draft',\r\n },\r\n noEvents: {\r\n id: 'team-leader.list.no-events',\r\n },\r\n },\r\n});\r\n","import React, { Component } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { H2, WhiteTableWithLastToRight, WhiteTable, TableStatus, TableRowWithClick, P, TableRow } from \"../../../../components/index\";\r\nimport { TableButton, ToggleButton } from \"../../../../components/Buttons/index\";\r\nimport { breakPoints } from \"../../../../constants/styling-constants\";\r\nimport messages from \"../messages\";\r\nimport eventMessages from \"../../Event/messages\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\n\r\nconst Wrapper = styled.div`\r\n margin-top: 90px;\r\n margin-bottom: 85px;\r\n`;\r\n\r\nconst Table = styled(WhiteTable)`\r\n @media (max-width: ${breakPoints.sm}px) {\r\n .table-button-col {\r\n display: none;\r\n }\r\n }\r\n`;\r\n\r\nconst TableRowHeader = TableRow.extend`\r\n th {\r\n background: transparent;\r\n font-weight: bold;\r\n }\r\n`;\r\n\r\nclass TeamLeaderList extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.renderRow = this.renderRow.bind(this);\r\n this.handleRowClick = this.handleRowClick.bind(this);\r\n this.togglePreviousEvents = this.togglePreviousEvents.bind(this);\r\n\r\n this.state = {\r\n sortField: \"date\",\r\n sortDirection: -1,\r\n pastEvents: false\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.props.fetchTeamleaderEvents();\r\n }\r\n\r\n handleRowClick(row) {\r\n this.props.history.push(`/my-pages/teamleaders/${row.id}`);\r\n }\r\n\r\n getDate(date) {\r\n return date.getFullYear() + \"-\" + (date.getMonth()<9 ? \"0\" : \"\") + (date.getMonth()+1) + \"-\" + (date.getDate() <10 ? \"0\" : \"\") + date.getDate();\r\n }\r\n\r\n togglePreviousEvents() {\r\n this.setState({pastEvents: !this.state.pastEvents})\r\n }\r\n\r\n renderStatus(status) {\r\n switch (status) {\r\n case \"CONFIRMED\":\r\n return ();\r\n case \"HISTORIC\":\r\n return ();\r\n case \"DRAFT\":\r\n default:\r\n return ();\r\n }\r\n }\r\n\r\n renderTableHeader() {\r\n return (\r\n \r\n this.state.sortField === \"name\" ? this.setState({sortDirection:this.state.sortDirection*-1}) : this.setState({sortField:\"name\"})}>\r\n this.state.sortField === \"date\" ? this.setState({sortDirection:this.state.sortDirection*-1}) : this.setState({sortField:\"date\"})}>\r\n this.state.sortField === \"status\" ? this.setState({sortDirection:this.state.sortDirection*-1}) : this.setState({sortField:\"status\"})}>\r\n \r\n \r\n )\r\n }\r\n\r\n renderRow(row) {\r\n return (\r\n \r\n {row.name}\r\n {row.date ? this.getDate(new Date(row.date)) : \"\"}\r\n {this.renderStatus(row.status)}\r\n \r\n \r\n );\r\n }\r\n\r\n renderTable(events, past=false) {\r\n if(events.length === 0) {\r\n // User has no events, show no events message\r\n return (\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 {this.renderTableHeader()}\r\n {events.sort((a,b) => a[this.state.sortField] ? -1 : 1).sort((a, b) => a && b && a[this.state.sortField] && b[this.state.sortField] ? this.state.sortDirection * a[this.state.sortField].localeCompare(b[this.state.sortField]) : 0).map(e => this.renderRow(e, past))}\r\n \r\n
    \r\n );\r\n }\r\n\r\n render() {\r\n \r\n const eventList = this.props.eventsSummaries ? this.props.eventsSummaries.filter(event => !event.date ? false : new Date(event.date) > new Date().setDate(new Date().getDate() - 7)) : null;\r\n const pastList = this.props.eventsSummaries ? this.props.eventsSummaries.filter(event => !eventList.some(e => e.id === event.id)) : null;\r\n\r\n return (\r\n \r\n

    \r\n {(this.props.eventsSummaries) ? this.renderTable(eventList) : }\r\n {(this.props.eventsSummaries) ? : \"\"}\r\n {(pastList && this.state.pastEvents) ? this.renderTable(pastList, true) : \"\"}\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default injectIntl(TeamLeaderList);\r\n","\r\nexport const TEAMLEADER_EVENTS_FETCH = 'TEAMLEADER_EVENTS_FETCH';\r\nexport const TEAMLEADER_EVENTS_SUCCESS = 'TEAMLEADER_EVENTS_SUCCESS';\r\nexport const TEAMLEADER_EVENTS_FAILED = 'TEAMLEADER_EVENTS_FAILED';\r\nexport const TEAMLEADER_EVENT_FETCH = 'TEAMLEADER_EVENT_FETCH';\r\nexport const TEAMLEADER_EVENT_SUCCESS = 'TEAMLEADER_EVENT_SUCCESS';\r\nexport const TEAMLEADER_EVENT_FAILED = 'TEAMLEADER_EVENT_FAILED';\r\nexport const TEAMLEADER_RESET = 'TEAMLEADER_RESET';\r\n\r\nexport const status = {\r\n INIT: 'INIT',\r\n FETCHING: 'FETCHING',\r\n FETCHED: 'FETCHED',\r\n FAILED: 'FAILED',\r\n};\r\n\r\nexport function fetchTeamleaderEvents () {\r\n return {\r\n type: TEAMLEADER_EVENTS_FETCH,\r\n };\r\n}\r\n\r\nexport function fetchTeamleaderEvent (data) {\r\n return {\r\n type: TEAMLEADER_EVENT_FETCH,\r\n payload: data\r\n };\r\n}\r\n\r\nexport function reset () {\r\n return {\r\n type: TEAMLEADER_RESET,\r\n };\r\n}\r\n\r\nconst initialState = {\r\n status: status.INIT,\r\n error: null,\r\n event: null,\r\n eventsSummaries: null,\r\n};\r\n\r\nexport default function teamleader(state = initialState, action) {\r\n if (!action) {\r\n return state;\r\n }\r\n\r\n switch (action.type) {\r\n case TEAMLEADER_EVENT_SUCCESS:\r\n return Object.assign({}, state, {event: action.payload, status: status.FETCHED});\r\n case TEAMLEADER_EVENT_FAILED:\r\n return Object.assign({}, state, {error: action.payload, status: status.FAILED});\r\n case TEAMLEADER_EVENT_FETCH:\r\n case TEAMLEADER_EVENTS_FETCH:\r\n return Object.assign({}, state, {status: status.FETCHING});\r\n case TEAMLEADER_EVENTS_SUCCESS:\r\n return Object.assign({}, state, {eventsSummaries: action.payload});\r\n case TEAMLEADER_EVENTS_FAILED:\r\n return Object.assign({}, state, {eventsSummaries: []});\r\n case TEAMLEADER_RESET:\r\n return initialState;\r\n default:\r\n return state;\r\n }\r\n}","import { connect } from \"react-redux\";\r\nimport TeamLeaderList from \"./TeamLeaderList\";\r\nimport { withRouter } from \"react-router\";\r\nimport { fetchTeamleaderEvents } from \"../reducer\";\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n fetchTeamleaderEvents: () => dispatch(fetchTeamleaderEvents()),\r\n});\r\n\r\nconst mapStateToProps = (state) => ({\r\n eventsSummaries: state.teamleader.eventsSummaries,\r\n});\r\n\r\nexport default withRouter(connect(\r\n mapStateToProps,\r\n mapDispatchToProps)(TeamLeaderList));\r\n","import React, { Component } from \"react\";\r\nimport { ContentWrapper, Container, H1, P } from \"../../../components/index\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport TopNavigation from \"../TopNavigation\";\r\nimport TeamLeaderList from \"./List\";\r\nimport messages from \"./messages\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\nclass TeamLeaderStart 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\nexport default TeamLeaderStart;\r\n","import { connect } from \"react-redux\";\r\nimport EventBase from \"../../Event/Base/EventBase\";\r\nimport { withRouter } from \"react-router\";\r\nimport { fetchTeamleaderEvent, reset } from \"../reducer\";\r\n\r\nconst mapStateToProps = (state) => ({\r\n event: state.teamleader.event,\r\n error: state.teamleader.error,\r\n status: state.teamleader.status,\r\n isTeamleaderView: true,\r\n});\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n fetchEvent: data => dispatch(fetchTeamleaderEvent(data)),\r\n reset: () => dispatch(reset({})),\r\n});\r\n\r\nexport default withRouter(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(EventBase));\r\n","import React from 'react';\r\nimport {\r\n Switch,\r\n Route\r\n} from 'react-router-dom';\r\nimport TeamLeaderStart from './TeamLeaderStart';\r\nimport TeamLeaderEvent from './Event';\r\nimport styled from 'styled-components';\r\nimport { colors } from '../../../constants/styling-constants';\r\n\r\nconst Wrapper = styled.div`\r\n flex: 1;\r\n background-color: ${colors.lightPink};\r\n`;\r\n\r\nconst TeamLeaderRouter = ({ match }) => {\r\n localStorage.setItem('homePath', 'teamleaders');\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default TeamLeaderRouter;\r\n","import React from 'react';\r\nimport {\r\n Switch,\r\n Route,\r\n Redirect\r\n} from 'react-router-dom';\r\nimport styled from 'styled-components';\r\nimport EventRouter from './Event/EventRouter';\r\nimport VolunteerContextRouter from './VolunteerContext/VolunteerContextRouter';\r\nimport TeamLeaderRouter from './TeamLeader/TeamLeaderRouter';\r\n//import Toolbar from '../../components/Toolbar';\r\n\r\nconst Wrapper = styled.div`\r\n position: relative;\r\n display: flex;\r\n flex: 1;\r\n`;\r\n\r\nconst MyPagesRouter = ({ match }) => {\r\n const defaultLocation = localStorage.getItem('homePath') || 'volunteers';\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 MyPagesRouter;\r\n","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n link: {\r\n about: {\r\n id: 'footer.about-link',\r\n },\r\n faq: {\r\n id: 'footer.faq-link',\r\n },\r\n terms: {\r\n id: 'footer.terms-link',\r\n },\r\n personalData: {\r\n id: 'footer.personal-data-link',\r\n },\r\n contact: {\r\n id: 'footer.contact-link',\r\n },\r\n },\r\n copyRight: {\r\n id: 'footer.copy-right-text',\r\n },\r\n});\r\n","import React from 'react';\r\nimport styled from 'styled-components';\r\nimport { colors } from '../../constants/styling-constants';\r\nimport { Row, Col } from 'react-bootstrap/lib';\r\nimport { Container, FlexSpaceBetween, GrayLogo } from '../';\r\nimport { NavLink } from 'react-router-dom';\r\nimport { breakPoints } from '../../constants/styling-constants';\r\nimport messages from './messages';\r\nimport { FormattedMessage, injectIntl } from 'react-intl';\r\n\r\nconst Wrapper = styled.footer`\r\n background-color: ${colors.gray};\r\n padding: 40px 0 30px;\r\n flex-shrink: 0;\r\n`;\r\n\r\nconst MenuList = styled.ul`\r\n list-style: none;\r\n`;\r\n\r\nconst MenuItem = styled.li`\r\n display: inline-block;\r\n margin-right: 45px;\r\n @media (max-width: ${breakPoints.md}px) {\r\n margin-right: 25px;\r\n }\r\n @media (max-width: ${breakPoints.sm}px) {\r\n display: block;\r\n margin-top: 10px;\r\n }\r\n`;\r\n\r\nconst StyledLink = styled(NavLink)`\r\n font-size: 16px;\r\n color: ${colors.lightGray};\r\n text-transform: uppercase;\r\n &.active {\r\n color: ${colors.lightGray}\r\n }\r\n &:hover {\r\n text-decoration: none;\r\n color: ${colors.lightGray};\r\n }\r\n`;\r\n\r\nconst CopyRight = styled.p`\r\n color: ${colors.mediumLightGray};\r\n font-size: 13px;\r\n margin-top: 40px;\r\n`;\r\n\r\nconst SocialIcon = styled.i`\r\n font-size: 1.5em;\r\n color: white;\r\n`;\r\n\r\nconst IconLink = styled.a`\r\n &:not(:last-child) {\r\n margin-right: 35px;\r\n }\r\n &:last-child {\r\n margin-right: 12px;\r\n }\r\n`;\r\n\r\nconst FloatedDiv = styled.div`\r\n @media (min-width: ${breakPoints.sm}px) {\r\n float: right;\r\n }\r\n margin-top: 30px;\r\n`;\r\n\r\nconst FooterMenu = () => (\r\n \r\n);\r\n\r\nconst Footer = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\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 injectIntl(Footer);\r\n","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n title: {\r\n id: 'cookies.title',\r\n },\r\n text: {\r\n id: 'cookies.text',\r\n },\r\n button: {\r\n id: 'cookies.agree-button',\r\n },\r\n});","import React, { Fragment, Component } from \"react\";\r\nimport { FormattedMessage, injectIntl } from \"react-intl\";\r\nimport messages from \"./messages\";\r\nimport styled from \"styled-components\";\r\nimport { colors } from \"../../constants/styling-constants\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport { Container, P, H2 } from \"../\";\r\nimport { SmallGreenButton } from \"../Buttons\";\r\n\r\nlet cookiesAgreed = localStorage.getItem(\"cookiesAgreed\");\r\ncookiesAgreed = JSON.parse(cookiesAgreed);\r\n\r\nconst Wrapper = styled.div`\r\n background-color: ${colors.lightGreen};\r\n position: fixed;\r\n width: 100%;\r\n bottom: 0;\r\n z-index: 9999;\r\n`;\r\n\r\nconst StyledTitle = styled(H2)`\r\n padding: 23px 0 0 0;\r\n margin-bottom: 10px;\r\n`;\r\n\r\nconst StyledButton = styled(SmallGreenButton)`\r\n margin: 0 0 20px 0;\r\n \r\n`;\r\n\r\nclass CookiesMessage extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n cookiesAgreed: false,\r\n };\r\n\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n }\r\n\r\n componentWillMount() {\r\n if (cookiesAgreed) {\r\n this.setState({\r\n cookiesAgreed: true,\r\n });\r\n }\r\n }\r\n\r\n handleSubmit() {\r\n localStorage.setItem(\"cookiesAgreed\", true);\r\n this.setState({\r\n cookiesAgreed: true,\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {!this.state.cookiesAgreed\r\n ? (\r\n \r\n \r\n \r\n \r\n

    \r\n \r\n \r\n
    \r\n
    \r\n
    )\r\n : null\r\n }\r\n
    \r\n );\r\n }\r\n\r\n}\r\n\r\nexport default injectIntl(CookiesMessage);\r\n","import { defineMessages } from \"react-intl\";\r\n\r\nexport default defineMessages({\r\n title: {\r\n id: 'self-registration.title'\r\n },\r\n info: {\r\n eventName:{\r\n id: 'self-registration.info.event-name'\r\n },\r\n foodOptionsTitle: {\r\n id: 'self-registration.info.food-options-title'\r\n },\r\n shirtSizesTitle: {\r\n id: 'self-registration.info.shirt-sizes-title'\r\n },\r\n },\r\n form: {\r\n submitButton: {\r\n id: 'self-registration.form.submit-button'\r\n },\r\n age: {\r\n id: 'self-registration.form.age'\r\n },\r\n phone: {\r\n id: 'self-registration.form.phone'\r\n },\r\n email: {\r\n id: 'self-registration.form.email'\r\n },\r\n name: {\r\n id: 'self-registration.form.name'\r\n },\r\n emailAlreadyExistError: {\r\n id: 'self-registration.form.email-already-exists-error'\r\n },\r\n substituteTitle: {\r\n id: 'self-registration.form.substitute-title'\r\n },\r\n substituteOption: {\r\n id: 'self-registration.form.substitute-option'\r\n },\r\n substituteField: {\r\n id: 'self-registration.form.substitute.placeholder'\r\n }\r\n },\r\n confirmationModal: {\r\n confirmButton: {\r\n id: 'self-registration.confirmation-modal.confirm-button'\r\n },\r\n cancelButton: {\r\n id: 'self-registration.confirmation-modal.cancel-button'\r\n },\r\n text: {\r\n id: 'self-registration.confirmation-modal.text'\r\n },\r\n title: {\r\n id: 'self-registration.confirmation-modal.title'\r\n }\r\n }\r\n\r\n\r\n})","import React, { useState, useEffect } from \"react\";\r\nimport { injectIntl, FormattedMessage } from \"react-intl\";\r\nimport { Field, reduxForm } from \"redux-form\";\r\nimport {\r\n required,\r\n email as emailValidator,\r\n integer,\r\n onlyNumbers,\r\n positiveNumbers,\r\n} from \"../../validators/index\";\r\nimport messages from \"./messages\";\r\nimport messagesVol from \"../MyPages/VolunteerContext/Volunteers/messages\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport {\r\n Input,\r\n FormSectionTitle,\r\n FormGroup,\r\n ListSelect,\r\n Select,\r\n GeneralError,\r\n P,\r\n H4,\r\n Checkbox,\r\n} from \"../../components\";\r\nimport { BigGreenButton } from \"../../components/Buttons/index\";\r\nimport { colors } from \"../../constants/styling-constants\";\r\nimport { ContentWrapper, Container, ConfirmationModal } from \"../../components\";\r\nimport styled from \"styled-components\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\nimport moment from \"moment\";\r\n\r\nconst Wrapper = styled.div`\r\n flex: 1;\r\n background-color: ${colors.lightGreen};\r\n width: 100%;\r\n`;\r\n\r\nconst SelfRegistrationForm = (props) => {\r\n const [showModal, setShowModal] = useState(false);\r\n const [data, setData] = useState({});\r\n const [showSuccess, setShowSuccess] = useState(false);\r\n const [busy, setBusy] = useState(false);\r\n const [substituteCheckbox, setSubstituteCheckbox] = useState(false);\r\n\r\n const handleConfirm = () => {\r\n setShowModal(false);\r\n return props.onSubmit(data);\r\n };\r\n\r\n const toggleModal = (e) => {\r\n e && e.preventDefault();\r\n setShowModal(!showModal);\r\n };\r\n\r\n const handleSubmit = (values) => {\r\n const id = uuidv4();\r\n const participation = []\r\n const participate = {eventId: props.event.eventId}\r\n\r\n\r\n if(values.shirtSize || values.specialDiets || values.substitute){\r\n if(!values.shirtSize){\r\n participate.specialDiets = values.specialDiets\r\n }\r\n else if(!values.specialDiets){\r\n participate.shirtSize = values.shirtSize\r\n }\r\n else{\r\n participate.specialDiets = values.specialDiets\r\n participate.shirtSize = values.shirtSize\r\n }\r\n\r\n if(values.substitute){\r\n participate.substitute = values.substitute\r\n }\r\n\r\n participation.push(participate)\r\n }\r\n \r\n const data = {\r\n volunteer: { ...values, id, participation },\r\n link: props.match.params.hash,\r\n };\r\n setShowModal(true);\r\n setData(data);\r\n };\r\n\r\n useEffect(() => {\r\n if (props.status === \"SUBMITTING\") setBusy(true);\r\n else setBusy(false);\r\n if (props.status === \"SUCCESS\") {\r\n setShowSuccess(true);\r\n setSubstituteCheckbox(false);\r\n props.reset();\r\n } else setShowSuccess(false);\r\n }, [props.status]);\r\n\r\n useEffect(() => {\r\n const eventId = props.match.params.eventId\r\n ? props.match.params.eventId\r\n : null;\r\n if (props.fetchStatus === \"NOT_FETCHING\" && eventId) {\r\n props.fetchEvent(eventId);\r\n }\r\n }, [props.fetchStatus, props.eventId]);\r\n\r\n const styleRow =\r\n typeof props.goBackToList === \"function\"\r\n ? { display: \"flex\", justifyContent: \"center\" }\r\n : {};\r\n\r\n const time = props.event\r\n ? moment(props.event.date).format(\"YYYY-MM-DD \")\r\n : \"\";\r\n\r\n const withLoadedProps = (LoadedComponent, loadedProps) => (props) =>\r\n ;\r\n\r\n const includedSpecialDietsTranslated =\r\n props.event && props.event.foodOptions\r\n ? props.event.foodOptions.map((opt) => ({\r\n id: opt,\r\n label: props.intl.formatMessage({\r\n id: `food.${opt.toLowerCase()}`,\r\n }),\r\n }))\r\n : null;\r\n const includedShirtSizesTranslated =\r\n props.event && props.event.shirtSizes\r\n ? props.event.shirtSizes.map((opt) => ({\r\n id: opt,\r\n label: props.intl.formatMessage({\r\n id: `shirt-size.${opt.toLowerCase()}`,\r\n }),\r\n }))\r\n : null;\r\n\r\n return (\r\n \r\n \r\n \r\n handleSubmit(values))}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n

    {props.match.params.groupName}

    \r\n

    {props.event ? props.event.name : \"\"}

    \r\n

    {time}

    \r\n \r\n \r\n \r\n \r\n {props.event && props.event.substitute ?\r\n
    \r\n

    \r\n setSubstituteCheckbox(!substituteCheckbox)}\r\n label={\" \" + props.intl.formatMessage(messages.form.substituteOption)}\r\n checked={substituteCheckbox}\r\n />\r\n
    \r\n : null}\r\n {substituteCheckbox ?\r\n
    \r\n

    \r\n \r\n
    \r\n : null\r\n }\r\n
    \r\n {props.event ? (\r\n props.event.foodOptions || props.event.shirtSizes ? (\r\n \r\n \r\n \r\n \r\n {props.event.foodOptions ? (\r\n <>\r\n

    \r\n \r\n \r\n ) : null}\r\n {props.event.shirtSizes ? (\r\n <>\r\n

    \r\n \r\n \r\n ) : null}\r\n
    \r\n ) : null\r\n ) : null}\r\n \r\n {props.formError ? (\r\n \r\n \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n
    \r\n \r\n {showSuccess ?

    Tack för din anmälan!

    : null}\r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default reduxForm({\r\n form: \"SelfRegistration\",\r\n})(injectIntl(SelfRegistrationForm));\r\n","export const VOLUNTEER_SUBMIT = 'VOLUNTEER SUBMIT';\r\nexport const VOLUNTEER_SUCCESS = 'VOLUNTEER SUCCESS';\r\nexport const VOLUNTEER_FAILED = 'VOLUNTEER FAILED';\r\nexport const FETCH_FAILED = 'EVENT FETCH FAILED';\r\nexport const FETCHING = 'FETCHING EVENT'\r\nexport const FETCH_SUCCESS = 'EVENT FETCH SUCCESS'\r\n\r\nexport const status = {\r\n NOT_SUBMITTED: 'NOT_SUBMITTED',\r\n SUBMITTING: 'SUBMITTING',\r\n SUCCESS: 'SUCCESS',\r\n FAILED: 'FAILED',\r\n};\r\n\r\nexport const fetchStatus = {\r\n NOT_FETCHING: 'NOT_FETCHING',\r\n FETCHING: 'FETCHING',\r\n FETCH_SUCCESS: 'FETCH_SUCCESS',\r\n FETCH_FAILED: 'FETCH_FAILED',\r\n};\r\n\r\nexport function submitVolunteer(data) {\r\n return {\r\n type: VOLUNTEER_SUBMIT,\r\n payload: data,\r\n };\r\n};\r\n\r\nexport function fetchPublicEvent(eventId) {\r\n return {\r\n type: FETCHING,\r\n payload: eventId,\r\n };\r\n};\r\n\r\nconst initialState = {\r\n status: status.NOT_SUBMITTED,\r\n fetchStatus: fetchStatus.NOT_FETCHING,\r\n event: null,\r\n error: null,\r\n};\r\n\r\nexport default function selfRegistration(state = initialState, action) {\r\n if (!action) {\r\n return state;\r\n }\r\n \r\n switch (action.type) {\r\n case VOLUNTEER_SUBMIT:\r\n return Object.assign({}, state, {status: status.SUBMITTING, error: null});\r\n case VOLUNTEER_SUCCESS:\r\n return Object.assign({}, state, {status: status.SUCCESS, error: null});\r\n case VOLUNTEER_FAILED:\r\n return Object.assign({}, state, {status: status.FAILED, error: action.payload});\r\n case FETCHING:\r\n return Object.assign({}, state, {fetchStatus: fetchStatus.FETCHING, event:null});\r\n case FETCH_SUCCESS:\r\n return Object.assign({}, state, {fetchStatus: fetchStatus.FETCH_SUCCESS, event: action.payload});\r\n case FETCH_FAILED:\r\n return Object.assign({}, state, {fetchStatus: fetchStatus.FETCH_FAILED, error: action.payload, event:null});\r\n default: \r\n return state;\r\n };\r\n};","import { connect } from 'react-redux';\r\nimport SelfRegistrationForm from './SelfRegistrationForm';\r\nimport { fetchPublicEvent, submitVolunteer } from './reducer';\r\n\r\nconst mapStateToProps = ( state ) => {\r\n const obj = {\r\n status: state.selfRegistration.status,\r\n fetchStatus: state.selfRegistration.fetchStatus,\r\n formError: state.selfRegistration.error,\r\n event: state.selfRegistration.event,\r\n }\r\n return obj;\r\n};\r\n\r\nconst mapDispatchToProps = ( dispatch ) => ({\r\n onSubmit: data => dispatch(submitVolunteer(data)),\r\n fetchEvent: eventId => dispatch(fetchPublicEvent(eventId))\r\n});\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(SelfRegistrationForm);\r\n","import { defineMessages } from 'react-intl';\r\n\r\nexport default defineMessages({\r\n form: {\r\n firstName: {\r\n id: 'my-profile.form.firstName.placeholder',\r\n },\r\n lastName: {\r\n id: 'my-profile.form.lastName.placeholder',\r\n },\r\n email: {\r\n id: 'my-profile.form.email.placeholder',\r\n },\r\n phone: {\r\n id: 'my-profile.form.phone.placeholder',\r\n },\r\n countryCode: {\r\n id: 'register.form.countryCode.placeholder',\r\n },\r\n },\r\n title: {\r\n id: 'my-profile.title',\r\n },\r\n editButton: {\r\n id: 'my-profile.edit-profile-button',\r\n },\r\n saveButton: {\r\n id: 'my-profile.save-profile-button',\r\n },\r\n});\r\n","import React, { Component } from \"react\";\r\nimport { H2 } from \"../../../components/index\";\r\nimport { Field, reduxForm } from \"redux-form\";\r\nimport { required, minLength3 } from \"../../../validators\";\r\nimport { Row, Col } from \"react-bootstrap/lib\";\r\nimport { FormGroup, Input, Select } from \"../../../components\";\r\nimport { SmallGrayButton, Button } from \"../../../components/Buttons\";\r\nimport messages from \"./messages\";\r\nimport { injectIntl } from \"react-intl\";\r\nimport { countryCodes } from \"../../../constants/country-codes\";\r\n\r\nclass MyProfile extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n readonly: true\r\n };\r\n\r\n this.toggleReadonly = this.toggleReadonly.bind(this);\r\n this.handleProfileSubmit = this.handleProfileSubmit.bind(this);\r\n }\r\n\r\n toggleReadonly(e) {\r\n if (e) {\r\n e.preventDefault();\r\n }\r\n\r\n this.setState({\r\n readonly: !this.state.readonly\r\n });\r\n }\r\n\r\n handleProfileSubmit(user) {\r\n this.props.onSubmit(user);\r\n this.toggleReadonly();\r\n }\r\n\r\n renderButtons() {\r\n if (this.state.readonly) {\r\n return (\r\n \r\n );\r\n }\r\n return (\r\n