You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by mr...@apache.org on 2017/09/11 04:38:39 UTC
[09/94] [abbrv] [partial] ambari git commit: AMBARI-21870. Integrate
LogSearch new UI with the server and get rid of the old one (oleewere)
http://git-wip-us.apache.org/repos/asf/ambari/blob/02360dd5/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/ComponentListView.js
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/ComponentListView.js b/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/ComponentListView.js
deleted file mode 100644
index f3bf985..0000000
--- a/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/ComponentListView.js
+++ /dev/null
@@ -1,319 +0,0 @@
-/**
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you 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.
-*/
-
-define(['require',
- 'backbone',
- 'utils/Globals',
- 'utils/ViewUtils',
- 'collections/VNodeList',
- 'hbs!tmpl/dashboard/ComponentListView_tmpl'
-],function(require,Backbone,Globals,ViewUtils,VNodeList,ComponentListViewTmpl){
- 'use strict';
-
- return Backbone.Marionette.ItemView.extend(
- /** @lends ComponentListView */
- {
- _viewName : 'ComponentListView',
-
- template: ComponentListViewTmpl,
-
- /** ui selector cache */
- ui: {
- componentsList : "[data-id='componentContainer']",
- content : "[data-id='content']"
- },
-
- /** ui events hash */
- events: function() {
- var events={};
- events["click li"] = 'onComponentClick';
- events["click .host-info a[data-host]"] = 'onNewTabIconClick';
- events["mouseenter .host-info"] = function(e){
- $(e.currentTarget).children("a[data-host]").removeClass("hidden");
- };
- events["mouseleave .host-info"] = function(e){
- $(e.currentTarget).children("a[data-host]").addClass("hidden");
- };
- return events;
- },
- /**
- * intialize a new ComponentListView ItemView
- * @constructs
- */
- initialize: function(options) {
- _.extend(this, _.pick(options,'vent','globalVent','params'));
- this.searchParams = (this.params)? this.params :{};
- this.initializeCollection();
- this.bindEvents();
- },
- initializeCollection : function(){
- this.componentsList = new VNodeList([],{
- state: {
- firstPage: 0,
- pageSize: 99999
- }
- });
- this.componentsList.url = Globals.baseURL + "service/logs/components/levels/counts";
- this.hostList = new VNodeList([],{
- state: {
- firstPage: 0,
- pageSize: 99999
- }
- });
- this.hostList.url = Globals.baseURL + "service/logs/hosts/components";
- },
- /** all events binding here */
- bindEvents : function(){
- this.listenTo(this.componentsList,"reset",function(collection){
- this.renderComponents();
- this.$("#dashboard_tabs").height(this.ui.componentsList.height());
- //this.renderGraph();
- },this);
- this.listenTo(this.hostList,"reset",function(collection){
- this.renderHostDetails();
- },this);
- this.listenTo(this.vent,"main:search level:filter type:mustNot type:mustBe search:include:exclude " +
- "logtime:filter reinitialize:filter:tree tab:refresh " +
- Globals.eventName.serviceLogsIncludeColumns+" "+Globals.eventName.serviceLogsExcludeColumns,function(value){
- _.extend(this.searchParams,value);
- this.fetchComponents(this.searchParams);
- this.fetchComponentsHost(this.searchParams);
- },this);
- this.listenTo(this.globalVent, "globalExclusion:component:message", function(value) {
- _.extend(this.searchParams,value);
- this.fetchComponents(this.searchParams);
- this.fetchComponentsHost(this.searchParams);
- },this);
- },
- /** on render callback */
- onRender: function() {
- this.fetchComponents((this.params) ? this.params : {q:"*:*"});
- },
- fetchComponents : function(params){
- var that = this;
- $.extend(this.componentsList.queryParams,params);
- this.componentsList.fetch({
- beforeSend : function(){
- that.ui.componentsList.siblings(".loader").show();
- },
- reset:true,
- complete : function(){
- that.ui.componentsList.siblings(".loader").hide();
- }
- });
- },
- fetchComponentsHost : function(params){
- var that = this;
- $.extend(this.hostList.queryParams,params);
- this.hostList.fetch({
- beforeSend : function(){
- that.ui.content.siblings(".loader").show()
- },
- reset:true,
- complete : function(){
- that.ui.content.siblings(".loader").hide()
- }
- });
- },
- renderComponents : function(){
- var that = this;
- that.ui.componentsList.find('.nodebar').popover('destroy');
- that.ui.componentsList.empty();
- if(this.componentsList.length == 0){
- this.$("#dashboard_tabs").hide();
- }else{
- this.$("#dashboard_tabs").show();
- this.componentsList.each(function(model){
- var total=0,logLevelCount = model.get("logLevelCount");
- for(var i=0;i < logLevelCount.length;i++){
- if(logLevelCount[i].value)
- total = total +parseInt(logLevelCount[i].value,10);
- }
- that.ui.componentsList.append('<li data-name="'+model.get("name")+'"><a href="javascript:void(0);" class="tab-link" id="clients">'+model.get("name")+' ('+total+')</a>'+ViewUtils.getCountDistributionHTML(model.attributes)+'</li>');
- that.appendPopover(that.ui.componentsList.find("li").last(),model.attributes);
- });
- }
-
- if(that.lastComponentLI && that.ui.componentsList.find("li[data-name='"+that.lastComponentLI+"']").length){
- that.ui.componentsList.find("li").removeClass("active");
- that.ui.componentsList.find("li[data-name='"+that.lastComponentLI+"']").addClass("active");
- }else{
- if(that.ui.componentsList.find("li").first().length > 0){
- that.ui.componentsList.find("li").first().click();
- }
- }
- },
- renderHostDetails : function(){
- var that=this;
- that.ui.content.find('.nodebar').popover('destroy');
- that.ui.content.empty();
- that.ui.content.append('<div id="dashboard-overview" class="row" style="visibility: visible; position: relative;"></div>');
- if(this.hostList.length > 0){
- var model = this.hostList.first();
- _.each(model.get("childs"),function(m){
- var html = '<div class="col-md-3"><div class="host-info">';
- html += '<a data-host="'+m.name+'" title="'+m.name+' -> '+model.get("name")+'" data-type = "'+model.get("name")+'" href="javascript:void(0)" class="pull-right hidden"><i class="fa fa-share"></i></a>';
- html += '<h5>'+m.name.split(".")[0] + ' ('+m.value+')</h5>';
- html += ViewUtils.getCountDistributionHTML(m);
- html += '</div></div>';
- that.ui.content.append(html);
- that.appendPopover(that.ui.content.find('.col-md-3').last(),m);
- });
- }
- },
- onComponentClick : function(e){
- var $el = $(e.currentTarget);
- this.lastComponentLI = $el.data("name");
- this.ui.componentsList.find("li").removeClass("active");
- $el.addClass("active");
- this.fetchComponentsHost(_.extend({component_name:$el.data("name")},this.searchParams));
- },
- onNewTabIconClick : function(e){
- var $el = $(e.currentTarget),host,component,that=this;
- host = $el.data("host");
- component = $el.data("type");
- that.globalVent.trigger("render:tab",{
- params:_.extend({},{
- host_name : host,
- component_name : component
- }, that.searchParams, {hostList: null}),
- globalVent : that.globalVent
- });
- },
- appendPopover : function(node,data){
- node.find('.nodebar').popover({
- trigger: 'hover',
- placement: "top",
- html: true,
- container: 'body',
- template : '<div class="popover log-count" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>',
- content: this.getPopoverHTML(data)
- });
- },
- getPopoverHTML : function(node){
- if(! node.logLevelCount)
- return "";
- var html="";
- //if count for all elements is zero then popover should not appear
- if(_.find(node.logLevelCount,function(d){ return parseInt(d.value,10) > 0})){
- _.each(node.logLevelCount,function(data){
- html += "<span class='"+data.name+"'><i class='fa fa-circle'></i> "+data.name+": <strong>"+data.value+"</strong></span>";
- });
- }
- return html;
- },
- renderGraph : function(){
- var fatalData=[],errorData=[],warnData=[],infoData=[],debugData=[],traceData=[],
- fatalIndex={},errorIndex={},warnIndex={},infoIndex={},debugIndex={},traceIndex={},tooltipIndex={};
- this.componentsList.each(function(m,i){
- var attr = m.get("logLevelCount");
- tooltipIndex[i] =m.get("name");
- //fatal
- var fatal = _.findWhere(attr,{name:"FATAL"});
- if(fatal){
- fatalData.push(fatal.value);
- fatalIndex[fatalData.length -1] =m.get("name");
- }
- //error
- var error = _.findWhere(attr,{name:"ERROR"});
- if(error){
- errorData.push(error.value);
- errorIndex[errorData.length -1]=m.get("name");
- }
- //warn
- var warn = _.findWhere(attr,{name:"WARN"});
- if(warn){
- warnData.push(warn.value);
- warnIndex[warnData.length -1] =m.get("name");
- }
- //info
- var info = _.findWhere(attr,{name:"INFO"});
- if(info){
- infoData.push(info.value);
- infoIndex[infoData.length -1] =m.get("name");
- }
- //debug
- var debug = _.findWhere(attr,{name:"DEBUG"});
- if(debug){
- debugData.push(debug.value);
- debugIndex[debugData.length -1] =m.get("name");
- }
- //trace
- var trace = _.findWhere(attr,{name:"TRACE"});
- if(trace){
- traceData.push(trace.value);
- traceIndex[traceData.length -1] =m.get("name");
- }
- });
- var barOptions = {
- type : "bar",
- barWidth : 8,
- highlightColor : '#353535',
- barSpacing : 2,
- height : 30,
- tooltipFormat : '{{offset:offset}} {{value}}'
- };
- this.$(".g-fatal").sparkline(fatalData,
- _.extend({}, barOptions, {
- barColor : '#830A0A',
- tooltipValueLookups : {
- 'offset' : fatalIndex
- },
- }));
- this.$(".g-error").sparkline(errorData,
- _.extend({}, barOptions, {
- barColor : '#E81D1D',
- tooltipValueLookups : {
- 'offset' : errorIndex
- },
- }));
- this.$(".g-warn").sparkline(warnData,
- _.extend({}, barOptions, {
- barColor : '#FF8916',
- tooltipValueLookups : {
- 'offset' : warnIndex
- },
- }));
-
- this.$(".g-info").sparkline(infoData,
- _.extend({}, barOptions, {
- barColor : '#2577B5',
- tooltipValueLookups : {
- 'offset' : infoIndex
- },
- }));
-
- this.$(".g-debug").sparkline(debugData,
- _.extend({}, barOptions, {
- barColor : '#65E8FF',
- tooltipValueLookups : {
- 'offset' : debugIndex
- },
- }));
-
- this.$(".g-trace").sparkline(debugData,
- _.extend({}, barOptions, {
- barColor : '#65E8FF',
- tooltipValueLookups : {
- 'offset' : traceIndex
- },
- }));
-
- }
- });
-});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/02360dd5/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/ComponentsView.js
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/ComponentsView.js b/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/ComponentsView.js
deleted file mode 100644
index 424236d..0000000
--- a/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/ComponentsView.js
+++ /dev/null
@@ -1,98 +0,0 @@
-/**
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you 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.
-*/
-
-define(['require',
- 'backbone',
- 'utils/Globals',
- 'collections/VLogLevelList',
- 'hbs!tmpl/dashboard/ComponentsView_tmpl',
- 'select2'
-],function(require,Backbone,Globals,VLogLevel,ComponentsTmpl){
- 'use strict';
-
- return Backbone.Marionette.Layout.extend(
- /** @lends LogLevelView */
- {
- _viewName : 'ComponentsView',
-
- template: ComponentsTmpl,
-
- /** Layout sub regions */
- regions: {
- },
-
- /** ui selector cache */
- ui: {
- },
-
- /** ui events hash */
- events: function() {
- var events = {};
- return events;
- },
-
- /**
- * intialize a new LogLevelView Layout
- * @constructs
- */
- initialize: function(options) {
- _.extend(this, _.pick(options,'vent'));
- this.collection = new VLogLevel();
- this.collection.url = Globals.baseURL+"service/logs/components/count";
- this.bindEvents();
- },
- onRender : function(){
- this.fetchCollection();
- },
- bindEvents : function(){
- this.listenTo(this.collection,"reset",function(collection){
- this.populateDetails();
- },this);
- this.listenTo(this.collection, 'request', function(){
- this.$("#loader").show();
- },this);
- this.listenTo(this.collection, 'sync error', function(){
- this.$("#loader").hide();
- },this);
- this.listenTo(this.vent,"main:search",function(value){
- this.fetchCollection({q:value});
- });
- },
- fetchCollection : function(params){
- $.extend(this.collection.queryParams, params);
- this.collection.fetch({reset:true});
- },
- populateDetails : function(){
- var that = this;
- that.$("tbody").empty();
- var actions = '<td>'+
- '<a href="javascript:void(0);"><i class="fa fa-search"></i></a>'+
- //'<a href="javascript:void(0);"><i class="fa fa-ban"></i></a>'+
- '</td>';
- this.collection.each(function(m,i){
- var html = "<tr>";
- html += "<td>"+m.get("name")+"</td>";
- html += "<td>"+m.get("count")+"</td>";
- html += actions;
- that.$("tbody").append(html);
- });
- }
- });
-
-
-});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/02360dd5/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/DashboardView.js
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/DashboardView.js b/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/DashboardView.js
deleted file mode 100644
index 461e132..0000000
--- a/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/DashboardView.js
+++ /dev/null
@@ -1,184 +0,0 @@
-/**
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you 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.
-*/
-
-define(['require',
- 'backbone',
- 'utils/Globals',
- 'hbs!tmpl/dashboard/DashboardView_tmpl',
- 'collections/VGroupList',
- 'select2',
- 'd3'
-],function(require,Backbone,Globals,DashboardviewTmpl,VGroupList){
- 'use strict';
-
-
- var DashboardView = Backbone.Marionette.Layout.extend(
- /** @lends DashboardView */
- {
- _viewName : 'DashboardView',
-
- template: DashboardviewTmpl,
-
- /** Layout sub regions */
- regions: {
- RLogDetail : "#r_LogDetail"
- },
-
- /** ui selector cache */
- ui: {
- hosts : "#hosts",
- components : "#components",
- time : "#time"
- },
-
- /** ui events hash */
- events: function() {
- var events = {};
- events['click #searchLog'] = 'onSearchLogClick';
- //events['click #searchLog'] = 'onSearchLogClick';
- return events;
- },
-
- /**
- * intialize a new DashboardView Layout
- * @constructs
- */
- initialize: function(options) {
- _.extend(this, _.pick(options, 'collection'));
- this.setupCollections();
- this.bindEvents();
- this.hostCollection.fetch({reset:true});
- this.cComponents.fetch({reset:true});
- },
- setupCollections : function(){
- this.logRegions = new Backbone.Collection();
- this.hostCollection = new VGroupList([],{});
- this.cComponents = new VGroupList([],{});
- this.cComponents.url = Globals.baseURL + "service/logs/components";
- this.cTime = new VGroupList(Globals.timeQueryLOV,{});
- },
- /** all events binding here */
- bindEvents : function(){
- this.listenTo(this.hostCollection, "reset", function(col, abc){
- this.setupSelect2Fields(col,"host", 'host', 'hosts');
- }, this);
- this.listenTo(this.cComponents, "reset", function(col, abc){
- this.setupSelect2Fields(col,"type", 'type', 'components');
- }, this);
- },
-
- /** on render callback */
- onRender: function() {
- this.setupSelect2Fields(this.cTime,"value","text","time");
- },
- showLogDetail : function(){
- var that = this;
- require(['views/dashboard/LogDetailView'],function(LogDetailView){
- that.RLogDetail.show(new LogDetailView({}));
- })
- },
- setupSelect2Fields: function(col, idKey, textKey, selectTagId){
- var that = this, data = [];
- data = _.pluck(col.models, 'attributes');
-
- this.ui[selectTagId].select2({
- placeholder: 'Select',
- allowClear : true,
- width: '100%',
- data: { results: data, text: textKey },
- formatSelection: function(item){
- return item[textKey];
- },
- formatResult: function(item){
- return item[textKey];
- }
- });
- },
- onSearchLogClick : function(e){
- var searchParams = this.getSearchparams();
-
- if(this.logRegions.length == 0){
- var model = new Backbone.Model({
- id : 1,
- params : searchParams
- });
- this.generateView(model);
- }else{
-
- var existsMod = this.logRegions.find(function(m){
- return JSON.stringify(searchParams) === JSON.stringify(m.get('params'))
- });
- if(existsMod){
- $('html, body').animate({
- 'scrollTop' : this.$("#"+existsMod.get("tabName")).position().top
- });
- return;
- }
- var lastModel = this.logRegions.last();
- var model = new Backbone.Model({
- id : parseInt(lastModel.get("id"),10) + 1,
- params : searchParams
- });
- this.generateView(model);
- }
- },
- generateView : function(model){
- var tabName = "r_LogDetail"+model.get("id");
- model.set("tabName",tabName);
- $('<div/>', {
- 'id': tabName,
- 'class': 'r-tab-content col-md-12',
- }).appendTo(this.$('#r_LogDetail'));
- var region = {};
- region[tabName] = '#' + tabName;
- this.addRegions(region);
- this.logRegions.add(model);
- this.renderRegion(model);
- },
- renderRegion : function(model){
- var region = this.getRegion(model.get("tabName"));
- require(['views/dashboard/LogDetailView'],function(LogDetailView){
- region.show(new LogDetailView({model: model}));
- })
-
- },
- getSearchparams : function(){
- var obj={hosts : null, components : null, time:null};
- if(this.ui.hosts.select2("data") != undefined || this.ui.hosts.select2("data") != null){
- if(this.ui.hosts.select2("data").host)
- obj.hosts = this.ui.hosts.select2("data").host;
- }
- if(this.ui.components.select2("data") != undefined || this.ui.components.select2("data") != null){
- if(this.ui.components.select2("data").host)
- obj.components = this.ui.components.select2("data").type;
- }
- if(this.ui.time.select2("data") != undefined || this.ui.time.select2("data") != null){
- if(this.ui.time.select2("data").id)
- obj.time = this.ui.time.select2("val");
- }
- return obj;
-
- },
- /** on close */
- onClose: function(){
- }
-
- });
-
- return DashboardView;
-});
http://git-wip-us.apache.org/repos/asf/ambari/blob/02360dd5/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/GridTableLayoutView.js
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/GridTableLayoutView.js b/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/GridTableLayoutView.js
deleted file mode 100644
index da930ea..0000000
--- a/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/GridTableLayoutView.js
+++ /dev/null
@@ -1,219 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.
- */
-
-define(['require',
- 'backbone',
- 'moment',
- 'd3.tip',
- 'utils/Globals',
- 'utils/Utils',
- 'collections/VLogList',
- 'hbs!tmpl/dashboard/GridTableLayoutView_tmpl',
- 'bootstrap-daterangepicker',
- 'nv'
-], function(require, Backbone, moment, tip, Globals, Utils, VLogList, GridTableLayoutViewTmpl, daterangepicker) {
- 'use strict';
-
- return Backbone.Marionette.Layout.extend(
- /** @lends GridGraphLayoutView */
- {
- _viewName: 'GridGraphLayoutView',
-
- template: GridTableLayoutViewTmpl,
-
-
- /** ui selector cache */
- ui: {
- dateRange: "#dateRange",
- selectDateRange: ".selectDateRange",
- dateRangeTitle: "span[data-id='dateRangeTitle']",
- gridSettingPopup: "[data-id='gridSettingPopup']",
- gridHeader: ".gridHeader"
-
- },
-
- /** ui events hash */
- events: function() {
- var events = {};
- events['change ' + this.ui.viewType] = 'onViewTypeChange';
- events['click [data-id="refresh-tab-graph"]'] = 'onTabRefresh';
- events['click ' + this.ui.gridSettingPopup] = 'onGridSettingPopupClick';
- return events;
- },
-
- /**
- * intialize a new GridGraphLayoutView Layout
- * @constructs
- */
- initialize: function(options) {
- _.extend(this, _.pick(options, 'globalVent', 'params', 'viewType', 'dashboard', 'model', 'gridHelp'));
- this.vent = new Backbone.Wreqr.EventAggregator();
- this.collection = new VLogList([], {
- state: {
- firstPage: 0,
- pageSize: 999999999,
-
- }
- });
-
- this.dateUtil = Utils.dateUtil;
- this.dateRangeLabel = new String();
-
- this.bindEvents();
- this.graphParams = {};
- this.unit = (this.model.params && this.model.params.unit) ? this.model.params.unit : "+1HOUR";
- this.firstRender = true;
- this.collection.url = Globals.baseURL + "audit/logs/anygraph";
- this.collection.modelAttrName = "graphData";
-
- },
- bindEvents: function() {
- this.listenTo(this.collection, "reset", function(collection) {
- this.$(".loader").hide();
- this.$("#loaderGraph").hide();
- }, this);
- this.listenTo(this.collection, 'request', function() {
- this.$(".loader").show();
- this.$("#loaderGraph").show();
- }, this);
- this.listenTo(this.collection, 'sync error', function() {
- this.$(".loader").hide();
- this.$("#loaderGraph").hide();
- }, this);
- this.listenTo(this.vent, "graph:update", function(options) {
-
- options['params'] = this.params
- if (this.model) {
- this.model.clear().set(options)
- }
- this.configureChart(options);
- }, this);
- this.listenTo(this.vent, "graph:data:update", function(params, options) {
- this.params = params
- options['params'] = this.params
- if (this.model) {
- this.model.clear().set(options)
- }
- this.fetchGraphData(params, options);
- }, this);
- this.listenTo(this.vent, "table:grid:update", function(options) {
- options['params'] = this.params
- if (this.model) {
- this.model.clear().set(options)
- }
- this.updateGrid(options)
- }, this);
-
- },
- onRender: function() {
- var that = this;
- if (this.model) {
- var mObject = this.model.toJSON();
- if (mObject.params) {
- this.params = mObject.params;
- this.fetchGraphData(mObject.params, mObject);
- }
- this.updateGrid(mObject);
- }
- if (this.gridHelp) {
- setTimeout(function() {
- this.$('.gridSettinghand').hide();
- }, 3000);
- } else {
- this.$('.gridSettinghand').hide();
- }
-
- },
-
- fetchGraphData: function(params, options) {
- var that = this;
- that.$("#loaderGraph").show();
- that.$(".loader").show();
- _.extend(this.collection.queryParams, params);
- this.collection.fetch({
- reset: true,
- success: function() {
- that.createDataForGraph(options)
- }
- });
- },
- updateGrid: function(options) {
- if (options.title) {
- this.ui.gridHeader.find('.gridTitle').text(options.title);
- }
- },
- setupDialog: function(options) {
- var that = this;
- require(['views/common/JBDialog'], function(JBDialog) {
- var opts = _.extend({
- appendTo: that.$el,
- modal: true,
- resizable: false,
- beforeClose: function(event, ui) {
- that.onDialogClosed();
- }
- }, options);
- var dialog = that.dialog = new JBDialog(opts).render().open();
- })
-
- },
- onGridSettingPopupClick: function() {
- this.$('.gridSettinghand').hide();
- this.dashboard.disable();
- var that = this;
- var overlay = document.createElement('div');
- overlay.setAttribute('class', 'overlayDashboard');
- this.$el.append(overlay);
- require(['views/dialog/GridGraphSettingView'], function(GridGraphSettingView) {
- var view = new GridGraphSettingView({
- vent: that.vent,
- params: (that.model) ? (that.params) : ({}),
- model: that.model,
- viewType: that.viewType
- });
-
- that.setupDialog({
- title: "Setting",
- content: view,
- viewType: 'Save',
- width: 560,
- height: 500,
- buttons: [{
- id: "cancelBtn",
- text: "Close",
- "class": "btn btn-default",
- click: function() {
- that.onDialogClosed();
- }
- }]
- });
- });
- },
- onDialogClosed: function() {
- this.$el.find('.overlayDashboard').remove();
- this.dashboard.enable();
- if (this.dialog) {
- this.dialog.close && this.dialog.close();
- this.dialog.remove && this.dialog.remove();
- this.dialog = null;
- }
- }
- });
-
-
-});
http://git-wip-us.apache.org/repos/asf/ambari/blob/02360dd5/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/HostListView.js
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/HostListView.js b/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/HostListView.js
deleted file mode 100644
index 4283f02..0000000
--- a/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/HostListView.js
+++ /dev/null
@@ -1,356 +0,0 @@
-/**
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you 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.
-*/
-
-define(['require',
- 'backbone',
- 'utils/Globals',
- 'hbs!tmpl/dashboard/HostListView_tmpl',
- 'collections/VNodeList'
-],function(require,Backbone,Globals,HostListViewTmpl,VNodeList){
- 'use strict';
-
- var HostListView = Backbone.Marionette.ItemView.extend(
- /** @lends HostListView */
- {
- _viewName : 'HostListView',
-
- template: HostListViewTmpl,
-
- /** ui selector cache */
- ui: {
- hostNameTxt : "[data-id='hostName']",
- searcHostBtn : "[data-id='searchHost']",
- mainCheck : "#mainCheck"
- },
-
- /** ui events hash */
- events: function() {
- var events = {};
- events["change "+this.ui.mainCheck] = 'onMainCheckboxClick';
- events["click "+this.ui.searcHostBtn] = 'onSearchHostClick';
- events["change .tree input[type='checkbox']"] = 'onChangeNodeCheckbox';
- events["keypress "+this.ui.hostNameTxt] = 'onSearchHostKeypress';
- events["click .tree a[data-type='C']"] = 'onNewTabIconClick';
- events["mouseenter .tree li[data-type='C']"] = function(e){
- $(e.currentTarget).children("a").removeClass("hidden");
- };
- events["mouseleave .tree li[data-type='C']"] = function(e){
- $(e.currentTarget).children("a").addClass("hidden");
- };
- events["click [data-id='collapseAll']"] = function(e){
- //_.each(this.$("[data-state='expand']"));
- this.$("[data-state='expand']").click();
- };
- events["click [data-id='expandAll']"] = function(e){
- //_.each(this.$("[data-state='expand']"));
- this.$("[data-state='collapse']").click();
- };
- return events;
- },
-
- /**
- * intialize a new HostListView ItemView
- * @constructs
- */
- initialize: function(options) {
- _.extend(this, _.pick(options,'vent','globalVent','params'));
- this.searchParams = (this.params)? this.params :{};
- this.collection = new VNodeList([], {
- state: {
- firstPage: 0,
- pageSize: 50
- }
- });
- this.bindEvents();
- this.hostState = {};
- },
- /** all events binding here */
- bindEvents : function(){
- this.listenTo(this.vent,"main:search level:filter type:mustNot type:mustBe search:include:exclude " +
- "logtime:filter reinitialize:filter:tree tab:refresh " +
- Globals.eventName.serviceLogsIncludeColumns+" "+Globals.eventName.serviceLogsExcludeColumns,function(value){
- _.extend(this.searchParams,value);
- this.fetchHosts(this.searchParams);
- },this);
-
- this.listenTo(this.globalVent, "globalExclusion:component:message", function(value) {
- _.extend(this.searchParams,value);
- this.fetchHosts(this.searchParams);
- },this);
-
-// this.listenTo(this.vent, "tab:refresh", function(params) {
-// _.extend(this.searchParams,params);
-// this.fetchHosts(this.searchParams);
-// },this);
-
- this.listenTo(this.collection,"reset",function(){
- this.removeSpinner();
- this.renderHosts();
- });
- },
- /** on render callback */
- onRender: function() {
- this.fetchHosts((this.params) ? this.params : {q:"*:*"});
- },
- fetchHosts : function(params){
- var that = this;
- $.extend(this.collection.queryParams, params, {hostList: null});
- this.collection.fetch({
- reset:true,
- complete : function(){
- that.removeSpinner();
- }
- });
- },
- renderHosts : function(){
- var $el = this.$(".hostNodes"),that=this;
- this.$('.nodebar').popover('destroy');
- $el.empty();
- var $ul;
- this.collection.each(function(data,i){
- //appending box for every host
- //if(i==0 || (i % 5 == 0)){
- //($ul) ? that.formatTree($ul.parent(".tree")) : "";
- $el.append("<div class='col-md-3'><div class='box box-dashed'><div class='box-contentHost'><div class='tree smart-form'><ul></ul></div></div></div></div>");
- $ul = $el.find(".tree.smart-form").last().find("ul");
- //}
- if(data.get("isParent") === "true" || data.get("isParent") == true){
- $ul.append(that.getParentNode(data.attributes));
- var rootNode = $ul.find("li[data-node='"+data.get("name")+"']");
- that.appendChilNodes(data.attributes,rootNode);
- that.appendPopover(rootNode,data.attributes);
- }
- });
- this.formatTree();
- this.restoreCheckbox();
- },
- formatTree : function(){
- var that = this;
- this.$('.tree > ul').attr('role', 'tree').find('ul').attr('role', 'group');
- this.$('.tree').find('li:has(ul)').addClass('parent_li').attr('role', 'treeitem').find(' > span').attr('title', 'Expand this branch').attr("data-state","collapse").on('click', function(e) {
- var children = $(this).parent('li.parent_li').find(' > ul > li');
- if (children.is(':visible')) {
- that.hostState[$(this).parent().data("node")] = false;
- children.hide('fast');
- $(this).attr('title', 'Expand this branch').attr("data-state","collapse").find(' > i').removeClass().addClass('fa fa-plus-circle');
- } else {
- that.hostState[$(this).parent().data("node")] = true;
- children.show('fast');
- $(this).attr('title', 'Collapse this branch').attr("data-state","expand").find(' > i').removeClass().addClass('fa fa-minus-circle');
- }
- e.stopPropagation();
- });
- //this.$('[data-toggle="tooltip"]').tooltip();
- },
- getParentNode : function(node){
- return '<li data-type="'+node.type+'" data-parent="'+node.isParent+'" data-node = "'+node.name+'"> '+this.getCountDistribution(node)+this.getCheckbox(node)+' <span><i class="fa fa-plus-circle"></i> <strong>'+node.name.split(".")[0]+'</strong> ('+node.value+')</span></li>';
- },
- getChildNode : function(node){
- return '<li style="display:none;" data-type="'+node.type+'" data-node = "'+node.name+'" >'+
- '<a data-type="'+node.type+'" data-node = "'+node.name+'" href="javascript:void(0)" class="pull-right hidden"><i class="fa fa-share"></i></a>'+
- this.getCountDistribution(node)+
- //this.getCheckbox(node)+
- ' <span><strong>'+node.name+'</strong> ('+node.value+')</span></li>';
- },
- getCheckbox : function(node){
- return '<label class="checkbox no-margin"> <input data-parent="'+node.isParent+'" data-type="'+node.type+'" data-node="'+node.name+'" checked="checked" type="checkbox"> <i class="fa fa-square-o small"></i></label>';
- },
- appendChilNodes : function(data, $parentNode){
- $parentNode.append('<ul>');
- data.childs = _.isArray(data.childs) ? data.childs : new Array(data.childs);
- var $el = $parentNode.find('ul'),that=this;
- _.each(data.childs,function(node){
- if(! _.isUndefined(node.childs)){
- $el.append(this.getParentNode(node));
- var rootNode = $el.find("li[data-node='"+data.name+"']");
- that.appendChilNodes(node,rootNode);
- }
-
- if(node.isParent === "true" || node.isParent == true)
- $el.append(that.getParentNode(node));
- else{
- $el.append(that.getChildNode(node));
- }
- that.appendPopover($el.find('li').last(),node);
- });
- },
- appendPopover : function(node,data){
- node.children('.nodebar').popover({
- trigger: 'hover',
- placement: "top",
- html: true,
- container: 'body',
- template : '<div class="popover log-count" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>',
- content: this.getPopoverHTML(data)
- });
- },
- getPopoverHTML : function(node){
- //<span style='color:#E2D014'><i class='fa fa-circle'></i> 12876</span>
- if(! node.logLevelCount)
- return "";
- var html="";
- //if count for all elements is zero then popover should not appear
- if(_.find(node.logLevelCount,function(d){ return parseInt(d.value,10) > 0})){
- _.each(node.logLevelCount,function(data){
- html += "<span class='"+data.name+"'><i class='fa fa-circle'></i> "+data.name+": <strong>"+data.value+"</strong></span>";
- });
- }
- return html;
- },
- getCountDistribution : function(node){
- if(! node.logLevelCount)
- return "";
- return '<div data-node = "'+node.name+'" class="nodebar">'+this.getLevelDistribution(node)+'</div>';
- },
- getLevelDistribution : function(node){
- var html="";
- if(! _.isUndefined(node.logLevelCount) && ! _.isArray(node.logLevelCount))
- node.logLevelCount = [node.logLevelCount];
- var toPct = this.calculatePercentge(node.logLevelCount);
- _.each(node.logLevelCount,function(data){
- //html += '<div class="node '+data.name+'" style="width:'+toPct(data)+'%;" data-toggle="tooltip" title="'+data.value+'" data-original-title="'+data.value+'"></div>';
- html += '<div class="node '+data.name+'" style="width:'+toPct(data)+'%;"></div>';
- });
- return html;
- },
- calculatePercentge : function(values) {
- var sum = 0;
- for( var i = 0; i != values.length; ++i ) {
- sum = sum + parseInt(values[i].value,10);
- }
- var scale = 100/sum;
- return function( x ){
- return (parseInt(x.value,10)*scale)/*.toFixed(5)*/;
- };
- },
- onNewTabIconClick : function(e){
- var $el = $(e.currentTarget),host,component,that=this;
- if($el.children().is('img')){
- this.onCompareLink($el);
- }else{
- if($el.parents("[data-parent=true]")){
- host = $el.parents("[data-parent=true]").data("node");
- component = $el.data("node");
- that.globalVent.trigger("render:tab",{
- params:_.extend({},{
- host_name : host,
- component_name : component
- },that.searchParams,{hostList:null}),
- globalVent : that.globalVent
- });
- }
- }
-
- },
- onChangeNodeCheckbox : function(e){
- var $el = $(e.currentTarget);
- if($el.data("parent") == "true" || $el.data("parent") == true){
- if($el[0].checked)
- $el.parent().siblings("ul").find("input").prop("checked",true);
- else
- $el.parent().siblings("ul").find("input").prop("checked",false);
- }else{
- var mainParent = $el.parents("[data-type='H']");
- var checkedLen = mainParent.find("ul :checkbox:checked").length;
- var totalCheckboxLen = mainParent.find("ul :checkbox").length;
- if(checkedLen > 0)
- mainParent.find("input[data-type='H']").prop("checked",true);
- else
- mainParent.find("input[data-type='H']").prop("checked",false);
- if(checkedLen < totalCheckboxLen)
- mainParent.find("input[data-type='H']").prop("indeterminate",true);
- else
- mainParent.find("input[data-type='H']").prop("indeterminate",false);
-
- }
- var data = this.getCheckedHierarchyData();
- this.vent.trigger("tree:search", {hostList: (_.pluck(data, "h")).toString()});
- },
- getCheckedHierarchyData : function(){
- var data=[];
- var parents = this.$('.tree :checkbox:checked').filter('[data-parent="true"]');
- _.each(parents,function(p){
- var obj = {
- h : $(p).data("node"),
- c : []
- };
- _.each($(p).parent().siblings("ul").find(":checkbox:checked"),function(c){
- obj.c.push($(c).data("node"));
- });
- data.push(obj);
- });
- return data;
- },
- onMainCheckboxClick : function(e){
- if(e.target.checked){
- this.$('.tree input[type="checkbox"]').prop({"checked":true,"indeterminate":false});
-
- }else
- this.$('.tree input[type="checkbox"]').prop({"checked":false,"indeterminate":false});
- var data = this.getCheckedHierarchyData();
- this.params.hostList = _.extend({},data);
- this.vent.trigger("tree:search",{hostList : (_.pluck(data,"h")).toString()});
-
- },
- onSearchHostClick : function(e){
- var hostName = this.ui.hostNameTxt.val();
- this.searchHostNameCallBck(hostName);
- },
- searchHostNameCallBck : function(name){
- this.$('.nodebar').popover('destroy');
- this.addSpinner();
- this.$(".hostNodes").empty().html("Loading.....");
- this.fetchHosts({hostName:$.trim(name)});
- },
- onSearchHostKeypress : function(e){
- if(e.which == 13){
- this.searchHostNameCallBck(e.currentTarget.value);
- }
- },
- addSpinner : function(){
- this.ui.searcHostBtn.find("i").removeClass().addClass("fa fa-spinner fa-spin");
- },
- removeSpinner : function(){
- this.ui.searcHostBtn.find("i").removeClass().addClass("fa fa-search");
- },
- restoreCheckbox : function(){
- var params = (this.params.hostList) ? this.params.hostList.toString() : undefined, that = this;
- if(params){
- that.$("input[data-node]").prop("checked",false);
- _.each(params,function(node){
- if(node){
- that.$("input[data-type='H'][data-node='"+node+"']").prop("checked",true);
- }
-
-
- });
- }
- if(this.hostState){
- _.each(this.hostState,function(value,key){
- if(value){
- that.$("li[data-type='H'][data-node='"+key+"']").find("span").click();
- }
- });
- }
- },
- /** on close */
- onClose: function(){
- },
- });
- return HostListView;
-});
http://git-wip-us.apache.org/repos/asf/ambari/blob/02360dd5/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/HostsView.js
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/HostsView.js b/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/HostsView.js
deleted file mode 100644
index 2440fd0..0000000
--- a/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/HostsView.js
+++ /dev/null
@@ -1,98 +0,0 @@
-/**
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you 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.
-*/
-
-define(['require',
- 'backbone',
- 'utils/Globals',
- 'collections/VLogLevelList',
- 'hbs!tmpl/dashboard/HostsView_tmpl',
- 'select2'
-],function(require,Backbone,Globals,VLogLevel,HostsTmpl){
- 'use strict';
-
- return Backbone.Marionette.Layout.extend(
- /** @lends HostsView */
- {
- _viewName : 'HostsView',
-
- template: HostsTmpl,
-
- /** Layout sub regions */
- regions: {
- },
-
- /** ui selector cache */
- ui: {
- },
-
- /** ui events hash */
- events: function() {
- var events = {};
- return events;
- },
-
- /**
- * intialize a new LogLevelView Layout
- * @constructs
- */
- initialize: function(options) {
- _.extend(this, _.pick(options,'vent'));
- this.collection = new VLogLevel();
- this.collection.url = Globals.baseURL+"service/logs/hosts/count";
- this.bindEvents();
- },
- onRender : function(){
- this.fetchCollection();
- },
- bindEvents : function(){
- this.listenTo(this.collection,"reset",function(collection){
- this.populateDetails();
- },this);
- this.listenTo(this.collection, 'request', function(){
- this.$("#loader").show();
- },this);
- this.listenTo(this.collection, 'sync error', function(){
- this.$("#loader").hide();
- },this);
- this.listenTo(this.vent,"main:search",function(value){
- this.fetchCollection({q:value});
- });
- },
- fetchCollection : function(params){
- $.extend(this.collection.queryParams, params);
- this.collection.fetch({reset:true});
- },
- populateDetails : function(){
- var that = this;
- that.$("tbody").empty();
- var actions = '<td>'+
- '<a href="javascript:void(0);"><i class="fa fa-search"></i></a>'+
- //'<a href="javascript:void(0);"><i class="fa fa-ban"></i></a>'+
- '</td>';
- this.collection.each(function(m,i){
- var html = "<tr>";
- html += "<td>"+m.get("name")+"</td>";
- html += "<td>"+m.get("count")+"</td>";
- html += actions;
- that.$("tbody").append(html);
- });
- }
- });
-
-
-});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/02360dd5/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/LogDetailView.js
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/LogDetailView.js b/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/LogDetailView.js
deleted file mode 100644
index 1de9b96..0000000
--- a/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/LogDetailView.js
+++ /dev/null
@@ -1,249 +0,0 @@
-/**
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you 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.
-*/
-
-define(['require',
- 'backbone',
- 'collections/VLogList',
- 'hbs!tmpl/dashboard/LogDetailView_tmpl'
-],function(require,Backbone,VUserList,LogDetailViewTmpl){
- 'use strict';
-
- var LogDetailView = Backbone.Marionette.ItemView.extend(
- /** @lends LogDetailView */
- {
- _viewName : 'LogDetailView',
-
- template: LogDetailViewTmpl,
-
- templateHelpers : function(){
-// return {
-// logData : this.logData
-// };
- },
-
- /** ui selector cache */
- ui: {
- btnPin : ".btn-pin",
- searchTags : "#tags"
- },
-
- /** ui events hash */
- events: function() {
- var events = {};
- events['click ' + this.ui.btnPin] = 'onBtnPinClick';
- events['click .btn-minimize'] = 'onBtnMinimizeClick';
- return events;
- },
-
- /**
- * intialize a new LogDetailView ItemView
- * @constructs
- */
- initialize: function(options) {
- _.extend(this, _.pick(options));
-
- this.logData = {};
- this.collection = new VUserList([], {
- state: {
- firstPage: 0,
- pageSize: 50
- }
- });
- var query = {q:""};
- if(this.model.get("params")){
- if(this.model.get("params").hosts){
- query.hosts = this.model.get("params").hosts;
- }
- if(this.model.get("params").components){
- query.components = this.model.get("params").components
- }
- if(this.model.get("params").time){
- query.time = this.model.get("params").time
- }
- }
- this.mergeParams(query);
- this.isLoading = false;
- this.bindEvents();
- },
- /** all events binding here */
- bindEvents : function(){
- this.listenTo(this.collection, "reset", function(){
- this.renderLogLines(this.collection);
- }, this);
- this.listenTo(this.collection, 'request', function(){
- this.isLoading = true;
- this.$("#logLines").append('<div class="loading-lines" align="center"><img src="images/loading.gif"/></div>');
- },this);
- this.listenTo(this.collection, 'sync error', function(){
- this.isLoading = false;
- this.$(".loading-lines").remove();
- },this);
- },
-
- /** on render callback */
- onRender: function() {
- this.fetchCollection();
- this.initializePlugins();
-
- },
- initializePlugins : function(){
- var that = this;
- this.infiniteScrolling();
- this.ui.searchTags.select2({
- placeholder: "Manual search",
- closeOnSelect : true,
- tags:true,
- multiple: true,
- minimumInputLength: 1,
- tokenSeparators: [",", " "]
- }).on("change",function(){
- that.$("#logLines").empty();
- var q = "";
- if( _.isObject(that.ui.searchTags) && (! _.isEmpty(that.ui.searchTags.select2('val'))) ){
- var arr = that.ui.searchTags.select2('val'),qArr=[];
-
- _.each(arr,function(d){
- qArr.push("*"+d+"*");
- });
- q = qArr.toString();
- }
- that.mergeParams({q : q});
- that.collection.getFirstPage({reset:true});
- });
- },
- initializeResize : function(){
- if(! this.$('.record').hasClass("ui-resizable")){
- var org = this.$('.record').height(),that=this;
- this.$('.record').resizable({ghost:false,minHeight: 386,handles: 's'}).on("resize",function(e,ui){
- var current = $(e.currentTarget).height();
- var height = (current - org) + that.$('.record-panel').height();
- that.$('.record').find('.record-panel').height(height);
- org += (current - org);
- });
- }
- },
- mergeParams : function(obj){
- $.extend(this.collection.queryParams, obj);
- },
- fetchCollection : function(){
- this.collection.fetch({reset:true});
- },
- infiniteScrolling : function(){
- var that = this;
- this.$('.record-panel').bind('scroll', function() {
- if($(this).scrollTop() + $(this).innerHeight() >= this.scrollHeight) {
- if(! that.isLoading){
- that.infiniteScrollCallBack();
- }
-
- }
- })
- },
- infiniteScrollCallBack : function(){
- if(this.collection.hasNext())
- this.collection.getNextPage({reset:true});
- },
- onBtnPinClick : function(e){
- this.ui.btnPin.toggleClass("unpin");
- },
- onBtnMinimizeClick : function(e){
- e.preventDefault();
- var box = $(e.currentTarget).closest('div.record');
- var button = $(e.currentTarget).find('i');
- var content = box.find('div.record-content');
- content.slideToggle('fast');
- button.toggleClass('fa-chevron-up').toggleClass('fa-chevron-down');
- content.parent().css('height','auto');
- if(! button.hasClass('fa-chevron-up')){
- this.$('.record').resizable('disable');
- }else
- this.$('.record').resizable('enable');
- },
- /*getData : function(params){
- var that = this;
- that.$("#logLines").append('<div class="loading-lines" align="center"><img src="images/loading.gif"/></div>');
- this.isLoading = true;
- $.ajax({
- url:"service/test/solr",
- data : params,
- success : function(data,textStatus,jqXHR ){
- that.logData = data;
- that.$(".loading-lines").remove();
- that.renderLogLines(data);
- that.renderRecordsInfo();
- that.isLoading = false;
- },
- error : function(jqXHR,textStatus,errorThrown){
- console.log("ERROR:"+errorThrown);
- }
- });
- },
- renderRecordsInfo : function(){
- if(this.logData){
- this.$("#recFetched").text(this.logData.startIndex + this.logData.pageSize);
- this.$("#recTotal").text(this.logData.totalCount);
- }
- },
- getQueryParams : function(){
- var startIndex = this.logData.startIndex,
- pageSize = this.logData.pageSize ? this.logData.pageSize : 10,obj={};
- if(_.isUndefined(startIndex)){
- obj.startIndex = 0;
- }else
- obj.startIndex = startIndex + pageSize;
- obj.pageSize = pageSize;
- return obj;
- },*/
- renderLogLines : function(collection){
- var $el = this.$("#logLines"),state=this.collection.state,recordsFetched =0;
- if(collection.length > 0){
- _.each(collection.models,function(d){
- $el.append("<p class='log-line'>["+d.get("message")+"]</p>");
- });
- }else{
- $el.append("<span class='no-record'>no records found !</span>");
- }
-
-
- if(this.collection.hasNext())
- recordsFetched = (state.currentPage + 1) * state.pageSize;
- else
- recordsFetched = state.totalRecords;
- this.$("#recFetched").text(recordsFetched);
- this.$("#recTotal").text(state.totalRecords);
- this.highlightSearch();
- this.initializeResize();
- },
- highlightSearch : function(){
- var str = this.ui.searchTags.select2('val').toString(),that=this;
- if(! _.isEmpty(str)){
- var arr = str.split(",");
- _.each(arr,function(v){
- var searchStr = v.replace(/\*/g,'');
- that.$("#logLines").highlight(searchStr);
- });
- }
- },
- /** on close */
- onClose: function(){
- }
-
- });
-
- return LogDetailView;
-});
http://git-wip-us.apache.org/repos/asf/ambari/blob/02360dd5/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/LogLevelBoxView.js
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/LogLevelBoxView.js b/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/LogLevelBoxView.js
deleted file mode 100644
index eb73fb8..0000000
--- a/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/LogLevelBoxView.js
+++ /dev/null
@@ -1,155 +0,0 @@
-/**
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you 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.
-*/
-
-define(['require',
- 'backbone',
- 'utils/Globals',
- 'collections/VLogLevelList',
- 'hbs!tmpl/dashboard/LogLevelBoxView_tmpl',
- 'select2'
-],function(require,Backbone,Globals,VLogLevelList,LogLevelBoxTmpl){
- 'use strict';
-
- return Backbone.Marionette.Layout.extend(
- /** @lends LogLevelBoxView */
- {
- _viewName : 'LogLevelBoxView',
-
- template: LogLevelBoxTmpl,
-
- /** Layout sub regions */
- regions: {
- },
-
- /** ui selector cache */
- ui: {
- INFO : "[data-id='INFO']",
- WARN : "[data-id='WARN']",
- ERROR : "[data-id='ERROR']",
- DEBUG : "[data-id='DEBUG']",
- FATAL : "[data-id='FATAL']",
- TRACE : "[data-id='TRACE']",
- UNKNOWN : "[data-id='UNKNOWN']",
- loader:".server-info .fa-spin"
- },
-
- /** ui events hash */
- events: function() {
- var events = {};
- events["click .server-info a"] = 'onLogLevelClick';
- return events;
- },
-
- /**
- * intialize a new LogLevelBoxView Layout
- * @constructs
- */
- initialize: function(options) {
- _.extend(this, _.pick(options,'vent','globalVent','params'));
- this.logLevelList = new VLogLevelList();
- this.logLevelList.url = Globals.baseURL + "service/logs/levels/counts";
- this.logLevelList.modelAttrName = "vNameValues";
- this.bindEvents();
- },
- onRender : function(){
-// this.fetchLogLevelCounts({level:(this.params) ? this.params.level : null});
- this.fetchLogLevelCounts((this.params) ? this.params : {});
- if(this.params && this.params.level){
- var levels = this.params.level.split(",");
- this.highlightLevels(levels);
- }
- },
- highlightLevels : function(levels){
- this.$(".node").removeClass("active")
- for(var i=0;i<levels.length;i++){
- this.$(".node."+levels[i]).addClass("active");
- }
- },
- fetchLogLevelCounts : function(params){
- $.extend(this.logLevelList.queryParams,params,{level: "FATAL,ERROR,WARN,INFO,DEBUG,TRACE,UNKNOWN"});
- this.ui.loader.show();
- this.logLevelList.fetch({reset:true});
- },
- bindEvents : function(){
- this.listenTo(this.logLevelList,"reset",function(){
- this.ui.loader.hide();
- this.renderLogLevelCounts();
- },this);
- this.listenTo(this.vent,"main:search tree:search type:mustNot type:mustBe logtime:filter" +
- " search:include:exclude "+Globals.eventName.serviceLogsIncludeColumns+" "+Globals.eventName.serviceLogsExcludeColumns,function(value){
- this.fetchLogLevelCounts(value);
- },this);
-// this.listenTo(this.vent,"tree:search",function(value){
-// this.fetchLogLevelCounts(value);
-// },this);
-// this.listenTo(this.vent,"type:mustNot",function(value){
-// this.fetchLogLevelCounts(value);
-// },this);
-// this.listenTo(this.vent,"type:mustBe",function(value){
-// this.fetchLogLevelCounts(value);
-// },this);
-// this.listenTo(this.vent,"logtime:filter",function(value){
-// this.fetchLogLevelCounts(value);
-// },this);
-// this.listenTo(this.vent,"search:include:exclude",function(value){
-// this.fetchLogLevelCounts(value);
-// },this);
- this.listenTo(this.vent,"reinitialize:filter:level",function(value){
- this.reinitializeFilter(value);
- },this);
- this.listenTo(this.globalVent, "globalExclusion:component:message", function(value) {
- this.fetchLogLevelCounts(value);
- },this);
- this.listenTo(this.vent,"tab:refresh",function(params){
- this.reRenderView(params);
- },this);
- },
- renderLogLevelCounts : function(){
- var that = this;
- this.logLevelList.each(function(model){
- that.$("[data-total='"+model.get("name")+"']").parent().prop('title',model.get("value"))
- that.$("[data-total='"+model.get("name")+"']").text(model.get("value"));
- });
- },
- onLogLevelClick : function(e){
- var $el = $(e.currentTarget);
- if($el.hasClass("active")){
- $el.removeClass("active");
- }else{
- $el.addClass("active");
- }
- var params = [];
- _.each(this.$(".server-info a.active"),function(e){
- params.push($(e).find("strong").data("total"));
- });
- this.fetchLogLevelCounts({level:params.toString()});
- this.vent.trigger("level:filter",{level:params.toString()});
- },
- reinitializeFilter : function(value){
- this.fetchLogLevelCounts(value);
- if(value.level)
- this.highlightLevels(value.level.split(","));
-
- },
- reRenderView : function(params){
- this.fetchLogLevelCounts(params);
- }
- });
-
-
-});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/02360dd5/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/LogLevelView.js
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/LogLevelView.js b/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/LogLevelView.js
deleted file mode 100644
index 79c8bcf..0000000
--- a/ambari-logsearch/ambari-logsearch-web/src/main/webapp/scripts/views/dashboard/LogLevelView.js
+++ /dev/null
@@ -1,118 +0,0 @@
-/**
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you 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.
-*/
-
-define(['require',
- 'backbone',
- 'utils/Globals',
- 'collections/VLogLevelList',
- 'hbs!tmpl/dashboard/LogLevelView_tmpl',
- 'select2'
-],function(require,Backbone,Globals,VLogLevel,LogLevelTmpl){
- 'use strict';
-
- return Backbone.Marionette.Layout.extend(
- /** @lends LogLevelView */
- {
- _viewName : 'LogLevelView',
-
- template: LogLevelTmpl,
-
- /** Layout sub regions */
- regions: {
- RLogLevelPieChart : "#r_logLevelPieChart",
- },
-
- /** ui selector cache */
- ui: {
- INFO : "[data-id='INFO']",
- WARN : "[data-id='WARN']",
- ERROR : "[data-id='ERROR']",
- DEBUG : "[data-id='DEBUG']",
- FATAL : "[data-id='FATAL']",
- TRACE : "[data-id='TRACE']",
- UNKNOWN : "[data-id='UNKNOWN']",
- togglePieViewButton:'#logToggle',
- pieRegionId:'#r_logLevelPieChart',
- logTable:'#logTable'
- },
-
- /** ui events hash */
- events: function() {
- var events = {};
- events['click #searchLog'] = 'onSearchLogClick';
- events['click ' + this.ui.togglePieViewButton] = 'onToggaleView';
- return events;
- },
-
- /**
- * intialize a new LogLevelView Layout
- * @constructs
- */
- initialize: function(options) {
- _.extend(this, _.pick(options,'vent'));
- this.collection = new VLogLevel();
- this.bindEvents();
- },
- onRender : function(){
- this.fetchCollection();
- this.ui.pieRegionId.hide();
- },
- fetchCollection : function(params){
- $.extend(this.collection.queryParams, params);
- this.collection.fetch({reset:true});
- },
- bindEvents : function(){
- this.listenTo(this.collection,"reset",function(collection){
- this.populateDetails();
- this.renderLogLevelPieChart();
- },this);
- this.listenTo(this.collection, 'request', function(){
- this.$("#loader").show();
- },this);
- this.listenTo(this.collection, 'sync error', function(){
- this.$("#loader").hide();
- },this);
- this.listenTo(this.vent,"main:search",function(value){
- this.fetchCollection({q:value});
- });
- },
- populateDetails : function(){
- var that = this;
- this.collection.each(function(m,i){
- that.ui[m.get("name")].text(m.get("count"));
- });
- },
- renderLogLevelPieChart:function(){
- var that = this;
- require(['views/graphs/PieChartGraphLayoutView'],function(PieChartGraphLayoutView){
- that.RLogLevelPieChart.show(new PieChartGraphLayoutView({
- vent : that.vent,
- collection:that.collection
- /*parentView:this*/
- }));
- })
- },
- onToggaleView:function(){
- this.ui.togglePieViewButton.children().toggleClass('fa-pie-chart fa-th');
- this.ui.pieRegionId.toggle();
- this.ui.logTable.toggle()
- }
- });
-
-
-});
\ No newline at end of file