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.
aggregation-platform/plugins/developer/ts/dataManagerHelper.ts

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;
}
}