Commit 813bab64 by kevalbhatt

ATLAS-3822:- UI changes: Audit entries for TypeDefs CREATE, UPDATE and DELETE

parent 892df242
...@@ -90,6 +90,10 @@ ...@@ -90,6 +90,10 @@
.business-metadata-details, .business-metadata-details,
.admin-details { .admin-details {
.tableOverlay {
background-color: transparent;
}
.expandable .attr-details { .expandable .attr-details {
max-height: 300px; max-height: 300px;
overflow: auto; overflow: auto;
...@@ -97,8 +101,18 @@ ...@@ -97,8 +101,18 @@
width: calc(100% - 30px); width: calc(100% - 30px);
} }
.admin-type-dropdown { .expandable .admin-audit-details {
width: 100px; 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 { .expandable .admin-attr-details {
...@@ -108,6 +122,11 @@ ...@@ -108,6 +122,11 @@
} }
} }
.admin-details .expandable .admin-audit-details .attr-type-container {
max-height: 200px;
overflow: auto;
}
.tab-pane { .tab-pane {
.business-metadata-attr-page { .business-metadata-attr-page {
position: absolute; position: absolute;
......
...@@ -319,3 +319,13 @@ pre { ...@@ -319,3 +319,13 @@ pre {
animation: spin 1000ms infinite linear; animation: spin 1000ms infinite linear;
} }
} }
.attr-details {
ul {
list-style: disc;
li {
cursor: pointer;
}
}
}
\ No newline at end of file
...@@ -63,13 +63,22 @@ ...@@ -63,13 +63,22 @@
.modal-body { .modal-body {
position: relative; position: relative;
padding: 15px; padding: 15px;
max-height: calc(100vh - 200px); max-height: calc(100vh - 215px);
min-height: 70px; min-height: 70px;
overflow: auto; overflow: auto;
.btn+.btn { .btn+.btn {
margin-bottom: 2px; margin-bottom: 2px;
} }
.admin-audit-details {
border: 1px solid #ddd;
border-radius: 4px;
tr>td:nth-child(2) {
text-align: right;
}
}
} }
.modal-full-screen { .modal-full-screen {
...@@ -77,7 +86,6 @@ ...@@ -77,7 +86,6 @@
height: 80vh; height: 80vh;
.modal-content { .modal-content {
height: inherit;
width: 100%; width: 100%;
} }
......
...@@ -51,9 +51,6 @@ ...@@ -51,9 +51,6 @@
<div type="ok" class="btn btn-atlas ok" data-id='attrClose'>Close</div> <div type="ok" class="btn btn-atlas ok" data-id='attrClose'>Close</div>
</div> </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>
<div class="auditTable" style="display: none"> <div class="auditTable" style="display: none">
<div class='attr-filter-overlay hide'></div> <div class='attr-filter-overlay hide'></div>
......
...@@ -41,7 +41,24 @@ define(["require", "backbone"], function(require) { ...@@ -41,7 +41,24 @@ define(["require", "backbone"], function(require) {
ENTITY_PURGE: "Entity Purged", ENTITY_PURGE: "Entity Purged",
BUSINESS_ATTRIBUTE_ADD: "Business Attribute(s) Added", BUSINESS_ATTRIBUTE_ADD: "Business Attribute(s) Added",
BUSINESS_ATTRIBUTE_UPDATE: "Business Attribute(s) Updated", 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 = { Enums.entityStateReadOnly = {
......
...@@ -22,8 +22,9 @@ define(['require', ...@@ -22,8 +22,9 @@ define(['require',
'collection/VEntityList', 'collection/VEntityList',
'utils/Utils', 'utils/Utils',
'utils/UrlLinks', 'utils/UrlLinks',
'utils/CommonViewFunction' 'utils/CommonViewFunction',
], function(require, Backbone, AdminAuditTableLayoutView_tmpl, VEntityList, Utils, UrlLinks, CommonViewFunction) { 'utils/Enums'
], function(require, Backbone, AdminAuditTableLayoutView_tmpl, VEntityList, Utils, UrlLinks, CommonViewFunction, Enums) {
'use strict'; 'use strict';
var AdminAuditTableLayoutView = Backbone.Marionette.LayoutView.extend( var AdminAuditTableLayoutView = Backbone.Marionette.LayoutView.extend(
...@@ -41,20 +42,21 @@ define(['require', ...@@ -41,20 +42,21 @@ define(['require',
/** ui selector cache */ /** ui selector cache */
ui: { ui: {
adminEntityClick: "[data-id='adminEntity']", adminPurgedEntityClick: "[data-id='adminPurgedEntity']",
adminType: "[data-id='adminType']", adminAuditEntityDetails: "[data-id='adminAuditEntityDetails']",
attrFilter: "[data-id='adminAttrFilter']", attrFilter: "[data-id='adminAttrFilter']",
adminRegion: "[data-id='adminRegion']", adminRegion: "[data-id='adminRegion']",
attrApply: "[data-id='attrApply']", attrApply: "[data-id='attrApply']",
showDefault: "[data-id='showDefault']", showDefault: "[data-id='showDefault']",
attrClose: "[data-id='attrClose']" attrClose: "[data-id='attrClose']"
}, },
/** ui events hash */ /** ui events hash */
events: function() { events: function() {
var events = {}, var events = {},
that = this; that = this;
events["click " + this.ui.adminEntityClick] = "onClickAdminEntity"; events["click " + this.ui.adminPurgedEntityClick] = "onClickAdminPurgedEntity";
events["change " + this.ui.adminType] = "onClickAdminType"; events["click " + this.ui.adminAuditEntityDetails] = "showAdminAuditEntity";
events["click " + this.ui.attrFilter] = function(e) { events["click " + this.ui.attrFilter] = function(e) {
this.ui.attrFilter.find('.fa-angle-right').toggleClass('fa-angle-down'); this.ui.attrFilter.find('.fa-angle-right').toggleClass('fa-angle-down');
this.$('.attributeResultContainer').addClass("overlay"); this.$('.attributeResultContainer').addClass("overlay");
...@@ -104,11 +106,9 @@ define(['require', ...@@ -104,11 +106,9 @@ define(['require',
paginatorOpts: {} paginatorOpts: {}
}; };
this.isFilters = null; this.isFilters = null;
this.adminAuditEntityData = {};
}, },
onRender: function() { onRender: function() {
var str = '<option>All</option><option>Purged</option>';
this.ui.adminType.html(str);
this.ui.adminType.select2({});
this.ui.adminRegion.hide(); this.ui.adminRegion.hide();
this.getAdminCollection(); this.getAdminCollection();
this.entityCollection.comparator = function(model) { this.entityCollection.comparator = function(model) {
...@@ -116,6 +116,10 @@ define(['require', ...@@ -116,6 +116,10 @@ define(['require',
} }
this.renderTableLayoutView(); this.renderTableLayoutView();
}, },
onShow: function() {
this.$('.fontLoader').show();
this.$('.tableOverlay').show();
},
bindEvents: function() {}, bindEvents: function() {},
closeAttributeModel: function() { closeAttributeModel: function() {
var that = this; var that = this;
...@@ -133,19 +137,6 @@ define(['require', ...@@ -133,19 +137,6 @@ define(['require',
"attributeValue": (adminFilter.type == "date" && options.isDateParsed) ? Date.parse(adminFilter.value).toString() : adminFilter.value "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; return adminAttributes;
}, },
...@@ -163,7 +154,7 @@ define(['require', ...@@ -163,7 +154,7 @@ define(['require',
if (queryBuilderRef.data("queryBuilder")) { if (queryBuilderRef.data("queryBuilder")) {
var queryBuilder = queryBuilderRef.queryBuilder("getRules"); var queryBuilder = queryBuilderRef.queryBuilder("getRules");
if (queryBuilder) { if (queryBuilder) {
that.isFilters = queryBuilder.rules; that.isFilters = queryBuilder.rules.length ? queryBuilder.rules : null;
} else { } else {
isFilterValidate = false isFilterValidate = false
} }
...@@ -185,24 +176,27 @@ define(['require', ...@@ -185,24 +176,27 @@ define(['require',
criterion: that.getAttributes(options) criterion: that.getAttributes(options)
}; };
options.isDateParsed = false; options.isDateParsed = false;
if (this.isFilters) {
var auditQueryParam = { var auditQueryParam = {
condition: "AND", condition: "AND",
criterion: that.getAttributes(options) criterion: that.getAttributes(options)
}; };
that.searchTableFilters["adminAttrFilters"] = CommonViewFunction.attributeFilter.generateUrl({ value: auditQueryParam, formatedDateToLong: true }); that.searchTableFilters["adminAttrFilters"] = CommonViewFunction.attributeFilter.generateUrl({ value: auditQueryParam, formatedDateToLong: true });
this.$('.fontLoader').show(); }
this.$('.tableOverlay').show();
$.extend(that.entityCollection.queryParams, { auditFilters: adminParam }); $.extend(that.entityCollection.queryParams, { auditFilters: that.isFilters ? adminParam : null });
var apiObj = { var apiObj = {
sort: false, sort: false,
data: that.entityCollection.queryParams, data: that.entityCollection.queryParams,
success: function(dataOrCollection, response) { success: function(dataOrCollection, response) {
that.entityCollection.state.pageSize = that.entityCollection.queryParams.limit || 25;
that.entityCollection.fullCollection.reset(dataOrCollection, option); that.entityCollection.fullCollection.reset(dataOrCollection, option);
},
complete: function() {
that.$('.fontLoader').hide(); that.$('.fontLoader').hide();
that.$('.tableOverlay').hide(); that.$('.tableOverlay').hide();
that.$('.auditTable').show(); that.$('.auditTable').show();
}, },
silent: true,
reset: true reset: true
} }
this.entityCollection.getAdminData(apiObj); this.entityCollection.getAdminData(apiObj);
...@@ -217,6 +211,14 @@ define(['require', ...@@ -217,6 +211,14 @@ define(['require',
}))); })));
}); });
}, },
createTableWithValues: function(tableDetails, isAdminAudit) {
var attrTable = CommonViewFunction.propertyTable({
scope: this,
valueObject: tableDetails,
fromAdminAudit: isAdminAudit
});
return attrTable;
},
getAuditTableColumns: function() { getAuditTableColumns: function() {
var that = this; var that = this;
return this.entityCollection.constructor.getTableCols({ return this.entityCollection.constructor.getTableCols({
...@@ -230,25 +232,50 @@ define(['require', ...@@ -230,25 +232,50 @@ define(['require',
accordion: false, accordion: false,
alwaysVisible: true, alwaysVisible: true,
expand: function(el, model) { expand: function(el, model) {
var adminValues = '<div class="col-sm-6">', var operation = model.get('operation'),
newColumn = ''; results = model.get('result') || null,
adminText = 'No records found',
adminTypDetails = null;
el.attr('colspan', '7'); el.attr('colspan', '7');
if (model.attributes.params) { if (results) {
var guids = model.attributes.result.replace('[', '').replace(']', '').split(','); 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) { _.each(guids, function(adminGuid, index) {
if (index % 5 == 0 && index != 0) { if (index % 5 == 0 && index != 0) {
adminValues += '</div><div class="col-sm-6">'; adminValues += '</ul><ul class="col-sm-6">';
} }
adminValues += '<a class="blue-link" data-id="adminEntity" >' + adminGuid.trim() + '</a></br>'; adminValues += '<li class="blue-link" data-id="adminPurgedEntity" >' + adminGuid.trim() + '</li>';
}) })
adminValues += '</div>'; adminValues += '</ul>';
adminText = '<div class="row"><div class="attr-details"><h4 style="word-break: break-word;">' + adminTypDetails + '</h4>' + adminValues + '</div></div>';
} else { } else {
adminValues = ''; 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)); $(el).append($('<div>').html(adminText));
} }
}, },
userName: { userName: {
...@@ -292,34 +319,47 @@ define(['require', ...@@ -292,34 +319,47 @@ define(['require',
}) })
} }
}, this.entityCollection); }, this.entityCollection);
}, },
defaultPagination: function() { defaultPagination: function() {
$.extend(this.entityCollection.queryParams, { limit: this.limit, offset: this.offset }); $.extend(this.entityCollection.queryParams, { limit: this.limit, offset: this.offset });
this.renderTableLayoutView(); this.renderTableLayoutView();
}, },
onClickAdminType: function(e, value) { showAdminAuditEntity: function(e) {
this.onlyPurged = e.currentTarget.value === "Purged"; var typeDefObj = this.adminAuditEntityData[e.target.dataset.auditentityid],
this.isFilters = null; typeDetails = this.createTableWithValues(typeDefObj, true),
this.defaultPagination(); view = '<table class="table admin-audit-details bold-key" ><tbody >' + typeDetails + '</tbody></table>',
this.getAdminCollection(); 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; var that = this;
require([ require(['views/audit/AuditTableLayoutView'], function(AuditTableLayoutView) {
'modules/Modal', 'views/audit/AuditTableLayoutView'
], function(Modal, AuditTableLayoutView) {
var obj = { var obj = {
guid: $(e.target).text(), guid: $(e.target).text(),
}, },
modal = new Modal({ modalData = {
title: "Purged Entity Details: " + obj.guid, title: "Purged Entity Details: " + obj.guid,
content: new AuditTableLayoutView(obj), content: new AuditTableLayoutView(obj),
mainClass: "modal-full-screen", mainClass: "modal-full-screen",
okCloses: true, okCloses: true,
showFooter: false, 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.on('closeModal', function() {
$('.modal').css({ 'padding-right': '0px !important' }); $('.modal').css({ 'padding-right': '0px !important' });
modal.trigger('cancel'); modal.trigger('cancel');
......
...@@ -90,6 +90,10 @@ ...@@ -90,6 +90,10 @@
.business-metadata-details, .business-metadata-details,
.admin-details { .admin-details {
.tableOverlay {
background-color: transparent;
}
.expandable .attr-details { .expandable .attr-details {
max-height: 300px; max-height: 300px;
overflow: auto; overflow: auto;
...@@ -97,8 +101,18 @@ ...@@ -97,8 +101,18 @@
width: calc(100% - 30px); width: calc(100% - 30px);
} }
.admin-type-dropdown { .expandable .admin-audit-details {
width: 100px; 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 { .expandable .admin-attr-details {
...@@ -108,6 +122,11 @@ ...@@ -108,6 +122,11 @@
} }
} }
.admin-details .expandable .admin-audit-details .attr-type-container {
max-height: 200px;
overflow: auto;
}
.tab-pane { .tab-pane {
.business-metadata-attr-page { .business-metadata-attr-page {
position: absolute; position: absolute;
......
...@@ -318,3 +318,13 @@ pre { ...@@ -318,3 +318,13 @@ pre {
animation: spin 1000ms infinite linear; animation: spin 1000ms infinite linear;
} }
} }
.attr-details {
ul {
list-style: disc;
li {
cursor: pointer;
}
}
}
\ No newline at end of file
...@@ -67,13 +67,22 @@ ...@@ -67,13 +67,22 @@
.modal-body { .modal-body {
position: relative; position: relative;
padding: 15px; padding: 15px;
max-height: calc(100vh - 200px); max-height: calc(100vh - 215px);
min-height: 70px; min-height: 70px;
overflow: auto; overflow: auto;
.btn+.btn { .btn+.btn {
margin-bottom: 2px; margin-bottom: 2px;
} }
.admin-audit-details {
border: 1px solid #ddd;
border-radius: 4px;
tr>td:nth-child(2) {
text-align: right;
}
}
} }
.modal-full-screen { .modal-full-screen {
...@@ -81,7 +90,6 @@ ...@@ -81,7 +90,6 @@
height: 80vh; height: 80vh;
.modal-content { .modal-content {
height: inherit;
width: 100%; width: 100%;
} }
......
...@@ -51,9 +51,6 @@ ...@@ -51,9 +51,6 @@
<div type="ok" class="btn btn-atlas ok" data-id='attrClose'>Close</div> <div type="ok" class="btn btn-atlas ok" data-id='attrClose'>Close</div>
</div> </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>
<div class="auditTable" style="display: none"> <div class="auditTable" style="display: none">
<div class='attr-filter-overlay hide'></div> <div class='attr-filter-overlay hide'></div>
......
...@@ -41,7 +41,24 @@ define(["require", "backbone"], function(require) { ...@@ -41,7 +41,24 @@ define(["require", "backbone"], function(require) {
ENTITY_PURGE: "Entity Purged", ENTITY_PURGE: "Entity Purged",
BUSINESS_ATTRIBUTE_ADD: "Business Attribute(s) Added", BUSINESS_ATTRIBUTE_ADD: "Business Attribute(s) Added",
BUSINESS_ATTRIBUTE_UPDATE: "Business Attribute(s) Updated", 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 = { Enums.entityStateReadOnly = {
......
...@@ -22,8 +22,9 @@ define(['require', ...@@ -22,8 +22,9 @@ define(['require',
'collection/VEntityList', 'collection/VEntityList',
'utils/Utils', 'utils/Utils',
'utils/UrlLinks', 'utils/UrlLinks',
'utils/CommonViewFunction' 'utils/CommonViewFunction',
], function(require, Backbone, AdminAuditTableLayoutView_tmpl, VEntityList, Utils, UrlLinks, CommonViewFunction) { 'utils/Enums'
], function(require, Backbone, AdminAuditTableLayoutView_tmpl, VEntityList, Utils, UrlLinks, CommonViewFunction, Enums) {
'use strict'; 'use strict';
var AdminAuditTableLayoutView = Backbone.Marionette.LayoutView.extend( var AdminAuditTableLayoutView = Backbone.Marionette.LayoutView.extend(
...@@ -41,20 +42,21 @@ define(['require', ...@@ -41,20 +42,21 @@ define(['require',
/** ui selector cache */ /** ui selector cache */
ui: { ui: {
adminEntityClick: "[data-id='adminEntity']", adminPurgedEntityClick: "[data-id='adminPurgedEntity']",
adminType: "[data-id='adminType']", adminAuditEntityDetails: "[data-id='adminAuditEntityDetails']",
attrFilter: "[data-id='adminAttrFilter']", attrFilter: "[data-id='adminAttrFilter']",
adminRegion: "[data-id='adminRegion']", adminRegion: "[data-id='adminRegion']",
attrApply: "[data-id='attrApply']", attrApply: "[data-id='attrApply']",
showDefault: "[data-id='showDefault']", showDefault: "[data-id='showDefault']",
attrClose: "[data-id='attrClose']" attrClose: "[data-id='attrClose']"
}, },
/** ui events hash */ /** ui events hash */
events: function() { events: function() {
var events = {}, var events = {},
that = this; that = this;
events["click " + this.ui.adminEntityClick] = "onClickAdminEntity"; events["click " + this.ui.adminPurgedEntityClick] = "onClickAdminPurgedEntity";
events["change " + this.ui.adminType] = "onClickAdminType"; events["click " + this.ui.adminAuditEntityDetails] = "showAdminAuditEntity";
events["click " + this.ui.attrFilter] = function(e) { events["click " + this.ui.attrFilter] = function(e) {
this.ui.attrFilter.find('.fa-angle-right').toggleClass('fa-angle-down'); this.ui.attrFilter.find('.fa-angle-right').toggleClass('fa-angle-down');
this.$('.attributeResultContainer').addClass("overlay"); this.$('.attributeResultContainer').addClass("overlay");
...@@ -104,11 +106,9 @@ define(['require', ...@@ -104,11 +106,9 @@ define(['require',
paginatorOpts: {} paginatorOpts: {}
}; };
this.isFilters = null; this.isFilters = null;
this.adminAuditEntityData = {};
}, },
onRender: function() { onRender: function() {
var str = '<option>All</option><option>Purged</option>';
this.ui.adminType.html(str);
this.ui.adminType.select2({});
this.ui.adminRegion.hide(); this.ui.adminRegion.hide();
this.getAdminCollection(); this.getAdminCollection();
this.entityCollection.comparator = function(model) { this.entityCollection.comparator = function(model) {
...@@ -116,6 +116,10 @@ define(['require', ...@@ -116,6 +116,10 @@ define(['require',
} }
this.renderTableLayoutView(); this.renderTableLayoutView();
}, },
onShow: function() {
this.$('.fontLoader').show();
this.$('.tableOverlay').show();
},
bindEvents: function() {}, bindEvents: function() {},
closeAttributeModel: function() { closeAttributeModel: function() {
var that = this; var that = this;
...@@ -133,19 +137,6 @@ define(['require', ...@@ -133,19 +137,6 @@ define(['require',
"attributeValue": (adminFilter.type == "date" && options.isDateParsed) ? Date.parse(adminFilter.value).toString() : adminFilter.value "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; return adminAttributes;
}, },
...@@ -163,7 +154,7 @@ define(['require', ...@@ -163,7 +154,7 @@ define(['require',
if (queryBuilderRef.data("queryBuilder")) { if (queryBuilderRef.data("queryBuilder")) {
var queryBuilder = queryBuilderRef.queryBuilder("getRules"); var queryBuilder = queryBuilderRef.queryBuilder("getRules");
if (queryBuilder) { if (queryBuilder) {
that.isFilters = queryBuilder.rules; that.isFilters = queryBuilder.rules.length ? queryBuilder.rules : null;
} else { } else {
isFilterValidate = false isFilterValidate = false
} }
...@@ -185,24 +176,27 @@ define(['require', ...@@ -185,24 +176,27 @@ define(['require',
criterion: that.getAttributes(options) criterion: that.getAttributes(options)
}; };
options.isDateParsed = false; options.isDateParsed = false;
if (this.isFilters) {
var auditQueryParam = { var auditQueryParam = {
condition: "AND", condition: "AND",
criterion: that.getAttributes(options) criterion: that.getAttributes(options)
}; };
that.searchTableFilters["adminAttrFilters"] = CommonViewFunction.attributeFilter.generateUrl({ value: auditQueryParam, formatedDateToLong: true }); that.searchTableFilters["adminAttrFilters"] = CommonViewFunction.attributeFilter.generateUrl({ value: auditQueryParam, formatedDateToLong: true });
this.$('.fontLoader').show(); }
this.$('.tableOverlay').show();
$.extend(that.entityCollection.queryParams, { auditFilters: adminParam }); $.extend(that.entityCollection.queryParams, { auditFilters: that.isFilters ? adminParam : null });
var apiObj = { var apiObj = {
sort: false, sort: false,
data: that.entityCollection.queryParams, data: that.entityCollection.queryParams,
success: function(dataOrCollection, response) { success: function(dataOrCollection, response) {
that.entityCollection.state.pageSize = that.entityCollection.queryParams.limit || 25;
that.entityCollection.fullCollection.reset(dataOrCollection, option); that.entityCollection.fullCollection.reset(dataOrCollection, option);
},
complete: function() {
that.$('.fontLoader').hide(); that.$('.fontLoader').hide();
that.$('.tableOverlay').hide(); that.$('.tableOverlay').hide();
that.$('.auditTable').show(); that.$('.auditTable').show();
}, },
silent: true,
reset: true reset: true
} }
this.entityCollection.getAdminData(apiObj); this.entityCollection.getAdminData(apiObj);
...@@ -217,6 +211,14 @@ define(['require', ...@@ -217,6 +211,14 @@ define(['require',
}))); })));
}); });
}, },
createTableWithValues: function(tableDetails, isAdminAudit) {
var attrTable = CommonViewFunction.propertyTable({
scope: this,
valueObject: tableDetails,
fromAdminAudit: isAdminAudit
});
return attrTable;
},
getAuditTableColumns: function() { getAuditTableColumns: function() {
var that = this; var that = this;
return this.entityCollection.constructor.getTableCols({ return this.entityCollection.constructor.getTableCols({
...@@ -230,25 +232,50 @@ define(['require', ...@@ -230,25 +232,50 @@ define(['require',
accordion: false, accordion: false,
alwaysVisible: true, alwaysVisible: true,
expand: function(el, model) { expand: function(el, model) {
var adminValues = '<div class="col-sm-6">', var operation = model.get('operation'),
newColumn = ''; results = model.get('result') || null,
adminText = 'No records found',
adminTypDetails = null;
el.attr('colspan', '7'); el.attr('colspan', '7');
if (model.attributes.params) { if (results) {
var guids = model.attributes.result.replace('[', '').replace(']', '').split(','); 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) { _.each(guids, function(adminGuid, index) {
if (index % 5 == 0 && index != 0) { if (index % 5 == 0 && index != 0) {
adminValues += '</div><div class="col-sm-6">'; adminValues += '</ul><ul class="col-sm-6">';
} }
adminValues += '<a class="blue-link" data-id="adminEntity" >' + adminGuid.trim() + '</a></br>'; adminValues += '<li class="blue-link" data-id="adminPurgedEntity" >' + adminGuid.trim() + '</li>';
}) })
adminValues += '</div>'; adminValues += '</ul>';
adminText = '<div class="row"><div class="attr-details"><h4 style="word-break: break-word;">' + adminTypDetails + '</h4>' + adminValues + '</div></div>';
} else { } else {
adminValues = ''; 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)); $(el).append($('<div>').html(adminText));
} }
}, },
userName: { userName: {
...@@ -292,34 +319,47 @@ define(['require', ...@@ -292,34 +319,47 @@ define(['require',
}) })
} }
}, this.entityCollection); }, this.entityCollection);
}, },
defaultPagination: function() { defaultPagination: function() {
$.extend(this.entityCollection.queryParams, { limit: this.limit, offset: this.offset }); $.extend(this.entityCollection.queryParams, { limit: this.limit, offset: this.offset });
this.renderTableLayoutView(); this.renderTableLayoutView();
}, },
onClickAdminType: function(e, value) { showAdminAuditEntity: function(e) {
this.onlyPurged = e.currentTarget.value === "Purged"; var typeDefObj = this.adminAuditEntityData[e.target.dataset.auditentityid],
this.isFilters = null; typeDetails = this.createTableWithValues(typeDefObj, true),
this.defaultPagination(); view = '<table class="table admin-audit-details bold-key" ><tbody >' + typeDetails + '</tbody></table>',
this.getAdminCollection(); 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; var that = this;
require([ require(['views/audit/AuditTableLayoutView'], function(AuditTableLayoutView) {
'modules/Modal', 'views/audit/AuditTableLayoutView'
], function(Modal, AuditTableLayoutView) {
var obj = { var obj = {
guid: $(e.target).text(), guid: $(e.target).text(),
}, },
modal = new Modal({ modalData = {
title: "Purged Entity Details: " + obj.guid, title: "Purged Entity Details: " + obj.guid,
content: new AuditTableLayoutView(obj), content: new AuditTableLayoutView(obj),
mainClass: "modal-full-screen", mainClass: "modal-full-screen",
okCloses: true, okCloses: true,
showFooter: false, 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.on('closeModal', function() {
$('.modal').css({ 'padding-right': '0px !important' }); $('.modal').css({ 'padding-right': '0px !important' });
modal.trigger('cancel'); modal.trigger('cancel');
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment