{"version":3,"sources":["components/confirm.jsx","components/user.jsx","components/users.jsx","components/filter.jsx","components/filterDefinition.js","components/filters.jsx","components/editableText.jsx","components/trafficLightSetting.jsx","components/trafficLightSettings.jsx","components/returnParameter.jsx","components/returnParameters.jsx","components/gdprDelete.jsx","components/pageContentTextBox.jsx","components/externalSupplier.jsx","components/externalSuppliers.jsx","components/expandable.jsx","components/searchResult.jsx","components/panelVariables.jsx","components/navigation.jsx","components/administration.jsx","components/myDetails.jsx","components/project.jsx","components/projects.jsx","components/projectList.jsx","components/errorDisplayingFormField.js","components/externalSample.jsx","components/externalSamples.jsx","components/selectProjectClient.jsx","components/errorDisplayingSelect.js","components/setupProject.jsx","components/youthsightUrlForClient.jsx","components/quota.jsx","components/quotas.jsx","components/sample.jsx","components/samples.jsx","components/incentive.jsx","components/incentives.jsx","components/testUrls.jsx","components/testers.jsx","components/invitesReminders.jsx","components/parameterSelector.jsx","components/youthSightUrlForSupplier.jsx","components/youthsightUrlsForSupplier.jsx","components/supplierUrlForYouthsight.jsx","components/supplierUrlsForYouthsight.jsx","components/editSentCount.jsx","components/completionStatsTable.jsx","components/viewProject.jsx","components/archivedProject.jsx","components/archivedProjects.jsx","components/archivedProjectList.jsx","components/landing.jsx","components/login.jsx","components/passwordReset.jsx","components/emailTemplate.jsx","components/emailTemplateEditor.jsx","components/emailTemplates.jsx","components/privateRoute.jsx","App.js","serviceWorker.js","config.js","index.js"],"names":["Confirm","props","_this","Object","classCallCheck","this","possibleConstructorReturn","getPrototypeOf","call","state","open","callback","show","event","preventDefault","objectSpread","target","value","setState","hide","confirm","react_default","a","createElement","Fragment","children","Modal","Header","Title","actionTitle","Body","actionDescription","Footer","Button","onClick","variant","Component","User","handleEdit","bind","assertThisInitialized","onEdit","name","user","username","email","_this2","className","last_login","last_ip","components_confirm","onDelete","Users","handleToggleNewUser","handleDelete","handleInputChange","handleSave","users","newUserOpen","editingUser","errors","type","checked","defineProperty","API","patch","body","newUserEmail","newUserName","password","newUserPassword","userResponse","post","code","get","del","filter","usersResult","statsResult","map","matchingStats","stats","Table","colSpan","components_user","key","id","Form","Group","Label","Control","onChange","isInvalid","FormControl","Feedback","message","Filter","active","status","badgeVariant","buttonText","Badge","pill","onChangeStatus","definition","_this3","inFilter","filteredOut","renderStatusIndicator","FilterDefinition","handleDefinitionCursorMove","handleAddVariable","handleAddAnswer","definitionFieldRef","React","createRef","definitionCursorPosition","selectionStart","currentVarname","newFilterDefinition","slice","match","panelVariableToHintValuesFor","varname","onDefinitionChange","focus","answerCode","onKeyUp","ref","input","availablePanelVariables","variable","length","categories","answer","label","Filters","filters","newFilterOpen","newFilterName","newFilterTarget","handleToggleNewFilter","handleClickSave","handleDefinitionChange","onSave","editingFilter","console","log","components_filter","onStatusChange","filterDefinition","lastRecalculated","onRecalculate","toLocaleString","EditableText","editing","newValue","currentValue","openEditing","handleClickSet","inputFieldRef","onSetValue","error","TrafficLightSetting","colour","setting","editableText","limit","onSetLimit","TrafficLightSettings","handleSetLimit","settings","settingsCopy","JSON","parse","stringify","forEach","results","newSetting","newSettings","correspondingResult","result","rate_type","red","red_limit","yellow","yellow_limit","trafficLightSetting","ReturnParameter","parameter","ReturnParameters","handleAdd","parameters","endPoint","newParameter","concat","toConsumableArray","returnParameter","GdprDelete","gdprResult","PageContentTextBox","newContent","pages","pageId","as","rows","ExternalSupplier","newName","onSupplierEdit","supplier","ExternalSuppliers","suppliers","addOpen","handleSupplierEdit","toggleAdd","handleAddSupplier","newSupplierName","addSupplierResult","data","suppliersResult","externalSupplier","controlId","Expandable","expanded","handleExpand","Card","title","SearchResult","onAdd","resultId","resultName","PanelVariables","panelVariables","displayedPanelVariables","searchTerm","onPanelVariablesSearch","handlePanelVariablesSearch","onAddVariable","toLowerCase","selectedPanelVariableIds","selectedPanelVariables","includes","varnameSearchValue","labelSearchValue","indexOf","panelVariablesResult","alert","_context2","t0","expandable","searchResult","Navigation","handleLogout","Auth","signOut","window","location","replace","Dropdown","Toggle","index_es","icon","faCog","Menu","lib","exact","to","Item","administration","pagesContent","handleAddPanelVariable","handleFilterSave","handleFilterDelete","handleFilterStatusChange","handlePageContentSave","selectedVariableId","variableId","_context","projectId","project_id","pageName","content","copiedPagesContent","_context5","t1","row","page_name","t2","_React$createElement","class","navigation","react_router_dom","components_users","components_filters","handleFiltersRecalculate","handleFilterRecalculate","trafficLightSettings","returnParameters","gdprDelete","pageContentTextBox","externalSuppliers","myDetails","currentUserInfo","userInfo","attributes","Project","trafficLightLimits","project","projectInfo","item","style","itemValue","Math","round","expectedIncidenceRate","backgroundColor","href","clientId","Date","toLocaleDateString","closedDate","projectName","Projects","projects","components_project","projectList","handleProjectDelete","params","Faker","company","companyName","endpoint","projectNumber","job_number","target_completes","completed","clientName","client","client_id","expected_incidence_rate","closed_date","started","sent","screenout","quota_full","quality_fail","survey_length","dropouts","start_date","end_date","default_incentive","trafficLightsresult","_iterator","Symbol","iterator","_iteratorNormalCompletion","_step","next","done","stat","parseInt","archivedBy","p","components_projects","ErrorDisplayingFormField","ExternalSample","handleChange","sends","onChangeSend","errorDisplayingFormField","ExternalSamples","externalSampleSupplierIdToAdd","supplierId","externalSampleSuppliers","selectedExternalSampleSuppliers","externalSample","onChangeExternalSampleSend","onDeleteExternalSample","selected","onAddExternalSample","SelectProjectClient","searchOpen","clients","displayedClients","handleSaveNew","handleSelectClick","onSelect","ErrorDisplayingSelect","options","option","setupProject","usingExternalSample","mobile_compatability","screen_out_probability","toISOString","split","handleAddExternalSample","handleChangeExternalSampleSend","handleDeleteExternalSample","handleCancel","handleSelectClient","supplier_id","history","goBack","destination","callBody","landing_page_text","creator","isErrors","push","errorDisplayingSelect","selectProjectClient","Check","externalSamples","YouthsightUrlForClient","copyToClipboard","e","select","document","execCommand","origin","toString","clientResultCodeParam","resultCode","clientUniqueIdentifierParam","Quota","makeEdit","quota","_ref","achieved","available","Quotas","newQuotaOpen","newQuotaName","newQuotaDefinition","newQuotaTarget","handleToggleNewQuota","newDefinition","quotas","components_quota","quotasLastRecalculated","Sample","sample","total","rejected","exclusions","lastRefreshed","onRefresh","Samples","samplesSearchTerm","handleSearchType","handleAddClick","onSamplesSearch","selectedSampleId","onAddSample","selectedSamples","components_sample","samples","displayedSamples","sampleId","psuName","sampleSize","Incentive","incentive","points","Incentives","newIncentiveOpen","newIncentiveType","newIncentiveFilterOrQuota","newIncentivePoints","incentivesAwarded","handleToggleNewIncentive","filtersWithPoints","quotasWithPoints","newIncentiveQuota","newIncentiveFilter","incentiveLevel","count","defaultIncentive","onSetDefaultIncentive","getIncentives","components_incentive","TestUrls","urls","baseUrl","yscodes","encodeURIComponent","url","Testers","testers","testerStatuses","selectedUserEmail","updateTesterEmails","handleTesterSelect","handleUserChange","handleInvite","handleReset","emailComponents","i","matchingTesterStatus","tester","_loop","selectedTesters","testerEmails","emails","templateId","emailTemplate","InvitesReminders","isError","errorMessage","onSetQuotaCombinationsAvailableStat","invite","onInviteToggle","remindStatus","onStatusReminderToggle","selectedQuotas","onSelectQuota","onSelectQuotas","totalCompletes","quotasTotalAvailableStat","totalToSend","onTotalToSendChange","quotaCombinations","quotaIds","join","toSend","onToSendChange","xToGet","onDistribute","onSend","ParameterSelector","selectedParam","paramType","paramFor","defaultParam","param","YouthsightUrlForSupplier","source","parameterSelector","unique_identifier_param_id","unique_identifier_param_name","YouthsightUrlsForSupplier","sources","youthSightUrlForSupplier","SupplierUrlForYouthsight","inputField","respondent_id_param","vartiant","project_id_param","completed_url","screenout_url","quota_full_url","quality_fail_url","SupplierUrlsForYouthsight","supplierUrlForYouthsight","EditSentCount","sendCount","_this$setState","preserveAbsent","sourceId","updateSendsResult","keys","onSourceSentUpdate","sourceName","CompletionStatsTable","interval","textTransform","intervalStartDate","starts","complets","screenouts","quota_fulls","quality_fails","viewProject","handleFilteringStatsUpdate","handleSetTarget","handleClientSurveyUrlSave","handleClientIdParamNameSave","handleQuotaStatusChange","handleQuotaDelete","handleQuotaSave","handleQuotaEdit","sourcesSentRefresh","handleSamplesSearch","handleAddSample","handleSampleRefresh","pollForNewSelectedSample","pollForRefreshedSample","handleIncentiveDelete","handleIncentiveSave","handleProjectClosedToggle","handleParamSave","handleSetDefaultIncentive","handleInviteToggle","handleSelectQuota","handleSetQuotaCombinationsAvailableStat","handleSelectQuotas","setTotalToSend","handleToSendChange","handleDistribute","handleTotalToSendChange","handleSend","random","number","projectClosed","totalAvailable","totalSent","totalStarted","totalScreenOuts","totalQuoataFull","totalQualityFail","completionCode","filtersLastRecalculated","emailTemplates","selectedEmailTemplate","client_survey_url","clientIdParamName","totalStatusStats","distributeToSend","invitesRemindersIsError","invitesRemindersErrorMessage","sendBlocked","selectedSample","sample_id","filtered_out","last_refreshed","statusStatsResult","Promise","all","t3","groupsResult","projectType","client_id_param","startDate","unique_identifier_param","result_code_param_id","result_code_param","complete_code","reduce","accumulator","current","unsent","totalUnsent","t4","t5","t6","emailTemplatesResult","t7","t8","_context3","_context7","paramId","field","newParamId","argumentName","_context8","selectedSampleNames","checkAndUpdateSelectedSamples","_checkAndUpdateSelectedSamples","apply","arguments","asyncToGenerator","regenerator_default","mark","_callee18","selectedSamplesInDbResult","pageSampleCount","dbSampleCount","wrap","_context18","prev","setTimeout","stop","clickTime","checkRefreshedSampleAndUpdate","_checkRefreshedSampleAndUpdate","_callee19","chosenSampleLastRefreshInDb","clickMoment","_context19","moment","format","isBefore","updatedType","incentives","toJSON","quotaId","selectedQuota","combination","min","quotaCombinationsResult","names","combinationIndex","panelistStats","combinationIdString","distributeType","sendRequestData","recipientsStatus","enqueueResponse","components_quotas","editSentCount","youthsightUrlForClient","testUrls","template","components_testers","invitesReminders","onSetTotalToSend","youthsightUrlsForSupplier","supplierUrlsForYouthsight","completionStatsTable","ArchivedProject","archived_by","onRestore","ArchivedProjects","displayedProjects","searchString","searchField","handleRestore","onSearch","handleSearch","handleSearchFieldSelect","restoredProjectId","archived","projectsResult","propertyName","archivedProject","ArchivedProjectList","archivedProjects","Landing","require","handleClickLink","yscode","resultCodeParam","surveyLink","search","landingResult","redirect","mobileCompatibility","dangerouslySetInnerHTML","__html","isMobile","Login","handleSubmit","_callee","signIn","onUserHasAuthenticated","_x","isAuthenticated","react_router","onSubmit","bsSize","autoFocus","block","disabled","validateForm","PasswordReset","codeSent","confirmPassword","resetComplete","handleRequestCode","handlePasswordReset","forgotPassword","hasErrors","forgotPasswordSubmit","EmailTemplate","date_created","date_updated","last_edited_by","tags","onCopy","EmailTemplateEditor","activeTab","dialogClassName","onPropertyChange","dynamicFields","Tabs","Tab","eventKey","contentPreview","toggleOpen","EmailTemplates","templates","displayedTemplates","templateUnderEdit","handleCopy","handleTemplateDelete","setContentPreview","toggleEdit","handleTemplatePropertyChange","handleTemplateSave","contentWithExampleDynamicText","_didIteratorError","_iteratorError","undefined","demo","err","return","httpVerb","idString","updateResult","String","emailTemplateEditor","PrivateRoute","component","authed","rest","objectWithoutProperties","assign","render","App","isAuthenticating","userHasAuthenticated","currentSession","authenticated","_callee2","path","login_Login","privateRoute","landing","Boolean","hostname","config","REGION","URL","USER_POOL_ID","APP_CLIENT_ID","IDENTITY_POOL_ID","Amplify","configure","mandatorySignIn","region","userPoolId","identityPoolId","userPoolWebClientId","endpoints","ReactDOM","src_App_0","getElementById","navigator","serviceWorker","ready","then","registration","unregister"],"mappings":"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","file":"static/js/main.52745363.chunk.js","sourcesContent":["import React, {Component} from \"react\";\r\nimport { Modal, Button} from 'react-bootstrap';\r\n\r\nclass Confirm extends Component{\r\n\r\n state = {\r\n open: false,\r\n callback: null\r\n }\r\n\r\n constructor(props){\r\n super(props)\r\n }\r\n\r\n show = callback => event => {\r\n\r\n event.preventDefault();\r\n\r\n event = {\r\n ...event,\r\n target: {...event.target, value: event.target.value }\r\n }\r\n\r\n this.setState({\r\n open: true,\r\n callback: () => callback(event)\r\n })\r\n }\r\n\r\n hide = () => this.setState({open: false, callback: null});\r\n\r\n confirm = () => {\r\n\r\n this.state.callback();\r\n this.hide();\r\n }\r\n\r\n render(){\r\n return (\r\n \r\n { this.props.children(this.show) }\r\n\r\n\r\n \r\n \r\n { this.props.actionTitle}\r\n \r\n\r\n \r\n

Are you sure you want to {this.props.actionDescription}?

\r\n
\r\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 Confirm;\r\n","import React, {Component} from 'react';\r\nimport {Button} from 'react-bootstrap';\r\nimport Confirm from \"./confirm\";\r\n\r\nclass User extends Component {\r\n constructor(props){\r\n super(props);\r\n this.handleEdit = this.handleEdit.bind(this);\r\n }\r\n\r\n handleEdit() {\r\n this.props.onEdit({\r\n name: this.props.user.username,\r\n email: this.props.user.email,\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {this.props.user.username}\r\n {this.props.user.email}\r\n {this.props.user.last_login}\r\n {this.props.user.last_ip}\r\n \r\n \r\n Edit\r\n \r\n \r\n \r\n {confirm => (\r\n Delete\r\n )}\r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default User;\r\n","import React, {Component} from 'react';\r\nimport Faker from 'faker';\r\nimport {Table, Form, Button, FormControl} from 'react-bootstrap';\r\nimport User from \"./user.jsx\";\r\nimport {API} from \"aws-amplify\";\r\n\r\nclass Users extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.handleToggleNewUser = this.handleToggleNewUser.bind(this);\r\n this.handleEdit = this.handleEdit.bind(this);\r\n this.handleDelete = this.handleDelete.bind(this);\r\n this.handleInputChange = this.handleInputChange.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n\r\n this.state = {\r\n users: \"fetching\",\r\n newUserOpen: false,\r\n editingUser: false,\r\n errors: false\r\n }\r\n }\r\n\r\n handleToggleNewUser() {\r\n this.setState({\r\n newUserOpen: !this.state.newUserOpen,\r\n editingUser: false\r\n });\r\n }\r\n\r\n handleInputChange(event) {\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n const name = target.name;\r\n\r\n this.setState({\r\n [name]: value\r\n });\r\n }\r\n\r\n async handleSave(){\r\n\r\n let userResponse;\r\n\r\n if(this.state.editingUser) {\r\n\r\n userResponse = await API.patch('soapthree', '/users', {\r\n 'body': {\r\n email: this.state.newUserEmail,\r\n username: this.state.newUserName,\r\n password: this.state.newUserPassword\r\n }\r\n });\r\n\r\n } else {\r\n\r\n userResponse = await API.post('soapthree', '/users', {\r\n 'body': {\r\n email: this.state.newUserEmail,\r\n username: this.state.newUserName,\r\n password: this.state.newUserPassword\r\n }\r\n });\r\n }\r\n\r\n if(userResponse.code == 1000) {\r\n\r\n this.setState({\r\n newUserPassword: '',\r\n errors: userResponse.errors\r\n });\r\n\r\n } else {\r\n\r\n const users = await API.get('soapthree', '/users');\r\n\r\n this.setState({users});\r\n\r\n this.handleToggleNewUser();\r\n }\r\n }\r\n\r\n handleEdit(editingUser){\r\n\r\n this.setState({\r\n newUserName: editingUser.name,\r\n newUserEmail: editingUser.email,\r\n newUserOpen: true,\r\n editingUser: true\r\n })\r\n }\r\n\r\n async handleDelete(event){\r\n\r\n const username = event.target.value;\r\n\r\n await API.del('soapthree', '/users/' + username);\r\n\r\n const users = this.state.users.filter(user => {\r\n return user.username != username;\r\n });\r\n\r\n this.setState({users});\r\n }\r\n\r\n async componentDidMount() {\r\n\r\n let usersResult = await API.get('soapthree', '/users');\r\n\r\n let statsResult = await API.get('soapthree', '/users-stats');\r\n\r\n let users = usersResult.map(function(user){\r\n\r\n let matchingStats = this.statsResult.filter(stats => stats.username == user.username)[0];\r\n\r\n if(matchingStats) {\r\n user.last_login = matchingStats.last_login;\r\n user.last_ip = matchingStats.last_ip;\r\n }\r\n\r\n return user;\r\n },{statsResult: statsResult} )\r\n\r\n this.setState({users})\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 {this.state.users != \"fetching\" && this.state.users.map(user =>\r\n \r\n )}\r\n \r\n
NameEmailLast Login DateLast Login IP
\r\n\r\n {this.state.newUserOpen && (\r\n
\r\n {!this.state.editingUser && (\r\n \r\n Name\r\n \r\n \r\n )}\r\n\r\n \r\n Email\r\n \r\n \r\n\r\n \r\n Password\r\n \r\n {this.state.errors && this.state.errors.newUserPassword && (\r\n {this.state.errors.newUserPassword.message}\r\n )}\r\n \r\n\r\n Save\r\n Cancel\r\n
\r\n )}\r\n\r\n {!this.state.newUserOpen && (\r\n \r\n )}\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default Users;\r\n","import React, {Component} from 'react';\r\nimport {Badge, Button} from \"react-bootstrap\";\r\nimport Confirm from \"./confirm\";\r\n\r\nclass Filter extends Component{\r\n constructor(props){\r\n super(props);\r\n this.handleEdit = this.handleEdit.bind(this);\r\n }\r\n\r\n renderStatusIndicator(active) {\r\n let status = \"INACTIVE\";\r\n let badgeVariant = \"danger\";\r\n let buttonText = \"Activate\";\r\n\r\n if (active) {\r\n status = \"ACTIVE\";\r\n badgeVariant = \"success\";\r\n buttonText = \"Deactivate\";\r\n }\r\n\r\n return (\r\n \r\n {status}\r\n this.props.onChangeStatus(this.props.filter)}\r\n >{buttonText}\r\n \r\n );\r\n }\r\n\r\n handleEdit() {\r\n this.props.onEdit({\r\n name: this.props.filter.name,\r\n definition: this.props.filter.definition,\r\n target: this.props.filter.target\r\n });\r\n\r\n\r\n //JFTODO make this less hacky\r\n\r\n this.props.onDelete({target: {value: this.props.filter.id}})\r\n }\r\n\r\n\r\n\r\n render() {\r\n return (\r\n \r\n {this.props.filter.name}\r\n {this.props.filter.definition}\r\n {this.props.filter.inFilter}\r\n {this.props.filter.filteredOut}\r\n {this.renderStatusIndicator(this.props.filter.active)}\r\n \r\n \r\n {confirm => (\r\n \r\n )}\r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default Filter;\r\n","import React, {Component} from 'react';\r\nimport {Button, Form, FormControl} from \"react-bootstrap\";\r\n\r\nclass FilterDefinition extends Component {\r\n\r\n constructor(props){\r\n super(props);\r\n\r\n this.handleDefinitionCursorMove = this.handleDefinitionCursorMove.bind(this);\r\n this.handleAddVariable = this.handleAddVariable.bind(this);\r\n this.handleAddAnswer = this.handleAddAnswer.bind(this);\r\n\r\n this.definitionFieldRef = React.createRef();\r\n }\r\n\r\n state = {};\r\n\r\n handleDefinitionCursorMove(event) {\r\n\r\n const definitionCursorPosition = event.target.selectionStart;\r\n\r\n this.setState({definitionCursorPosition});\r\n\r\n let leftOfCursor = this.props.newFilterDefinition.slice(0, definitionCursorPosition);\r\n\r\n let currentVarname = leftOfCursor.match(/\\w+\\s*!?=\\s*$/);\r\n\r\n if(currentVarname && currentVarname[0]) {\r\n\r\n currentVarname = currentVarname[0].match(/^\\w+/)[0];\r\n\r\n }\r\n\r\n this.setState({panelVariableToHintValuesFor: currentVarname});\r\n\r\n\r\n }\r\n\r\n handleAddVariable(event) {\r\n\r\n const target = event.target;\r\n const varname = target.value;\r\n\r\n const newFilterDefinition = this.props.newFilterDefinition.slice(0, this.state.definitionCursorPosition) +\r\n varname + this.props.newFilterDefinition.slice(this.state.definitionCursorPosition);\r\n\r\n this.props.onDefinitionChange(newFilterDefinition);\r\n\r\n this.definitionFieldRef.focus();\r\n }\r\n\r\n handleAddAnswer(event) {\r\n const target = event.target;\r\n const answerCode = target.value;\r\n\r\n const newFilterDefinition = this.props.newFilterDefinition.slice(0, this.state.definitionCursorPosition) +\r\n answerCode + this.props.newFilterDefinition.slice(this.state.definitionCursorPosition);\r\n\r\n this.props.onDefinitionChange(newFilterDefinition);\r\n\r\n this.definitionFieldRef.focus();\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n \r\n\r\n\r\n Definition
\r\n ( ) for parens
\r\n = for equals
\r\n != for not equals
\r\n & for and
\r\n | for or
\r\n > for greater than
\r\n < for less than\r\n
\r\n {this.props.onDefinitionChange(event.target.value)}}\r\n onKeyUp={this.handleDefinitionCursorMove}\r\n value={this.props.newFilterDefinition}\r\n ref={(input) => {this.definitionFieldRef = input}}\r\n isInvalid={this.props.errors}\r\n />\r\n {this.props.errors && (\r\n {this.props.errors.message}\r\n )}\r\n
\r\n\r\n{this.state.panelVariableToHintValuesFor &&\r\nthis.props.availablePanelVariables.filter(variable => {\r\n return variable.varname == this.state.panelVariableToHintValuesFor;\r\n}).length &&\r\nthis.props.availablePanelVariables.filter(variable => {\r\n return variable.varname == this.state.panelVariableToHintValuesFor;\r\n})[0].categories && (\r\n\r\n
\r\n

Available Answers

\r\n\r\n {this.props.availablePanelVariables.filter(variable => {\r\n return variable.varname == this.state.panelVariableToHintValuesFor;\r\n })[0].categories.map(answer =>\r\n\r\n {answer.label}\r\n\r\n )}\r\n\r\n
\r\n\r\n)}\r\n\r\n\r\n
\r\n\r\n

Available Variables

\r\n\r\n {this.props.availablePanelVariables.map(variable =>\r\n\r\n {variable.label}\r\n )}\r\n\r\n\r\n
\r\n\r\n
\r\n )}\r\n }\r\n\r\nexport default FilterDefinition;","import React, {Component} from 'react';\r\nimport {Button, Form, FormControl, Table} from \"react-bootstrap\";\r\nimport Filter from \"./filter\";\r\nimport Faker from \"faker\";\r\nimport {API} from 'aws-amplify';\r\nimport FilterDefinition from \"./filterDefinition\";\r\n\r\nclass Filters extends Component{\r\n\r\n constructor(props){\r\n super(props);\r\n\r\n this.handleToggleNewFilter = this.handleToggleNewFilter.bind(this);\r\n this.handleInputChange = this.handleInputChange.bind(this);\r\n this.handleClickSave = this.handleClickSave.bind(this);\r\n this.handleEdit = this.handleEdit.bind(this);\r\n\r\n this.handleDefinitionChange = this.handleDefinitionChange.bind(this);\r\n }\r\n\r\n handleToggleNewFilter() {\r\n this.setState({newFilterOpen: !this.state.newFilterOpen});\r\n }\r\n\r\n handleInputChange(event) {\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n const name = target.name;\r\n\r\n this.setState({\r\n [name]: value\r\n });\r\n }\r\n\r\n async handleClickSave(){\r\n\r\n const setSucessfully = await this.props.onSave(this.state);\r\n\r\n if(setSucessfully) {\r\n this.handleToggleNewFilter();\r\n }\r\n }\r\n\r\n handleEdit(editingFilter){\r\n\r\n console.log(editingFilter);\r\n\r\n this.setState({\r\n newFilterName: editingFilter.name,\r\n newFilterDefinition: editingFilter.definition,\r\n newFilterTarget: editingFilter.target,\r\n newFilterOpen: true\r\n })\r\n }\r\n\r\n handleDefinitionChange(newFilterDefinition){\r\n this.setState({newFilterDefinition: newFilterDefinition})\r\n }\r\n\r\n\r\n\r\n state = {\r\n filters: \"fetching\",\r\n newFilterOpen: false,\r\n newFilterName: null,\r\n newFilterDefinition: '',\r\n newFilterTarget: null\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 {this.props.filters != 'fetching' && this.props.filters.map(filter =>\r\n \r\n )}\r\n
NameDefinitionIn filterFiltered OutStatus
\r\n\r\n\r\n {this.state.newFilterOpen && (\r\n\r\n
\r\n \r\n Name\r\n \r\n {this.props.errors.name && (\r\n {this.props.errors.name.message}\r\n )}\r\n \r\n\r\n \r\n\r\n\r\n Save\r\n Cancel\r\n
\r\n )\r\n }\r\n\r\n {!this.state.newFilterOpen && (\r\n \r\n New\r\n\r\n {this.props.lastRecalculated && (\r\n \r\n Recalculate\r\n Last recalculated: \r\n {this.props.lastRecalculated != \"fetching\" && (\r\n this.props.lastRecalculated.toLocaleString('en-GB')\r\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 Filters;\r\n","import React, {Component} from 'react';\r\nimport {Form, Button, FormControl} from 'react-bootstrap';\r\n\r\nclass EditableText extends Component{\r\n\r\n state = {\r\n editing: false,\r\n newValue: this.props.currentValue\r\n }\r\n\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.openEditing = this.openEditing.bind(this);\r\n this.handleClickSet = this.handleClickSet.bind(this);\r\n this.handleInputChange = this.handleInputChange.bind(this);\r\n\r\n this.inputFieldRef = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n this.setState({});\r\n }\r\n\r\n async openEditing(){\r\n await this.setState({editing: true});\r\n\r\n this.inputFieldRef.focus();\r\n }\r\n\r\n handleInputChange(event) {\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n const name = target.name;\r\n\r\n this.setState({\r\n [name]: value\r\n });\r\n }\r\n\r\n async handleClickSet() {\r\n\r\n let setSuccessfully = await this.props.onSetValue(this.state.newValue);\r\n\r\n if(setSuccessfully) {\r\n this.setState({editing: false});\r\n }\r\n\r\n }\r\n\r\n\r\n render() {\r\n\r\n if(this.state.editing) {\r\n return (\r\n \r\n {this.inputFieldRef = input}}\r\n isInvalid={this.props.error}\r\n />\r\n\r\n {this.props.error && (\r\n {this.props.error.message}\r\n )}\r\n\r\n\r\n \r\n \r\n )\r\n } else {\r\n return (\r\n \r\n

{this.props.currentValue}

\r\n \r\n
\r\n )\r\n }\r\n }\r\n}\r\n\r\nexport default EditableText;\r\n","import React, {Component} from 'react';\r\nimport {Form, Button} from 'react-bootstrap';\r\nimport EditableText from \"./editableText\";\r\n\r\nclass TrafficLightSetting extends Component {\r\n\r\n render() {\r\n return (\r\n
\r\n {['yellow', 'red'].map( colour =>\r\n\r\n \r\n {this.props.setting.label} {colour} upper limit\r\n {this.props.setting[colour] != null && (\r\n {this.props.onSetLimit(limit, colour, this.props.setting.key)}}\r\n />\r\n )}\r\n \r\n )}\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default TrafficLightSetting;\r\n","import React, {Component} from 'react';\r\nimport TrafficLightSetting from './trafficLightSetting';\r\nimport Faker from 'faker';\r\nimport {API} from 'aws-amplify';\r\n\r\nclass TrafficLightSettings extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.handleSetLimit = this.handleSetLimit.bind(this);\r\n\r\n this.state = {\r\n settings: [\r\n {\r\n id: 1,\r\n key: 'response',\r\n label: '% Response Rate'\r\n },\r\n {\r\n id: 2,\r\n key: 'result',\r\n label: '% Result Rate'\r\n },\r\n {\r\n id: 3,\r\n key: 'incidence',\r\n label: '% Incidence Rate'\r\n },\r\n {\r\n id: 4,\r\n key: 'dropout',\r\n label: '% Drop-out Rate'\r\n }\r\n ],\r\n }\r\n }\r\n\r\n async handleSetLimit(limit, colour, type) {\r\n\r\n const result = await API.patch('soaptwo', '/trafficlightbands/' + type, {body:\r\n {\r\n colour: colour,\r\n limit: limit\r\n }\r\n });\r\n\r\n let settingsCopy = JSON.parse(JSON.stringify(this.state.settings));\r\n\r\n settingsCopy.forEach(setting => {\r\n if(setting.key == type) {\r\n setting[colour] = limit;\r\n }\r\n });\r\n\r\n this.setState({settings: settingsCopy});\r\n\r\n }\r\n\r\n async componentDidMount(){\r\n\r\n const results = await API.get('soaptwo', '/trafficlightbands');\r\n\r\n const settings = this.state.settings;\r\n\r\n let newSetting = {};\r\n\r\n let newSettings = settings.map(setting => {\r\n\r\n newSetting = {};\r\n\r\n let correspondingResult = results.filter(result => result.rate_type == setting.key);\r\n\r\n if(correspondingResult[0]) {\r\n newSetting.red = correspondingResult[0].red_limit ? correspondingResult[0].red_limit : 0;\r\n newSetting.yellow = correspondingResult[0].yellow_limit ? correspondingResult[0].yellow_limit : 0;\r\n } else {\r\n newSetting.red = 0;\r\n newSetting.yellow = 0;\r\n }\r\n\r\n newSetting = {...newSetting, ...setting}\r\n\r\n return newSetting;\r\n });\r\n\r\n this.setState({settings: newSettings});\r\n\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n { this.state.settings.map(setting =>\r\n \r\n )}\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default TrafficLightSettings;","import React, {Component} from 'react';\r\nimport {Button} from 'react-bootstrap';\r\nimport Confirm from \"./confirm\";\r\n\r\nclass ReturnParameter extends Component {\r\n\r\n render(){\r\n return (\r\n

\r\n {confirm => (\r\n \r\n )}\r\n \r\n {this.props.parameter.name}\r\n

\r\n\r\n )\r\n }\r\n}\r\n\r\nexport default ReturnParameter;\r\n","import React, {Component} from 'react';\r\nimport ReturnParameter from './returnParameter';\r\nimport {Form, Button} from 'react-bootstrap';\r\nimport{API} from \"aws-amplify\";\r\n\r\nclass ReturnParameters extends Component {\r\n\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.handleInputChange = this.handleInputChange.bind(this);\r\n this.handleAdd = this.handleAdd.bind(this);\r\n this.handleDelete = this.handleDelete.bind(this);\r\n\r\n this.state = {parameters: \"fetching\"};\r\n\r\n if(this.props.type == \"uniqueIdentifier\") {\r\n this.state.endPoint = 'uniqueidentifierparams';\r\n }\r\n else {\r\n this.state.endPoint = 'resultcodeparams';\r\n }\r\n }\r\n\r\n async componentDidMount() {\r\n\r\n const result = await API.get('soap', '/' + this.state.endPoint);\r\n\r\n this.setState({parameters: result});\r\n }\r\n\r\n handleInputChange(event) {\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n const name = target.name;\r\n\r\n this.setState({\r\n [name]: value\r\n });\r\n }\r\n\r\n async handleAdd(event){\r\n\r\n const result = await API.post('soap', '/' + this.state.endPoint, {\r\n body: {name: this.state.newParameter}\r\n });\r\n\r\n if(!result.code || result.code != 1000) {\r\n\r\n const newParameter = result[0];\r\n\r\n const parameters = [...this.state.parameters, newParameter];\r\n\r\n this.setState({parameters});\r\n }\r\n\r\n }\r\n\r\n async handleDelete(event){\r\n\r\n const id = event.target.value;\r\n\r\n const result = await API.del('soap', '/' + this.state.endPoint + \"/\" + id)\r\n\r\n const parameters = this.state.parameters.filter(parameter => {\r\n return parameter.id != id;\r\n });\r\n\r\n this.setState({parameters});\r\n }\r\n\r\n render() {\r\n return (\r\n\r\n \r\n {this.state.parameters != 'fetching' &&\r\n this.state.parameters.map( parameter =>\r\n \r\n\r\n )}\r\n \r\n Add Parameter\r\n \r\n \r\n\r\n Add\r\n\r\n \r\n )\r\n }\r\n\r\n}\r\n\r\nexport default ReturnParameters;\r\n","import React, {Component} from 'react';\r\nimport {Form, Button} from 'react-bootstrap';\r\nimport Confirm from \"./confirm\";\r\nimport {API} from 'aws-amplify';\r\n\r\nclass GdprDelete extends Component {\r\n\r\n state = {\r\n message: false\r\n };\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n this.handleInputChange = this.handleInputChange.bind(this);\r\n this.handleDelete = this.handleDelete.bind(this)\r\n }\r\n\r\n handleInputChange(event) {\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n const name = target.name;\r\n\r\n this.setState({\r\n [name]: value\r\n });\r\n }\r\n\r\n async handleDelete(event) {\r\n\r\n this.setState({message: false})\r\n\r\n const gdprResult = await API.del('soap', '/gdpr/' + this.state.email);\r\n\r\n if(gdprResult.code == 1) {\r\n this.setState({message: \"Panelist data removed\"})\r\n } else if (gdprResult.code == 2000) {\r\n this.setState({message: \"No panelist found with email address \" + this.state.email})\r\n }\r\n }\r\n\r\n render(){\r\n return (\r\n \r\n \r\n Email to delete for\r\n \r\n \r\n\r\n {this.state.message && (\r\n

{this.state.message}

\r\n )}\r\n\r\n {confirm => (\r\n \r\n )}\r\n \r\n\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default GdprDelete;\r\n","import React, {Component} from 'react';\r\nimport {Form, Button} from 'react-bootstrap'\r\n\r\nclass PageContentTextBox extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.handleInputChange = this.handleInputChange.bind(this);\r\n this.handleEdit = this.handleEdit.bind(this);\r\n this.handleClickSave = this.handleClickSave.bind(this);\r\n\r\n this.inputFieldRef = React.createRef();\r\n\r\n }\r\n\r\n state = {\r\n editing: false,\r\n newContent: this.props.pages[this.props.pageId]\r\n }\r\n\r\n handleInputChange(event) {\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n const name = target.name;\r\n\r\n this.setState({\r\n [name]: value\r\n });\r\n }\r\n\r\n async handleEdit(){\r\n await this.setState({editing: true});\r\n\r\n this.inputFieldRef.focus();\r\n }\r\n\r\n handleClickSave(){\r\n this.setState({editing: false});\r\n\r\n this.props.onSave(this.props.pageId, this.state.newContent);\r\n }\r\n\r\n render() {\r\n if(this.state.editing) {\r\n return (\r\n \r\n \r\n {this.inputFieldRef = input}}\r\n />\r\n \r\n\r\n \r\n \r\n )} else {\r\n return (\r\n \r\n

{this.props.pages[this.props.pageId]}

\r\n\r\n Edit\r\n
\r\n )\r\n }\r\n }\r\n}\r\n\r\nexport default PageContentTextBox;\r\n","import React, {Component} from 'react';\r\nimport EditableText from './editableText';\r\n\r\nclass ExternalSupplier extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n this.onEdit = this.onEdit.bind(this)\r\n }\r\n\r\n onEdit(newName) {\r\n\r\n return this.props.onSupplierEdit(newName, this.props.supplier.id);\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n )\r\n }\r\n\r\n}\r\n\r\nexport default ExternalSupplier;","import React, {Component} from 'react';\r\nimport ExternalSupplier from './externalSupplier.jsx'\r\nimport {Button, Form} from 'react-bootstrap';\r\nimport {API} from 'aws-amplify';\r\n\r\nclass ExternalSuppliers extends Component {\r\n\r\n state = {\r\n suppliers: \"fetching\",\r\n addOpen: false\r\n }\r\n\r\n constructor(props){\r\n super(props);\r\n\r\n this.handleInputChange = this.handleInputChange.bind(this);\r\n this.handleSupplierEdit = this.handleSupplierEdit.bind(this);\r\n this.toggleAdd = this.toggleAdd.bind(this);\r\n this.handleAddSupplier = this.handleAddSupplier.bind(this);\r\n }\r\n\r\n handleInputChange(event) {\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n const name = target.name;\r\n\r\n this.setState({\r\n [name]: value\r\n });\r\n }\r\n\r\n toggleAdd(){\r\n\r\n this.setState({addOpen: !this.state.addOpen})\r\n\r\n }\r\n\r\n async handleSupplierEdit(name, id) {\r\n const updateResult = await API.patch('soaptwo', '/suppliers/' + id,\r\n {body: {\r\n name: name,\r\n }});\r\n\r\n if(updateResult[0].name == name) {\r\n\r\n const suppliers = this.state.suppliers.filter(function(supplier){\r\n\r\n if(supplier.id == id) {\r\n\r\n supplier.name = name;\r\n }\r\n\r\n return supplier\r\n\r\n });\r\n\r\n this.setState({suppliers});\r\n\r\n return true;\r\n }\r\n }\r\n\r\n async handleAddSupplier(){\r\n\r\n const addSupplierResult = await API.post('soaptwo', '/suppliers',\r\n {body: {\r\n name: this.state.newSupplierName\r\n }});\r\n\r\n if(addSupplierResult.code == 1) {\r\n this.setState({suppliers: [...this.state.suppliers, addSupplierResult.data]});\r\n }\r\n\r\n this.setState({newSupplierName: \"\"})\r\n\r\n this.toggleAdd();\r\n }\r\n\r\n async componentDidMount() {\r\n\r\n const suppliersResult = await API.get('soaptwo', '/suppliers')\r\n\r\n this.setState({suppliers: suppliersResult});\r\n }\r\n\r\n render() {\r\n return (\r\n\r\n \r\n\r\n {this.state.suppliers != \"fetching\" && this.state.suppliers.map(supplier =>\r\n\r\n \r\n\r\n )}\r\n\r\n
\r\n\r\n {this.state.addOpen && (\r\n\r\n \r\n\r\n \r\n Supplier Name\r\n \r\n \r\n\r\n Add\r\n\r\n Cancel\r\n \r\n )}\r\n\r\n\r\n {!this.state.addOpen && (\r\n Add New\r\n )}\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default ExternalSuppliers;","import React, {Component} from 'react';\r\nimport {Card} from 'react-bootstrap';\r\n\r\nclass Expandable extends Component {\r\n\r\n state = {\r\n expanded: false\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.handleExpand = this.handleExpand.bind(this);\r\n }\r\n\r\n handleExpand(){\r\n if(this.state.expanded) {\r\n this.setState({expanded: false})\r\n } else {\r\n this.setState({expanded: true})\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n [{this.state.expanded ? '-' : '+'}] {this.props.title}\r\n \r\n\r\n {this.state.expanded && this.props.children}\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default Expandable;","import React, {Component} from 'react';\r\nimport {Button} from 'react-bootstrap';\r\n\r\nclass SearchResult extends Component {\r\n render() {\r\n return (\r\n

\r\n \r\n {this.props.resultName}\r\n \r\n

\r\n )\r\n }\r\n}\r\n\r\nexport default SearchResult;\r\n","import React, {Component} from 'react';\r\nimport {Form} from \"react-bootstrap\";\r\nimport Expandable from \"./expandable\"\r\nimport SearchResult from './searchResult.jsx'\r\nimport {API} from \"aws-amplify\";\r\n\r\nclass PanelVariables extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.onPanelVariablesSearch = this.onPanelVariablesSearch.bind(this);\r\n this.handlePanelVariablesSearch = this.handlePanelVariablesSearch.bind(this);\r\n this.onAddVariable = this.onAddVariable.bind(this);\r\n }\r\n\r\n state = {\r\n panelVariables: \"fetching\",\r\n displayedPanelVariables: [],\r\n searchTerm: \"\"\r\n };\r\n\r\n onPanelVariablesSearch(event){\r\n\r\n this.setState({searchTerm: event.target.value.toLowerCase()})\r\n\r\n this.handlePanelVariablesSearch(this.state.searchTerm)\r\n }\r\n\r\n handlePanelVariablesSearch (searchTerm) {\r\n const selectedPanelVariableIds = this.props.selectedPanelVariables.map(\r\n variable => variable.id);\r\n\r\n let displayedPanelVariables = this.state.panelVariables.filter(variable => {\r\n return !selectedPanelVariableIds.includes(variable.id)\r\n });\r\n\r\n displayedPanelVariables = displayedPanelVariables.filter((variable) => {\r\n\r\n let varnameSearchValue = \"\";\r\n let labelSearchValue = \"\";\r\n\r\n if(variable.varname != null) {\r\n varnameSearchValue = variable.varname.toLowerCase();\r\n }\r\n\r\n if(variable.label != null) {\r\n labelSearchValue = variable.label.toLowerCase();\r\n }\r\n\r\n return varnameSearchValue.indexOf(searchTerm) !== -1 || labelSearchValue.indexOf(searchTerm) !== -1;\r\n });\r\n\r\n this.setState({\r\n displayedPanelVariables: displayedPanelVariables\r\n })\r\n }\r\n\r\n async onAddVariable(event){\r\n\r\n await this.props.onAddVariable(event);\r\n\r\n this.handlePanelVariablesSearch(this.state.searchTerm);\r\n }\r\n\r\n async componentDidMount() {\r\n\r\n try {\r\n const panelVariablesResult = await API.get(\"soap\", \"/panelvariables/\");\r\n\r\n this.setState({panelVariables: panelVariablesResult});\r\n\r\n } catch (e) {\r\n alert(e)\r\n }\r\n\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n\r\n {this.props.selectedPanelVariables.map(variable =>\r\n \r\n

\r\n

{variable.varname}

\r\n

\r\n

{variable.label}

\r\n

\r\n {variable.categories &&\r\n \r\n {variable.categories.map(answer =>\r\n

{answer.label}

\r\n )}\r\n
\r\n\r\n }\r\n

\r\n
\r\n )}\r\n\r\n {this.state.panelVariables != \"fetching\" && (\r\n \r\n Search Variables to Add\r\n \r\n \r\n )}\r\n {this.state.displayedPanelVariables.map(variable =>\r\n \r\n )}\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default PanelVariables;\r\n","import React, {Component} from 'react';\r\nimport {Dropdown, DropdownItem} from \"react-bootstrap\";\r\nimport { FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\nimport { faCog} from \"@fortawesome/free-solid-svg-icons\";\r\nimport {LinkContainer} from 'react-router-bootstrap';\r\nimport {Auth} from \"aws-amplify\";\r\n\r\nclass Navigation extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.handleLogout = this.handleLogout.bind(this);\r\n }\r\n\r\n async handleLogout() {\r\n\r\n await Auth.signOut();\r\n\r\n window.location.replace(\"/login\");\r\n }\r\n\r\n state = {};\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 Project List\r\n \r\n \r\n \r\n \r\n Administration Settings\r\n \r\n \r\n \r\n \r\n My Details\r\n \r\n \r\n \r\n \r\n Mail Templates\r\n \r\n \r\n \r\n \r\n Archived Projects\r\n \r\n \r\n Log out\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default Navigation","import React, {Component} from 'react';\r\nimport Users from \"./users\";\r\nimport Filters from \"./filters\";\r\nimport TrafficLightSettings from \"./trafficLightSettings.jsx\";\r\nimport ReturnParameters from \"./returnParameters\";\r\nimport GdprDelete from \"./gdprDelete\";\r\nimport PageContentTextBox from './pageContentTextBox';\r\nimport ExternalSuppliers from './externalSuppliers';\r\nimport {Link} from 'react-router-dom';\r\nimport {API} from \"aws-amplify\";\r\nimport PanelVariables from \"./panelVariables\";\r\nimport Navigation from \"./navigation\";\r\n\r\n\r\nclass administration extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.handleAddPanelVariable = this.handleAddPanelVariable.bind(this)\r\n this.handleFilterSave = this.handleFilterSave.bind(this);\r\n this.handleFilterDelete = this.handleFilterDelete.bind(this);\r\n this.handleFilterStatusChange = this.handleFilterStatusChange.bind(this);\r\n this.handlePageContentSave = this.handlePageContentSave.bind(this);\r\n }\r\n\r\n async handleAddPanelVariable(event) {\r\n const selectedVariableId = event.target.value;\r\n\r\n await API.post('soap', '/projects/0/panelvariables', {\r\n body: {'variableId': selectedVariableId}\r\n });\r\n\r\n try {\r\n const selectedPanelVariables = await API.get('soap',\r\n '/projects/0/panelvariables');\r\n\r\n this.setState({selectedPanelVariables})\r\n\r\n } catch (e) {\r\n alert(e)\r\n }\r\n }\r\n\r\n async handleFilterSave(filter){\r\n\r\n const projectId = 0;\r\n\r\n let result;\r\n\r\n result = await API.post('soaptwo', '/sfdl-validate', {\r\n body: {\r\n definition: filter.newFilterDefinition,\r\n projectId: projectId\r\n }\r\n });\r\n\r\n if(result.code == 1) {\r\n\r\n result = await API.post('soap', '/filters/', {\r\n body: {\r\n name: filter.newFilterName,\r\n definition: filter.newFilterDefinition,\r\n project_id: projectId\r\n }\r\n });\r\n }\r\n\r\n if(result.code == 1000) {\r\n this.setState({errors: {filter: result.errors}})\r\n\r\n return false;\r\n } else {\r\n\r\n try {\r\n const result = await API.get('soap', \"/projects/\" + projectId + \"/filters\");\r\n\r\n this.setState({filters: result});\r\n\r\n } catch(e) {\r\n alert(e);\r\n }\r\n\r\n return true\r\n }\r\n\r\n }\r\n\r\n async handleFilterDelete(event) {\r\n\r\n const id = event.target.value;\r\n\r\n const result = await API.del('soap', '/filters/' + id);\r\n\r\n const filters = this.state.filters.filter(filter => {\r\n return filter.id != id;\r\n });\r\n\r\n this.setState({filters});\r\n }\r\n\r\n async handleFilterStatusChange(filter) {\r\n\r\n const id = filter.id;\r\n\r\n const result = await API.patch('soap', '/filters/' + id, {\r\n body: {\r\n active: !filter.active\r\n }\r\n });\r\n\r\n const filters = this.state.filters.map(filter => {\r\n if(filter.id == id) {\r\n filter.active = result[0].active;\r\n return filter;\r\n } else {\r\n return filter;\r\n }\r\n });\r\n\r\n this.setState({filters});\r\n }\r\n\r\n handlePageContentSave(pageName, content) {\r\n\r\n let result = API.patch('soaptwo', '/defaultpagescontent/' + pageName, {body:\r\n {content: content}\r\n });\r\n\r\n let copiedPagesContent = JSON.parse(JSON.stringify(this.state.pagesContent));\r\n\r\n copiedPagesContent[pageName] = content;\r\n\r\n console.log(copiedPagesContent);\r\n\r\n this.setState({pagesContent: copiedPagesContent});\r\n\r\n }\r\n\r\n state = {\r\n filters: \"fetching\",\r\n selectedPanelVariables: \"fetching\",\r\n pagesContent: \"fetching\",\r\n errors: {}\r\n };\r\n\r\n async componentDidMount() {\r\n try {\r\n const result = await API.get('soap', \"/projects/0/filters\");\r\n\r\n this.setState({filters: result});\r\n\r\n } catch(e) {\r\n alert(e);\r\n }\r\n\r\n try {\r\n const selectedPanelVariables = await API.get('soap',\r\n '/projects/0/panelvariables');\r\n\r\n this.setState({selectedPanelVariables})\r\n\r\n } catch (e) {\r\n alert(e)\r\n }\r\n\r\n try {\r\n const result = await API.get(\"soaptwo\", \"/defaultpagescontent/\");\r\n\r\n let pagesContent = {};\r\n\r\n result.forEach(row => {\r\n pagesContent[row.page_name] = row.content\r\n });\r\n\r\n this.setState({pagesContent});\r\n\r\n\r\n } catch (e) {\r\n alert(e)\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n

Administration

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

Users

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

Global Panel Filters

\r\n {this.state.selectedPanelVariables != \"fetching\" && (\r\n \r\n )}\r\n\r\n {this.state.filters != \"fetching\" && this.state.panelVariables != \"fetching\" && (\r\n \r\n )}\r\n

Traffic Light Bands

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

Return parameters

\r\n\r\n

Unique Identifiers

\r\n

\"yscode\" is the default unique identifier return parameter. Alternative unique identifier return\r\n parameters can be defined here

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

Result Code

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

GDPR Requests

\r\n \r\n\r\n {this.state.pagesContent != \"fetching\" && (\r\n\r\n \r\n\r\n

Landing Page

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

End pages

\r\n\r\n
Completed
\r\n \r\n\r\n
Screened out
\r\n \r\n\r\n
Quota fail
\r\n \r\n\r\n
Quality fail
\r\n \r\n\r\n\r\n

Error Pages

\r\n\r\n
Incorrect URL
\r\n \r\n\r\n
Already Completed
\r\n \r\n\r\n
Multiple Participations
\r\n \r\n\r\n
Project Closed
\r\n \r\n\r\n\r\n
\r\n )}\r\n\r\n\r\n

External Suppliers

\r\n\r\n \r\n\r\n\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default administration;\r\n","import React, {Component} from 'react';\r\nimport {Button, Form} from \"react-bootstrap\";\r\nimport {Auth, Amplify, API} from 'aws-amplify'\r\nimport {Link} from \"react-router-dom\";\r\nimport Navigation from \"./navigation\";\r\n\r\nclass myDetails extends Component {\r\n\r\n state = {\r\n password: \"\",\r\n email: \"\",\r\n username: \"\",\r\n message: \"\"\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.handleInputChange = this.handleInputChange.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n }\r\n\r\n async componentDidMount(){\r\n const userInfo = await Auth.currentUserInfo();\r\n console.log(userInfo);\r\n\r\n this.setState({\r\n email: userInfo.attributes.email,\r\n username: userInfo.username\r\n });\r\n }\r\n\r\n handleInputChange(event) {\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n\r\n const name = target.name;\r\n\r\n console.log(name);\r\n\r\n this.setState({\r\n [name]: value\r\n });\r\n }\r\n\r\n async handleSave(){\r\n\r\n await API.patch('soapthree', '/users', {\r\n 'body': {\r\n email: this.state.email,\r\n username: this.state.username,\r\n password: this.state.password\r\n }\r\n });\r\n\r\n this.setState({message: \"Updated\"});\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n\r\n \r\n\r\n

Update User Details

\r\n\r\n \r\n Email\r\n \r\n \r\n\r\n \r\n Password\r\n \r\n \r\n\r\n Save\r\n\r\n

{this.state.message}

\r\n
\r\n )\r\n }\r\n\r\n}\r\n\r\nexport default myDetails;","import React, { Component } from 'react';\r\nimport Confirm from \"./confirm.jsx\"\r\nimport { Link } from 'react-router-dom';\r\n\r\nclass Project extends Component {\r\n\r\n render(){\r\n return (\r\n \r\n {this.props.trafficLightLimits != \"fetching\" && this.props.project.projectInfo.map(function(item) {\r\n\r\n let style = null;\r\n\r\n let itemValue = item.value;\r\n\r\n if(['responseRate', 'resultRate', 'incidenceRate', 'dropoutRate'].includes(item.key)) {\r\n\r\n itemValue = Math.round(itemValue);\r\n\r\n if(item.key == 'incidenceRate' && this.props.project.expectedIncidenceRate) {\r\n if(this.props.project.expectedIncidenceRate < item.value) {\r\n style = {backgroundColor: '#99ffa7'};\r\n }\r\n else if (\r\n (this.props.project.expectedIncidenceRate - (this.props.project.expectedIncidenceRate * .25))\r\n < item.value) {\r\n style = {backgroundColor: '#fffc96'};\r\n }\r\n else {\r\n style = {backgroundColor: '#ff8787'};\r\n }\r\n } else {\r\n\r\n if (this.props.trafficLightLimits[item.key].yellow < item.value) {\r\n style = {backgroundColor: '#99ffa7'};\r\n } else if (this.props.trafficLightLimits[item.key].red < item.value) {\r\n style = {backgroundColor: '#fffc96'};\r\n } else {\r\n style = {backgroundColor: '#ff8787'};\r\n }\r\n }\r\n }\r\n\r\n if(item.key == 'jobNumber') {\r\n return (\r\n \r\n {item.value}\r\n \r\n )\r\n }\r\n\r\n if(item.key == 'clientName') {\r\n return (\r\n \r\n {item.value}\r\n \r\n )\r\n }\r\n\r\n if(['startDate', 'endDate', 'closedDate'].includes(item.key)) {\r\n if(itemValue) {\r\n itemValue = new Date(itemValue).toLocaleDateString(\"en-GB\");\r\n }\r\n }\r\n\r\n return (\r\n {itemValue}\r\n )}, this)}\r\n \r\n Open\r\n \r\n \r\n Edit\r\n \r\n \r\n { this.props.project.closedDate && (\r\n \r\n {confirm => (\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n )\r\n }\r\n}\r\nexport default Project;\r\n","import React, { Component } from 'react';\r\nimport Project from './project.jsx';\r\nimport { Link } from 'react-router-dom';\r\n\r\nclass Projects extends Component {\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.props.projects[0].projectInfo.map(item =>\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n { this.props.projects.map(project =>\r\n \r\n )}\r\n \r\n
{item.name}
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default Projects;\r\n","import React, { Component } from 'react';\r\nimport Faker from 'faker';\r\nimport Projects from './projects.jsx';\r\nimport {Link} from 'react-router-dom';\r\nimport {API, Auth} from \"aws-amplify\";\r\nimport Navigation from \"./navigation\";\r\n\r\nclass projectList extends Component {\r\n\r\n\r\n\r\n constructor(props) {\r\n super(props);\r\n this.handleProjectDelete = this.handleProjectDelete.bind(this);\r\n\r\n let projects = [];\r\n\r\n const { clientId } = this.props.match.params;\r\n\r\n let clientName = Faker.company.companyName();\r\n\r\n this.state = {\r\n projects: \"fetching\",\r\n trafficLightLimits: \"fetching\"\r\n };\r\n }\r\n\r\n async componentDidMount() {\r\n\r\n\r\n try {\r\n\r\n let endpoint = \"/projects\"\r\n\r\n if(this.props.match.params.clientId) {\r\n endpoint = \"/clients/\" + this.props.match.params.clientId + \"/projects\";\r\n }\r\n\r\n const result = await API.get(\"soaptwo\", endpoint);\r\n\r\n const projects = result.map(function(project){\r\n\r\n return (\r\n {\r\n id: project.id,\r\n projectNumber: project.job_number,\r\n projectName: project.name,\r\n target: project.target_completes,\r\n completed: project.completed,\r\n clientName: project.client,\r\n clientId: project.client_id,\r\n expectedIncidenceRate: project.expected_incidence_rate,\r\n closedDate: project.closed_date,\r\n projectInfo: [\r\n {key: 'jobNumber',name: 'Job Number', value: project.job_number},\r\n {key: 'projectName',name: 'Project name', value: project.name},\r\n {key: 'clientName', name: 'Client', value: project.client},\r\n {key: 'projectProgress',name: 'Progress', value: project.completed + ' / ' + project.target_completes},\r\n {key: 'responseRate',name: 'Response Rate (%)', value: project.started / project.sent * 100},\r\n {key: 'incidenceRate',name: ' Incidence Rate (%) ',value: project.completed /\r\n (project.completed + project.screenout + project.quota_full + project.quality_fail) * 100},\r\n {key: 'surveyLength', name: 'LOI', value: project.survey_length},\r\n {key: 'dropoutRate',name: ' Drop out Rate (%) ', value: (project.dropouts / project.started * 100)},\r\n {key: 'startDate',name: ' Start Date ', value: project.start_date},\r\n {key: 'endDate',name: 'End Date', value: project.end_date},\r\n {key: 'closedDate',name: ' Closed Date ', value: project.closed_date},\r\n {key: 'defaultIncentive', name: 'Incentive', value: project.default_incentive}\r\n ]\r\n\r\n });\r\n });\r\n\r\n this.setState({projects: projects});\r\n } catch (e) {\r\n alert(e);\r\n }\r\n\r\n try {\r\n\r\n const trafficLightsresult = await API.get(\"soaptwo\", '/trafficlightbands');\r\n\r\n let trafficLightLimits = {};\r\n\r\n console.log(trafficLightsresult);\r\n\r\n for(let stat of trafficLightsresult) {\r\n\r\n trafficLightLimits[stat.rate_type + \"Rate\"] = {};\r\n trafficLightLimits[stat.rate_type + \"Rate\"].red = stat.red_limit;\r\n trafficLightLimits[stat.rate_type + \"Rate\"].yellow = stat.yellow_limit;\r\n\r\n }\r\n\r\n console.log(trafficLightLimits)\r\n\r\n this.setState({trafficLightLimits});\r\n\r\n } catch(e) {\r\n console.log(e)\r\n }\r\n\r\n }\r\n\r\n async handleProjectDelete(event){\r\n\r\n const projectId = parseInt(event.target.value)\r\n\r\n const userInfo = await Auth.currentUserInfo();\r\n\r\n try {\r\n await API.del('soaptwo', '/projects/' + projectId, {\r\n body: {archivedBy: userInfo.username}\r\n });\r\n } catch (e) {\r\n alert(e)\r\n }\r\n\r\n const projects = this.state.projects.filter(p => p.id !== projectId);\r\n\r\n this.setState({projects});\r\n\r\n\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n

\r\n {this.props.match.params.clientId && (this.state.projects[0].clientName + \" \")}\r\n Project List

\r\n
\r\n {this.state.projects != \"fetching\" && (\r\n \r\n )}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default projectList;\r\n","import React, {Component} from \"react\";\r\nimport {Form, FormControl} from 'react-bootstrap';\r\n\r\nclass ErrorDisplayingFormField extends Component {\r\n\r\n render() {\r\n return (\r\n \r\n {this.props.label}\r\n \r\n\r\n {this.props.errors[this.props.name] && (\r\n {this.props.label + \" \" + this.props.errors[this.props.name].message}\r\n )}\r\n\r\n \r\n )\r\n }\r\n\r\n}\r\n\r\nexport default ErrorDisplayingFormField;","import React, {Component} from 'react';\r\nimport {Button} from 'react-bootstrap';\r\nimport ErrorDisplayingFormField from \"./errorDisplayingFormField\";\r\n\r\nclass ExternalSample extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n this.handleChange = this.handleChange.bind(this);\r\n }\r\n\r\n\r\n handleChange(event) {\r\n\r\n const sends = event.target.value;\r\n\r\n this.props.onChangeSend(this.props.supplier.id, sends)\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n {this.props.supplier.name}\r\n\r\n \r\n\r\n \r\n
\r\n )\r\n\r\n }\r\n}\r\n\r\nexport default ExternalSample;\r\n","import React, {Component} from \"react\";\r\nimport {Form, Button} from 'react-bootstrap';\r\nimport ExternalSample from './externalSample.jsx';\r\nimport {Link} from \"react-router-dom\";\r\n\r\nclass ExternalSamples extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n this.handleChange = this.handleChange.bind(this);\r\n }\r\n\r\n state = {\r\n externalSampleSupplierIdToAdd: null,\r\n }\r\n\r\n\r\n handleChange(event) {\r\n\r\n const supplierId = event.target.value;\r\n\r\n this.setState({\r\n externalSampleSupplierIdToAdd: supplierId\r\n })\r\n }\r\n\r\n render() {\r\n return (\r\n\r\n \r\n {this.props.externalSampleSuppliers != \"fetching\" &&\r\n this.props.selectedExternalSampleSuppliers\r\n && this.props.selectedExternalSampleSuppliers.map((supplier) =>\r\n \r\n )}\r\n
\r\n

\r\n \r\n Supplier Name\r\n \r\n \r\n {this.props.externalSampleSuppliers != \"fetching\" &&\r\n this.props.externalSampleSuppliers.filter(supplier => !supplier.selected).map(supplier =>\r\n \r\n )}\r\n \r\n \r\n \r\n
\r\n\r\n Administration Settings (click here to add a new External Supplier)\r\n\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default ExternalSamples;\r\n","import React, {Component} from 'react';\r\nimport {Form, Button} from 'react-bootstrap';\r\nimport {API} from 'aws-amplify';\r\n\r\nclass SelectProjectClient extends Component {\r\n\r\n state = {\r\n searchOpen: false,\r\n clients: \"fetching\",\r\n displayedClients: []\r\n };\r\n\r\n constructor(props){\r\n super(props);\r\n\r\n this.handleInputChange = this.handleInputChange.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleSaveNew = this.handleSaveNew.bind(this);\r\n this.handleSelectClick = this.handleSelectClick.bind(this)\r\n }\r\n\r\n async componentDidMount() {\r\n\r\n const result = await API.get('soaptwo', '/clients')\r\n\r\n this.setState({clients: result});\r\n\r\n const clientName = this.state.clients.filter(client =>\r\n client.id == this.props.clientId\r\n )[0].name;\r\n\r\n this.setState({clientName});\r\n\r\n }\r\n\r\n handleInputChange(event) {\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n const name = target.name;\r\n\r\n this.setState({\r\n [name]: value\r\n });\r\n }\r\n\r\n handleChange(event){\r\n\r\n this.setState({searchOpen: true});\r\n\r\n this.handleInputChange(event);\r\n\r\n let searchTerm = event.target.value.toLowerCase();\r\n\r\n const displayedClients = this.state.clients.filter((client) => {\r\n let searchValue = client.name.toLowerCase();\r\n return searchValue.indexOf(searchTerm) !== -1;\r\n });\r\n\r\n this.setState({displayedClients});\r\n }\r\n\r\n async handleSaveNew() {\r\n\r\n const result = await API.post('soaptwo', '/clients', {\r\n body: {\r\n name: this.state.clientName,\r\n }\r\n }) ;\r\n }\r\n\r\n handleSelectClick(event){\r\n this.props.onSelect(event);\r\n\r\n this.setState({searchOpen: false, displayedClients: []})\r\n\r\n const clientName = this.state.clients.filter(client =>\r\n client.id == event.target.value\r\n )[0].name;\r\n\r\n this.setState({clientName})\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n \r\n\r\n \r\n Client/Company\r\n {this.state.clients != \"fetching\" && (\r\n \r\n )}\r\n \r\n\r\n {this.state.searchOpen &&(\r\n\r\n Save as new client\r\n\r\n )}\r\n\r\n {this.state.displayedClients.map(client =>\r\n

\r\n Select\r\n {client.name}\r\n

\r\n )}\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default SelectProjectClient;","import React, {Component} from \"react\";\r\nimport {Form, FormControl} from 'react-bootstrap';\r\n\r\nclass ErrorDisplayingSelect extends Component {\r\n\r\n render() {\r\n return (\r\n \r\n {this.props.label}\r\n \r\n \r\n {this.props.options.map(option =>\r\n \r\n )}\r\n \r\n\r\n {this.props.errors[this.props.name] && (\r\n {this.props.label + \" \" + this.props.errors[this.props.name].message}\r\n )}\r\n\r\n \r\n )\r\n }\r\n\r\n}\r\n\r\nexport default ErrorDisplayingSelect;","import React, {Component} from 'react';\r\nimport {Form, Button, FormControl} from 'react-bootstrap';\r\nimport ExternalSamples from './externalSamples.jsx'\r\nimport { BrowserRouter as Router} from \"react-router-dom\";\r\nimport SelectProjectClient from './selectProjectClient';\r\nimport {Link} from 'react-router-dom';\r\nimport {API, Auth} from 'aws-amplify';\r\nimport ErrorDisplayingFormField from './errorDisplayingFormField';\r\nimport ErrorDisplayingSelect from \"./errorDisplayingSelect\";\r\nimport Navigation from \"./navigation\";\r\n\r\nclass setupProject extends Component {\r\n\r\n\r\n\r\n\r\n state = {\r\n usingExternalSample: false,\r\n mobile_compatability: false,\r\n screen_out_probability: 0,\r\n externalSampleSuppliers: \"fetching\",\r\n selectedExternalSampleSuppliers: [],\r\n client_id: 35,\r\n errors: {},\r\n start_date: new Date().toISOString().split('T')[0]\r\n }\r\n\r\n constructor(props){\r\n super(props);\r\n\r\n this.handleInputChange = this.handleInputChange.bind(this);\r\n this.handleAddExternalSample = this.handleAddExternalSample.bind(this);\r\n this.handleChangeExternalSampleSend = this.handleChangeExternalSampleSend.bind(this);\r\n this.handleDeleteExternalSample = this.handleDeleteExternalSample.bind(this);\r\n this.handleCancel = this.handleCancel.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n this.handleSelectClient = this.handleSelectClient.bind(this);\r\n }\r\n\r\n async componentDidMount() {\r\n\r\n\r\n let result = await API.get('soaptwo', '/projects/' + this.props.match.params.id);\r\n\r\n if(result[0]) {\r\n result[0]['start_date'] = result[0]['start_date'].split('T')[0];\r\n result[0]['end_date'] = result[0]['end_date'].split('T')[0];\r\n\r\n this.setState(result[0]);\r\n\r\n result = await API.get('soaptwo', '/projects/' + this.props.match.params.id + '/suppliers')\r\n\r\n result = result.filter(result => result.supplier_id);\r\n\r\n this.setState({selectedExternalSampleSuppliers: result});\r\n\r\n if(result.length) {\r\n this.setState({usingExternalSample: true})\r\n }\r\n }\r\n\r\n const externalSampleSuppliers = await API.get('soaptwo', '/suppliers');\r\n\r\n externalSampleSuppliers.map(supplier => {\r\n if(this.state.selectedExternalSampleSuppliers.map(supplier => supplier.id).includes(supplier.id)) {\r\n\r\n supplier.selected = true;\r\n\r\n return supplier;\r\n }\r\n });\r\n\r\n this.setState({externalSampleSuppliers});\r\n }\r\n\r\n handleSelectClient(event) {\r\n const clientId = event.target.value;\r\n\r\n this.setState({client_id: clientId});\r\n }\r\n\r\n handleInputChange(event) {\r\n\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n const name = target.name;\r\n\r\n this.setState({\r\n [name]: value\r\n });\r\n }\r\n\r\n handleAddExternalSample(supplierId) {\r\n\r\n if(supplierId > 0) {\r\n const selectedExternalSampleSuppliers = [...this.state.selectedExternalSampleSuppliers,\r\n {\r\n id: supplierId,\r\n sends: 0\r\n }];\r\n\r\n this.setState({selectedExternalSampleSuppliers});\r\n\r\n let externalSampleSuppliers = JSON.parse(JSON.stringify(this.state.externalSampleSuppliers));\r\n\r\n externalSampleSuppliers.forEach(supplier => {\r\n if(supplier.id == supplierId) {\r\n supplier.selected = true;\r\n }\r\n });\r\n\r\n this.setState({externalSampleSuppliers});\r\n }\r\n }\r\n\r\n handleChangeExternalSampleSend(supplierId, sends) {\r\n\r\n let selectedExternalSampleSuppliers = this.state.selectedExternalSampleSuppliers;\r\n\r\n selectedExternalSampleSuppliers = selectedExternalSampleSuppliers.map(function(supplier){\r\n if(supplier.id == supplierId) {\r\n supplier.sent = sends;\r\n }\r\n\r\n return supplier;\r\n })\r\n\r\n this.setState({selectedExternalSampleSuppliers});\r\n }\r\n\r\n handleDeleteExternalSample(supplierId) {\r\n\r\n const selectedExternalSampleSuppliers = this.state.selectedExternalSampleSuppliers.filter(\r\n supplier => supplier.id !== supplierId);\r\n\r\n this.setState({selectedExternalSampleSuppliers});\r\n\r\n let externalSampleSuppliers = JSON.parse(JSON.stringify(this.state.externalSampleSuppliers));\r\n\r\n externalSampleSuppliers.forEach(supplier => {\r\n if(supplier.id == supplierId) {\r\n supplier.selected = false;\r\n }\r\n });\r\n\r\n this.setState({externalSampleSuppliers});\r\n }\r\n\r\n handleCancel(){\r\n this.props.history.goBack();\r\n }\r\n\r\n async handleSave(destination){\r\n\r\n let projectId = this.props.match.params.id ? this.props.match.params.id : \"\";\r\n\r\n const userInfo = await Auth.currentUserInfo();\r\n\r\n const callBody = {\r\n job_number: this.state.job_number,\r\n name: this.state.name,\r\n type: this.state.type,\r\n client_id: this.state.client_id + \"\",\r\n start_date: this.state.start_date,\r\n end_date: this.state.end_date,\r\n target_completes: this.state.target_completes + \"\",\r\n landing_page_text: this.state.landing_page_text,\r\n survey_length: this.state.survey_length + \"\",\r\n expected_incidence_rate: this.state.expected_incidence_rate + \"\",\r\n mobile_compatability: this.state.mobile_compatability,\r\n screen_out_probability: this.state.screen_out_probability + \"\",\r\n creator: userInfo.username\r\n };\r\n\r\n let result = \"\";\r\n\r\n if(this.props.match.params.id) {\r\n result = await API.patch('soaptwo', \"/projects/\" + projectId, {body: callBody});\r\n }\r\n else {\r\n result = await API.post('soaptwo', \"/projects/\" + projectId, {body: callBody});\r\n }\r\n\r\n let isErrors = false;\r\n\r\n if(result.code == 1000) {\r\n\r\n isErrors = true;\r\n\r\n this.setState({errors: result.errors})\r\n } else {\r\n\r\n projectId = result[0].id;\r\n\r\n if (this.state.selectedExternalSampleSuppliers.length) {\r\n\r\n result = await API.patch('soaptwo', '/projects/' + projectId + \"/suppliers\", {\r\n body:\r\n {\r\n suppliers: this.state.selectedExternalSampleSuppliers.map(\r\n supplier => {return {id: supplier.id, sends: supplier.sent}})\r\n }\r\n })\r\n\r\n if(result.code == 1000) {\r\n isErrors = true;\r\n this.setState({errors: result.errors})\r\n }\r\n\r\n }\r\n }\r\n\r\n if(!isErrors) {\r\n if (destination === \"list\") {\r\n this.props.history.push('/');\r\n } else if (destination == \"view\") {\r\n this.props.history.push('/project-view/' + projectId);\r\n }\r\n }\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n\r\n

New Project

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

\r\n
\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n Screen-out Probability\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.usingExternalSample && this.state.externalSampleSuppliers != \"fetching\" &&\r\n ()\r\n }\r\n\r\n \r\n Landing Page Text\r\n \r\n \r\n\r\n

\r\n\r\n
\r\n \r\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 setupProject;\r\n","import React, {Component} from 'react';\r\nimport {Form, Button} from 'react-bootstrap';\r\n\r\nclass YouthsightUrlForClient extends Component {\r\n\r\n copyToClipboard = (e) => {\r\n\r\n this.input.select();\r\n document.execCommand('copy');\r\n e.target.focus();\r\n }\r\n\r\n render(){\r\n return (\r\n\r\n \r\n Survey URL for {this.props.status}:\r\n \r\n {status}\r\n this.props.onChangeStatus(this.props.quota)}\r\n >{buttonText}\r\n \r\n );\r\n }\r\n\r\n openEditing() {\r\n\r\n this.setState({\r\n editing: true,\r\n name: this.props.quota.name,\r\n definition: this.props.quota.definition,\r\n target: this.props.quota.target,\r\n active: this.props.quota.active,\r\n id: this.props.quota.id\r\n });\r\n\r\n }\r\n\r\n makeEdit(){\r\n\r\n this.props.onEdit((({name, definition, target, active, id}) => ({name, definition, target, active, id}))(this.state));\r\n\r\n this.setState({editing: false});\r\n }\r\n\r\n handleCancel(){\r\n this.setState({editing: false});\r\n }\r\n\r\n state = {\r\n editing: false\r\n };\r\n\r\n\r\n\r\n render() {\r\n return (\r\n \r\n {!this.state.editing && (\r\n \r\n {this.props.quota.name}\r\n {this.props.quota.definition}\r\n {this.props.quota.target}\r\n {this.props.quota.achieved}\r\n {this.props.quota.target - this.props.quota.achieved}\r\n {this.props.quota.available}\r\n {this.renderStatusIndicator(this.props.quota.active)}\r\n \r\n \r\n {confirm => (\r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n {this.state.editing && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.props.quota.achieved}\r\n {this.props.quota.target - this.props.quota.achieved}\r\n {this.props.quota.available}\r\n \r\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 Quota;\r\n","import React, {Component} from 'react';\r\nimport {Table, Button, Form, FormControl} from 'react-bootstrap';\r\nimport Quota from \"./quota\";\r\nimport FilterDefinition from \"./filterDefinition\";\r\n\r\nclass Quotas extends Component {\r\n\r\n constructor(props){\r\n super(props);\r\n\r\n this.handleToggleNewQuota = this.handleToggleNewQuota.bind(this);\r\n this.handleInputChange = this.handleInputChange.bind(this);\r\n this.handleClickSave = this.handleClickSave.bind(this);\r\n\r\n this.handleDefinitionChange = this.handleDefinitionChange.bind(this);\r\n\r\n }\r\n\r\n handleToggleNewQuota() {\r\n this.setState({newQuotaOpen: !this.state.newQuotaOpen});\r\n }\r\n\r\n handleInputChange(event) {\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n const name = target.name;\r\n\r\n this.setState({\r\n [name]: value\r\n });\r\n }\r\n\r\n handleDefinitionChange(newDefinition){\r\n this.setState({newQuotaDefinition: newDefinition});\r\n }\r\n\r\n async handleClickSave(){\r\n\r\n const setSucessfully = await this.props.onSave(this.state);\r\n\r\n if(setSucessfully) {\r\n this.handleToggleNewQuota();\r\n }\r\n }\r\n\r\n state = {\r\n newQuotaOpen: false,\r\n newQuotaName: null,\r\n newQuotaDefinition: \"\",\r\n newQuotaTarget: null\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.project.quotas != \"fetching\" && this.props.project.quotas.map(quota =>\r\n \r\n )}\r\n
NameDefinitionTargetAchievedTo GetAvailableStatus
\r\n\r\n
\r\n {this.state.newQuotaOpen && (\r\n\r\n
\r\n \r\n Name\r\n \r\n {this.props.errors.name && (\r\n {this.props.errors.name.message}\r\n )}\r\n \r\n\r\n \r\n\r\n \r\n Target\r\n \r\n {this.props.errors.target && (\r\n {this.props.errors.target.message}\r\n )}\r\n \r\n\r\n Save\r\n Cancel\r\n
\r\n )\r\n }\r\n\r\n {!this.state.newQuotaOpen && (\r\n New\r\n )}\r\n\r\n Recalculate\r\n\r\n Last recalculated: \r\n {this.props.project.quotasLastRecalculated != \"fetching\" && (\r\n this.props.project.quotasLastRecalculated.toLocaleString('en-GB')\r\n )}\r\n \r\n\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default Quotas;\r\n","import React, {Component} from 'react';\r\nimport {Button} from 'react-bootstrap';\r\n\r\nclass Sample extends Component{\r\n\r\n constructor(props){\r\n super(props);\r\n\r\n }\r\nrender(){\r\n return (\r\n \r\n {this.props.sample.name}\r\n {this.props.sample.total}\r\n {this.props.sample.completed}\r\n {this.props.sample.rejected}\r\n {this.props.sample.exclusions}\r\n {this.props.sample.total - this.props.sample.completed - this.props.sample.rejected\r\n - this.props.sample.exclusions}\r\n {this.props.sample.lastRefreshed.toLocaleString('en-GB')}\r\n this.props.onRefresh(this.props.sample.id)}\r\n >Refresh\r\n \r\n )\r\n}\r\n}\r\n\r\nexport default Sample;\r\n","import React, {Component} from 'react';\r\nimport {Form, Table} from 'react-bootstrap';\r\nimport Sample from \"./sample\";\r\nimport SearchResult from \"./searchResult\";\r\n\r\nclass Samples extends Component{\r\n\r\n state = {\r\n samplesSearchTerm:\"\"\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.handleSearchType = this.handleSearchType.bind(this);\r\n this.handleAddClick = this.handleAddClick.bind(this)\r\n }\r\n\r\n\r\n async handleSearchType(event) {\r\n\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n\r\n const name = target.name;\r\n\r\n await this.setState({\r\n [name]: value\r\n });\r\n\r\n this.props.onSamplesSearch(this.state.samplesSearchTerm);\r\n }\r\n\r\n handleAddClick(event){\r\n\r\n this.setState({samplesSearchTerm: \"\"});\r\n\r\n const selectedSampleId = event.target.value;\r\n\r\n this.props.onAddSample(selectedSampleId);\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 {this.props.project.selectedSamples != \"fetching\" && this.props.project.selectedSamples.map(sample =>\r\n \r\n )}\r\n \r\n
NameTotalCompletedRejectedFilter/Quota ExclusionsAvailableLast refreshed
\r\n
\r\n

\r\n {this.props.project.samples != \"fetching\" && (\r\n \r\n Search Samples to Add\r\n \r\n \r\n )}\r\n {this.props.project.displayedSamples.map(sample =>\r\n \r\n )}\r\n\r\n\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default Samples;\r\n","import React, {Component} from 'react';\r\nimport {Button} from 'react-bootstrap';\r\n\r\nclass Incentive extends Component {\r\n\r\n constructor(props){\r\n super(props);\r\n this.handleEdit = this.handleEdit.bind(this);\r\n this.handleDelete = this.handleDelete.bind(this);\r\n }\r\n\r\n handleEdit() {\r\n this.props.onEdit({\r\n quota: this.props.incentive.quota,\r\n filter: this.props.incentive.filter,\r\n points: this.props.incentive.points,\r\n });\r\n\r\n\r\n //JFTODO make this less hacky\r\n\r\n this.props.onDelete(this.props.incentive.id)\r\n }\r\n\r\n handleDelete() {\r\n this.props.onDelete(this.props.incentive)\r\n }\r\n\r\nrender() {\r\n return (\r\n \r\n {this.props.incentive.type}\r\n {this.props.incentive.name}\r\n {this.props.incentive.points}\r\n Edit\r\n Delete\r\n \r\n )\r\n}\r\n}\r\n\r\nexport default Incentive;\r\n","import React, {Component} from 'react';\r\nimport {Table, Form, Button, FormControl} from 'react-bootstrap';\r\nimport Incentive from \"./incentive\";\r\nimport {API} from \"aws-amplify\";\r\nimport EditableText from \"./editableText\";\r\n\r\n\r\nclass Incentives extends Component {\r\n\r\n constructor(props){\r\n super(props);\r\n\r\n this.handleToggleNewIncentive = this.handleToggleNewIncentive.bind(this);\r\n this.handleInputChange = this.handleInputChange.bind(this);\r\n this.handleClickSave = this.handleClickSave.bind(this);\r\n this.handleEdit = this.handleEdit.bind(this);\r\n\r\n }\r\n\r\n getIncentives(){\r\n\r\n let filtersWithPoints = this.props.project.filters.filter(filter => {\r\n return filter.points > 0;\r\n });\r\n\r\n filtersWithPoints = filtersWithPoints.map(filter => {\r\n return {...filter, type: \"filter\"}\r\n });\r\n\r\n let quotasWithPoints = this.props.project.quotas.filter(quota => {\r\n return quota.points > 0;\r\n });\r\n\r\n quotasWithPoints = quotasWithPoints.map(quota => {\r\n return {...quota, type: \"quota\"}\r\n });\r\n\r\n return [...filtersWithPoints, ...quotasWithPoints];\r\n }\r\n\r\n async componentDidMount(){\r\n try {\r\n const incentivesAwarded = await API.get(\"soaptwo\", \"/projects/\" + this.props.project.projectId + \"/pointsawarded\");\r\n\r\n this.setState({incentivesAwarded});\r\n\r\n } catch (e) {\r\n alert(e)\r\n }\r\n }\r\n\r\n handleToggleNewIncentive() {\r\n this.setState({newIncentiveOpen: !this.state.newIncentiveOpen});\r\n }\r\n\r\n handleInputChange(event) {\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n const name = target.name;\r\n\r\n this.setState({\r\n [name]: value\r\n });\r\n }\r\n\r\n async handleClickSave(){\r\n const setSucessfully = await this.props.onSave(this.state);\r\n\r\n if(setSucessfully) {\r\n this.handleToggleNewIncentive();\r\n }\r\n }\r\n\r\n handleEdit(editing){\r\n\r\n this.setState({\r\n newIncentiveQuota: editing.quota,\r\n newIncentiveFilter: editing.filter,\r\n newIncentivePoints: editing.points,\r\n newIncentiveOpen: true\r\n })\r\n }\r\n\r\n state = {\r\n newIncentiveOpen: false,\r\n newIncentiveType: 'quota',\r\n newIncentiveFilterOrQuota: null,\r\n newIncentivePoints: null,\r\n incentivesAwarded: \"fetching\"\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.state.incentivesAwarded != \"fetching\" && this.state.incentivesAwarded.map(incentive =>\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n\r\n
Incentive level (points)Number of panellists awarded
{incentive.incentiveLevel}{incentive.count}
\r\n

\r\n\r\n \r\n Default Incentive Level\r\n {this.props.project.defaultIncentive != \"fetching\" && (\r\n \r\n )}\r\n \r\n\r\n

\r\n

\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.getIncentives().map(incentive =>\r\n \r\n )}\r\n \r\n
TypeNamePoints
\r\n\r\n {this.state.newIncentiveOpen && (\r\n \r\n\r\n \r\n \r\n\r\n {this.state.newIncentiveType == 'quota' && (\r\n \r\n Quota\r\n \r\n \r\n {this.props.project.quotas.map(quota =>\r\n \r\n )}\r\n \r\n \r\n )}\r\n\r\n {this.state.newIncentiveType == 'filter' && (\r\n \r\n Filter\r\n \r\n \r\n {this.props.project.filters.map(filter =>\r\n \r\n )}\r\n \r\n \r\n )}\r\n\r\n\r\n \r\n Points\r\n \r\n\r\n {this.props.errors.points && (\r\n {this.props.errors.points.message}\r\n )}\r\n \r\n\r\n\r\n Save\r\n Cancel\r\n\r\n \r\n )}\r\n\r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default Incentives;\r\n","import React, {Component} from 'react';\r\nimport Faker from 'faker';\r\nimport {API} from 'aws-amplify';\r\n\r\nclass TestUrls extends Component {\r\n\r\n state = {\r\n urls: \"fetching\"\r\n }\r\n\r\n constructor(props){\r\n super(props)\r\n\r\n }\r\n\r\n async componentDidMount() {\r\n\r\n const baseUrl =\r\n window.location.origin.toString() + \"/landing?jobno=\" +\r\n this.props.project.projectNumber +\r\n \"&yscode=\";\r\n\r\n let yscodes = await API.get('return', '/test-ys-codes/' + this.props.project.projectNumber);\r\n\r\n let urls = yscodes.map(code => baseUrl + encodeURIComponent(code));\r\n\r\n this.setState({urls});\r\n\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n
\r\n {this.props.project.projectNumber != \"fetching\"\r\n && this.state.urls != \"fetching\" && this.state.urls.map(url =>\r\n

{url}

\r\n )}\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default TestUrls;\r\n","import React, {Component} from 'react';\r\nimport {Table, Form, Button} from 'react-bootstrap';\r\nimport {API} from 'aws-amplify';\r\n\r\nclass Testers extends Component{\r\n\r\n constructor(props){\r\n super(props);\r\n\r\n this.state = {\r\n testers: \"fetching\",\r\n testerStatuses: \"fetching\"\r\n };\r\n\r\n this.state.selectedUserEmail = this.props.project.users[0].email\r\n\r\n this.updateTesterEmails = this.updateTesterEmails.bind(this);\r\n this.handleTesterSelect = this.handleTesterSelect.bind(this);\r\n this.handleInputChange = this.handleInputChange.bind(this);\r\n this.handleUserChange = this.handleUserChange.bind(this);\r\n this.handleInvite = this.handleInvite.bind(this);\r\n this.handleReset = this.handleReset.bind(this);\r\n }\r\n\r\n async componentDidMount() {\r\n\r\n this.updateTesterEmails();\r\n }\r\n\r\n async updateTesterEmails() {\r\n\r\n const testerStatuses = await API.get('soaptwo', '/project-tester-statuses/'\r\n + this.props.project.projectId);\r\n\r\n await this.setState({testerStatuses});\r\n\r\n let testers = [];\r\n\r\n let emailComponents = this.state.selectedUserEmail.split('@');\r\n\r\n for(let i = 1; i < 51; i++) {\r\n\r\n let email = emailComponents[0] + i + \"@\" + emailComponents[1];\r\n\r\n let matchingTesterStatus = this.state.testerStatuses.filter(tester => tester.email == email);\r\n\r\n let status = \"fresh\";\r\n\r\n if(matchingTesterStatus.length) {\r\n status = matchingTesterStatus[0].status;\r\n }\r\n\r\n testers.push({\r\n email: email,\r\n status: status,\r\n selected: false\r\n })\r\n }\r\n\r\n this.setState({testers});\r\n }\r\n\r\n handleInputChange(event) {\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n const name = target.name;\r\n\r\n this.setState({\r\n [name]: value\r\n });\r\n }\r\n\r\n async handleUserChange(event){\r\n\r\n await this.handleInputChange(event);\r\n\r\n this.updateTesterEmails();\r\n\r\n }\r\n\r\n handleTesterSelect(email){\r\n const testers = this.state.testers.map(tester => {\r\n if(tester.email == email) {\r\n tester.selected = !tester.selected;\r\n }\r\n return tester;\r\n })\r\n\r\n this.setState({testers});\r\n }\r\n\r\n async handleInvite(){\r\n\r\n const selectedTesters = this.state.testers.filter(tester => tester.selected)\r\n\r\n const testerEmails = selectedTesters.map(tester=> tester.email);\r\n\r\n await API.post('soap', '/mail-testers/' + this.props.project.projectNumber, {\r\n body: {\r\n emails: testerEmails,\r\n templateId: this.props.project.emailTemplate\r\n }\r\n });\r\n\r\n this.updateTesterEmails();\r\n\r\n }\r\n\r\n async handleReset(){\r\n\r\n const selectedTesters = this.state.testers.filter(tester => tester.selected)\r\n\r\n const testerEmails = selectedTesters.map(tester=> tester.email);\r\n\r\n await API.patch('soaptwo', '/project-tester-reset/' + this.props.project.projectId, {\r\n body: {\r\n emails: testerEmails\r\n }\r\n });\r\n\r\n this.updateTesterEmails();\r\n }\r\n\r\n render(){\r\n return (\r\n \r\n\r\n \r\n Select Test User\r\n \r\n {this.props.project.users.map(user =>\r\n {user.email}\r\n )}\r\n\r\n \r\n \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.testers != \"fetching\" && this.state.testers.map(tester =>\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n
EmailStatusSelect
{tester.email}{tester.status}\r\n this.handleTesterSelect(tester.email)}\r\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 Testers;\r\n","import React, {Component} from 'react';\r\nimport {Form, Table, Button, Modal} from 'react-bootstrap';\r\nimport Confirm from \"./confirm\";\r\nimport {API} from 'aws-amplify';\r\n\r\nclass InvitesReminders extends Component{\r\n\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n\r\n state = {\r\n isError: false,\r\n errorMessage: \"\"\r\n }\r\n\r\n async componentDidMount() {\r\n this.props.onSetQuotaCombinationsAvailableStat()\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 {!this.props.invite && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n {this.props.project.quotas.map(quota =>\r\n \r\n )}\r\n \r\n Select Quotas\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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.quotaCombinations.map(quota =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
TargetCompletedTo GetAvailableTo Send
Total{this.props.project.target}{this.props.project.totalCompletes}{this.props.project.target - this.props.project.totalCompletes}{this.props.quotasTotalAvailableStat}\r\n \r\n
{quota.name}{quota.target}{quota.achieved}{quota.target - quota.achieved}{quota.available}\r\n \r\n
\r\n \r\n x Still To Get\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n { confirm => (\r\n \r\n )\r\n }\r\n \r\n\r\n \r\n \r\n Send Failed\r\n \r\n\r\n \r\n

{this.props.errorMessage}

\r\n
\r\n\r\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 InvitesReminders;\r\n","import React, {Component} from 'react';\r\nimport {Form} from 'react-bootstrap';\r\nimport {API} from 'aws-amplify';\r\n\r\nclass ParameterSelector extends Component {\r\n\r\n constructor(props){\r\n super(props);\r\n\r\n this.handleInputChange = this.handleInputChange.bind(this);\r\n\r\n }\r\n\r\n handleInputChange(event) {\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n const name = target.name;\r\n\r\n this.setState({\r\n [name]: value\r\n });\r\n\r\n this.props.onSave(this.props.paramType, this.props.paramFor, value, this.props.defaultParam);\r\n }\r\n\r\n state = {\r\n params: \"fetching\",\r\n selectedParam: this.props.value\r\n };\r\n\r\n async componentDidMount() {\r\n\r\n const result = await API.get('soap', \"/\" + this.props.paramType + \"params/\")\r\n\r\n this.setState({params: result});\r\n\r\n }\r\n\r\n render() {\r\n return (\r\n\r\n \r\n {this.state.params != \"fetching\" &&(\r\n \r\n {this.props.title}\r\n \r\n {this.props.defaultParam && (\r\n \r\n )}\r\n {this.state.params.map(param =>\r\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 ParameterSelector;","import React, {Component} from 'react';\r\nimport {Form} from 'react-bootstrap';\r\nimport Faker from 'faker';\r\nimport ParameterSelector from './parameterSelector';\r\n\r\nclass YouthsightUrlForSupplier extends Component {\r\n\r\n render(){\r\n return (\r\n \r\n\r\n

{this.props.source.name}

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

{window.location.origin.toString()}/landing?jobno={this.props.project.projectNumber}\r\n &supplier={this.props.source.code}\r\n &{this.props.source.unique_identifier_param_name ? this.props.source.unique_identifier_param_name : 'id'}=

\r\n
\r\n\r\n\r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default YouthsightUrlForSupplier;\r\n","import React, {Component} from 'react';\r\nimport YouthsightUrlForSupplier from \"./youthSightUrlForSupplier\";\r\n\r\nclass YouthsightUrlsForSupplier extends Component {\r\n render() {\r\n return (\r\n \r\n {this.props.project.sources.filter(source => { return source.name != \"Internal\"})\r\n .map(source =>\r\n \r\n )}\r\n \r\n )\r\n }\r\n}\r\n\r\n\r\nexport default YouthsightUrlsForSupplier;","import React, {Component} from 'react';\r\nimport {Form, Button} from 'react-bootstrap';\r\nimport {API} from 'aws-amplify';\r\nimport ErrorDisplayingFormField from \"./errorDisplayingFormField\";\r\n\r\nclass SupplierUrlForYouthsight extends Component {\r\n\r\n constructor(props){\r\n super(props);\r\n\r\n this.handleInputChange = this.handleInputChange.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n }\r\n\r\n state = {...this.props.source, errors:{}};\r\n\r\n handleInputChange(event) {\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n const name = target.name;\r\n\r\n this.setState({\r\n [name]: value\r\n });\r\n }\r\n\r\n async handleSave(inputField) {\r\n\r\n const endPoint = \"/projects/\" +\r\n this.props.source.project_id +\r\n '/suppliers/' + this.props.source.supplier_id;\r\n\r\n let input = {};\r\n\r\n input[inputField] = this.state[inputField];\r\n\r\n const result = await API.patch('soaptwo', endPoint, {\r\n body: input\r\n });\r\n\r\n console.log(result);\r\n\r\n if(result.code == 1000) {\r\n this.setState({errors: result.errors});\r\n } else {\r\n this.setState({errors: {}});\r\n }\r\n\r\n }\r\n\r\n render(){\r\n return (\r\n \r\n

\r\n

{this.props.source.name}

\r\n\r\n \r\n Respondent ID Param\r\n \r\n this.handleSave('respondent_id_param')}\r\n >Save\r\n \r\n\r\n \r\n Project ID Param\r\n \r\n this.handleSave('project_id_param')}\r\n >Save\r\n \r\n\r\n \r\n \r\n\r\n this.handleSave('completed_url')}\r\n >Save\r\n \r\n\r\n \r\n \r\n this.handleSave('screenout_url')}\r\n >Save\r\n \r\n\r\n \r\n \r\n this.handleSave('quota_full_url')}\r\n >Save\r\n \r\n\r\n \r\n \r\n this.handleSave('quality_fail_url')}\r\n >Save\r\n \r\n

\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default SupplierUrlForYouthsight;\r\n","import React, {Component} from 'react';\r\nimport SupplierUrlForYouthsight from \"./supplierUrlForYouthsight\";\r\n\r\nclass SupplierUrlsForYouthsight extends Component {\r\n render(){\r\n return (\r\n \r\n {this.props.project.sources.filter(source => {\r\n return source.name != \"Internal\";\r\n }).map(source =>\r\n \r\n )}\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default SupplierUrlsForYouthsight;","import React, {Component} from \"react\";\r\nimport {Button, Form, FormControl} from \"react-bootstrap\";\r\nimport {API} from \"aws-amplify\";\r\n\r\nclass EditSentCount extends Component{\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.handleInputChange = this.handleInputChange.bind(this);\r\n this.handleClickSet = this.handleClickSet.bind(this);\r\n }\r\n\r\n state = {\r\n sendCount: 0,\r\n error: false\r\n }\r\n\r\n componentDidMount() {\r\n\r\n this.setState({sendCount: this.props.sendCount});\r\n\r\n }\r\n\r\n handleInputChange(event) {\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n const name = target.name;\r\n\r\n this.setState({\r\n [name]: value,\r\n error: false\r\n });\r\n }\r\n\r\n async handleClickSet() {\r\n\r\n let updateSendsResult = await API.patch('soaptwo',\r\n `/projects/${this.props.projectId}/suppliers`,\r\n {body: {\r\n preserveAbsent: true,\r\n suppliers: [{id: this.props.sourceId, sends: this.state.sendCount}]\r\n }});\r\n\r\n if(updateSendsResult.code == 1000) {\r\n this.setState({error: updateSendsResult.errors[Object.keys(updateSendsResult.errors)[0]]})\r\n } else {\r\n this.props.onSourceSentUpdate();\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n

Update {this.props.sourceName} sent count

\r\n \r\n \r\n\r\n {this.state.error && (\r\n {this.state.error.message}\r\n )}\r\n\r\n\r\n \r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default EditSentCount;","import React, { Component } from 'react';\r\nimport {Table} from 'react-bootstrap';\r\nimport {API} from \"aws-amplify\";\r\n\r\nclass CompletionStatsTable extends Component {\r\n\r\n state = {\r\n stats: \"fetching\"\r\n }\r\n\r\n async componentDidMount() {\r\n\r\n try {\r\n const statsResult = await API.get('soaptwo', '/completion-stats/' +\r\n this.props.projectId + '/' + this.props.interval);\r\n\r\n this.setState({stats: statsResult});\r\n\r\n } catch(error) {\r\n console.log(error);\r\n }\r\n\r\n }\r\n\r\n render(){\r\n return (\r\n \r\n

Per {this.props.interval}

\r\n \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.stats != \"fetching\" && (\r\n this.state.stats.map(row =>\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.interval} FromStartsCompletesScreenoutsQuota fullsQuality fails
{new Date(row.intervalStartDate).toLocaleDateString(\"en-GB\")}{row.starts}{row.complets}{row.screenouts}{row.quota_fulls}{row.quality_fails}
\r\n
\r\n )\r\n }\r\n}\r\nexport default CompletionStatsTable;\r\n","import React, {Component} from 'react';\r\nimport Faker from 'faker';\r\nimport {Link} from 'react-router-dom';\r\nimport {Table, Form, Button, FormControl} from 'react-bootstrap';\r\nimport Expandable from './expandable.jsx';\r\nimport YouthsightUrlForClient from \"./youthsightUrlForClient\";\r\nimport PanelVariables from \"./panelVariables\";\r\nimport Quotas from \"./quotas\";\r\nimport Filters from \"./filters\";\r\nimport Samples from \"./samples\";\r\nimport Incentives from \"./incentives\";\r\nimport TestUrls from \"./testUrls\";\r\nimport Testers from \"./testers\";\r\nimport InvitesReminders from \"./invitesReminders\";\r\nimport YouthsightUrlsForSupplier from \"./youthsightUrlsForSupplier\";\r\nimport SupplierUrlsForYouthsight from \"./supplierUrlsForYouthsight\";\r\nimport ParameterSelector from \"./parameterSelector\";\r\nimport {API} from \"aws-amplify\";\r\nimport EditableText from \"./editableText\";\r\nimport ErrorDisplayingFormField from \"./errorDisplayingFormField\";\r\nimport moment from 'moment';\r\nimport Navigation from \"./navigation\";\r\nimport EditSentCount from \"./editSentCount\";\r\nimport CompletionStatsTable from \"./completionStatsTable\";\r\n\r\nclass viewProject extends Component {\r\n\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n this.handleFilteringStatsUpdate = this.handleFilteringStatsUpdate.bind(this);\r\n\r\n this.handleSetTarget = this.handleSetTarget.bind(this);\r\n this.handleInputChange = this.handleInputChange.bind(this);\r\n\r\n this.handleClientSurveyUrlSave = this.handleClientSurveyUrlSave.bind(this);\r\n this.handleClientIdParamNameSave = this.handleClientIdParamNameSave.bind(this);\r\n\r\n this.handleAddPanelVariable = this.handleAddPanelVariable.bind(this);\r\n\r\n this.handleQuotaStatusChange = this.handleQuotaStatusChange.bind(this);\r\n this.handleQuotaDelete = this.handleQuotaDelete.bind(this);\r\n this.handleQuotaSave = this.handleQuotaSave.bind(this);\r\n this.handleQuotaEdit = this.handleQuotaEdit.bind(this);\r\n\r\n this.sourcesSentRefresh = this.sourcesSentRefresh.bind(this)\r\n\r\n this.handleSamplesSearch = this.handleSamplesSearch.bind(this);\r\n this.handleAddSample = this.handleAddSample.bind(this);\r\n this.handleSampleRefresh = this.handleSampleRefresh.bind(this);\r\n\r\n this.pollForNewSelectedSample = this.pollForNewSelectedSample.bind(this);\r\n this.pollForRefreshedSample = this.pollForRefreshedSample.bind(this);\r\n\r\n this.handleFilterSave = this.handleFilterSave.bind(this);\r\n this.handleFilterDelete = this.handleFilterDelete.bind(this);\r\n this.handleFilterStatusChange = this.handleFilterStatusChange.bind(this);\r\n this.handleFiltersRecalculate = this.handleFiltersRecalculate.bind(this);\r\n\r\n this.handleIncentiveDelete = this.handleIncentiveDelete.bind(this);\r\n this.handleIncentiveSave = this.handleIncentiveSave.bind(this);\r\n\r\n this.handleProjectClosedToggle = this.handleProjectClosedToggle.bind(this);\r\n\r\n this.handleParamSave = this.handleParamSave.bind(this);\r\n\r\n this.handleSetDefaultIncentive = this.handleSetDefaultIncentive.bind(this);\r\n\r\n this.handleInviteToggle = this.handleInviteToggle.bind(this);\r\n this.handleSelectQuota = this.handleSelectQuota.bind(this);\r\n this.onStatusReminderToggle = this.onStatusReminderToggle.bind(this);\r\n this.handleSetQuotaCombinationsAvailableStat = this.handleSetQuotaCombinationsAvailableStat.bind(this);\r\n this.handleSelectQuotas = this.handleSelectQuotas.bind(this);\r\n this.setTotalToSend = this.setTotalToSend.bind(this);\r\n this.handleToSendChange = this.handleToSendChange.bind(this);\r\n this.handleDistribute = this.handleDistribute.bind(this);\r\n this.handleTotalToSendChange = this.handleTotalToSendChange.bind(this)\r\n this.handleSend = this.handleSend.bind(this)\r\n\r\n const projectName = Faker.random.number(3) > 0 ? Faker.company.companyName() : null;\r\n\r\n this.state = {\r\n projectId: this.props.match.params.id,\r\n projectClosed: \"fetching\",\r\n projectNumber: \"fetching\",\r\n totalAvailable: 0,\r\n totalCompletes: 0,\r\n totalSent: 0,\r\n totalStarted: 0,\r\n totalScreenOuts: 0,\r\n totalQuoataFull: 0,\r\n totalQualityFail: 0,\r\n target: \"fetching\",\r\n sources: \"fetching\",\r\n completionCode: 0,\r\n selectedPanelVariables: [],\r\n quotas: \"fetching\",\r\n quotasLastRecalculated: \"fetching\",\r\n samples: \"fetching\",\r\n selectedSamples: \"fetching\",\r\n displayedSamples: [],\r\n filters: \"fetching\",\r\n filtersLastRecalculated: \"fetching\",\r\n defaultIncentive: \"fetching\",\r\n emailTemplates: \"fetching\",\r\n selectedEmailTemplate: null,\r\n users: \"fetching\",\r\n errors: {},\r\n client_survey_url: \"fetching\",\r\n clientIdParamName: \"fetching\",\r\n clientResultCodeParam: \"fetching\",\r\n invite: true,\r\n remindStatus: 'invited',\r\n selectedQuotas: [],\r\n totalStatusStats: \"fetching\",\r\n quotaCombinations: [],\r\n quotasTotalAvailableStat: 0,\r\n totalToSend: 0,\r\n distributeToSend: false,\r\n xToGet: 7,\r\n invitesRemindersIsError: false,\r\n invitesRemindersErrorMessage: '',\r\n sendBlocked: false\r\n }\r\n\r\n }\r\n\r\n async handleFilteringStatsUpdate() {\r\n try {\r\n const result = await API.get('soap', \"/projects/\" + this.props.match.params.id + \"/filters\");\r\n\r\n this.setState({filters: result, filtersLastRecalculated: new Date()});\r\n\r\n } catch(e) {\r\n alert(e);\r\n }\r\n\r\n try {\r\n const result = await API.get('soap', '/projects/' + this.props.match.params.id + '/groups');\r\n\r\n const selectedSamples = result.map(function(selectedSample){\r\n selectedSample.id = selectedSample.sample_id;\r\n\r\n selectedSample.name = this.state.samples.filter(sample => {\r\n return sample.sampleId == selectedSample.id;\r\n })[0].name;\r\n\r\n selectedSample.exclusions = selectedSample.filtered_out;\r\n selectedSample.lastRefreshed = new Date(selectedSample.last_refreshed);\r\n\r\n return selectedSample;\r\n }, this);\r\n\r\n this.setState({selectedSamples});\r\n } catch(e) {\r\n alert(e);\r\n }\r\n\r\n try {\r\n const result = await API.get('soap', '/projects/' + this.props.match.params.id + '/quotas');\r\n\r\n this.setState({quotas: result, quotasLastRecalculated: new Date()});\r\n } catch(e) {\r\n alert(e);\r\n }\r\n\r\n try {\r\n let statusStatsResult = await API.get('soaptwo', '/project-status-stats/' +\r\n this.state.projectId);\r\n\r\n await Promise.all([\r\n this.setState({totalStatusStats: statusStatsResult}),\r\n this.handleSetQuotaCombinationsAvailableStat()\r\n ]);\r\n\r\n await this.handleSelectQuotas();\r\n\r\n this.setTotalToSend();\r\n } catch(e) {\r\n alert(e);\r\n }\r\n }\r\n\r\n async componentDidMount() {\r\n\r\n try {\r\n const selectedPanelVariables = await API.get('soap', '/projects/' + this.props.match.params.id + '/panelvariables');\r\n\r\n this.setState({selectedPanelVariables})\r\n\r\n } catch (e) {\r\n alert(e)\r\n }\r\n\r\n try {\r\n const groupsResult = await API.get(\"soap\", \"/groups/\");\r\n\r\n this.setState({samples: groupsResult});\r\n\r\n\r\n } catch (e) {\r\n alert(e)\r\n }\r\n\r\n try {\r\n const result = await API.get(\"soaptwo\", \"/projects/\" + this.props.match.params.id);\r\n\r\n console.log(result);\r\n\r\n this.setState({\r\n projectId: result[0].id,\r\n projectNumber: result[0].job_number,\r\n projectName: result[0].name,\r\n projectType: result[0].type,\r\n client_survey_url: result[0].client_survey_url,\r\n clientIdParamName: result[0].client_id_param,\r\n startDate: new Date(result[0].start_date),\r\n clientUniqueIdentifierParam: {\r\n id: result[0].unique_identifier_param_id,\r\n name: result[0].unique_identifier_param\r\n },\r\n clientResultCodeParam: {\r\n id: result[0].result_code_param_id,\r\n name: result[0].result_code_param\r\n },\r\n defaultIncentive: result[0].default_incentive,\r\n target: result[0].target_completes,\r\n completionCode: result[0].complete_code,\r\n projectClosed: result[0].closed_date\r\n });\r\n\r\n } catch (e) {\r\n alert(e)\r\n }\r\n\r\n try {\r\n const result = await API.get('soaptwo', '/projects/' + this.props.match.params.id + \"/suppliers\");\r\n\r\n this.setState({sources: result});\r\n\r\n console.log(result);\r\n\r\n this.setState({\r\n totalAvailable: result.reduce((accumulator, current) => accumulator + current.sent + (current.unsent ? current.unsent : 0) + current.started, 0),\r\n totalCompletes: result.reduce((accumulator, current) => accumulator + current.completed, 0),\r\n totalUnsent: result.reduce((accumulator, current) => accumulator + (current.unsent ? current.unsent : 0), 0),\r\n totalSent: result.reduce((accumulator, current) => accumulator + current.sent, 0),\r\n totalStarted: result.reduce((accumulator, current) => accumulator + current.started, 0),\r\n totalScreenOuts: result.reduce((accumulator, current) => accumulator + current.screenout, 0),\r\n totalQuoataFull: result.reduce((accumulator, current) => accumulator + current.quota_full, 0),\r\n totalQualityFail: result.reduce((accumulator, current) => accumulator + current.quality_fail, 0)\r\n });\r\n\r\n } catch(e) {\r\n alert(e)\r\n }\r\n\r\n try {\r\n const result = await API.get('soap', '/projects/' + this.props.match.params.id + '/quotas');\r\n\r\n this.setState({quotas: result, quotasLastRecalculated: new Date()});\r\n } catch(e) {\r\n alert(e);\r\n }\r\n\r\n try {\r\n const result = await API.get('soap', '/projects/' + this.props.match.params.id + '/groups');\r\n\r\n const selectedSamples = result.map(function(selectedSample){\r\n selectedSample.id = selectedSample.sample_id;\r\n\r\n selectedSample.name = this.state.samples.filter(sample => {\r\n return sample.sampleId == selectedSample.id;\r\n })[0].name;\r\n\r\n selectedSample.exclusions = selectedSample.filtered_out;\r\n selectedSample.lastRefreshed = new Date(selectedSample.last_refreshed);\r\n\r\n return selectedSample;\r\n }, this);\r\n\r\n this.setState({selectedSamples});\r\n } catch(e) {\r\n alert(e);\r\n }\r\n\r\n try {\r\n const result = await API.get('soap', \"/projects/\" + this.props.match.params.id + \"/filters\");\r\n\r\n this.setState({filters: result, filtersLastRecalculated: new Date()});\r\n\r\n } catch(e) {\r\n alert(e);\r\n }\r\n\r\n try {\r\n const emailTemplatesResult = await API.get('soaptwo', '/email-templates/');\r\n\r\n this.setState({emailTemplates: emailTemplatesResult});\r\n\r\n this.setState({emailTemplate: emailTemplatesResult[0].id})\r\n\r\n } catch(error) {\r\n console.log(error);\r\n }\r\n\r\n try {\r\n const users = await API.get('soapthree', '/users');\r\n\r\n this.setState({users})\r\n } catch(error) {\r\n console.log(error);\r\n }\r\n\r\n let statusStatsResult = await API.get('soaptwo', '/project-status-stats/' +\r\n this.state.projectId);\r\n\r\n this.setState({totalStatusStats: statusStatsResult});\r\n\r\n }\r\n\r\n async sourcesSentRefresh() {\r\n try {\r\n const result = await API.get('soaptwo', '/projects/' + this.props.match.params.id + \"/suppliers\");\r\n\r\n this.setState({sources: result});\r\n\r\n this.setState({\r\n totalAvailable: result.reduce((accumulator, current) => accumulator + current.sent + (current.unsent ? current.unsent : 0) + current.started, 0),\r\n totalCompletes: result.reduce((accumulator, current) => accumulator + current.completed, 0),\r\n totalUnsent: result.reduce((accumulator, current) => accumulator + (current.unsent ? current.unsent : 0), 0),\r\n totalSent: result.reduce((accumulator, current) => accumulator + current.sent, 0),\r\n totalStarted: result.reduce((accumulator, current) => accumulator + current.started, 0),\r\n totalScreenOuts: result.reduce((accumulator, current) => accumulator + current.screenout, 0),\r\n totalQuoataFull: result.reduce((accumulator, current) => accumulator + current.quota_full, 0),\r\n totalQualityFail: result.reduce((accumulator, current) => accumulator + current.quality_fail, 0)\r\n });\r\n\r\n } catch(e) {\r\n alert(e)\r\n }\r\n }\r\n\r\n async handleClientSurveyUrlSave(){\r\n\r\n const result = await API.patch('soaptwo', '/projects/' + this.props.match.params.id, {\r\n body: {'client_survey_url': this.state.client_survey_url}\r\n });\r\n\r\n const errors = result.errors ? result.errors : {};\r\n\r\n this.setState({errors: errors});\r\n\r\n }\r\n\r\n async handleClientIdParamNameSave(){\r\n\r\n const result = await API.patch('soaptwo', '/projects/' + this.props.match.params.id, {\r\n body: {'client_id_param': this.state.clientIdParamName}\r\n });\r\n\r\n const errors = result.errors ? result.errors : {};\r\n\r\n this.setState({errors: errors});\r\n\r\n }\r\n\r\n async handleSetTarget(target) {\r\n\r\n const projectId = this.props.match.params.id;\r\n\r\n let result = \"\";\r\n\r\n result = await API.patch('soaptwo', \"/projects/\" + projectId, {\r\n body:\r\n {'target_completes': target}\r\n });\r\n\r\n if(result.code == 1000) {\r\n this.setState({errors: result.errors})\r\n\r\n return false;\r\n } else {\r\n\r\n this.setState({target: result[0].target_completes});\r\n\r\n return true;\r\n }\r\n }\r\n handleInputChange(event) {\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n\r\n const name = target.name;\r\n\r\n console.log(name);\r\n\r\n this.setState({\r\n [name]: value\r\n });\r\n }\r\n\r\n async handleAddPanelVariable(event) {\r\n const selectedVariableId = event.target.value;\r\n\r\n await API.post('soap', '/projects/' + this.props.match.params.id + '/panelvariables', {\r\n body: {'variableId': selectedVariableId}\r\n });\r\n\r\n try {\r\n const selectedPanelVariables = await API.get('soap', '/projects/' + this.props.match.params.id + '/panelvariables');\r\n\r\n this.setState({selectedPanelVariables})\r\n\r\n } catch (e) {\r\n alert(e)\r\n }\r\n }\r\n\r\n async handleParamSave(paramType, paramFor, paramId, defaultParam) {\r\n\r\n let endPoint = \"\";\r\n\r\n let field = \"\";\r\n\r\n let input = {};\r\n\r\n if(paramFor === \"client\") {\r\n endPoint = \"/projects/\" + this.state.projectId\r\n\r\n if(paramType === \"uniqueidentifier\") {\r\n field = \"unique_identifier_param_id\";\r\n }\r\n else if(paramType === 'resultcode') {\r\n field = \"result_code_param_id\";\r\n }\r\n\r\n input[field] = paramId;\r\n }\r\n else {\r\n endPoint = \"/projects/\" + this.state.projectId +\r\n '/suppliers/' + paramFor\r\n\r\n if(paramType === \"uniqueidentifier\") {\r\n field = \"unique_identifier_param_id\";\r\n }\r\n else if(paramType === 'resultcode') {\r\n field = \"result_code_param_id\";\r\n }\r\n\r\n input[field] = paramId;\r\n }\r\n\r\n try {\r\n let result = await API.patch('soaptwo', endPoint, {body: input});\r\n\r\n const newParamId = result[0][field];\r\n\r\n if(paramFor === \"client\") {\r\n if(paramType === \"uniqueidentifier\") {\r\n\r\n if(newParamId == 0) {\r\n this.setState({clientUniqueIdentifierParam: {id: newParamId, name: defaultParam} });\r\n } else {\r\n\r\n let result = await API.get('soap', \"/uniqueidentifierparams/\" + newParamId);\r\n\r\n this.setState({clientUniqueIdentifierParam: {id: newParamId, name: result[0].name}});\r\n }\r\n }\r\n if(paramType === \"resultcode\") {\r\n\r\n let result = await API.get('soap', \"/resultcodeparams/\" + newParamId);\r\n\r\n this.setState({clientResultCodeParam: {id: newParamId, name: result[0].name} });\r\n\r\n }\r\n } else {\r\n if(paramType === \"uniqueidentifier\") {\r\n\r\n let argumentName;\r\n\r\n if(newParamId == 0) {\r\n argumentName = defaultParam;\r\n } else {\r\n let result = await API.get('soap', \"/uniqueidentifierparams/\" + newParamId);\r\n\r\n argumentName = result[0].name;\r\n }\r\n\r\n let sources = this.state.sources;\r\n\r\n sources = sources.map((source) => {\r\n if (source.id === paramFor) {\r\n source.unique_identifier_param_id = newParamId;\r\n source.unique_identifier_param_name = argumentName;\r\n }\r\n\r\n return source;\r\n });\r\n\r\n console.log(sources);\r\n\r\n this.setState({sources});\r\n }\r\n }\r\n\r\n } catch(e) {\r\n alert(e)\r\n }\r\n\r\n }\r\n\r\n async handleQuotaStatusChange(quota) {\r\n const id = quota.id;\r\n\r\n const result = await API.patch('soap', '/quotas/' + id, {\r\n body: {\r\n active: !quota.active + \"\"\r\n }\r\n });\r\n\r\n const quotas = this.state.quotas.map(quota => {\r\n if(quota.id == id) {\r\n quota.active = result[0].active;\r\n return quota;\r\n } else {\r\n return quota;\r\n }\r\n })\r\n\r\n this.setState({quotas});\r\n\r\n this.handleFilteringStatsUpdate();\r\n }\r\n\r\n async handleQuotaDelete(event){\r\n\r\n const id = event.target.value;\r\n\r\n const result = await API.del('soap', '/quotas/' + id);\r\n\r\n const quotas = this.state.quotas.filter(quota => {\r\n return quota.id != id;\r\n });\r\n\r\n this.setState({quotas});\r\n\r\n }\r\n\r\n async handleQuotaSave(quota) {\r\n\r\n let result;\r\n\r\n result = await API.post('soaptwo', '/sfdl-validate', {\r\n body: {\r\n definition: quota.newQuotaDefinition,\r\n projectId: this.state.projectId\r\n }\r\n });\r\n\r\n if(result.code == 1) {\r\n\r\n result = await API.post('soap', '/quotas', {\r\n body: {\r\n name: quota.newQuotaName,\r\n definition: quota.newQuotaDefinition,\r\n target: quota.newQuotaTarget,\r\n project_id: this.state.projectId + \"\"\r\n }\r\n });\r\n }\r\n\r\n if(result.code == 1000) {\r\n this.setState({errors: {quota: result.errors}})\r\n\r\n return false;\r\n } else {\r\n\r\n await this.handleFilteringStatsUpdate();\r\n\r\n return true;\r\n }\r\n }\r\n\r\n async handleQuotaEdit(quota) {\r\n\r\n const result = await API.patch('soap', '/quotas/' + quota.id, {\r\n body: {\r\n name: quota.name,\r\n definition: quota.definition,\r\n target: quota.target + \"\",\r\n active: quota.active + \"\"}\r\n });\r\n\r\n await this.handleFilteringStatsUpdate();\r\n }\r\n\r\n async handleFilterSave(filter){\r\n\r\n const projectId = this.props.match.params.id + \"\";\r\n\r\n let result;\r\n\r\n result = await API.post('soaptwo', '/sfdl-validate', {\r\n body: {\r\n definition: filter.newFilterDefinition,\r\n projectId: this.state.projectId\r\n }\r\n });\r\n\r\n if(result.code == 1) {\r\n\r\n const result = await API.post('soap', '/filters/', {\r\n body: {\r\n name: filter.newFilterName,\r\n definition: filter.newFilterDefinition,\r\n project_id: projectId\r\n }\r\n });\r\n }\r\n\r\n if(result.code == 1000) {\r\n this.setState({errors: {filter: result.errors}})\r\n\r\n return false;\r\n } else {\r\n\r\n await this.handleFilteringStatsUpdate();\r\n\r\n return true\r\n }\r\n\r\n }\r\n\r\n async handleFilterDelete(event) {\r\n\r\n const id = event.target.value;\r\n\r\n const result = await API.del('soap', '/filters/' + id);\r\n\r\n await this.handleFilteringStatsUpdate();\r\n\r\n }\r\n\r\n async handleFilterStatusChange(filter) {\r\n\r\n const id = filter.id;\r\n\r\n const result = await API.patch('soap', '/filters/' + id, {\r\n body: {\r\n active: !filter.active + \"\"\r\n }\r\n });\r\n\r\n const filters = this.state.filters.map(filter => {\r\n if(filter.id == id) {\r\n filter.active = !filter.active;\r\n return filter;\r\n } else {\r\n return filter;\r\n }\r\n });\r\n\r\n this.setState({filters});\r\n\r\n this.handleFilteringStatsUpdate();\r\n }\r\n\r\n async handleFiltersRecalculate(){\r\n\r\n await this.handleFilteringStatsUpdate();\r\n\r\n }\r\n\r\n handleSamplesSearch(searchTerm){\r\n searchTerm = searchTerm.toLowerCase();\r\n\r\n console.log(searchTerm);\r\n\r\n const selectedSampleNames = this.state.selectedSamples.map(\r\n sample => sample.name);\r\n\r\n let displayedSamples = this.state.samples.filter(sample => {\r\n return !selectedSampleNames.includes(sample.name)\r\n });\r\n\r\n displayedSamples = displayedSamples.filter((sample) => {\r\n let searchValue = sample.name.toLowerCase() + ' ' + sample.psuName.toLowerCase();\r\n return searchValue.indexOf(searchTerm) !== -1;\r\n });\r\n\r\n this.setState({displayedSamples})\r\n }\r\n\r\n async handleAddSample(selectedSampleId) {\r\n\r\n this.setState({displayedSamples: []});\r\n\r\n this.pollForNewSelectedSample();\r\n\r\n const result = await API.post('soap', '/projects/' + this.props.match.params.id + '/groups', {\r\n body: {\r\n \"sampleId\": selectedSampleId\r\n }\r\n });\r\n }\r\n\r\n pollForNewSelectedSample() {\r\n\r\n async function checkAndUpdateSelectedSamples() {\r\n\r\n let selectedSamplesInDbResult = await API.get('soap', `/projects/${this.state.projectId}/groups`);\r\n\r\n let pageSampleCount = this.state.selectedSamples.length;\r\n\r\n let dbSampleCount = selectedSamplesInDbResult.length;\r\n\r\n console.log(dbSampleCount, pageSampleCount);\r\n\r\n if(dbSampleCount == pageSampleCount) {\r\n setTimeout(checkAndUpdateSelectedSamples.bind(this), 2000);\r\n } else {\r\n console.log(\"NEW SAMPLE!\");\r\n\r\n await this.handleFilteringStatsUpdate();\r\n }\r\n\r\n }\r\n\r\n setTimeout(checkAndUpdateSelectedSamples.bind(this), 2000);\r\n\r\n }\r\n\r\n pollForRefreshedSample(sampleId, clickTime) {\r\n\r\n async function checkRefreshedSampleAndUpdate() {\r\n\r\n const selectedSamplesInDbResult = await API.get('soap', `/projects/${this.state.projectId}/groups`);\r\n\r\n let chosenSampleLastRefreshInDb =\r\n selectedSamplesInDbResult.filter(sample => sample.sample_id == sampleId)[0].last_refreshed;\r\n\r\n if(!chosenSampleLastRefreshInDb) {\r\n setTimeout(checkRefreshedSampleAndUpdate.bind(this, sampleId), 2000);\r\n } else {\r\n\r\n const clickMoment = moment(clickTime);\r\n\r\n console.log(clickMoment.format());\r\n\r\n if(clickMoment.isBefore(chosenSampleLastRefreshInDb)) {\r\n\r\n await this.handleFilteringStatsUpdate();\r\n\r\n } else {\r\n\r\n setTimeout(checkRefreshedSampleAndUpdate.bind(this, sampleId), 2000);\r\n\r\n }\r\n }\r\n }\r\n\r\n // checkRefreshedSampleAndUpdate = checkRefreshedSampleAndUpdate.bind(this);\r\n\r\n setTimeout(checkRefreshedSampleAndUpdate.bind(this, sampleId), 2000);\r\n }\r\n\r\n async handleSampleRefresh(sampleId){\r\n\r\n console.log(sampleId);\r\n\r\n await API.post('soap', '/projects/' + this.props.match.params.id + '/groups', {\r\n body: {\r\n \"sampleId\": sampleId\r\n }\r\n });;\r\n\r\n this.pollForRefreshedSample(sampleId, new Date());\r\n\r\n }\r\n\r\n async handleIncentiveDelete(incentive){\r\n\r\n let type = \"\";\r\n\r\n if(incentive.type == 'filter') {\r\n type = \"filters\";\r\n } else if (incentive.type == 'quota') {\r\n type = \"quotas\"\r\n }\r\n\r\n const results = await API.patch('soap', \"/\" + type + \"/\" + incentive.id, {body:\r\n {points: 0}\r\n });\r\n\r\n let updatedType = this.state[type];\r\n\r\n updatedType = updatedType.map(type => {\r\n if(type.id == incentive.id)\r\n {\r\n type.points = 0;\r\n }\r\n\r\n return type;\r\n\r\n });\r\n\r\n this.setState({\r\n [type]: updatedType\r\n })\r\n }\r\n\r\n async handleIncentiveSave(incentive){\r\n\r\n let type = \"\";\r\n\r\n if(incentive.newIncentiveType == 'filter') {\r\n type = \"filters\";\r\n } else if (incentive.newIncentiveType == 'quota') {\r\n type = \"quotas\"\r\n }\r\n\r\n const result = await API.patch('soap', \"/\" + type + \"/\" + incentive.newIncentiveFilterOrQuota, {body:\r\n {points: incentive.newIncentivePoints}\r\n });\r\n\r\n if(result.code == 1000) {\r\n\r\n this.setState({errors: {incentives: result.errors}});\r\n\r\n return false;\r\n } else {\r\n\r\n let updatedType = this.state[type];\r\n\r\n updatedType = updatedType.map(type => {\r\n if (type.id == incentive.newIncentiveFilterOrQuota) {\r\n type.points = incentive.newIncentivePoints;\r\n }\r\n\r\n return type;\r\n\r\n });\r\n\r\n this.setState({\r\n [type]: updatedType\r\n })\r\n\r\n return true;\r\n }\r\n }\r\n\r\n async handleSetDefaultIncentive(defaultIncentive){\r\n\r\n const result = await API.patch('soaptwo', \"/projects/\" + this.props.match.params.id, {body:\r\n {default_incentive: defaultIncentive}\r\n });\r\n\r\n if(result.code == 1000) {\r\n\r\n this.setState({errors: {incentives: result.errors}})\r\n\r\n return false;\r\n\r\n } else {\r\n\r\n this.setState({defaultIncentive: result[0].default_incentive})\r\n\r\n return true;\r\n }\r\n }\r\n\r\n async handleProjectClosedToggle() {\r\n\r\n let closedDate = false;\r\n\r\n if(!this.state.projectClosed) {\r\n\r\n closedDate = await new Date().toJSON().slice(0, 10);\r\n\r\n }\r\n\r\n let result = \"\";\r\n\r\n if(this.props.match.params.id) {\r\n result = await API.patch('soaptwo', \"/projects/\" + this.props.match.params.id,\r\n {body: {\r\n closed_date: closedDate\r\n }});\r\n }\r\n\r\n console.log(result);\r\n\r\n this.setState({projectClosed: result[0].closed_date});\r\n }\r\n\r\n handleSelectQuota(event) {\r\n\r\n const quotaId = parseInt(event.target.value);\r\n\r\n let selectedQuotas = this.state.selectedQuotas;\r\n\r\n if(event.target.checked) {\r\n selectedQuotas = [...selectedQuotas, quotaId];\r\n }\r\n else {\r\n selectedQuotas = selectedQuotas.filter(selectedQuota =>\r\n selectedQuota != quotaId\r\n )\r\n }\r\n\r\n this.setState({selectedQuotas});\r\n }\r\n\r\n async handleInviteToggle(event){\r\n if(event.target.value == 'remind') {\r\n await this.setState({invite: false})\r\n } else if(event.target.value == \"invite\"){\r\n await this.setState({invite: true})\r\n }\r\n\r\n this.handleSetQuotaCombinationsAvailableStat();\r\n }\r\n\r\n async onStatusReminderToggle(event){\r\n await this.setState({remindStatus: event.target.value})\r\n\r\n this.handleSetQuotaCombinationsAvailableStat()\r\n }\r\n\r\n handleSetQuotaCombinationsAvailableStat() {\r\n\r\n if(this.state.invite) {\r\n this.state.quotasTotalAvailableStat = this.state.totalStatusStats.unsent;\r\n } else {\r\n if (this.state.remindStatus == 'invited') {\r\n this.state.quotasTotalAvailableStat = this.state.totalStatusStats.sent;\r\n } else if (this.state.remindStatus == 'started') {\r\n this.state.quotasTotalAvailableStat = this.state.totalStatusStats.started;\r\n } else if (this.state.remindStatus == 'both') {\r\n this.state.quotasTotalAvailableStat = this.state.totalStatusStats.sent + this.state.totalStatusStats.started;\r\n }\r\n }\r\n\r\n let quotaCombinations = this.state.quotaCombinations.map(function(combination){\r\n\r\n if(this.state.invite) {\r\n combination.available = combination.unsent;\r\n } else {\r\n if (this.state.remindStatus == 'invited') {\r\n combination.available = combination.sent;\r\n } else if (this.state.remindStatus == 'started') {\r\n combination.available = combination.started;\r\n } else if (this.state.remindStatus == 'both') {\r\n combination.available = combination.sent + combination.started;\r\n }\r\n }\r\n\r\n combination.toSend = Math.min(combination.toSend, combination.available);\r\n\r\n return combination;\r\n }, this);\r\n\r\n this.setState({quotaCombinations});\r\n\r\n this.setTotalToSend();\r\n\r\n }\r\n\r\n async handleSelectQuotas(){\r\n\r\n let selectedQuotas = this.state.selectedQuotas;\r\n\r\n if(selectedQuotas.length == 0) {\r\n\r\n this.setState({quotaCombinations: []})\r\n\r\n return;\r\n }\r\n\r\n let quotaCombinationsResult = await API.get('soap', '/quota-combinations?ids=' +\r\n selectedQuotas.join(','));\r\n\r\n console.log(quotaCombinationsResult);\r\n\r\n let quotaCombinations = quotaCombinationsResult.map(function(combination){\r\n\r\n let names = combination.quotaIds.map(function(id){\r\n return this.state.quotas.filter(quota => quota.id == id)[0].name\r\n }, this);\r\n\r\n let name = '';\r\n\r\n if(!names.length) {\r\n name = \"Not in any quota\"\r\n } else {\r\n name = names.join(' | ');\r\n }\r\n\r\n let target = \"-\";\r\n\r\n let achieved = \"-\";\r\n\r\n if(combination.quotaIds.length == 1) {\r\n target = this.state.quotas.filter(quota => quota.id == combination.quotaIds[0])[0].target;\r\n\r\n achieved = this.state.quotas.filter(quota => quota.id == combination.quotaIds[0])[0].achieved;\r\n }\r\n\r\n return {\r\n combinationIndex: combination.combinationIndex,\r\n quotaIds: combination.quotaIds,\r\n name: name,\r\n target: target,\r\n achieved: achieved,\r\n unsent: combination.panelistStats.unsent,\r\n sent: combination.panelistStats.sent,\r\n started: combination.panelistStats.started,\r\n definition: combination.definition,\r\n toSend: 0\r\n };\r\n }, this);\r\n\r\n this.setState({quotaCombinations})\r\n\r\n this.handleSetQuotaCombinationsAvailableStat()\r\n }\r\n\r\n handleToSendChange(event){\r\n\r\n this.setState({distributeToSend: false});\r\n\r\n const toSend = event.target.value;\r\n\r\n const combinationIdString = event.target.name;\r\n\r\n const quotaCombinations = this.state.quotaCombinations.map(function(combination) {\r\n\r\n if(combination.quotaIds.join('#') == combinationIdString) {\r\n combination.toSend = Math.min(toSend, combination.available);\r\n }\r\n\r\n return combination;\r\n }\r\n )\r\n\r\n this.setState({quotaCombinations});\r\n\r\n this.setTotalToSend();\r\n }\r\n\r\n setTotalToSend() {\r\n\r\n let totalToSend = this.state.totalToSend;\r\n\r\n if(this.state.quotaCombinations.length > 1) {\r\n\r\n totalToSend = this.state.quotaCombinations.reduce((accumulator, combination) =>\r\n accumulator + ((parseInt(combination.toSend) > 0) ? parseInt(combination.toSend) : 0)\r\n , 0);\r\n } else {\r\n totalToSend = Math.min(totalToSend, this.state.quotasTotalAvailableStat)\r\n }\r\n\r\n this.setState({totalToSend})\r\n }\r\n\r\n async handleTotalToSendChange(event) {\r\n\r\n await this.setState({totalToSend: event.target.value});\r\n\r\n this.setTotalToSend();\r\n\r\n }\r\n\r\n handleDistribute(event){\r\n this.handleInputChange(event);\r\n\r\n const distributeType = event.target.value;\r\n\r\n if(this.state.quotaCombinations.length > 0) {\r\n\r\n let quotaCombinations = [];\r\n\r\n quotaCombinations = this.state.quotaCombinations.map(function (combination) {\r\n\r\n if (distributeType === 'xToGet') {\r\n combination.toSend = Math.min(this.state.xToGet * (combination.target - combination.achieved),\r\n combination.available);\r\n } else if (distributeType === 'max') {\r\n combination.toSend = combination.available;\r\n } else if (distributeType === 'clear') {\r\n combination.toSend = '';\r\n }\r\n return combination;\r\n }, this);\r\n\r\n\r\n this.setState([quotaCombinations]);\r\n\r\n this.setTotalToSend();\r\n }\r\n else {\r\n\r\n let totalToSend = 0;\r\n\r\n if (distributeType === 'xToGet') {\r\n totalToSend = Math.min(this.state.xToGet * (this.state.target - this.state.totalCompletes),\r\n this.state.quotasTotalAvailableStat);\r\n } else if (distributeType === 'max') {\r\n totalToSend = this.state.quotasTotalAvailableStat;\r\n }\r\n\r\n this.setState({totalToSend});\r\n }\r\n }\r\n\r\n async handleSend() {\r\n\r\n if(this.state.sendBlocked) {\r\n return;\r\n }\r\n\r\n this.setState({sendBlocked: true});\r\n\r\n let status = '';\r\n\r\n if(this.state.invite) {\r\n status = 'unsent';\r\n } else {\r\n if (this.state.remindStatus == 'invited') {\r\n status = 'sent';\r\n } else if (this.state.remindStatus == 'started') {\r\n status = 'started';\r\n } else if (this.state.remindStatus == 'both') {\r\n status = 'both';\r\n }\r\n }\r\n\r\n let sendRequestData = {\r\n total: this.state.totalToSend,\r\n recipientsStatus: status,\r\n quotaCombinations: this.state.quotaCombinations,\r\n templateId: this.state.emailTemplate\r\n }\r\n\r\n let enqueueResponse = await API.post('soap', '/enqueue-emails/' + this.state.projectId, {\r\n body: sendRequestData});\r\n\r\n if(enqueueResponse.code > 1) {\r\n this.setState({invitesRemindersIsError: true, invitesRemindersErrorMessage: enqueueResponse.message});\r\n }\r\n\r\n await this.handleFilteringStatsUpdate();\r\n\r\n this.setState({sendBlocked: false});\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n

View Project

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

Project:

\r\n\r\n {this.state.projectNumber != \"fetching\" && (\r\n\r\n \r\n

Job number: {this.state.projectNumber}

\r\n

Job name: {this.state.projectName}

\r\n

Type: {this.state.projectType}

\r\n

Start date: {this.state.startDate.toLocaleDateString()}

\r\n\r\n
\r\n )}\r\n\r\n\r\n {/*

Completes

*/}\r\n

Current completes:

\r\n

Total completes: {this.state.totalCompletes}

\r\n {this.state.sources != \"fetching\" && (\r\n this.state.sources.map(source =>

{source.name}: {source.completed}

)\r\n )}\r\n\r\n

Target completes:

\r\n {this.state.target != \"fetching\" && (\r\n \r\n )}\r\n\r\n

Percentage of completes done:

\r\n\r\n {this.state.totalCompletes != \"fetching\" && this.state.target != \"fetching\" && (\r\n

{ Math.round(this.state.totalCompletes / this.state.target * 100) }%

\r\n )}\r\n\r\n

Quotas

\r\n \r\n

\r\n

\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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.sources != \"fetching\" && (\r\n this.state.sources.map(source =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n )}\r\n \r\n
Source#Sent#Started#Screen outs#Quota full#Quality Fail#Completed
Total{this.state.totalSent}{this.state.totalStarted}{this.state.totalScreenOuts}{this.state.totalQuoataFull}{this.state.totalQualityFail}{this.state.totalCompletes}
{source.name}{source.sent}{source.started}{source.screenout}{source.quota_full}{source.quality_fail}{source.completed}
\r\n\r\n {this.state.sources != \"fetching\" && (\r\n this.state.sources.filter(source => source.id).map(source =>\r\n \r\n )\r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
%Start Rate%Response Rate%Completion Rate
\r\n {Math.round(\r\n (this.state.totalStarted + this.state.totalCompletes + this.state.totalScreenOuts\r\n + this.state.totalQuoataFull + this.state.totalQualityFail)\r\n /\r\n (this.state.totalSent + this.state.totalStarted + this.state.totalCompletes\r\n + this.state.totalScreenOuts + this.state.totalQuoataFull\r\n + this.state.totalQualityFail)\r\n * 100\r\n )}\r\n \r\n {Math.round(\r\n (this.state.totalCompletes + this.state.totalScreenOuts\r\n + this.state.totalQuoataFull + this.state.totalQualityFail)\r\n /\r\n (this.state.totalSent + this.state.totalStarted + this.state.totalCompletes\r\n + this.state.totalScreenOuts + this.state.totalQuoataFull\r\n + this.state.totalQualityFail)\r\n * 100)}\r\n {Math.round(\r\n (this.state.totalCompletes)\r\n /\r\n (this.state.totalStarted + this.state.totalCompletes\r\n + this.state.totalScreenOuts + this.state.totalQuoataFull\r\n + this.state.totalQualityFail)\r\n * 100)}
\r\n\r\n

\r\n

\r\n\r\n {this.state.client_survey_url !=\"fetching\" && (\r\n \r\n \r\n Save\r\n \r\n )}\r\n\r\n
\r\n\r\n {this.state.clientIdParamName !=\"fetching\" && (\r\n \r\n \r\n\r\n Save\r\n \r\n )}\r\n

\r\n

\r\n
\r\n \r\n {this.state.projectNumber != \"fetching\" && (\r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\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.filters != \"fetching\" && (\r\n \r\n )}\r\n \r\n\r\n \r\n {this.state.selectedSamples != \"fetching\" && (\r\n \r\n )}\r\n \r\n\r\n \r\n {this.state.filters != \"fetching\" && this.state.quotas != \"fetching\" && (\r\n \r\n )}\r\n \r\n\r\n \r\n

\r\n {this.state.projectNumber != \"fetching\" && (\r\n \r\n )}\r\n
\r\n\r\n\r\n {!this.state.projectClosed && (\r\n \r\n \r\n

\r\n {this.state.emailTemplates != \"fetching\" && (\r\n \r\n \r\n Email Template\r\n \r\n\r\n

\r\n Mail Templates\r\n

\r\n\r\n \r\n {this.state.emailTemplates.map(template =>\r\n \r\n )}\r\n \r\n
\r\n )}\r\n
\r\n\r\n

\r\n\r\n {this.state.users != \"fetching\" && (\r\n \r\n \r\n \r\n )}\r\n\r\n

\r\n\r\n {this.state.quotas != \"fetching\" && this.state.totalStatusStats != \"fetching\" && (\r\n \r\n )}\r\n
\r\n )}\r\n\r\n {this.state.sources != \"fetching\" && this.state.sources.length > 1 && (\r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n {this.state.projectClosed != \"fetching\" && (this.state.projectClosed ? (\r\n \r\n ) : (\r\n \r\n ))\r\n }\r\n\r\n {this.state.projectClosed && this.state.projectClosed != \"fetching\" && (\r\n

Project Closed: {new Date(this.state.projectClosed).toLocaleDateString('en-GB')}

\r\n )}\r\n\r\n

Completion stats

\r\n \r\n\r\n \r\n\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default viewProject;\r\n","import React, {Component} from 'react';\r\nimport {Button} from 'react-bootstrap';\r\n\r\nclass ArchivedProject extends Component {\r\n\r\n render(){\r\n return (\r\n \r\n {this.props.project.name}\r\n {this.props.project.archived_by}\r\n {new Date(this.props.project.start_date).toLocaleDateString(\"en-GB\")}\r\n {new Date(this.props.project.closed_date).toLocaleDateString(\"en-GB\")}\r\n {this.props.project.sent}\r\n {this.props.project.completed}\r\n {Math.round(this.props.project.started / this.props.project.sent * 100)}\r\n {Math.round(\r\n (this.props.project.completed + this.props.project.screenout + this.props.project.quota_full\r\n + this.props.project.quality_fail)\r\n /\r\n this.props.project.sent * 100)}\r\n {Math.round(this.props.project.completed / this.props.project.started * 100)}\r\n {\r\n Math.round((this.props.project.started - this.props.project.completed\r\n - this.props.project.screenout - this.props.project.quota_full - this.props.project.quality_fail) / this.props.project.started\r\n * 100)\r\n }\r\n \r\n Restore\r\n \r\n \r\n )\r\n }\r\n\r\n}\r\n\r\nexport default ArchivedProject;","import React, {Component} from 'react';\r\nimport ArchivedProject from './archivedProject';\r\nimport {Form} from 'react-bootstrap';\r\nimport {API} from \"aws-amplify\";\r\n\r\nclass ArchivedProjects extends Component {\r\n\r\n state = {\r\n projects: \"fetching\",\r\n displayedProjects: [] ,\r\n searchString: '',\r\n searchField: 'name'\r\n }\r\n\r\n constructor(props){\r\n super(props);\r\n\r\n this.handleRestore = this.handleRestore.bind(this)\r\n this.onSearch = this.onSearch.bind(this)\r\n this.handleSearch = this.handleSearch.bind(this)\r\n this.handleSearchFieldSelect = this.handleSearchFieldSelect.bind(this)\r\n }\r\n\r\n async onSearch(event) {\r\n const searchString = event.target.value;\r\n\r\n await this.setState({searchString});\r\n\r\n this.handleSearch();\r\n }\r\n\r\n handleSearch(){\r\n\r\n const displayedProjects = this.state.projects.filter(project => project[this.state.searchField].indexOf(\r\n this.state.searchString) > -1);\r\n\r\n console.log(displayedProjects);\r\n\r\n this.setState({displayedProjects});\r\n\r\n }\r\n\r\n async handleSearchFieldSelect(event){\r\n\r\n const searchField = event.target.value;\r\n\r\n await this.setState({searchField});\r\n\r\n this.handleSearch()\r\n }\r\n\r\n async handleRestore(event){\r\n\r\n const restoredProjectId = event.target.value;\r\n\r\n const restoreResult = await API.patch('soaptwo', '/projects/' + restoredProjectId, {\r\n body: {'archived': 0}\r\n });\r\n\r\n if(restoreResult[0].archived == 0) {\r\n\r\n const projects = this.state.projects.filter(project => project.id != restoredProjectId);\r\n\r\n this.setState({projects});\r\n\r\n this.handleSearch();\r\n\r\n }\r\n }\r\n\r\n async componentDidMount(){\r\n const projectsResult = await API.get('soaptwo', '/archived-projects');\r\n\r\n this.setState({projects: projectsResult});\r\n\r\n this.handleSearch();\r\n }\r\n\r\n render(){\r\n return (\r\n \r\n\r\n \r\n Search\r\n \r\n\r\n \r\n {[\r\n {propertyName: 'name', label: \"Project Name\"},\r\n {propertyName: 'archived_by', label: \"User name\"}].map(field =>\r\n \r\n )}\r\n \r\n\r\n \r\n\r\n\r\n \r\n \r\n \r\n \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.projects !=\"fetching\" && this.state.displayedProjects.map(project =>\r\n\r\n \r\n\r\n )}\r\n\r\n
Project nameUser nameStart dateDate closedInvites sentSurvey completesStarted %Response rate %Completion rate %Drop out %Restore
\r\n\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default ArchivedProjects;\r\n","import React, {Component} from 'react';\r\nimport ArchivedProjects from './archivedProjects.jsx';\r\nimport Navigation from \"./navigation\";\r\n\r\nclass ArchivedProjectList 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

Archived Projects

\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 ArchivedProjectList;","import React, {Component} from 'react';\r\nimport {API} from \"aws-amplify\";\r\nimport {isMobile} from 'react-device-detect';\r\n\r\nconst queryString = require('query-string');\r\n\r\n\r\nclass Landing extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.handleClickLink = this.handleClickLink.bind(this);\r\n }\r\n\r\n state = {};\r\n\r\n async handleClickLink() {\r\n\r\n const statusResult = await API.get('return', '/handleLanding?yscode='\r\n + encodeURIComponent(this.state.yscode) + \"&\" + this.state.resultCodeParam + \"=1\");\r\n\r\n let surveyLink = \"http://\" + this.state.url.replace(/https?:\\/\\//gi, '');\r\n\r\n window.location = surveyLink;\r\n\r\n }\r\n\r\n async componentDidMount() {\r\n\r\n console.log(this.props.location.search);\r\n\r\n const landingResult = await API.get('return', '/handleLanding' + this.props.location.search);\r\n\r\n if(landingResult.redirect) {\r\n\r\n let redirect = \"http://\" + landingResult.redirect.replace(/https?:\\/\\//gi, '');\r\n\r\n window.location = redirect;\r\n } else {\r\n\r\n this.setState({\r\n content: landingResult.content,\r\n url: landingResult.url,\r\n yscode: landingResult.yscode,\r\n resultCodeParam: landingResult.resultCodeParam,\r\n mobileCompatibility: landingResult.mobileCompatibility\r\n })\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n\r\n \r\n\r\n {this.state.content && (\r\n
\r\n )}\r\n\r\n {this.state.url && (this.state.mobileCompatibility || !isMobile) && (\r\n Click here to go to survey\r\n )}\r\n\r\n {this.state.content && !this.state.mobileCompatibility && isMobile && (\r\n
This survey cannot be completed on mobiles. Please us a laptop or desktop computer to\r\n access this survey link
\r\n )}\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default Landing;","import React, { Component } from \"react\";\r\nimport { Button, Form } from \"react-bootstrap\";\r\nimport { Auth } from \"aws-amplify\";\r\nimport {Link, Redirect} from 'react-router-dom';\r\n\r\nexport default class Login extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n email: \"\",\r\n password: \"\"\r\n };\r\n\r\n this.handleInputChange = this.handleInputChange.bind(this);\r\n }\r\n\r\n validateForm() {\r\n return this.state.email.length > 0 && this.state.password.length > 0;\r\n }\r\n\r\n handleInputChange(event) {\r\n\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n const name = target.name;\r\n\r\n this.setState({\r\n [name]: value\r\n });\r\n }\r\n\r\n handleSubmit = async event => {\r\n event.preventDefault();\r\n\r\n try {\r\n await Auth.signIn(this.state.email, this.state.password);\r\n this.props.onUserHasAuthenticated(true);\r\n } catch (e) {\r\n alert(e.message);\r\n }\r\n }\r\n\r\n\r\n render() {\r\n\r\n if (this.props.isAuthenticated === true) {\r\n return \r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n Email\r\n \r\n \r\n
\r\n Password\r\n \r\n \r\n \r\n Login\r\n \r\n \r\n\r\n Reset Password\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { Auth } from \"aws-amplify\";\r\nimport { Link } from \"react-router-dom\";\r\nimport {Form, Button} from 'react-bootstrap';\r\n\r\nclass PasswordReset extends Component {\r\n\r\n state = {\r\n username: \"\",\r\n codeSent: false,\r\n code: '',\r\n password: '',\r\n confirmPassword:'',\r\n errors: {},\r\n resetComplete: false\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.handleInputChange = this.handleInputChange.bind(this);\r\n this.handleRequestCode = this.handleRequestCode.bind(this);\r\n this.handlePasswordReset = this.handlePasswordReset.bind(this);\r\n\r\n }\r\n\r\n handleInputChange(event) {\r\n\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n const name = target.name;\r\n\r\n this.setState({\r\n [name]: value\r\n });\r\n }\r\n\r\n async handleRequestCode(){\r\n let requestCodeResult = await Auth.forgotPassword(this.state.username);\r\n\r\n this.setState({codeSent: true})\r\n }\r\n\r\n async handlePasswordReset(){\r\n\r\n await this.setState({errors: {}});\r\n\r\n let hasErrors = false;\r\n\r\n if(this.state.password.length < 12) {\r\n this.setState({errors: {...this.state.errors, password: 'Password must be at least 12 characters'}})\r\n\r\n hasErrors = true;\r\n }\r\n\r\n if(this.state.password != this.state.confirmPassword) {\r\n this.setState({errors: {...this.state.errors, confirmPassword: 'Password don\\'t match'}})\r\n\r\n hasErrors = true;\r\n }\r\n\r\n if(!hasErrors) {\r\n try {\r\n let passwordResetResult = await Auth.forgotPasswordSubmit(this.state.username, this.state.code, this.state.password);\r\n\r\n this.setState({resetComplete: true})\r\n } catch(error) {\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.resetComplete && (\r\n \r\n {!this.state.codeSent && (\r\n \r\n \r\n Username\r\n \r\n \r\n Request reset code\r\n \r\n )}\r\n\r\n {this.state.codeSent && (\r\n \r\n \r\n Code\r\n \r\n \r\n\r\n \r\n Password\r\n \r\n {this.state.errors.password}\r\n \r\n\r\n \r\n Confirm Password\r\n \r\n {this.state.errors.confirmPassword}\r\n \r\n\r\n Reset Password\r\n \r\n )}\r\n \r\n )}\r\n {this.state.resetComplete && (\r\n

Password reset complete. Log in here

\r\n )}\r\n
\r\n )\r\n }\r\n\r\n}\r\n\r\nexport default PasswordReset;","import React,{Component} from 'react';\r\nimport {Button} from 'react-bootstrap';\r\nimport Confirm from \"./confirm\";\r\n\r\nclass EmailTemplate extends Component {\r\n\r\n render(){\r\n return (\r\n \r\n {this.props.template.name}\r\n {new Date(this.props.template.date_created).toLocaleDateString(\"en-GB\")}\r\n {new Date(this.props.template.date_updated).toLocaleDateString(\"en-GB\")}\r\n {this.props.template.last_edited_by}\r\n {this.props.template.tags}\r\n \r\n Edit\r\n \r\n \r\n Copy\r\n \r\n \r\n \r\n {confirm => (\r\n \r\n )}\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n}\r\n\r\nexport default EmailTemplate;\r\n","import React, {Component} from 'react';\r\nimport {Button, Modal, Form, Tabs, Tab} from \"react-bootstrap\";\r\n\r\nclass EmailTemplateEditor extends Component{\r\n\r\n state = {\r\n activeTab: 'source'\r\n };\r\n\r\n render() {\r\n return(\r\n \r\n \r\n\r\n \r\n \r\n Name\r\n \r\n \r\n \r\n Tags\r\n \r\n \r\n \r\n\r\n
Available dynamic text fields:\r\n [[link]]\r\n #first_name#\r\n {this.props.dynamicFields != \"fetching\" && this.props.dynamicFields.map(field =>\r\n\r\n {field.varname}\r\n\r\n )}\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n
\r\n\r\n \r\n Cancel\r\n Save\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default EmailTemplateEditor;","import React, {Component} from 'react';\r\nimport EmailTemplate from './emailTemplate';\r\nimport EmailTemplateEditor from './emailTemplateEditor';\r\nimport {Form} from 'react-bootstrap';\r\nimport {API, Auth} from 'aws-amplify';\r\nimport {Link} from \"react-router-dom\";\r\nimport Navigation from \"./navigation\";\r\n\r\nclass EmailTemplates extends Component {\r\n\r\n state = {\r\n templates: \"fetching\",\r\n dynamicFields: \"fetching\",\r\n displayedTemplates: [],\r\n editing: false,\r\n templateUnderEdit: {},\r\n searchString: ''\r\n };\r\n\r\n constructor(props){\r\n super(props);\r\n\r\n this.handleEdit = this.handleEdit.bind(this);\r\n this.handleCopy = this.handleCopy.bind(this);\r\n this.handleTemplateDelete = this.handleTemplateDelete.bind(this);\r\n\r\n this.setContentPreview = this.setContentPreview.bind(this);\r\n\r\n this.toggleEdit = this.toggleEdit.bind(this);\r\n this.handleTemplatePropertyChange = this.handleTemplatePropertyChange.bind(this);\r\n this.handleTemplateSave = this.handleTemplateSave.bind(this);\r\n\r\n this.handleSearch = this.handleSearch.bind(this);\r\n this.onSearch = this.onSearch.bind(this);\r\n }\r\n\r\n async handleEdit(event) {\r\n const templateId = event.target.value;\r\n\r\n const templateUnderEdit = JSON.parse(JSON.stringify(\r\n this.state.templates.filter(template => template.id == templateId)[0]));\r\n\r\n await this.setState({templateUnderEdit});\r\n\r\n this.setContentPreview();\r\n\r\n this.toggleEdit();\r\n }\r\n\r\n setContentPreview() {\r\n\r\n let templateUnderEdit = this.state.templateUnderEdit;\r\n\r\n let contentWithExampleDynamicText = templateUnderEdit['content'];\r\n\r\n for (const field of this.state.dynamicFields) {\r\n\r\n console.log(field.varname, field.demo);\r\n\r\n contentWithExampleDynamicText =\r\n contentWithExampleDynamicText.replace(field.varname, field.demo);\r\n }\r\n\r\n contentWithExampleDynamicText = contentWithExampleDynamicText.replace('[[link]]',\r\n 'https://field.opinionpanel.co.uk/landing');\r\n\r\n templateUnderEdit['contentPreview'] = contentWithExampleDynamicText;\r\n\r\n this.setState({templateUnderEdit})\r\n\r\n }\r\n\r\n handleCopy(event) {\r\n const templateId = event.target.value;\r\n\r\n let templateUnderEdit = JSON.parse(JSON.stringify(\r\n this.state.templates.filter(template => template.id == templateId)[0]));\r\n\r\n templateUnderEdit.id = null;\r\n\r\n this.setState({templateUnderEdit});\r\n\r\n this.toggleEdit();\r\n }\r\n\r\n toggleEdit(){\r\n this.setState({editing: !this.state.editing});\r\n }\r\n\r\n async handleTemplateDelete(event) {\r\n const templateId = event.target.value;\r\n\r\n const deleteResult = await API.del('soaptwo', '/email-templates/' + templateId);\r\n\r\n const templates = this.state.templates.filter(template => template.id != templateId);\r\n\r\n this.setState({templates});\r\n\r\n this.handleSearch();\r\n }\r\n\r\n async handleTemplatePropertyChange(event) {\r\n\r\n const propertyName = event.target.name;\r\n\r\n const newValue = event.target.value;\r\n\r\n let templateUnderEdit = this.state.templateUnderEdit;\r\n\r\n templateUnderEdit[propertyName] = newValue;\r\n\r\n await this.setState({templateUnderEdit})\r\n\r\n this.setContentPreview();\r\n }\r\n\r\n async handleTemplateSave(){\r\n\r\n const userInfo = await Auth.currentUserInfo();\r\n\r\n let httpVerb = \"patch\";\r\n\r\n if(!this.state.templateUnderEdit.id) {\r\n httpVerb = \"post\"\r\n }\r\n\r\n let idString = ''\r\n\r\n if(this.state.templateUnderEdit.id) {\r\n idString = this.state.templateUnderEdit.id;\r\n }\r\n\r\n const updateResult = await API[httpVerb]('soaptwo', '/email-templates/'\r\n + idString, {\r\n body: {\r\n name: this.state.templateUnderEdit.name,\r\n tags: this.state.templateUnderEdit.tags,\r\n content: this.state.templateUnderEdit.content,\r\n date_updated: new Date().toISOString().split('T')[0],\r\n last_edited_by: userInfo.username\r\n }\r\n });\r\n\r\n const templates =\r\n [...this.state.templates.filter(template => template.id != updateResult[0].id), updateResult[0]]\r\n\r\n this.setState({templates});\r\n\r\n this.handleSearch();\r\n\r\n this.toggleEdit();\r\n\r\n }\r\n\r\n async onSearch(event) {\r\n\r\n const searchString = event.target.value;\r\n\r\n await this.setState({searchString});\r\n\r\n this.handleSearch();\r\n }\r\n\r\n async handleSearch(){\r\n\r\n const displayedTemplates = this.state.templates.filter(function(template){\r\n\r\n console.log(template['content']);\r\n\r\n return Object.keys(template).reduce((accumulator, key) => {\r\n\r\n return accumulator || String(template[key]).indexOf(this.state.searchString) > -1;\r\n\r\n }, false);\r\n\r\n\r\n\r\n }, this);\r\n\r\n this.setState({displayedTemplates});\r\n }\r\n\r\n async componentDidMount() {\r\n\r\n const templates = await API.get('soaptwo', '/email-templates');\r\n\r\n this.setState({templates});\r\n\r\n this.handleSearch();\r\n\r\n const dynamicFields = await API.get('soaptwo', '/email-dynamic-fields');\r\n\r\n this.setState({dynamicFields});\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

Mail Template Management

\r\n\r\n \r\n Search\r\n \r\n \r\n\r\n \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.templates != \"fetching\" && this.state.displayedTemplates.map(template =>\r\n\r\n \r\n\r\n )}\r\n\r\n
NameDate createdDate last editedLast edited byTags
\r\n\r\n \r\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 EmailTemplates","import React, {Component} from 'react';\r\nimport { Route, Redirect} from \"react-router-dom\";\r\n\r\nconst PrivateRoute = ({component: Component, authed, ...rest}) => {\r\n return (\r\n (\r\n authed === true\r\n ? \r\n : \r\n )} />\r\n )\r\n}\r\n\r\nexport default PrivateRoute;","import './custom.scss';\r\nimport React, { Component } from 'react';\r\nimport './App.css';\r\nimport { Route, Link, BrowserRouter as Router} from \"react-router-dom\";\r\nimport administration from \"./components/administration\";\r\nimport myDetails from \"./components/myDetails\";\r\nimport projectList from \"./components/projectList\";\r\nimport setupProject from \"./components/setupProject\";\r\nimport viewProject from \"./components/viewProject\";\r\nimport ArchivedProjectList from \"./components/archivedProjectList\";\r\nimport landing from \"./components/landing\";\r\nimport Login from \"./components/login\";\r\nimport PasswordReset from \"./components/passwordReset\"\r\nimport { Auth, API } from \"aws-amplify\";\r\nimport {Button} from \"react-bootstrap\";\r\nimport EmailTemplates from \"./components/emailTemplates\";\r\nimport PrivateRoute from \"./components/privateRoute\";\r\nimport Navigation from \"./components/navigation\";\r\n\r\n\r\nclass App extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.userHasAuthenticated = this.userHasAuthenticated.bind(this)\r\n this.handleLogout = this.handleLogout.bind(this);\r\n }\r\n\r\n state = {\r\n isAuthenticated: false,\r\n isAuthenticating: true\r\n };\r\n\r\n async componentDidMount() {\r\n try {\r\n await Auth.currentSession();\r\n this.userHasAuthenticated(true);\r\n }\r\n catch(e) {\r\n if (e !== 'No current user') {\r\n alert(e);\r\n }\r\n }\r\n\r\n this.setState({isAuthenticating: false})\r\n }\r\n\r\n userHasAuthenticated(authenticated) {\r\n\r\n (async function() {\r\n const userInfo = await Auth.currentUserInfo();\r\n\r\n await API.post('soapthree', '/users-stats', {\r\n body: {username: userInfo.username}\r\n }\r\n );\r\n })();\r\n\r\n this.setState({\r\n isAuthenticated: authenticated\r\n });\r\n }\r\n\r\n async handleLogout() {\r\n\r\n await Auth.signOut();\r\n\r\n this.setState({\r\n isAuthenticated: false\r\n });\r\n }\r\n\r\n\r\n render() {\r\n\r\n const LoginPage = (props) => {\r\n return (\r\n \r\n );\r\n };\r\n\r\n return (\r\n\r\n !this.state.isAuthenticating &&\r\n \r\n \r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default App;\r\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","export default {\r\n apiGateway: {\r\n REGION: \"us-east-1\",\r\n URL: \"https://qjp7ne6t1d.execute-api.us-east-1.amazonaws.com/dev\"\r\n },\r\n cognito: {\r\n REGION: \"us-east-1\",\r\n USER_POOL_ID: \"us-east-1_xKixjAVUX\",\r\n APP_CLIENT_ID: \"54qsdg1ch89nrb0cb8tre4q2i5\",\r\n IDENTITY_POOL_ID: \"us-east-1:9e96e2ca-1eb4-484f-9ae9-f6c2b592da87\"\r\n }\r\n};\r\n","import './custom.scss';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport 'bootstrap/dist/css/bootstrap.css';\r\nimport App from './App';\r\nimport * as serviceWorker from './serviceWorker';\r\nimport './custom.scss';\r\nimport Amplify from \"aws-amplify\";\r\nimport config from \"./config\";\r\n\r\nAmplify.configure({\r\n Auth: {\r\n mandatorySignIn: true,\r\n region: config.cognito.REGION,\r\n userPoolId: config.cognito.USER_POOL_ID,\r\n identityPoolId: config.cognito.IDENTITY_POOL_ID,\r\n userPoolWebClientId: config.cognito.APP_CLIENT_ID\r\n },\r\n API: {\r\n endpoints: [\r\n {\r\n name: \"soap\",\r\n endpoint: config.apiGateway.URL,\r\n region: config.apiGateway.REGION\r\n },\r\n {\r\n name: \"soaptwo\",\r\n endpoint: \" https://uxwrt6in5d.execute-api.us-east-1.amazonaws.com/dev\",\r\n region: \"us-east-1\"\r\n },\r\n {\r\n name: \"soapthree\",\r\n endpoint: \" https://mt3krk1q9c.execute-api.us-east-1.amazonaws.com/dev\",\r\n region: \"us-east-1\"\r\n },\r\n {\r\n name: \"return\",\r\n endpoint: \" https://d3vd813279.execute-api.us-east-1.amazonaws.com/test/\",\r\n region: \"us-east-1\"\r\n },\r\n ]\r\n }\r\n});\r\n\r\n\r\nReactDOM.render(, document.getElementById('root'));\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n"],"sourceRoot":""}