Skip to content

Commit c99178c

Browse files
committed
Restore material-kit js, needed for responsive navigation with tweaks
material-kit.js no longer calls bootstrapMaterialDesign which seems neither compatible with current bootstrap nor maintained.
1 parent 397152f commit c99178c

File tree

5 files changed

+267
-3
lines changed

5 files changed

+267
-3
lines changed

themes/CodeMeta-Pyramids/README

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@ This theme is derived from one of the default layouts included in
44
and further adapted (colour changes) for CodeMeta by cboettig.
55

66
In late 2025, the site was stripped of most of Material-Kit-BS4, the css
7-
being all that remains. Its Bootstrap and JQuery are now vanilla, and
8-
drop-in upgradable to later versions.
7+
& main material-kit.js (no plugins) being all that remains. Its
8+
Bootstrap and JQuery are now vanilla, and drop-in upgradable to later
9+
versions.

themes/CodeMeta-Pyramids/layouts/partials/javascript.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
<!-- Core JS Files -->
88
<script src="/js/core/jquery.min.js" type="text/javascript"></script>
99
<script src="/js/core/bootstrap.bundle.min.js" type="text/javascript"></script>
10+
<script src="/js/material-kit.js" type="text/javascript"></script>
1011

1112
<!-- CodeMeta JS -->
1213
<script src="/js/codemeta.js" type="text/javascript"></script>

themes/CodeMeta-Pyramids/layouts/partials/nav.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<span class="navbar-toggler-icon"></span>
1111
</button>
1212
</div>
13-
<div class="collapse navbar-collapse">
13+
<div class="collapse navbar-collapse show">
1414
<ul class="navbar-nav ml-auto">
1515
{{ range .Site.Menus.main }}
1616
<li class="nav-item">

themes/CodeMeta-Pyramids/static/css/codemeta.css

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,10 @@
1313
transition: all 0.25s;
1414
}
1515

16+
/*!
17+
* overide black border on responsive nav toggler
18+
*/
19+
20+
.navbar {
21+
--bs-navbar-toggler-focus-width: none;
22+
}
Lines changed: 255 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,255 @@
1+
/*!
2+
3+
=========================================================
4+
* Material Kit - v2.0.4
5+
=========================================================
6+
7+
* Product Page: https://www.creative-tim.com/product/material-kit
8+
* Copyright 2018 Creative Tim (http://www.creative-tim.com)
9+
10+
* Designed by www.invisionapp.com Coded by www.creative-tim.com
11+
12+
=========================================================
13+
14+
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
15+
16+
*/
17+
18+
var big_image;
19+
20+
$(document).ready(function() {
21+
BrowserDetect.init();
22+
23+
// Init Material scripts for buttons ripples, inputs animations etc, more info on the next link https://github.com/FezVrasta/bootstrap-material-design#materialjs
24+
//$('body').bootstrapMaterialDesign();
25+
26+
window_width = $(window).width();
27+
28+
$navbar = $('.navbar[color-on-scroll]');
29+
scroll_distance = $navbar.attr('color-on-scroll') || 500;
30+
31+
$navbar_collapse = $('.navbar').find('.navbar-collapse');
32+
33+
// Activate the Tooltips
34+
$('[data-toggle="tooltip"], [rel="tooltip"]').tooltip();
35+
36+
// Activate Popovers
37+
$('[data-toggle="popover"]').popover();
38+
39+
if ($('.navbar-color-on-scroll').length != 0) {
40+
$(window).on('scroll', materialKit.checkScrollForTransparentNavbar);
41+
}
42+
43+
materialKit.checkScrollForTransparentNavbar();
44+
45+
if (window_width >= 768) {
46+
big_image = $('.page-header[data-parallax="true"]');
47+
if (big_image.length != 0) {
48+
$(window).on('scroll', materialKit.checkScrollForParallax);
49+
}
50+
51+
}
52+
53+
54+
});
55+
56+
$(document).on('click', '.navbar-toggler', function() {
57+
$toggle = $(this);
58+
59+
if (materialKit.misc.navbar_menu_visible == 1) {
60+
$('html').removeClass('nav-open');
61+
materialKit.misc.navbar_menu_visible = 0;
62+
$('#bodyClick').remove();
63+
setTimeout(function() {
64+
$toggle.removeClass('toggled');
65+
}, 550);
66+
67+
$('html').removeClass('nav-open-absolute');
68+
} else {
69+
setTimeout(function() {
70+
$toggle.addClass('toggled');
71+
}, 580);
72+
73+
74+
div = '<div id="bodyClick"></div>';
75+
$(div).appendTo("body").click(function() {
76+
$('html').removeClass('nav-open');
77+
78+
if ($('nav').hasClass('navbar-absolute')) {
79+
$('html').removeClass('nav-open-absolute');
80+
}
81+
materialKit.misc.navbar_menu_visible = 0;
82+
$('#bodyClick').remove();
83+
setTimeout(function() {
84+
$toggle.removeClass('toggled');
85+
}, 550);
86+
});
87+
88+
if ($('nav').hasClass('navbar-absolute')) {
89+
$('html').addClass('nav-open-absolute');
90+
}
91+
92+
$('html').addClass('nav-open');
93+
materialKit.misc.navbar_menu_visible = 1;
94+
}
95+
});
96+
97+
materialKit = {
98+
misc: {
99+
navbar_menu_visible: 0,
100+
window_width: 0,
101+
transparent: true,
102+
fixedTop: false,
103+
navbar_initialized: false,
104+
isWindow: document.documentMode || /Edge/.test(navigator.userAgent)
105+
},
106+
107+
initFormExtendedDatetimepickers: function() {
108+
$('.datetimepicker').datetimepicker({
109+
icons: {
110+
time: "fa fa-clock-o",
111+
date: "fa fa-calendar",
112+
up: "fa fa-chevron-up",
113+
down: "fa fa-chevron-down",
114+
previous: 'fa fa-chevron-left',
115+
next: 'fa fa-chevron-right',
116+
today: 'fa fa-screenshot',
117+
clear: 'fa fa-trash',
118+
close: 'fa fa-remove'
119+
}
120+
});
121+
},
122+
123+
initSliders: function() {
124+
// Sliders for demo purpose
125+
var slider = document.getElementById('sliderRegular');
126+
127+
noUiSlider.create(slider, {
128+
start: 40,
129+
connect: [true, false],
130+
range: {
131+
min: 0,
132+
max: 100
133+
}
134+
});
135+
136+
var slider2 = document.getElementById('sliderDouble');
137+
138+
noUiSlider.create(slider2, {
139+
start: [20, 60],
140+
connect: true,
141+
range: {
142+
min: 0,
143+
max: 100
144+
}
145+
});
146+
},
147+
148+
checkScrollForParallax: function() {
149+
oVal = ($(window).scrollTop() / 3);
150+
big_image.css({
151+
'transform': 'translate3d(0,' + oVal + 'px,0)',
152+
'-webkit-transform': 'translate3d(0,' + oVal + 'px,0)',
153+
'-ms-transform': 'translate3d(0,' + oVal + 'px,0)',
154+
'-o-transform': 'translate3d(0,' + oVal + 'px,0)'
155+
});
156+
},
157+
158+
checkScrollForTransparentNavbar: debounce(function() {
159+
if ($(document).scrollTop() > scroll_distance) {
160+
if (materialKit.misc.transparent) {
161+
materialKit.misc.transparent = false;
162+
$('.navbar-color-on-scroll').removeClass('navbar-transparent');
163+
}
164+
} else {
165+
if (!materialKit.misc.transparent) {
166+
materialKit.misc.transparent = true;
167+
$('.navbar-color-on-scroll').addClass('navbar-transparent');
168+
}
169+
}
170+
}, 17)
171+
};
172+
173+
// Returns a function, that, as long as it continues to be invoked, will not
174+
// be triggered. The function will be called after it stops being called for
175+
// N milliseconds. If `immediate` is passed, trigger the function on the
176+
// leading edge, instead of the trailing.
177+
178+
function debounce(func, wait, immediate) {
179+
var timeout;
180+
return function() {
181+
var context = this,
182+
args = arguments;
183+
clearTimeout(timeout);
184+
timeout = setTimeout(function() {
185+
timeout = null;
186+
if (!immediate) func.apply(context, args);
187+
}, wait);
188+
if (immediate && !timeout) func.apply(context, args);
189+
};
190+
};
191+
192+
var BrowserDetect = {
193+
init: function() {
194+
this.browser = this.searchString(this.dataBrowser) || "Other";
195+
this.version = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion) || "Unknown";
196+
},
197+
searchString: function(data) {
198+
for (var i = 0; i < data.length; i++) {
199+
var dataString = data[i].string;
200+
this.versionSearchString = data[i].subString;
201+
202+
if (dataString.indexOf(data[i].subString) !== -1) {
203+
return data[i].identity;
204+
}
205+
}
206+
},
207+
searchVersion: function(dataString) {
208+
var index = dataString.indexOf(this.versionSearchString);
209+
if (index === -1) {
210+
return;
211+
}
212+
213+
var rv = dataString.indexOf("rv:");
214+
if (this.versionSearchString === "Trident" && rv !== -1) {
215+
return parseFloat(dataString.substring(rv + 3));
216+
} else {
217+
return parseFloat(dataString.substring(index + this.versionSearchString.length + 1));
218+
}
219+
},
220+
221+
dataBrowser: [{
222+
string: navigator.userAgent,
223+
subString: "Chrome",
224+
identity: "Chrome"
225+
},
226+
{
227+
string: navigator.userAgent,
228+
subString: "MSIE",
229+
identity: "Explorer"
230+
},
231+
{
232+
string: navigator.userAgent,
233+
subString: "Trident",
234+
identity: "Explorer"
235+
},
236+
{
237+
string: navigator.userAgent,
238+
subString: "Firefox",
239+
identity: "Firefox"
240+
},
241+
{
242+
string: navigator.userAgent,
243+
subString: "Safari",
244+
identity: "Safari"
245+
},
246+
{
247+
string: navigator.userAgent,
248+
subString: "Opera",
249+
identity: "Opera"
250+
}
251+
]
252+
253+
};
254+
255+
var better_browser = '<div class="container"><div class="better-browser row"><div class="col-md-2"></div><div class="col-md-8"><h3>We are sorry but it looks like your Browser doesn\'t support our website Features. In order to get the full experience please download a new version of your favourite browser.</h3></div><div class="col-md-2"></div><br><div class="col-md-4"><a href="https://www.mozilla.org/ro/firefox/new/" class="btn btn-warning">Mozilla</a><br></div><div class="col-md-4"><a href="https://www.google.com/chrome/browser/desktop/index.html" class="btn ">Chrome</a><br></div><div class="col-md-4"><a href="http://windows.microsoft.com/en-us/internet-explorer/ie-11-worldwide-languages" class="btn">Internet Explorer</a><br></div><br><br><h4>Thank you!</h4></div></div>';

0 commit comments

Comments
 (0)