Permalink
Find file
72 lines (60 sloc) 2.33 KB
/**
* @module Log
* @main Log
*/
/// <reference path="./logHelpers.ts"/>
module Log {
var pluginName = 'log';
var hasMBean = false;
export var _module = angular.module(pluginName, ['bootstrap', 'ngResource', 'ngGrid', 'ngSanitize', 'datatable', 'hawtioCore']);
_module.config(["$routeProvider", ($routeProvider) => {
$routeProvider.
when('/logs', {templateUrl: 'app/log/html/logs.html', reloadOnSearch: false}).
when('/openlogs', {redirectTo: () => {
// use a redirect, as the log plugin may not be valid, if we connect to a JVM which does not have the log mbean
// in the JMX tree, and if that happens, we need to redirect to home, so another tab is selected
if (hasMBean) {
return '/logs'
} else {
return '/home'
}
}, reloadOnSearch: false})
}]);
_module.run(["$location", "workspace", "viewRegistry", "layoutFull", "helpRegistry", "preferencesRegistry", ($location:ng.ILocationService, workspace:Workspace, viewRegistry, layoutFull, helpRegistry, preferencesRegistry) => {
hasMBean = treeContainsLogQueryMBean(workspace);
viewRegistry['log'] = layoutFull;
helpRegistry.addUserDoc('log', 'app/log/doc/help.md', () => {
return treeContainsLogQueryMBean(workspace);
});
preferencesRegistry.addTab("Server Logs", "app/log/html/preferences.html", () => {
return treeContainsLogQueryMBean(workspace);
});
workspace.topLevelTabs.push({
id: "logs",
content: "Logs",
title: "View and search the logs of this container",
isValid: (workspace:Workspace) => treeContainsLogQueryMBean(workspace),
href: () => "#/logs"
});
workspace.subLevelTabs.push({
content: '<i class="icon-list-alt"></i> Log',
title: "View the logs in this process",
isValid: (workspace:Workspace) => isSelectionLogQueryMBean(workspace),
href: () => "#/logs"
});
}]);
_module.filter('logDateFilter', ["$filter", ($filter) => {
var standardDateFilter = $filter('date');
return function (log) {
if (!log) {
return null;
}
if (log.timestampMs) {
return standardDateFilter(log.timestampMs, 'yyyy-MM-dd HH:mm:ss.sss')
} else {
return standardDateFilter(log.timestamp, 'yyyy-MM-dd HH:mm:ss')
}
}
}]);
hawtioPluginLoader.addModule(pluginName);
}