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? | | Company | Gong Renewal | Actual Renewal | Submitted to Gong Feedback? |
|---------------- | --------------- | --------------- | ------------------ | |---------------- | --------------- | --------------- | ------------------ |
| Walmart | 1/1/2026 | 4/07/25 | Yes, 09/01/2023 | | 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-content np-card-content-vertical np-card-padding">
<div class="np-card-training-sessions"> <div class="np-card-training-sessions">
<i class="np-card-training-sessions-icon far fa-calendar-star"></i> <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 %} {% t .sessions, count: training_event.sessions.size %}
{% endif %}
</span> </span>
<a <a
class="np-button np-button-wide" class="np-button np-button-wide"

View File

@ -2,6 +2,8 @@
{% styles colors %} {% styles colors %}
{% styles custom %} {% 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> <script>
(function(apiKey){ (function(apiKey){
(function(p,e,n,d,o){var v,w,x,y,z;o=p[d]=p[d]||{};o._q=o._q||[]; (function(p,e,n,d,o){var v,w,x,y,z;o=p[d]=p[d]||{};o._q=o._q||[];
@ -23,4 +25,4 @@
} }
}); });
{% endif %} {% endif %}
</script> </script>

View File

@ -16,11 +16,11 @@
{% include "messages" %} {% include "messages" %}
<script> <script>
setTimeout(function(){ setTimeout(function(){
if (window.location.pathname == "/auth/auth_url_email/login") { 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) { if (document.getElementsByClassName("np-alert-wrapper").length != 0) {
document.getElementsByClassName("np-alert-wrapper")[0].innerHTML = "Please complete the following information to access Artera"; document.getElementsByClassName("np-alert-wrapper")[0].innerHTML = "Please complete the following information to access Artera";
} }
}; };
}, 500); }, 500);

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"> <main class="np-box-container np-open-access">
<div class="np-box"> <div class="np-box">
{% include "header_minimal" %} {% include "header_minimal" %}
@ -12,19 +8,10 @@
{% t shared.welcome_to_school, school_name: current_school.name %} {% t shared.welcome_to_school, school_name: current_school.name %}
</div> </div>
<div class="np-form-subheadline"> <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> </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"> <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 %} {% t shared.first_name %}
</label> </label>
<input <input
@ -37,7 +24,7 @@
/> />
</div> </div>
<div class="np-form-field"> <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 %} {% t shared.last_name %}
</label> </label>
<input <input
@ -49,8 +36,8 @@
/> />
</div> </div>
<div class="np-form-field"> <div class="np-form-field">
<label class="np-input-label" for="learner_email"> <label class="np-input-label" for="learner_email" style="color: black;">
{% t shared.email_address %} Company Email
</label> </label>
<input <input
class="np-input" class="np-input"
@ -60,13 +47,57 @@
value="{{ form.email }}" value="{{ form.email }}"
/> />
</div> </div>
<p style="display: none;" id="bad_email_alert">Please Enter Your Company Email</p>
<input <input
type="submit" type="submit"
name="commit" name="commit"
value="{% t shared.enter %}" value="{% t shared.enter %}"
id="submit_button"
class="np-button np-button-big np-form-action" class="np-button np-button-big np-form-action"
/> />
</form> </form>
</div> </div>
</div> </div>
</main> </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> <i class="np-header-search-icon far fa-search"></i>
</form> </form>
{% for website_navigation in navigations.header_navigations %} {% for website_navigation in navigations.header_navigations %}
<a {% unless website_navigation.name == 'Home' %}
href="{{ website_navigation.path }}" <a
class="np-header-mobile-menu-content-button" href="{{ website_navigation.path }}"
{% if website_navigation.external? %} target="_blank" {% endif %} class="np-header-mobile-menu-content-button"
> {% if website_navigation.external? %} target="_blank" {% endif %}
{{ website_navigation.name }} >
</a> {{ website_navigation.name }}
</a>
{% endunless %}
{% endfor %} {% endfor %}
<div class="np-header-mobile-menu-content-line"></div> <div class="np-header-mobile-menu-content-line"></div>
{% unless current_school.sso_active? %} {% unless current_school.sso_active? %}
@ -178,3 +180,13 @@
</div> </div>
{% include "messages" %} {% 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"> <nav class="np-sub-navigation">
<div class="np-sub-navigation-content"> <div class="np-sub-navigation-content">
{% for link in navigations.sub_navigation %} {% for link in navigations.sub_navigation %}
<div class="np-sub-navigation-content-item {{ link.active_class }}"> {% unless link.label == 'Home' %}
<a class="np-sub-navigation-content-item-link" href="{{ link.url }}"> <div class="np-sub-navigation-content-item {{ link.active_class }}">
<i class="{{ link.icon }} np-button-color np-sub-navigation-content-item-icon"></i> <a class="np-sub-navigation-content-item-link" href="{{ link.url }}">
{{ link.label }} <i class="{{ link.icon }} np-button-color np-sub-navigation-content-item-icon"></i>
</a> {{ link.label }}
<div class="np-sub-navigation-content-item-bar np-button-background-color"></div> </a>
</div> <div class="np-sub-navigation-content-item-bar np-button-background-color"></div>
</div>
{% endunless %}
{% endfor %} {% endfor %}
</div> </div>
</nav> </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 %} {% include "course_version_outdated_alert", courses: courses.featured %}
<main class="np-main np-homepage"> <main class="np-main np-homepage">
<div class="np-homepage-hero"> <div class="np-homepage-hero">
@ -13,11 +16,6 @@
<div class="np-homepage-subheadline np-header-font-color"> <div class="np-homepage-subheadline np-header-font-color">
{{ homepage.subheadline }} {{ homepage.subheadline }}
</div> </div>
{% comment %}
<a class="np-homepage-hero-cta np-button" href="{% route catalog %}">
{% t .discover %}
</a>
{% endcomment %}
</div> </div>
</div> </div>
{% include "sub_navigation" %} {% include "sub_navigation" %}
@ -51,4 +49,4 @@
{% endif %} {% endif %}
</div> </div>
</main> </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_font_hover_color }}
{{ color_palette.header_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` 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? 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 custom learning path button end of course screen
## 02/15/2024 ## 02/15/2024
@ -116,3 +116,16 @@ Steve question about SSO:
## 4/4/2024 ## 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. 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. 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. 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 ## 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. * NRR (Net Revenue Retention): 120% goal. In bad economy, 110-115% is more realistic.
* Leading Indicator: Predict future outcomes * Leading Indicator: Predict future outcomes
* Lagging Indicator: Look at past outcomes * Lagging Indicator: Look at past outcomes

View File

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

View File

@ -6,7 +6,7 @@ baseCsv = "/Users/normrasmussen/Downloads/Incomplete list of Users.csv"
baseUrl = "https://api.northpass.com/v2/people/" baseUrl = "https://api.northpass.com/v2/people/"
baseUrlname = "https://api.northpass.com/v2/people?filter[name][eq]=" baseUrlname = "https://api.northpass.com/v2/people?filter[name][eq]="
baseUrlemail = "https://api.northpass.com/v2/people?filter[email][eq]=" baseUrlemail = "https://api.northpass.com/v2/people?filter[email][eq]="
apikey = Apikeys.client apikey = Apikeys.clien
def getfromEmail(baseUrlemail, baseCsv, apiKey): 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}'") print(f"{person_id}'s status code is {prop_response.status_code}'")
if prop_response.status_code != 200: if prop_response.status_code != 200:
print( 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}") 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 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"]}, learning_paths = {'Level_1': [{'01:Skuid Ethos' : ["Congratulations", "Create", "Skuid Resources"]},
{'02:Composer' : ["Overview", "Get Started with Composer", "Manage Pages"}] {'02:Composer' : ["Overview", "Get Started with Composer", "Manage Pages"}]

View File

@ -7,7 +7,7 @@ function getUuids() {
var dataRange = sheet.getRange(3, 3, numRows, 1); var dataRange = sheet.getRange(3, 3, numRows, 1);
var values = dataRange.getValues(); var values = dataRange.getValues();
writeHeadings(); writeHeadings();
for (email in values){ for (email in values){
var row = values[email]; var row = values[email];
var email = row[0] var email = row[0]

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 ## 04-02-2024
- [ ] Glassdoor - reach out to Paul about next meeting - alone with Tracy or reschedule? - [ ] 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 ## 04-04-2024
- [ ] Anthology - Update ILT cards: - [ ] Anthology - Update ILT cards:
- [ ] "Additional Dates" rather than "Multiple Dates" provided there's enough room for the characters. - [ ] "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.