ATLAS-1964 : UI, Support to resize and order columns in Search table
Signed-off-by: kevalbhatt <kbhatt@apache.org>
diff --git a/dashboardv2/gruntfile.js b/dashboardv2/gruntfile.js
index ba9ea0f..451a933 100644
--- a/dashboardv2/gruntfile.js
+++ b/dashboardv2/gruntfile.js
@@ -103,7 +103,8 @@
'query-builder.standalone.min.js': { 'jQuery-QueryBuilder/dist/js': 'jQueryQueryBuilder/js' },
'daterangepicker.js': { 'bootstrap-daterangepicker': 'bootstrap-daterangepicker/js' },
'nv.d3.min.js': { 'nvd3/build': 'nvd3' },
- 'jquery.sparkline.min.js': { 'jquery-sparkline': 'sparkline' }
+ 'jquery.sparkline.min.js': { 'jquery-sparkline': 'sparkline' },
+ 'table-dragger.js': { 'table-dragger/dist': 'table-dragger' }
}
},
@@ -164,6 +165,7 @@
{ 'nvd3': 'nvd3/' }
],
'license.txt': [{ 'backbone.marionette': 'backbone-marionette' }],
+ 'license': [{ 'table-dragger': 'table-dragger' }],
'LICENSE-MIT': [{ 'backbone.paginator': 'backbone-paginator' },
{ 'backgrid': 'backgrid' },
{ 'backgrid-filter': 'backgrid-filter' },
diff --git a/dashboardv2/package.json b/dashboardv2/package.json
index 957e916..9237c35 100644
--- a/dashboardv2/package.json
+++ b/dashboardv2/package.json
@@ -44,6 +44,7 @@
"requirejs": "2.3.3",
"requirejs-text": "2.0.15",
"select2": "4.0.3",
+ "table-dragger": "^1.0.2",
"underscore": "1.8.3"
},
"devDependencies": {
diff --git a/dashboardv2/public/css/scss/search.scss b/dashboardv2/public/css/scss/search.scss
index 26f1505..ade4c33 100644
--- a/dashboardv2/public/css/scss/search.scss
+++ b/dashboardv2/public/css/scss/search.scss
@@ -102,4 +102,23 @@
.btn {
display: block;
}
+}
+
+.gu-mirror {
+ .table-quickMenu {
+ border: none;
+ td {
+ height: 54px;
+ }
+ }
+}
+
+.sindu_dragger {
+ @extend .gu-mirror;
+ .gu-transit {
+ box-shadow: 0px 1px 15px inset;
+ }
+ table {
+ background: rgba(0, 0, 0, 0.18) !important;
+ }
}
\ No newline at end of file
diff --git a/dashboardv2/public/js/main.js b/dashboardv2/public/js/main.js
index f6c0157..7422684 100644
--- a/dashboardv2/public/js/main.js
+++ b/dashboardv2/public/js/main.js
@@ -159,7 +159,8 @@
'query-builder': 'libs/jQueryQueryBuilder/js/query-builder.standalone.min',
'daterangepicker': 'libs/bootstrap-daterangepicker/js/daterangepicker',
'nvd3': 'libs/nvd3/nv.d3.min',
- 'sparkline': 'libs/sparkline/jquery.sparkline.min'
+ 'sparkline': 'libs/sparkline/jquery.sparkline.min',
+ 'table-dragger' : 'libs/table-dragger/table-dragger'
},
/**
diff --git a/dashboardv2/public/js/utils/Utils.js b/dashboardv2/public/js/utils/Utils.js
index 47e9ac2..84851b0 100644
--- a/dashboardv2/public/js/utils/Utils.js
+++ b/dashboardv2/public/js/utils/Utils.js
@@ -448,7 +448,7 @@
titleBoxEl.fadeIn();
}
Utils.findAndMergeRefEntity = function(attributeObject, referredEntities) {
- var megeObject = function(obj) {
+ var mergeObject = function(obj) {
if (obj) {
if (obj.attributes) {
Utils.findAndMergeRefEntity(obj.attributes, referredEntities);
@@ -462,10 +462,10 @@
if (_.isObject(obj)) {
if (_.isArray(obj)) {
_.each(obj, function(value) {
- megeObject(value);
+ mergeObject(value);
});
} else {
- megeObject(obj);
+ mergeObject(obj);
}
}
});
diff --git a/dashboardv2/public/js/views/search/SearchResultLayoutView.js b/dashboardv2/public/js/views/search/SearchResultLayoutView.js
index 2e8c165..7fd1d48 100644
--- a/dashboardv2/public/js/views/search/SearchResultLayoutView.js
+++ b/dashboardv2/public/js/views/search/SearchResultLayoutView.js
@@ -18,6 +18,7 @@
define(['require',
'backbone',
+ 'table-dragger',
'hbs!tmpl/search/SearchResultLayoutView_tmpl',
'modules/Modal',
'models/VEntity',
@@ -29,7 +30,7 @@
'utils/Messages',
'utils/Enums',
'utils/UrlLinks'
-], function(require, Backbone, SearchResultLayoutViewTmpl, Modal, VEntity, Utils, Globals, VSearchList, VCommon, CommonViewFunction, Messages, Enums, UrlLinks) {
+], function(require, Backbone, tableDragger, SearchResultLayoutViewTmpl, Modal, VEntity, Utils, Globals, VSearchList, VCommon, CommonViewFunction, Messages, Enums, UrlLinks) {
'use strict';
var SearchResultLayoutView = Backbone.Marionette.LayoutView.extend(
@@ -129,6 +130,7 @@
this.bradCrumbList = [];
this.arr = [];
this.searchType = 'Basic Search';
+ this.columnOrder = null;
if (this.value) {
if (this.value.searchType && this.value.searchType == 'dsl') {
this.searchType = 'Advanced Search';
@@ -239,7 +241,7 @@
},
gridOpts: {
emptyText: 'No Record found!',
- className: 'table table-hover backgrid table-quickMenu'
+ className: 'table table-hover backgrid table-quickMenu colSort'
},
filterOpts: {},
paginatorOpts: {}
@@ -494,7 +496,7 @@
},
setPositions: function() {
_.each(this.models, function(model, index) {
- model.set("displayOrder", index + 1, { silent: true });
+ model.set("displayOrder", (that.columnOrder == null ? index : that.columnOrder[model.get('label')]) + 1, { silent: true });
});
return this;
}
@@ -511,9 +513,19 @@
that.ui.containerCheckBox.hide();
}
that.$(".ellipsis .inputAssignTag").hide();
+ tableDragger(document.querySelector(".colSort")).on('drop', function(from, to, el) {
+ that.columnOrder = that.getColumnOrder(el.querySelectorAll('th'));
+ });
that.checkTableFetch();
});
},
+ getColumnOrder: function(arr) {
+ var obj = {};
+ for (var i = 0; i < arr.length; ++i) {
+ obj[(arr[i].innerText == "" ? 'Select' : arr[i].innerText)] = i;
+ }
+ return obj;
+ },
checkTableFetch: function() {
if (this.asyncFetchCounter <= 0) {
this.hideLoader();