http://git-wip-us.apache.org/repos/asf/ambari/blob/955bc660/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid-paginator/js/backgrid-paginator.min.js
----------------------------------------------------------------------
diff --git 
a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid-paginator/js/backgrid-paginator.min.js
 
b/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid-paginator/js/backgrid-paginator.min.js
deleted file mode 100644
index 8f9fd39..0000000
--- 
a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid-paginator/js/backgrid-paginator.min.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
-  backgrid-paginator
-  http://github.com/wyuenho/backgrid
-
-  Copyright (c) 2013 Jimmy Yuen Ho Wong and contributors
-  Licensed under the MIT @license.
-*/
-!function(a,b){"object"==typeof 
exports?module.exports=b(require("underscore"),require("backbone"),require("backgrid"),require("backbone-pageable")):b(a._,a.Backbone,a.Backgrid)}(this,function(a,b,c){"use
 strict";var 
d=c.Extension.PageHandle=b.View.extend({tagName:"li",events:{"click 
a":"changePage"},title:a.template("Page <%- label 
%>",null,{variable:null}),isRewind:!1,isBack:!1,isForward:!1,isFastForward:!1,initialize:function(b){var
 
c=this.collection,d=c.state,e=d.currentPage,f=d.firstPage,g=d.lastPage;a.extend(this,a.pick(b,["isRewind","isBack","isForward","isFastForward"]));var
 
h;this.isRewind?h=f:this.isBack?h=Math.max(f,e-1):this.isForward?h=Math.min(g,e+1):this.isFastForward?h=g:(h=+b.pageIndex,h=f?h+1:h),this.pageIndex=h,this.label=(b.label||(f?h:h+1))+"";var
 
i=b.title||this.title;this.title=a.isFunction(i)?i({label:this.label}):i},render:function(){this.$el.empty();var
 
a=document.createElement("a");a.href="#",this.title&&(a.title=this.title),a.innerHTML=this.label,this.el.
 appendChild(a);var 
b=this.collection,c=b.state,d=c.currentPage,e=this.pageIndex;return 
this.isRewind&&d==c.firstPage||this.isBack&&!b.hasPrevious()||this.isForward&&!b.hasNext()||this.isFastForward&&(d==c.lastPage||c.totalPages<1)?this.$el.addClass("disabled"):this.isRewind||this.isBack||this.isForward||this.isFastForward||c.currentPage!=e||this.$el.addClass("active"),this.delegateEvents(),this},changePage:function(a){a.preventDefault();var
 b=this.$el,c=this.collection;return 
b.hasClass("active")||b.hasClass("disabled")||(this.isRewind?c.getFirstPage():this.isBack?c.getPreviousPage():this.isForward?c.getNextPage():this.isFastForward?c.getLastPage():c.getPage(this.pageIndex,{reset:!0})),this}}),e=c.Extension.Paginator=b.View.extend({className:"backgrid-paginator",windowSize:10,slideScale:.5,controls:{rewind:{label:"《",title:"First"},back:{label:"〈",title:"Previous"},forward:{label:"〉",title:"Next"},fastForward:{label:"》",title:"Last"}},renderIndexedPageHandles:!0,pageHandle:d
 ,goBackFirstOnSort:!0,initialize:function(b){var 
c=this;c.controls=a.defaults(b.controls||{},c.controls,e.prototype.controls),a.extend(c,a.pick(b||{},"windowSize","pageHandle","slideScale","goBackFirstOnSort","renderIndexedPageHandles"));var
 
d=c.collection;c.listenTo(d,"add",c.render),c.listenTo(d,"remove",c.render),c.listenTo(d,"reset",c.render),c.listenTo(d,"backgrid:sorted",function(){c.goBackFirstOnSort&&d.getFirstPage({reset:!0})})},slideMaybe:function(a,b,c,d){return
 
Math.round(c%d/d)},slideThisMuch:function(a,b,c,d,e){return~~(d*e)},_calculateWindow:function(){var
 
a=this.collection,b=a.state,c=b.firstPage,d=+b.lastPage;d=Math.max(0,c?d-1:d);var
 e=Math.max(b.currentPage,b.firstPage);e=c?e-1:e;var 
f=this.windowSize,g=this.slideScale,h=Math.floor(e/f)*f;e<=d-this.slideThisMuch()&&(h+=this.slideMaybe(c,d,e,f,g)*this.slideThisMuch(c,d,e,f,g));var
 i=Math.min(d+1,h+f);return[h,i]},makeHandles:function(){var 
b=[],c=this.collection,d=this._calculateWindow(),e=d[0],f=d[1];if(this.rende
 rIndexedPageHandles)for(var g=e;f>g;g++)b.push(new 
this.pageHandle({collection:c,pageIndex:g}));var h=this.controls;return 
a.each(["back","rewind","forward","fastForward"],function(a){var 
d=h[a];if(d){var 
e={collection:c,title:d.title,label:d.label};e["is"+a.slice(0,1).toUpperCase()+a.slice(1)]=!0;var
 f=new 
this.pageHandle(e);"rewind"==a||"back"==a?b.unshift(f):b.push(f)}},this),b},render:function(){if(this.$el.empty(),this.handles)for(var
 a=0,b=this.handles.length;b>a;a++)this.handles[a].remove();for(var 
c=this.handles=this.makeHandles(),d=document.createElement("ul"),a=0;a<c.length;a++)d.appendChild(c[a].render().el);return
 this.el.appendChild(d),this}})});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/955bc660/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid-select-all/js/backgrid-select-all.js
----------------------------------------------------------------------
diff --git 
a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid-select-all/js/backgrid-select-all.js
 
b/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid-select-all/js/backgrid-select-all.js
deleted file mode 100644
index 1777f11..0000000
--- 
a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid-select-all/js/backgrid-select-all.js
+++ /dev/null
@@ -1,274 +0,0 @@
-/*
-  backgrid-select-all
-  http://github.com/wyuenho/backgrid
-
-  Copyright (c) 2013 Jimmy Yuen Ho Wong and contributors
-  Licensed under the MIT @license.
-*/
-(function (root, factory) {
-
-  // CommonJS
-  if (typeof exports == "object") {
-    module.exports = factory(require("backbone"), require("backgrid"));
-  }
-  // Browser
-  else factory(root.Backbone, root.Backgrid);
-
-}(this, function (Backbone, Backgrid) {
-
-  "use strict";
-
-  /**
-     Renders a checkbox for row selection.
-
-     @class Backgrid.Extension.SelectRowCell
-     @extends Backbone.View
-  */
-  var SelectRowCell = Backgrid.Extension.SelectRowCell = Backbone.View.extend({
-
-    /** @property */
-    className: "select-row-cell",
-
-    /** @property */
-    tagName: "td",
-
-    /** @property */
-    events: {
-      "keydown input[type=checkbox]": "onKeydown",
-      "change input[type=checkbox]": "onChange",
-      "click input[type=checkbox]": "enterEditMode"
-    },
-
-    /**
-       Initializer. If the underlying model triggers a `select` event, this 
cell
-       will change its checked value according to the event's `selected` value.
-
-       @param {Object} options
-       @param {Backgrid.Column} options.column
-       @param {Backbone.Model} options.model
-    */
-    initialize: function (options) {
-
-      this.column = options.column;
-      if (!(this.column instanceof Backgrid.Column)) {
-        this.column = new Backgrid.Column(this.column);
-      }
-
-      var column = this.column, model = this.model, $el = this.$el;
-      this.listenTo(column, "change:renderable", function (column, renderable) 
{
-        $el.toggleClass("renderable", renderable);
-      });
-
-      if (Backgrid.callByNeed(column.renderable(), column, model)) 
$el.addClass("renderable");
-
-      this.listenTo(model, "backgrid:select", function (model, selected) {
-        this.$el.find("input[type=checkbox]").prop("checked", 
selected).change();
-      });
-    },
-
-    /**
-       Focuses the checkbox.
-    */
-    enterEditMode: function () {
-      this.$el.find("input[type=checkbox]").focus();
-    },
-
-    /**
-       Unfocuses the checkbox.
-    */
-    exitEditMode: function () {
-      this.$el.find("input[type=checkbox]").blur();
-    },
-
-    /**
-       Process keyboard navigation.
-    */
-    onKeydown: function (e) {
-      var command = new Backgrid.Command(e);
-      if (command.passThru()) return true; // skip ahead to `change`
-      if (command.cancel()) {
-        e.stopPropagation();
-        this.$el.find("input[type=checkbox]").blur();
-      }
-      else if (command.save() || command.moveLeft() || command.moveRight() ||
-               command.moveUp() || command.moveDown()) {
-        e.preventDefault();
-        e.stopPropagation();
-        this.model.trigger("backgrid:edited", this.model, this.column, 
command);
-      }
-    },
-
-    /**
-       When the checkbox's value changes, this method will trigger a Backbone
-       `backgrid:selected` event with a reference of the model and the
-       checkbox's `checked` value.
-    */
-    onChange: function () {
-      var checked = this.$el.find("input[type=checkbox]").prop("checked");
-      this.$el.parent().toggleClass("selected", checked);
-      this.model.trigger("backgrid:selected", this.model, checked);
-    },
-
-    /**
-       Renders a checkbox in a table cell.
-    */
-    render: function () {
-      this.$el.empty().append('<input tabindex="-1" type="checkbox" />');
-      this.delegateEvents();
-      return this;
-    }
-
-  });
-
-  /**
-     Renders a checkbox to select all rows on the current page.
-
-     @class Backgrid.Extension.SelectAllHeaderCell
-     @extends Backgrid.Extension.SelectRowCell
-  */
-  var SelectAllHeaderCell = Backgrid.Extension.SelectAllHeaderCell = 
SelectRowCell.extend({
-
-    /** @property */
-    className: "select-all-header-cell",
-
-    /** @property */
-    tagName: "th",
-
-    /**
-       Initializer. When this cell's checkbox is checked, a Backbone
-       `backgrid:select` event will be triggered for each model for the current
-       page in the underlying collection. If a `SelectRowCell` instance exists
-       for the rows representing the models, they will check themselves. If any
-       of the SelectRowCell instances trigger a Backbone `backgrid:selected`
-       event with a `false` value, this cell will uncheck its checkbox. In the
-       event of a Backbone `backgrid:refresh` event, which is triggered when 
the
-       body refreshes its rows, which can happen under a number of conditions
-       such as paging or the columns were reset, this cell will still remember
-       the previously selected models and trigger a Backbone `backgrid:select`
-       event on them such that the SelectRowCells can recheck themselves upon
-       refreshing.
-
-       @param {Object} options
-       @param {Backgrid.Column} options.column
-       @param {Backbone.Collection} options.collection
-    */
-    initialize: function (options) {
-
-      this.column = options.column;
-      if (!(this.column instanceof Backgrid.Column)) {
-        this.column = new Backgrid.Column(this.column);
-      }
-
-      var collection = this.collection;
-      var selectedModels = this.selectedModels = {};
-      this.listenTo(collection.fullCollection || collection,
-                    "backgrid:selected", function (model, selected) {
-        if (selected) selectedModels[model.id || model.cid] = 1;
-        else {
-          delete selectedModels[model.id || model.cid];
-          this.$el.find("input[type=checkbox]").prop("checked", false);
-        }
-      });
-
-      this.listenTo(collection.fullCollection || collection, "remove", 
function (model) {
-        delete selectedModels[model.id || model.cid];
-      });
-
-      this.listenTo(collection, "backgrid:refresh", function () {
-        var checked = this.$el.find("input[type=checkbox]").prop("checked");
-        for (var i = 0; i < collection.length; i++) {
-          var model = collection.at(i);
-          if (checked || selectedModels[model.id || model.cid]) {
-            model.trigger("backgrid:select", model, true);
-          }
-        }
-      });
-
-      var column = this.column, $el = this.$el;
-      this.listenTo(column, "change:renderable", function (column, renderable) 
{
-        $el.toggleClass("renderable", renderable);
-      });
-
-      if (Backgrid.callByNeed(column.renderable(), column, collection)) 
$el.addClass("renderable");
-    },
-
-    /**
-       Propagates the checked value of this checkbox to all the models of the
-       underlying collection by triggering a Backbone `backgrid:select` event 
on
-       the models on the current page, passing each model and the current
-       `checked` value of the checkbox in each event.
-
-       A `backgrid:selected` event will also be triggered with the current
-       `checked` value on all the models regardless of whether they are on the
-       current page.
-
-       This method triggers a 'backgrid:select-all' event on the collection
-       afterwards.
-    */
-    onChange: function () {
-      var checked = this.$el.find("input[type=checkbox]").prop("checked");
-
-      var collection = this.collection;
-      collection.each(function (model) {
-        model.trigger("backgrid:select", model, checked);
-      });
-
-      if (collection.fullCollection) {
-        collection.fullCollection.each(function (model) {
-          if (!collection.get(model.cid)) {
-            model.trigger("backgrid:selected", model, checked);
-          }
-        });
-      }
-
-      this.collection.trigger("backgrid:select-all", this.collection, checked);
-    }
-
-  });
-
-  /**
-     Convenient method to retrieve a list of selected models. This method only
-     exists when the `SelectAll` extension has been included. Selected models
-     are retained across pagination.
-
-     @member Backgrid.Grid
-     @return {Array.<Backbone.Model>}
-  */
-  Backgrid.Grid.prototype.getSelectedModels = function () {
-    var selectAllHeaderCell;
-    var headerCells = this.header.row.cells;
-    for (var i = 0, l = headerCells.length; i < l; i++) {
-      var headerCell = headerCells[i];
-      if (headerCell instanceof SelectAllHeaderCell) {
-        selectAllHeaderCell = headerCell;
-        break;
-      }
-    }
-
-    var result = [];
-    if (selectAllHeaderCell) {
-      var selectedModels = selectAllHeaderCell.selectedModels;
-      var collection = this.collection.fullCollection || this.collection;
-      for (var modelId in selectedModels) {
-        result.push(collection.get(modelId));
-      }
-    }
-
-    return result;
-  };
-
-  /**
-     Convenient method to deselect the selected models. This method is only
-     available when the `SelectAll` extension has been included.
-
-     @member Backgrid.Grid
-   */
-  Backgrid.Grid.prototype.clearSelectedModels = function () {
-    var selectedModels = this.getSelectedModels();
-    for (var i = 0, l = selectedModels.length; i < l; i++) {
-      var model = selectedModels[i];
-      model.trigger("backgrid:select", model, false);
-    }
-  };
-
-}));

http://git-wip-us.apache.org/repos/asf/ambari/blob/955bc660/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid-select-all/js/backgrid-select-all.min.js
----------------------------------------------------------------------
diff --git 
a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid-select-all/js/backgrid-select-all.min.js
 
b/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid-select-all/js/backgrid-select-all.min.js
deleted file mode 100644
index 1e49adf..0000000
--- 
a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid-select-all/js/backgrid-select-all.min.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
-  backgrid-select-all
-  http://github.com/wyuenho/backgrid
-
-  Copyright (c) 2013 Jimmy Yuen Ho Wong and contributors
-  Licensed under the MIT @license.
-*/
-!function(a,b){"object"==typeof 
exports?module.exports=b(require("backbone"),require("backgrid")):b(a.Backbone,a.Backgrid)}(this,function(a,b){"use
 strict";var 
c=b.Extension.SelectRowCell=a.View.extend({className:"select-row-cell",tagName:"td",events:{"keydown
 input[type=checkbox]":"onKeydown","change 
input[type=checkbox]":"onChange","click 
input[type=checkbox]":"enterEditMode"},initialize:function(a){this.column=a.column,this.column
 instanceof b.Column||(this.column=new b.Column(this.column));var 
c=this.column,d=this.model,e=this.$el;this.listenTo(c,"change:renderable",function(a,b){e.toggleClass("renderable",b)}),b.callByNeed(c.renderable(),c,d)&&e.addClass("renderable"),this.listenTo(d,"backgrid:select",function(a,b){this.$el.find("input[type=checkbox]").prop("checked",b).change()})},enterEditMode:function(){this.$el.find("input[type=checkbox]").focus()},exitEditMode:function(){this.$el.find("input[type=checkbox]").blur()},onKeydown:function(a){var
 c=new b.Command(a);return c.pas
 
sThru()?!0:(c.cancel()?(a.stopPropagation(),this.$el.find("input[type=checkbox]").blur()):(c.save()||c.moveLeft()||c.moveRight()||c.moveUp()||c.moveDown())&&(a.preventDefault(),a.stopPropagation(),this.model.trigger("backgrid:edited",this.model,this.column,c)),void
 0)},onChange:function(){var 
a=this.$el.find("input[type=checkbox]").prop("checked");this.$el.parent().toggleClass("selected",a),this.model.trigger("backgrid:selected",this.model,a)},render:function(){return
 this.$el.empty().append('<input tabindex="-1" type="checkbox" 
/>'),this.delegateEvents(),this}}),d=b.Extension.SelectAllHeaderCell=c.extend({className:"select-all-header-cell",tagName:"th",initialize:function(a){this.column=a.column,this.column
 instanceof b.Column||(this.column=new b.Column(this.column));var 
c=this.collection,d=this.selectedModels={};this.listenTo(c.fullCollection||c,"backgrid:selected",function(a,b){b?d[a.id||a.cid]=1:(delete
 d[a.id||a.cid],this.$el.find("input[type=checkbox]").prop("checked",!1))}),t
 his.listenTo(c.fullCollection||c,"remove",function(a){delete 
d[a.id||a.cid]}),this.listenTo(c,"backgrid:refresh",function(){for(var 
a=this.$el.find("input[type=checkbox]").prop("checked"),b=0;b<c.length;b++){var 
e=c.at(b);(a||d[e.id||e.cid])&&e.trigger("backgrid:select",e,!0)}});var 
e=this.column,f=this.$el;this.listenTo(e,"change:renderable",function(a,b){f.toggleClass("renderable",b)}),b.callByNeed(e.renderable(),e,c)&&f.addClass("renderable")},onChange:function(){var
 
a=this.$el.find("input[type=checkbox]").prop("checked"),b=this.collection;b.each(function(b){b.trigger("backgrid:select",b,a)}),b.fullCollection&&b.fullCollection.each(function(c){b.get(c.cid)||c.trigger("backgrid:selected",c,a)}),this.collection.trigger("backgrid:select-all",this.collection,a)}});b.Grid.prototype.getSelectedModels=function(){for(var
 a,b=this.header.row.cells,c=0,e=b.length;e>c;c++){var f=b[c];if(f instanceof 
d){a=f;break}}var g=[];if(a){var 
h=a.selectedModels,i=this.collection.fullCollection||this.c
 ollection;for(var j in h)g.push(i.get(j))}return 
g},b.Grid.prototype.clearSelectedModels=function(){for(var 
a=this.getSelectedModels(),b=0,c=a.length;c>b;b++){var 
d=a[b];d.trigger("backgrid:select",d,!1)}}});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/955bc660/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid-sizeable/backgrid-orderable-columns.css
----------------------------------------------------------------------
diff --git 
a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid-sizeable/backgrid-orderable-columns.css
 
b/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid-sizeable/backgrid-orderable-columns.css
deleted file mode 100644
index 759f47c..0000000
--- 
a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid-sizeable/backgrid-orderable-columns.css
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- backgrid-orderable-columns
- https://github.com/WRidder/backgrid-orderable-columns
-
- Copyright (c) 2014 Wilbert van de Ridder
- Licensed under the MIT @license.
- */
-.backgrid .orderable-indicator {
-    width: 3px;
-    top: 0;
-    position: absolute;
-    z-index: 1;
-}
-
-.backgrid .orderable-indicator-active {
-    background-color: #000; /* IE8 fallback */
-    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; /* IE8 
fallback */
-    background-color: rgba(0, 0, 0, 0.5);
-}
-
-.backgrid thead th.orderable-ordering {
-    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=30)"; /* IE8 
fallback */
-    opacity: 0.3;
-}
-
-.backgrid .orderable-draggable {
-    position: absolute;
-    display: block;
-    background-color: #000; /* IE8 fallback */
-    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=10)"; /* IE8 
fallback */
-    background-color: rgba(0, 0, 0, 0.1);
-    z-index: 3;
-    cursor: move;
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/955bc660/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid-sizeable/backgrid-orderable-columns.js
----------------------------------------------------------------------
diff --git 
a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid-sizeable/backgrid-orderable-columns.js
 
b/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid-sizeable/backgrid-orderable-columns.js
deleted file mode 100644
index 03cbbd2..0000000
--- 
a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid-sizeable/backgrid-orderable-columns.js
+++ /dev/null
@@ -1,680 +0,0 @@
-/*
- backgrid-orderable-columns
- https://github.com/WRidder/backgrid-orderable-columns
-
- Copyright (c) 2014 Wilbert van de Ridder
- Licensed under the MIT @license.
- */
-(function (root, factory) {
-  // CommonJS
-  if (typeof exports == "object") {
-    module.exports = factory(require("underscore"), require("backgrid"), 
require("jquery"));
-  }
-  // AMD. Register as an anonymous module.
-  else if (typeof define === 'function' && define.amd) {
-    define(['underscore', 'backgrid', 'jquery'], factory);
-  }
-  // Browser
-  else {
-    factory(root._, root.Backgrid, root.jQuery);
-  }
-}(this, function (_, Backgrid, $) {
-  "use strict";
-
-  // Adds width support to columns
-  Backgrid.Extension.OrderableColumns = Backbone.View.extend({
-    dragHooks: {},
-
-    /**
-     * Initializer
-     * @param options
-     */
-    initialize: function (options) {
-      this.sizeAbleColumns = options.sizeAbleColumns;
-      this.grid = this.sizeAbleColumns.grid;
-      this.columns = this.grid.columns;
-      this.header = this.grid.header;
-      this.collection = this.grid.collection;
-      this.moveThreshold = options.moveThreshold || 10;
-      this.orderAlignTop = options.orderAlignTop;
-
-      this.attachEvents();
-      this.setHeaderElements();
-
-      // Set scope handlers
-      this.mouseMoveHandler = _.bind(this.mouseMoveHandler, this);
-      this.mouseUpHandler = _.bind(this.mouseUpHandler, this);
-    },
-
-    /**
-     * Adds handlers to reorder the columns
-     * @returns {Backgrid.Extension.OrderableColumns}
-     */
-    render: function () {
-      var self = this;
-      self.$el.empty();
-
-      // Create indicators
-      self.addIndicators();
-
-      // Loop all rows
-      var headerRows = self.header.headerRows || [self.header.row];
-      _.each(headerRows, function (row) {
-        // Loop cells of row
-        _.each(row.cells, function (cell) {
-          // Get column model
-          var columnModel = cell.column;
-
-          // Attach handler if main orderable cell or has child
-          var orderable = false;
-          if (!columnModel.get("childColumns")) {
-            orderable = typeof columnModel.get("orderable") == "undefined" || 
columnModel.get("orderable");
-          }
-          else {
-            // Parent element is orderable if any of the children is orderable
-            orderable = _.some(columnModel.get("childColumns"), 
function(child) {
-              var childColumnModel = child.column;
-              return typeof childColumnModel.get("orderable") == "undefined" 
|| childColumnModel.get("orderable");
-            });
-          }
-
-          // If orderable, add handler
-          if (orderable) {
-            cell.$el.on("mousedown",
-              _.bind(self.mouseDownHandler, {
-                view: self,
-                cell: cell,
-                column: columnModel
-              })
-            );
-          }
-        });
-      });
-
-      // Position drag handlers
-      self.updateIndicatorPosition();
-
-      return this;
-    },
-
-    /**
-     * Drag state object
-     */
-    dragState: {
-      dragIntention: false,
-      dragging: false,
-      $dragElement: null,
-      $activeIndicator: null,
-      column: null,
-      cell: null,
-      coordinateElementStartX: null,
-      coordinatePointerStartX: null,
-      oldFirstDisplayOrderValue: null,
-      oldLastDisplayOrderValue: null,
-      newDisplayOrderValue: null,
-      orderPrevented: null
-    },
-
-    mouseDownHandler: function(evt) {
-      var self = this.view;
-      var cell = this.cell;
-      var column = this.column;
-      var $headerElement = $(cell.$el);
-
-      // Check if left-click
-      if (evt.which === 1) {
-        self._stopEvent(evt);
-
-        // Set drag state
-        self.dragState.dragIntention = true;
-        self.dragState.column = column;
-        self.dragState.cell = cell;
-        self.dragState.coordinatePointerStartX = evt.pageX;
-        self.dragState.coordinateElementStartX = 
$headerElement.position().left;
-
-        if (column.get("childColumns")) {
-          self.dragState.oldFirstDisplayOrderValue = 
_.first(column.get("childColumns")).column.get("displayOrder");
-          self.dragState.newDisplayOrderValue = 
_.first(column.get("childColumns")).column.get("displayOrder");
-          self.dragState.oldLastDisplayOrderValue = 
_.last(column.get("childColumns")).column.get("displayOrder");
-        }
-        else {
-          self.dragState.oldFirstDisplayOrderValue = 
column.get("displayOrder");
-          self.dragState.newDisplayOrderValue = column.get("displayOrder");
-          self.dragState.oldLastDisplayOrderValue = column.get("displayOrder");
-        }
-
-        // Create copy of column element
-        self.dragState.$dragElement = $("<div/>")
-          .addClass("orderable-draggable")
-          .hide()
-          .appendTo(self.$el)
-          .width($headerElement.outerWidth())
-          .height($headerElement.outerHeight())
-          .css({
-            left: $headerElement.position().left,
-            top: $headerElement.position().top
-          });
-
-        // Add move and mouse up handler
-        $(document).on("mousemove", self.mouseMoveHandler);
-        $(document).on("mouseup", self.mouseUpHandler);
-      }
-    },
-
-    /**
-     * Mouse move event handler
-     * @param evt
-     */
-    mouseMoveHandler: function(evt) {
-      var self = this;
-      var pageX = evt.pageX;
-      var leftPosition = self.dragState.coordinateElementStartX + (pageX - 
self.dragState.coordinatePointerStartX);
-      self._stopEvent(evt);
-      var delta = Math.abs(pageX - self.dragState.coordinatePointerStartX);
-
-      if (self.dragState.dragging) {
-        // Highlight nearest indicator
-        self.calculateDropPosition(leftPosition, evt);
-
-        // Notify drag hooks
-        self.dragHookInvoke("dragMove", self.dragState.$dragElement, evt, 
self.dragState.column);
-
-        // Set draggable eleent position
-        self.dragState.$dragElement.css({
-          left: leftPosition
-        });
-      }
-      // Only move beyond threshold
-      else if (delta >= self.moveThreshold && !self.dragState.dragging) {
-        self.dragState.cell.$el.addClass("orderable-ordering");
-        self.dragState.dragging = true;
-
-        // Notify drag hooks
-        self.dragHookInvoke("dragStart", evt, self.dragState.column);
-
-        // Show and position drag element
-        self.dragState.$dragElement.css({
-          left: leftPosition
-        }).show();
-      }
-    },
-
-    /**
-     * Mouse up event handler
-     * @param evt
-     */
-    mouseUpHandler: function(evt) {
-      var self = this;
-
-      // Remove handlers
-      $(document).off("mousemove", self.mouseMoveHandler);
-      $(document).off("mouseup", self.mouseUpHandler);
-
-      // Notify drag hooks
-      self.dragHookInvoke("dragEnd", evt, self.dragState.column);
-
-      // Check if the columns have actually been re-ordered
-      if (!self.dragState.orderPrevented &&
-        self.dragState.oldFirstDisplayOrderValue !== 
self.dragState.newDisplayOrderValue) {
-
-        // Update positions
-        self.updateDisplayOrders();
-
-        // Trigger event indicating column reordering
-        self.columns.trigger("ordered");
-
-        // Sort columns
-        self.columns.sort();
-      }
-
-      // Reset drag state
-      self.resetDragState();
-    },
-
-    /**
-     * Find the drop position for the current position of the dragged header 
element
-     * @param leftPosition
-     * @param evt
-     */
-    calculateDropPosition: function(leftPosition, evt) {
-      var self = this;
-
-      // Find closest indicator
-      var closest = null;
-      var $closestIndicator = null;
-      _.each(self.indicatorPositions, function (indicator, displayOrder) {
-        if (closest == null ||
-          Math.abs(indicator.x - leftPosition) < Math.abs(closest - 
leftPosition) &&
-          (displayOrder <= self.dragState.oldFirstDisplayOrderValue || 
displayOrder > self.dragState.oldLastDisplayOrderValue + 1)
-        ) {
-          closest = indicator.x;
-          $closestIndicator = indicator.$el;
-        }
-      });
-
-      // Set active class on current indicator
-      if ($closestIndicator !== self.dragState.$activeIndicator) {
-        if (self.dragState.$activeIndicator) {
-          
self.dragState.$activeIndicator.removeClass('orderable-indicator-active');
-        }
-      }
-
-      // Check if the move is valid
-      if (!self.dragHookPreventOrder(self.dragState.$dragElement, evt, 
self.dragState.column)) {
-        // Set active class on current indicator
-        if ($closestIndicator !== self.dragState.$activeIndicator) {
-          if (self.dragState.$activeIndicator) {
-            
self.dragState.$activeIndicator.removeClass('orderable-indicator-active');
-          }
-          self.dragState.$activeIndicator = $closestIndicator;
-          $closestIndicator.addClass('orderable-indicator-active');
-
-          // Save new order
-          self.dragState.newDisplayOrderValue = 
$closestIndicator.data("column-displayOrder");
-        }
-        self.dragState.orderPrevented = false;
-      }
-      else {
-        self.dragState.orderPrevented = true;
-      }
-    },
-
-    /**
-     * Calculates displayOrder attributes for columns after re-ordering
-     */
-    updateDisplayOrders: function() {
-      var self = this;
-      var oldFirstDO = self.dragState.oldFirstDisplayOrderValue;
-      var oldLastDO = self.dragState.oldLastDisplayOrderValue;
-      var newDO = self.dragState.newDisplayOrderValue;
-      var movedRight = oldFirstDO < newDO;
-      var span = (oldLastDO - oldFirstDO) + 1;
-      var positionShift = (movedRight) ? (newDO - oldFirstDO - span) : 
(oldFirstDO - newDO);
-
-      // Update position attributes
-      self.columns.each(function (model) {
-        var mDO = model.get("displayOrder");
-        var nDO = mDO;
-        if (movedRight) {
-          if (mDO > oldLastDO && mDO < newDO) {
-            nDO = mDO - span;
-          }
-          else if (mDO >= oldFirstDO && mDO <= oldLastDO) {
-            nDO = mDO + positionShift;
-          }
-        }
-        else {
-          if (mDO >= newDO && mDO < oldFirstDO) {
-            nDO = mDO + span;
-          }
-          else if (mDO >= oldFirstDO && mDO <= oldLastDO) {
-            nDO = mDO - positionShift;
-          }
-        }
-
-        // Update displayOrder value
-        if (mDO !== nDO) {
-          model.set("displayOrder", nDO, {silent: true});
-        }
-      });
-    },
-
-    /**
-     * Reset drag state
-     */
-    resetDragState: function() {
-      this.dragState.dragging = false;
-      this.dragState.dragIntention = false;
-      if (this.dragState.cell) {
-        this.dragState.cell.$el.removeClass("orderable-ordering");
-        this.dragState.cell = null;
-      }
-      if (this.dragState.$dragElement) {
-        this.dragState.$dragElement.remove();
-        this.dragState.$dragElement = null;
-      }
-      if (this.dragState.$activeIndicator) {
-        
this.dragState.$activeIndicator.removeClass('orderable-indicator-active');
-      }
-      this.dragState.$activeIndicator = null;
-      this.dragState.column = null;
-      this.dragState.coordinateElementStartX = null;
-      this.dragState.coordinatePointerStartX = null;
-      this.dragState.orderPrevented = null;
-    },
-
-    /**
-     * Adds indicators which will show at which spot the column will be placed 
while dragging
-     * @private
-     */
-    addIndicators: function () {
-      var self = this;
-      self.indicators = [];
-
-      var previousIndicators = false;
-      var previousDisplayOrder = 0;
-      var previousRealDisplayOrder = 0;
-      _.each(self.headerCells, function (headerCell) {
-        var model = headerCell.column;
-        if (previousIndicators || model.get("orderable")) {
-          var DO = model.get("displayOrder");
-
-          if (!previousIndicators) {
-            previousDisplayOrder = previousRealDisplayOrder = DO - 1;
-          }
-
-          // Check whether to add columns after front or tail when gaps exist.
-          if (!self.orderAlignTop && DO !== previousDisplayOrder + 1 && 
previousDisplayOrder === previousRealDisplayOrder) {
-            DO = previousDisplayOrder + 1;
-          }
-          self.$el.append(self.createIndicator(DO, headerCell));
-
-          // This boolean is used to see to what extend we can omit indicators 
upfront
-          previousIndicators = true;
-          previousDisplayOrder = DO;
-          previousRealDisplayOrder = model.get("displayOrder");
-        }
-      });
-
-      // Add trailing indicator
-      if (!_.isEmpty(self.headerCells) && 
_.last(self.headerCells).column.get("orderable")) {
-        
self.$el.append(self.createIndicator(_.last(self.headerCells).column.get("displayOrder")
 + 1, null));
-      }
-
-      // Set indicator height
-      self.setIndicatorHeight(self.grid.header.$el.height());
-    },
-
-    /**
-     * Create a single indicator
-     * @param {Integer} displayOrder
-     * @returns {*|JQuery|any|jQuery}
-     * @private
-     */
-    createIndicator: function (displayOrder, cell) {
-      var self = this;
-
-      // Create helper elements
-      var $indicator = $("<div></div>")
-        .addClass("orderable-indicator")
-        .data("column-cell", cell)
-        .data("column-displayOrder", displayOrder);
-      self.indicators.push($indicator);
-
-      return $indicator;
-    },
-
-    /**
-     * Updates the position of all handlers
-     * @private
-     */
-    updateIndicatorPosition: function () {
-      var self = this;
-      self.indicatorPositions = {};
-
-      _.each(self.indicators, function ($indicator, indx) {
-        var cell = $indicator.data("column-cell");
-        var displayOrder = $indicator.data("column-displayOrder");
-
-        var left;
-        if (cell) {
-          left = cell.$el.position().left;
-        }
-        else {
-          var prevCell = self.indicators[indx - 1].data("column-cell");
-          left = prevCell.$el.position().left + prevCell.$el.width();
-        }
-        self.indicatorPositions[displayOrder] = {
-          x: left,
-          $el: $indicator
-        };
-
-        // Get handler for current column and update position
-        $indicator.css("left", left);
-      });
-      self.setIndicatorHeight();
-    },
-
-    /**
-     * Sets height of all indicators matching the table header
-     * @private
-     */
-    setIndicatorHeight: function () {
-      this.$el.children().height(this.grid.header.$el.height());
-    },
-
-    /**
-     * Attach event handlers
-     * @private
-     */
-    attachEvents: function () {
-      var self = this;
-      self.listenTo(self.columns, "resize", self.handleColumnResize);
-      self.listenTo(self.columns, "remove", self.handleColumnRemove);
-      self.listenTo(self.columns, "sort", self.handleColumnSort);
-      self.listenTo(self.grid.collection, "backgrid:colgroup:updated", 
self.updateIndicatorPosition);
-      self.listenTo(self.grid.collection, "backgrid:colgroup:changed", 
self.handleHeaderRender);
-
-      // Listen to window resize events
-      var resizeEvtHandler = _.debounce(_.bind(self.updateIndicatorPosition, 
self), 250);
-      self.listenTo(self._asEvents(window), "resize", resizeEvtHandler);
-    },
-
-    /**
-     * Handlers when columns are resized
-     * @private
-     */
-    handleColumnResize: function () {
-      var self = this;
-      self.updateIndicatorPosition();
-      self.setIndicatorHeight();
-    },
-
-    /**
-     * Handler when header is (re)rendered
-     * @private
-     */
-    handleHeaderRender: function () {
-      var self = this;
-      // Wait for callstack to be cleared
-      _.defer(function () {
-        self.setHeaderElements();
-        self.render();
-        self.updateIndicatorPosition();
-      });
-    },
-
-    /**
-     * Handler for when a column is removed
-     * @param {Backgrid.Column} model
-     * @param {Backgrid.Columns} collection
-     * @private
-     */
-    handleColumnRemove: function (model, collection) {
-      // Get position of removed model
-      var removedPosition = model.get("displayOrder");
-
-      // Update position values of models
-      collection.each(function (mod) {
-        if (mod.get("displayOrder") > removedPosition) {
-          mod.set("displayOrder", mod.get("displayOrder") - 1, {silent: true});
-        }
-      });
-    },
-
-    /**
-     * Handler when the column collection is sorted
-     * @private
-     */
-    handleColumnSort: function() {
-      // Refresh body
-      this.grid.body.refresh();
-    },
-
-    /**
-     * Finds and saves current column header elements
-     * @private
-     */
-    setHeaderElements: function () {
-      var self = this;
-      var rows = self.header.headerRows || [self.header.row];
-      self.headerCells = [];
-
-      // Loop all rows
-      _.each(rows, function (row) {
-        // Loop cells of row
-        _.each(row.cells, function (cell) {
-          var columnModel = self.columns.get({cid: cell.column.cid});
-          if (!_.isEmpty(columnModel)) {
-            self.headerCells.push({
-              $el: cell.$el,
-              el: cell.el,
-              column: columnModel
-            });
-          }
-        });
-      });
-
-      // Sort cells
-      var headerCells = _.sortBy(self.headerCells, function (cell) {
-        return self.columns.indexOf(cell.column);
-      });
-
-      // Filter cells
-      self.headerCells = _.filter(headerCells, function (cell) {
-        return cell.column.get("renderable") === true ||
-          typeof cell.column.get("renderable") === "undefined"
-      });
-
-      self.headerElements = _.map(self.headerCells, function (cell) {
-        return cell.el;
-      });
-    },
-
-    /**
-     * Adds a drag hook
-     * @param {String} id
-     * @param {Function} hook
-     */
-    addDragHook: function (id, hook) {
-      this.dragHooks[id] = hook;
-    },
-
-    /**
-     * Removes a drag hook
-     * @param {String} id
-     */
-    removeDragHook: function (id) {
-      if (this.dragHooks.hasOwnProperty(id)) {
-        delete this.dragHooks[id];
-      }
-    },
-
-    /**
-     * Invokes a drag hook
-     * @param {String} key
-     * @private
-     */
-    dragHookInvoke: function (key) {
-      var args = [].slice.apply(arguments);
-      args.shift();
-      _.each(this.dragHooks, function (obj) {
-        if (typeof obj[key] == "function") {
-          obj[key].apply(obj, args);
-        }
-      });
-    },
-
-    /**
-     * Checks whether the ordering should be prevented
-     * @returns {boolean}
-     * @private
-     */
-    dragHookPreventOrder: function () {
-      var prevent = false;
-      _.each(this.dragHooks, function (obj) {
-        if (typeof obj.preventOrder == "function") {
-          prevent |= obj.preventOrder();
-        }
-      });
-      return prevent;
-    },
-
-    /**
-     * Helper function to stop event propagation
-     * @param e
-     * @private
-     */
-    _stopEvent: function (e) {
-      if (e.stopPropagation) {
-        e.stopPropagation();
-      }
-      if (e.preventDefault) {
-        e.preventDefault();
-      }
-      e.cancelBubble = true;
-      e.returnValue = false;
-    },
-
-    /**
-     * Use Backbone Events listenTo/stopListening with any DOM element
-     *
-     * @param {DOM Element}
-     * @return {Backbone Events style object}
-     **/
-    _asEvents: function(el) {
-      var args;
-      return {
-        on: function(event, handler) {
-          if (args) throw new Error("this is one off wrapper");
-          el.addEventListener(event, handler, false);
-          args = [event, handler];
-        },
-        off: function() {
-          el.removeEventListener.apply(el, args);
-        }
-      };
-    }
-  });
-
-  /**
-   * Extendable
-   * @type {Function}
-   */
-  var orderableDragHook = Backgrid.Extension.OrderableDragHook = function () {
-    this.initialize.apply(this, arguments);
-  };
-
-  /**
-   *  Prototype for the drag hook
-   */
-  _.extend(orderableDragHook.prototype, {
-    initialize: function () {
-    },
-    dragStart: function () {
-    },
-    dragMove: function () {
-    },
-    dragEnd: function () {
-    },
-    preventOrder: function () {
-    }
-  });
-
-  /**
-   * Sample collection for orderable columns
-   */
-  Backgrid.Extension.OrderableColumns.orderableColumnCollection = 
Backgrid.Columns.extend({
-    sortKey: "displayOrder",
-    comparator: function (item) {
-      return item.get(this.sortKey) || 1e6;
-    },
-    setPositions: function () {
-      _.each(this.models, function (model, index) {
-        // If a displayOrder is defined already, do not touch
-        model.set("displayOrder", model.get("displayOrder") || index + 1, 
{silent: true});
-      });
-      return this;
-    }
-  });
-}));

http://git-wip-us.apache.org/repos/asf/ambari/blob/955bc660/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid-sizeable/css/backgrid-sizeable-columns.css
----------------------------------------------------------------------
diff --git 
a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid-sizeable/css/backgrid-sizeable-columns.css
 
b/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid-sizeable/css/backgrid-sizeable-columns.css
deleted file mode 100644
index 1b4f130..0000000
--- 
a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid-sizeable/css/backgrid-sizeable-columns.css
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- backgrid-sizeable-columns
- https://github.com/WRidder/backgrid-sizeable-columns
-
- Copyright (c) 2014 Wilbert van de Ridder
- Licensed under the MIT @license.
- */
-table.backgrid {
-    overflow: hidden;
-    position: relative;
-}
-
-.backgrid .resizeHandler {
-    width: 16px;
-    height: 100%;
-    margin-left: -8px;
-    top: 0;
-    position: absolute;
-    cursor: col-resize;
-    z-index: 2;
-}
-
-.backgrid .resizeHandler.grid-draggable {
-    opacity: 1;
-    width: 1px;
-    margin-left: 0px;
-    background-color: #000;
-}
-
-.backgrid .resizeHandler .grid-draggable-cursor {
-    cursor: col-resize;
-    width: 100px;
-    margin-left: -50px;
-    height: 100%;
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/955bc660/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid-sizeable/js/backgrid-sizeable-columns.js
----------------------------------------------------------------------
diff --git 
a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid-sizeable/js/backgrid-sizeable-columns.js
 
b/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid-sizeable/js/backgrid-sizeable-columns.js
deleted file mode 100644
index 2704ca1..0000000
--- 
a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid-sizeable/js/backgrid-sizeable-columns.js
+++ /dev/null
@@ -1,480 +0,0 @@
-/*
- backgrid-sizeable-columns
- https://github.com/WRidder/backgrid-sizeable-columns
-
- Copyright (c) 2014 Wilbert van de Ridder
- Licensed under the MIT @license.
- */
-(function (root, factory) {
-  // CommonJS
-  if (typeof exports == "object") {
-    module.exports = factory(require("underscore"), require("backgrid"));
-  }
-  // AMD. Register as an anonymous module.
-  else if (typeof define === 'function' && define.amd) {
-    define(['underscore', 'backgrid'], factory);
-  }
-  // Browser
-  else {
-    factory(root._, root.Backgrid);
-  }
-
-}(this, function (_, Backgrid) {
-  "use strict";
-
-  // Adds width support to columns
-  Backgrid.Extension.SizeAbleColumns = Backbone.View.extend({
-    /** @property */
-    tagName: "colgroup",
-
-    /**
-     * Initializer
-     * @param options
-     */
-    initialize: function (options) {
-      this.grid = options.grid;
-
-      // Attach event listeners once on render
-      this.listenTo(this.grid.header, "backgrid:header:rendered", this.render);
-      this.listenTo(this.grid.columns, "width:auto", this.setWidthAuto);
-      this.listenTo(this.grid.columns, "width:fixed", this.setWidthFixed);
-      this.listenTo(this.grid, "backgrid:refresh", this.setColToActualWidth);
-      this.listenTo(this.grid.collection, "add remove reset", 
this.setColToActualWidth);
-    },
-
-    /**
-     * Adds sizeable columns using <col> elements in a <colgroup>
-     * @returns {Backgrid.Extension.SizeAbleColumns}
-     */
-    render: function () {
-      var view = this;
-      view.$el.empty();
-
-      view.grid.columns.each(function (col) {
-        if (typeof col.get("renderable") == "undefined" || 
col.get("renderable")) {
-          var $colEl = $("<col>").appendTo(view.$el).attr("data-column-cid", 
col.cid);
-          var colWidth = col.get("width");
-          var colMinWidth = col.get("minWidth");
-          var colMaxWidth = col.get("maxWidth");
-          if (colWidth && colWidth != "*") {
-            if (colMinWidth && colWidth < colMinWidth) {
-              colWidth = colMinWidth;
-            }
-            if (colMaxWidth && colWidth > colMaxWidth) {
-              colWidth = colMaxWidth;
-            }
-            $colEl.width(colWidth);
-          }
-        }
-      });
-      
-      // Add data attribute to column cells
-      if (view.grid.header.headerRows) {
-       _.each(view.grid.header.headerRows, function(row) {
-        _.each(row.cells, function(cell) {
-         cell.$el.attr("data-column-cid", cell.column.cid);
-        });
-       });
-      }
-      else {
-       _.each(view.grid.header.row.cells, function(cell) {
-        cell.$el.attr("data-column-cid", cell.column.cid);
-       });
-      }
-
-      // Trigger event
-      view.grid.collection.trigger("backgrid:colgroup:changed");
-      return this;
-    },
-
-    /**
-     * Gets a <col> element belonging to given model
-     * @param colModel Backgrid.Column
-     * @returns {*|JQuery|any|jQuery}
-     * @private
-     */
-    getColumnElement: function (colModel) {
-      return this.$el.find('col[data-column-cid="' + colModel.cid + '"]');
-    },
-
-    /**
-     * Get the column width of given model
-     * @param colModel Backgrid.Column
-     * @returns {Integer}
-     * @private
-     */
-    getHeaderElementWidth: function(colModel) {
-      return this.grid.header.$el.find("th[data-column-cid='" + colModel.cid + 
"']").outerWidth();
-    },
-
-    /**
-     * Sets a width of the given column to "*" (auto)
-     * @param colModel Backgrid.Column
-     * @private
-     */
-    setWidthAuto: function (colModel) {
-      // Get column element
-      var $colElement = this.getColumnElement(colModel);
-
-      // Save width
-      colModel.set("width", "*");
-
-      // Set column width to auto
-      $colElement.css("width", "");
-
-      view.grid.collection.trigger("backgrid:colgroup:updated");
-    },
-
-    /**
-     * Sets a width of the given column to a fixed width defined in the model.
-     * @param colModel Backgrid.Column
-     * @private
-     */
-    setWidthFixed: function (colModel) {
-      // Get column element
-      var $colElement = this.getColumnElement(colModel);
-
-      // Get width of header element
-      var width = this.getHeaderElementWidth(colModel);
-
-      // Set column width to the original width
-      $colElement.css("width", width);
-
-      // Save width
-      colModel.set("width", width);
-
-      view.grid.collection.trigger("backgrid:colgroup:updated");
-    },
-
-    /**
-     * Updates the view's <col> elements to current width
-     * @private
-     */
-    setColToActualWidth: function() {
-      var view = this;
-      var changed = false;
-      _.each(view.grid.header.row.cells, function(cell) {
-        var $colEl = view.getColumnElement(cell.column);
-        if (cell.column.get("width") !== "*") {
-          changed = changed || $colEl.width() == cell.$el.outerWidth();
-          $colEl.width(cell.$el.outerWidth());
-        }
-      });
-
-      if (changed) {
-        view.grid.collection.trigger("backgrid:colgroup:updated");
-      }
-    }
-  });
-
-  // Makes column resizable; requires Backgrid.Extension.sizeAbleColumns
-  Backgrid.Extension.SizeAbleColumnsHandlers = Backbone.View.extend({
-
-    /**
-     * Initializer
-     * @param options
-     */
-    initialize: function (options) {
-      this.sizeAbleColumns = options.sizeAbleColumns;
-      this.grid = this.sizeAbleColumns.grid;
-      this.columns = this.grid.columns;
-      this.header = this.grid.header;
-
-      this.saveColumnWidth = options.saveColumnWidth;
-      this.setHeaderElements();
-      this.attachEvents();
-    },
-
-    /**
-     * Adds handlers to resize the columns
-     * @returns {Backgrid.Extension.SizeAbleColumnsHandlers}
-     */
-    render: function () {
-      var view = this;
-      view.$el.empty();
-
-      // For now, loop tds in first row
-      _.each(view.headerElements, function (columnEl, index) {
-        // Get matching col element
-        var $column = $(columnEl);
-        var columnModelCid = $column.data("column-cid");
-        var $col = view.sizeAbleColumns.$el.find("col[data-column-cid=" + 
columnModelCid + "]");
-        var columnModel = view.columns.get({ cid: columnModelCid});
-
-        if (columnModel && columnModel.get("resizeable")) {
-          // Create helper elements
-          var $resizeHandler = $("<div></div>")
-            .addClass("resizeHandler")
-            .attr("data-column-index", index)
-            .appendTo(view.$el);
-          var $resizeHandlerHelper = $("<div></div>")
-            .hide()
-            .addClass("grid-draggable-cursor")
-            .appendTo($resizeHandler);
-
-          // Make draggable
-          $resizeHandler.on("mousedown", function (e) {
-            view._stopEvent(e);
-            var startX = Math.round($resizeHandler.offset().left);
-            var $doc = $(document);
-            var handlerNonDragSize = $resizeHandler.outerWidth();
-
-            // Set class
-            $resizeHandler.addClass("grid-draggable");
-            $resizeHandlerHelper.show();
-
-            // Follow the mouse
-            var mouseMoveHandler = function (evt) {
-              view._stopEvent(evt);
-
-              // Check for constraints
-              var minWidth = columnModel.get("minWidth");
-              if (!minWidth || minWidth < 20) {
-                minWidth = 20;
-              }
-              var maxWidth = columnModel.get("maxWidth");
-              var newLeftPos = evt.pageX;
-              var currentWidth = columnModel.get("width");
-              var newWidth = currentWidth + (newLeftPos - startX) - 
handlerNonDragSize / 2;
-
-              if (minWidth && newWidth <= minWidth) {
-                newLeftPos = startX - (currentWidth - minWidth) + 
handlerNonDragSize / 2;
-              }
-              if (maxWidth && newWidth >= maxWidth) {
-                newLeftPos = startX + maxWidth - currentWidth + 
handlerNonDragSize / 2;
-              }
-
-              // Apply mouse change to handler
-              $resizeHandler.offset({
-                left: newLeftPos
-              });
-            };
-            $doc.on("mousemove", mouseMoveHandler);
-
-            // Add handler to listen for mouseup
-            var mouseUpHandler = function (evt) {
-              // Cleanup
-              view._stopEvent(evt);
-              $resizeHandler.removeClass("grid-draggable");
-              $resizeHandlerHelper.hide();
-              $doc.off("mouseup", mouseUpHandler);
-              $doc.off("mousemove", mouseMoveHandler);
-
-              // Adjust column size
-              var stopX = Math.round($resizeHandler.offset().left);
-              var offset = (startX - stopX);
-              var oldWidth = $column.outerWidth();
-              var newWidth = oldWidth - offset;
-              $col.width(newWidth);
-
-              // Get actual width
-              var finalWidth = $column.outerWidth();
-              $col.width(finalWidth);
-
-              // Save width and trigger events
-              if (finalWidth != oldWidth) {
-                if (view.saveColumnWidth) {
-                  // Save updated width
-                  columnModel.set("width", finalWidth, {silent: true});
-                }
-
-                // Trigger event
-                columnModel.trigger("resize", columnModel, finalWidth, 
oldWidth);
-
-                // Check if we have an autosize column, if so, trigger resize 
on it as well
-                var autoWidthColumn = view.columns.findWhere({
-                  width: "*"
-                });
-                if (autoWidthColumn) {
-                  autoWidthColumn.trigger("resize", autoWidthColumn);
-                }
-              }
-              view.updateHandlerPosition();
-            };
-            $doc.on("mouseup", mouseUpHandler);
-          });
-        }
-      });
-
-      // Position drag handlers
-      view.updateHandlerPosition();
-
-      return this;
-    },
-    /**
-     * Helper function to prevent event propagation
-     * @param e {Event}
-     * @private
-     */
-    _stopEvent: function (e) {
-      if (e.stopPropagation) {
-        e.stopPropagation();
-      }
-      if (e.preventDefault) {
-        e.preventDefault();
-      }
-      e.cancelBubble = true;
-      e.returnValue = false;
-    },
-
-    /**
-     * Add listeners
-     * @private
-     */
-    attachEvents: function () {
-      var view = this;
-      view.listenTo(view.columns, "change:resizeable", view.render);
-      view.listenTo(view.columns, "resize width:auto width:fixed add remove", 
view.checkSpacerColumn);
-      view.listenTo(view.grid.collection, "backgrid:colgroup:updated", 
view.updateHandlerPosition);
-      view.listenTo(view.grid.collection, "backgrid:colgroup:changed", 
function () {
-        // Wait for callstack to be cleared
-        _.defer(function () {
-          view.setHeaderElements();
-          view.render();
-        });
-      });
-      
-      var resizeEvtHandler = _.debounce(_.bind(view.updateHandlerPosition, 
view), 250);
-      view.listenTo(view._asEvents(window), "resize", resizeEvtHandler);
-    },
-
-    /**
-     * Checks whether a spacer column is nessecary. This is the case when 
widths are set on all columns and it's smaller
-     * that the grid element width.
-     * @private
-     */
-    checkSpacerColumn: function () {
-      var view = this;
-      var spacerColumn = _.first(view.columns.where({name: "__spacerColumn"}));
-      var autoColumns = view.columns.filter(function (col) {
-        return col.get("width") == "*" && col.get("name") != "__spacerColumn";
-      });
-
-      // Check if there is a column with auto width, if so, no need to do 
anything
-      if (_.isEmpty(autoColumns)) {
-        var totalWidth = view.columns.reduce(function (memo, num) {
-          var colWidth = (num.get("width") == "*") ? 0 : num.get("width");
-          return memo + colWidth;
-        }, 0);
-        var gridWidth = view.grid.$el.width();
-
-        if (gridWidth > totalWidth) {
-          // The grid is larger than the cumulative column width, we need a 
spacer column
-          if (!spacerColumn) {
-            // Create new column model
-            view.columns.add(view.getSpacerColumn());
-          }
-        }
-        else {
-          // Cumulative column width exceeds grid width, no need for a 
spacerColumn.
-          if (spacerColumn) {
-            view.columns.remove(spacerColumn);
-          }
-        }
-      }
-      else if (spacerColumn) {
-        view.columns.remove(spacerColumn);
-      }
-    },
-
-    /**
-     * Returns a spacer column definition
-     * @returns Object
-     * @private
-     */
-    getSpacerColumn: function() {
-      return Backgrid.Extension.SizeAbleColumns.spacerColumnDefinition;
-    },
-
-    /**
-     * Updates the position of the handlers
-     * @private
-     */
-    updateHandlerPosition: function () {
-      var view = this;
-      _.each(view.headerElements, function (columnEl, index) {
-        var $column = $(columnEl);
-
-        // Get handler for current column and update position
-        view.$el.children().filter("[data-column-index='" + index + "']")
-          .css("left", $column.position().left + $column.outerWidth());
-      });
-    },
-
-    /**
-     * Find the current header elements and stores them
-     */
-    setHeaderElements: function () {
-     var self = this;
-     var rows = self.grid.header.headerRows || [self.grid.header.row];
-     self.headerCells = [];
-
-     // Loop all rows
-     _.each(rows, function (row) {
-       // Loop cells of row
-       _.each(row.cells, function (cell) {
-       var columnModel = self.columns.get({cid: cell.column.cid});
-       if (!_.isEmpty(columnModel)) {
-         self.headerCells.push({
-           $el: cell.$el,
-           el: cell.el,
-           column: columnModel
-         });
-       }
-      });
-     });
-
-     // Sort cells
-     var headerCells = _.sortBy(self.headerCells, function (cell) {
-       return self.columns.indexOf(cell.column);
-     });
-
-     // Filter cells
-     self.headerCells = _.filter(headerCells, function(cell) {
-       return cell.column.get("renderable") === true ||
-       typeof cell.column.get("renderable") === "undefined"
-     });
-
-     self.headerElements = _.map(self.headerCells, function (cell) {
-       return cell.el;
-     });
-               },
-
-    /**
-     * Use Backbone Events listenTo/stopListening with any DOM element
-     *
-     * @param {DOM Element}
-     * @return {Backbone Events style object}
-     **/
-    _asEvents: function(el) {
-      var args;
-      return {
-        on: function(event, handler) {
-          if (args) throw new Error("this is one off wrapper");
-          el.addEventListener(event, handler, false);
-          args = [event, handler];
-        },
-        off: function() {
-          el.removeEventListener.apply(el, args);
-        }
-      };
-    }
-  });
-
-  /**
-   * Sample definition for the spacer column
-   */
-  Backgrid.Extension.SizeAbleColumns.spacerColumnDefinition = {
-    name: "__spacerColumn",
-    label: "",
-    editable: false,
-    cell: Backgrid.StringCell,
-    width: "*",
-    nesting: [],
-    resizeable: false,
-    sortable: false,
-    orderable: false,
-    displayOrder: 9999
-  };
-  return Backgrid;
-}));

http://git-wip-us.apache.org/repos/asf/ambari/blob/955bc660/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid/css/backgrid.css
----------------------------------------------------------------------
diff --git 
a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid/css/backgrid.css
 
b/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid/css/backgrid.css
deleted file mode 100644
index da7b4a4..0000000
--- 
a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid/css/backgrid.css
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
-  backgrid
-  http://github.com/wyuenho/backgrid
-
-  Copyright (c) 2013 Jimmy Yuen Ho Wong and contributors
-  Licensed under the MIT license.
-*/
-
-.backgrid-container {
-  position: relative;
-  display: block;
-  width: 100%;
-  height: 465px;
-  padding: 0;
-  overflow: auto;
-  border: 0;
-}
-
-.backgrid {
-  width: 100%;
-  max-width: 100%;
-  background-color: transparent;
-  border-collapse: collapse;
-  -webkit-border-radius: 4px;
-     -moz-border-radius: 4px;
-          border-radius: 4px;
-}
-
-.backgrid th,
-.backgrid td {
-  display: none;
-  height: 20px;
-  max-width: 250px;
-  padding: 4px 5px;
-  /*overflow: hidden;*/
-  line-height: 20px;
-  text-align: left;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-  vertical-align: middle;
-  border-bottom: 1px solid #DDD;
-}
-
-.backgrid th.renderable,
-.backgrid td.renderable {
-  display: table-cell;
-}
-
-.backgrid th {
-  font-weight: bold;
-  text-align: center;
-}
-
-.backgrid th.sortable a {
-  text-decoration: none;
-  white-space: nowrap;
-  cursor: pointer;
-}
-
-.backgrid thead th {
-  vertical-align: bottom;
-  background-color: #f9f9f9;
-}
-
-.backgrid thead th a {
-  display: block;
-}
-
-.backgrid.backgrid-striped tbody tr:nth-child(even) {
-  background-color: #f9f9f9;
-}
-
-.backgrid tbody tr.empty {
-  font-style: italic;
-  color: gray;
-}
-
-.backgrid tbody tr.empty td {
-  display: inherit;
-  text-align: center;
-}
-
-.backgrid td.editor {
-  padding: 0;
-}
-
-.backgrid td.editor,
-.backgrid tbody tr:nth-child(odd) td.editor {
-  background-color: rgba(82, 168, 236, 0.1);
-  outline: 1px solid rgba(82, 168, 236, 0.8);
-  outline-offset: -1px;
-  -webkit-box-sizing: border-box;
-     -moz-box-sizing: border-box;
-          box-sizing: border-box;
-  -webkit-transition-duration: 200ms;
-     -moz-transition-duration: 200ms;
-       -o-transition-duration: 200ms;
-          transition-duration: 200ms;
-  -webkit-transition-property: width, outline, background-color;
-     -moz-transition-property: width, outline, background-color;
-       -o-transition-property: width, outline, background-color;
-          transition-property: width, outline, background-color;
-  -webkit-transition-timing-function: ease-in-out;
-     -moz-transition-timing-function: ease-in-out;
-       -o-transition-timing-function: ease-in-out;
-          transition-timing-function: ease-in-out;
-}
-
-.backgrid td.editor input[type=text] {
-  display: block;
-  width: 100%;
-  height: 100%;
-  padding: 0 5px;
-  margin: 0;
-  background-color: transparent;
-  border: 0;
-  outline: 0;
-  -webkit-box-shadow: none;
-     -moz-box-shadow: none;
-          box-shadow: none;
-  -webkit-box-sizing: border-box;
-     -moz-box-sizing: border-box;
-          box-sizing: border-box;
-  -webkit-appearance: none;
-     -moz-appearance: none;
-}
-
-.backgrid td.editor input[type=text]::-ms-clear {
-  display: none;
-}
-
-.backgrid td.error,
-.backgrid tbody tr:nth-child(odd) td.error {
-  background-color: rgba(255, 210, 77, 0.1);
-  outline: 1px solid #ffd24d;
-}
-
-.backgrid td.editor :focus,
-.backgrid th.editor :focus {
-  outline: 0;
-}
-
-.backgrid .sort-caret {
-  display: inline-block;
-  width: 0;
-  height: 0;
-  margin-left: 0.3em;
-  border: 0;
-  content: "";
-}
-
-.backgrid .ascending .sort-caret {
-  vertical-align: baseline;
-  border-top: none;
-  border-right: 4px solid transparent;
-  border-bottom: 4px solid #000000;
-  border-left: 4px solid transparent;
-}
-
-.backgrid .descending .sort-caret {
-  vertical-align: super;
-  border-top: 4px solid #000000;
-  border-right: 4px solid transparent;
-  border-bottom: none;
-  border-left: 4px solid transparent;
-}
-
-.backgrid .string-cell,
-.backgrid .uri-cell,
-.backgrid .email-cell,
-.backgrid .string-cell.editor input[type=text],
-.backgrid .uri-cell.editor input[type=text],
-.backgrid .email-cell.editor input[type=text] {
-  text-align: left;
-}
-
-.backgrid .date-cell,
-.backgrid .time-cell,
-.backgrid .datetime-cell,
-.backgrid .number-cell,
-.backgrid .integer-cell,
-.backgrid .percent-cell,
-.backgrid .date-cell.editor input[type=text],
-.backgrid .time-cell.editor input[type=text],
-.backgrid .datetime-cell.editor input[type=text],
-.backgrid .number-cell.editor input[type=text],
-.backgrid .integer-cell.editor input[type=text],
-.backgrid .percent-cell.editor input[type=text] {
-  text-align: right;
-}
-
-.backgrid .boolean-cell,
-.backgrid .boolean-cell.editor input[type=checkbox] {
-  text-align: center;
-}
-
-.backgrid .select-cell {
-  text-align: center;
-}
-
-.backgrid .select-cell.editor {
-  padding: 0;
-}
-
-.backgrid .select-cell.editor select {
-  display: block;
-  width: 100%;
-  height: 28px;
-  padding: 4px 5px;
-  margin: 0;
-  line-height: 28px;
-  vertical-align: middle;
-  background-color: white;
-  border: 0;
-  outline: 0;
-  -webkit-box-shadow: none;
-     -moz-box-shadow: none;
-          box-shadow: none;
-  -webkit-box-sizing: border-box;
-     -moz-box-sizing: border-box;
-          box-sizing: border-box;
-}
-
-.backgrid .select-cell.editor select[multiple] {
-  height: auto;
-}
-
-.backgrid .select-cell.editor :focus {
-  border: 0;
-  outline: 0;
-}
-
-.backgrid .select-cell.editor select::-moz-focus-inner,
-.backgrid .select-cell.editor optgroup::-moz-focus-inner,
-.backgrid .select-cell.editor option::-moz-focus-inner,
-.backgrid .select-cell.editor select::-o-focus-inner,
-.backgrid .select-cell.editor optgroup::-o-focus-inner,
-.backgrid .select-cell.editor option::-o-focus-inner {
-  border: 0;
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/955bc660/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid/css/backgrid.min.css
----------------------------------------------------------------------
diff --git 
a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid/css/backgrid.min.css
 
b/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid/css/backgrid.min.css
deleted file mode 100644
index 764e799..0000000
--- 
a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/bower/backgrid/css/backgrid.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.backgrid-container{position:relative;display:block;width:100%;height:465px;padding:0;overflow:auto;border:0}.backgrid{width:100%;max-width:100%;background-color:transparent;border-collapse:collapse;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.backgrid
 th,.backgrid td{display:none;height:20px;max-width:250px;padding:4px 
5px;overflow:hidden;line-height:20px;text-align:left;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;border-bottom:1px
 solid #DDD}.backgrid th.renderable,.backgrid 
td.renderable{display:table-cell}.backgrid 
th{font-weight:bold;text-align:center}.backgrid th.sortable 
a{text-decoration:none;white-space:nowrap;cursor:pointer}.backgrid thead 
th{vertical-align:bottom;background-color:#f9f9f9}.backgrid thead th 
a{display:block}.backgrid.backgrid-striped tbody 
tr:nth-child(even){background-color:#f9f9f9}.backgrid tbody 
tr.empty{font-style:italic;color:gray}.backgrid tbody tr.empty 
td{display:inherit;text-align:center}.backgrid td.edito
 r{padding:0}.backgrid td.editor,.backgrid tbody tr:nth-child(odd) 
td.editor{background-color:rgba(82,168,236,0.1);outline:1px solid 
rgba(82,168,236,0.8);outline-offset:-1px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition-duration:200ms;-moz-transition-duration:200ms;-o-transition-duration:200ms;transition-duration:200ms;-webkit-transition-property:width,outline,background-color;-moz-transition-property:width,outline,background-color;-o-transition-property:width,outline,background-color;transition-property:width,outline,background-color;-webkit-transition-timing-function:ease-in-out;-moz-transition-timing-function:ease-in-out;-o-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}.backgrid
 td.editor input[type=text]{display:block;width:100%;height:100%;padding:0 
5px;margin:0;background-color:transparent;border:0;outline:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;-webkit-box-sizing:border-b
 
ox;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none}.backgrid
 td.editor input[type=text]::-ms-clear{display:none}.backgrid 
td.error,.backgrid tbody tr:nth-child(odd) 
td.error{background-color:rgba(255,210,77,0.1);outline:1px solid 
#ffd24d}.backgrid td.editor :focus,.backgrid 
th.editor:focus{outline:0}.backgrid 
.sort-caret{display:inline-block;width:0;height:0;margin-left:.3em;border:0;content:""}.backgrid
 .ascending .sort-caret{vertical-align:baseline;border-top:0;border-right:4px 
solid transparent;border-bottom:4px solid #000;border-left:4px solid 
transparent}.backgrid .descending 
.sort-caret{vertical-align:super;border-top:4px solid #000;border-right:4px 
solid transparent;border-bottom:0;border-left:4px solid transparent}.backgrid 
.string-cell,.backgrid .uri-cell,.backgrid .email-cell,.backgrid 
.string-cell.editor input[type=text],.backgrid .uri-cell.editor 
input[type=text],.backgrid .email-cell.editor input[type=text]{text-align:left}.
 backgrid .date-cell,.backgrid .time-cell,.backgrid .datetime-cell,.backgrid 
.number-cell,.backgrid .integer-cell,.backgrid .percent-cell,.backgrid 
.date-cell.editor input[type=text],.backgrid .time-cell.editor 
input[type=text],.backgrid .datetime-cell.editor input[type=text],.backgrid 
.number-cell.editor input[type=text],.backgrid .integer-cell.editor 
input[type=text],.backgrid .percent-cell.editor 
input[type=text]{text-align:right}.backgrid .boolean-cell,.backgrid 
.boolean-cell.editor input[type=checkbox]{text-align:center}.backgrid 
.select-cell{text-align:center}.backgrid 
.select-cell.editor{padding:0}.backgrid .select-cell.editor 
select{display:block;width:100%;height:28px;padding:4px 
5px;margin:0;line-height:28px;vertical-align:middle;background-color:white;border:0;outline:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.backgrid
 .select-cell.editor select[multiple]{height:auto}.backgr
 id .select-cell.editor :focus{border:0;outline:0}.backgrid .select-cell.editor 
select::-moz-focus-inner,.backgrid .select-cell.editor 
optgroup::-moz-focus-inner,.backgrid .select-cell.editor 
option::-moz-focus-inner,.backgrid .select-cell.editor 
select::-o-focus-inner,.backgrid .select-cell.editor 
optgroup::-o-focus-inner,.backgrid .select-cell.editor 
option::-o-focus-inner{border:0}
\ No newline at end of file

Reply via email to