blob: 730ec5a156dca34665cbe09646f97b21e3651d60 [file] [log] [blame]
/*
* Copyright 2017 CUAV.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* 新增 cuav-nav.js
*/
/**
* 构建动态导航菜单
* @param {jQuery} $ jQuery
*/
(function($){
var gitbook = window.gitbook;
/**
* 初始化
* @function
*/
var init = function() {
// TODO 是否需要清空导航栏
var navbar = gitbook.state.config.pluginsConfig["theme-cuav"].navbar;
if (!navbar) {
return;
}
var url = navbar.navAjaxUrl;
if (!url) {
return;
}
$.ajax(url, {
type: 'get',
dataType: 'json',
cache: false,
success: function(data) {
if (!data) {
return;
}
var $navNode = $('#cuav-nav');
for (var i = 0; i < data.length; ++i) { // 循环构建导航菜单
var item = data[i];
if (!item.name) { // 不添加没有菜单名的菜单
continue;
}
var links = item.links;
if (links) { // 拥有二级菜单
var $itemNode = $('<li>').addClass('nav-item dropdown');
var $dropdownNode = $('<a>').addClass('nav-link dropdown-toggle')
.attr('id', 'navbarDropdownMenuLinkJs' + i)
.attr('data-toggle', 'dropdown')
.attr('aria-haspopup', true)
.attr('aria-expanded', false)
.attr('href', 'javascript:;')
.append(item.name);
var $dropdownMenuNode
= $("<div>")
.addClass('dropdown-menu text-center text-lg-left')
.attr('aria-labelledby', 'navbarDropdownMenuLinkJs' + i);
$itemNode.append($dropdownNode).append($dropdownMenuNode);
for (var j = 0; j < links.length; ++j) { // 循环构建二级菜单
var link = links[j];
if (link.name) { // 不添加没有菜单名的菜单
var url = link.url ? link.url : 'javascript:;';
var $dropdownItemNode
= $("<a>")
.addClass('dropdown-item')
.attr('href', url)
$dropdownItemNode.append(link.name);
$dropdownMenuNode.append($dropdownItemNode);
}
}
$navNode.append($itemNode);
} else { // 只有一级菜单
var $itemNode = $("<li>").addClass('nav-item');
var $linkNode = $("<a>").addClass('nav-link');
var url = item.url ? item.url : 'javascript:;';
$linkNode.attr('href', url)
.append(item.name);
$itemNode.append($linkNode);
$navNode.append($itemNode);
}
}
}
});
};
gitbook.push(function() {
init();
});
})(jQuery);