You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@griffin.apache.org by gu...@apache.org on 2017/06/27 06:31:52 UTC
incubator-griffin git commit: Fix bugs
Repository: incubator-griffin
Updated Branches:
refs/heads/master 0132a58d4 -> 3daf27b86
Fix bugs
Author: Yang <xi...@ebay.com>
Closes #94 from RachelYang2/fix_bugs.
Project: http://git-wip-us.apache.org/repos/asf/incubator-griffin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-griffin/commit/3daf27b8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-griffin/tree/3daf27b8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-griffin/diff/3daf27b8
Branch: refs/heads/master
Commit: 3daf27b86098b6dbdf4d452ea51f22c98535069e
Parents: 0132a58
Author: Yang <xi...@ebay.com>
Authored: Tue Jun 27 14:31:46 2017 +0800
Committer: Lionel Liu <bh...@163.com>
Committed: Tue Jun 27 14:31:46 2017 +0800
----------------------------------------------------------------------
ui/index.html | 16 ++++++------
ui/js/controllers/bigChart-ctrl.js | 32 +++++++++++++++---------
ui/js/controllers/createdataasset-ctrl.js | 10 ++++----
ui/js/controllers/createjob-ac-ctrl.js | 17 +++++++------
ui/js/controllers/createrule-ac-ctrl.js | 29 ++++++++++++----------
ui/js/controllers/dataassets-ctrl.js | 18 ++++++++------
ui/js/controllers/detail-ctrl.js | 24 ++++++++++++------
ui/js/controllers/editdataasset-ctrl.js | 9 ++++---
ui/js/controllers/footer-ctrl.js | 8 +++---
ui/js/controllers/health-ctrl.js | 22 ++++++++---------
ui/js/controllers/job-ctrl.js | 26 +++++++++++---------
ui/js/controllers/metrics-ctrl.js | 10 +++++---
ui/js/controllers/rule-ctrl.js | 34 ++++++++++++++------------
ui/js/controllers/sidebar-ctrl.js | 18 +++++++-------
ui/js/controllers/viewrule-ctrl.js | 16 +++++++-----
ui/js/services/bark-chart.js | 2 +-
ui/js/services/services.js | 4 +--
ui/pages/dataassets/dataassets.html | 2 +-
ui/pages/jobs/createjob-ac.html | 14 +++++++----
ui/pages/jobs/jobs.html | 2 +-
ui/pages/measures/measures.html | 6 ++---
ui/sidebar.html | 8 +++---
22 files changed, 188 insertions(+), 139 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/3daf27b8/ui/index.html
----------------------------------------------------------------------
diff --git a/ui/index.html b/ui/index.html
index 3b10ae7..aacb9e9 100644
--- a/ui/index.html
+++ b/ui/index.html
@@ -66,26 +66,26 @@ limitations under the License.
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
- <a href="#/" class="navbar-brand" style="padding-top:5px;padding-bottom:0;"><img src="/img/logo.gif" title="Data Quality Service" style="max-height:40px;"/></a>
+ <a href="#!/" class="navbar-brand" style="padding-top:5px;padding-bottom:0;"><img src="/img/logo.gif" title="Data Quality Service" style="max-height:40px;"/></a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="navbar-collapse">
<ul class="nav navbar-nav">
- <li ng-class="{active:isActive('/health')}"><a href="#/health"><i class="icon-home icon-white"></i> Health</a></li>
- <li ng-class="{active:isActive('/measures') || isActive('/createrule')}"><a href="#/measures"><i class="icon-folder-open icon-white"></i> Measures</a></li>
+ <li ng-class="{active:isActive('/health')}"><a href="#!/health"><i class="icon-home icon-white"></i> Health</a></li>
+ <li ng-class="{active:isActive('/measures') || isActive('/createrule')}"><a href="#!/measures"><i class="icon-folder-open icon-white"></i> Measures</a></li>
<!-- <li><a href="#/undercons"><i class="icon-calendar icon-white"></i> Data Profiling</a></li> -->
- <li ng-class="{active:isActive('/jobs') || isActive('/jobs')}"><a href="#/jobs"><i class="icon-calendar icon-white"></i> Jobs</a></li>
+ <li ng-class="{active:isActive('/jobs') || isActive('/jobs')}"><a href="#!/jobs"><i class="icon-calendar icon-white"></i> Jobs</a></li>
- <li ng-class="{active:isActive('/mydashboard') || isActive('/subscribemodel')}"><a href="#/mydashboard"><i class="icon-calendar icon-white"></i> My Dashboard</a></li>
+ <li ng-class="{active:isActive('/mydashboard') || isActive('/subscribemodel')}"><a href="#!/mydashboard"><i class="icon-calendar icon-white"></i> My Dashboard</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">{{fullName}} <i class="fa fa-user fa-fw"></i><span class="caret"></span></a>
<ul class="dropdown-menu dropdown-user">
- <li><a href="#/undercons"><i class="fa fa-user fa-fw"></i> User Profile</a></li>
- <li><a href="#/undercons"><i class="fa fa-gear fa-fw"></i> Settings</a></li>
+ <li><a href="#!/undercons"><i class="fa fa-user fa-fw"></i> User Profile</a></li>
+ <li><a href="#!/undercons"><i class="fa fa-gear fa-fw"></i> Settings</a></li>
<li class="divider"></li>
<li><a href="/apidocs/index.html" target="_blank"><i class="fa fa-book fa-fw"></i> API DOCs</a></li>
<li><a href="https://github.com/eBay/griffin/blob/master/griffin-doc/userguide.md" target="_blank"><i class="fa fa-question-circle fa-fw"></i> User Guide</a></li>
@@ -137,7 +137,7 @@ limitations under the License.
<p ng-show="!notifications">{{timestamp|date:'short'}} - Welcome <label>{{fullName}}</label>!</p>
<p ng-repeat="r in notifications">
{{r.timestamp|date:'short'}} - <label>{{r.owner}}</label> {{r.operation}}d a {{r.target}} named
- <a ng-if="r.target=='model'" href="#/viewrule/{{r.name}}">{{r.name}}</a>
+ <a ng-if="r.target=='model'" href="#!/viewrule/{{r.name}}">{{r.name}}</a>
<label ng-if="r.target=='dataasset'">"{{r.name}}"</label>
</p>
</div><!-- /row -->
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/3daf27b8/ui/js/controllers/bigChart-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/bigChart-ctrl.js b/ui/js/controllers/bigChart-ctrl.js
index 4558142..6b986ef 100644
--- a/ui/js/controllers/bigChart-ctrl.js
+++ b/ui/js/controllers/bigChart-ctrl.js
@@ -22,7 +22,8 @@ define(['./module'], function(controllers) {
function pageInit() {
resizeBigChart();
- $scope.bigChart = echarts.init($('#bigChartDiv').get(0), 'dark');
+ // $scope.bigChart = echarts.init($('#bigChartDiv').get(0), 'dark');
+ $rootScope.bigChart = echarts.init($('#bigChartDiv').get(0), 'dark');
}
function resizeBigChart() {
@@ -33,8 +34,8 @@ define(['./module'], function(controllers) {
$scope.closeBigChart = function(){
console.log('close big chart!');
// $('#bigChartContainer').hide();
- history.back();
- // $location.path('/health');
+ // history.back();
+ $location.path('/health');
// $('#mainWindow').show();
}
@@ -45,16 +46,25 @@ define(['./module'], function(controllers) {
$(window).resize(function() {
console.log('big chart resize');
resizeBigChart();
- $scope.bigChart.resize();
+ $rootScope.bigChart.resize();
});
- $rootScope.showBigChart = function(option) {
- $scope.selectedModel = option.title.text;
- $('#bigChartContainer').show();
- // $('#mainWindow').hide();
- $scope.bigChart.clear();
- $scope.bigChart.setOption(option);
- }
+ // $rootScope.showBigChart = function(option) {
+ // $scope.selectedModel = option.title.text;
+ // $('#bigChartContainer').show();
+ // // $('#mainWindow').hide();
+ // $scope.bigChart.clear();
+ // $scope.bigChart.setOption(option);
+ // }
+ if($rootScope.showBigChart==undefined){
+ $rootScope.showBigChart = function(option) {
+ $scope.selectedModel = option.title.text;
+ $('#bigChartContainer').show();
+ // $('#mainWindow').hide();
+ $rootScope.bigChart.clear();
+ $rootScope.bigChart.setOption(option);
+ }
+ }
}]);
});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/3daf27b8/ui/js/controllers/createdataasset-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/createdataasset-ctrl.js b/ui/js/controllers/createdataasset-ctrl.js
index a92a844..25833fa 100644
--- a/ui/js/controllers/createdataasset-ctrl.js
+++ b/ui/js/controllers/createdataasset-ctrl.js
@@ -30,8 +30,8 @@ define(['./module'], function (controllers) {
// $scope.regex = new RegExp('^\\/(?:[0-9a-zA-Z\\_\\-\\.]+\\/?)+');
var allModels = $config.uri.dbtree;
- $http.get(allModels).success(function(data) {
- $scope.platformOptions = data;
+ $http.get(allModels).then(function successCallback(data) {
+ $scope.platformOptions = data.data;
});
//$scope.platformOptions = [{"id":null,"platform":"Teradata","systems":[{"id":null,"name":"gdw_tables","assets":[{"id":108,"name":"dw_bid"},{"id":109,"name":"dw_trans"}]}]},{"id":null,"platform":"Apollo","systems":[{"id":null,"name":"Sojourner","assets":[{"id":22,"name":"ubi_event"}]},{"id":null,"name":"SiteSpeed","assets":[{"id":21,"name":"sitespeed"}]},{"id":null,"name":"PDS","assets":[{"id":20,"name":"last_categories_accessed"}]},{"id":null,"name":"Bullseye","assets":[{"id":1,"name":"be_view_event_queue"},{"id":2,"name":"be_search_event_queue"},{"id":3,"name":"be_item_watch_event_queue"},{"id":4,"name":"be_bid_event_queue"},{"id":5,"name":"be_transaction_event_queue"},{"id":6,"name":"dmg"},{"id":7,"name":"loyaltysgmnt"},{"id":8,"name":"cust_dna_cat_score"},{"id":9,"name":"badge_interest"},{"id":10,"name":"cust_dna_vq_feed"},{"id":11,"name":"user_dna"},{"id":12,"name":"adchoice_user_pref"},{"id":13,"name":"cust_dna_vq_cat_feed"},{"id":14,"name":"cpcp_dealsv17"},{"id":15,"n
ame":"bbe_tbl_trx"},{"id":17,"name":"bbe_tbl_neg"},{"id":16,"name":"bbe_tbl_neu"},{"id":19,"name":"rtm_segment_dict"},{"id":18,"name":"bbe_tbl_pos"}]}]}];
@@ -152,7 +152,7 @@ define(['./module'], function (controllers) {
'owner' : $scope.form.basic.owner
}
- $http.post($config.uri.adddataasset, msg).success(function() {
+ $http.post($config.uri.adddataasset, msg).then(function successCallback() {
$('#confirm-pu').on('hidden.bs.modal', function(e) {
$('#confirm-pu').off('hidden.bs.modal');
$location.path('/dataassets');
@@ -161,8 +161,8 @@ define(['./module'], function (controllers) {
$('#confirm-pu').modal('hide');
- }).error(function(data){
- toaster.pop('error', 'Save data asset failed, please try again!', data.message);
+ },function errorCallback(response) {
+ toaster.pop('error', 'Error when creating dataasset', response.message);
});
},
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/3daf27b8/ui/js/controllers/createjob-ac-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/createjob-ac-ctrl.js b/ui/js/controllers/createjob-ac-ctrl.js
index 14f11ad..ff231dc 100644
--- a/ui/js/controllers/createjob-ac-ctrl.js
+++ b/ui/js/controllers/createjob-ac-ctrl.js
@@ -39,8 +39,8 @@ define(['./module'], function(controllers) {
// $('.formStep').css({height: 800});
});
var getMeasureUrl = $config.uri.getMeasuresByOwner+$scope.ntAccount;
- $http.get(getMeasureUrl).success(function(res){
- angular.forEach(res,function(measure){
+ $http.get(getMeasureUrl).then(function successCallback(res){
+ angular.forEach(res.data,function(measure){
$scope.Measures.push(measure);
})
console.log($scope.Measures);
@@ -141,7 +141,7 @@ define(['./module'], function(controllers) {
var newJob = $config.uri.addJobs + this.data.groupName + '/' + jobName + '/' + $scope.Measures[$scope.measure];
console.log(newJob);
console.log(this.data);
- $http.post(newJob, this.data).success(function(data) {
+ $http.post(newJob, this.data).then(function successCallback(data) {
// if(data.status=='0')
// {
console.log(data);
@@ -162,10 +162,13 @@ define(['./module'], function(controllers) {
// errorMessage(0, data.result);
// }
- }).error(function(data){
- // errorMessage(0, 'Save model failed, please try again!');
- toaster.pop('error', 'Save job failed, please try again!', data.message);
- });
+ // }).error(function(data){
+ // // errorMessage(0, 'Save model failed, please try again!');
+ // toaster.pop('error', 'Save job failed, please try again!', data.message);
+ // });
+ },function errorCallback(response) {
+ toaster.pop('error', 'Error when creating job', response.message);
+ });
},
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/3daf27b8/ui/js/controllers/createrule-ac-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/createrule-ac-ctrl.js b/ui/js/controllers/createrule-ac-ctrl.js
index fb30f80..97d33e0 100644
--- a/ui/js/controllers/createrule-ac-ctrl.js
+++ b/ui/js/controllers/createrule-ac-ctrl.js
@@ -33,10 +33,10 @@ define(['./module'], function(controllers) {
var dbtreeUrl = $config.uri.dbtree;
var schemaDefinitionUrl = $config.uri.schemadefinition;
- $http.get(dbtreeUrl).success(function(data) {
+ $http.get(dbtreeUrl).then(function successCallback(data) {
var dbList = [];
- if (data) {
- angular.forEach(data,function(db,key){
+ if (data.data) {
+ angular.forEach(data.data,function(db,key){
console.log(db);
var dbNode = {
name: key,
@@ -88,9 +88,9 @@ define(['./module'], function(controllers) {
// $scope.schemaCollection = null;
if (newValue) {
- $http.get(schemaDefinitionUrl+ '/' + newValue.parent[0].dbName+'/table/'+newValue.name).success(function(data) {
+ $http.get(schemaDefinitionUrl+ '/' + newValue.parent[0].dbName+'/table/'+newValue.name).then(function successCallback(data) {
console.log(data);
- $scope.schemaCollection = data.sd.cols;
+ $scope.schemaCollection = data.data.sd.cols;
console.log($scope.schemaCollection);
});
}
@@ -144,9 +144,9 @@ define(['./module'], function(controllers) {
//
// }
if (newValue) {
- $http.get(schemaDefinitionUrl + '/' + newValue.parent[0].dbName+'/table/'+newValue.name).success(function(data) {
+ $http.get(schemaDefinitionUrl + '/' + newValue.parent[0].dbName+'/table/'+newValue.name).then(function successCallback(data) {
console.log(data);
- $scope.schemaCollectionTarget = data.sd.cols;
+ $scope.schemaCollectionTarget = data.data.sd.cols;
console.log($scope.schemaCollectionTarget);
});
}
@@ -458,11 +458,11 @@ define(['./module'], function(controllers) {
console.log(JSON.stringify($scope.form.data));
var newModel = $config.uri.addModels;
- $http.post(newModel, this.data).success(function(data) {
+ $http.post(newModel, this.data).then(function successCallback(data) {
// if(data.status=='0')
// {
console.log(data);
- if(data=='CREATE_MEASURE_FAIL_DUPLICATE'){
+ if(data.data=='CREATE_MEASURE_FAIL_DUPLICATE'){
toaster.pop('error', 'Please modify the name of measure, because there is already a same measure in database ', data.message);
return;
}
@@ -479,10 +479,13 @@ define(['./module'], function(controllers) {
// errorMessage(0, data.result);
// }
- }).error(function(data){
- // errorMessage(0, 'Save model failed, please try again!');
- toaster.pop('error', 'Save measure failed, please try again!', data.message);
- });
+ // }).error(function(data){
+ // // errorMessage(0, 'Save model failed, please try again!');
+ // toaster.pop('error', 'Save measure failed, please try again!', data.message);
+ // });
+ },function errorCallback(response) {
+ toaster.pop('error', 'Save measure failed, please try again!', response.message);
+ });
},
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/3daf27b8/ui/js/controllers/dataassets-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/dataassets-ctrl.js b/ui/js/controllers/dataassets-ctrl.js
index 4bd497e..08b4194 100644
--- a/ui/js/controllers/dataassets-ctrl.js
+++ b/ui/js/controllers/dataassets-ctrl.js
@@ -31,14 +31,14 @@ define(['./module'], function (controllers) {
number = tableState.pagination.number || 10;
if(start == 0 && !$scope.rowCollection){
- $http.get(allModels).success(function(data) {
- if(data){
+ $http.get(allModels).then(function successCallback(data) {
+ if(data.data){
// data.sort(function(a,b){
// return -(a.timestamp - b.timestamp);
// });
}
originalRowCollection = new Array();
- angular.forEach(data,function(db){
+ angular.forEach(data.data,function(db){
angular.forEach(db,function(table){
originalRowCollection.push(table);
});
@@ -106,7 +106,7 @@ define(['./module'], function (controllers) {
};
$scope.sendDeleteRequest = function() {
- $http.delete($config.uri.deletedataasset+'/'+$scope.selectedRow._id).success(function(data){
+ $http.delete($config.uri.deletedataasset+'/'+$scope.selectedRow._id).then(function successCallback(data){
$('#confirm-delete').modal('hide');
var index = $scope.rowCollection.indexOf($scope.selectedRow);
@@ -115,9 +115,13 @@ define(['./module'], function (controllers) {
index = $scope.displayed.indexOf($scope.selectedRow);
$scope.displayed.splice(index, 1);
- }).error(function(data, status){
- toaster.pop('error', 'Error when deleting record', data);
- });
+ // }).error(function(data, status){
+ // toaster.pop('error', 'Error when deleting record', data);
+ // });
+ },function errorCallback(response) {
+ toaster.pop('error', 'Error when deleting record', response.message);
+ });
+
}
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/3daf27b8/ui/js/controllers/detail-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/detail-ctrl.js b/ui/js/controllers/detail-ctrl.js
index acb798b..6c56cee 100644
--- a/ui/js/controllers/detail-ctrl.js
+++ b/ui/js/controllers/detail-ctrl.js
@@ -22,20 +22,30 @@ define(['./module'], function (controllers) {
var echarts = require('echarts');
var formatUtil = echarts.format;
+ if($rootScope.showBigChart==undefined)
+ {
+ $rootScope.showBigChart = function(option) {
+ $scope.selectedModel = option.title.text;
+ $('#bigChartContainer').show();
+ // $('#mainWindow').hide();
+ $rootScope.bigChart.clear();
+ $rootScope.bigChart.setOption(option);
+ }
+ }
var showBig = function(metricName){
var metricDetailUrl = $config.uri.dashboard;
- // var metricDetailUrl = 'data.json';
- $http.post(metricDetailUrl, {"query": { "bool":{"filter":[ {"term" : {"name": metricName }}]}}, "sort": [{"tmst": {"order": "asc"}}],"size":1000}).success(function(data) {
- // $http.get(metricDetailUrl).success(function (data) {
+// var metricDetailUrl = 'data.json';
+ $http.post(metricDetailUrl, {"query": { "bool":{"filter":[ {"term" : {"name": metricName }}]}}, "sort": [{"tmst": {"order": "asc"}}],"size":1000}).then(function successCallback(data) {
+// $http.get(metricDetailUrl).then(function successCallback(data) {
// body...
var metric = new Object();
- metric.name = data.hits.hits[0]._source.name;
- metric.timestamp = data.hits.hits[data.hits.hits.length-1]._source.tmst;
- metric.dq = data.hits.hits[data.hits.hits.length-1]._source.matched/data.hits.hits[data.hits.hits.length-1]._source.matched*100;
+ metric.name = data.data.hits.hits[0]._source.name;
+ metric.timestamp = data.data.hits.hits[data.data.hits.hits.length-1]._source.tmst;
+ metric.dq = data.data.hits.hits[data.data.hits.hits.length-1]._source.matched/data.data.hits.hits[data.data.hits.hits.length-1]._source.matched*100;
metric.details = new Array();
- angular.forEach(data.hits.hits,function(point){
+ angular.forEach(data.data.hits.hits,function(point){
metric.details.push(point);
})
$rootScope.showBigChart($barkChart.getOptionBig(metric));
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/3daf27b8/ui/js/controllers/editdataasset-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/editdataasset-ctrl.js b/ui/js/controllers/editdataasset-ctrl.js
index 858d07f..971ac3a 100644
--- a/ui/js/controllers/editdataasset-ctrl.js
+++ b/ui/js/controllers/editdataasset-ctrl.js
@@ -57,7 +57,8 @@ define(['./module'], function (controllers) {
var assetUri = $config.uri.getdataasset + '/' + $scope.assetId;
$scope.getDataAsset = function(){
- $http.get(assetUri).success(function(data) {
+ $http.get(assetUri).then(function successCallback(data) {
+ data = data.data;
$scope.form.basic.assetName = data.assetName;
$scope.form.basic.path = data.assetHDFSPath;
$scope.form.basic.type = $scope.assetTypeOptions.indexOf(data.assetType).toString();
@@ -187,14 +188,14 @@ define(['./module'], function (controllers) {
'partitions' : $scope.form.basic.partitions
}
- $http.put($config.uri.updatedataasset, msg).success(function(data) {
- if(data.result=='success')
+ $http.put($config.uri.updatedataasset, msg).then(function successCallback(data) {
+ if(data.data.result=='success')
{
$('#confirm-pu').modal('hide');
}
else
{
- errorMessage(0, data.result);
+ errorMessage(0, data.data.result);
}
});
},
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/3daf27b8/ui/js/controllers/footer-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/footer-ctrl.js b/ui/js/controllers/footer-ctrl.js
index 2788e98..b275a07 100644
--- a/ui/js/controllers/footer-ctrl.js
+++ b/ui/js/controllers/footer-ctrl.js
@@ -47,10 +47,10 @@ define(['./module'], function (controllers) {
function retrieveNotifications(){
var notificationUrl = $config.uri.getnotifications;
- $http.get(notificationUrl).success(function(data) {
- // $scope.allNotifications = data.slice(0, 15);
- $scope.notifications = data.slice(0, 3);
- });
+ // $http.get(notificationUrl).success(function(data) {
+ // // $scope.allNotifications = data.slice(0, 15);
+ // $scope.notifications = data.slice(0, 3);
+ // });
}
}]);
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/3daf27b8/ui/js/controllers/health-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/health-ctrl.js b/ui/js/controllers/health-ctrl.js
index 83d1bbb..240f647 100644
--- a/ui/js/controllers/health-ctrl.js
+++ b/ui/js/controllers/health-ctrl.js
@@ -31,28 +31,28 @@ define(['./module'], function (controllers) {
$scope.$emit('initReq');
// var url = $config.uri.heatmap;
- var url_dashboard = $config.uri.dashboard ;
- // var url_dashboard = 'data.json';
- var url_organization = $config.uri.organization;
- // var url_organization = 'org.json';
- $http.get(url_organization).success(function(res){
+ var url_dashboard = $config.uri.dashboard ;
+// var url_dashboard = 'data.json';
+ var url_organization = $config.uri.organization;
+// var url_organization = 'org.json';
+ $http.get(url_organization).then(function successCallback(res){
var orgNode = null;
- angular.forEach(res, function(value,key) {
+ angular.forEach(res.data, function(value,key) {
orgNode = new Object();
$scope.orgs.push(orgNode);
orgNode.name = key;
orgNode.assetMap = value;
});
$scope.originalOrgs = angular.copy($scope.orgs);
- $http.post(url_dashboard, {"query": {"match_all":{}}, "sort": [{"tmst": {"order": "asc"}}],"size":1000}).success(function(data) {
-// $http.get(url_dashboard).success(function(data){
- angular.forEach(data.hits.hits, function(sys) {
+ $http.post(url_dashboard, {"query": {"match_all":{}}, "sort": [{"tmst": {"order": "asc"}}],"size":1000}).then(function successCallback(data) {
+// $http.get(url_dashboard).then(function successCallback(data){
+ angular.forEach(data.data.hits.hits, function(sys) {
var chartData = sys._source;
chartData.sort = function(a,b){
return a.tmst - b.tmst;
}
});
- $scope.originalData = angular.copy(data);
+ $scope.originalData = angular.copy(data.data);
$scope.myData = angular.copy($scope.originalData.hits.hits);
$scope.metricName = [];
@@ -231,7 +231,7 @@ define(['./module'], function (controllers) {
// param.event.event.preventDefault();
if (param.data.name) {
// $location.path('/detailed/'+param.data.name);
- window.location.href = '/#/detailed/'+param.data.name;
+ window.location.href = '/#!/detailed/'+param.data.name;
}
});
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/3daf27b8/ui/js/controllers/job-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/job-ctrl.js b/ui/js/controllers/job-ctrl.js
index 4c185b1..4472b3a 100644
--- a/ui/js/controllers/job-ctrl.js
+++ b/ui/js/controllers/job-ctrl.js
@@ -34,14 +34,14 @@ define(['./module'], function (controllers) {
number = tableState.pagination.number || 10;
if(start == 0 && !$scope.rowCollection){
- $http.get(allJobs).success(function(data) {
- data.sort(function(a,b){
+ $http.get(allJobs).then(function successCallback(data) {
+ data.data.sort(function(a,b){
var dateA = Date.parse(new Date(a.jobName.split('-')[3]))/1000;
var dateB = Date.parse(new Date(b.jobName.split('-')[3]))/1000;
return -(dateA-dateB);
});
- originalRowCollection = angular.copy(data);
- $scope.rowCollection = angular.copy(data);
+ originalRowCollection = angular.copy(data.data);
+ $scope.rowCollection = angular.copy(data.data);
$scope.displayed = $scope.rowCollection.slice(start, start+number);
tableState.pagination.numberOfPages = Math.ceil($scope.rowCollection.length/number);
@@ -56,9 +56,10 @@ define(['./module'], function (controllers) {
$('#'+p_index+'-'+number).addClass('page-active');
$('#'+p_index+'-'+number).siblings().removeClass('page-active');
$scope.currentJob = row;
+
var allInstances = $config.uri.getInstances + 'BA/' + row.jobName +'/0/100';
- $http.get(allInstances).success(function(data){
- row.instances = data;
+ $http.get(allInstances).then(function successCallback(data){
+ row.instances = data.data;
row.pageCount = new Array();
for(var i = 0;i<Math.ceil(row.instances.length/10);i++){
row.pageCount.push(i);
@@ -67,9 +68,9 @@ define(['./module'], function (controllers) {
$('#'+p_index+'-'+number).siblings().removeClass('page-active');
});
var url = $config.uri.getInstances + 'BA/' + row.jobName + '/'+number+'/10';
- $http.get(url).success(function(data){
+ $http.get(url).then(function successCallback(data){
// row.instances = data;
- row.currentInstances = data;
+ row.currentInstances = data.data;
$('#'+p_index+'-'+number).addClass('page-active');
$('#'+p_index+'-'+number).siblings().removeClass('page-active');
});
@@ -97,7 +98,7 @@ define(['./module'], function (controllers) {
$scope.confirmDelete = function(){
var row = $scope.deletedBriefRow;
var deleteModelUrl = $config.uri.deleteJob + row.groupName+'/'+row.jobName;
- $http.delete(deleteModelUrl).success(function(){
+ $http.delete(deleteModelUrl).then(function successCallback(){
var index = $scope.rowCollection.indexOf(row);
$scope.rowCollection.splice(index, 1);
@@ -107,8 +108,11 @@ define(['./module'], function (controllers) {
$('#deleteJobConfirmation').modal('hide');
- }).error(function(data, status){
- toaster.pop('error', 'Error when deleting record', data);
+ // }).error(function(data, status){
+ // toaster.pop('error', 'Error when deleting record', data);
+ // });
+ },function errorCallback(response) {
+ toaster.pop('error', 'Error when deleting record', response.message);
});
}
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/3daf27b8/ui/js/controllers/metrics-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/metrics-ctrl.js b/ui/js/controllers/metrics-ctrl.js
index 4637358..820e496 100644
--- a/ui/js/controllers/metrics-ctrl.js
+++ b/ui/js/controllers/metrics-ctrl.js
@@ -29,8 +29,9 @@ define(['./module'], function(controllers) {
var url_dashboard = $config.uri.dashboard ;
var url_organization = $config.uri.organization;
- $http.get(url_organization).success(function(res){
+ $http.get(url_organization).then(function successCallback(res){
var orgNode = null;
+ res = res.data;
angular.forEach(res, function(value,key) {
orgNode = new Object();
$scope.orgs.push(orgNode);
@@ -38,7 +39,9 @@ define(['./module'], function(controllers) {
orgNode.assetMap = value;
});
$scope.originalOrgs = angular.copy($scope.orgs);
- $http.post(url_dashboard, {"query": {"match_all":{}}, "sort": [{"tmst": {"order": "asc"}}],"size":1000}).success(function(data) {
+// $http.get(url_dashboard).then(function successCallback(data){
+ $http.post(url_dashboard, {"query": {"match_all":{}}, "sort": [{"tmst": {"order": "asc"}}],"size":1000}).then(function successCallback(data) {
+ data = data.data;
angular.forEach(data.hits.hits, function(sys) {
var chartData = sys._source;
chartData.sort = function(a,b){
@@ -189,7 +192,8 @@ define(['./module'], function(controllers) {
/*click the chart to be bigger*/
$scope.showBig = function(t){
- $rootScope.showBigChart($barkChart.getOptionBig(t));
+ // $rootScope.showBigChart($barkChart.getOptionBig(t));
+ window.location.href = '/#!/detailed/'+t.name;
}
$scope.getSample = function(item) {
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/3daf27b8/ui/js/controllers/rule-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/rule-ctrl.js b/ui/js/controllers/rule-ctrl.js
index 0242528..682e364 100644
--- a/ui/js/controllers/rule-ctrl.js
+++ b/ui/js/controllers/rule-ctrl.js
@@ -37,12 +37,12 @@ define(['./module'], function (controllers) {
number = tableState.pagination.number || 10;
if(start == 0 && !$scope.rowCollection){
- $http.get(allModels).success(function(data) {
- data.sort(function(a,b){
+ $http.get(allModels).then(function successCallback(data) {
+ data.data.sort(function(a,b){
return -(a.createDate - b.createDate);
});
- originalRowCollection = angular.copy(data);
- $scope.rowCollection = angular.copy(data);
+ originalRowCollection = angular.copy(data.data);
+ $scope.rowCollection = angular.copy(data.data);
$scope.displayed = $scope.rowCollection.slice(start, start+number);
tableState.pagination.numberOfPages = Math.ceil($scope.rowCollection.length/number);
@@ -97,8 +97,8 @@ define(['./module'], function (controllers) {
$scope.remove = function remove(row) {
var getModelUrl = $config.uri.getModel + '/' +row.name;
- $http.get(getModelUrl).success(function(data){
- $scope.deletedRow = data;
+ $http.get(getModelUrl).then(function successCallback(data){
+ $scope.deletedRow = data.data;
$scope.sourceTable = $scope.deletedRow.source.config["table.name"];
$scope.targetTable = $scope.deletedRow.target.config["table.name"];
});
@@ -110,18 +110,20 @@ define(['./module'], function (controllers) {
$scope.confirmDelete = function(){
var row = $scope.deletedBriefRow;
var deleteModelUrl = $config.uri.deleteModel + '/' + row.name;
- $http.delete(deleteModelUrl).success(function(){
-
- var index = $scope.rowCollection.indexOf(row);
- $scope.rowCollection.splice(index, 1);
-
- index = $scope.displayed.indexOf(row);
- $scope.displayed.splice(index, 1);
-
+ $http.delete(deleteModelUrl).then(function successCallback(data){
+ if(data.data=="DELETE_MEASURE_BY_NAME_SUCCESS"){
+ var index = $scope.rowCollection.indexOf(row);
+ $scope.rowCollection.splice(index, 1);
+ index = $scope.displayed.indexOf(row);
+ $scope.displayed.splice(index, 1);
+ }
+ else {
+ toaster.pop('error', 'Error when deleting measure', data.data);
+ }
$('#deleteConfirmation').modal('hide');
- }).error(function(data, status){
- toaster.pop('error', 'Error when deleting record', data);
+ },function errorCallback(response) {
+ toaster.pop('error', 'Error when deleting measure', response.message);
});
}
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/3daf27b8/ui/js/controllers/sidebar-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/sidebar-ctrl.js b/ui/js/controllers/sidebar-ctrl.js
index e64c6ea..68f67a0 100644
--- a/ui/js/controllers/sidebar-ctrl.js
+++ b/ui/js/controllers/sidebar-ctrl.js
@@ -52,7 +52,7 @@ define(['./module'], function(controllers) {
$('#'+chartId).unbind('click');
$('#'+chartId).click(function(e) {
- window.location.href = '/#/detailed/'+$scope.finalData[parentIndex].metrics[index].name;
+ window.location.href = '/#!/detailed/'+$scope.finalData[parentIndex].metrics[index].name;
});
};
@@ -62,11 +62,11 @@ define(['./module'], function(controllers) {
}
function sideBarList(sysName){
- var url_organization = $config.uri.organization;
- // var url_organization = 'org.json';
- $http.get(url_organization).success(function(res){
+ var url_organization = $config.uri.organization;
+// var url_organization = 'org.json';
+ $http.get(url_organization).then(function successCallback(res){
var orgNode = null;
- angular.forEach(res, function(value,key) {
+ angular.forEach(res.data, function(value,key) {
orgNode = new Object();
$scope.orgs.push(orgNode);
orgNode.name = key;
@@ -74,15 +74,15 @@ define(['./module'], function(controllers) {
});
$scope.originalOrg = angular.copy($scope.orgs);
var url_briefmetrics = $config.uri.dashboard;
- $http.post(url_briefmetrics, {"query": {"match_all":{}}, "sort": [{"tmst": {"order": "asc"}}],"size":1000}).success(function(data) {
- // $http.get('data.json').success(function(data){
- angular.forEach(data.hits.hits, function(sys) {
+ $http.post(url_briefmetrics, {"query": {"match_all":{}}, "sort": [{"tmst": {"order": "asc"}}],"size":1000}).then(function successCallback(data) {
+// $http.get('data.json').then(function successCallback(data){
+ angular.forEach(data.data.hits.hits, function(sys) {
var chartData = sys._source;
chartData.sort = function(a,b){
return a.tmst - b.tmst;
}
});
- $scope.originalData = angular.copy(data);
+ $scope.originalData = angular.copy(data.data);
$scope.myData = angular.copy($scope.originalData.hits.hits);
$scope.metricName = [];
for(var i = 0;i<$scope.myData.length;i++){
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/3daf27b8/ui/js/controllers/viewrule-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/viewrule-ctrl.js b/ui/js/controllers/viewrule-ctrl.js
index dfc3fcc..76582ff 100644
--- a/ui/js/controllers/viewrule-ctrl.js
+++ b/ui/js/controllers/viewrule-ctrl.js
@@ -25,8 +25,9 @@ define(['./module'], function (controllers) {
$scope.$emit('initReq');
var getModelUrl = $config.uri.getModel+"/"+$routeParams.modelname;
- $http.get(getModelUrl).success(function(data){
- $scope.ruleData = data;
+ console.log(getModelUrl);
+ $http.get(getModelUrl).then(function successCallback(data){
+ $scope.ruleData = data.data;
$scope.sourceLength = $scope.ruleData.evaluateRule.rules.split('AND').length;
console.log($scope.sourceLength);
@@ -42,9 +43,12 @@ define(['./module'], function (controllers) {
// $scope.targetLength = $scope.ruleData.evaluateRule.rules.split(';').length;
$scope.getNumber = function(n){return new Array(n);}
- }).error(function(data){
- // errorMessage(0, 'Save model failed, please try again!');
- toaster.pop('error', data.message);
+ // }).error(function(data){
+ // // errorMessage(0, 'Save model failed, please try again!');
+ // toaster.pop('error', data.message);
+ // });
+ },function errorCallback(response) {
+ toaster.pop('error', 'Error when deleting record', response.message);
});
$scope.anTypes = ['', 'History Trend Detection', 'Bollinger Bands Detection', 'Deviation Detection'];
@@ -71,7 +75,7 @@ define(['./module'], function (controllers) {
var answer = confirm('Are you sure you want to deploy this model to production?')
if(answer){
- $http.get(deployModelUrl).success(function(){
+ $http.get(deployModelUrl).then(function successCallback(){
$scope.ruleData.basic.status = 2;
toaster.pop('info', 'Your model has been deployed to prduction!');
});
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/3daf27b8/ui/js/services/bark-chart.js
----------------------------------------------------------------------
diff --git a/ui/js/services/bark-chart.js b/ui/js/services/bark-chart.js
index c63cb5b..192125a 100644
--- a/ui/js/services/bark-chart.js
+++ b/ui/js/services/bark-chart.js
@@ -203,7 +203,7 @@ define(['./module'], function (services) {
var option = {
title: {
text: metric.name,
- link: '/#/viewrule/' + metric.name,
+ link: '/#!/viewrule/' + metric.name,
target: 'self',
left: 'center',
textStyle: {
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/3daf27b8/ui/js/services/services.js
----------------------------------------------------------------------
diff --git a/ui/js/services/services.js b/ui/js/services/services.js
index 3981b8f..d806b79 100644
--- a/ui/js/services/services.js
+++ b/ui/js/services/services.js
@@ -22,8 +22,8 @@ define(['./module'], function (services) {
// var BACKEND_SERVER = 'http://10.149.247.156:38080';
-// var BACKEND_SERVER = 'http://localhost:8080';
- var BACKEND_SERVER = '';
+// var BACKEND_SERVER = 'http://localhost:8080';
+ var BACKEND_SERVER = '';
var API_ROOT_PATH = '/api/v1';
// var ES_SERVER = 'http://10.149.247.156:59200';
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/3daf27b8/ui/pages/dataassets/dataassets.html
----------------------------------------------------------------------
diff --git a/ui/pages/dataassets/dataassets.html b/ui/pages/dataassets/dataassets.html
index 0cb05a5..ee9cb65 100644
--- a/ui/pages/dataassets/dataassets.html
+++ b/ui/pages/dataassets/dataassets.html
@@ -37,7 +37,7 @@ limitations under the License.
</tbody>
<tbody ng-repeat="row in displayed" style="word-break:break-all;">
<tr>
- <td ng-class="{accordion:true}" ng-click="row.showDetail=!(row.showDetail)">
+ <td ng-class="{accordion:true}" ng-click="row.showDetail=!(row.showDetail)" style="cursor: pointer;">
<i ng-show="!row.showDetail" class="fa fa-chevron-circle-right blue"></i>
<i ng-show="row.showDetail" class="fa fa-chevron-circle-down blue"></i>
{{row.tableName}}</td>
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/3daf27b8/ui/pages/jobs/createjob-ac.html
----------------------------------------------------------------------
diff --git a/ui/pages/jobs/createjob-ac.html b/ui/pages/jobs/createjob-ac.html
index 789e3b5..5c05e08 100644
--- a/ui/pages/jobs/createjob-ac.html
+++ b/ui/pages/jobs/createjob-ac.html
@@ -38,8 +38,10 @@ limitations under the License.
</label>
<div class="col-md-10 col-lg-10 col-sm-10 ">
- <input type="text" class="form-control" ng-model="sourcePat" name="ruleName" placeholder="Please input the source partition, such as 'YYYYMMdd-HH'." required ng-pattern="'([0-9a-zA-Z\\_\\-])+'">
- <span class="error text-small block " ng-if="Form.ruleName.$dirty && Form.ruleName.$error.pattern">Only letter, number, "-" and "_" are allowed</span>
+ <input type="text" class="form-control" ng-model="sourcePat" name="ruleName" placeholder="Please input the source partition, such as 'YYYYMMdd-HH'." required
+ ng-pattern="/YYYYMMdd-HH/i"
+ ng-maxlength='11'>
+ <span class="error text-small block " ng-if="Form.ruleName.$dirty && Form.ruleName.$error.pattern">Please input partition like 'YYYYMMdd-HH'</span>
</div>
</div>
</div>
@@ -50,7 +52,7 @@ limitations under the License.
</label>
<div class="col-md-10 col-lg-10 col-sm-10 ">
- <input type="text" class="form-control" ng-model="targetPat" placeholder="Please input target partition of your job, such as 'YYYYMMdd-HH'.">
+ <input type="text" class="form-control" ng-model="targetPat" placeholder="Please input target partition of your job, such as 'YYYYMMdd-HH'." ng-pattern="/YYYYMMdd-HH/i" ng-maxlength='11'>
</div>
</div>
</div>
@@ -86,7 +88,9 @@ limitations under the License.
</label>
<div class="col-md-5 col-lg-5 col-sm-5 ">
- <input type="text" id="systemSelector" class="form-control" ng-model="periodTime" required placeholder="How often it works">
+ <input type="text" id="systemSelector" class="form-control" ng-model="periodTime" required placeholder="How often it works"
+ onkeyup="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}"
+ onafterpaste="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}">
</div>
<div class="col-md-5 col-lg-5 col-sm-5 ">
<select id="timeSelector" class="form-control" ng-model="timeType" required>
@@ -102,7 +106,7 @@ limitations under the License.
<div style="color:#b2c831">
<p>
- <i class="fa fa-info-circle"></i> After submitted, please go to "<a class="bark-link" href="#/jobs">Jobs</a>" to check the job status
+ <i class="fa fa-info-circle"></i> After submitted, please go to "<a class="bark-link" href="#!/jobs">Jobs</a>" to check the job status
</p>
</div>
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/3daf27b8/ui/pages/jobs/jobs.html
----------------------------------------------------------------------
diff --git a/ui/pages/jobs/jobs.html b/ui/pages/jobs/jobs.html
index 016a53d..1fa5e7e 100644
--- a/ui/pages/jobs/jobs.html
+++ b/ui/pages/jobs/jobs.html
@@ -16,7 +16,7 @@ limitations under the License.
<div >
<p>
- <a class="btn btn-primary btn-o btn-wide" href="#/createjob-ac"><i class="fa fa-plus"></i> Create Job</a>
+ <a class="btn btn-primary btn-o btn-wide" href="#!/createjob-ac"><i class="fa fa-plus"></i> Create Job</a>
</p>
<div id="modelContainer">
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/3daf27b8/ui/pages/measures/measures.html
----------------------------------------------------------------------
diff --git a/ui/pages/measures/measures.html b/ui/pages/measures/measures.html
index 9831cb0..9465abd 100644
--- a/ui/pages/measures/measures.html
+++ b/ui/pages/measures/measures.html
@@ -15,7 +15,7 @@ limitations under the License.
-->
<div >
<p>
- <a class="btn btn-primary btn-o btn-wide" href="#/createrule0"><i class="fa fa-plus"></i> Create Measure</a>
+ <a class="btn btn-primary btn-o btn-wide" href="#!/createrule0"><i class="fa fa-plus"></i> Create Measure</a>
</p>
<div id="modelContainer">
@@ -43,7 +43,7 @@ limitations under the License.
<td colspan="7" style="text-align:center">No content!</td>
</tr>
<tr ng-repeat="row in displayed">
- <td><a href="#/viewrule/{{row.name}}">{{row.name}}</a></td>
+ <td><a href="#!/viewrule/{{row.name}}">{{row.name}}</a></td>
<!--<td>{{row.system|strmap:'modelsystem'}}</td>-->
<td>{{row.type|strmap:'modeltype'}}</td>
<td>{{row.description}}</td>
@@ -56,7 +56,7 @@ limitations under the License.
<i class="fa fa-trash-o"></i>
</a>
- <a href="#/viewrule/{{row.name}}" title="subscribe">
+ <a href="#!/viewrule/{{row.name}}" title="subscribe">
<i class="fa fa-eye"></i>
</a>
</td>
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/3daf27b8/ui/sidebar.html
----------------------------------------------------------------------
diff --git a/ui/sidebar.html b/ui/sidebar.html
index 777b5d1..5f7b97f 100644
--- a/ui/sidebar.html
+++ b/ui/sidebar.html
@@ -25,12 +25,12 @@ limitations under the License.
<div class="sidebar-stat-center">
<img src="/img/sidebar1.png" >
- <span><a class="bark-link" href="#/dataassets">{{datasets}} Data Assets</a></span>
+ <span><a class="bark-link" href="#!/dataassets">{{datasets}} Data Assets</a></span>
</div>
<div class="sidebar-stat-center">
<img src="/img/sidebar2.png">
- <span><a class="bark-link" href="#/metrics">{{metrics}} DQ Metrics</a></span>
+ <span><a class="bark-link" href="#!/metrics">{{metrics}} DQ Metrics</a></span>
</div>
</div>
@@ -47,9 +47,9 @@ limitations under the License.
<div ng-repeat="outerItems in finalData">
<div class="well" style="padding:0px;background:transparent;border:0px;position:relative; ">
<!-- <img class="bullseye" src="/img/bullseye.png" title="image1" > -->
- <div class="col-sm-4 col-lg-4 col-md-4 "><h4 ><a href="#/metrics/{{outerItems.name}}"> {{outerItems.name}}</a></h4></div>
+ <div class="col-sm-4 col-lg-4 col-md-4 "><h4 ><a href="#!/metrics/{{outerItems.name}}"> {{outerItems.name}}</a></h4></div>
<div class="col-sm-3 col-lg-3 col-md-3 " style="display: flex;justify-content: center;height:46px;"><div ng-class="outerItems.dq >=90 ? 'led-green':'led-yellow'" style="align-self: center;"></div></div>
- <div class="col-sm-5 col-lg-5 col-md-5 " style="display: flex;justify-content: center;height:46px;"><a style="align-self: center;" class="btn btn-primary" href="https://github.com/eBay/DQSolution/issues" target="_blank">Report issue</a></div>
+ <!-- <div class="col-sm-5 col-lg-5 col-md-5 " style="display: flex;justify-content: center;height:46px;"><a style="align-self: center;" class="btn btn-primary" href="https://github.com/eBay/DQSolution/issues" target="_blank">Report issue</a></div> -->
</div>
<br/>
<div class="well side-bar-scroll">