You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
3.1 KiB
116 lines
3.1 KiB
/// <reference path="../../includes.ts"/>
|
|
module Developer{
|
|
var log = Logger.get('developer-navigation');
|
|
export function createCurrentSubNavBar($scope, $location, $routeParams){
|
|
return activateCurrent([
|
|
{
|
|
href: UrlHelpers.join(context,"Overview","hot/data-type/all"),
|
|
label: "热区数据管理",
|
|
title: "查看所有数据",
|
|
items: [{
|
|
href: UrlHelpers.join(context,"Overview","hot/data-type/all"),
|
|
label: "全部",
|
|
title: "全部数据"
|
|
},
|
|
{
|
|
href: UrlHelpers.join(context,"Overview","hot/data-type/financial"),
|
|
label: "财政",
|
|
title: "财政数据"
|
|
},
|
|
{
|
|
href: UrlHelpers.join(context,"Overview/","hot/data-type/social-security"),
|
|
label: "社保",
|
|
title: "社保数据"
|
|
}]
|
|
},
|
|
{
|
|
href: UrlHelpers.join(context,"Overview","cold/data-type/all"),
|
|
label: "冷区数据管理",
|
|
title: "数据汇总任务",
|
|
items: [{
|
|
href: UrlHelpers.join(context,"Overview","cold/data-type/all"),
|
|
label: "全部",
|
|
title: "全部数据"
|
|
},
|
|
{
|
|
href: UrlHelpers.join(context,"Overview","cold/data-type/financial"),
|
|
label: "财政",
|
|
title: "财政数据"
|
|
},
|
|
{
|
|
href: UrlHelpers.join(context,"Overview/","cold/data-type/social-security"),
|
|
label: "社保",
|
|
title: "社保数据"
|
|
}]
|
|
}
|
|
]);
|
|
}
|
|
|
|
function activateCurrent(navBarItems) {
|
|
navBarItems = _.compact(navBarItems);
|
|
var injector = HawtioCore.injector;
|
|
var $location = injector ? injector.get<ng.ILocationService>("$location") : null;
|
|
if ($location) {
|
|
var path = normalizeHref(trimQuery($location.path()));
|
|
var found = false;
|
|
function makeActive(item) {
|
|
item.active = true;
|
|
found = true;
|
|
}
|
|
function getHref(item) {
|
|
var href = item.href;
|
|
var trimHref = trimQuery(href);
|
|
return normalizeHref(trimHref);
|
|
}
|
|
angular.forEach(navBarItems, (item) => {
|
|
if (!found && item) {
|
|
if (angular.isFunction(item.isActive)) {
|
|
if (item.isActive(item, path)) {
|
|
makeActive(item);
|
|
}
|
|
} else {
|
|
var trimHref = getHref(item);
|
|
if (!trimHref) {
|
|
return;
|
|
}
|
|
if (trimHref === path) {
|
|
makeActive(item);
|
|
}
|
|
}
|
|
}
|
|
});
|
|
// Maybe it's a sub-item of a tab, let's fall back to that maybe
|
|
if (!found) {
|
|
angular.forEach(navBarItems, (item) => {
|
|
if (!found) {
|
|
if (!angular.isFunction(item.isActive)) {
|
|
var trimHref = getHref(item);
|
|
if (!trimHref) {
|
|
return;
|
|
}
|
|
if (_.startsWith(path, trimHref)) {
|
|
makeActive(item);
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}
|
|
// still not found, let's log it
|
|
if (!found) {
|
|
log.debug("No navigation tab found for path:", path);
|
|
}
|
|
}
|
|
return navBarItems;
|
|
}
|
|
|
|
function trimQuery(text) {
|
|
if (text) {
|
|
var idx = text.indexOf("?");
|
|
if (idx >= 0) {
|
|
return text.substring(0, idx);
|
|
}
|
|
}
|
|
return text;
|
|
}
|
|
|
|
} |