arrow-admin
Version:
Arrow Admin Website
44 lines (40 loc) • 1.53 kB
JavaScript
define(['jquery', 'toc'], function ($, TOC) {
return function (src, enablePartialLoads, callback) {
if (!callback) {
callback = enablePartialLoads;
enablePartialLoads = false;
}
var isCMS = src === 'cms';
var loadingHTML = '<div id="loader"><i class="icon-spin5 animate-spin"></i> Loading...</div>';
$('div.content').html(loadingHTML).load(src, loaded);
if (enablePartialLoads) {
$('#nav-secondary').on('click', 'a', function (evt) {
var href = $(this).attr('href'),
page = isCMS ? src : href.replace('.html?', '/');
history.pushState({ href: href }, '', href);
if (!isCMS) { TOC.reRenderMenu(); }
$('div.content').html(loadingHTML).load(page, loaded);
evt.preventDefault();
});
window.onpopstate = function () {
var href = window.location.pathname.split('/').pop() + (window.location.search || ''),
page = isCMS ? src : (window.location.search ? href.replace('.html?', '/') : href.split('.')[0]);
if (!isCMS) { TOC.reRenderMenu(); }
$('div.content').html(loadingHTML).load(page, loaded);
};
}
function loaded() {
// join together blockquote and code as one big block
$('blockquote.unformat + pre.highlight').prev().addClass('noborder');
$('blockquote.unformat + pre.highlight div.toolbar').each(function () {
var el = $(this).parent('pre.highlight').prev('blockquote.unformat');
// move it to the blockquote
el.append($(this));
});
$('body').trigger('contentloaded');
if (callback) {
callback();
}
}
};
});