Skip to content

Commit 762ae47

Browse files
Merge pull request #132 from DNNCommunity/develop
Merge `develop` into `main` for `1.3.0` release
2 parents fa77a1c + 88a9923 commit 762ae47

15 files changed

+409
-339
lines changed

manifest.dnn

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<dotnetnuke type="Package" version="9.0">
22
<packages>
3-
<package name="nvisionative.DNNCommunityTheme" type="Skin" version="1.2.1">
3+
<package name="nvisionative.DNNCommunityTheme" type="Skin" version="1.3.0">
44
<friendlyName>DNNCommunityTheme</friendlyName>
55
<description>A DNN Theme by and for the DNN Community</description>
66
<iconFile>MyIcon.png</iconFile>

menus/desktop/RazorMenu.cshtml

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
@using DotNetNuke.Web.DDRMenu;
2+
@using System.Dynamic;
3+
@inherits DotNetNuke.Web.Razor.DotNetNukeWebPage<dynamic>
4+
5+
<ul class="h-100" id="nav-desktop">
6+
@RenderPages(Model.Source.root.Children)
7+
</ul>
8+
9+
@helper RenderPages(IEnumerable<MenuNode> pages)
10+
{
11+
if (!pages.Any())
12+
{
13+
return;
14+
}
15+
16+
foreach (var page in pages)
17+
{
18+
var hasChildren = page.HasChildren();
19+
var attrTarget = !string.IsNullOrEmpty(page.Target) ? ("target=\"" + page.Target + "\"") :string.Empty;
20+
21+
<li class="@(page.Selected ? "selected" : string.Empty)">
22+
@if (page.Enabled)
23+
{
24+
<a href="@page.Url" @attrTarget>@page.Text</a>
25+
}
26+
else
27+
{
28+
<a href="javascript:void(0);" @attrTarget>@page.Text</a>
29+
}
30+
31+
@if (hasChildren)
32+
{
33+
<ul>
34+
@RenderPages(page.Children)
35+
</ul>
36+
}
37+
</li>
38+
}
39+
}
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
<?xml version="1.0" encoding="utf-8" ?>
22
<manifest>
3-
<template>MainMenu.txt</template>
3+
<template>RazorMenu.cshtml</template>
44
</manifest>

menus/main/MainMenu.txt

-37
This file was deleted.

menus/mobile/RazorMenu.cshtml

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
@using DotNetNuke.Web.DDRMenu;
2+
@using System.Dynamic;
3+
@inherits DotNetNuke.Web.Razor.DotNetNukeWebPage<dynamic>
4+
5+
<span class="hamburger material-icons" id="nav-mobile"><i class="fa fa-2x fa-bars"></i></span>
6+
7+
<nav class="nav-drill" id="nav-mobile">
8+
<ul class="nav-items">
9+
@RenderPages(Model.Source.root.Children)
10+
</ul>
11+
</nav>
12+
13+
@helper RenderPages(IEnumerable<MenuNode> pages)
14+
{
15+
if (!pages.Any())
16+
{
17+
return;
18+
}
19+
20+
foreach (var page in pages)
21+
{
22+
var hasChildren = page.HasChildren();
23+
var pageDesc = Html.Raw(!string.IsNullOrEmpty(page.Description) ? ("<br/><span class=\"link-description\">" + @page.Description + "</span>") :string.Empty);
24+
var attrTarget = !string.IsNullOrEmpty(page.Target) ? ("target=\"" + page.Target + "\"") :string.Empty;
25+
26+
<li class="nav-item @(hasChildren ? "nav-expand " : string.Empty)@(page.Selected ? "selected" : string.Empty)">
27+
@if (page.Enabled)
28+
{
29+
<a class="nav-link" href="@page.Url" @attrTarget>@page.Text @pageDesc</a>
30+
}
31+
else
32+
{
33+
<a href="javascript:void(0);" @attrTarget>@page.Text @pageDesc</a>
34+
}
35+
36+
@if (hasChildren)
37+
{
38+
<a href="javascript:void(0);" class="nav-link nav-expand-link"><i class="fa fa-chevron-right"></i></a>
39+
<ul class="nav-items nav-expand-content">
40+
<li class="nav-item">
41+
<a class="nav-link nav-back-link" href="javascript:;">
42+
<em class="fa fa-chevron-left mr-1"></em>Back to @page.Text
43+
</a>
44+
</li>
45+
@RenderPages(page.Children)
46+
</ul>
47+
}
48+
</li>
49+
}
50+
}

menus/mobile/menudef.xml

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<manifest>
3+
<template>RazorMenu.cshtml</template>
4+
</manifest>

partials/_header.ascx

+10-5
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,16 @@
1313
</div>
1414
<div class="container-fluid">
1515
<div class="container">
16-
<div class="row nav-main">
17-
<dnn:LOGO id="dnnLOGO" runat="server" />
18-
<nav id="nav-items">
19-
<dnn:MENU id="menu" MenuStyle="menus/main" runat="server" NodeSelector="*"></dnn:MENU>
20-
</nav>
16+
<div class="row justify-content-between flex-nowrap">
17+
<div class="col-auto">
18+
<dnn:LOGO id="dnnLOGO" runat="server" />
19+
</div>
20+
<div class="col-auto ms-auto d-none d-xl-block">
21+
<dnn:MENU id="menu_desktop" MenuStyle="menus/desktop" runat="server" NodeSelector="*,0,2"></dnn:MENU>
22+
</div>
23+
<div class="col-auto ms-auto d-flex align-items-center d-xl-none">
24+
<dnn:MENU id="menu_mobile" MenuStyle="menus/mobile" runat="server" NodeSelector="*,0,2"></dnn:MENU>
25+
</div>
2126
</div>
2227
</div>
2328
</div>

partials/_header.ascx.bak

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<header class="bg-secondary sticky-top">
2+
<div class="container-fluid user-controls bg-light-grey">
3+
<div class="container">
4+
<div class="row justify-content-end">
5+
<ul>
6+
<li><dnn:Login runat="server" id="dnnLogin" /></li>
7+
<li><dnn:User runat="server" id="dnnUser" /></li>
8+
<li style="display:none;"><dnn:Search runat="server" id="dnnSearch" ShowSite="false" ShowWeb="false" Submit="<i class='fa fa-search'></i>" /></li>
9+
<li style="display:none;"><dnn:Language runat="server" id="dnnLanguage" ShowMenu="false" ShowLinks="false" /></li>
10+
</ul>
11+
</div>
12+
</div>
13+
</div>
14+
<div class="container-fluid">
15+
<div class="container">
16+
<div class="row nav-main">
17+
<dnn:LOGO id="dnnLOGO" runat="server" />
18+
<div class="col-auto ms-auto d-none d-xl-block">
19+
<dnn:MENU id="menu_desktop" MenuStyle="menus/desktop" runat="server" NodeSelector="*,0,2"></dnn:MENU>
20+
</div>
21+
<div class="col-auto ms-auto d-flex align-items-center d-xl-none">
22+
<dnn:MENU id="menu_mobile" MenuStyle="menus/mobile" runat="server" NodeSelector="*,0,2"></dnn:MENU>
23+
</div>
24+
</div>
25+
</div>
26+
</div>
27+
</header>

partials/_includes.ascx

+1
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@
88
<dnn:DnnJsInclude runat="server" FilePath="dist/js/jquery.slimmenu.min.js" ForceProvider="DnnFormBottomProvider" Priority="100" PathNameAlias="SkinPath" />
99
<dnn:DnnJsInclude runat="server" FilePath="dist/js/bootstrap.bundle.min.js" ForceProvider="DnnFormBottomProvider" Priority="110" PathNameAlias="SkinPath" />
1010
<dnn:DnnJsInclude runat="server" FilePath="dist/js/custom.min.js" ForceProvider="DnnFormBottomProvider" Priority="120" PathNameAlias="SkinPath" />
11+
<dnn:DnnJsInclude runat="server" FilePath="dist/js/customMenu.min.js" ForceProvider="DnnFormBottomProvider" Priority="130" PathNameAlias="SkinPath" />

project-details.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"project": "DNNCommunityTheme",
3-
"version": "1.2.1",
3+
"version": "1.3.0",
44
"author": "David Poindexter",
55
"company": "nvisionative",
66
"url": "www.nvisionative.com",

src/js/custom.js

-13
Original file line numberDiff line numberDiff line change
@@ -1,13 +0,0 @@
1-
jQuery( document ).ready(function($) {
2-
/* SlimMenu Prep */
3-
$('#navigation').slimmenu({
4-
resizeWidth: '800',
5-
collapserTitle: '',
6-
animSpeed: 0,
7-
easingEffect: null,
8-
indentChildren: false,
9-
childrenIndenter: '&nbsp;',
10-
expandIcon: '',
11-
collapseIcon: ''
12-
});
13-
});

src/js/customMenu.js

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/*jshint esversion: 6 */
2+
3+
// add event listeners to expands
4+
const navExpand = [].slice.call(document.querySelectorAll('.nav-expand'));
5+
6+
navExpand.forEach(item => {
7+
item.querySelector('.nav-expand-link').addEventListener('click', () => item.classList.add('active'));
8+
item.querySelector('.nav-back-link').addEventListener('click', () => item.classList.remove('active'));
9+
});
10+
11+
// setup and add overlay
12+
let overlay = document.createElement('div');
13+
overlay.setAttribute('id', 'body-overlay');
14+
document.body.appendChild(overlay).classList.add('d-none');
15+
16+
// target hamburger menu
17+
const responsiveMenu = document.getElementById('nav-mobile');
18+
const bodyOverlay = document.getElementById('body-overlay');
19+
20+
responsiveMenu.addEventListener('click', function() {
21+
// toggle menu
22+
document.body.classList.toggle('nav-is-toggled');
23+
bodyOverlay.classList.toggle('d-none');
24+
});
25+
26+
// if overlay is clicked
27+
bodyOverlay.addEventListener('click', function(e) {
28+
// toggle menu and overlay
29+
document.body.classList.toggle('nav-is-toggled');
30+
bodyOverlay.classList.toggle('d-none');
31+
});

src/scss/components/_dnn.scss

+1-1
Original file line numberDiff line numberDiff line change
@@ -1028,7 +1028,7 @@ a.pinHelp {
10281028
}
10291029

10301030
.dnnRadiobutton img {
1031-
background: transparent url(../../../../../../images/radiobutton.png) no-repeat;
1031+
background: transparent url(/images/radiobutton.png) no-repeat;
10321032
}
10331033

10341034
.dnnRadiobutton img {

0 commit comments

Comments
 (0)