You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by mg...@apache.org on 2017/01/16 10:22:54 UTC

ambari git commit: AMBARI-19518 Log Search Troubleshooting tab should allow to multi select services (mgergely)

Repository: ambari
Updated Branches:
  refs/heads/trunk 8b43080a0 -> 74a911fd2


AMBARI-19518 Log Search Troubleshooting tab should allow to multi select services (mgergely)

Change-Id: I160024432efcb997048768b27d54fdb90ac1a240


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/74a911fd
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/74a911fd
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/74a911fd

Branch: refs/heads/trunk
Commit: 74a911fd264abe08a9d21ffea9f9958b2517bf0d
Parents: 8b43080
Author: Miklos Gergely <mg...@hortonworks.com>
Authored: Mon Jan 16 11:21:48 2017 +0100
Committer: Miklos Gergely <mg...@hortonworks.com>
Committed: Mon Jan 16 11:21:48 2017 +0100

----------------------------------------------------------------------
 .../main/webapp/libs/bower/select2/select2.js   |   4 +
 .../troubleshoot/TroubleShootLayoutView.js      | 748 ++++++++++---------
 2 files changed, 382 insertions(+), 370 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/74a911fd/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/select2/select2.js
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/select2/select2.js b/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/select2/select2.js
index 3b9251e..1892af9 100644
--- a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/select2/select2.js
+++ b/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/select2/select2.js
@@ -3019,6 +3019,8 @@ the specific language governing permissions and limitations under the Apache Lic
 
             if (!options || !options.noFocus)
                 this.focusSearch();
+
+            $(".services").children().removeClass("active")
         },
 
         // multi
@@ -3117,6 +3119,8 @@ the specific language governing permissions and limitations under the Apache Lic
             this.opts.element.trigger({ type: "select2-removed", val: this.id(data), choice: data });
             this.triggerChange({ removed: data });
 
+            $(".services").children().removeClass("active")
+
             return true;
         },
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/74a911fd/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/scripts/views/troubleshoot/TroubleShootLayoutView.js
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/scripts/views/troubleshoot/TroubleShootLayoutView.js b/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/scripts/views/troubleshoot/TroubleShootLayoutView.js
index b19f3ce..8b90b33 100644
--- a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/scripts/views/troubleshoot/TroubleShootLayoutView.js
+++ b/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/scripts/views/troubleshoot/TroubleShootLayoutView.js
@@ -38,12 +38,12 @@ define(['backbone',
 
             /** ui selector cache */
             ui: {
-            	serviceContainer : ".services",
-            	componentsContainer : "[data-id='components']",
-            	logLevelTable : "[data-id='logLevelTable']",
-            	components : "[data-id='componentsSelection']",
-            	dependencyCont : ".dependContainer",
-            	loader : '[data-id="loader"]'
+                serviceContainer : ".services",
+                componentsContainer : "[data-id='components']",
+                logLevelTable : "[data-id='logLevelTable']",
+                components : "[data-id='componentsSelection']",
+                dependencyCont : ".dependContainer",
+                loader : '[data-id="loader"]'
             },
 
             /** ui events hash */
@@ -57,8 +57,8 @@ define(['backbone',
                 return events;
             },
             regions: {
-            	RDateRangePicker : "[data-id='dateRange']",
-            	RServiceGraph : "[data-id='serviceGraph']"
+                RDateRangePicker : "[data-id='dateRange']",
+                RServiceGraph : "[data-id='serviceGraph']"
             },
 
             /**
@@ -75,7 +75,7 @@ define(['backbone',
                 this.bindEvents();
             },
             initializeCollection : function(){
-            	this.serviceLogsCollection = new VLogList([], {
+                this.serviceLogsCollection = new VLogList([], {
                     state: {
                         firstPage: 0,
                         pageSize: 999999999,
@@ -85,297 +85,300 @@ define(['backbone',
                 this.serviceLogsCollection.url = Globals.baseURL + "service/logs/count/anygraph";
                 this.serviceLogsCollection.modelAttrName = "graphData";
                 
-            	this.topUsers = new VNameValueList([],{
-    				state: {
+                this.topUsers = new VNameValueList([],{
+                    state: {
                         firstPage: 0,
                         pageSize: 9999
                     }
-    			});
-    			this.topUsers.url = Globals.baseURL + "audit/logs/resources/10";
-    			this.topUsers.modelAttrName = "graphData";
-    			
-    			this.serviceLoadCollection = new VLogList([], {
+                });
+                this.topUsers.url = Globals.baseURL + "audit/logs/resources/10";
+                this.topUsers.modelAttrName = "graphData";
+                
+                this.serviceLoadCollection = new VLogList([], {
                     state: {
                         firstPage: 0,
                         pageSize: 999999999,
 
                     }
                 });
-            	this.serviceLoadCollection.url = Globals.baseURL + "audit/logs/serviceload";
+                this.serviceLoadCollection.url = Globals.baseURL + "audit/logs/serviceload";
                 this.serviceLoadCollection.modelAttrName = "graphData";
             },
             bindEvents : function(){
-            	this.listenTo(this.serviceLogsCollection,"reset",function(){
-            		this.renderBarGraph();
-            		this.renderLogLevelTable();
-            	},this);
-            	this.listenTo(this.serviceLogsCollection, 'request', function() {
-            		this.ui.loader.addClass("loading");
+                this.listenTo(this.serviceLogsCollection,"reset",function(){
+                    this.renderBarGraph();
+                    this.renderLogLevelTable();
+                },this);
+                this.listenTo(this.serviceLogsCollection, 'request', function() {
+                    this.ui.loader.addClass("loading");
                 }, this);
                 this.listenTo(this.serviceLogsCollection, 'sync error', function() {
-                	this.ui.loader.removeClass("loading");
+                    this.ui.loader.removeClass("loading");
                 }, this);
-            	this.listenTo(this.topUsers,"reset",function(){
-    				this.renderTopTenUsers();
-    			},this);
-            	this.listenTo(this.serviceLoadCollection,"reset",function(){
-    				this.renderServiceLoadGraph();
-    			},this);
-            	
-            	//datepicker fires logtime filter when date selection is made
-            	this.listenTo(this.vent,"logtime:filter",function(params){
-            		//this.fetchServiceLogsData(params);
-            		//this.vent.trigger("graph:data:update",params,this.graphPropModel.attributes);
-            		//this.renderGraph(params);
-            		this.fetchLevelCollection(params);
-            		this.fetchTopUsers(params);
-            	},this);
+                this.listenTo(this.topUsers,"reset",function(){
+                    this.renderTopTenUsers();
+                },this);
+                this.listenTo(this.serviceLoadCollection,"reset",function(){
+                    this.renderServiceLoadGraph();
+                },this);
+                
+                //datepicker fires logtime filter when date selection is made
+                this.listenTo(this.vent,"logtime:filter",function(params){
+                    //this.fetchServiceLogsData(params);
+                    //this.vent.trigger("graph:data:update",params,this.graphPropModel.attributes);
+                    //this.renderGraph(params);
+                    this.fetchLevelCollection(params);
+                    this.fetchTopUsers(params);
+                },this);
             },
             onRender : function(){
-            	var that = this;
-            	this.fetchTopUsers(_.extend({field : "reqUser"},this.params));
-            	this.serviceLogsCollection.getServicesInfo({
-                	success : function(resp){
-                		Globals.servicesInfo = resp;
-                		that.servicesData = $.extend(true,resp);
-                		that.renderServices(that.servicesData);
-                	}
+                var that = this;
+                this.fetchTopUsers(_.extend({field : "reqUser"},this.params));
+                this.serviceLogsCollection.getServicesInfo({
+                    success : function(resp){
+                        Globals.servicesInfo = resp;
+                        that.servicesData = $.extend(true,resp);
+                        that.renderServices(that.servicesData);
+                    }
                 });
-            	this.renderDateRange();
-            	//this.renderGraph(this.params);
-            	this.fetchLevelCollection(this.params);
+                this.renderDateRange();
+                //this.renderGraph(this.params);
+                this.fetchLevelCollection(this.params);
             },
             fetchTopUsers : function(params){
-    			var that = this;
-    			$.extend(this.topUsers.queryParams, params);
-    			this.topUsers.fetch({
-    				reset:true,
-    				beforeSend : function(){
-    					that.$("[data-id='usersLoader']").removeClass("hidden");
-    				},
-    				complete : function(){
-    					that.$("[data-id='usersLoader']").addClass("hidden");
-    				}
-    			});
-    			
-    			$.extend(this.serviceLoadCollection.queryParams, params);
-    			this.serviceLoadCollection.fetch({
-    				reset:true,
-    				beforeSend : function(){
-    					that.$("[data-id='serviceLoadLoader']").removeClass("hidden");
-    				},
-    				complete : function(){
-    					that.$("[data-id='serviceLoadLoader']").addClass("hidden");
-    				}
-    			});
-    			
-    		},
+                var that = this;
+                $.extend(this.topUsers.queryParams, params);
+                this.topUsers.fetch({
+                    reset:true,
+                    beforeSend : function(){
+                        that.$("[data-id='usersLoader']").removeClass("hidden");
+                    },
+                    complete : function(){
+                        that.$("[data-id='usersLoader']").addClass("hidden");
+                    }
+                });
+                
+                $.extend(this.serviceLoadCollection.queryParams, params);
+                this.serviceLoadCollection.fetch({
+                    reset:true,
+                    beforeSend : function(){
+                        that.$("[data-id='serviceLoadLoader']").removeClass("hidden");
+                    },
+                    complete : function(){
+                        that.$("[data-id='serviceLoadLoader']").addClass("hidden");
+                    }
+                });
+                
+            },
             fetchServiceLogsData : function(params){
-            	$.extend(this.serviceLogsCollection.queryParams,params);
-            	this.serviceLogsCollection.fetch({reset:true});
+                $.extend(this.serviceLogsCollection.queryParams,params);
+                this.serviceLogsCollection.fetch({reset:true});
             },
             onServicesChange : function(e){
-            	var that=this,selectedComponents=[],$el = $(e.currentTarget);
-            	$el.siblings().removeClass("active");
-            	$el.toggleClass("active");
-            	this.ui.dependencyCont.empty();
-            	this.ui.componentsContainer.empty();
-            	_.each(this.ui.serviceContainer.find(".active"),function(el){
-            		var $el = $(el);
-            		if($el.data("name")){
-                		var service = that.servicesData.service[$el.data("name")];
-                		if(service){
-                			if(_.isArray(service.components)){
-//                				_.each(service.components,function(obj,key){
-//                					that.ui.componentsContainer.append("<option selected>"+obj.name+"</option>");
-//                				});
-                				Array.prototype.push.apply(selectedComponents,_.pluck(service.components,"name"));
-                			}
-                		}
-                	}
-            	});
-            	if($el.hasClass("active")){
-            		var service = $el.data("name"),optionalComponents=[];
-            		if(service){
-            			_.each(that.servicesData.service[service].dependencies, function(d){
-                			if(! d.required){
-                				for(var z=0; z<d.components.length; z++){
-                					selectedComponents.push(d.components[z]);
-                				}
-                			}else{
-                				optionalComponents.push({label:that.servicesData.service[d.service].label,value : d.service});
-                			}
-                		});
-            		}
-            		if(optionalComponents.length){
-            			for(var i=0; i<optionalComponents.length; i++){
-                			this.ui.dependencyCont.append('<button data-service="'+optionalComponents[i].value+'" class="btn depLinks">'+optionalComponents[i].label+'</button>');
-                		}
-            			if(this.$(".dependencies").is(":hidden")){
-                			this.$(".dependencies").slideDown();
-                		}
-            		}else{
-            			this.$(".dependencies").slideUp();
-            		}
-            	}
-            	this.ui.components.select2("val",selectedComponents);
-            	var params = this.getParams();
-            	//this.renderGraph(params);
-            	//this.fetchServiceLogsData(params);
-            	//this.fetchTopUsers(params);
-            	this.fetchLevelCollection(params);
+                var that=this,selectedComponents=[],$el = $(e.currentTarget);
+              if ($el.text() == "All") {
+                $el.siblings().removeClass("active");
+              } else {
+                $el.toggleClass("active");
+              }
+                this.ui.dependencyCont.empty();
+                this.ui.componentsContainer.empty();
+                _.each(this.ui.serviceContainer.find(".active"),function(el){
+                    var $el = $(el);
+                    if($el.data("name")){
+                        var service = that.servicesData.service[$el.data("name")];
+                        if(service){
+                            if(_.isArray(service.components)){
+//                                _.each(service.components,function(obj,key){
+//                                    that.ui.componentsContainer.append("<option selected>"+obj.name+"</option>");
+//                                });
+                                Array.prototype.push.apply(selectedComponents,_.pluck(service.components,"name"));
+                            }
+                        }
+                    }
+                });
+                if($el.hasClass("active")){
+                    var service = $el.data("name"),optionalComponents=[];
+                    if(service){
+                        _.each(that.servicesData.service[service].dependencies, function(d){
+                            if(! d.required){
+                                for(var z=0; z<d.components.length; z++){
+                                    selectedComponents.push(d.components[z]);
+                                }
+                            }else{
+                                optionalComponents.push({label:that.servicesData.service[d.service].label,value : d.service});
+                            }
+                        });
+                    }
+                    if(optionalComponents.length){
+                        for(var i=0; i<optionalComponents.length; i++){
+                            this.ui.dependencyCont.append('<button data-service="'+optionalComponents[i].value+'" class="btn depLinks">'+optionalComponents[i].label+'</button>');
+                        }
+                        if(this.$(".dependencies").is(":hidden")){
+                            this.$(".dependencies").slideDown();
+                        }
+                    }else{
+                        this.$(".dependencies").slideUp();
+                    }
+                }
+                this.ui.components.select2("val",selectedComponents);
+                var params = this.getParams();
+                //this.renderGraph(params);
+                //this.fetchServiceLogsData(params);
+                //this.fetchTopUsers(params);
+                this.fetchLevelCollection(params);
             },
             renderServices : function(data){
-            	var that = this;
-            	//that.ui.serviceContainer.append('<label class="btn btn-primary"> <input data-name="All" type="checkbox" name="services" id="option1">All</label>');
-            	that.ui.serviceContainer.append('<button class="btn btn-trbl" href="javascript:void(0);">All</button>');
-            	_.each(data.service,function(obj,key){
-            		/*var html = '<label class="btn btn-primary"> <input data-name="'+key+'" type="checkbox" name="services" '+
-    				' id="option1" />'+obj.label+'</label>';*/
-            		var html = '<button class="btn btn-trbl" data-name="'+key+'" href="javascript:void(0);">'+obj.label+'</button>';
-            		that.ui.serviceContainer.append(html);
-            	});
-            	var compos = _.pluck(data.service,"components");
-            	var mainArr = [];
-            	_.each(compos,function(v){
-            		for(var z=0; z<v.length; z++){
-            			if(_.isEmpty(_.findWhere(mainArr,{name:v[z].name}))){
-            				mainArr.push({name:v[z].name, id:v[z].name});
-            			}
-            		}
-            	});
-            	this.ui.components.select2({
-    				placeholder: 'Components',
-    				tags:true,
-    				allowClear : true,
-    				width: '100%',
-    				data: { results: mainArr, text: "name"},
-    				formatSelection: function(item){
-    					return item["name"];
-    				},
-        			formatResult: function(item){
-        				return item["name"];
-    				}
-    			}).on("change",function(e){
-    				var params = that.getParams();
-    				//that.renderGraph(params);
-                	//that.fetchServiceLogsData(params);
-                	//that.fetchTopUsers(params);
-    				that.fetchLevelCollection(params);
-    			});
+                var that = this;
+                //that.ui.serviceContainer.append('<label class="btn btn-primary"> <input data-name="All" type="checkbox" name="services" id="option1">All</label>');
+                that.ui.serviceContainer.append('<button class="btn btn-trbl" href="javascript:void(0);">All</button>');
+                _.each(data.service,function(obj,key){
+                    /*var html = '<label class="btn btn-primary"> <input data-name="'+key+'" type="checkbox" name="services" '+
+                    ' id="option1" />'+obj.label+'</label>';*/
+                    var html = '<button class="btn btn-trbl" data-name="'+key+'" href="javascript:void(0);">'+obj.label+'</button>';
+                    that.ui.serviceContainer.append(html);
+                });
+                var compos = _.pluck(data.service,"components");
+                var mainArr = [];
+                _.each(compos,function(v){
+                    for(var z=0; z<v.length; z++){
+                        if(_.isEmpty(_.findWhere(mainArr,{name:v[z].name}))){
+                            mainArr.push({name:v[z].name, id:v[z].name});
+                        }
+                    }
+                });
+                this.ui.components.select2({
+                    placeholder: 'Components',
+                    tags:true,
+                    allowClear : true,
+                    width: '100%',
+                    data: { results: mainArr, text: "name"},
+                    formatSelection: function(item){
+                        return item["name"];
+                    },
+                    formatResult: function(item){
+                        return item["name"];
+                    }
+                }).on("change",function(e){
+                    var params = that.getParams();
+                    //that.renderGraph(params);
+                    //that.fetchServiceLogsData(params);
+                    //that.fetchTopUsers(params);
+                    that.fetchLevelCollection(params);
+                });
             },
             renderDateRange : function(){
-            	var that=this;
-            	require(['views/common/DatePickerLayout'],function(DatePickerLayout){
-    	    		that.RDateRangePicker.show(new DatePickerLayout({
-    					vent : that.vent,
-    					globalVent:that.globalVent,
-    					params : that.params,
-    					rangeLabel: true,
-    					hideFireButton : false,
-    					buttonLabel : "Apply",
-    					parentEl: that.$el.find(".row").first(),
-    					datePickerPosition : "left"
-    				}));
+                var that=this;
+                require(['views/common/DatePickerLayout'],function(DatePickerLayout){
+                    that.RDateRangePicker.show(new DatePickerLayout({
+                        vent : that.vent,
+                        globalVent:that.globalVent,
+                        params : that.params,
+                        rangeLabel: true,
+                        hideFireButton : false,
+                        buttonLabel : "Apply",
+                        parentEl: that.$el.find(".row").first(),
+                        datePickerPosition : "left"
+                    }));
                 });
             },
             onSearchServiceLogsClick : function(e){
-            	this.globalVent.trigger("reinitialize:serviceLogs",_.extend({
-            		mustNot: null,
-                mustBe: null,
-                iMessage: null,
-                eMessage: null,
-                query: null,
-                includeQuery: null,
-                excludeQuery: null
-            	},this.getParams()));
-            	this.globalVent.trigger("show:tab","hierarchy");
+                this.globalVent.trigger("reinitialize:serviceLogs",_.extend({
+                    mustNot: null,
+                    mustBe: null,
+                    iMessage: null,
+                    eMessage: null,
+                    query: null,
+                    includeQuery: null,
+                    excludeQuery: null
+                },this.getParams()));
+                this.globalVent.trigger("show:tab","hierarchy");
             },
             onSearchAuditLogsClick : function(){
-            	this.globalVent.trigger("reinitialize:auditLogs",this.getParams());
-            	this.globalVent.trigger("show:tab","audit");
+                this.globalVent.trigger("reinitialize:auditLogs",this.getParams());
+                this.globalVent.trigger("show:tab","audit");
             },
             getParams : function(){
-            	var all = this.$("button[data-name='all']").hasClass("active"),that = this,params={},dates={};;
-            	this.vent.trigger("date:getValues",dates);
-            	if(_.isArray(dates.dates)){
-            		params.from = dates.dates[0].toJSON();
-            		params.to = dates.dates[1].toJSON();
-            		params.dateRangeLabel = dates.dateRangeLabel;
-            		params.unit = dates.unit;
-            	}
-            	//components
-            	if(!all){
-//            		_.each(this.ui.serviceContainer.find(".active"),function(el){
-//                		var serviceName = $(el).data("name");
-//                		var service = that.servicesData.service[serviceName];
-//                		if(service && _.isArray(service.components)){
-//                			for(var z=0; z<service.components.length; z++){
-//                				(! _.contains(params.mustBe,service.components[z].name)) ? params.mustBe.push(service.components[z].name) : "";
-//                			}
-//                		}
-//                	});
-            		params.mustBe = this.ui.components.select2("val").toString();
-            	}
-            	return params;
+                var all = this.$("button[data-name='all']").hasClass("active"),that = this,params={},dates={};;
+                this.vent.trigger("date:getValues",dates);
+                if(_.isArray(dates.dates)){
+                    params.from = dates.dates[0].toJSON();
+                    params.to = dates.dates[1].toJSON();
+                    params.dateRangeLabel = dates.dateRangeLabel;
+                    params.unit = dates.unit;
+                }
+                //components
+                if(!all){
+//                    _.each(this.ui.serviceContainer.find(".active"),function(el){
+//                        var serviceName = $(el).data("name");
+//                        var service = that.servicesData.service[serviceName];
+//                        if(service && _.isArray(service.components)){
+//                            for(var z=0; z<service.components.length; z++){
+//                                (! _.contains(params.mustBe,service.components[z].name)) ? params.mustBe.push(service.components[z].name) : "";
+//                            }
+//                        }
+//                    });
+                    params.mustBe = this.ui.components.select2("val").toString();
+                }
+                return params;
             },
             fetchLevelCollection : function(params){
-            	_.extend(this.serviceLogsCollection.queryParams, params,{"yAxis":"count",
-        			"xAxis":"level"});
+                _.extend(this.serviceLogsCollection.queryParams, params,{"yAxis":"count",
+                    "xAxis":"level"});
                 this.serviceLogsCollection.fetch({
                     reset: true
                 });
             },
             renderGraph : function(params){
-            	//var that=this,model = new Backbone.Model({"id":"grid_histo0","title":"test","showX":"showX","xAxis":"access","xTimeFormat":"","xNormalFormat":"","showY":"showY","yAxis":"count","yAxisFormat":"","showLegend":"showLegend","stackOrGroup":"Normal","params":{"from":"2016-03-08T18:30:01.000Z","to":"2016-03-09T18:29:59.999Z","unit":"+1HOUR","yAxis":"count","xAxis":"access"},"myData":{"type":2,"dataId":"grid_histo0"},"col":1,"row":1,"size_x":3,"size_y":2});
-            	var that=this,model = new Backbone.Model({
-            		params: _.extend({
-            			"yAxis":"count",
-            			"xAxis":"level",
-            			"stackBy":"level"},params),
-            		xAxis : "level",
-            		yaxis : "count",
-            		//stackOrGroup : "Stack",
-            		showX:"showX",
-            		//rotateXaxis:"-20",
-            		showLegend : false
-            	});
-            	require(['views/graphs/GridGraphLayoutView'],function(GridGraphLayoutView){
-    	    		that.RServiceGraph.show(new GridGraphLayoutView({
-    	    			collection : that.serviceLogsCollection,
-    					vent : that.vent,
-    					globalVent:that.globalVent,
-    					params : that.params,
-    					model : model,
-    					viewType :Globals.graphType.HISTOGRAM.value,
-    					showHeader : false
-    				}));
+                //var that=this,model = new Backbone.Model({"id":"grid_histo0","title":"test","showX":"showX","xAxis":"access","xTimeFormat":"","xNormalFormat":"","showY":"showY","yAxis":"count","yAxisFormat":"","showLegend":"showLegend","stackOrGroup":"Normal","params":{"from":"2016-03-08T18:30:01.000Z","to":"2016-03-09T18:29:59.999Z","unit":"+1HOUR","yAxis":"count","xAxis":"access"},"myData":{"type":2,"dataId":"grid_histo0"},"col":1,"row":1,"size_x":3,"size_y":2});
+                var that=this,model = new Backbone.Model({
+                    params: _.extend({
+                        "yAxis":"count",
+                        "xAxis":"level",
+                        "stackBy":"level"},params),
+                    xAxis : "level",
+                    yaxis : "count",
+                    //stackOrGroup : "Stack",
+                    showX:"showX",
+                    //rotateXaxis:"-20",
+                    showLegend : false
+                });
+                require(['views/graphs/GridGraphLayoutView'],function(GridGraphLayoutView){
+                    that.RServiceGraph.show(new GridGraphLayoutView({
+                        collection : that.serviceLogsCollection,
+                        vent : that.vent,
+                        globalVent:that.globalVent,
+                        params : that.params,
+                        model : model,
+                        viewType :Globals.graphType.HISTOGRAM.value,
+                        showHeader : false
+                    }));
                 });
             },
             renderBarGraph : function(){
-            	var data=[],that=this;
-            	this.serviceLogsCollection.each(function(model){
-            		var d = {
-            				key : "Levels",
-            				values : []
-            		}
-            		for(var z=0; z<model.get("dataCount").length; z++){
-            			var name = model.get("dataCount")[z].name;
-            			d.values.push({
-            				label : (""+name).toUpperCase(),
-            				value : parseInt(model.get("dataCount")[z].value,10),
-            				color : (((""+name).toUpperCase() === 'ERROR') ? ("#E81D1D") :
+                var data=[],that=this;
+                this.serviceLogsCollection.each(function(model){
+                    var d = {
+                            key : "Levels",
+                            values : []
+                    }
+                    for(var z=0; z<model.get("dataCount").length; z++){
+                        var name = model.get("dataCount")[z].name;
+                        d.values.push({
+                            label : (""+name).toUpperCase(),
+                            value : parseInt(model.get("dataCount")[z].value,10),
+                            color : (((""+name).toUpperCase() === 'ERROR') ? ("#E81D1D") :
                                 ( (""+name).toUpperCase() === 'INFO') ? ("#2577B5") :
                                 ( (""+name).toUpperCase() === 'WARN') ? ("#FF8916") :
                                 ( (""+name).toUpperCase() === 'FATAL') ? ("#830A0A") :
                                 ( (""+name).toUpperCase() === 'DEBUG') ? ("#65E8FF") :
                                 ( (""+name).toUpperCase() === 'TRACE') ? ("#888888") :
                                 ( (""+name).toUpperCase() === 'UNKNOWN') ? ("#bdbdbd") : "")
-            			});
-            			
-            		}
-            		data.push(d);
-            	});
+                        });
+                        
+                    }
+                    data.push(d);
+                });
                 nv.addGraph(function() {
                     var chart = nv.models.discreteBarChart()
                         .x(function(d) {
@@ -402,144 +405,149 @@ define(['backbone',
                 });
             },
             renderLogLevelTable : function(){
-            	var that = this;
-            	this.ui.logLevelTable.empty();
-            	this.serviceLogsCollection.each(function(m){
-            		var dataCount = m.get("dataCount");
-            		for(var z=0; z<dataCount.length; z++){
-            			if(that.ui.logLevelTable.find("."+Utils.toUpperCase(dataCount[z].name)).length){
-            				var $el = that.ui.logLevelTable.find("[data-level="+dataCount[z].name+"]");
-            				var val = $el.text();
-            				$el.html("<b>"+(parseInt(val,10) + parseInt(dataCount[z].value,10))+"</b>");
-            			}else{
-            				that.ui.logLevelTable.append("<tr><td align='center' class='"+Utils.toUpperCase(dataCount[z].name)+"'>"+Utils.toUpperCase(dataCount[z].name)+"</td><td align='right' data-level='"+dataCount[z].name+"'><b>"+dataCount[z].value+"</b></td></tr>");
-            			}
-            		}
-            	});
+                var that = this;
+                this.ui.logLevelTable.empty();
+                this.serviceLogsCollection.each(function(m){
+                    var dataCount = m.get("dataCount");
+                    for(var z=0; z<dataCount.length; z++){
+                        if(that.ui.logLevelTable.find("."+Utils.toUpperCase(dataCount[z].name)).length){
+                            var $el = that.ui.logLevelTable.find("[data-level="+dataCount[z].name+"]");
+                            var val = $el.text();
+                            $el.html("<b>"+(parseInt(val,10) + parseInt(dataCount[z].value,10))+"</b>");
+                        }else{
+                            that.ui.logLevelTable.append("<tr><td align='center' class='"+Utils.toUpperCase(dataCount[z].name)+"'>"+Utils.toUpperCase(dataCount[z].name)+"</td><td align='right' data-level='"+dataCount[z].name+"'><b>"+dataCount[z].value+"</b></td></tr>");
+                        }
+                    }
+                });
             },
             renderTopTenUsers : function(){
-            	var obj = ViewUtils.formatAuditGraphData(this.topUsers);
-            	this.renderHorizontalBar(this.$('[data-id="topUsersGraph"] svg')[0],obj.arr, {top: 5,right:10, bottom: 20,left:(obj.max * 7)+25});
+                var obj = ViewUtils.formatAuditGraphData(this.topUsers);
+                this.renderHorizontalBar(this.$('[data-id="topUsersGraph"] svg')[0],obj.arr, {top: 5,right:10, bottom: 20,left:(obj.max * 7)+25});
             },
             renderServiceLoadGraph : function(){
-            	var obj = ViewUtils.formatAuditGraphData(this.serviceLoadCollection);
-            	this.renderHorizontalBar(this.$('[data-id="serviceLoadGraph"] svg')[0],obj.arr, {top: 5,right:10, bottom: 20,left:(obj.max * 7)+25});
+                var obj = ViewUtils.formatAuditGraphData(this.serviceLoadCollection);
+                this.renderHorizontalBar(this.$('[data-id="serviceLoadGraph"] svg')[0],obj.arr, {top: 5,right:10, bottom: 20,left:(obj.max * 7)+25});
             },
             renderHorizontalBar : function(el,data,margin,columnKey){
-    			var that = this;
-    			
-    			nv.addGraph({generate : function() {
-    				  var chart = nv.models.multiBarHorizontalChart()
-    				      .x(function(d) { return d.label })
-    				      .y(function(d) { return d.value })
-    				      .margin(margin)
-    				      .showValues(true)
-    				      .valueFormat(d3.format('.0f'))
-    				      .showControls(false);
-    				  //setting height to minimun when data is less to avoid bar height to be big
-    				  if(data.length > 0){
-    					  var min = _.min(data,function(v){return v.values.length}).values.length;
-    					  var max = _.max(data,function(v){return v.values.length}).values.length;
-    					  var setMinHeight = false;
-    					  if(max == min && min < 3){
-    						  setMinHeight = true
-    					  }else if(max < 3){
-    						  setMinHeight = true
-    					  }
-    					  if(setMinHeight){
-    						  chart.height("200");
-    					  }
-    				  }
-    				  chart.tooltip.enabled();
-    				  chart.yAxis
-    				      .tickFormat(d3.format('d'));
-//    				  chart.multibar.dispatch.on("elementClick", function(e) {
-//    					  that.vent.trigger("toggle:facet",{viewName : "includeColumns",key :columnKey,value :e.data.label});
-//    				  });
-    				  d3.select(el)
-    				  .datum(data)
-    				    .transition().duration(500)
-    				      .call(chart);
-    				  return chart;
-    			},
-    			callback : function(graph){
-    				d3.select(el)
-    					.selectAll("rect")
-    					.style("cursor","pointer");
-    				that.$el.resize(function(){
+                var that = this;
+                
+                nv.addGraph({generate : function() {
+                      var chart = nv.models.multiBarHorizontalChart()
+                          .x(function(d) { return d.label })
+                          .y(function(d) { return d.value })
+                          .margin(margin)
+                          .showValues(true)
+                          .valueFormat(d3.format('.0f'))
+                          .showControls(false);
+                      //setting height to minimun when data is less to avoid bar height to be big
+                      if(data.length > 0){
+                          var min = _.min(data,function(v){return v.values.length}).values.length;
+                          var max = _.max(data,function(v){return v.values.length}).values.length;
+                          var setMinHeight = false;
+                          if(max == min && min < 3){
+                              setMinHeight = true
+                          }else if(max < 3){
+                              setMinHeight = true
+                          }
+                          if(setMinHeight){
+                              chart.height("200");
+                          }
+                      }
+                      chart.tooltip.enabled();
+                      chart.yAxis
+                          .tickFormat(d3.format('d'));
+//                      chart.multibar.dispatch.on("elementClick", function(e) {
+//                          that.vent.trigger("toggle:facet",{viewName : "includeColumns",key :columnKey,value :e.data.label});
+//                      });
+                      d3.select(el)
+                      .datum(data)
+                        .transition().duration(500)
+                          .call(chart);
+                      return chart;
+                },
+                callback : function(graph){
+                    d3.select(el)
+                        .selectAll("rect")
+                        .style("cursor","pointer");
+                    that.$el.resize(function(){
                         d3.select(el)
 //                            .attr('width', width)
 //                            .attr('height', height)
                             .transition().duration(0)
                             .call(graph);
-    				});
-    			}
-    			});
-    		},
-    		onDependentServiceClick : function(e){
-    			var $el = $(e.currentTarget),that=this,service = $el.data("service"),serviceSelected = this.ui.serviceContainer.find(".active");
-    			var getDependentServices = function(forServiceName,Service){
-    				var serviceObj = that.servicesData.service[forServiceName];
-        			if(serviceObj){
-        				return _.findWhere(serviceObj.dependencies,{service:Service});
-        			}
-    			}
-    			var prev = this.ui.dependencyCont.find(".active");
-    			if(prev.length && serviceSelected.length){
-    				var $prev = prev.first();
-    				var found = getDependentServices(serviceSelected.data("name"),$prev.data("service"));
-    				if(found && found.components){
-    					for(var i=0; i<found.components.length; i++){
-    						this.removeComponentFromSelect2(found.components[i]);
-    					}
-    				}
-    			}
-    			$el.siblings().removeClass("active");
-    			$el.toggleClass("active");
-        		if(serviceSelected.length){
-//        			var serviceObj = this.servicesData.service[serviceSelected.data("name")];
-//        			if(serviceObj){
-        				var found = getDependentServices(serviceSelected.data("name"),service);
-        				if(found && found.components){
-        					for(var i=0; i<found.components.length; i++){
-        						if($el.hasClass("active")){
-        							this.addComponentToSelect2(found.components[i]);
-        						}else
-        							this.removeComponentFromSelect2(found.components[i]);
-        					}
-        					
-        				}
-//        			}
-        		}
-    		},
+                    });
+                }
+                });
+            },
+            onDependentServiceClick : function(e){
+                var $el = $(e.currentTarget),that=this,service = $el.data("service"),serviceSelected = this.ui.serviceContainer.find(".active");
+                var getDependentServices = function(forServiceName,Service){
+                    var serviceObj = that.servicesData.service[forServiceName];
+                    if(serviceObj){
+                        return _.findWhere(serviceObj.dependencies,{service:Service});
+                    }
+                }
+                var prev = this.ui.dependencyCont.find(".active");
+                if(prev.length && serviceSelected.length){
+                    var $prev = prev.first();
+                    var found = getDependentServices(serviceSelected.data("name"),$prev.data("service"));
+                    if(found && found.components){
+                        for(var i=0; i<found.components.length; i++){
+                            this.removeComponentFromSelect2(found.components[i]);
+                        }
+                    }
+                }
+                
+                if ($el.text() == "All") {
+                  $el.siblings().removeClass("active");
+                } else {
+                  $el.toggleClass("active");
+                }
+                
+                if(serviceSelected.length){
+//                    var serviceObj = this.servicesData.service[serviceSelected.data("name")];
+//                    if(serviceObj){
+                        var found = getDependentServices(serviceSelected.data("name"),service);
+                        if(found && found.components){
+                            for(var i=0; i<found.components.length; i++){
+                                if($el.hasClass("active")){
+                                    this.addComponentToSelect2(found.components[i]);
+                                }else
+                                    this.removeComponentFromSelect2(found.components[i]);
+                            }
+                            
+                        }
+//                    }
+                }
+            },
             addComponentToSelect2 : function(ele){
-            	var arr = this.ui.components.select2("data");
-            	arr.push({
-            		id : ele,
-            		name : ele
-            	});
-            	this.ui.components.select2("val",_.pluck(arr,"id"),true);
+                var arr = this.ui.components.select2("data");
+                arr.push({
+                    id : ele,
+                    name : ele
+                });
+                this.ui.components.select2("val",_.pluck(arr,"id"),true);
             },
             removeComponentFromSelect2 : function(id){
-            	var arr = this.ui.components.select2("data");
-            	for(var i=0; i<arr.length; i++){
-            		if(arr[i].id === id){
-            			delete arr[i];
-            		}
-            	}
-            	this.ui.components.select2("val",_.pluck(arr,"id"),true);
+                var arr = this.ui.components.select2("data");
+                for(var i=0; i<arr.length; i++){
+                    if(arr[i].id === id){
+                        delete arr[i];
+                    }
+                }
+                this.ui.components.select2("val",_.pluck(arr,"id"),true);
             },
             onExpandCollapseSections : function(){
-            	var sideRight = this.$(".sideRight"),sideLeft = this.$(".sideLeft"),rotate = this.$(".rotateIcon")
-            	if( sideRight.hasClass('sideRightclose')){
-            		sideLeft.removeClass('sideLeftOpen');
-            		sideRight.removeClass('sideRightclose');
+                var sideRight = this.$(".sideRight"),sideLeft = this.$(".sideLeft"),rotate = this.$(".rotateIcon")
+                if( sideRight.hasClass('sideRightclose')){
+                    sideLeft.removeClass('sideLeftOpen');
+                    sideRight.removeClass('sideRightclose');
                     rotate.removeClass('toRight');
-            	}else{
-            		sideLeft.addClass('sideLeftOpen');
-            		sideRight.addClass('sideRightclose');
+                }else{
+                    sideLeft.addClass('sideLeftOpen');
+                    sideRight.addClass('sideRightclose');
                     rotate.addClass('toRight');
-            	}
+                }
             }
         });
 });
\ No newline at end of file