MIFOSX-1888:New feature based configuration file to specify which fields should be editable/read only/hidden

This commit is contained in:
sachinkulkarni12 2015-02-25 19:42:17 +05:30
parent 662b2dd7b9
commit 9da473c343
11 changed files with 249 additions and 104 deletions

37
UIconfig.json Normal file
View File

@ -0,0 +1,37 @@
// Configuration file for making the fields hide , show and Read only
// To enable the configuration create a folder called config under app/scripts and copy the UIconfig.json file under app/scripts/config
//Any of the values set to true the respected fields are hidden and the values set to false the fields are visible in the respected page.
{
"enableUIDisplayConfiguration": true,
"uiDisplayConfigurations": {
"loanAccount": {
"isHiddenField": {
"fundId": true,
"linkAccountId": true,
"createStandingInstruction": true,
"numberOfRepayments": true,
"repaymentEvery": true,
"repaymentFrequencyType": true,
"repaymentFrequencyNthDayType": true,
"repaymentFrequencyDayOfWeekType": true,
"interestChargedFromDate": true,
"repaymentsStartingFromDate": true,
"interestType": true,
"amortizationType": true,
"interestCalculationPeriodType": true,
"inArrearsTolerance": true,
"graceOnInterestCharged": true,
"transactionProcessingStrategyId": true,
"graceOnInterestPayment": true,
"graceOnArrearsAgeing": true
},
"isHiddenSection": {
"interestRecalculationSection": true,
"collateralSection": true
},
"isReadOnlyField": {
"loanTermFrequencyType": true
}
}
}
}

View File

@ -0,0 +1,34 @@
{
"enableUIDisplayConfiguration": true,
"uiDisplayConfigurations": {
"loanAccount": {
"isHiddenField": {
"fundId": true,
"linkAccountId": true,
"createStandingInstruction": true,
"numberOfRepayments": true,
"repaymentEvery": true,
"repaymentFrequencyType": true,
"repaymentFrequencyNthDayType": true,
"repaymentFrequencyDayOfWeekType": true,
"interestChargedFromDate": true,
"repaymentsStartingFromDate": true,
"interestType": true,
"amortizationType": true,
"interestCalculationPeriodType": true,
"inArrearsTolerance": true,
"graceOnInterestCharged": true,
"transactionProcessingStrategyId": true,
"graceOnInterestPayment": true,
"graceOnArrearsAgeing": true
},
"isHiddenSection": {
"interestRecalculationSection": true,
"collateralSection": true
},
"isReadOnlyField": {
"loanTermFrequencyType": true
}
}
}
}

View File

@ -1,6 +1,6 @@
(function (module) { (function (module) {
mifosX.controllers = _.extend(module, { mifosX.controllers = _.extend(module, {
EditLoanAccAppController: function (scope, routeParams, resourceFactory, location, dateFilter) { EditLoanAccAppController: function (scope, routeParams, resourceFactory, location, dateFilter, uiConfigService) {
scope.previewRepayment = false; scope.previewRepayment = false;
scope.formData = {}; scope.formData = {};
@ -240,6 +240,10 @@
} }
uiConfigService.appendConfigToScope(scope);
scope.submit = function () { scope.submit = function () {
// Make sure charges and collaterals are empty before initializing. // Make sure charges and collaterals are empty before initializing.
delete scope.formData.charges; delete scope.formData.charges;
@ -294,7 +298,7 @@
} }
} }
}); });
mifosX.ng.application.controller('EditLoanAccAppController', ['$scope', '$routeParams', 'ResourceFactory', '$location', 'dateFilter', mifosX.controllers.EditLoanAccAppController]).run(function ($log) { mifosX.ng.application.controller('EditLoanAccAppController', ['$scope', '$routeParams', 'ResourceFactory', '$location', 'dateFilter', 'UIConfigService', mifosX.controllers.EditLoanAccAppController]).run(function ($log) {
$log.info("EditLoanAccAppController initialized"); $log.info("EditLoanAccAppController initialized");
}); });
}(mifosX.controllers || {})); }(mifosX.controllers || {}));

View File

@ -1,6 +1,6 @@
(function (module) { (function (module) {
mifosX.controllers = _.extend(module, { mifosX.controllers = _.extend(module, {
NewLoanAccAppController: function (scope, routeParams, resourceFactory, location, dateFilter) { NewLoanAccAppController: function (scope, routeParams, resourceFactory, location, dateFilter, uiConfigService) {
scope.previewRepayment = false; scope.previewRepayment = false;
scope.clientId = routeParams.clientId; scope.clientId = routeParams.clientId;
scope.groupId = routeParams.groupId; scope.groupId = routeParams.groupId;
@ -10,12 +10,14 @@
scope.collateralFormData = {}; //For collaterals scope.collateralFormData = {}; //For collaterals
scope.inparams = {resourceType: 'template', activeOnly: 'true'}; scope.inparams = {resourceType: 'template', activeOnly: 'true'};
scope.date = {}; scope.date = {};
scope.date.first = new Date(); scope.date.first = new Date();
if (scope.clientId) { if (scope.clientId) {
scope.inparams.clientId = scope.clientId; scope.inparams.clientId = scope.clientId;
scope.formData.clientId = scope.clientId; scope.formData.clientId = scope.clientId;
} }
if (scope.groupId) { if (scope.groupId) {
scope.inparams.groupId = scope.groupId; scope.inparams.groupId = scope.groupId;
scope.formData.groupId = scope.groupId; scope.formData.groupId = scope.groupId;
@ -191,6 +193,8 @@
} }
uiConfigService.appendConfigToScope(scope);
scope.submit = function () { scope.submit = function () {
// Make sure charges and collaterals are empty before initializing. // Make sure charges and collaterals are empty before initializing.
delete scope.formData.charges; delete scope.formData.charges;
@ -251,7 +255,7 @@
} }
} }
}); });
mifosX.ng.application.controller('NewLoanAccAppController', ['$scope', '$routeParams', 'ResourceFactory', '$location', 'dateFilter', mifosX.controllers.NewLoanAccAppController]).run(function ($log) { mifosX.ng.application.controller('NewLoanAccAppController', ['$scope', '$routeParams', 'ResourceFactory', '$location', 'dateFilter', 'UIConfigService', mifosX.controllers.NewLoanAccAppController]).run(function ($log) {
$log.info("NewLoanAccAppController initialized"); $log.info("NewLoanAccAppController initialized");
}); });
}(mifosX.controllers || {})); }(mifosX.controllers || {}));

View File

@ -1,8 +1,9 @@
(function (module) { (function (module) {
mifosX.controllers = _.extend(module, { mifosX.controllers = _.extend(module, {
MainController: function (scope, location, sessionManager, translate, $rootScope, localStorageService, keyboardManager, $idle, tmhDynamicLocale) { MainController: function (scope, location, sessionManager, translate, $rootScope, localStorageService, keyboardManager, $idle, tmhDynamicLocale, uiConfigService) {
scope.version = "1.26.0"; scope.version = "1.26.0";
scope.releasedate = "22/Dec/14"; //Day/Month/Year scope.releasedate = "22/Dec/14"; //Day/Month/Year
uiConfigService.init();
//hides loader //hides loader
scope.domReady = true; scope.domReady = true;
scope.activity = {}; scope.activity = {};
@ -331,6 +332,7 @@
'localStorageService', 'localStorageService',
'keyboardManager', '$idle', 'keyboardManager', '$idle',
'tmhDynamicLocale', 'tmhDynamicLocale',
'UIConfigService',
mifosX.controllers.MainController mifosX.controllers.MainController
]).run(function ($log) { ]).run(function ($log) {
$log.info("MainController initialized"); $log.info("MainController initialized");

View File

@ -8,7 +8,8 @@ define(['Q', 'underscore', 'mifosX'], function (Q) {
'HttpServiceProvider.js', 'HttpServiceProvider.js',
'AuthenticationService.js', 'AuthenticationService.js',
'SessionManager.js', 'SessionManager.js',
'Paginator.js' 'Paginator.js',
'UIConfigService.js'
], ],
controllers: [ controllers: [
'controllers.js' 'controllers.js'

View File

@ -11,7 +11,8 @@ define(['Q', 'underscore', 'mifosX'], function (Q) {
'HttpServiceProvider', 'HttpServiceProvider',
'AuthenticationService', 'AuthenticationService',
'SessionManager', 'SessionManager',
'Paginator' 'Paginator',
'UIConfigService'
], ],
controllers: [ controllers: [
'main/MainController', 'main/MainController',

View File

@ -4,7 +4,7 @@
// and are loaded in the correct order to satisfy dependency injection // and are loaded in the correct order to satisfy dependency injection
// before all nested files are concatenated by Grunt // before all nested files are concatenated by Grunt
// Config // config
angular.module('ngCsv.config', []). angular.module('ngCsv.config', []).
value('ngCsv.config', { value('ngCsv.config', {
debug: true debug: true

View File

@ -0,0 +1,42 @@
(function (module) {
mifosX.services = _.extend(module, {
UIConfigService: function ($q,$http,$templateCache) {
this.appendConfigToScope = function(scope){
var jsonData = $templateCache.get("configJsonObj");
if(jsonData != null && jsonData != ""){
jsonData.then(function(data) {
if(data != '' && data != null && data != 'undefined'){
if(data.enableUIDisplayConfiguration != null && data.enableUIDisplayConfiguration == true){
scope.response = data;
}
}
})
}
};
this.init = function() {
var deferred = $q.defer();
$http.get('scripts/config/UIconfig.json').success(function(data) {
deferred.resolve(data);
$templateCache.put("configJsonObj", deferred.promise);
}).error(function(data) {
deferred.reject(data);
}).catch(function(e){
console.log("Configuration file not found");
});
};
}
});
mifosX.ng.services.service('UIConfigService', ['$q','$http','$templateCache',mifosX.services.UIConfigService]).run(function ($log) {
$log.info("UIConfigService initialized");
});
}(mifosX.services || {}));

View File

@ -43,8 +43,8 @@
<option value="">{{'label.selectpurpose' | translate}}</option> <option value="">{{'label.selectpurpose' | translate}}</option>
</select> </select>
</td> </td>
<td><label>{{ 'label.input.fund' | translate }}:&nbsp;</label></td> <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.fundId == true"><label>{{ 'label.input.fund' | translate }}:&nbsp;</label></td>
<td class="paddedbottom10"> <td class="paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.fundId == true">
<select id="fundId" ng-model="formData.fundId" class="form-control width170px" <select id="fundId" ng-model="formData.fundId" class="form-control width170px"
ng-options="fund.id as fund.name for fund in loanaccountinfo.fundOptions" value="{{fund.id}}"> ng-options="fund.id as fund.name for fund in loanaccountinfo.fundOptions" value="{{fund.id}}">
<option value="">{{'label.selectfund' | translate}}</option> <option value="">{{'label.selectfund' | translate}}</option>
@ -80,7 +80,9 @@
</table> </table>
<div ng-hide="previewRepayment"> <div ng-hide="previewRepayment">
<div ng-show="loanaccountinfo"> <div ng-show="loanaccountinfo">
<div ng-hide="loanaccountinfo.meeting == undefined">
<hr/> <hr/>
</div>
<label ng-show="loanaccountinfo.calendarOptions"><i class="icon-calendar icon-white"></i>&nbsp;<strong>{{ <label ng-show="loanaccountinfo.calendarOptions"><i class="icon-calendar icon-white"></i>&nbsp;<strong>{{
'label.heading.meetingdetails' | translate }}</strong></label> 'label.heading.meetingdetails' | translate }}</strong></label>
<table ng-show="loanaccountinfo.calendarOptions" class="width100"> <table ng-show="loanaccountinfo.calendarOptions" class="width100">
@ -99,23 +101,28 @@
<td><label>{{ 'label.input.syncdisbursementdatewithmeeting' | translate }}</label></td> <td><label>{{ 'label.input.syncdisbursementdatewithmeeting' | translate }}</label></td>
</tr> </tr>
</table> </table>
<div ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.linkAccountId == true">
<hr/>
</div>
<div ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.linkAccountId == true && response.uiDisplayConfigurations.loanAccount.isHiddenField.createStandingInstruction == true">
<label ng-show="loanaccountinfo"><strong>{{ 'label.heading.savingsLinkage' | translate }}</strong></label> <label ng-show="loanaccountinfo"><strong>{{ 'label.heading.savingsLinkage' | translate }}</strong></label>
</div>
<table ng-show="loanaccountinfo" ng-hide="previewRepayment" class="width100"> <table ng-show="loanaccountinfo" ng-hide="previewRepayment" class="width100">
<tr> <tr>
<td class="width19"> <td class="width19" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.linkAccountId == true">
<label>{{ 'label.input.linksavings' | translate }}:</label> <label>{{ 'label.input.linksavings' | translate }}:</label>
</td> </td>
<td class="width31 paddedbottom10"> <td class="width31 paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.linkAccountId == true">
<select id="linkAccountId" ng-model="formData.linkAccountId" <select id="linkAccountId" ng-model="formData.linkAccountId"
ng-options="savingaccount.id as savingaccount.productName for savingaccount in loanaccountinfo.accountLinkingOptions" class="form-control width170px" ng-options="savingaccount.id as savingaccount.productName for savingaccount in loanaccountinfo.accountLinkingOptions" class="form-control width170px"
value="{{savingaccount.id}}"> value="{{savingaccount.id}}">
<option value="">{{'label.menu.selectone' | translate}}</option> <option value="">{{'label.menu.selectone' | translate}}</option>
</select> </select>
</td> </td>
<td> <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.createStandingInstruction == true">
<label>{{ 'label.input.createStandingInstruction' | translate }}:</label> <label>{{ 'label.input.createStandingInstruction' | translate }}:</label>
</td> </td>
<td class="width31"> <td class="width31" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.createStandingInstruction == true">
<input id="createStandingInstruction" class="input-mini-small" type="checkbox" <input id="createStandingInstruction" class="input-mini-small" type="checkbox"
ng-model="formData.createStandingInstructionAtDisbursement"></label> ng-model="formData.createStandingInstructionAtDisbursement"></label>
</td> </td>
@ -137,22 +144,22 @@
<td class="width36 paddedbottom10"> <td class="width36 paddedbottom10">
<input id="loanTermFrequency" class="form-control" name="loanterm" type="text" <input id="loanTermFrequency" class="form-control" name="loanterm" type="text"
ng-model="formData.loanTermFrequency" required late-Validate/> ng-model="formData.loanTermFrequency" required late-Validate/>
<select id="loanTermFrequencyType" class="form-control" ng-model="formData.loanTermFrequencyType" <select ng-disabled="response.uiDisplayConfigurations.loanAccount.isReadOnlyField.loanTermFrequencyType == true" id="loanTermFrequencyType" class="form-control" ng-model="formData.loanTermFrequencyType"
ng-options="termFrequencyType.id as termFrequencyType.value for termFrequencyType in loanaccountinfo.termFrequencyTypeOptions" ng-options="termFrequencyType.id as termFrequencyType.value for termFrequencyType in loanaccountinfo.termFrequencyTypeOptions"
value="{{termFrequencyType.id}}"/> value="{{termFrequencyType.id}}"/>
<form-validate valattributeform="editloanaccountform" valattribute="loanterm"/> <form-validate valattributeform="editloanaccountform" valattribute="loanterm"/>
</td> </td>
</tr> </tr>
<tr> <tr>
<td><label>{{ 'label.input.numofrepayments' | translate }}&nbsp;<span class="required">*</span></label> <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.numberOfRepayments == true"><label>{{ 'label.input.numofrepayments' | translate }}&nbsp;<span class="required">*</span></label>
</td> </td>
<td class="paddedbottom10"> <td class="paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.numberOfRepayments == true">
<input id="numberOfRepayments" class="form-control" name="numofrepayments" type="text" <input id="numberOfRepayments" class="form-control" name="numofrepayments" type="text"
ng-model="formData.numberOfRepayments" required late-Validate/>&nbsp; ng-model="formData.numberOfRepayments" required late-Validate/>&nbsp;
<form-validate valattributeform="editloanaccountform" valattribute="numofrepayments"/> <form-validate valattributeform="editloanaccountform" valattribute="numofrepayments"/>
</td> </td>
<td><label>{{ 'label.input.repaidevery' | translate }}&nbsp;<span class="required">*</span></label></td> <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.repaymentEvery == true"><label>{{ 'label.input.repaidevery' | translate }}&nbsp;<span class="required">*</span></label></td>
<td class="paddedbottom10"> <td class="paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.repaymentEvery == true">
<input id="repaymentEvery" class="form-control" type="text" name="repaidevery" <input id="repaymentEvery" class="form-control" type="text" name="repaidevery"
ng-model="formData.repaymentEvery" required late-Validate/> ng-model="formData.repaymentEvery" required late-Validate/>
<select id="repaymentFrequencyType" class="form-control" ng-model="formData.repaymentFrequencyType" <select id="repaymentFrequencyType" class="form-control" ng-model="formData.repaymentFrequencyType"
@ -162,14 +169,14 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td><label>{{ 'label.input.firstrepaymenton' | translate }}</label></td> <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.repaymentsStartingFromDate == true"><label>{{ 'label.input.firstrepaymenton' | translate }}</label></td>
<td class="paddedbottom10"> <td class="paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.repaymentsStartingFromDate == true">
<input id="repaymentsStartingFromDate" type="text" datepicker-pop="dd MMMM yyyy" class="form-control" <input id="repaymentsStartingFromDate" type="text" datepicker-pop="dd MMMM yyyy" class="form-control"
ng-model="formData.repaymentsStartingFromDate" is-open="opened3" min="minDate" ng-model="formData.repaymentsStartingFromDate" is-open="opened3" min="minDate"
max="'2020-06-22'"/> max="'2020-06-22'"/>
</td> </td>
<td><label class="control-label">{{ 'label.input.interestchargedfrom' | translate }}:</label></td> <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.interestChargedFromDate == true"><label class="control-label">{{ 'label.input.interestchargedfrom' | translate }}:</label></td>
<td class="paddedbottom10"> <td class="paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.interestChargedFromDate == true">
<input id="interestChargedFromDate" type="text" datepicker-pop="dd MMMM yyyy" class="form-control" <input id="interestChargedFromDate" type="text" datepicker-pop="dd MMMM yyyy" class="form-control"
ng-model="formData.interestChargedFromDate" is-open="opened2" min="minDate" ng-model="formData.interestChargedFromDate" is-open="opened2" min="minDate"
max="'2020-06-22'"/> max="'2020-06-22'"/>
@ -182,57 +189,57 @@
<input id="interestRatePerPeriod" class="form-control" type="text" name="nominalinterestrate" <input id="interestRatePerPeriod" class="form-control" type="text" name="nominalinterestrate"
ng-model="formData.interestRatePerPeriod" required late-Validate/>&nbsp;&nbsp;{{loanaccountinfo.interestRateFrequencyType.value}} ng-model="formData.interestRatePerPeriod" required late-Validate/>&nbsp;&nbsp;{{loanaccountinfo.interestRateFrequencyType.value}}
</td> </td>
<td><label>{{ 'label.input.interestmethod' | translate }}</label></td> <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.interestType == true"><label>{{ 'label.input.interestmethod' | translate }}</label></td>
<td class="paddedbottom10"> <td class="paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.interestType == true">
<select id="interestType" ng-model="formData.interestType" class="form-control width170px" <select id="interestType" ng-model="formData.interestType" class="form-control width170px"
ng-options="interestType.id as interestType.value for interestType in loanaccountinfo.interestTypeOptions" ng-options="interestType.id as interestType.value for interestType in loanaccountinfo.interestTypeOptions"
value="{{interestType.id}}"/> value="{{interestType.id}}"/>
</td> </td>
</tr> </tr>
<tr> <tr>
<td><label>{{ 'label.input.amortization' | translate }}&nbsp;<span class="required">*</span>:</label> <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.amortizationType == true"><label>{{ 'label.input.amortization' | translate }}&nbsp;<span class="required">*</span>:</label>
</td> </td>
<td class="paddedbottom10"> <td class="paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.amortizationType == true">
<select id="amortizationType" ng-model="formData.amortizationType" class="form-control width170px" <select id="amortizationType" ng-model="formData.amortizationType" class="form-control width170px"
ng-options="amortizationType.id as amortizationType.value for amortizationType in loanaccountinfo.amortizationTypeOptions" ng-options="amortizationType.id as amortizationType.value for amortizationType in loanaccountinfo.amortizationTypeOptions"
value="{{amortizationType.id}}"/> value="{{amortizationType.id}}"/>
</td> </td>
<td><label>{{ 'label.input.interestcalculationperiod' | translate }}&nbsp;<span <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.interestCalculationPeriodType == true"><label>{{ 'label.input.interestcalculationperiod' | translate }}&nbsp;<span
class="required">*</span></label></td> class="required">*</span></label></td>
<td class="paddedbottom10"> <td class="paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.interestCalculationPeriodType == true">
<select id="interestCalculationPeriodType" ng-model="formData.interestCalculationPeriodType" class="form-control width170px" <select id="interestCalculationPeriodType" ng-model="formData.interestCalculationPeriodType" class="form-control width170px"
ng-options="interestCalculationPeriodType.id as interestCalculationPeriodType.value for interestCalculationPeriodType in loanaccountinfo.interestCalculationPeriodTypeOptions" ng-options="interestCalculationPeriodType.id as interestCalculationPeriodType.value for interestCalculationPeriodType in loanaccountinfo.interestCalculationPeriodTypeOptions"
value="{{interestCalculationPeriodType.id}}"/> value="{{interestCalculationPeriodType.id}}"/>
</td> </td>
</tr> </tr>
<tr> <tr>
<td><label>{{ 'label.input.arearstolerance' | translate }}</label></td> <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.inArrearsTolerance == true"><label>{{ 'label.input.arearstolerance' | translate }}</label></td>
<td class="paddedbottom10"> <td class="paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.inArrearsTolerance == true">
<input id="inArrearsTolerance" type="text" class="form-control" ng-model="formData.inArrearsTolerance" number-format>&nbsp;{{loanaccountinfo.currency.displaySymbol}} <input id="inArrearsTolerance" type="text" class="form-control" ng-model="formData.inArrearsTolerance" number-format>&nbsp;{{loanaccountinfo.currency.displaySymbol}}
</td> </td>
<td><label>{{ 'label.input.interestfreeperiod' | translate }}</label></td> <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.graceOnInterestCharged == true"><label>{{ 'label.input.interestfreeperiod' | translate }}</label></td>
<td class="paddedbottom10"> <td class="paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.graceOnInterestCharged == true">
<input id="graceOnInterestCharged" type="text" class="form-control" ng-model="formData.graceOnInterestCharged"> <input id="graceOnInterestCharged" type="text" class="form-control" ng-model="formData.graceOnInterestCharged">
</td> </td>
</tr> </tr>
<tr> <tr>
<td><label>{{ 'label.input.repaymentstrategy' | translate }}&nbsp;<span <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.transactionProcessingStrategyId == true"><label>{{ 'label.input.repaymentstrategy' | translate }}&nbsp;<span
class="required">*</span></label></td> class="required">*</span></label></td>
<td class="paddedbottom10"> <td class="paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.transactionProcessingStrategyId == true">
<select id="transactionProcessingStrategyId" ng-model="formData.transactionProcessingStrategyId" class="form-control width170px" <select id="transactionProcessingStrategyId" ng-model="formData.transactionProcessingStrategyId" class="form-control width170px"
ng-options="transactionProcessingStrategy.id as transactionProcessingStrategy.name for transactionProcessingStrategy in loanaccountinfo.transactionProcessingStrategyOptions" ng-options="transactionProcessingStrategy.id as transactionProcessingStrategy.name for transactionProcessingStrategy in loanaccountinfo.transactionProcessingStrategyOptions"
value="{{transactionProcessingStrategy.id}}"/> value="{{transactionProcessingStrategy.id}}"/>
</td> </td>
<td colspan=2 class="paddedbottom10"> <td colspan=2 class="paddedbottom10">
<label>{{ 'label.input.grace' | translate }}&nbsp;{{'label.input.onprincipalpayment' | translate}}&nbsp;<input <label>{{ 'label.input.grace' | translate }}&nbsp;{{'label.input.onprincipalpayment' | translate}}</label>&nbsp;<input
id="graceOnPrincipalPayment" class="input-mini-small" type="text" id="graceOnPrincipalPayment" class="input-mini-small" type="text"
ng-model="formData.graceOnPrincipalPayment">&nbsp;{{'label.input.oninterestpayment' | ng-model="formData.graceOnPrincipalPayment">&nbsp;<label ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.graceOnInterestPayment == true">{{'label.input.oninterestpayment' |
translate}}&nbsp;<input id="graceOnInterestPayment" type="text" class="input-mini-small" translate}}</label>&nbsp;<input ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.graceOnInterestPayment == true" id="graceOnInterestPayment" type="text" class="input-mini-small"
ng-model="formData.graceOnInterestPayment"></label> ng-model="formData.graceOnInterestPayment"></label>
</td> </td>
</tr> </tr>
<tr> <tr>
<td colspan=2 class="paddedbottom10"> <td colspan=2 class="paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.graceOnArrearsAgeing == true">
<label>{{ 'label.input.grace' | translate }}&nbsp;{{'label.input.onduedate' | translate}}&nbsp; <label>{{ 'label.input.grace' | translate }}&nbsp;{{'label.input.onduedate' | translate}}&nbsp;
<input <input
id="graceOnArrearsAgeing" class="input-mini-small" type="text" id="graceOnArrearsAgeing" class="input-mini-small" type="text"
@ -240,9 +247,9 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td colspan="4"><hr></td> <td colspan="4" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenSection.interestRecalculationSection == true"><hr></td>
</tr> </tr>
<tr> <tr ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenSection.interestRecalculationSection == true">
<td> <td>
<label class="control-label">{{ 'label.input.recalculateinterest' | translate }}</label> <label class="control-label">{{ 'label.input.recalculateinterest' | translate }}</label>
</td> </td>
@ -257,48 +264,48 @@
</td> </td>
</tr> </tr>
<tr data-ng-show="loanaccountinfo.isInterestRecalculationEnabled"> <tr data-ng-show="loanaccountinfo.isInterestRecalculationEnabled">
<td> <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenSection.interestRecalculationSection == true">
<label>{{ 'label.input.interest.recalculation.reschdule.strategy' | translate }}</label> <label>{{ 'label.input.interest.recalculation.reschdule.strategy' | translate }}</label>
</td> </td>
<td class="paddedbottom10"> <td class="paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenSection.interestRecalculationSection == true">
<label>{{ loanaccountinfo.interestRecalculationData.rescheduleStrategyType.value}}</label> <label>{{ loanaccountinfo.interestRecalculationData.rescheduleStrategyType.value}}</label>
</td> </td>
<td> <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenSection.interestRecalculationSection == true">
<label>{{ 'label.input.daysinmonth' | translate }}</label> <label>{{ 'label.input.daysinmonth' | translate }}</label>
</td> </td>
<td class="paddedbottom10"> <td class="paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenSection.interestRecalculationSection == true">
<label>{{ loanaccountinfo.daysInMonthType.value }}</label> <label>{{ loanaccountinfo.daysInMonthType.value }}</label>
</td> </td>
</tr> </tr>
<tr data-ng-show="loanaccountinfo.isInterestRecalculationEnabled"> <tr data-ng-show="loanaccountinfo.isInterestRecalculationEnabled">
<td> <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenSection.interestRecalculationSection == true">
<label class="control-label">{{ 'label.input.interest.recalculation.compounding.method' | translate }}</label> <label class="control-label">{{ 'label.input.interest.recalculation.compounding.method' | translate }}</label>
</td> </td>
<td class="paddedbottom10"> <td class="paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenSection.interestRecalculationSection == true">
<label>{{ loanaccountinfo.interestRecalculationData.interestRecalculationCompoundingType.value}}</label> <label>{{ loanaccountinfo.interestRecalculationData.interestRecalculationCompoundingType.value}}</label>
</td> </td>
<td> <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenSection.interestRecalculationSection == true">
<label class="control-label">{{ 'label.input.frequency.for.recalculte.outstanding.principal' | <label class="control-label">{{ 'label.input.frequency.for.recalculte.outstanding.principal' |
translate }}<span class="required">*</span></label> translate }}<span class="required">*</span></label>
</td> </td>
<td class="paddedbottom10"> <td class="paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenSection.interestRecalculationSection == true">
<label>{{ loanaccountinfo.interestRecalculationData.recalculationRestFrequencyType.value}}</label> <label>{{ loanaccountinfo.interestRecalculationData.recalculationRestFrequencyType.value}}</label>
</td> </td>
</tr> </tr>
<tr data-ng-show="loanaccountinfo.isInterestRecalculationEnabled && loanaccountinfo.interestRecalculationData.recalculationRestFrequencyType.id != 1"> <tr data-ng-show="loanaccountinfo.isInterestRecalculationEnabled && loanaccountinfo.interestRecalculationData.recalculationRestFrequencyType.id != 1">
<td> <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenSection.interestRecalculationSection == true">
<label class="control-label">{{ 'label.input.frequenc.interval.for.recalculte.outstanding.principal' | translate }}</label> <label class="control-label">{{ 'label.input.frequenc.interval.for.recalculte.outstanding.principal' | translate }}</label>
</td> </td>
<td class="paddedbottom10"> <td class="paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenSection.interestRecalculationSection == true">
<label>{{ loanaccountinfo.interestRecalculationData.recalculationRestFrequencyInterval}}</label> <label>{{ loanaccountinfo.interestRecalculationData.recalculationRestFrequencyInterval}}</label>
</td> </td>
<td> <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenSection.interestRecalculationSection == true">
<label class="control-label">{{ 'label.input.frequenc.date.for.recalculte.outstanding.principal' | <label class="control-label">{{ 'label.input.frequenc.date.for.recalculte.outstanding.principal' |
translate }}<span class="required">*</span></label> translate }}<span class="required">*</span></label>
</td> </td>
<td class="paddedbottom10"> <td class="paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenSection.interestRecalculationSection == true">
<input type="text" id="recalculationRestFrequencyDate" name="recalculationRestFrequencyDate" datepicker-pop="dd MMMM yyyy" <input type="text" id="recalculationRestFrequencyDate" name="recalculationRestFrequencyDate" datepicker-pop="dd MMMM yyyy"
ng-model="date.recalculationRestFrequencyDate" is-open="opened" min="'2000-01-01'" max="restrictDate" class="form-control"/> ng-model="date.recalculationRestFrequencyDate" is-open="opened" min="'2000-01-01'" max="restrictDate" class="form-control"/>
</td> </td>
@ -398,7 +405,7 @@
</tr> </tr>
</table> </table>
</div> </div>
<div class="col-md-12 paddedtop"> <div class="col-md-12 paddedtop" ng-hide = "response.uiDisplayConfigurations.loanAccount.isHiddenSection.collateralSection == true">
<label><strong>{{ 'label.heading.collaterals' | translate }}</strong></label> <label><strong>{{ 'label.heading.collaterals' | translate }}</strong></label>
<select ng-model="collateralFormData.collateralIdTemplate" class="form-control width170px" <select ng-model="collateralFormData.collateralIdTemplate" class="form-control width170px"
ng-options="collateralTemplate.name for collateralTemplate in collateralOptions" ng-options="collateralTemplate.name for collateralTemplate in collateralOptions"
@ -410,6 +417,7 @@
placeholder="{{'label.input.description' | translate}}"> placeholder="{{'label.input.description' | translate}}">
<a ng-click="addCollateral()">&nbsp;<i class="icon-plus icon-white"></i></a> <a ng-click="addCollateral()">&nbsp;<i class="icon-plus icon-white"></i></a>
</div> </div>
<div ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenSection.collateralSection == true">
<table class="table" class="width100" ng-show="collaterals.length>0"> <table class="table" class="width100" ng-show="collaterals.length>0">
<tr class="graybg"> <tr class="graybg">
<th>{{'label.heading.name' | translate}}</th> <th>{{'label.heading.name' | translate}}</th>
@ -427,6 +435,7 @@
</tr> </tr>
</table> </table>
</div> </div>
</div>
</div> </div>
<br> <br>

View File

@ -43,8 +43,8 @@
<option value="">{{'label.selectpurpose' | translate}}</option> <option value="">{{'label.selectpurpose' | translate}}</option>
</select> </select>
</td> </td>
<td><label>{{ 'label.input.fund' | translate }}:&nbsp;</label></td> <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.fundId == true"><label>{{ 'label.input.fund' | translate }}:&nbsp;</label></td>
<td class="paddedbottom10"> <td class="paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.fundId == true">
<select id="fundId" ng-model="formData.fundId" class="form-control width170px" <select id="fundId" ng-model="formData.fundId" class="form-control width170px"
ng-options="fund.id as fund.name for fund in loanaccountinfo.fundOptions" value="{{fund.id}}"> ng-options="fund.id as fund.name for fund in loanaccountinfo.fundOptions" value="{{fund.id}}">
<option value="">{{'label.selectfund' | translate}}</option> <option value="">{{'label.selectfund' | translate}}</option>
@ -70,7 +70,7 @@
</tr> </tr>
<tr ng-show="formData.productId"> <tr ng-show="formData.productId">
<td><label>{{ 'label.input.externalid' | translate }}</label> <td><label>{{ 'label.input.externalid' | translate }}</label>
<i class="icon-question-sign" tooltip="{{'label.tooltip.externalid' | translate}}"></td> <i class="icon-question-sign" tooltip="{{'label.tooltip.externalid' | translate}}"></i></td>
<td class="paddedbottom10"> <td class="paddedbottom10">
<input type="text" id="externalId" name="externalId" ng-model="formData.externalId" class="form-control"/> <input type="text" id="externalId" name="externalId" ng-model="formData.externalId" class="form-control"/>
</td> </td>
@ -80,7 +80,9 @@
</table> </table>
<div ng-hide="previewRepayment"> <div ng-hide="previewRepayment">
<div ng-show="loanaccountinfo"> <div ng-show="loanaccountinfo">
<div ng-hide="loanaccountinfo.calendarOptions == undefined">
<hr ng-show="loanaccountinfo"/> <hr ng-show="loanaccountinfo"/>
</div>
<label ng-show="loanaccountinfo.calendarOptions"><i class="icon-calendar icon-white"></i>&nbsp;<strong>{{ <label ng-show="loanaccountinfo.calendarOptions"><i class="icon-calendar icon-white"></i>&nbsp;<strong>{{
'label.heading.meetingdetails' | translate }}</strong></label> 'label.heading.meetingdetails' | translate }}</strong></label>
<table ng-show="loanaccountinfo.calendarOptions" class="width100"> <table ng-show="loanaccountinfo.calendarOptions" class="width100">
@ -99,28 +101,34 @@
<td><label>{{ 'label.input.syncdisbursementdatewithmeeting' | translate }}</label></td> <td><label>{{ 'label.input.syncdisbursementdatewithmeeting' | translate }}</label></td>
</tr> </tr>
</table> </table>
<div ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.linkAccountId == true">
<hr ng-show="loanaccountinfo"/>
</div>
<div ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.linkAccountId == true && response.uiDisplayConfigurations.loanAccount.isHiddenField.createStandingInstruction == true">
<label ng-show="loanaccountinfo"><strong>{{ 'label.heading.savingsLinkage' | translate }}</strong></label> <label ng-show="loanaccountinfo"><strong>{{ 'label.heading.savingsLinkage' | translate }}</strong></label>
<table ng-show="loanaccountinfo" ng-hide="previewRepayment" class="width100"> </div>
<table ng-show="loanaccountinfo" ng-show="previewRepayment" class="width100">
<tr> <tr>
<td class="width19"> <td class="width19" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.linkAccountId == true">
<label>{{ 'label.input.linksavings' | translate }}:</label> <label>{{ 'label.input.linksavings' | translate }}:</label>
</td> </td>
<td class="width31 paddedbottom10"> <td class="width31 paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.linkAccountId == true">
<select id="linkAccountId" ng-model="formData.linkAccountId" <select id="linkAccountId" ng-model="formData.linkAccountId"
ng-options="savingaccount.id as savingaccount.productName for savingaccount in loanaccountinfo.accountLinkingOptions" class="form-control width170px" ng-options="savingaccount.id as savingaccount.productName for savingaccount in loanaccountinfo.accountLinkingOptions" class="form-control width170px"
value="{{savingaccount.id}}"> value="{{savingaccount.id}}">
<option value="">{{'label.menu.selectone' | translate}}</option> <option value="">{{'label.menu.selectone' | translate}}</option>
</select> </select>
</td> </td>
<td> <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.createStandingInstruction == true">
<label>{{ 'label.input.createStandingInstruction' | translate }}:</label> <label>{{ 'label.input.createStandingInstruction' | translate }}:</label>
</td> </td>
<td class="width31"> <td class="width31" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.createStandingInstruction == true">
<input id="createStandingInstruction" class="input-mini-small" type="checkbox" <input id="createStandingInstruction" class="input-mini-small" type="checkbox"
ng-model="formData.createStandingInstructionAtDisbursement"></label> ng-model="formData.createStandingInstructionAtDisbursement"></label>
</td> </td>
</tr> </tr>
</table> </table>
<hr ng-show="loanaccountinfo"/> <hr ng-show="loanaccountinfo"/>
<label ng-show="loanaccountinfo"><strong>{{ 'label.heading.terms' | translate }}</strong></label> <label ng-show="loanaccountinfo"><strong>{{ 'label.heading.terms' | translate }}</strong></label>
<!--<hr class="terms">--> <!--<hr class="terms">-->
@ -139,22 +147,22 @@
<td class="width36 paddedbottom10"> <td class="width36 paddedbottom10">
<input id="loanTermFrequency" class="form-control" name="loanterm" type="text" <input id="loanTermFrequency" class="form-control" name="loanterm" type="text"
ng-model="formData.loanTermFrequency" required late-Validate/> ng-model="formData.loanTermFrequency" required late-Validate/>
<select id="loanTermFrequencyType" class="form-control" ng-model="formData.loanTermFrequencyType" <select ng-disabled="response.uiDisplayConfigurations.loanAccount.isReadOnlyField.loanTermFrequencyType == true" id="loanTermFrequencyType" class="form-control" ng-model="formData.loanTermFrequencyType"
ng-options="termFrequencyType.id as termFrequencyType.value for termFrequencyType in loanaccountinfo.termFrequencyTypeOptions" ng-options="termFrequencyType.id as termFrequencyType.value for termFrequencyType in loanaccountinfo.termFrequencyTypeOptions"
value="{{termFrequencyType.id}}"/> value="{{termFrequencyType.id}}"/>
<form-validate valattributeform="newloanaccountform" valattribute="loanterm"/> <form-validate valattributeform="newloanaccountform" valattribute="loanterm"/>
</td> </td>
</tr> </tr>
<tr> <tr>
<td><label>{{ 'label.input.numofrepayments' | translate }}&nbsp;<span class="required">*</span></label> <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.numberOfRepayments == true"><label>{{ 'label.input.numofrepayments' | translate }}&nbsp;<span class="required">*</span></label>
</td> </td>
<td class="paddedbottom10"> <td class="paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.numberOfRepayments == true">
<input id="numberOfRepayments" class="form-control" name="numofrepayments" type="text" <input id="numberOfRepayments" class="form-control" name="numofrepayments" type="text"
ng-model="formData.numberOfRepayments" required late-Validate/>&nbsp; ng-model="formData.numberOfRepayments" required late-Validate/>&nbsp;
<form-validate valattributeform="newloanaccountform" valattribute="numofrepayments"/> <form-validate valattributeform="newloanaccountform" valattribute="numofrepayments"/>
</td> </td>
<td><label>{{ 'label.input.repaidevery' | translate }}&nbsp;<span class="required">*</span></label></td> <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.repaymentEvery == true"><label>{{ 'label.input.repaidevery' | translate }}&nbsp;<span class="required">*</span></label></td>
<td class="paddedbottom10 width500px"> <td class="paddedbottom10 width500px" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.repaymentEvery == true">
<input id="repaymentEvery" class="form-control" type="text" name="repaidevery" <input id="repaymentEvery" class="form-control" type="text" name="repaidevery"
ng-model="formData.repaymentEvery" required late-Validate/> ng-model="formData.repaymentEvery" required late-Validate/>
@ -175,17 +183,17 @@
</tr> </tr>
<tr> <tr>
<td> <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.repaymentsStartingFromDate == true">
<label>{{ 'label.input.firstrepaymenton' | translate }}</label> <label>{{ 'label.input.firstrepaymenton' | translate }}</label>
<i class="icon-question-sign" tooltip="{{'label.tooltip.firstrepaymenton' | translate}}"></i> <i class="icon-question-sign" tooltip="{{'label.tooltip.firstrepaymenton' | translate}}"></i>
</td> </td>
<td class="paddedbottom10"> <td class="paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.repaymentsStartingFromDate == true">
<input id="repaymentsStartingFromDate" type="text" datepicker-pop="dd MMMM yyyy" <input id="repaymentsStartingFromDate" type="text" datepicker-pop="dd MMMM yyyy"
ng-model="date.fourth" is-open="opened3" min="minDate" max="'2020-06-22'" class="form-control"/> ng-model="date.fourth" is-open="opened3" min="minDate" max="'2020-06-22'" class="form-control"/>
</td> </td>
<td><label class="control-label">{{ 'label.input.interestchargedfrom' | translate }}:</label> <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.interestChargedFromDate == true"><label class="control-label">{{ 'label.input.interestchargedfrom' | translate }}:</label>
<i class="icon-question-sign" tooltip="{{'label.tooltip.interestchargedfrom' | translate}}"></i></td> <i class="icon-question-sign" tooltip="{{'label.tooltip.interestchargedfrom' | translate}}"></i></td>
<td class="paddedbottom10"> <td class="paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.interestChargedFromDate == true">
<input id="interestChargedFromDate" type="text" datepicker-pop="dd MMMM yyyy" ng-model="date.third" <input id="interestChargedFromDate" type="text" datepicker-pop="dd MMMM yyyy" ng-model="date.third"
is-open="opened2" min="minDate" max="'2020-06-22'" class="form-control"/> is-open="opened2" min="minDate" max="'2020-06-22'" class="form-control"/>
</td> </td>
@ -197,43 +205,43 @@
<input id="interestRatePerPeriod" class="form-control" type="text" name="nominalinterestrate" <input id="interestRatePerPeriod" class="form-control" type="text" name="nominalinterestrate"
ng-model="formData.interestRatePerPeriod" required late-Validate/>&nbsp;&nbsp;{{loanaccountinfo.interestRateFrequencyType.value}} ng-model="formData.interestRatePerPeriod" required late-Validate/>&nbsp;&nbsp;{{loanaccountinfo.interestRateFrequencyType.value}}
</td> </td>
<td><label>{{ 'label.input.interestmethod' | translate }}</label></td> <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.interestType == true"><label>{{ 'label.input.interestmethod' | translate }}</label></td>
<td class="paddedbottom10"> <td class="paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.interestType == true">
<select id="interestType" ng-model="formData.interestType" <select id="interestType" ng-model="formData.interestType"
ng-options="interestType.id as interestType.value for interestType in loanaccountinfo.interestTypeOptions" class="form-control width170px" ng-options="interestType.id as interestType.value for interestType in loanaccountinfo.interestTypeOptions" class="form-control width170px"
value="{{interestType.id}}"/> value="{{interestType.id}}"/>
</td> </td>
</tr> </tr>
<tr> <tr>
<td><label>{{ 'label.input.amortization' | translate }}&nbsp;<span class="required">*</span>:</label> <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.amortizationType == true"><label>{{ 'label.input.amortization' | translate }}&nbsp;<span class="required">*</span>:</label>
</td> </td>
<td class="paddedbottom10"> <td class="paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.amortizationType == true">
<select id="amortizationType" ng-model="formData.amortizationType" class="form-control width170px" <select id="amortizationType" ng-model="formData.amortizationType" class="form-control width170px"
ng-options="amortizationType.id as amortizationType.value for amortizationType in loanaccountinfo.amortizationTypeOptions" ng-options="amortizationType.id as amortizationType.value for amortizationType in loanaccountinfo.amortizationTypeOptions"
value="{{amortizationType.id}}"/> value="{{amortizationType.id}}"/>
</td> </td>
<td><label>{{ 'label.input.interestcalculationperiod' | translate }}&nbsp;<span <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.interestCalculationPeriodType == true"><label>{{ 'label.input.interestcalculationperiod' | translate }}&nbsp;<span
class="required">*</span></label></td> class="required">*</span></label></td>
<td class="paddedbottom10"> <td class="paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.interestCalculationPeriodType == true">
<select id="interestCalculationPeriodType" ng-model="formData.interestCalculationPeriodType" <select id="interestCalculationPeriodType" ng-model="formData.interestCalculationPeriodType"
ng-options="interestCalculationPeriodType.id as interestCalculationPeriodType.value for interestCalculationPeriodType in loanaccountinfo.interestCalculationPeriodTypeOptions" class="form-control width170px" ng-options="interestCalculationPeriodType.id as interestCalculationPeriodType.value for interestCalculationPeriodType in loanaccountinfo.interestCalculationPeriodTypeOptions" class="form-control width170px"
value="{{interestCalculationPeriodType.id}}"/> value="{{interestCalculationPeriodType.id}}"/>
</td> </td>
</tr> </tr>
<tr> <tr>
<td><label>{{ 'label.input.arearstolerance' | translate }}</label></td> <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.inArrearsTolerance == true"><label>{{ 'label.input.arearstolerance' | translate }}</label></td>
<td class="paddedbottom10"> <td class="paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.inArrearsTolerance == true">
<input id="inArrearsTolerance" type="text" ng-model="formData.inArrearsTolerance" class="form-control" number-format/>&nbsp;{{loanaccountinfo.currency.displaySymbol}} <input id="inArrearsTolerance" type="text" ng-model="formData.inArrearsTolerance" class="form-control" number-format/>&nbsp;{{loanaccountinfo.currency.displaySymbol}}
</td> </td>
<td><label>{{ 'label.input.interestfreeperiod' | translate }}</label></td> <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.graceOnInterestCharged == true"><label>{{ 'label.input.interestfreeperiod' | translate }}</label></td>
<td class="paddedbottom10"> <td class="paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.graceOnInterestCharged == true">
<input id="graceOnInterestCharged" type="text" ng-model="formData.graceOnInterestCharged" class="form-control"/> <input id="graceOnInterestCharged" type="text" ng-model="formData.graceOnInterestCharged" class="form-control"/>
</td> </td>
</tr> </tr>
<tr> <tr>
<td><label>{{ 'label.input.repaymentstrategy' | translate }}&nbsp;<span <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.transactionProcessingStrategyId == true"><label>{{ 'label.input.repaymentstrategy' | translate }}&nbsp;<span
class="required">*</span></label></td> class="required">*</span></label></td>
<td class="paddedbottom10"> <td class="paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.transactionProcessingStrategyId == true">
<select id="transactionProcessingStrategyId" ng-model="formData.transactionProcessingStrategyId" <select id="transactionProcessingStrategyId" ng-model="formData.transactionProcessingStrategyId"
ng-options="transactionProcessingStrategy.id as transactionProcessingStrategy.name for transactionProcessingStrategy in loanaccountinfo.transactionProcessingStrategyOptions" ng-options="transactionProcessingStrategy.id as transactionProcessingStrategy.name for transactionProcessingStrategy in loanaccountinfo.transactionProcessingStrategyOptions"
value="{{transactionProcessingStrategy.id}}" class="form-control width170px"/> value="{{transactionProcessingStrategy.id}}" class="form-control width170px"/>
@ -243,16 +251,16 @@
<i class="icon-question-sign" tooltip="{{'label.tooltip.moratorium' | translate}}"></i> <i class="icon-question-sign" tooltip="{{'label.tooltip.moratorium' | translate}}"></i>
<label>{{'label.input.onprincipalpayment' | translate}}</label> <label>{{'label.input.onprincipalpayment' | translate}}</label>
<input id="graceOnPrincipalPayment" type="text" class="input-mini-small" ng-model="formData.graceOnPrincipalPayment"> <input id="graceOnPrincipalPayment" type="text" class="input-mini-small" ng-model="formData.graceOnPrincipalPayment">
<label>{{'label.input.oninterestpayment' | translate}}</label> <label ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.graceOnInterestPayment == true">{{'label.input.oninterestpayment' | translate}}</label>
<input id="graceOnInterestPayment" type="text" class="input-mini-small" ng-model="formData.graceOnInterestPayment"> <input ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.graceOnInterestPayment == true" id="graceOnInterestPayment" type="text" class="input-mini-small" ng-model="formData.graceOnInterestPayment">
<label>{{'label.input.onduedate' | translate}}</label> <label ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.graceOnArrearsAgeing == true">{{'label.input.onduedate' | translate}}</label>
<input id="graceOnArrearsAgeing" type="text" class="input-mini-small" ng-model="formData.graceOnArrearsAgeing"> <input ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenField.graceOnArrearsAgeing == true" id="graceOnArrearsAgeing" type="text" class="input-mini-small" ng-model="formData.graceOnArrearsAgeing">
</td> </td>
</tr> </tr>
<tr> <tr>
<td colspan="4"><hr></td> <td colspan="4" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenSection.interestRecalculationSection == true"><hr></td>
</tr> </tr>
<tr> <tr ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenSection.interestRecalculationSection == true">
<td> <td>
<label class="control-label">{{ 'label.input.recalculateinterest' | translate }}</label> <label class="control-label">{{ 'label.input.recalculateinterest' | translate }}</label>
</td> </td>
@ -268,53 +276,54 @@
</td> </td>
</tr> </tr>
<tr data-ng-show="loanaccountinfo.isInterestRecalculationEnabled"> <tr data-ng-show="loanaccountinfo.isInterestRecalculationEnabled">
<td> <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenSection.interestRecalculationSection == true">
<label>{{ 'label.input.interest.recalculation.reschdule.strategy' | translate }}</label> <label>{{ 'label.input.interest.recalculation.reschdule.strategy' | translate }}</label>
</td> </td>
<td class="paddedbottom10"> <td class="paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenSection.interestRecalculationSection == true">
<label>{{ loanaccountinfo.interestRecalculationData.rescheduleStrategyType.value}}</label> <label>{{ loanaccountinfo.interestRecalculationData.rescheduleStrategyType.value}}</label>
</td> </td>
<td> <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenSection.interestRecalculationSection == true">
<label>{{ 'label.input.daysinmonth' | translate }}</label> <label>{{ 'label.input.daysinmonth' | translate }}</label>
<i class="icon-question-sign" tooltip="{{'label.tooltip.days' | translate}}"></i> <i class="icon-question-sign" tooltip="{{'label.tooltip.days' | translate}}"></i>
</td> </td>
<td class="paddedbottom10"> <td class="paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenSection.interestRecalculationSection == true">
<label>{{ loanaccountinfo.daysInMonthType.value }}</label> <label>{{ loanaccountinfo.daysInMonthType.value }}</label>
</td> </td>
</tr> </tr>
<tr data-ng-show="loanaccountinfo.isInterestRecalculationEnabled"> <tr data-ng-show="loanaccountinfo.isInterestRecalculationEnabled">
<td> <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenSection.interestRecalculationSection == true">
<label class="control-label">{{ 'label.input.interest.recalculation.compounding.method' | translate }}</label> <label class="control-label">{{ 'label.input.interest.recalculation.compounding.method' | translate }}</label>
</td> </td>
<td class="paddedbottom10"> <td class="paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenSection.interestRecalculationSection == true">
<label>{{ loanaccountinfo.interestRecalculationData.interestRecalculationCompoundingType.value}}</label> <label>{{ loanaccountinfo.interestRecalculationData.interestRecalculationCompoundingType.value}}</label>
</td> </td>
<td> <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenSection.interestRecalculationSection == true">
<label class="control-label">{{ 'label.input.frequency.for.recalculte.outstanding.principal' | <label class="control-label">{{ 'label.input.frequency.for.recalculte.outstanding.principal' |
translate }}<span class="required">*</span></label> translate }}<span class="required">*</span></label>
</td> </td>
<td class="paddedbottom10"> <td class="paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenSection.interestRecalculationSection == true">
<label>{{ loanaccountinfo.interestRecalculationData.recalculationRestFrequencyType.value}}</label> <label>{{ loanaccountinfo.interestRecalculationData.recalculationRestFrequencyType.value}}</label>
</td> </td>
</tr> </tr>
<tr data-ng-show="loanaccountinfo.isInterestRecalculationEnabled && loanaccountinfo.interestRecalculationData.recalculationRestFrequencyType.id != 1"> <tr data-ng-show="loanaccountinfo.isInterestRecalculationEnabled && loanaccountinfo.interestRecalculationData.recalculationRestFrequencyType.id != 1">
<td> <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenSection.interestRecalculationSection == true">
<label class="control-label">{{ 'label.input.frequenc.interval.for.recalculte.outstanding.principal' | translate }}</label> <label class="control-label">{{ 'label.input.frequenc.interval.for.recalculte.outstanding.principal' | translate }}</label>
</td> </td>
<td class="paddedbottom10"> <td class="paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenSection.interestRecalculationSection == true">
<label>{{ loanaccountinfo.interestRecalculationData.recalculationRestFrequencyInterval}}</label> <label>{{ loanaccountinfo.interestRecalculationData.recalculationRestFrequencyInterval}}</label>
</td> </td>
<td> <td ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenSection.interestRecalculationSection == true">
<label class="control-label">{{ 'label.input.frequenc.date.for.recalculte.outstanding.principal' | <label class="control-label">{{ 'label.input.frequenc.date.for.recalculte.outstanding.principal' |
translate }}<span class="required">*</span></label> translate }}<span class="required">*</span></label>
</td> </td>
<td class="paddedbottom10"> <td class="paddedbottom10" ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenSection.interestRecalculationSection == true">
<input type="text" id="recalculationRestFrequencyDate" name="recalculationRestFrequencyDate" datepicker-pop="dd MMMM yyyy" <input type="text" id="recalculationRestFrequencyDate" name="recalculationRestFrequencyDate" datepicker-pop="dd MMMM yyyy"
ng-model="date.recalculationRestFrequencyDate" is-open="opened" min="'2000-01-01'" max="restrictDate" class="form-control"/> ng-model="date.recalculationRestFrequencyDate" is-open="opened" min="'2000-01-01'" max="restrictDate" class="form-control"/>
</td> </td>
</tr> </tr>
</table> </table>
<div ng-show="loanaccountinfo" ng-hide="previewRepayment"> <div ng-show="loanaccountinfo" ng-hide="previewRepayment">
@ -413,7 +422,7 @@
</tr> </tr>
</table> </table>
</div> </div>
<div class="col-md-12 paddedtop"> <div class="col-md-12 paddedtop" ng-hide = "response.uiDisplayConfigurations.loanAccount.isHiddenSection.collateralSection == true">
<label class="control-label"><strong>{{ 'label.heading.collaterals' | translate }}</strong></label> <label class="control-label"><strong>{{ 'label.heading.collaterals' | translate }}</strong></label>
<select ng-model="collateralFormData.collateralIdTemplate" <select ng-model="collateralFormData.collateralIdTemplate"
ng-options="collateralTemplate.name for collateralTemplate in collateralOptions" ng-options="collateralTemplate.name for collateralTemplate in collateralOptions"
@ -425,6 +434,7 @@
placeholder="{{'label.input.description' | translate}}" class="form-control"> placeholder="{{'label.input.description' | translate}}" class="form-control">
<a ng-click="addCollateral()">&nbsp;<i class="icon-plus icon-white"></i></a> <a ng-click="addCollateral()">&nbsp;<i class="icon-plus icon-white"></i></a>
</div> </div>
<div ng-hide="response.uiDisplayConfigurations.loanAccount.isHiddenSection.collateralSection == true">
<table class="table" class="width100" ng-show="collaterals.length>0"> <table class="table" class="width100" ng-show="collaterals.length>0">
<tr class="graybg"> <tr class="graybg">
<th>{{'label.heading.type' | translate}}</th> <th>{{'label.heading.type' | translate}}</th>
@ -443,6 +453,7 @@
</table> </table>
</div> </div>
</div> </div>
</div>
</div> </div>
<br> <br>