There was an issue with saving this content. Please try again.
There was an issue with removing this item from your saved content. Please try again.
Product Manager Learning Path
This path introduces business and technical stakeholders to a robust toolbox to publish APIs publicly, be more thoughtful with distribution, increase their investment in developer experience, and improve the quality of quantitative and qualitative feedback used to iterate upon API resources.
<
>
document.addEventListener('DOMContentLoaded', function () {
try {
var groups = window.skilljarUserStudentGroups;
// Validate Skilljar group array
if (!Array.isArray(groups) || groups.length === 0) {
return; // No groups → show no logo
}
var suffix = '-portal';
var portalGroups = [];
// Collect all groups whose name ends with "-portal" (case-insensitive)
groups.forEach(function (g) {
if (!g || !g.name) return;
var nameLower = String(g.name).trim().toLowerCase();
if (nameLower.endsWith(suffix)) {
portalGroups.push(g);
}
});
// No portal groups → show no logo
if (portalGroups.length === 0) {
return;
}
// Allowlist of supported portal slugs
var allowedCompanies = ['postman', 'acme', 'contoso'];
// Extend this list as new portal customers are added
// Insert a logo
for each portal group found
portalGroups.forEach(function (pg) {
var nameLower = pg.name.trim().toLowerCase();
// Strip "-portal" suffix
var baseName = nameLower.slice(0, nameLower.length - suffix.length);
// Normalize slug
var slug = baseName
.trim()
.replace(/\s+/g, '-') // spaces → hyphens
.replace(/[^a-z0-9-]/g, ''); // remove invalid chars
if (!slug || allowedCompanies.indexOf(slug) === -1) {
return;
}
insertLogo(slug);
});
// -----------------------------------------
// Insert Logo Helper
// (NO default fallback — slug must match)
// -----------------------------------------
function insertLogo(slug) {
var container = document.getElementById('customer-portal-logo');
if (!container) return;
var elem = document.createElement('img');
elem.setAttribute('alt', 'Logo');
// Map slug → logo asset (examples)
switch (slug) {
case 'acme':
elem.setAttribute('src', 'https://example.com/logos/acme-portal-logo.png');
elem.setAttribute('width', '375');
elem.setAttribute('height', '80');
break;
case 'contoso':
elem.setAttribute('src', 'https://example.com/logos/contoso-portal-logo.png');
elem.setAttribute('width', '349');
elem.setAttribute('height', '65');
break;
case 'postman':
elem.setAttribute('src', 'https://everpath-course-content.s3-accelerate.amazonaws.com/instructor%2Fc3jrngphf22ys6kxwfiw0g9kk%2Fpublic%2F1672880408%2Fpostman-orange-logo.1672880408868.png');
elem.setAttribute('width', '370');
break;
default:
return; // Do nothing — no logo
}
container.appendChild(elem);
}
} catch (e) {
if (window.console && console.warn) {
console.warn('Portal logo init failed', e);
}
}
});
<>