summaryrefslogtreecommitdiffstats
path: root/sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/src/app/ui/header/header.js
diff options
context:
space:
mode:
Diffstat (limited to 'sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/src/app/ui/header/header.js')
-rw-r--r--sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/src/app/ui/header/header.js73
1 files changed, 73 insertions, 0 deletions
diff --git a/sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/src/app/ui/header/header.js b/sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/src/app/ui/header/header.js
new file mode 100644
index 000000000..a6e1155ec
--- /dev/null
+++ b/sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/src/app/ui/header/header.js
@@ -0,0 +1,73 @@
+(function( $, app, i18n ) {
+
+ var ui = app.ns("ui");
+
+ ui.Header = ui.AbstractWidget.extend({
+ defaults: {
+ cluster: null,
+ clusterState: null
+ },
+ _baseCls: "uiHeader",
+ init: function() {
+ this._clusterConnect = new ui.ClusterConnect({
+ cluster: this.config.cluster
+ });
+ var quicks = [
+ { text: i18n.text("Nav.Info"), path: "" },
+ { text: i18n.text("Nav.Status"), path: "_stats" },
+ { text: i18n.text("Nav.NodeStats"), path: "_nodes/stats" },
+ { text: i18n.text("Nav.ClusterNodes"), path: "_nodes" },
+ { text: i18n.text("Nav.Plugins"), path: "_nodes/plugins" },
+ { text: i18n.text("Nav.ClusterState"), path: "_cluster/state" },
+ { text: i18n.text("Nav.ClusterHealth"), path: "_cluster/health" },
+ { text: i18n.text("Nav.Templates"), path: "_template" }
+ ];
+ var cluster = this.config.cluster;
+ var quickPanels = {};
+ var menuItems = quicks.map( function( item ) {
+ return { text: item.text, onclick: function() {
+ cluster.get( item.path, function( data ) {
+ quickPanels[ item.path ] && quickPanels[ item.path ].el && quickPanels[ item.path ].remove();
+ quickPanels[ item.path ] = new ui.JsonPanel({
+ title: item.text,
+ json: data
+ });
+ } );
+ } };
+ }, this );
+ this._quickMenu = new ui.MenuButton({
+ label: i18n.text("NodeInfoMenu.Title"),
+ menu: new ui.MenuPanel({
+ items: menuItems
+ })
+ });
+ this.el = $.joey( this._main_template() );
+ this.nameEl = this.el.find(".uiHeader-name");
+ this.statEl = this.el.find(".uiHeader-status");
+ this._clusterState = this.config.clusterState;
+ this._clusterState.on("data", function( state ) {
+ var shards = state.status._shards;
+ var colour = state.clusterHealth.status;
+ var name = state.clusterState.cluster_name;
+ this.nameEl.text( name );
+ this.statEl
+ .text( i18n.text("Header.ClusterHealth", colour, shards.successful, shards.total ) )
+ .css( "background", colour );
+ }.bind(this));
+ this.statEl.text( i18n.text("Header.ClusterNotConnected") ).css("background", "grey");
+ this._clusterState.refresh();
+ },
+ _main_template: function() { return (
+ { tag: "DIV", cls: this._baseCls, children: [
+ this._clusterConnect,
+ { tag: "SPAN", cls: "uiHeader-name" },
+ { tag: "SPAN", cls: "uiHeader-status" },
+ { tag: "H1", text: i18n.text("General.Elasticsearch") },
+ { tag: "SPAN", cls: "pull-right", children: [
+ this._quickMenu
+ ] }
+ ] }
+ ); }
+ } );
+
+})( this.jQuery, this.app, this.i18n );