community-app/app/scripts/controllers/system/DataTableEntryController.js

206 lines
10 KiB
JavaScript
Raw Normal View History

2014-03-02 12:09:27 +00:00
(function (module) {
mifosX.controllers = _.extend(module, {
2017-01-24 10:03:32 +00:00
DataTableEntryController: function (scope, location, routeParams, route, resourceFactory, $uibModal, dateFilter) {
2013-10-08 03:30:51 +00:00
if (routeParams.tableName) {
scope.tableName = routeParams.tableName;
}
if (routeParams.entityId) {
scope.entityId = routeParams.entityId;
}
if (routeParams.resourceId) {
scope.resourceId = routeParams.resourceId;
}
2014-03-02 12:09:27 +00:00
scope.formDat = {};
scope.columnHeaders = [];
scope.formData = {};
scope.isViewMode = true;
scope.tf = "HH:mm";
if(routeParams.mode && routeParams.mode == 'edit'){
scope.isViewMode = false;
}
2013-10-08 03:30:51 +00:00
2014-03-02 12:09:27 +00:00
var reqparams = {datatablename: scope.tableName, entityId: scope.entityId, genericResultSet: 'true'};
if (scope.resourceId) {
reqparams.resourceId = scope.resourceId;
2013-10-08 03:30:51 +00:00
}
2014-03-02 12:09:27 +00:00
resourceFactory.DataTablesResource.getTableDetails(reqparams, function (data) {
for (var i in data.columnHeaders) {
if (data.columnHeaders[i].columnCode) {
//logic for display codeValue instead of codeId in view datatable details
2014-03-02 12:09:27 +00:00
for (var j in data.columnHeaders[i].columnValues) {
if(data.columnHeaders[i].columnDisplayType=='CODELOOKUP'){
if (data.data[0].row[i] == data.columnHeaders[i].columnValues[j].id) {
data.columnHeaders[i].value = data.columnHeaders[i].columnValues[j].value;
}
} else if(data.columnHeaders[i].columnDisplayType=='CODEVALUE'){
if (data.data[0].row[i] == data.columnHeaders[i].columnValues[j].value) {
data.columnHeaders[i].value = data.columnHeaders[i].columnValues[j].value;
}
2014-03-02 12:09:27 +00:00
}
}
} else {
data.columnHeaders[i].value = data.data[0].row[i];
}
}
scope.columnHeaders = data.columnHeaders;
if(routeParams.mode && routeParams.mode == 'edit'){
scope.editDatatableEntry();
}
2014-03-02 12:09:27 +00:00
});
2013-10-08 03:30:51 +00:00
2014-04-23 10:23:01 +00:00
//return input type
scope.fieldType = function (type) {
var fieldType = "";
if (type) {
if (type == 'CODELOOKUP' || type == 'CODEVALUE') {
2014-04-23 10:23:01 +00:00
fieldType = 'SELECT';
} else if (type == 'DATE') {
fieldType = 'DATE';
} else if (type == 'DATETIME') {
fieldType = 'DATETIME';
} else if (type == 'BOOLEAN') {
fieldType = 'BOOLEAN';
} else {
fieldType = 'TEXT';
2014-04-23 10:23:01 +00:00
}
}
return fieldType;
};
scope.dateTimeFormat = function () {
for (var i in scope.columnHeaders) {
if(scope.columnHeaders[i].columnDisplayType == 'DATETIME') {
return scope.df + " " + scope.tf;
}
}
return scope.df;
};
2014-03-02 12:09:27 +00:00
scope.editDatatableEntry = function () {
scope.isViewMode = false;
var colName = scope.columnHeaders[0].columnName;
if (colName == 'id') {
scope.columnHeaders.splice(0, 1);
}
2014-03-02 12:09:27 +00:00
colName = scope.columnHeaders[0].columnName;
if (colName == 'client_id' || colName == 'office_id' || colName == 'group_id' || colName == 'center_id' || colName == 'loan_id' || colName == 'savings_account_id') {
scope.columnHeaders.splice(0, 1);
scope.isCenter = colName == 'center_id' ? true : false;
}
2014-03-02 12:09:27 +00:00
for (var i in scope.columnHeaders) {
if (scope.columnHeaders[i].columnDisplayType == 'DATE') {
scope.formDat[scope.columnHeaders[i].columnName] = scope.columnHeaders[i].value;
} else if (scope.columnHeaders[i].columnDisplayType == 'DATETIME') {
scope.formDat[scope.columnHeaders[i].columnName] = {};
if(scope.columnHeaders[i].value != null) {
scope.formDat[scope.columnHeaders[i].columnName] = {
date: dateFilter(new Date(scope.columnHeaders[i].value), scope.df),
time: dateFilter(new Date(scope.columnHeaders[i].value), scope.tf)
};
}
2014-03-02 12:09:27 +00:00
} else {
scope.formData[scope.columnHeaders[i].columnName] = scope.columnHeaders[i].value;
}
if (scope.columnHeaders[i].columnCode) {
for (var j in scope.columnHeaders[i].columnValues) {
if (scope.columnHeaders[i].value == scope.columnHeaders[i].columnValues[j].value) {
if(scope.columnHeaders[i].columnDisplayType=='CODELOOKUP'){
scope.formData[scope.columnHeaders[i].columnName] = scope.columnHeaders[i].columnValues[j].id;
} else if(scope.columnHeaders[i].columnDisplayType=='CODEVALUE'){
scope.formData[scope.columnHeaders[i].columnName] = scope.columnHeaders[i].columnValues[j].value;
}
2014-03-02 12:09:27 +00:00
}
}
}
}
};
scope.deleteDatatableEntry = function () {
2017-01-24 10:03:32 +00:00
$uibModal.open({
2014-03-02 12:09:27 +00:00
templateUrl: 'deletedatatable.html',
controller: DatatableDeleteCtrl
});
};
2017-01-24 10:03:32 +00:00
var DatatableDeleteCtrl = function ($scope, $uibModalInstance) {
2014-03-02 12:09:27 +00:00
$scope.delete = function () {
resourceFactory.DataTablesResource.delete(reqparams, {}, function (data) {
var destination = "";
if (data.loanId) {
destination = '/viewloanaccount/' + data.loanId;
} else if (data.savingsId) {
destination = '/viewsavingaccount/' + data.savingsId;
} else if (data.clientId) {
destination = '/viewclient/' + data.clientId;
} else if (data.groupId) {
if (scope.isCenter) {
destination = '/viewcenter/' + data.groupId;
} else {
destination = '/viewgroup/' + data.groupId;
}
} else if (data.officeId) {
destination = '/viewoffice/' + data.officeId;
}
2017-01-24 10:03:32 +00:00
$uibModalInstance.close('delete');
2014-03-02 12:09:27 +00:00
location.path(destination);
});
};
$scope.cancel = function () {
2017-01-24 10:03:32 +00:00
$uibModalInstance.dismiss('cancel');
2014-03-02 12:09:27 +00:00
};
};
scope.cancel = function () {
if(routeParams.mode){
window.history.back();
} else{
route.reload();
}
2014-03-02 12:09:27 +00:00
};
scope.submit = function () {
this.formData.locale = scope.optlang.code;
this.formData.dateFormat = scope.dateTimeFormat();
2014-03-02 12:09:27 +00:00
for (var i = 0; i < scope.columnHeaders.length; i++) {
if (!_.contains(_.keys(this.formData), scope.columnHeaders[i].columnName)) {
this.formData[scope.columnHeaders[i].columnName] = "";
}
if (scope.columnHeaders[i].columnDisplayType == 'DATE') {
this.formData[scope.columnHeaders[i].columnName] = dateFilter(this.formDat[scope.columnHeaders[i].columnName], this.formData.dateFormat);
} else if(scope.columnHeaders[i].columnDisplayType == 'DATETIME') {
this.formData[scope.columnHeaders[i].columnName] = dateFilter(this.formDat[scope.columnHeaders[i].columnName].date, scope.df) + " " +
dateFilter(this.formDat[scope.columnHeaders[i].columnName].time, scope.tf);
}
2014-03-02 12:09:27 +00:00
}
resourceFactory.DataTablesResource.update(reqparams, this.formData, function (data) {
var destination = "";
2014-03-02 12:09:27 +00:00
if (data.loanId) {
destination = '/viewloanaccount/' + data.loanId;
} else if (data.savingsId) {
destination = '/viewsavingaccount/' + data.savingsId;
2014-03-02 12:09:27 +00:00
} else if (data.clientId) {
destination = '/viewclient/' + data.clientId;
} else if (data.groupId) {
if (scope.isCenter) {
2014-03-02 12:09:27 +00:00
destination = '/viewcenter/' + data.groupId;
} else {
2014-03-02 12:09:27 +00:00
destination = '/viewgroup/' + data.groupId;
}
2014-03-02 12:09:27 +00:00
} else if (data.officeId) {
destination = '/viewoffice/' + data.officeId;
}
location.path(destination);
});
};
2013-10-08 03:30:51 +00:00
2014-03-02 12:09:27 +00:00
}
});
2017-01-24 10:03:32 +00:00
mifosX.ng.application.controller('DataTableEntryController', ['$scope', '$location', '$routeParams', '$route', 'ResourceFactory', '$uibModal', 'dateFilter', mifosX.controllers.DataTableEntryController]).run(function ($log) {
2014-03-02 12:09:27 +00:00
$log.info("DataTableEntryController initialized");
});
2013-10-08 03:30:51 +00:00
}(mifosX.controllers || {}));