blob: 0d7c95d6fe2c770eab2f25de8938d47e499ecad5 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
define(['require',
'backbone',
'hbs!tmpl/audit/ReplicationAuditTableLayoutView_tmpl',
'utils/CommonViewFunction',
'utils/Utils',
'collection/VSearchList',
'collection/VEntityList',
'utils/Messages',
'utils/UrlLinks'
], function(require, Backbone, ReplicationAuditTableLayoutView_tmpl, CommonViewFunction, Utils, VSearchList, VEntityList, Messages, UrlLinks) {
'use strict';
var ReplicationAuditTableLayoutView = Backbone.Marionette.LayoutView.extend(
/** @lends TagDetailTableLayoutView */
{
_viewName: 'ReplicationAuditTableLayoutView',
template: ReplicationAuditTableLayoutView_tmpl,
/** Layout sub regions */
regions: {
RReplicationAuditTableLayoutView: "#r_replicationAuditTableLayoutView"
},
/** ui selector cache */
ui: {},
/** ui events hash */
events: function() {
var events = {}
return events;
},
/**
* intialize a new TagDetailTableLayoutView Layout
* @constructs
*/
initialize: function(options) {
_.extend(this, _.pick(options, 'entity', 'entityName', 'attributeDefs'));
this.searchCollection = new VSearchList();
this.entityModel = new(new VEntityList()).model();
this.limit = 25;
this.offset = 0;
this.name = Utils.getName(this.entity);
this.commonTableOptions = {
collection: this.searchCollection,
includePagination: false,
includeAtlasPagination: true,
includeFooterRecords: false,
includeColumnManager: false,
includeOrderAbleColumns: false,
includeSizeAbleColumns: false,
includeTableLoader: true,
includeAtlasPageSize: true,
includeAtlasTableSorting: true,
atlasPaginationOpts: {
limit: this.limit,
offset: this.offset,
fetchCollection: this.fetchCollection.bind(this),
},
gridOpts: {
emptyText: 'No Record found!',
className: 'table table-hover backgrid table-quickMenu colSort'
},
filterOpts: {},
paginatorOpts: {}
};
},
bindEvents: function() {},
onRender: function() {
this.renderTableLayoutView();
},
fetchCollection: function(options) {
var that = this;
this.searchCollection.getExpimpAudit(this.searchCollection.queryParams, {
success: function(response) {
that.searchCollection.reset(response, options);
}
});
},
renderTableLayoutView: function() {
var that = this;
require(['utils/TableLayout'], function(TableLayout) {
var columnCollection = Backgrid.Columns.extend({
sortKey: "displayOrder",
comparator: function(item) {
return item.get(this.sortKey) || 999;
},
setPositions: function() {
_.each(this.models, function(model, index) {
model.set("displayOrder", index + 1, { silent: true });
});
return this;
}
});
var columns = new columnCollection(that.getColumn());
columns.setPositions().sort();
that.RReplicationAuditTableLayoutView.show(new TableLayout(_.extend({}, that.commonTableOptions, {
columns: columns
})));
_.extend(that.searchCollection.queryParams, { limit: that.limit, offset: that.offset, "serverName": that.name });
that.fetchCollection(_.extend({ 'fromUrl': true }));
});
},
getColumn: function(argument) {
var that = this,
col = {};
col['tools'] = {
label: "",
cell: "html",
editable: false,
sortable: false,
fixWidth: "20",
cell: Backgrid.ExpandableCell,
accordion: false,
expand: function(el, model) {
el.attr('colspan', '6');
var result = JSON.parse(model.get("resultSummary")),
view = "<table class='table table-bordered table-striped'>" + CommonViewFunction.propertyTable({ scope: that, valueObject: result, attributeDefs: that.attributeDefs }) + "</table>";
$(el).append($('<div>').html(view));
}
};
col['operation'] = {
label: "Operation",
cell: "string",
editable: false,
sortable: false,
className: "searchTableName"
};
col['sourceServerName'] = {
label: "Source Server",
cell: "string",
editable: false,
sortable: false,
className: "searchTableName"
};
col['targetServerName'] = {
label: "Target Server",
cell: "string",
editable: false,
sortable: false,
className: "searchTableName"
};
col['startTime'] = {
label: "Operation StartTime",
cell: "html",
editable: false,
sortable: false,
formatter: _.extend({}, Backgrid.CellFormatter.prototype, {
fromRaw: function(rawValue, model) {
if (rawValue) {
return new Date(rawValue);
} else {
return '-';
}
}
})
};
col['endTime'] = {
label: "Operation EndTime",
cell: "html",
editable: false,
sortable: false,
formatter: _.extend({}, Backgrid.CellFormatter.prototype, {
fromRaw: function(rawValue, model) {
if (rawValue) {
return new Date(rawValue);
} else {
return '-';
}
}
})
};
return this.searchCollection.constructor.getTableCols(col, this.searchCollection);
}
});
return ReplicationAuditTableLayoutView;
});