Downloaded G2 templates. Added notes for DataSnipper and Recast. Added API keys and a few other small items.

This commit is contained in:
Norm Rasmussen
2023-11-09 22:12:16 -05:00
parent 3edcfc22bb
commit fa83a6fc7a
21 changed files with 522 additions and 3 deletions

BIN
.DS_Store vendored

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,68 @@
<div style="display: none !important;" class="np-max-width badges">
<div class="row np-card-container badges-container ">
{% assign number_of_badges = 0 %}
{% assign max_number_of_badges = 5 %}
{% for course in courses.enrolled %}
{% if number_of_badges < max_number_of_badges %}
{% if course.completed? %}
{% unless course.properties.points == "missing property: points" or course.properties.points == null %}
<div class="col-lg-5th">
<img src="{{course.properties.course_badge}}" alt="">
</div>
{% assign number_of_badges = number_of_badges | plus: 1 %}
{% endunless %}
{% endif %}
{% endif %}
{% endfor %}
<div class="col-xs-12 col-sm-6 col-md-4 col-lg-5th badges-item">
<img src="https://s3.us-east-1.amazonaws.com/static.northpass.com/G2/G2_for_sales_badge.png" alt="">
</div>
<div class="col-xs-12 col-sm-6 col-md-4 col-lg-5th badges-item">
<img src="https://s3.us-east-1.amazonaws.com/static.northpass.com/G2/G2_for_sales_badge.png" alt="">
</div>
<div class="col-xs-12 col-sm-6 col-md-4 col-lg-5th badges-item">
<img src="https://s3.us-east-1.amazonaws.com/static.northpass.com/G2/G2_for_sales_badge.png" alt="">
</div>
<div class="col-xs-12 col-sm-6 col-md-4 col-lg-5th badges-item">
<img src="https://s3.us-east-1.amazonaws.com/static.northpass.com/G2/G2_for_sales_badge.png" alt="">
</div>
<div class="col-xs-12 col-sm-6 col-md-4 col-lg-5th badges-item">
<img src="https://s3.us-east-1.amazonaws.com/static.northpass.com/G2/G2_for_sales_badge.png" alt="">
</div>
</div>
</div>
{% if number_of_badges == 0 %}
<style>
.badges {
display: none !important;
}
</style>
{% endif %}
<style>
.badges {
padding: 0 50px;
max-width: 1024px;
}
.badges-container {
background: transparent;
box-shadow: none !important;
padding: 20px 0 10px;
flex-direction: row;
justify-content: center;
z-index: 0;
}
.badges-item {
display: flex;
justify-content: center;
}
.badges img {
margin-bottom: 10px;
width: 140px;
}
</style>

View File

@ -25,6 +25,12 @@
}
</style>
<script type="text/javascript">
document.addEventListener('DOMContentLoaded', function() {
const sign_up = document.getElementsByClassName("sign-up")[0];
sign_up.style.background = 'url("https://s3.amazonaws.com/static.northpass.com/G2/G2ULogin-FullBackground.png")'
sign_up.style.height="100vh";
sign_up.style.backgroundRepeat="no-repeat";
sign_up.style.backgroundSize="cover";
if ( window.location !== window.parent.location ) {
} else {
document.addEventListener('DOMContentLoaded', function(event) {
@ -32,4 +38,7 @@ if ( window.location !== window.parent.location ) {
header.style.display = "flex";
})
}
});
</script>
{% include "style_extension_col_5th" %}

View File

@ -0,0 +1,23 @@
<header class="np-box-header np-header-color ">
<a class="np-box-header-link" href="{% route home %}">
{% if current_school.logo_url %}
<img
alt="{{ current_school.name }}"
src="https://s3.amazonaws.com/static.northpass.com/G2/Logo-G2University.png"
class="np-box-header-logo logo-header-minimal"
/>
{% else %}
<span class="np-school-name np-header-font-color">
{{ current_school.name }}
</span>
{% endif %}
</a>
</header>
{% include "messages" %}
<script>
const logo = document.getElementsByClassName('logo-header-minimal')[0];
logo.style.height = "70px";
logo.style.marginTop="2rem";
</script>

View File

@ -0,0 +1,55 @@
<style>
.col-xs-5th {
box-sizing: border-box;
-webkit-box-flex: 0;
-ms-flex: 0 0 auto;
flex: 0 0 auto;
padding-right: 0.5rem;
padding-left: 0.5rem;
-ms-flex-preferred-size: 20%;
flex-basis: 20%;
max-width: 20%;
}
@media only screen and (min-width: 48em) {
.col-sm-5th {
box-sizing: border-box;
-webkit-box-flex: 0;
-ms-flex: 0 0 auto;
flex: 0 0 auto;
padding-right: 0.5rem;
padding-left: 0.5rem;
-ms-flex-preferred-size: 20%;
flex-basis: 20%;
max-width: 20%;
}
}
@media only screen and (min-width: 64em) {
.col-md-5th {
box-sizing: border-box;
-webkit-box-flex: 0;
-ms-flex: 0 0 auto;
flex: 0 0 auto;
padding-right: 0.5rem;
padding-left: 0.5rem;
-ms-flex-preferred-size: 20%;
flex-basis: 20%;
max-width: 20%;
}
}
@media only screen and (min-width: 75em) {
.col-lg-5th {
box-sizing: border-box;
-webkit-box-flex: 0;
-ms-flex: 0 0 auto;
flex: 0 0 auto;
padding-right: 0.5rem;
padding-left: 0.5rem;
-ms-flex-preferred-size: 20%;
flex-basis: 20%;
max-width: 20%;
}
}
</style>

View File

@ -13,3 +13,5 @@
{% endfor %}
</div>
</nav>
{% include "badges" %}

View File

@ -0,0 +1,59 @@
<main class="np-box-container np-open-access sign-up">
<div class="np-box">
{% include "header_minimal" %}
<div class="np-box-content-container">
<form class="np-form np-box-content" action="{{ form.url }}" method="get" novalidate>
{% form_authenticity_token %}
<div class="np-form-headline">
{% t shared.welcome_to_school, school_name: current_school.name %}
</div>
<div class="np-form-subheadline">
{% t .headline, key: current_school.course_vocabulary %}
</div>
<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="first_name"
id="learner_first_name"
value="{{ form.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="last_name"
id="learner_last_name"
value="{{ form.last_name }}"
/>
</div>
<div class="np-form-field">
<label class="np-input-label" for="learner_email">
{% t shared.email_address %}
</label>
<input
class="np-input"
type="text"
name="email"
id="learner_email"
value="{{ form.email }}"
/>
</div>
<input
type="submit"
name="commit"
value="{% t shared.enter %}"
class="np-button np-button-big np-form-action"
/>
</form>
</div>
</div>
</main>

View File

@ -0,0 +1,59 @@
<main class="np-box-container np-open-access sign-up">
<div class="np-box">
{% include "header_minimal" %}
<div class="np-box-content-container">
<form class="np-form np-box-content" action="{{ form.url }}" method="get" novalidate>
{% form_authenticity_token %}
<div class="np-form-headline">
{% t shared.welcome_to_school, school_name: current_school.name %}
</div>
<div class="np-form-subheadline">
{% t .headline, key: current_school.course_vocabulary %}
</div>
<div class="np-form-field">
<label class="np-input-label" for="learner_employee_id">
{% t shared.employee_id %}
</label>
<input
class="np-input"
autofocus="autofocus"
type="text"
name="employee_id"
id="learner_employee_id"
value="{{ form.employee_id }}"
/>
</div>
<div class="np-form-field">
<label class="np-input-label" for="learner_first_name">
{% t shared.first_name %}
</label>
<input
class="np-input"
type="text"
name="first_name"
id="learner_first_name"
value="{{ form.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="last_name"
id="learner_last_name"
value="{{ form.last_name }}"
/>
</div>
<input
type="submit"
name="commit"
value="{% t shared.enter %}"
class="np-button np-button-big np-form-action"
/>
</form>
</div>
</div>
</main>

View File

@ -0,0 +1,40 @@
<main class="np-box-container np-open-access sign-up">
<div class="np-box">
{% include "header_minimal" %}
<div class="np-box-content-container">
<form class="np-form np-box-content" action="{{ form.url }}" method="get" novalidate>
<div class="np-form-headline"> {% t shared.welcome_to_school, school_name: current_school.name %} </div>
<div class="np-form-subheadline"> {% t .headline, key: current_school.course_vocabulary %} </div>
{% form_authenticity_token %}
<div class="np-form-field">
<label class="np-input-label" for="learner_last_name">
{% t shared.last_name %}
</label>
<input
class="np-input"
autofocus="autofocus"
type="text"
name="last_name"
id="learner_last_name"
value="{{ form.last_name }}"
/>
</div>
<div class="np-form-field">
<label class="np-input-label" for="learner_phone_number">
{% t shared.phone_number %}
</label>
<input
class="np-input"
type="text"
name="phone_number"
id="learner_phone_number"
value="{{ form.phone_number }}"
/>
</div>
<button type="submit" class="np-button np-button-big np-form-action">
{% t shared.enter %}
</button>
</form>
</div>
</div>
</main>

View File

@ -0,0 +1,74 @@
<main class="np-box-container np-open-access sign-up">
<div class="np-box">
{% include "header_minimal" %}
<div class="np-box-content-container">
<form class="np-form np-box-content" action="{{ form.url }}" method="get" novalidate>
<div class="np-form-headline"> {% t shared.welcome_to_school, school_name: current_school.name %} </div>
<div class="np-form-subheadline"> {% t .headline, key: current_school.course_vocabulary %} </div>
{% form_authenticity_token %}
<div class="np-form-field">
<label class="np-input-label" for="learner_email">
{% t shared.email_address %}
</label>
<input
class="np-input"
autofocus="autofocus"
type="email"
name="email"
id="learner_email"
value="{{ form.email }}"
/>
</div>
<div class="np-form-field">
<label class="np-input-label" for="learner_first_name">
{% t shared.first_name %}
</label>
<input
class="np-input"
type="text"
name="first_name"
id="learner_first_name"
value="{{ form.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="last_name"
id="learner_last_name"
value="{{ form.last_name }}"
/>
</div>
<div class="np-form-field">
<label class="np-input-label" for="learner_phone_number">
{% t shared.phone_number_optional %}
</label>
<input
class="np-input"
type="text"
name="phone_number"
id="learner_phone_number"
value="{{ form.phone_number }}"
/>
</div>
<div class="np-form-field np-open-access-terms">
<input type="hidden" name="terms" value="0" />
<input id="terms" type="checkbox" name="terms" value="1" />
<label for="terms" class="np-open-access-terms-checkbox">
{{ current_school.custom_terms }}
</label>
</div>
<input
type="submit"
name="commit"
value="{% t shared.enter %}"
class="np-button np-button-big np-form-action"
/>
</form>
</div>
</div>
</main>

View File

@ -21,7 +21,7 @@
{% include "sub_navigation" %}
{% include 'courses_catalog' %}
{% include 'modal_popup' %}
{% include "footer" %}
{% include "footer" %}
<style>
body { background: #FEFEFE; }

View File

@ -0,0 +1,72 @@
<main class="np-main np-box-containe sing-up">
<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">
{% t shared.email_address %}
</label>
<input
class="np-input"
autofocus="autofocus"
type="email"
name="learner[email]"
id="learner_email"
>
</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

@ -0,0 +1,22 @@
/*
Put your custom overlay styles in here
You can use your northpass color palette in this file
{{ color_palette.button_font_color }}
{{ color_palette.button_color }}
{{ color_palette.button_hover_color }}
{{ color_palette.header_font_color }}
{{ color_palette.header_font_hover_color }}
{{ color_palette.header_color }}
*/
.sign-up {
background-size: cover;
background-repeat: no-repeat;
}
@media screen and (min-width: 768px) {
.logo-header-minimal {
height: 80px
}
}

Binary file not shown.

View File

@ -222,3 +222,25 @@ Told him about embedding support articles.
* Accredible's "Shared on LinkedIn" button: https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.credential.net%2Fd9c470f9-5726-4ebe-9106-5ee2a325a0c6
* Workato Link for DataSnipper Hubspot: webhooks.workato.com/webhooks/rest/bd1a1eb7-7e79-4208-a1db-8e9c7440bcc9/datasnipper-hubspot-flow
## 11/09/2023
### Hande, Dirk, follow up questions
* A few remaining questions from Dirk to "move forward"
* Not happy that LPs are for admins only
* Ideally, we will get the Hubspot automation setup for client groups
* However, some CSMs will need to come in and make some edits
* Admins seem a bit overzealous
TODO: Send Hande product roadmap items, communities, product updates
TODO: Test archived courses URLs and if we get a 404 or 302.
Action Items:
* Auto group creation and assignment of Learning Paths via API.
* Ask Sushant for payload, but they also temporarily have the Hubspot conversion team.
* Want to run messaging out of Hubspot, but it's not clear how Hubspot shows who is/isn't enrolled.
* TODO: Check with partners team for Hubspot logs and why progress isn't being sent to Hubspot. Dirk & Audit course.
* Can the integration clean up old courses in Hubspot properties?
* Hande wants to send email when someone is signed up to an LP. What does Hubspot data look like?
* Email 1: Access to Learning Path
* Email 2: Inactivity Nudge
* Email 3: Badge/Course completion

View File

@ -86,3 +86,4 @@ Stacy: Salesforce Integration, wants to use ChurnZero too.
Other: Chris giving a webinar "Quick Start Guide for the Academy". He will be teasing Certs and LPs in the webinar. He will show the UI for a learning path and other random objects. If we can have anything ready to show regarding Certs, that would be helpful. The webinar is Next Thursday January 26th.
Ideally, the cert will show that the learner is "Right Click Certified".

View File

@ -0,0 +1,12 @@
# PreAppended URLs
## OpenAccess Only
**UID**:
**First, Last, Email:**
**First, Last, Email, Phone, Terms:**
* URL from browser: `https://climbingacademy.northpass.com/auth/auth_url_terms?return_to=/?authenticity_token=JYXeO0T9Z6DkHxK4FCZcokr-VDXwjlrPan84bLawv7MmT6gLsy-wJsTC6WzHSgk51SoKbf-kGOx53lUfHXtuRQ&email=normtest111%40normtest.com&first_name=normtest111&last_name=normtest111&phone_number=1232&terms=0&terms=1&commit=Enter`
* URL with values: `https://climbingacademy.northpass.com?first_name=normm&last_name=normmm&email=normtest2@norm.com&phone_number=11232&terms=1`

View File

@ -15,3 +15,4 @@ DOXIMITY_INTERNAL = "vAnSR4CvxpII6buj3uT23MPBY"
TERMINUS_EMPLOYEE = "M2er8m0DMQyCyP7zOg3Gbae9k"
BIGIDEAS = "mgGWRtmhebC9xulTXeSohVtop"
ZENJOB = "LIXqtHXEqcXHyN0EtezngnpzA"
DATASNIPPER = "098Odf9CIkk4aQA1lW7tsa9k8"

View File

@ -28,8 +28,8 @@ def get_course():
"id": uuid,
"name": name,
"status": status,
# "build_url": build_url
# "url": f"https://walmart.northpass.com/app/courses/{uuid}",
# "build_url": build_url
# "url": f"https://walmart.northpass.com/app/courses/{uuid}",
}
# FIX: Up until here, each course gets read to the terminal.