diff --git a/addons/addon-base-ui/packages/base-ui/src/helpers/settings.js b/addons/addon-base-ui/packages/base-ui/src/helpers/settings.js index 6b7219642c..0359bb737d 100644 --- a/addons/addon-base-ui/packages/base-ui/src/helpers/settings.js +++ b/addons/addon-base-ui/packages/base-ui/src/helpers/settings.js @@ -31,6 +31,7 @@ const branding = { summary: process.env.REACT_APP_USER_REGISTRATION_SUMMARY, success: process.env.REACT_APP_USER_REGISTRATION_SUCCESS, tosRequired: process.env.REACT_APP_USER_REGISTRATION_TOS_REQUIRED === 'true', + picsure: process.env.REACT_APP_USER_REGISTRATION_PICSURE === 'true', }, tos: { onLanding: process.env.REACT_APP_TOS_LINK_ON_LANDING === 'true', diff --git a/addons/addon-custom/packages/main/src/parts/Register.js b/addons/addon-custom/packages/main/src/parts/Register.js index 053fe40f9c..8a0fe7145b 100644 --- a/addons/addon-custom/packages/main/src/parts/Register.js +++ b/addons/addon-custom/packages/main/src/parts/Register.js @@ -65,7 +65,7 @@ class Register extends React.Component { } renderHTML(content) { - const cleanContent = DOMPurify.sanitize(content, { USE_PROFILES: { html: true } }); + const cleanContent = DOMPurify.sanitize(content, { USE_PROFILES: { html: true }, ADD_ATTR: ['target'] }); // This method sets html from a string. We're pulling this from the config file made by // an approved admin, and we're sanitizing using dompurify package. @@ -112,10 +112,6 @@ class Register extends React.Component { renderRegisterationForm() { return (
-
- {branding.register.title} -
- {this.renderHTML(branding.register.summary)} Submitting registration @@ -153,39 +149,89 @@ class Register extends React.Component { renderConfirmation() { return ( -
-
- SUCCESS! -
- {this.renderHTML(branding.register.success)} -
+ + +
+
+ SUCCESS! +
+ {this.renderHTML(branding.register.success)} +
+
+
+ ); + } + + renderRegister() { + const borders = { margin: '0px 10px', border: 'solid #2A5FA3 2px', borderRadius: '4px', padding: '10px' }; + return ( + <> + + +
+
+ {branding.register.title} +
+ {this.renderHTML(branding.register.summary)} +
+
+
+ {branding.register.picsure && ( + + +
+

+ Service Workbench +

+

Simple, accessible cloud computing & secure data storage.

+ + Learn More + +
+
+ +
+

+ PIC-Sure +

+

A self-service, easily navigable patient-level clinical data search and cohort tool.

+ + Learn More + +
+
+
+ )} + + {this.renderRegisterationForm()} + + ); } renderContent() { const { location } = this.props; + const maxImageWidth = { height: 'auto', maxWidth: '600px', margin: 'auto' }; return ( - - - - + - - - - - - {location.pathname === '/register' && this.renderRegisterationForm()} - {location.pathname === '/register-confirmation' && this.renderConfirmation()} + + {!branding.register.picsure && ( + + + + )} + {location.pathname === '/register' && this.renderRegister()} + {location.pathname === '/register-confirmation' && this.renderConfirmation()} ); } diff --git a/addons/addon-custom/packages/main/src/parts/Terms.js b/addons/addon-custom/packages/main/src/parts/Terms.js index d5149ffcdc..ee3ba51842 100644 --- a/addons/addon-custom/packages/main/src/parts/Terms.js +++ b/addons/addon-custom/packages/main/src/parts/Terms.js @@ -8,7 +8,7 @@ const readableStyle = { fontSize: 'max(12pt, 1.2rem)', fontFamily: 'Calibri' }; class Terms extends React.PureComponent { renderHTML(content) { - const cleanContent = DOMPurify.sanitize(content, { USE_PROFILES: { html: true } }); + const cleanContent = DOMPurify.sanitize(content, { USE_PROFILES: { html: true }, ADD_ATTR: ['target'] }); // This method sets html from a string. We're pulling this from the config file made by // an approved admin, and we're sanitizing using dompurify package. diff --git a/main/config/settings/example.yml b/main/config/settings/example.yml index 7b450c0962..f948d43784 100644 --- a/main/config/settings/example.yml +++ b/main/config/settings/example.yml @@ -155,6 +155,7 @@ HostedZoneId: 'Z02455261RJ9QQPVHFZGA' #userRegistrationTitle: "WELCOME TO SERVICE WORKBENCH" #userRegistrationSummary: "

Service Workbench provides a self-service, three-click, on-demand service for researchers to build research environments in minutes without needing cloud infrastructure knowledge. Fill out the form below to create your account on Service Workbench hosted on AWS.

" #userRegistrationSuccess: "

Your Service Workbench account has been successfully created. What you should expect next:

  1. The Service Workbench administrator will review your account.
  2. Once your account is activated, you can login to Service Workbench and start your research.
" +#userRegistrationPicsure: true # Should the register page also include a link to PIC-Sure #loginWarning: "WARNING: You are entering a secure environment." # Require the TOS to be accepted before registration can occur. diff --git a/main/solution/ui/config/environment/env-template.yml b/main/solution/ui/config/environment/env-template.yml index a4dd23453b..0078c0223c 100644 --- a/main/solution/ui/config/environment/env-template.yml +++ b/main/solution/ui/config/environment/env-template.yml @@ -24,6 +24,7 @@ REACT_APP_ENABLE_FLOW_LOGS: ${self:custom.settings.enableFlowLogs} REACT_APP_USER_REGISTRATION_TITLE: ${self:custom.settings.userRegistrationTitle} REACT_APP_USER_REGISTRATION_SUMMARY: ${self:custom.settings.userRegistrationSummary} REACT_APP_USER_REGISTRATION_SUCCESS: ${self:custom.settings.userRegistrationSuccess} +REACT_APP_USER_REGISTRATION_PICSURE: ${self:custom.settings.userRegistrationPicsure} REACT_APP_LOGIN_WARNING: ${self:custom.settings.loginWarning} REACT_APP_HELP_URL: ${self:custom.settings.helpUrl} REACT_APP_USER_REGISTRATION_TOS_REQUIRED: ${self:custom.settings.tosRequired} diff --git a/main/solution/ui/config/settings/.defaults.yml b/main/solution/ui/config/settings/.defaults.yml index 6aad9fa6f1..0839337433 100644 --- a/main/solution/ui/config/settings/.defaults.yml +++ b/main/solution/ui/config/settings/.defaults.yml @@ -29,10 +29,11 @@ versionAndDate: 'Version ${self:custom.settings.versionNumber} (${self:custom.se autoLogoutTimeoutInMinutes: 30 # Registration page -enableCustomRegistration: false -userRegistrationTitle: "WELCOME TO SERVICE WORKBENCH" -userRegistrationSummary: "

Service Workbench provides a self-service, three-click, on-demand service for researchers to build research environments in minutes without needing cloud infrastructure knowledge. Fill out the form below to create your account on Service Workbench hosted on AWS.

" -userRegistrationSuccess: "

Your Service Workbench account has been successfully created. What you should expect next:

  1. The Service Workbench administrator will review your account.
  2. Once your account is activated, you can login to Service Workbench and start your research.
" +enableCustomRegistration: true +userRegistrationTitle: "WELCOME TO AIM-AHEAD!" +userRegistrationSummary: "

Create a Data Exploration + Analysis Login to access available tools:

" +userRegistrationSuccess: "

Your AIM-AHEAD account has been successfully created. What you should expect next:

  1. The AIM-AHEAD administrator will review your account.
  2. You will receive an email sent from Okta to create a password.
  3. Login to AIM-AHEAD and start your research.

AIM-AHEAD Service Workbench User Guide

AIM-AHEAD PIC-SURE User Guide

" +userRegistrationPicsure: true # Should the register page also include a link to PIC-Sure loginWarning: "" # Require the TOS to be accepted before registration can occur.