ATLAS-3822:- UI changes: Audit entries for TypeDefs CREATE, UPDATE and DELETE
diff --git a/dashboardv2/public/css/scss/business-metadata.scss b/dashboardv2/public/css/scss/business-metadata.scss
index 148810a..1d4d737 100644
--- a/dashboardv2/public/css/scss/business-metadata.scss
+++ b/dashboardv2/public/css/scss/business-metadata.scss
@@ -90,6 +90,10 @@
.business-metadata-details,
.admin-details {
+ .tableOverlay {
+ background-color: transparent;
+ }
+
.expandable .attr-details {
max-height: 300px;
overflow: auto;
@@ -97,8 +101,18 @@
width: calc(100% - 30px);
}
- .admin-type-dropdown {
- width: 100px;
+ .expandable .admin-audit-details {
+ display: flex;
+ flex-wrap: wrap;
+ margin-left: 20px;
+
+ .attr-type-container {
+ border: 1px solid #ddd;
+ border-radius: 4px;
+ padding: 5px 10px;
+ margin: 5px;
+ width: 32%;
+ }
}
.expandable .admin-attr-details {
@@ -108,6 +122,11 @@
}
}
+.admin-details .expandable .admin-audit-details .attr-type-container {
+ max-height: 200px;
+ overflow: auto;
+}
+
.tab-pane {
.business-metadata-attr-page {
position: absolute;
diff --git a/dashboardv2/public/css/scss/common.scss b/dashboardv2/public/css/scss/common.scss
index 9e3c904..b51a6f2 100644
--- a/dashboardv2/public/css/scss/common.scss
+++ b/dashboardv2/public/css/scss/common.scss
@@ -318,4 +318,14 @@
font-size: 11px;
animation: spin 1000ms infinite linear;
}
+}
+
+.attr-details {
+ ul {
+ list-style: disc;
+
+ li {
+ cursor: pointer;
+ }
+ }
}
\ No newline at end of file
diff --git a/dashboardv2/public/css/scss/override.scss b/dashboardv2/public/css/scss/override.scss
index de5462c..a2f83ca 100644
--- a/dashboardv2/public/css/scss/override.scss
+++ b/dashboardv2/public/css/scss/override.scss
@@ -63,13 +63,22 @@
.modal-body {
position: relative;
padding: 15px;
- max-height: calc(100vh - 200px);
+ max-height: calc(100vh - 215px);
min-height: 70px;
overflow: auto;
.btn+.btn {
margin-bottom: 2px;
}
+
+ .admin-audit-details {
+ border: 1px solid #ddd;
+ border-radius: 4px;
+
+ tr>td:nth-child(2) {
+ text-align: right;
+ }
+ }
}
.modal-full-screen {
@@ -77,7 +86,6 @@
height: 80vh;
.modal-content {
- height: inherit;
width: 100%;
}
diff --git a/dashboardv2/public/js/templates/audit/AdminAuditTableLayoutView_tmpl.html b/dashboardv2/public/js/templates/audit/AdminAuditTableLayoutView_tmpl.html
index f1dc256..62bef23 100644
--- a/dashboardv2/public/js/templates/audit/AdminAuditTableLayoutView_tmpl.html
+++ b/dashboardv2/public/js/templates/audit/AdminAuditTableLayoutView_tmpl.html
@@ -51,9 +51,6 @@
<div type="ok" class="btn btn-atlas ok" data-id='attrClose'>Close</div>
</div>
</div>
- <div class="pull-right admin-type-dropdown">
- <select class="pull-right form-controlrow-margin-bottom" data-id="adminType"></select>
- </div>
</div>
<div class="auditTable" style="display: none">
<div class='attr-filter-overlay hide'></div>
diff --git a/dashboardv2/public/js/utils/Enums.js b/dashboardv2/public/js/utils/Enums.js
index 131a08f..5db6396 100644
--- a/dashboardv2/public/js/utils/Enums.js
+++ b/dashboardv2/public/js/utils/Enums.js
@@ -41,7 +41,24 @@
ENTITY_PURGE: "Entity Purged",
BUSINESS_ATTRIBUTE_ADD: "Business Attribute(s) Added",
BUSINESS_ATTRIBUTE_UPDATE: "Business Attribute(s) Updated",
- BUSINESS_ATTRIBUTE_DELETE: "Business Attribute(s) Deleted"
+ BUSINESS_ATTRIBUTE_DELETE: "Business Attribute(s) Deleted",
+ TYPE_DEF_UPDATE: "Type Updated",
+ TYPE_DEF_CREATE: "Type Created",
+ TYPE_DEF_DELETE: "Type Deleted"
+ }
+
+ Enums.category = {
+ PRIMITIVE: "Primitive",
+ OBJECT_ID_TYPE: "Object Id type",
+ ENUM: "Enum",
+ STRUCT: "Struct",
+ CLASSIFICATION: "Classification",
+ ENTITY: "Entity",
+ ARRAY: "Array",
+ MAP: "Map",
+ RELATIONSHIP: "Relationship",
+ BUSINESS_METADATA: "Business Metadata",
+ PURGE: "Purge Entities"
}
Enums.entityStateReadOnly = {
diff --git a/dashboardv2/public/js/views/audit/AdminAuditTableLayoutView.js b/dashboardv2/public/js/views/audit/AdminAuditTableLayoutView.js
index bc0990f..b50a5e8 100644
--- a/dashboardv2/public/js/views/audit/AdminAuditTableLayoutView.js
+++ b/dashboardv2/public/js/views/audit/AdminAuditTableLayoutView.js
@@ -22,8 +22,9 @@
'collection/VEntityList',
'utils/Utils',
'utils/UrlLinks',
- 'utils/CommonViewFunction'
-], function(require, Backbone, AdminAuditTableLayoutView_tmpl, VEntityList, Utils, UrlLinks, CommonViewFunction) {
+ 'utils/CommonViewFunction',
+ 'utils/Enums'
+], function(require, Backbone, AdminAuditTableLayoutView_tmpl, VEntityList, Utils, UrlLinks, CommonViewFunction, Enums) {
'use strict';
var AdminAuditTableLayoutView = Backbone.Marionette.LayoutView.extend(
@@ -41,20 +42,21 @@
/** ui selector cache */
ui: {
- adminEntityClick: "[data-id='adminEntity']",
- adminType: "[data-id='adminType']",
+ adminPurgedEntityClick: "[data-id='adminPurgedEntity']",
+ adminAuditEntityDetails: "[data-id='adminAuditEntityDetails']",
attrFilter: "[data-id='adminAttrFilter']",
adminRegion: "[data-id='adminRegion']",
attrApply: "[data-id='attrApply']",
showDefault: "[data-id='showDefault']",
attrClose: "[data-id='attrClose']"
+
},
/** ui events hash */
events: function() {
var events = {},
that = this;
- events["click " + this.ui.adminEntityClick] = "onClickAdminEntity";
- events["change " + this.ui.adminType] = "onClickAdminType";
+ events["click " + this.ui.adminPurgedEntityClick] = "onClickAdminPurgedEntity";
+ events["click " + this.ui.adminAuditEntityDetails] = "showAdminAuditEntity";
events["click " + this.ui.attrFilter] = function(e) {
this.ui.attrFilter.find('.fa-angle-right').toggleClass('fa-angle-down');
this.$('.attributeResultContainer').addClass("overlay");
@@ -104,11 +106,9 @@
paginatorOpts: {}
};
this.isFilters = null;
+ this.adminAuditEntityData = {};
},
onRender: function() {
- var str = '<option>All</option><option>Purged</option>';
- this.ui.adminType.html(str);
- this.ui.adminType.select2({});
this.ui.adminRegion.hide();
this.getAdminCollection();
this.entityCollection.comparator = function(model) {
@@ -116,6 +116,10 @@
}
this.renderTableLayoutView();
},
+ onShow: function() {
+ this.$('.fontLoader').show();
+ this.$('.tableOverlay').show();
+ },
bindEvents: function() {},
closeAttributeModel: function() {
var that = this;
@@ -133,19 +137,6 @@
"attributeValue": (adminFilter.type == "date" && options.isDateParsed) ? Date.parse(adminFilter.value).toString() : adminFilter.value
})
})
- } else {
- adminAttributes = [{
- "attributeName": "userName",
- "operator": "=",
- "attributeValue": "admin"
- }];
- if (this.onlyPurged === true) {
- adminAttributes.push({
- "attributeName": "operation",
- "operator": "=",
- "attributeValue": "PURGE"
- })
- }
}
return adminAttributes;
},
@@ -163,7 +154,7 @@
if (queryBuilderRef.data("queryBuilder")) {
var queryBuilder = queryBuilderRef.queryBuilder("getRules");
if (queryBuilder) {
- that.isFilters = queryBuilder.rules;
+ that.isFilters = queryBuilder.rules.length ? queryBuilder.rules : null;
} else {
isFilterValidate = false
}
@@ -185,24 +176,27 @@
criterion: that.getAttributes(options)
};
options.isDateParsed = false;
- var auditQueryParam = {
- condition: "AND",
- criterion: that.getAttributes(options)
- };
- that.searchTableFilters["adminAttrFilters"] = CommonViewFunction.attributeFilter.generateUrl({ value: auditQueryParam, formatedDateToLong: true });
- this.$('.fontLoader').show();
- this.$('.tableOverlay').show();
- $.extend(that.entityCollection.queryParams, { auditFilters: adminParam });
+ if (this.isFilters) {
+ var auditQueryParam = {
+ condition: "AND",
+ criterion: that.getAttributes(options)
+ };
+ that.searchTableFilters["adminAttrFilters"] = CommonViewFunction.attributeFilter.generateUrl({ value: auditQueryParam, formatedDateToLong: true });
+ }
+
+ $.extend(that.entityCollection.queryParams, { auditFilters: that.isFilters ? adminParam : null });
var apiObj = {
sort: false,
data: that.entityCollection.queryParams,
success: function(dataOrCollection, response) {
+ that.entityCollection.state.pageSize = that.entityCollection.queryParams.limit || 25;
that.entityCollection.fullCollection.reset(dataOrCollection, option);
+ },
+ complete: function() {
that.$('.fontLoader').hide();
that.$('.tableOverlay').hide();
that.$('.auditTable').show();
},
- silent: true,
reset: true
}
this.entityCollection.getAdminData(apiObj);
@@ -217,6 +211,14 @@
})));
});
},
+ createTableWithValues: function(tableDetails, isAdminAudit) {
+ var attrTable = CommonViewFunction.propertyTable({
+ scope: this,
+ valueObject: tableDetails,
+ fromAdminAudit: isAdminAudit
+ });
+ return attrTable;
+ },
getAuditTableColumns: function() {
var that = this;
return this.entityCollection.constructor.getTableCols({
@@ -230,25 +232,50 @@
accordion: false,
alwaysVisible: true,
expand: function(el, model) {
- var adminValues = '<div class="col-sm-6">',
- newColumn = '';
+ var operation = model.get('operation'),
+ results = model.get('result') || null,
+ adminText = 'No records found',
+ adminTypDetails = null;
el.attr('colspan', '7');
- if (model.attributes.params) {
- var guids = model.attributes.result.replace('[', '').replace(']', '').split(',');
- _.each(guids, function(adminGuid, index) {
- if (index % 5 == 0 && index != 0) {
- adminValues += '</div><div class="col-sm-6">';
- }
- adminValues += '<a class="blue-link" data-id="adminEntity" >' + adminGuid.trim() + '</a></br>';
- })
- adminValues += '</div>';
-
- } else {
- adminValues = '';
+ if (results) {
+ var adminValues = null;
+ if (operation == "PURGE") {
+ adminValues = '<ul class="col-sm-6">';
+ var guids = results.replace('[', '').replace(']', '').split(',');
+ adminTypDetails = Enums.category[operation];
+ _.each(guids, function(adminGuid, index) {
+ if (index % 5 == 0 && index != 0) {
+ adminValues += '</ul><ul class="col-sm-6">';
+ }
+ adminValues += '<li class="blue-link" data-id="adminPurgedEntity" >' + adminGuid.trim() + '</li>';
+ })
+ adminValues += '</ul>';
+ adminText = '<div class="row"><div class="attr-details"><h4 style="word-break: break-word;">' + adminTypDetails + '</h4>' + adminValues + '</div></div>';
+ } else {
+ var resultData = JSON.parse(results),
+ typeName = model.get('params').split(','),
+ typeContainer = '';
+ _.each(typeName, function(name) {
+ var typeData = resultData[name],
+ adminValues = (typeName.length == 1) ? '<ul class="col-sm-4">' : '<ul>';
+ adminTypDetails = Enums.category[name] + " " + Enums.auditAction[operation];
+ typeContainer += '<div class="attr-type-container"><h4 style="word-break: break-word;">' + adminTypDetails + '</h4>';
+ _.each(typeData, function(typeDefObj, index) {
+ if (index % 5 == 0 && index != 0 && typeName.length == 1) {
+ adminValues += '</ul><ul class="col-sm-4">';
+ }
+ var panelId = typeDefObj.name.split(" ").join("") + model.get('startTime');
+ that.adminAuditEntityData[panelId] = typeDefObj;
+ adminValues += '<li class="blue-link" data-id="adminAuditEntityDetails" data-auditEntityId=' + panelId + '>' + typeDefObj.name + '</li>';
+ });
+ adminValues += '</ul>';
+ typeContainer += adminValues + '</div>';
+ })
+ var typeClass = (typeName.length == 1) ? null : "admin-audit-details";
+ adminText = '<div class="row"><div class="attr-details ' + typeClass + '">' + typeContainer + '</div></div>';
+ }
}
- var adminText = '<div class="row"><div class="col-sm-12 attr-details admin-attr-details"><div class="col-sm-2">Purged Entities: </div><div class="col-sm-10">' + adminValues + '</div></div></div>';
$(el).append($('<div>').html(adminText));
-
}
},
userName: {
@@ -292,34 +319,47 @@
})
}
}, this.entityCollection);
-
},
defaultPagination: function() {
$.extend(this.entityCollection.queryParams, { limit: this.limit, offset: this.offset });
this.renderTableLayoutView();
},
- onClickAdminType: function(e, value) {
- this.onlyPurged = e.currentTarget.value === "Purged";
- this.isFilters = null;
- this.defaultPagination();
- this.getAdminCollection();
+ showAdminAuditEntity: function(e) {
+ var typeDefObj = this.adminAuditEntityData[e.target.dataset.auditentityid],
+ typeDetails = this.createTableWithValues(typeDefObj, true),
+ view = '<table class="table admin-audit-details bold-key" ><tbody >' + typeDetails + '</tbody></table>',
+ modalData = {
+ title: Enums.category[typeDefObj.category] + " Type Details: " + typeDefObj.name,
+ htmlContent: view,
+ mainClass: "modal-full-screen",
+ okCloses: true,
+ showFooter: false,
+ width: "40%"
+ };
+ this.showModal(modalData);
},
- onClickAdminEntity: function(e) {
+ onClickAdminPurgedEntity: function(e) {
var that = this;
- require([
- 'modules/Modal', 'views/audit/AuditTableLayoutView'
- ], function(Modal, AuditTableLayoutView) {
+ require(['views/audit/AuditTableLayoutView'], function(AuditTableLayoutView) {
var obj = {
guid: $(e.target).text(),
},
- modal = new Modal({
+ modalData = {
title: "Purged Entity Details: " + obj.guid,
content: new AuditTableLayoutView(obj),
mainClass: "modal-full-screen",
okCloses: true,
showFooter: false,
- }).open();
-
+ };
+ that.showModal(modalData);
+ });
+ },
+ showModal: function(modalObj, title) {
+ var that = this;
+ require([
+ 'modules/Modal'
+ ], function(Modal) {
+ var modal = new Modal(modalObj).open();
modal.on('closeModal', function() {
$('.modal').css({ 'padding-right': '0px !important' });
modal.trigger('cancel');
diff --git a/dashboardv3/public/css/scss/business-metadata.scss b/dashboardv3/public/css/scss/business-metadata.scss
index 369f6a2..444541b 100644
--- a/dashboardv3/public/css/scss/business-metadata.scss
+++ b/dashboardv3/public/css/scss/business-metadata.scss
@@ -90,6 +90,10 @@
.business-metadata-details,
.admin-details {
+ .tableOverlay {
+ background-color: transparent;
+ }
+
.expandable .attr-details {
max-height: 300px;
overflow: auto;
@@ -97,8 +101,18 @@
width: calc(100% - 30px);
}
- .admin-type-dropdown {
- width: 100px;
+ .expandable .admin-audit-details {
+ display: flex;
+ flex-wrap: wrap;
+ margin-left: 20px;
+
+ .attr-type-container {
+ border: 1px solid #ddd;
+ border-radius: 4px;
+ padding: 5px 10px;
+ margin: 5px;
+ width: 32%;
+ }
}
.expandable .admin-attr-details {
@@ -108,6 +122,11 @@
}
}
+.admin-details .expandable .admin-audit-details .attr-type-container {
+ max-height: 200px;
+ overflow: auto;
+}
+
.tab-pane {
.business-metadata-attr-page {
position: absolute;
diff --git a/dashboardv3/public/css/scss/common.scss b/dashboardv3/public/css/scss/common.scss
index 59f9bcc..008dca06 100644
--- a/dashboardv3/public/css/scss/common.scss
+++ b/dashboardv3/public/css/scss/common.scss
@@ -317,4 +317,14 @@
font-size: 11px;
animation: spin 1000ms infinite linear;
}
+}
+
+.attr-details {
+ ul {
+ list-style: disc;
+
+ li {
+ cursor: pointer;
+ }
+ }
}
\ No newline at end of file
diff --git a/dashboardv3/public/css/scss/override.scss b/dashboardv3/public/css/scss/override.scss
index 1c8fcfc..73e87e5 100644
--- a/dashboardv3/public/css/scss/override.scss
+++ b/dashboardv3/public/css/scss/override.scss
@@ -67,13 +67,22 @@
.modal-body {
position: relative;
padding: 15px;
- max-height: calc(100vh - 200px);
+ max-height: calc(100vh - 215px);
min-height: 70px;
overflow: auto;
.btn+.btn {
margin-bottom: 2px;
}
+
+ .admin-audit-details {
+ border: 1px solid #ddd;
+ border-radius: 4px;
+
+ tr>td:nth-child(2) {
+ text-align: right;
+ }
+ }
}
.modal-full-screen {
@@ -81,7 +90,6 @@
height: 80vh;
.modal-content {
- height: inherit;
width: 100%;
}
diff --git a/dashboardv3/public/js/templates/audit/AdminAuditTableLayoutView_tmpl.html b/dashboardv3/public/js/templates/audit/AdminAuditTableLayoutView_tmpl.html
index f1dc256..62bef23 100644
--- a/dashboardv3/public/js/templates/audit/AdminAuditTableLayoutView_tmpl.html
+++ b/dashboardv3/public/js/templates/audit/AdminAuditTableLayoutView_tmpl.html
@@ -51,9 +51,6 @@
<div type="ok" class="btn btn-atlas ok" data-id='attrClose'>Close</div>
</div>
</div>
- <div class="pull-right admin-type-dropdown">
- <select class="pull-right form-controlrow-margin-bottom" data-id="adminType"></select>
- </div>
</div>
<div class="auditTable" style="display: none">
<div class='attr-filter-overlay hide'></div>
diff --git a/dashboardv3/public/js/utils/Enums.js b/dashboardv3/public/js/utils/Enums.js
index 131a08f..5db6396 100644
--- a/dashboardv3/public/js/utils/Enums.js
+++ b/dashboardv3/public/js/utils/Enums.js
@@ -41,7 +41,24 @@
ENTITY_PURGE: "Entity Purged",
BUSINESS_ATTRIBUTE_ADD: "Business Attribute(s) Added",
BUSINESS_ATTRIBUTE_UPDATE: "Business Attribute(s) Updated",
- BUSINESS_ATTRIBUTE_DELETE: "Business Attribute(s) Deleted"
+ BUSINESS_ATTRIBUTE_DELETE: "Business Attribute(s) Deleted",
+ TYPE_DEF_UPDATE: "Type Updated",
+ TYPE_DEF_CREATE: "Type Created",
+ TYPE_DEF_DELETE: "Type Deleted"
+ }
+
+ Enums.category = {
+ PRIMITIVE: "Primitive",
+ OBJECT_ID_TYPE: "Object Id type",
+ ENUM: "Enum",
+ STRUCT: "Struct",
+ CLASSIFICATION: "Classification",
+ ENTITY: "Entity",
+ ARRAY: "Array",
+ MAP: "Map",
+ RELATIONSHIP: "Relationship",
+ BUSINESS_METADATA: "Business Metadata",
+ PURGE: "Purge Entities"
}
Enums.entityStateReadOnly = {
diff --git a/dashboardv3/public/js/views/audit/AdminAuditTableLayoutView.js b/dashboardv3/public/js/views/audit/AdminAuditTableLayoutView.js
index bc0990f..b50a5e8 100644
--- a/dashboardv3/public/js/views/audit/AdminAuditTableLayoutView.js
+++ b/dashboardv3/public/js/views/audit/AdminAuditTableLayoutView.js
@@ -22,8 +22,9 @@
'collection/VEntityList',
'utils/Utils',
'utils/UrlLinks',
- 'utils/CommonViewFunction'
-], function(require, Backbone, AdminAuditTableLayoutView_tmpl, VEntityList, Utils, UrlLinks, CommonViewFunction) {
+ 'utils/CommonViewFunction',
+ 'utils/Enums'
+], function(require, Backbone, AdminAuditTableLayoutView_tmpl, VEntityList, Utils, UrlLinks, CommonViewFunction, Enums) {
'use strict';
var AdminAuditTableLayoutView = Backbone.Marionette.LayoutView.extend(
@@ -41,20 +42,21 @@
/** ui selector cache */
ui: {
- adminEntityClick: "[data-id='adminEntity']",
- adminType: "[data-id='adminType']",
+ adminPurgedEntityClick: "[data-id='adminPurgedEntity']",
+ adminAuditEntityDetails: "[data-id='adminAuditEntityDetails']",
attrFilter: "[data-id='adminAttrFilter']",
adminRegion: "[data-id='adminRegion']",
attrApply: "[data-id='attrApply']",
showDefault: "[data-id='showDefault']",
attrClose: "[data-id='attrClose']"
+
},
/** ui events hash */
events: function() {
var events = {},
that = this;
- events["click " + this.ui.adminEntityClick] = "onClickAdminEntity";
- events["change " + this.ui.adminType] = "onClickAdminType";
+ events["click " + this.ui.adminPurgedEntityClick] = "onClickAdminPurgedEntity";
+ events["click " + this.ui.adminAuditEntityDetails] = "showAdminAuditEntity";
events["click " + this.ui.attrFilter] = function(e) {
this.ui.attrFilter.find('.fa-angle-right').toggleClass('fa-angle-down');
this.$('.attributeResultContainer').addClass("overlay");
@@ -104,11 +106,9 @@
paginatorOpts: {}
};
this.isFilters = null;
+ this.adminAuditEntityData = {};
},
onRender: function() {
- var str = '<option>All</option><option>Purged</option>';
- this.ui.adminType.html(str);
- this.ui.adminType.select2({});
this.ui.adminRegion.hide();
this.getAdminCollection();
this.entityCollection.comparator = function(model) {
@@ -116,6 +116,10 @@
}
this.renderTableLayoutView();
},
+ onShow: function() {
+ this.$('.fontLoader').show();
+ this.$('.tableOverlay').show();
+ },
bindEvents: function() {},
closeAttributeModel: function() {
var that = this;
@@ -133,19 +137,6 @@
"attributeValue": (adminFilter.type == "date" && options.isDateParsed) ? Date.parse(adminFilter.value).toString() : adminFilter.value
})
})
- } else {
- adminAttributes = [{
- "attributeName": "userName",
- "operator": "=",
- "attributeValue": "admin"
- }];
- if (this.onlyPurged === true) {
- adminAttributes.push({
- "attributeName": "operation",
- "operator": "=",
- "attributeValue": "PURGE"
- })
- }
}
return adminAttributes;
},
@@ -163,7 +154,7 @@
if (queryBuilderRef.data("queryBuilder")) {
var queryBuilder = queryBuilderRef.queryBuilder("getRules");
if (queryBuilder) {
- that.isFilters = queryBuilder.rules;
+ that.isFilters = queryBuilder.rules.length ? queryBuilder.rules : null;
} else {
isFilterValidate = false
}
@@ -185,24 +176,27 @@
criterion: that.getAttributes(options)
};
options.isDateParsed = false;
- var auditQueryParam = {
- condition: "AND",
- criterion: that.getAttributes(options)
- };
- that.searchTableFilters["adminAttrFilters"] = CommonViewFunction.attributeFilter.generateUrl({ value: auditQueryParam, formatedDateToLong: true });
- this.$('.fontLoader').show();
- this.$('.tableOverlay').show();
- $.extend(that.entityCollection.queryParams, { auditFilters: adminParam });
+ if (this.isFilters) {
+ var auditQueryParam = {
+ condition: "AND",
+ criterion: that.getAttributes(options)
+ };
+ that.searchTableFilters["adminAttrFilters"] = CommonViewFunction.attributeFilter.generateUrl({ value: auditQueryParam, formatedDateToLong: true });
+ }
+
+ $.extend(that.entityCollection.queryParams, { auditFilters: that.isFilters ? adminParam : null });
var apiObj = {
sort: false,
data: that.entityCollection.queryParams,
success: function(dataOrCollection, response) {
+ that.entityCollection.state.pageSize = that.entityCollection.queryParams.limit || 25;
that.entityCollection.fullCollection.reset(dataOrCollection, option);
+ },
+ complete: function() {
that.$('.fontLoader').hide();
that.$('.tableOverlay').hide();
that.$('.auditTable').show();
},
- silent: true,
reset: true
}
this.entityCollection.getAdminData(apiObj);
@@ -217,6 +211,14 @@
})));
});
},
+ createTableWithValues: function(tableDetails, isAdminAudit) {
+ var attrTable = CommonViewFunction.propertyTable({
+ scope: this,
+ valueObject: tableDetails,
+ fromAdminAudit: isAdminAudit
+ });
+ return attrTable;
+ },
getAuditTableColumns: function() {
var that = this;
return this.entityCollection.constructor.getTableCols({
@@ -230,25 +232,50 @@
accordion: false,
alwaysVisible: true,
expand: function(el, model) {
- var adminValues = '<div class="col-sm-6">',
- newColumn = '';
+ var operation = model.get('operation'),
+ results = model.get('result') || null,
+ adminText = 'No records found',
+ adminTypDetails = null;
el.attr('colspan', '7');
- if (model.attributes.params) {
- var guids = model.attributes.result.replace('[', '').replace(']', '').split(',');
- _.each(guids, function(adminGuid, index) {
- if (index % 5 == 0 && index != 0) {
- adminValues += '</div><div class="col-sm-6">';
- }
- adminValues += '<a class="blue-link" data-id="adminEntity" >' + adminGuid.trim() + '</a></br>';
- })
- adminValues += '</div>';
-
- } else {
- adminValues = '';
+ if (results) {
+ var adminValues = null;
+ if (operation == "PURGE") {
+ adminValues = '<ul class="col-sm-6">';
+ var guids = results.replace('[', '').replace(']', '').split(',');
+ adminTypDetails = Enums.category[operation];
+ _.each(guids, function(adminGuid, index) {
+ if (index % 5 == 0 && index != 0) {
+ adminValues += '</ul><ul class="col-sm-6">';
+ }
+ adminValues += '<li class="blue-link" data-id="adminPurgedEntity" >' + adminGuid.trim() + '</li>';
+ })
+ adminValues += '</ul>';
+ adminText = '<div class="row"><div class="attr-details"><h4 style="word-break: break-word;">' + adminTypDetails + '</h4>' + adminValues + '</div></div>';
+ } else {
+ var resultData = JSON.parse(results),
+ typeName = model.get('params').split(','),
+ typeContainer = '';
+ _.each(typeName, function(name) {
+ var typeData = resultData[name],
+ adminValues = (typeName.length == 1) ? '<ul class="col-sm-4">' : '<ul>';
+ adminTypDetails = Enums.category[name] + " " + Enums.auditAction[operation];
+ typeContainer += '<div class="attr-type-container"><h4 style="word-break: break-word;">' + adminTypDetails + '</h4>';
+ _.each(typeData, function(typeDefObj, index) {
+ if (index % 5 == 0 && index != 0 && typeName.length == 1) {
+ adminValues += '</ul><ul class="col-sm-4">';
+ }
+ var panelId = typeDefObj.name.split(" ").join("") + model.get('startTime');
+ that.adminAuditEntityData[panelId] = typeDefObj;
+ adminValues += '<li class="blue-link" data-id="adminAuditEntityDetails" data-auditEntityId=' + panelId + '>' + typeDefObj.name + '</li>';
+ });
+ adminValues += '</ul>';
+ typeContainer += adminValues + '</div>';
+ })
+ var typeClass = (typeName.length == 1) ? null : "admin-audit-details";
+ adminText = '<div class="row"><div class="attr-details ' + typeClass + '">' + typeContainer + '</div></div>';
+ }
}
- var adminText = '<div class="row"><div class="col-sm-12 attr-details admin-attr-details"><div class="col-sm-2">Purged Entities: </div><div class="col-sm-10">' + adminValues + '</div></div></div>';
$(el).append($('<div>').html(adminText));
-
}
},
userName: {
@@ -292,34 +319,47 @@
})
}
}, this.entityCollection);
-
},
defaultPagination: function() {
$.extend(this.entityCollection.queryParams, { limit: this.limit, offset: this.offset });
this.renderTableLayoutView();
},
- onClickAdminType: function(e, value) {
- this.onlyPurged = e.currentTarget.value === "Purged";
- this.isFilters = null;
- this.defaultPagination();
- this.getAdminCollection();
+ showAdminAuditEntity: function(e) {
+ var typeDefObj = this.adminAuditEntityData[e.target.dataset.auditentityid],
+ typeDetails = this.createTableWithValues(typeDefObj, true),
+ view = '<table class="table admin-audit-details bold-key" ><tbody >' + typeDetails + '</tbody></table>',
+ modalData = {
+ title: Enums.category[typeDefObj.category] + " Type Details: " + typeDefObj.name,
+ htmlContent: view,
+ mainClass: "modal-full-screen",
+ okCloses: true,
+ showFooter: false,
+ width: "40%"
+ };
+ this.showModal(modalData);
},
- onClickAdminEntity: function(e) {
+ onClickAdminPurgedEntity: function(e) {
var that = this;
- require([
- 'modules/Modal', 'views/audit/AuditTableLayoutView'
- ], function(Modal, AuditTableLayoutView) {
+ require(['views/audit/AuditTableLayoutView'], function(AuditTableLayoutView) {
var obj = {
guid: $(e.target).text(),
},
- modal = new Modal({
+ modalData = {
title: "Purged Entity Details: " + obj.guid,
content: new AuditTableLayoutView(obj),
mainClass: "modal-full-screen",
okCloses: true,
showFooter: false,
- }).open();
-
+ };
+ that.showModal(modalData);
+ });
+ },
+ showModal: function(modalObj, title) {
+ var that = this;
+ require([
+ 'modules/Modal'
+ ], function(Modal) {
+ var modal = new Modal(modalObj).open();
modal.on('closeModal', function() {
$('.modal').css({ 'padding-right': '0px !important' });
modal.trigger('cancel');