diff --git a/Custom_Templates/customer_templates/Cin7 Customer Academy/_cards_course.html.liquid b/Custom_Templates/customer_templates/Cin7 Customer Academy/_cards_course.html.liquid index 963a5f3a..226a69b9 100644 --- a/Custom_Templates/customer_templates/Cin7 Customer Academy/_cards_course.html.liquid +++ b/Custom_Templates/customer_templates/Cin7 Customer Academy/_cards_course.html.liquid @@ -8,18 +8,18 @@ class="learning-path-card-image" /> {% if course.ribbon %} -
+
{{ course.ribbon }}
{% endif %}
+
COURSE

{{ course.name }}

- {% comment %} {% endcomment %}
{{ course.short_description }}
@@ -28,13 +28,14 @@
{{course.properties.course_duration}} min -
- {% endif %} - {% comment %} {% if course.properties.recommended_for %} - - {% endif %} {% endcomment %} +
+ {% endif %} + {% unless course.properties.audience == 'missing property: audience' %} + + {% endunless %} diff --git a/Custom_Templates/customer_templates/Cin7 Customer Academy/_cards_learning_path_homepage.html.liquid b/Custom_Templates/customer_templates/Cin7 Customer Academy/_cards_learning_path_homepage.html.liquid index a29384a4..85f9daf8 100644 --- a/Custom_Templates/customer_templates/Cin7 Customer Academy/_cards_learning_path_homepage.html.liquid +++ b/Custom_Templates/customer_templates/Cin7 Customer Academy/_cards_learning_path_homepage.html.liquid @@ -6,8 +6,16 @@ class="learning-path-card-image" src="{{ learning_path.image_url }}" /> +
+ {% if learning_path.name contains "Omni" %} + Omni + {% elsif learning_path.name contains "Core" %} + Core + {% endif %} +
+
LEARNING PATH

{{ learning_path.name }}

diff --git a/Custom_Templates/customer_templates/Cin7 Customer Academy/_featured_courses.html.liquid b/Custom_Templates/customer_templates/Cin7 Customer Academy/_featured_courses.html.liquid index 7cc9d940..cc7e0a3c 100644 --- a/Custom_Templates/customer_templates/Cin7 Customer Academy/_featured_courses.html.liquid +++ b/Custom_Templates/customer_templates/Cin7 Customer Academy/_featured_courses.html.liquid @@ -1,12 +1,13 @@ {% assign omni = false %} {% assign core = false %} +{% assign log_out = true %} {% if current_person.signed_in? %} - {% assign signed_in = true %} + {% assign log_out = false %} {% for group in current_person.groups %} - {% if group.id == '9daeef1e-bd6c-47da-a343-ef772ba88300' %} + {% if group.name contains 'Core' %} {% assign core = true %} - {% elsif group.id == 'afa31e2d-646e-4b7e-b65e-c426dc30ec5c' %} + {% elsif group.name contains 'Omni' %} {% assign omni = true %} {% endif %} {% endfor %} diff --git a/Custom_Templates/customer_templates/Cin7 Customer Academy/_filters_catalog.html.liquid b/Custom_Templates/customer_templates/Cin7 Customer Academy/_filters_catalog.html.liquid index 5b38e159..eaefc3f5 100644 --- a/Custom_Templates/customer_templates/Cin7 Customer Academy/_filters_catalog.html.liquid +++ b/Custom_Templates/customer_templates/Cin7 Customer Academy/_filters_catalog.html.liquid @@ -38,6 +38,21 @@ {% endif %} {% endfor %}
+ {%elsif log_out%} +
+ {% assign unique_core_categories = "" %} + {% for course in courses.in_catalog %} + {% for category in course.categories %} + {% unless unique_core_categories contains category.name %} +
+ + +
+ {% assign unique_core_categories = unique_core_categories | append: category.name %} + {% endunless %} + {% endfor %} + {% endfor %} +
{% endif %}
diff --git a/Custom_Templates/customer_templates/Cin7 Customer Academy/_footer.html.liquid b/Custom_Templates/customer_templates/Cin7 Customer Academy/_footer.html.liquid index 9a2d753f..186ec2de 100644 --- a/Custom_Templates/customer_templates/Cin7 Customer Academy/_footer.html.liquid +++ b/Custom_Templates/customer_templates/Cin7 Customer Academy/_footer.html.liquid @@ -1,11 +1,13 @@ {% assign omni = false %} {% assign core = false %} +{% assign log_out = true %} {% if current_person.signed_in? %} + {% assign log_out = false %} {% for group in current_person.groups %} - {% if group.id == '9daeef1e-bd6c-47da-a343-ef772ba88300' %} + {% if group.name contains 'Core' %} {% assign core = true %} - {% elsif group.id == 'afa31e2d-646e-4b7e-b65e-c426dc30ec5c' %} + {% elsif group.name contains 'Omni' %} {% assign omni = true %} {% endif %} {% endfor %} @@ -18,8 +20,8 @@ diff --git a/Custom_Templates/customer_templates/Cin7 Customer Academy/_my_badges_carousel.html.liquid b/Custom_Templates/customer_templates/Cin7 Customer Academy/_my_badges_carousel.html.liquid index f6eea102..c1c8c46b 100644 --- a/Custom_Templates/customer_templates/Cin7 Customer Academy/_my_badges_carousel.html.liquid +++ b/Custom_Templates/customer_templates/Cin7 Customer Academy/_my_badges_carousel.html.liquid @@ -6,7 +6,7 @@ {% endfor %} + {% elsif log_out %} +
New to Cin7 Core? Start learning here!
+
+ {% include 'learning_path_carousel' %} +
+
New to Cin7 Omni? Start learning here!
+
+ {% include "category_carousel"%} +
{% endif %}
diff --git a/Custom_Templates/customer_templates/Cin7 Customer Academy/learning_paths.html.liquid b/Custom_Templates/customer_templates/Cin7 Customer Academy/learning_paths.html.liquid index f6c4c70f..dfd95e5a 100644 --- a/Custom_Templates/customer_templates/Cin7 Customer Academy/learning_paths.html.liquid +++ b/Custom_Templates/customer_templates/Cin7 Customer Academy/learning_paths.html.liquid @@ -1,11 +1,13 @@ {% assign omni = false %} {% assign core = false %} +{% assign log_out = true %} {% if current_person.signed_in? %} + {% assign log_out = false %} {% for group in current_person.groups %} - {% if group.id == '9daeef1e-bd6c-47da-a343-ef772ba88300' %} + {% if group.name contains 'Core' %} {% assign core = true %} - {% elsif group.id == 'afa31e2d-646e-4b7e-b65e-c426dc30ec5c' %} + {% elsif group.name contains 'Omni' %} {% assign omni = true %} {% endif %} {% endfor %} diff --git a/Custom_Templates/customer_templates/Cin7 Customer Academy/styles.css.liquid b/Custom_Templates/customer_templates/Cin7 Customer Academy/styles.css.liquid index a940ffc7..ae764abd 100644 --- a/Custom_Templates/customer_templates/Cin7 Customer Academy/styles.css.liquid +++ b/Custom_Templates/customer_templates/Cin7 Customer Academy/styles.css.liquid @@ -85,9 +85,9 @@ body { color: #002f6f; font-size: 1.25rem; margin: 0; + height: 46px; } .course-time { - margin-top: 15px; color: #000000b5; display: flex; align-items: center; @@ -96,6 +96,7 @@ body { .course-desc { margin-top: 15px; color: #002f6f; + height: 60px; } .lp-link { text-decoration: none; @@ -188,7 +189,7 @@ body { margin-top: 20px; } .card { - margin: 10px; + margin: 10px; } .right-arrow { @@ -391,7 +392,7 @@ body { .np-footer-top { display: flex; flex-direction: row; - align-items:flex-start; + align-items:flex-start; } .np-footer-navigation-list { @@ -473,31 +474,28 @@ body { width: 60%; } .card-badge { - background: #f8f5f2; + background: #FFFFFF; display: flex; justify-content: center; - padding: 2rem; + padding: 2rem; border-radius: 20px 20px 0 0; } .card-category { background: #002f6f; display: flex; justify-content: center; - padding: 2rem; + padding: 2rem; border-radius: 20px 20px 0 0; } .card-content-badge { text-align: center; + padding: 0; } .completed-courses { margin-top: 10px; font-weight: 500; color: #002f6f; } -.recommended { - margin-top: 10px; - color: #000000b5; -} .np-header-desktop-nav-list { justify-content: end; } @@ -506,9 +504,28 @@ body { } .recommended { - font-weight: 600; - color: #002f6f; + color: #000000b5; +} + +.card-type +{ + color: #000000b5; + text-align: end; + margin-bottom: 10px; font-size: 0.85rem; + font-weight: 600; + opacity: 0.75; +} +.course-details { + display: flex; + justify-content: space-between; + align-items: center; + margin-top: 15px; + gap: 10px +} + +.card:hover { + transform: translateY(-0.125rem); } @media only screen and (max-width: 768px) { @@ -543,4 +560,4 @@ body { position: relative; margin-bottom: 20px; } -} \ No newline at end of file +} diff --git a/CustomerNotes/Artera/Artera.md b/CustomerNotes/Artera/Artera.md index 9977e60e..8b03321e 100644 --- a/CustomerNotes/Artera/Artera.md +++ b/CustomerNotes/Artera/Artera.md @@ -139,3 +139,29 @@ Jackie is OUT as of 22nd. * These partners need better metrics. * Can they do a scheduled report? * Filters for the report? She's not sure. + +## 02/14/2024 + +### New Year, new meetings + +Goals for 2024: +* She will get this to me +* CKO is in March, that's when they will get a "lay of the land" for the company. + +Needs for 2024: +* Mini coursework +* Role-specific courses +* Wants to see the next 6 months roadmap +* Would love to see a public product board and/or community to up-vote ideas. +* Update URL to a new custom domain. + * TODO: Send Emily and Jackie the steps for updating their domain to Artera. + +Red Flags: +* Analytics "are the worst they have ever seen in an LMS" + * Average Course Completion across _all_ courses needs to be customized in Google Sheets + * Manual calculations are needed + * They use Looker, so comparatively Northpass is limited. + * They want to know more about Enterprise analytics. +* Learning Paths not available to Managers is "bizarre" +* Admin Console for who has changed what, who has updated the course, being able to view version history, etc. +* Workflow - uploading SCORM file directly to course. Editing and uploading quizzes directly to a course. diff --git a/CustomerNotes/SPSCommerce/SPSCommerce.md b/CustomerNotes/SPSCommerce/SPSCommerce.md index c50293ea..9f797344 100644 --- a/CustomerNotes/SPSCommerce/SPSCommerce.md +++ b/CustomerNotes/SPSCommerce/SPSCommerce.md @@ -169,5 +169,5 @@ Be to sure to ask how the redesign is going and how the User Journey/Flow is pro - They want Gainsight to be much more robust, but it all depends on the data. - Very interested in the analytics extract and they know it is a paid service. -TODO: Create new report in Looker for Kayla/Kathleen. Kayla to send the filter params. Pulled Monthly, but for all time. -TODO: Test [this video](https://www.youtube.com/watch?v=WMFEMn2-O9E) in Northpass and ensure no ads show up. +DONE: Create new report in Looker for Kayla/Kathleen. Kayla to send the filter params. Pulled Monthly, but for all time. +DONE: Test [this video](https://www.youtube.com/watch?v=WMFEMn2-O9E) in Northpass and ensure no ads show up. diff --git a/CustomerNotes/Walmart/Walmart.md b/CustomerNotes/Walmart/Walmart.md index 30fd3e1f..f21889ef 100644 --- a/CustomerNotes/Walmart/Walmart.md +++ b/CustomerNotes/Walmart/Walmart.md @@ -955,5 +955,13 @@ Travis question re: Context Aware screens: Expectations? None really. These are new metrics that they haven't seen before - no KPIs yet. They have some internal funnels to break it out by category. What does Travis want to see improve when we pull these numbers next quarter? + * Segmentation of resource overview -* Content Authoring - fewer activities, are we using all features, +* Content Authoring - fewer activities, are we using all features + +## 02/14/2024 + +### Design - Scroll over Click + +Sounds like they want us to be more of a CMS. +They would like more scrollable content and less clickable content. diff --git a/Scripts/GAS_GS/AnthologyCSV-Parse-Prod/MasterCSV_Parser.js b/Scripts/GAS_GS/AnthologyCSV-Parse-Prod/MasterCSV_Parser.js index 70936d6f..1c16b44f 100644 --- a/Scripts/GAS_GS/AnthologyCSV-Parse-Prod/MasterCSV_Parser.js +++ b/Scripts/GAS_GS/AnthologyCSV-Parse-Prod/MasterCSV_Parser.js @@ -11,7 +11,7 @@ async function prepareSheet() { } } -function main(previousLast) { +function main() { var folder = DriveApp.getFolderById("1hAz7O-eoxFUk4YW7FoHr4uNJmPs7CiV5BjBNTLtMJzXwY0CbpykYgSAkFR5Quy_MPdn3e_5j"); var files = folder.getFiles(); while (files.hasNext()) { @@ -103,6 +103,7 @@ function austinComparseData(outdated_data, updated_data) { } function updatedDomainsOnly(domains_to_update) { + Logger.log(domains_to_update) for (var x = 0; x < domains_to_update.length; x++) { var array = domains_to_update[x]; for (var i = 1; i < array.length; i++) { @@ -128,105 +129,88 @@ function updatedDomainsOnly(domains_to_update) { } } } - replaceOnSheet(array); + + let tmpArray = array; const dom = array.shift(); const groups = array; - //sendWebhook({domain_to_update : { domain: dom, group_ids: groups }}) + Logger.log("{domain_to_update : {domain :"+dom+", group_ids : "+groups+" }}") + sendWebhook({domain_to_update : { domain: dom, group_ids: groups }}) + replaceOnSheet(tmpArray); } } -function replaceOnSheet(array) { +function replaceOnSheet(tmpArray) { var ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/1Kck1UUOkVIU4kbBC8b_bl77fNaCTSFStiv0I5Gg-kIc/'); var sheet = ss.getActiveSheet() var dataRow = Math.max(sheet.getLastRow(),1); - let dom = array.shift(); - let groups = array; + let domain = tmpArray.shift(); + let groupIds = tmpArray; - Logger.log(dom) - let boo = sheet.createTextFinder(dom).findNext() + Logger.log(domain) + let boo = sheet.createTextFinder(domain).findNext() if (boo != null ) { group2 = [] currCell = boo.getRowIndex(); - groups.forEach(item => { if (item.length > 0) { group2.push(item) }}); + groupIds.forEach(item => { if (item.length > 0) { group2.push(item) }}); group2 = [group2]; - Logger.log(group2); - sheet.getRange(currCell, 1).setValue(dom); + //Logger.log(group2); + sheet.getRange(currCell, 1).setValue(domain); sheet.getRange(currCell, 2, 1, group2[0].length).setValues(group2) - // groups.forEach((item) => sheet.getRange(currCell, 2, 1, groups.length).setValue(item)); - // groups.forEach((element) => Logger.log(element)) - //sheet.getRange(currCell, 2,).setValue(groups); } else { - groups.forEach(item => { if (item.includes("")){ } else { group2.push(item) }}); - Logger.log(group2); - sheet.getRange(dataRow+1, 1).setValue(dom); + groupIds.forEach(item => { if (item.includes("")){ } else { group2.push(item) }}); + //Logger.log(group2); + sheet.getRange(dataRow+1, 1).setValue(domain); sheet.getRange(dataRow+1, 2, 1, group2[0].length).setValues(group2) - //sheet.getRange(dataRow + 1, 1).setValue(dom); - // groups.forEach((item,index,array) => array[index] = [item]); - // groups.forEach((item) => sheet.getRange(dataRow+1, 2, 1, groups.length).setValue(item)); - // groups.forEach((element) => Logger.log(element)) - //sheet.getRange(dataRow + 1, 2).setValue(groups) } - // var searchResult = columnValues.findIndex(([r]) => r == dom); - // if(searchResult != -1) { - // sheet.getRange(searchResult + 2, 1) - // } else { - // sheet.getRange(dataRow + 1, 1).setValue(dom); - // sheet.getRange(dataRow + 1, 2).setValue(groups) - // } } -function fullParse(full_data, previousLast) { - for (var x = 1; x < full_data.length; x++) { - var array = full_data[x]; - for (var i = 1; i < array.length; i++) { - var item = array[i] - if (item != "") { - var api_url = 'https://api.northpass.com/v2/groups/?filter[name][eq]='+encodeURIComponent(item); - const settings = { - async: true, - crossDomain: true, - method: 'GET', - headers: { - accept: 'application/json', - 'X-Api-Key': apiKey - } - }; - const sendMsg = UrlFetchApp.fetch(api_url, settings); - var uuidResponse = sendMsg.getContentText(); - var parseData = JSON.parse(uuidResponse) - Logger.log("Current Check:"+item) - var groupID = parseData['data'][0]['id'] - var groupName = array.indexOf(item); - if (groupName != -1) { - array[groupName] = groupID; - } - } - } - const dom = array.shift(); - const groups = array; - previousLast++ - Logger.log("PrevLast: "+previousLast) - updateLog(previousLast) - writeDataToSheet(dom, groups) - } -} +// function fullParse(full_data, previousLast) { +// for (var x = 1; x < full_data.length; x++) { +// var array = full_data[x]; +// for (var i = 1; i < array.length; i++) { +// var item = array[i] +// if (item != "") { +// var api_url = 'https://api.northpass.com/v2/groups/?filter[name][eq]='+encodeURIComponent(item); +// const settings = { +// async: true, +// crossDomain: true, +// method: 'GET', +// headers: { +// accept: 'application/json', +// 'X-Api-Key': apiKey +// } +// }; +// const sendMsg = UrlFetchApp.fetch(api_url, settings); +// var uuidResponse = sendMsg.getContentText(); +// var parseData = JSON.parse(uuidResponse) +// //Logger.log("Current Check:"+item) +// var groupID = parseData['data'][0]['id'] +// var groupName = array.indexOf(item); +// if (groupName != -1) { +// array[groupName] = groupID; +// } +// } +// } +// const dom = array.shift(); +// const groups = array; +// writeDataToSheet(dom, groups) +// } +// } //Inserts a new sheet and writes a 2D array of data in it -function writeDataToSheet(dom, groups) { - Logger.log("Domain: "+dom+"and groups: "+groups) - var ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/1Kck1UUOkVIU4kbBC8b_bl77fNaCTSFStiv0I5Gg-kIc/'); - var sheet = ss.getActiveSheet() - var dataRow = Math.max(sheet.getLastRow(),1); - Logger.log(dataRow); - sheet.insertRowAfter(dataRow+1); - sheet.getRange(dataRow+1, 1).setValue(dom); - for (var g = 0; g < groups.length; g++) { - sheet.getRange(dataRow+1, g+2).setValue(groups[g]); - } -} +// function writeDataToSheet(dom, groups) { +// var ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/1Kck1UUOkVIU4kbBC8b_bl77fNaCTSFStiv0I5Gg-kIc/'); +// var sheet = ss.getActiveSheet() +// var dataRow = Math.max(sheet.getLastRow(),1); +// sheet.insertRowAfter(dataRow+1); +// sheet.getRange(dataRow+1, 1).setValue(dom); +// for (var g = 0; g < groups.length; g++) { +// sheet.getRange(dataRow+1, g+2).setValue(groups[g]); +// } +// } function sendWebhook(domain_to_update){ - Logger.log("Webhook function Object: "+JSON.stringify(domain_to_update)) + //Logger.log("Webhook function Object: "+JSON.stringify(domain_to_update)) var payload = domain_to_update var options = { 'method': 'post',