generator-portals-clientside
Version:
Generates a SharePoint clientside project skeleton. Brought to you by Skyline's Portals & Collaboration Team.
32 lines (29 loc) • 1.01 kB
JavaScript
exports.render = function(firstLevels, menuType) {
return `
<div class='ms-dialogHidden menu-custom menu-${menuType}'>
${renderLinks(firstLevels, 1)}
</div>
`
}
var renderLinks = function(links, level) {
return `
<ul class='menu-items level-${level}'>
${links.map(l => renderLink(l, level)).join("")}
</ul>
`
}
var renderLink = function(link, level) {
var target = link.OpenInNewWindow ? "target='_blank'" : "";
var hasChildren = link.children && link.children.length;
var childrenHtml = hasChildren ? renderLinks(link.children, level + 1) : "";
var cssClass = `menu-item level-${level}` + (hasChildren ? " has-children" : "");
var menuItem = link.LinkUrl
? `<a class='menu-item-text' href='${link.LinkUrl}' ${target}>${link.Title}</a>`
: `<span class='menu-item-text'>${link.Title}</span>`
return `
<li class='${cssClass}'>
${menuItem}
${childrenHtml}
</li>
`
}