Sandata templates for the sign up form. Removed a few test scripts I don't need anymore. Created an Acatble dir.

This commit is contained in:
Norm Rasmussen
2024-04-12 22:59:45 -04:00
parent 958f1ec991
commit 82fd5a2db8
25 changed files with 805 additions and 61 deletions

View File

@ -2,5 +2,5 @@
| Company | Gong Renewal | Actual Renewal | Submitted to Gong Feedback? |
|---------------- | --------------- | --------------- | ------------------ |
| Walmart | 1/1/2026 | 4/07/25 | Yes, 09/01/2023 |
| | | | |
| | | |

View File

@ -0,0 +1,61 @@
{% if training_session.approved? %}
<div class="np-training-session-cta-note">
<i class="far fa-check np-training-session-icon"></i>
{% t .registered %}
</div>
{% elsif training_session.pending? %}
<div class="np-training-session-cta-note np-training-session-cta-note-error">
{% t .pending %}
</div>
{% elsif training_session.denied? %}
<div class="np-training-session-cta-note np-training-session-cta-note-error">
{% t .denied %}
</div>
{% elsif training_session.too_late? %}
<div class="np-training-session-cta-note np-training-session-cta-note-error">
{% t .too_late %}
</div>
{% elsif training_session.no_seats? %}
<div class="np-training-session-cta-note np-training-session-cta-note-error">
{% t .no_seats %}
</div>
{% endif %}
<div class="np-training-session-cta">
<div class="np-training-session-cta-buttons">
{% if training_session.session_url != "" %}
<a href={{ training_session.session_url }}>
<button class="np-top-button np-button np-button-big ">
Register
</button>
{% else %}
<form
action="{% route training_session_registration, id: training_session.id %}"
method="post"
>
{% form_authenticity_token %}
{% if training_session.internal? and training_session.approved? %}
{% if features.training_events_google_calendar? %}
{% include "training_session_calendars" %}
<button type="submit" class="np-top-button np-button np-button-big np-button-secondary">
{% t .unregister %}
</button>
{% else %}
<button type="submit" class="np-top-button np-button-font-color np-button np-button-big">
{% t .unregister %}
</button>
{% endif %}
<input type="hidden" name="_method" value="delete" />
{% endif %}
{% if training_session.not_registered? %}
<button type="submit" class="np-top-button np-button np-button-big">
{% t .register %}
</button>
{% endif %}
</form>
{% endif %}
</a>
</div>
</div>

View File

@ -30,8 +30,12 @@
<div class="np-card-content np-card-content-vertical np-card-padding">
<div class="np-card-training-sessions">
<i class="np-card-training-sessions-icon far fa-calendar-star"></i>
<span class="np-card-training-sessions-label">
<span class="np-card-training-sessions-label">
{% if training_event.sessions.size > 1 %}
Multiple Sessions
{% else %}
{% t .sessions, count: training_event.sessions.size %}
{% endif %}
</span>
<a
class="np-button np-button-wide"

View File

@ -2,6 +2,8 @@
{% styles colors %}
{% styles custom %}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js" integrity="sha512-894YE6QWD5I59HgZOGReFYm4dnWc1Qt5NtvYSaNcOP+u1T9qYdvdihz0PPSiiqn/+/3e7Jo4EaG7TubfWGUrMQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js" type="text/javascript"></script>
<script>
(function(apiKey){
(function(p,e,n,d,o){var v,w,x,y,z;o=p[d]=p[d]||{};o._q=o._q||[];

View File

@ -18,7 +18,7 @@
<script>
setTimeout(function(){
if (window.location.pathname == "/auth/auth_url_email/login") {
document.getElementsByClassName("np-input-label")[2].innerHTML = "Work Email Address";
// document.getElementsByClassName("np-input-label")[2].innerHTML = "Work Email Address";
if (document.getElementsByClassName("np-alert-wrapper").length != 0) {
document.getElementsByClassName("np-alert-wrapper")[0].innerHTML = "Please complete the following information to access Artera";
}

View File

@ -1,7 +1,3 @@
<script src="https://fast.wistia.net/assets/external/E-v1.js" async></script>
{%comment%} <script src="//fast.wistia.com/embed/medias/s3lqfi0zn7.jsonp" async></script>
<script src="//fast.wistia.com/assets/external/E-v1.js" async></script>{%endcomment%}
<main class="np-box-container np-open-access">
<div class="np-box">
{% include "header_minimal" %}
@ -12,19 +8,10 @@
{% t shared.welcome_to_school, school_name: current_school.name %}
</div>
<div class="np-form-subheadline">
Check out the video below for a quick tour of Artera Academy.<br>Then, enter your first name, last name, and your work email address below to get started.
{% t .headline, key: current_school.course_vocabulary %}
</div>
{%comment%}<div class="intro-video wistia_embed videoFoam=true playbar=false volumeControl=false smallPlayButton=false settingsControl=false autoPlay=true wistia_async_fl9lthnnox" style="width: 100%; height: auto; margin-bottom: 20px;">&nbsp;</div>{%endcomment%}
<div class="wistia_responsive_padding" style="padding:56.25% 0 0 0;position:relative;">
<div class="wistia_responsive_wrapper" style="height:100%;left:0;position:absolute;top:0;width:100%;">
<iframe src="https://fast.wistia.net/embed/iframe/fl9lthnnox?seo=false&videoFoam=true" title="LearnWELL Intro Video" allow="autoplay; fullscreen" allowtransparency="true" frameborder="0" scrolling="no" class="wistia_embed" name="wistia_embed" msallowfullscreen width="100%" height="100%"></iframe>
</div>
</div>
<br>
<div class="np-form-field">
<label class="np-input-label" for="learner_first_name">
<label class="np-input-label" for="learner_first_name" style="color: black;">
{% t shared.first_name %}
</label>
<input
@ -37,7 +24,7 @@
/>
</div>
<div class="np-form-field">
<label class="np-input-label" for="learner_last_name">
<label class="np-input-label" for="learner_last_name" style="color: black;">
{% t shared.last_name %}
</label>
<input
@ -49,8 +36,8 @@
/>
</div>
<div class="np-form-field">
<label class="np-input-label" for="learner_email">
{% t shared.email_address %}
<label class="np-input-label" for="learner_email" style="color: black;">
Company Email
</label>
<input
class="np-input"
@ -60,13 +47,57 @@
value="{{ form.email }}"
/>
</div>
<p style="display: none;" id="bad_email_alert">Please Enter Your Company Email</p>
<input
type="submit"
name="commit"
value="{% t shared.enter %}"
id="submit_button"
class="np-button np-button-big np-form-action"
/>
</form>
</div>
</div>
</main>
<script>
// document.getElementById("header").scrollIntoView();
function checkIfInputsExist (){
window.setTimeout(function(){
// Regular expression to check if string is email
const regexExp = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
// Grabs Email Address Value
const learnerEmail = $("#learner_email")[0].value;
const blockedEmails = [ "gmail.com", "yahoo.com" ]
// "hotmail.com", "aol.com", "outlook.com", "icloud.com", "me.com", "mac.com" ]
if ($("#learner_email")[0].value.length > 0){
if(regexExp.test(learnerEmail) == true){
var slicedEmail = learnerEmail.split('@');
if (blockedEmails.indexOf(slicedEmail[1]) > -1) {
$("#learner_email").css("background", "salmon");
$("#bad_email_alert").css("display", "block");
$("#submit_button").css("pointer-events","none");
}
else {
$("#learner_email").css("background", "#f2f4f5");
$("#bad_email_alert").css("display", "none");
$("#submit_button").css("pointer-events", "auto");
}
} else {
$("#learner_email").css("background", "#f2f4f5");
$("#bad_email_alert").css("display", "none");
$("#submit_button").css("pointer-events", "auto");
}
}
}, 500)
}
document.addEventListener('keyup', checkIfInputsExist);
</script>
<style>
.np-input-label{
color: #ffffff;
}
</style>

View File

@ -0,0 +1,73 @@
<main class="np-main np-box-container">
<div class="np-box">
{% include "header_minimal" %}
<div class="np-box-content-container">
<form class="np-form np-box-content" action="{% route sign_up %}" method="post" novalidate>
<div class="np-form-title"> {% t .create_account %} </div>
{% form_authenticity_token %}
<div class="np-form-flex-desktop">
<div class="np-form-field">
<label class="np-input-label" for="learner_first_name">
{% t shared.first_name %}
</label>
<input
class="np-input"
autofocus="autofocus"
type="text"
name="learner[first_name]"
id="learner_first_name"
>
</div>
<div class="np-form-field">
<label class="np-input-label" for="learner_last_name">
{% t shared.last_name %}
</label>
<input
class="np-input"
type="text"
name="learner[last_name]"
id="learner_last_name"
>
</div>
</div>
<div class="np-form-field">
<label class="np-input-label" for="learner_email">
Company Email
</label>
<input
class="np-input"
autofocus="autofocus"
type="email"
name="learner[email]"
id="learner_email"
>
<p class="enter-label">Company Email</p>
</div>
<div class="np-form-field">
<label class="np-input-label" for="learner_password">
{% t shared.password %}
</label>
<input
class="np-input"
type="password"
name="learner[password]"
id="learner_password"
>
</div>
<button type="submit" class="np-button np-button-big np-button-large-font np-form-action">
{% t shared.sign_up %}
</button>
<span class="np-form-terms">
{% t .terms %}
<a
class="np-form-link np-button-color"
target="_blank"
href="{{ current_school.terms_of_service_url }}"
>
{% t .terms_link %}
</a>
</span>
</form>
</div>
</div>
</main>

View File

@ -150,13 +150,15 @@
<i class="np-header-search-icon far fa-search"></i>
</form>
{% for website_navigation in navigations.header_navigations %}
<a
href="{{ website_navigation.path }}"
class="np-header-mobile-menu-content-button"
{% if website_navigation.external? %} target="_blank" {% endif %}
>
{{ website_navigation.name }}
</a>
{% unless website_navigation.name == 'Home' %}
<a
href="{{ website_navigation.path }}"
class="np-header-mobile-menu-content-button"
{% if website_navigation.external? %} target="_blank" {% endif %}
>
{{ website_navigation.name }}
</a>
{% endunless %}
{% endfor %}
<div class="np-header-mobile-menu-content-line"></div>
{% unless current_school.sso_active? %}
@ -178,3 +180,13 @@
</div>
{% include "messages" %}
{% if current_person.signed_in? %}
{% unless current_person.properties.successfully_completed_secondary_registration %}
<script>
if(!localStorage.getItem('completed-second-registration')){
window.location.href = '/app/sign-up-follow-up';
}
</script>
{% endunless %}
{% endif %}

View File

@ -0,0 +1,14 @@
<select
class="sign-up-dropdown np-input"
type="text"
name="role-dropdown"
id="sign-up-role-dropdown"
required
>
<option class="second-login-role-option" value="" selected>Select a role</option>
<option class="second-login-role-option" value="Agency Admin/Manager">Agency Admin/Manager</option>
<option class="second-login-role-option" value="Agency Staff">Agency Staff</option>
<option class="second-login-role-option" value="Agency Billing">Agency Billing</option>
<option class="second-login-role-option" value="Agency Scheduling">Agency Scheduling</option>
<option class="second-login-role-option" value="Agency Billing & Scheduling">Agency Billing & Scheduling</option>
</select>

View File

@ -0,0 +1,30 @@
<select
class="sign-up-dropdown np-input"
type="text"
name="state-dropdown"
id="sign-up-state-dropdown"
required
>
<option class="second-login-state-option" value="" selected>Select a state</option>
<option class="second-login-state-option" value="Arizona">Arizona</option>
<option class="second-login-state-option" value="California">California</option>
<option class="second-login-state-option" value="Colorado">Colorado</option>
<option class="second-login-state-option" value="Connecticut">Connecticut</option>
<option class="second-login-state-option" value="Delaware">Delaware</option>
<option class="second-login-state-option" value="District Of Columbia">District Of Columbia</option>
<option class="second-login-state-option" value="Hawaii">Hawaii</option>
<option class="second-login-state-option" value="Idaho">Idaho</option>
<option class="second-login-state-option" value="Indiana">Indiana</option>
<option class="second-login-state-option" value="Missouri">Missouri</option>
<option class="second-login-state-option" value="Montana">Montana</option>
<option class="second-login-state-option" value="Nevada">Nevada</option>
<option class="second-login-state-option" value="North Carolina">North Carolina</option>
<option class="second-login-state-option" value="North Dakota">North Dakota</option>
<option class="second-login-state-option" value="Ohio">Ohio</option>
<option class="second-login-state-option" value="Oklahoma">Oklahoma</option>
<option class="second-login-state-option" value="Pennsylvania">Pennsylvania</option>
<option class="second-login-state-option" value="Rhode Island">Rhode Island</option>
<option class="second-login-state-option" value="Tennessee">Tennessee</option>
<option class="second-login-state-option" value="Vermont">Vermont</option>
<option class="second-login-state-option" value="Wisconsin">Wisconsin</option>
</select>

View File

@ -1,13 +1,15 @@
<nav class="np-sub-navigation">
<div class="np-sub-navigation-content">
{% for link in navigations.sub_navigation %}
<div class="np-sub-navigation-content-item {{ link.active_class }}">
<a class="np-sub-navigation-content-item-link" href="{{ link.url }}">
<i class="{{ link.icon }} np-button-color np-sub-navigation-content-item-icon"></i>
{{ link.label }}
</a>
<div class="np-sub-navigation-content-item-bar np-button-background-color"></div>
</div>
{% unless link.label == 'Home' %}
<div class="np-sub-navigation-content-item {{ link.active_class }}">
<a class="np-sub-navigation-content-item-link" href="{{ link.url }}">
<i class="{{ link.icon }} np-button-color np-sub-navigation-content-item-icon"></i>
{{ link.label }}
</a>
<div class="np-sub-navigation-content-item-bar np-button-background-color"></div>
</div>
{% endunless %}
{% endfor %}
</div>
</nav>

View File

@ -1,4 +1,7 @@
{% include "header" %}
<script>
window.location.href = '/app/dashboard'
</script>
{% comment %} {% include "header" %}
{% include "course_version_outdated_alert", courses: courses.featured %}
<main class="np-main np-homepage">
<div class="np-homepage-hero">
@ -13,11 +16,6 @@
<div class="np-homepage-subheadline np-header-font-color">
{{ homepage.subheadline }}
</div>
{% comment %}
<a class="np-homepage-hero-cta np-button" href="{% route catalog %}">
{% t .discover %}
</a>
{% endcomment %}
</div>
</div>
{% include "sub_navigation" %}
@ -51,4 +49,4 @@
{% endif %}
</div>
</main>
{% include "footer" %}
{% include "footer" %} {% endcomment %}

View File

@ -0,0 +1,487 @@
{% comment %} {% assign groupValidator = false %}
{% for group in current_person.groups %}
{% if group %}
{% assign groupValidator = true %}
{% endif %}
{% endfor %}
{% if current_person.signed_in? %}
{% if groupValidator == true %}
<script>
if (window.location.pathname != '/app/dashboard'){
window.location.replace('/app/dashboard');
}
</script>
{% endif %}
{% endif %} {% endcomment %}
<main class="np-main np-box-container">
<div class="np-box">
{% include "header_minimal" %}
<div class="np-box-content-container">
<form class="np-form np-box-content" name="secondaryRegistrationForm" onsubmit(return false)>
<input class="sign-up-follow-up-input" placeholder="Agency Name"/>
<input class="sign-up-follow-up-input" placeholder="Agency ID # (Optional)" id="agency-id-input"/>
<input class="sign-up-follow-up-input" placeholder="Medicaid ID #" id="medicaid-id-input"/>
<span class="sign-up-follow-up-error-label" id="medicaid-id-label">Please enter a valid, 5-12 digit Medicaid ID number</span>
<input class="sign-up-follow-up-input" placeholder="Provider ID #" id="provider-id-input"/>
<span class="sign-up-follow-up-error-label" id="provider-id-label">Please enter a valid, 10 digit Provider ID number</span>
{% comment %} <h1 class="sign-up-follow-up-prompt">Role: </h1> {% endcomment %}
{% include "sign_up_follow_up_roles_dropdown" %}
{% comment %} <h1 class="sign-up-follow-up-prompt">State: </h1> {% endcomment %}
{% include "sign_up_follow_up_states_dropdown" %}
<input class="sign-up-follow-up-input" id="calEVV-input" placeholder="CalEVV Identifier" style="display: none;"/>
<span class="sign-up-follow-up-error-label" id="calEVV-label">Please enter a valid, 10 digit California EVV ID Number</span>
{% comment %} <input class="sign-up-follow-up-input" id="oh-input" placeholder="OH Identifier" style="display: none;"/> {% endcomment %}
<div id="oh-input" placeholder="OH Identifier" style="display: none;">
<div class='oh-button' type="radio" value="ST - OH ODM Agency Provider"
onclick="validateForm()">Ohio EVV</div>
<div class='oh-button' type="radio" value="ST - OH ODM AGENCY PROVIDER ALT EVV"
onclick="validateForm()">Ohio Alt EVV</div>
</div>
<div id="ca-input" placeholder="CA Identifier" style="display: none;">
<div class='ca-button' type="radio" value="ST - CA CHHS BOTH (PCS & HHCS)"
onclick="validateForm()">Sandata EVV</div>
<div class='ca-button' type="radio" value="ST - CA CHHS JE & ST - CA CHHS STATE"
onclick="validateForm()">Sandata ATL EVV Aggregator</div>
</div>
<span class="sign-up-follow-up-error-label" id="oh-label">Please select your affiliation</span>
{% comment %} <button class="sign-up-follow-up-button" onclick="submitData()">Submit</button> {% endcomment %}
<div class="sign-up-follow-up-button" onclick="submitData()">Submit</div>
</form>
</div>
</div>
</main>
<style>
.sign-up-follow-up-image{
max-width: 50%;
}
#medcaid-id-input,
#provider-id-input,
#calEVV-input{
border: 1px solid light-dark(rgb(118, 118, 118), rgb(133, 133, 133));
border-radius: 2px;
}
#oh-input,
#ca-input {
display: flex;
flex-direction: column;
border: 0;
margin-top: 10px;
}
#medicaid-id-label,
#provider-id-label,
#calEVV-label,
#oh-label {
color: red;
display: none;
}
.oh-button,
.ca-button {
border: 1px solid grey;
border-radius: 2px;
font-family: inherit;
font-size: 100%;
line-height: 1.15;
margin: 0;
margin-bottom: 5px;
padding: 5px;
text-align: center;
}
.oh-button:hover,
.ca-button:hover {
cursor: pointer;
}
.oh-button:focus,
.ca-button:focus {
background: pink;
}
.sign-up-dropdown,
.sign-up-follow-up-input{
text-align: center;
}
.sign-up-dropdown{
margin-top: 20px;
padding: 0;
}
.sign-up-follow-up-input{
height: 30px;
margin-top: 1.1rem;
}
.sign-up-follow-up-button{
align-items: center;
align-self: flex-end;
background: #f2f4f5;
border: 1px solid black;
border-radius: 5px;
cursor: pointer;
display: flex;
font-family: inherit;
font-size: 100%;
height: 30px;
justify-content: center;
margin-top: 10px;
width: 90px;
}
@media screen and (min-width: 768px){
.np-box-header{
height: 120px;
padding-top: 30px;
}
.np-box-content-container{
margin-top: 0;
}
}
</style>
<script>
let fullPropsObj = {};
let revisedPropsObj = {};
document.getElementById("sign-up-state-dropdown").addEventListener('change', (event) => {
if(event.target.value == 'California'){
document.querySelector('#calEVV-input').style.display = 'block';
document.querySelector('#ca-input').style.display = 'block';
} else {
document.querySelector('#calEVV-input').style.display = 'none';
document.querySelector('#calEVV-label').style.display = 'none';
document.querySelector('#ca-input').style.display = 'none';
document.querySelector('#ca-label').style.display = 'none';
}
if(event.target.value == 'Ohio'){
document.querySelector('#oh-input').style.display = 'block';
} else {
document.querySelector('#oh-input').style.display = 'none';
document.querySelector('#oh-label').style.display = 'none';
}
});
let digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
let validateForm = () => {
let validForm = false;
if(event.target.placeholder){
if(event.target.placeholder == 'Agency Name'){
if(event.target.value == ''){
fullPropsObj['agency_name'] = undefined;
} else {
fullPropsObj['agency_name'] = event.target.value;
}
}
if(event.target.placeholder == 'Agency ID # (Optional)'){
if(event.target.value == ''){
fullPropsObj['agency_id'] = undefined;
} else {
fullPropsObj['agency_id'] = event.target.value;
}
}
if(event.target.placeholder == 'Medicaid ID #'){
if(event.target.value == ''){
fullPropsObj['medicaid_id'] = undefined;
document.querySelector('#medicaid-id-input').style.border = '1px solid light-dark(rgb(118, 118, 118), rgb(133, 133, 133))';
document.querySelector('#medicaid-id-label').style.display = 'none';
} else {
let splitID = event.target.value.split('');
let valid = true;
if(splitID.length >= 5 && splitID.length <= 12){
for(let i = 0; i < splitID.length; i++){
if(digits[splitID[i]] != splitID[i]){
valid = false;
}
}
} else {
valid = false;
}
if(valid){
fullPropsObj['medicaid_id'] = event.target.value;
document.querySelector('#medicaid-id-input').style.border = '1px solid light-dark(rgb(118, 118, 118), rgb(133, 133, 133))';
document.querySelector('#medicaid-id-label').style.display = 'none';
} else {
fullPropsObj['medicaid_id'] = undefined;
document.querySelector('#medicaid-id-input').style.border = '1px solid red';
document.querySelector('#medicaid-id-input').style.borderRadius = '2px';
document.querySelector('#medicaid-id-label').style.display = 'block';
}
}
}
if(event.target.placeholder == 'Provider ID #'){
if(event.target.value == ''){
fullPropsObj['provider_id'] = undefined;
document.querySelector('#provider-id-input').style.border = '1px solid light-dark(rgb(118, 118, 118), rgb(133, 133, 133))';
document.querySelector('#provider-id-label').style.display = 'none';
} else {
let splitID = event.target.value.split('');
let valid = true;
if(splitID.length == 10){
for(let i = 0; i < splitID.length; i++){
if(digits[splitID[i]] != splitID[i]){
valid = false;
}
}
} else {
valid = false;
}
if(valid){
fullPropsObj['provider_id'] = event.target.value;
document.querySelector('#provider-id-input').style.border = '1px solid light-dark(rgb(118, 118, 118), rgb(133, 133, 133))';
document.querySelector('#provider-id-label').style.display = 'none';
} else {
fullPropsObj['provider_id'] = undefined;
document.querySelector('#provider-id-input').style.border = '1px solid red';
document.querySelector('#provider-id-input').style.borderRadius = '2px';
document.querySelector('#provider-id-label').style.display = 'block';
}
}
}
if(event.target.placeholder == 'CalEVV Identifier'){
if(fullPropsObj['learner_state'] == 'California'){
if(event.target.value == ''){
fullPropsObj['cal_evv_id'] = undefined;
document.querySelector('#calEVV-input').style.border = '1px solid light-dark(rgb(118, 118, 118), rgb(133, 133, 133))';
document.querySelector('#calEVV-label').style.display = 'none';
} else {
let splitID = event.target.value.split('');
let valid = true;
if(splitID.length == 10){
for(let i = 0; i < splitID.length; i++){
if(digits[splitID[i]] != splitID[i]){
valid = false;
}
}
} else {
valid = false;
}
if(valid){
fullPropsObj['cal_evv_id'] = event.target.value;
document.querySelector('#calEVV-input').style.border = '1px solid light-dark(rgb(118, 118, 118), rgb(133, 133, 133))';
document.querySelector('#calEVV-label').style.display = 'none';
} else {
fullPropsObj['cal_evv_id'] = undefined;
document.querySelector('#calEVV-input').style.border = '1px solid red';
document.querySelector('#calEVV-input').style.borderRadius = '2px';
document.querySelector('#calEVV-label').style.display = 'block';
}
}
} else {
document.querySelector('#calEVV-input').style.border = '1px solid light-dark(rgb(118, 118, 118), rgb(133, 133, 133))';
document.querySelector('#calEVV-label').style.display = 'none';
}
}
}
// Ohio Additional Options
if(event.target.parentNode.getAttribute('placeholder') == 'OH Identifier'){
if(fullPropsObj['learner_state'] == 'Ohio'){
if(event.target.getAttribute('value') == ''){
fullPropsObj['oh_group_name'] = undefined;
document.querySelector('#oh-label').style.display = 'none';
} else {
for(let i = 0; i < event.target.parentNode.children.length; i++){
event.target.parentNode.children[i].style.background = '#f2f4f5';
}
event.target.style.background = 'rgb(242, 169, 0)';
event.target.style.color = '#000';
let valid = true;
if(valid){
fullPropsObj['oh_group_name'] = event.target.getAttribute('value');
document.querySelector('#oh-label').style.display = 'none';
} else {
fullPropsObj['oh_group_name'] = undefined;
document.querySelector('#oh-label').style.display = 'block';
}
}
} else {
fullPropsObj['oh_group_name'] = undefined;
document.querySelector('#oh-label').style.display = 'none';
}
}
// California Additional Options
if(event.target.parentNode.getAttribute('placeholder') == 'CA Identifier'){
if(fullPropsObj['learner_state'] == 'California'){
if(event.target.getAttribute('value') == ''){
fullPropsObj['ca_group_name'] = undefined;
document.querySelector('#ca-label').style.display = 'none';
} else {
for(let i = 0; i < event.target.parentNode.children.length; i++){
event.target.parentNode.children[i].style.background = '#f2f4f5';
}
event.target.style.background = 'rgb(242, 169, 0)';
event.target.style.color = '#000';
let valid = true;
if(valid){
fullPropsObj['ca_group_name'] = event.target.getAttribute('value');
document.querySelector('#ca-label').style.display = 'none';
} else {
fullPropsObj['ca_group_name'] = undefined;
document.querySelector('#ca-label').style.display = 'block';
}
}
} else {
fullPropsObj['ca_group_name'] = undefined;
document.querySelector('#ca-label').style.display = 'none';
}
}
if(event.target.children[0]){
if(event.target.children[0].textContent == 'Select a state'){
// console.log(event.target.value)
if(event.target.value == ''){
fullPropsObj['learner_state'] = undefined;
} else {
fullPropsObj['learner_state'] = event.target.value;
}
}
if(event.target.children[0].textContent == 'Select a role'){
if(event.target.value == ''){
fullPropsObj['learner_role'] = undefined;
} else {
fullPropsObj['learner_role'] = event.target.value;
}
}
}
revisedPropsObj = {};
let fullPropsObjKeyMap = Object.keys(fullPropsObj);
for(let i = 0; i < fullPropsObjKeyMap.length; i++){
let currentKey = fullPropsObjKeyMap[i];
if(fullPropsObj[currentKey] != undefined){
revisedPropsObj[currentKey] = fullPropsObj[currentKey];
}
}
if(Object.keys(revisedPropsObj).length > 0){
let validationFlag = true;
let allRequiredFields = ['agency_name', 'medicaid_id', 'provider_id', 'learner_state', 'learner_role'];
for(let i = 0; i < allRequiredFields.length; i++){
if(Object.keys(revisedPropsObj).indexOf(allRequiredFields[i]) == -1){
validationFlag = false;
} else {
if(allRequiredFields[i] == 'learner_state' && revisedPropsObj[allRequiredFields[i]] == 'California'){
if(Object.keys(revisedPropsObj).indexOf('cal_evv_id') == -1){
validationFlag = false;
document.querySelector('#calEVV-input').style.border = '1px solid red';
document.querySelector('#calEVV-input').style.borderRadius = '2px';
document.querySelector('#calEVV-label').style.display = 'block';
} else {
document.querySelector('#calEVV-input').style.border = '1px solid light-dark(rgb(118, 118, 118), rgb(133, 133, 133))';
document.querySelector('#calEVV-label').style.display = 'none';
}
} else if(allRequiredFields[i] == 'learner_state' && revisedPropsObj[allRequiredFields[i]] == 'Ohio'){
if(Object.keys(revisedPropsObj).indexOf('oh_group_name') == -1){
validationFlag = false;
document.querySelector('#oh-label').style.display = 'block';
} else {
document.querySelector('#oh-label').style.display = 'none';
}
}
}
}
if(validationFlag){
document.querySelector('.sign-up-follow-up-button').style.background = '#f2a900';
document.querySelector('.sign-up-follow-up-button').style.color = '#4964a2';
revisedPropsObj['successfully_completed_secondary_registration'] = true;
validForm = true;
} else {
document.querySelector('.sign-up-follow-up-button').style.background = '#f2f4f5';
document.querySelector('.sign-up-follow-up-button').style.color = '#000';
}
} else {
document.querySelector('.sign-up-follow-up-button').style.background = '#f2f4f5';
document.querySelector('.sign-up-follow-up-button').style.color = '#000';
}
return validForm;
}
document.addEventListener('keyup', validateForm);
document.getElementsByClassName("sign-up-follow-up-input")[0].addEventListener('change', validateForm);
document.getElementById("sign-up-role-dropdown").addEventListener('change', validateForm);
document.getElementById("sign-up-state-dropdown").addEventListener('change', validateForm);
let submitData = async () => {
event.preventDefault();
if(validateForm()){
let userID = '{{ current_person.id }}'
let email = '{{ current_person.email }}'
console.log('SUBMIT!')
console.log(userID);
if(revisedPropsObj['learner_state'] != 'Ohio'){
revisedPropsObj['oh_group_name'] = null;
}
if(revisedPropsObj['learner_state'] != 'California'){
revisedPropsObj['cal_evv_id'] = null;
}
console.log(revisedPropsObj);
function webhookCaller(){
return new Promise(function(res, rej) {
let xhr = new XMLHttpRequest();
url = "https://webhooks.workato.com/webhooks/rest/0a1d61c1-421c-4160-a1ab-d29e79aee50e/secondary-registration-submitted";
xhr.addEventListener("load", e => {
localStorage.setItem('completed-second-registration', true);
window.location.replace('/app/dashboard');
});
xhr.open("POST", url, true);
xhr.send(JSON.stringify([{
id: userID,
email: email,
type:'person_properties',
attributes: {
'properties': revisedPropsObj
},
}]))
})
}
try {
await webhookCaller();
} catch(err) {
console.log(err)
}
}
}
</script>

View File

@ -9,3 +9,17 @@
{{ color_palette.header_font_hover_color }}
{{ color_palette.header_color }}
*/
@media screen and (min-width: 768px){
header{
background: url(https://s3.amazonaws.com/static.northpass.com/sandata/sandataBanner.jpg) !important;
background-color: #fff !important;
background-position: center !important;
background-repeat: no-repeat !important;
}
.np-box-header{
background: #FFF !important;
}
}

View File

@ -1,4 +0,0 @@
<table>
<tr></tr>
<tr></tr>
</table>

View File

@ -30,7 +30,7 @@ Catalog page:
Correct Cert URL: `https://chubb.northpass.com/app/certificate/d5f601c5-5677-4177-9cc3-4041c8030290`
TODO: Ask Marek about custom LP notifications and adding a cert URL. {{ certificate.url }} --> is this possible?
Learning path strings together )completion page button)
Learning path strings together (completion page button)
custom learning path button end of course screen
## 02/15/2024
@ -116,3 +116,16 @@ Steve question about SSO:
## 4/4/2024
SSO - Not live yet, but working! Tuesday 4/9 ideal go-live date. End of Day, close of business around 5pm-ish EST.
## 4/11/2024
New SSO go live date - Friday morning 4/12. Around 5am
Small update on their end.
Steve to update Auth settings and Norm/Charlie to update super admin `openid_azure` shared accounts type
Upper limit of all Agents provisioned under SSO is ~35k. "All Agent Comms" is around that number.
FYI and any collateral for Steve:
* Chubb's North America CMO wants to leverage CE data for leads
* Meeting with Kim & Steve's manager for that convo
* Meeting is on Monday with CMO.
* Steve is trying to steer the direction of not putting marketing assets into CE
* Educational value add only. Agents will be able to tell what is authentic ed materials and what's marketing.

View File

@ -298,3 +298,7 @@ Plan on expanding use to more Pals - this is a testing phase.
He and Seth are really liking Northpass and think it is working great for them.
TODO: get additional time-based analytics for them as well as ask for a db extract of delivery log for comms.
## 04-11-2024
Meeting with Chapin and Ely
New training

View File

@ -2,7 +2,7 @@
## Glossary
* GRR (Gross Revenue Retention) 90% is best in class, 100% is possible, but unheard of.
* DFR (Gross Revenue Retention) 90% is best in class, 100% is possible, but unheard of.
* NRR (Net Revenue Retention): 120% goal. In bad economy, 110-115% is more realistic.
* Leading Indicator: Predict future outcomes
* Lagging Indicator: Look at past outcomes

View File

@ -1,3 +1 @@
Comp is based on GRR only
Metrics/KPIs are VOs and exec alignment.
wdkal;jwd;lkawd

View File

@ -6,7 +6,7 @@ baseCsv = "/Users/normrasmussen/Downloads/Incomplete list of Users.csv"
baseUrl = "https://api.northpass.com/v2/people/"
baseUrlname = "https://api.northpass.com/v2/people?filter[name][eq]="
baseUrlemail = "https://api.northpass.com/v2/people?filter[email][eq]="
apikey = Apikeys.client
apikey = Apikeys.clien
def getfromEmail(baseUrlemail, baseCsv, apiKey):

View File

@ -173,7 +173,7 @@ def props():
print(f"{person_id}'s status code is {prop_response.status_code}'")
if prop_response.status_code != 200:
print(
f"There is a non-200 status code. The code was {prop_response.status_code}. Here's the text:"
f"There is a non-200 status code. The code was {prop_response.status_code}. Here's the text:"
)
print(f"{response.text}")

View File

@ -15,7 +15,7 @@ So this could be used for each learning path. In other words:
learning_paths = {'01:Skuid Ethos' : ["Congratulations", "Create", "Skuid Resources"]} etc etc
Ideally, we will add Alexa's "levels" in this dictionary as well. Could we do:
Ideally, we will add Alexa's "levels" in this dictionary as well.Could we do:
learning_paths = {'Level_1': [{'01:Skuid Ethos' : ["Congratulations", "Create", "Skuid Resources"]},
{'02:Composer' : ["Overview", "Get Started with Composer", "Manage Pages"}]

View File

@ -1,6 +1,6 @@
# Random Tasks
# Random Task
-Date is the date the task as assigned.-
- Date is the date the task as assigned.-
---------
@ -161,9 +161,14 @@ message](https://northpasshq.slack.com/archives/C04RER4PH09/p1709147957374999?th
## 04-02-2024
- [ ] Glassdoor - reach out to Paul about next meeting - alone with Tracy or reschedule?
- [ ] Datasnipper - Email Alexandra and Dirk about Monday's Meeting
- [X] Datasnipper - Email Alexandra and Dirk about Monday's Meeting
## 04-04-2024
- [ ] Anthology - Update ILT cards:
- [ ] "Additional Dates" rather than "Multiple Dates" provided there's enough room for the characters.
## 04-11-2024
- [ ] Papa - Clone course to Pal University `Understanding No-Shows & Late Cancellations`
- [ ] Artera - Update Sign in page to exclude gmail and yahoo emails.