Add server side error handling

Add directive for serverside validation
This commit is contained in:
Madhukar 2013-11-09 12:28:36 +05:30
parent d399f9ecf0
commit a37f054047
81 changed files with 580 additions and 516 deletions

View File

@ -2,7 +2,7 @@
"app lebels start" :"",
"label.product.title" : "Mifos X Client",
"label.change.language" : "Change language:",
"label.username" : "UserName",
"label.username" : "Username",
"label.password" : "Password",
"label.signin":"Sign In",
"label.systemid": "System Id :",
@ -1130,6 +1130,63 @@
"label.viewcheckerinbox":"View Checker Inbox",
"label.searchbytransaction":"Search by transaction #",
"label.searchbyuser":"Search by user",
"label.advancesearch":"Advanced Search"
"label.advancesearch":"Advanced Search",
"label.error" : "Errors:",
"validation.msg.loan.expectedDisbursementDate.cannot.be.blank":"Expected disbursementDate cannot be blank",
"validation.msg.loan.submittedOnDate.cannot.be.blank":"Loan submitial date cannot be blank",
"validation.msg.loan.principal.not.greater.than.zero":"Principal should be a positive amount",
"validation.msg.user.username.cannot.be.blank" : "User userName cannot be blank",
"validation.msg.user.firstname.cannot.be.blank" : "User firstName cannot be blank",
"validation.msg.user.lastname.cannot.be.blank" : "User lastName cannot be blank",
"validation.msg.user.email.cannot.be.blank" : "User email cannot be blank",
"validation.msg.user.roles.cannot.be.empty" : "User should have atleast one role",
"validation.msg.center.closureDate.cannot.be.blank":"Closure date cannot be blank",
"validation.msg.group.activationDate.cannot.be.blank":"Activation date cannot be blank",
"validation.msg.client.activationDate.cannot.be.blank":"Activation date cannot be blank",
"validation.msg.center.name.cannot.be.blank":"Center name cannot be blank",
"Clients":"Error Messages",
"validation.msg.client.officeId.cannot.be.blank":"Office is mandatory.",
"validation.msg.client.id.no.name.details.passed":"Details related to the clients name are mandatory and none have been provided.",
"validation.msg.client.firstname.cannot.be.blank":"First name is mandatory.",
"validation.msg.client.lastname.cannot.be.blank":"Last name is mandatory.",
"validation.msg.client.fullname.cannot.be.blank":"Fullname is mandatory.",
"validation.msg.client.active.must.be.true.or.false":"Active is mandatory. Its value must be true or false.",
"validation.msg.client.active.pending.status.not.allowed":"Configuration does not allow client's to be created as `Pending`. ",
"validation.msg.client.activationDate.cannot.be.blank":"Activation date is mandatory to create `Active` client.",
"validation.msg.client.fullname.cannot.also.be.provided.when.firstname.is.populated":"You cannot provide both `fullname or business name` and `firstname` details.",
"validation.msg.client.fullname.cannot.also.be.provided.when.middlename.is.populated":"You cannot provide both `fullname or business name` and `middlename` details.",
"validation.msg.client.fullname.cannot.also.be.provided.when.lastname.is.populated":"You cannot provide both `fullname or business name` and `lastname` details.",
"validation.msg.client.firstname.cannot.also.be.provided.when.fullname.is.populated":"You cannot provide both `fullname or business name` and `firstname` details.",
"validation.msg.client.middlename.cannot.also.be.provided.when.fullname.is.populated":"You cannot provide both `fullname or business name` and `middlename` details.",
"validation.msg.client.lastname.cannot.also.be.provided.when.fullname.is.populated":"You cannot provide both `fullname or business name` and `lastname` details.",
"validation.msg.client.no.parameters.for.update":"Nothing has changed. Press Cancel.",
"validation.msg.client.staffId.cannot.be.blank":"Please Select staff.",
"error.msg.client.member.of.group.and.cannot.update.office":"The client is a member of a group so you must update the office of the group.",
"error.msg.clients.activationDate.cannot.be.before.office.activation.date":"Client activation date cannot be a date before the office opening date.",
"error.msg.client.duplicate.externalId":"A client with external id is already exists.",
"error.msg.client.duplicate.accountNo":"A client with account no is already exists.",
"error.msg.client.id.invalid":"Client does not exist.",
"error.msg.client.not.active.exception":"The Client is not active.",
"validation.msg.clientIdentifier.documentKey.cannot.be.blank":"Identification # is mandatory.",
"validation.msg.clientIdentifier.documentTypeId.cannot.be.blank":"Identity document type is mandatory.",
"error.msg.clientIdentifier.type.duplicate":"Client identity document of type is already exists for this client.",
"error.msg.image.type.upload":"Only files of type GIF,PNG or JPG are allowed.",
"validation.msg.clientImage.cannot.be.blank":"Please select an image to upload.",
"validation.msg.note.note.cannot.be.blank":"Note is mandatory.",
"validation.msg.note.note.exceeds.max.length":"The note text is too long.",
"validation.msg.client.closureDate.cannot.be.blank":"The Closure date cannot be blank.",
"error.msg.client.close.date.cannot.before.loan.closed.date":"The Client closing date cannot be before the closed loan date.",
"error.msg.client.close.loan.non-closed":"Client cannot be closed because of non-closed loans.",
"error.msg.client.close.non-closed.savings.account":"Client cannot be closed because of non-closed savings.",
"error.msg.client.close.date.cannot.before.client.actvation.date":"The Client closing date cannot be before the client activation date.",
"error.msg.client.close.is.under.transfer":"Client under Transfer cannot be closed"
}

View File

@ -1,6 +1,7 @@
(function(module) {
mifosX.controllers = _.extend(module, {
CreateRoleController: function(scope, location, resourceFactory) {
scope.formData = {};
scope.submit = function() {
resourceFactory.roleResource.save(this.formData, function(data) {
location.path("/admin/viewrole/"+data.resourceId);

View File

@ -0,0 +1,26 @@
(function(module) {
mifosX.directives = _.extend(module, {
ApiValidationDirective: function($compile) {
return {
restrict: 'E',
require: '?ngmodel',
link: function(scope, elm, attr, ctrl) {
var template = '<div class="error" ng-show="errorStatus || errorDetails">'+
'<label>'+
'{{'+"'label.error'"+' | translate}}'+
'</label>'+
'<label ng-show="errorStatus">{{errorStatus}}</label>'+
'<label ng-hide="errorStatus" ng-repeat="error in errorDetails">'+
'{{error.code | translate}}'+
'</label></div>';
elm.html('').append($compile(template)(scope));
}
};
}
});
}(mifosX.directives || {}));
mifosX.ng.application.directive("apiValidate", ['$compile', mifosX.directives.ApiValidationDirective]).run(function($log) {
$log.info("ApiValidationDirective initialized");
});

View File

@ -171,7 +171,8 @@ define(['underscore', 'mifosX'], function() {
'AutofocusDirective',
'SummaryDirective',
'FormValidateDirective',
'FormSubmitValidateDirective'
'FormSubmitValidateDirective',
'ApiValidationDirective'
]
};

View File

@ -6,11 +6,7 @@
</div>
<div class="row-fluid" ng-controller="AccCoaController">
<div class="error" ng-show="errorStatus || errorDetails">
<label>{{'label.error' | translate}}</label>
<label ng-show="errorStatus">{{errorStatus}}</label>
<label ng-hide="errorStatus" ng-repeat="error in errorDetails">{{error.code | translate}}</label>
</div>
<api-validate></api-validate>
<div class="pull-right">
<a ng-show="isTreeView" ng-click="isTreeView=!isTreeView" class="btn btn-primary"><i class="icon-list icon-white"></i>{{'label.listview' | translate}}</a>
<a ng-hide="isTreeView" ng-click="isTreeView=!isTreeView" class="btn btn-primary"><i class="icon-sitemap icon-white"></i>{{'label.treeview' | translate}}</a>

View File

@ -5,11 +5,7 @@
<li class="active">{{'button.addrule' | translate}}</li>
</ul>
</div>
<div class="error" ng-show="errorStatus || errorDetails">
<label>{{'label.error' | translate}}</label>
<label ng-show="errorStatus">{{errorStatus}}</label>
<label ng-hide="errorStatus" ng-repeat="error in errorDetails">{{error.code | translate}}</label>
</div>
<api-validate></api-validate>
<form name="addaccountruleform" novalidate="" class="form-horizontal" ng-controller="AccCreateRuleController" rc-submit="submit()">
<fieldset>
<legend>{{ 'label.accounting.rule.title' | translate }}</legend>

View File

@ -6,11 +6,7 @@
</ul>
</div>
<form name="createclosureform" novalidate="" class="form-horizontal well" ng-controller="AccountingClosureController" ng-submit="submit()">
<div class="error" ng-show="errorStatus || errorDetails">
<label>{{'label.error' | translate}}</label>
<label ng-show="errorStatus">{{errorStatus}}</label>
<label ng-hide="errorStatus" ng-repeat="error in errorDetails">{{error.code | translate}}</label>
</div>
<api-validate></api-validate>
<legend>{{ 'label.accounting.closure' | translate }}</legend>
<div class="control-group">
<label class="control-label">{{ 'label.office' | translate }}<span class="required">*</span></label>

View File

@ -7,11 +7,7 @@
</div>
<form name="createglaccountingform" novalidate="" class="form-horizontal well"
ng-controller="AccCreateGLAccountController" rc-submit="submit()">
<div class="error" ng-show="errorStatus || errorDetails">
<label>{{'label.error' | translate}}</label>
<label ng-show="errorStatus">{{errorStatus}}</label>
<label ng-hide="errorStatus" ng-repeat="error in errorDetails">{{error.code | translate}}</label>
</div>
<api-validate></api-validate>
<fieldset>
<legend>{{'label.createglaccount' | translate}}</legend>

View File

@ -7,11 +7,7 @@
<li class="active">{{'label.accounting.rule.edit.title' | translate}}</li>
</ul>
</div>
<div class="error" ng-show="errorStatus || errorDetails">
<label>{{'label.error' | translate}}</label>
<label ng-show="errorStatus">{{errorStatus}}</label>
<label ng-hide="errorStatus" ng-repeat="error in errorDetails">{{error.code | translate}}</label>
</div>
<api-validate></api-validate>
<form name="editaccountruleform" novalidate="" class="form-horizontal" rc-submit="submit()">
<fieldset>
<legend>{{ 'label.accounting.rule.edit.title' | translate }}</legend>

View File

@ -7,11 +7,7 @@
<li class="active">{{'label.editglaccount' | translate}}</li>
</ul>
</div>
<div class="error" ng-show="errorStatus || errorDetails">
<label>{{'label.error' | translate}}</label>
<label ng-show="errorStatus">{{errorStatus}}</label>
<label ng-hide="errorStatus" ng-repeat="error in errorDetails">{{error.code | translate}}</label>
</div>
<api-validate></api-validate>
<form name="editglaccountingform" novalidate="" class="form-horizontal well" rc-submit="submit()">
<fieldset>
<legend>{{'label.editglaccount' | translate}}</legend>

View File

@ -6,11 +6,7 @@
</div>
<form name="freqpostingform" novalidate="" class="form-horizontal well" ng-controller="AccFreqPostingController" rc-submit="submit()">
<div class="error" ng-show="errorStatus || errorDetails">
<label>{{'label.error' | translate}}</label>
<label ng-show="errorStatus">{{errorStatus}}</label>
<label ng-hide="errorStatus" ng-repeat="error in errorDetails">{{error.code | translate}}</label>
</div>
<api-validate></api-validate>
<fieldset>
<legend>{{ 'label.journalentry.posting.title' | translate }}</legend>
<div class="control-group">
@ -65,7 +61,7 @@
<br>
<div ng-repeat="crAccount in formData.crAccounts">
<input type="text" class="input-small" ng-model="crAccount.crGlName" readonly>
<input type="text" class="input-small" ng-model="crAccount.crAmount">{{allowDebitEntries}}
<input id="credits[{{$index}}]" type="text" class="input-small" ng-model="crAccount.crAmount">{{allowDebitEntries}}
<a ng-click="removeCrAccount($index)">&nbsp;<i class="icon-remove icon-white"></i></a>
</div>
</td>
@ -83,7 +79,7 @@
<br>
<div ng-repeat="dbAccount in formData.dbAccounts">
<input type="text" class="input-small" ng-model="dbAccount.debitGlName" readonly>
<input type="text" class="input-small" ng-model="dbAccount.debitAmount">
<input id="debits[{{$index}}]" type="text" class="input-small" ng-model="dbAccount.debitAmount">
<a ng-click="removeDebitAccount($index)">&nbsp;<i class="icon-remove icon-white"></i></a>
</div>
</td>

View File

@ -5,11 +5,7 @@
</ul>
</div>
<form name="journalpostingform" novalidate="" class="form-horizontal well" ng-controller="JournalEntryController" rc-submit="submit()">
<div class="error" ng-show="errorStatus || errorDetails">
<label>{{'label.error' | translate}}</label>
<label ng-show="errorStatus">{{errorStatus}}</label>
<label ng-hide="errorStatus" ng-repeat="error in errorDetails">{{error.code | translate}}</label>
</div>
<api-validate></api-validate>
<fieldset>
<legend>{{ 'label.journalentry.posting.title' | translate }}</legend>
<div class="control-group">

View File

@ -5,6 +5,7 @@
<li class="active">{{'legend.heading.account.transfers' | translate}}</li>
</ul>
</div>
<api-validate></api-validate>
<form class="form-horizontal well" name="accounttransferform" novalidate="" rc-submit="submit()">
<fieldset>
<legend>{{ 'legend.heading.account.transfers' | translate }}</legend>
@ -35,7 +36,7 @@
<div class="control-group">
<label class="control-label" for="toOfficeId">{{ 'label.office' | translate }}<span class="required">*</span></label>
<div class="controls">
<select ng-model="formData.toOfficeId" name="office" ng-options="toOffice.id as toOffice.name for toOffice in toOffices" ng-change="changeEvent()" value="{{toOffice.id}}" required>
<select id="toOfficeId" ng-model="formData.toOfficeId" name="office" ng-options="toOffice.id as toOffice.name for toOffice in toOffices" ng-change="changeEvent()" value="{{toOffice.id}}" required>
<option value="">{{'label.select.one' | translate}}</option>
</select>
<form-validate valattributeform="accounttransferform" valattribute="office"/>
@ -44,7 +45,7 @@
<div class="control-group">
<label class="control-label" for="toClientId">{{ 'label.transferred.client' | translate }}<span class="required">*</span></label>
<div class="controls">
<select ng-model="formData.toClientId" name="client" ng-options="toClient.id as toClient.displayName for toClient in toClients" ng-change="changeEvent()" value="{{toClient.id}}" required>
<select id="toClientId" ng-model="formData.toClientId" name="client" ng-options="toClient.id as toClient.displayName for toClient in toClients" ng-change="changeEvent()" value="{{toClient.id}}" required>
<option value="">{{'label.select.one' | translate}}</option>
</select>
<form-validate valattributeform="accounttransferform" valattribute="client"/>
@ -53,7 +54,7 @@
<div class="control-group">
<label class="control-label" for="toAccountType">{{ 'label.transferred.account' | translate }}<span class="required">*</span></label>
<div class="controls">
<select ng-model="formData.toAccountType" name="account" ng-options="toAccountType.id as toAccountType.value for toAccountType in toAccountTypes" ng-change="changeEvent()" value="{{toAccountType.id}}"
<select id="toAccountType" ng-model="formData.toAccountType" name="account" ng-options="toAccountType.id as toAccountType.value for toAccountType in toAccountTypes" ng-change="changeEvent()" value="{{toAccountType.id}}"
required>
<option value="">{{'label.select.one' | translate}}</option>
</select>
@ -63,7 +64,7 @@
<div class="control-group">
<label class="control-label" for="toAccountId">{{ 'label.transferred.accountnumber' | translate }}<span class="required">*</span></label>
<div class="controls">
<select ng-model="formData.toAccountId" name="accountnumber" ng-options="toAccount.id as (toAccount.productName+' - '+toAccount.accountNo) for toAccount in toAccounts" ng-change="changeEvent()" value="{{toAccount.id}}" required>
<select id="toAccountId" ng-model="formData.toAccountId" name="accountnumber" ng-options="toAccount.id as (toAccount.productName+' - '+toAccount.accountNo) for toAccount in toAccounts" ng-change="changeEvent()" value="{{toAccount.id}}" required>
<option value="">{{'label.select.one' | translate}}</option>
</select>
<form-validate valattributeform="accounttransferform" valattribute="accountnumber"/>
@ -79,7 +80,7 @@
<div class="control-group">
<label class="control-label" for="transferDate">{{ 'label.transaction.date' | translate }}<span class="required">*</span></label>
<div class="controls">
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="formData.transferDate" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" required late-Validate />
<input type="text" id="transferDate" datepicker-pop="dd MMMM yyyy" ng-model="formData.transferDate" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" required late-Validate />
</div>
</div>
<div class="control-group">

View File

@ -7,13 +7,14 @@
</ul>
</div>
<form name="addroleform" novalidate="" class="form-horizontal well" rc-submit="submit()">
<api-validate></api-validate>
<fieldset>
<legend>{{'label.addrole' | translate}}</legend>
<div class="control-group">
<label class="control-label" for="name">{{'label.name' | translate}}<span class="required">*</span></label>
<div class="controls">
<input type="text" name="name" ng-model="formData.name" required late-Validate/>
<input id="name" type="text" name="name" ng-model="formData.name" required late-Validate/>
<form-validate valattributeform="addroleform" valattribute="name"/>
</div>
</div>
@ -21,7 +22,7 @@
<div class="control-group">
<label class="control-label" name="" for="description">{{'label.description' | translate}}<span class="required">*</span></label>
<div class="controls">
<textarea type="text" rows="2" name="description" ng-model="formData.description" required late-Validate/>
<textarea id="description" type="text" rows="2" name="description" ng-model="formData.description" required late-Validate/>
<form-validate valattributeform="addroleform" valattribute="description"/>
</div>
</div>

View File

@ -5,6 +5,7 @@
</ul>
</div>
<form name="createuserform" novalidate="" class="form-horizontal" ng-controller="CreateUserController" rc-submit="submit()">
<api-validate></api-validate>
<fieldset>
<legend>{{'label.createuser' | translate}}</legend>
<div class="control-group">
@ -60,13 +61,13 @@
<div class="control-group">
<label class="control-label" for="office">{{'label.office' | translate}}<span class="required">*</span></label>
<div class="controls">
<select ng-model="formData.officeId" ng-options="office.id as office.name for office in offices" value="{{office.id}}"></select>
<select id="officeId" ng-model="formData.officeId" ng-options="office.id as office.name for office in offices" value="{{office.id}}"></select>
</div>
</div>
<div class="control-group">
<label class="control-label" for="role">{{'label.selectroles' | translate}}<span class="required">*</span></label>
<div class="controls">
<select id="role" ng-model="formData.roles" name="role" multiple required>
<select id="roles" ng-model="formData.roles" name="role" multiple required>
<option ng-repeat="availablerole in availableRoles" value="{{availablerole.id}}">{{availablerole.name}}</option>
</select>
<form-validate valattributeform="createuserform" valattribute="role"/>

View File

@ -7,6 +7,7 @@
<li class="active">{{'label.edit' | translate}}</li>
</ul>
</div>
<api-validate></api-validate>
<form class="well" ng-submit="submit()">
<div class="row-fluid">
<table width="100%">

View File

@ -6,8 +6,8 @@
<li class="active">{{'label.edituser' | translate}}</li>
</ul>
</div>
<form name="edituserform" novalidate="" class="form-horizontal well" rc-submit="submit()">
<api-validate></api-validate>
<fieldset>
<legend>{{'label.edituser' | translate}}</legend>
@ -46,8 +46,7 @@
<div class="control-group">
<label class="control-label" for="office">{{'label.office' | translate}}<span class="required">*</span></label>
<div class="controls">
<select ng-model="formData.officeId" ng-options="office.id as office.name for office in offices" value="{{office.id}}">
<select ng-model="formData.officeId" ng-options="office.id as office.name for office in offices" value="{{office.id}}">
<select id="officeId" ng-model="formData.officeId" ng-options="office.id as office.name for office in offices" value="{{office.id}}">
</select>
</div>
</div>
@ -55,7 +54,7 @@
<div class="control-group">
<label class="control-label" for="role">{{'label.selectroles' | translate}}<span class="required">*</span></label>
<div class="controls">
<select ng-model="formData.selectedRoles" name="role" ng-options="availablerole.name for availablerole in availableRoles" value="{{availablerole.id}}" multiple required>
<select id="selectedRoles" ng-model="formData.selectedRoles" name="role" ng-options="availablerole.name for availablerole in availableRoles" value="{{availablerole.id}}" multiple required>
</select>
<form-validate valattributeform="edituserform" valattribute="role"/>
</div>

View File

@ -12,26 +12,26 @@
</div>
<div>
<label for="username">{{'label.username' | translate}}</label>
<input ng-autofocus="true" name="username" type="text" data-ng-model="userFormData.username" placeholder="username"/>
<input ng-autofocus="true" id="username" name="username" type="text" data-ng-model="userFormData.username" placeholder="username"/>
</div>
<div>
<label for="firstname">{{'table.firstname' | translate}}</label>
<input name="firstname" type="text" data-ng-model="userFormData.firstname" placeholder="firstname"/>
<input id="firstname" name="firstname" type="text" data-ng-model="userFormData.firstname" placeholder="firstname"/>
</div>
<div>
<label for="lastname">{{'table.lastname' | translate}}</label>
<input name="lastname" type="text" data-ng-model="userFormData.lastname" placeholder="lastname"/>
<input id="lastname" name="lastname" type="text" data-ng-model="userFormData.lastname" placeholder="lastname"/>
</div>
<div>
<label for="email">{{'label.email' | translate}}</label>
<input name="email" type="email" data-ng-model="userFormData.email" placeholder="email address"/>
<input id="email" name="email" type="email" data-ng-model="userFormData.email" placeholder="email address"/>
</div>
<div>
<input type="checkbox" name="sendPasswordToEmail" data-ng-model="userFormData.sendPasswordToEmail"> <b>{{'label.generatepasswordandemailit' | translate}}</b>
</div>
<div>
<label for="office">{{'label.form.office' | translate}}</label>
<select name="officeId" data-ng-model="userFormData.office" data-ng-options="o.name for o in offices"/>
<select id="office" name="officeId" data-ng-model="userFormData.office" data-ng-options="o.name for o in offices"/>
</div>
<div>
<label>{{'label.roles' | translate}}</label>

View File

@ -1,4 +1,5 @@
<form class="form-horizontal well" ng-controller="AddGroupController">
<api-validate></api-validate>
<fieldset>
<legend>{{'label.addgroup' | translate}}</legend>
@ -27,7 +28,7 @@
<div class="control-group">
<label class="control-label">{{ 'label.clients' | translate }}</label>
<div class="controls">
<select multiple ng-model="formData.clientMembers">
<select id="clientMembers" multiple ng-model="formData.clientMembers">
<option ng-repeat="client in groupTemplate.clientOptions" value="{{client.id}}">{{client.displayName}}</option>
</select>
</div>
@ -42,7 +43,7 @@
<div class="control-group" data-ng-switch-when="1">
<label class="control-label">{{'label.form.activationdate' | translate}}<span class="required">*</span></label>
<div class="controls">
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="first.date" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" required late-Validate />
<input id="activationDate" type="text" datepicker-pop="dd MMMM yyyy" ng-model="first.date" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" required late-Validate />
<span ng-show="creategroupform.activationdate.$invalid && creategroupform.activationdate.$dirty">
<small class="error" ng-show="creategroupform.activationdate.$error.req">
Required Field

View File

@ -1,13 +1,14 @@
<form data-ng-controller="CloseCenterController">
<api-validate></api-validate>
<div class="paddedleft">
<h3>{{ 'label.confirm' | translate }}</h3>
<div>
<label class="control-label">{{ 'label.closuredate' | translate }}<span class="required">*</span></label>
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="first.date" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" required late-Validate />
<input id="closureDate" type="text" datepicker-pop="dd MMMM yyyy" ng-model="first.date" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" required late-Validate />
</div>
<div>
<label class="control-label">{{ 'label.closurereasons' | translate }}<span class="required">*</span></label>
<select ng-model="formData.closureReasonId" ng-options="reason.id as reason.name for reason in template.closureReasons" value="{{reason.id}}">
<select id="closureReasonId" ng-model="formData.closureReasonId" ng-options="reason.id as reason.name for reason in template.closureReasons" value="{{reason.id}}">
</select>
</div>
<br/>

View File

@ -5,6 +5,7 @@
</ul>
</div>
<form name="createcenterform" novalidate="" class="form-horizontal well" ng-controller="CreateCenterController" rc-submit="submit()">
<api-validate></api-validate>
<fieldset>
<legend>{{'label.createcenter' | translate}}</legend>
@ -18,14 +19,14 @@
<div class="control-group">
<label class="control-label" for="office">{{'label.form.office' | translate}}<span class="required">*</span></label>
<div class="controls">
<select id="office" ng-model="formData.officeId" ng-options="office.id as office.name for office in offices" value="{{office.id}}" ng-click="changeOffice(office.id)">
<select id="officeId" ng-model="formData.officeId" ng-options="office.id as office.name for office in offices" value="{{office.id}}" ng-click="changeOffice(office.id)">
</select>
</div>
</div>
<div class="control-group">
<label class="control-label" for="staffs">{{'label.staff' | translate}}</label>
<div class="controls">
<select id="staffs" ng-model="formData.staffId" ng-options="staff.id as staff.displayName for staff in staffs" value="{{staff.id}}">
<select id="staffId" ng-model="formData.staffId" ng-options="staff.id as staff.displayName for staff in staffs" value="{{staff.id}}">
<option value="">{{'label.select.staff' | translate}}</option>
</select>
</div>
@ -40,14 +41,14 @@
<div class="control-group" data-ng-switch-when="1">
<label class="control-label">{{'label.form.activationdate' | translate}}<span class="required">*</span></label>
<div class="controls">
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="first.date" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)"/>
<input id="activationDate" type="text" datepicker-pop="dd MMMM yyyy" ng-model="first.date" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)"/>
</div>
</div>
</div>
<div class="control-group">
<label class="control-label" for="externalid">{{'label.externalid' | translate}}</label>
<div class="controls">
<input type="text" id="externalid" ng-model="formData.externalId">
<input type="text" id="externalId" ng-model="formData.externalId">
</div>
</div>
<div class="offset2 paddedleft120">
@ -55,4 +56,4 @@
<button type="submit" class="btn btn-primary">{{'label.save' | translate}}</button>
</div>
</fieldset>
</form>
</form>

View File

@ -6,6 +6,7 @@
<li class="active">{{'label.editcenter' | translate}}</li>
</ul>
</div>
<api-validate></api-validate>
<div data-ng-switch on="managecode">
<form name="editcenterform" novalidate="" class="form-horizontal well" data-ng-switch-when="2">
<fieldset>
@ -20,7 +21,7 @@
<div class="control-group info">
<label class="control-label" for="staffs">{{'label.staff' | translate}}</label>
<div class="controls">
<select id="staffs" ng-model="formData.staffId" data-ng-options="staff.id as staff.displayName for staff in staffs" value="{{staff.id}}">
<select id="staffId" ng-model="formData.staffId" data-ng-options="staff.id as staff.displayName for staff in staffs" value="{{staff.id}}">
<option value="">{{'label.select.staff' | translate}}</option>
</select>
</div>
@ -28,13 +29,13 @@
<div class="control-group">
<label class="control-label" for="externalid">{{'label.externalid' | translate}}</label>
<div class="controls">
<input type="text" id="externalid" ng-model="formData.externalId">
<input type="text" id="externalId" ng-model="formData.externalId">
</div>
</div>
<div class="control-group">
<label class="control-label">{{'label.form.activationdate' | translate}}<span class="required">*</span></label>
<div class="controls">
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="first.date" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" required late-Validate />
<input id="activationDate" type="text" datepicker-pop="dd MMMM yyyy" ng-model="first.date" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" required late-Validate />
</div>
</div>
<div class="offset2 paddedleft120">
@ -47,7 +48,7 @@
<div class="paddedleft">
<div>
<label class="control-label">{{ 'label.enteractivationdate' | translate }}<span class="required">*</span></label>
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="first.date" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" required late-Validate />
<input id="activationDate" type="text" datepicker-pop="dd MMMM yyyy" ng-model="first.date" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" required late-Validate />
</div>
<br/>
<a href="#/viewgroup/{{edit.id}}" class="btn">{{'label.cancel' | translate}}</a>

View File

@ -6,11 +6,7 @@
<li class="active">{{'link.upload.document' | translate}}</li>
</ul>
</div>
<div class="error" ng-show="errorStatus || errorDetails">
<label>{{'label.error' | translate}}</label>
<label ng-show="errorStatus">{{errorStatus}}</label>
<label ng-hide="errorStatus" ng-repeat="error in errorDetails">{{error.code | translate}}</label>
</div>
<api-validate></api-validate>
<fieldset>
<legend>{{'label.upload.client.document' | translate}}</legend>
<div class="control-group">

View File

@ -7,11 +7,7 @@
</ul>
</div>
<form name="clientidentifierform" novalidate="" class="form-horizontal well" rc-submit="submit()">
<div class="error" ng-show="errorStatus || errorDetails">
<label>{{'label.error' | translate}}</label>
<label ng-show="errorStatus">{{errorStatus}}</label>
<label ng-hide="errorStatus" ng-repeat="error in errorDetails">{{error.code | translate}}</label>
</div>
<api-validate></api-validate>
<fieldset>
<legend>{{'label.add.client.identifier' | translate}}</legend>
<div class="control-group">

View File

@ -7,11 +7,7 @@
</ul>
</div>
<form name="clientidentifierform" novalidate="" class="form-horizontal well" ng-submit="submit()">
<div class="error" ng-show="errorStatus || errorDetails">
<label>{{'label.error' | translate}}</label>
<label ng-show="errorStatus">{{errorStatus}}</label>
<label ng-hide="errorStatus" ng-repeat="error in errorDetails">{{error.code | translate}}</label>
</div>
<api-validate></api-validate>
<fieldset>
<legend>{{'label.upload.client.document' | translate}}</legend>
<div class="control-group">

View File

@ -6,11 +6,7 @@
<li class="active">{{breadcrumbName | translate}}</li>
</ul>
</div>
<div class="error" ng-show="errorStatus || errorDetails">
<label>{{'label.error' | translate}}</label>
<label ng-show="errorStatus">{{errorStatus}}</label>
<label ng-hide="errorStatus" ng-repeat="error in errorDetails">{{error.code | translate}}</label>
</div>
<api-validate></api-validate>
<form name="clientactionform" novalidate="" class="form-horizontal well" ng-submit="submit()">
<div class="control-group" ng-show="showDateField">
<label class="control-label">{{labelName | translate}}<span class="required">*</span></label>

View File

@ -1,9 +1,5 @@
<form name="createclientform" novalidate="" class="form-horizontal well" ng-controller="CreateClientController" rc-submit="submit()">
<div class="error" ng-show="errorStatus || errorDetails">
<label>{{'label.error' | translate}}</label>
<label ng-show="errorStatus">{{errorStatus}}</label>
<label ng-hide="errorStatus" ng-repeat="error in errorDetails">{{error.code | translate}}</label>
</div>
<api-validate></api-validate>
<fieldset>
<legend>{{'label.createclient' | translate}}</legend>
<div class="control-group">

View File

@ -6,11 +6,7 @@
<li class="active">{{'label.editclient' | translate}}</li>
</ul>
</div>
<div class="error" ng-show="errorStatus || errorDetails">
<label>{{'label.error' | translate}}</label>
<label ng-show="errorStatus">{{errorStatus}}</label>
<label ng-hide="errorStatus" ng-repeat="error in errorDetails">{{error.code | translate}}</label>
</div>
<api-validate></api-validate>
<fieldset>
<legend>{{'label.editclient' | translate}}</legend>
<table width="100%">

View File

@ -6,11 +6,7 @@
<li class="active">{{'label.transferclient' | translate}}</li>
</ul>
</div>
<div class="error" ng-show="errorStatus || errorDetails">
<label>{{'label.error' | translate}}</label>
<label ng-show="errorStatus">{{errorStatus}}</label>
<label ng-hide="errorStatus" ng-repeat="error in errorDetails">{{error.code | translate}}</label>
</div>
<api-validate></api-validate>
<form class="form-horizontal well" ng-submit="submit()">
<br>
<fieldset>

View File

@ -3,7 +3,7 @@
<div class="control-group">
<label class="control-label">{{ 'label.branchoffice' | translate }}</label>
<div class="controls">
<select ng-model="officeId" ng-options="office.id as office.name for office in offices" value="{{office.id}}" ng-change="officeSelected(officeId)">
<select id="officeId" ng-model="officeId" ng-options="office.id as office.name for office in offices" value="{{office.id}}" ng-change="officeSelected(officeId)">
<option value="">{{'label.select.office' | translate}}</option>
</select>
</div>
@ -12,7 +12,7 @@
<div class="control-group">
<label class="control-label">{{ 'label.center' | translate }}</label>
<div class="controls">
<select ng-model="centerId" ng-options="center.id as center.name for center in centers" value="{{center.id}}" ng-change="centerSelected(centerId)">
<select id="centerId" ng-model="centerId" ng-options="center.id as center.name for center in centers" value="{{center.id}}" ng-change="centerSelected(centerId)">
<option value="">{{'label.select.center' | translate}}</option>
</select>
</div>
@ -21,7 +21,7 @@
<div class="control-group">
<label class="control-label">{{ 'label.group' | translate }}</label>
<div class="controls">
<select ng-model="groupId" ng-options="group.id as group.name for group in groups" value="{{group.id}}" ng-change="groupSelected(groupId)">
<select id="groupId" ng-model="groupId" ng-options="group.id as group.name for group in groups" value="{{group.id}}" ng-change="groupSelected(groupId)">
<option value="">{{'label.select.group' | translate}}</option>
</select>
</div>
@ -30,7 +30,7 @@
<div class="control-group">
<label class="control-label">{{ 'label.meetingcalendar' | translate }}</label>
<div class="controls">
<input type="text" ng-model="formData.transactionDate">
<input id="transactionDate" type="text" ng-model="formData.transactionDate">
</div>
</div>

View File

@ -1,11 +1,12 @@
<form class="form-horizontal well" ng-controller="AddMemberController">
<api-validate></api-validate>
<fieldset>
<legend>{{'label.addmember' | translate}}</legend>
<div class="control-group">
<label class="control-label" for="staffid">{{ 'label.form.staff' | translate }}</label>
<div class="controls">
<select ng-model="formData.staffId" id="staffid">
<select ng-model="formData.staffId" id="staffId">
<option ng-repeat="staff in clientTemplate.staffOptions" value="{{staff.id}}">{{staff.displayName}}</option>
</select>
</div>
@ -51,7 +52,7 @@
<div class="control-group">
<label class="control-label" for="externalid">{{ 'label.externalid' | translate }}</label>
<div class="controls">
<input type="text" id="externalid" ng-model="formData.externalId">
<input type="text" id="externalId" ng-model="formData.externalId">
</div>
</div>
<div class="control-group">
@ -64,7 +65,7 @@
<div class="control-group" data-ng-switch-when="1">
<label class="control-label">{{'label.form.activationdate' | translate}}<span class="required">*</span></label>
<div class="controls">
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="first.date" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" required late-Validate />
<input id="activationDate" type="text" datepicker-pop="dd MMMM yyyy" ng-model="first.date" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" required late-Validate />
<span ng-show="creategroupform.activationdate.$invalid && creategroupform.activationdate.$dirty">
<small class="error" ng-show="creategroupform.activationdate.$error.req">
Required Field
@ -78,6 +79,4 @@
<button type="button" class="btn btn-primary" data-ng-click="addMember()">{{ 'label.save' | translate }}</button>
</div>
</fieldset>
</form>
</form>

View File

@ -1,15 +1,15 @@
<form data-ng-controller="AddRoleController">
<api-validate></api-validate>
<div class="paddedleft">
<h3>{{ 'label.addrole' | translate }}</h3>
<div>
<label class="control-label">{{ 'label.client' | translate }}<span class="required">*</span></label>
<select ng-model="formData.clientId" ng-options="client.id as client.displayName for client in clients" value="{{client.id}}">
<select id="clientId" ng-model="formData.clientId" ng-options="client.id as client.displayName for client in clients" value="{{client.id}}">
</select>
</div>
<div>
<label class="control-label">{{ 'label.role' | translate }}<span class="required">*</span></label>
<select ng-model="formData.role" ng-options="role.id as role.name for role in roles" value="{{role.id}}">
</select>
<select id="role" ng-model="formData.role" ng-options="role.id as role.name for role in roles" value="{{role.id}}"></select>
</div>
<br/>
<div class="offset1">

View File

@ -1,11 +1,12 @@
<div data-ng-controller="AssignStaffController">
<h3>{{'label.assignstaff' | translate}}</h3>
<api-validate></api-validate>
<form>
<table>
<tr>
<td><label>{{'label.staff' | translate}}<span class="required">*</span></label></td>
<td>
<select id="staffs" ng-model="formData.staffId" ng-options="staff.id as staff.displayName for staff in staffs" value="{{staff.id}}">
<select id="staffId" ng-model="formData.staffId" ng-options="staff.id as staff.displayName for staff in staffs" value="{{staff.id}}">
</select>
</td>
</tr>

View File

@ -2,6 +2,7 @@
<ul class="breadcrumb">
<li><a href="#/groups">{{'link.clients.groups' | translate}}</a> <span class="divider">/</span></li>
</ul>
<api-validate></api-validate>
<form ng-submit="submit()">
<div class="control-group">
<table width="80%" class="form-horizontal">
@ -10,7 +11,7 @@
<label class="control-label">{{'label.meetingdate.start' | translate}}<span class="required">*</span></label>
</td>
<td width="20%">
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="first.date" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" required late-Validate />
<input id="startDate" type="text" datepicker-pop="dd MMMM yyyy" ng-model="first.date" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" required late-Validate />
</td>
<td width="20%"></td>
<td width="20%"></td>

View File

@ -1,13 +1,14 @@
<form data-ng-controller="CloseGroupController">
<api-validate></api-validate>
<div class="paddedleft">
<h3>{{ 'label.confirm' | translate }}</h3>
<div>
<label class="control-label">{{ 'label.closuredate' | translate }}<span class="required">*</span></label>
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="first.date" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" required late-Validate />
<input id="closureDate" type="text" datepicker-pop="dd MMMM yyyy" ng-model="first.date" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" required late-Validate />
</div>
<div>
<label class="control-label">{{ 'label.closurereasons' | translate }}<span class="required">*</span></label>
<select ng-model="formData.closureReasonId" ng-options="reason.id as reason.name for reason in template.closureReasons" value="{{reason.id}}">
<select id="closureReasonId" ng-model="formData.closureReasonId" ng-options="reason.id as reason.name for reason in template.closureReasons" value="{{reason.id}}">
</select>
</div>
<br/>

View File

@ -1,10 +1,11 @@
<form name="creategroupform" novalidate="" class="form-horizontal well" ng-controller="CreateGroupController" rc-submit="submit()">
<api-validate></api-validate>
<fieldset>
<legend class="bolder">{{'label.creategroup' | translate}}</legend>
<div class="control-group">
<label class="control-label" for="office">{{'label.form.office' | translate}}<span class="required">*</span></label>
<div class="controls">
<select name="office" id="office" ng-model="formData.officeId" ng-options="office.id as office.name for office in offices" value="{{office.id}}" ng-change="changeOffice(formData.officeId)" required>
<select name="office" id="officeId" ng-model="formData.officeId" ng-options="office.id as office.name for office in offices" value="{{office.id}}" ng-change="changeOffice(formData.officeId)" required>
<option value="">{{'label.select.office' | translate}}</option>
</select>
<form-validate valattributeform="creategroupform" valattribute="office"/>
@ -18,9 +19,9 @@
</div>
</div>
<div class="control-group">
<label class="control-label" for="staffs">{{'label.staff' | translate}}</label>
<label class="control-label" for="staffId">{{'label.staff' | translate}}</label>
<div class="controls">
<select id="staffs" ng-model="formData.staffId" ng-options="staff.id as staff.displayName for staff in staffs" value="{{staff.id}}">
<select id="staffId" ng-model="formData.staffId" ng-options="staff.id as staff.displayName for staff in staffs" value="{{staff.id}}">
<option value="">{{'label.select.one' | translate}}</option>
</select>
</div>
@ -28,7 +29,7 @@
<div class="control-group">
<label class="control-label">{{'label.clients' | translate}}</label>
<div class="controls">
<select multiple ng-model="formData.clientMembers">
<select multiple id="clientMembers" ng-model="formData.clientMembers">
<option ng-repeat="member in clients" value="{{member.id}}">{{member.displayName}}</option>
</select>
</div>
@ -43,14 +44,14 @@
<div class="control-group" data-ng-switch-when="1">
<label class="control-label">{{'label.form.activationdate' | translate}}<span class="required">*</span></label>
<div class="controls">
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="first.date" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)"/>
<input id="activationDate" type="text" datepicker-pop="dd MMMM yyyy" ng-model="first.date" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)"/>
</div>
</div>
</div>
<div class="control-group">
<label class="control-label" for="externalid">{{'label.externalid' | translate}}</label>
<label class="control-label" for="externalId">{{'label.externalid' | translate}}</label>
<div class="controls">
<input type="text" name="externalid" id="externalid" ng-model="formData.externalId" ng-pattern="/^[0-9]+[a-z]+$/">
<input type="text" name="externalid" id="externalId" ng-model="formData.externalId" ng-pattern="/^[0-9]+[a-z]+$/">
</span>
</div>
</div>

View File

@ -1,4 +1,5 @@
<div ng-controller="EditGroupController">
<api-validate></api-validate>
<div data-ng-switch on="managecode">
<form name="editgroupform" novalidate="" class="form-horizontal well" rc-submit="updateGroup()" data-ng-switch-when="1">
<fieldset>
@ -13,7 +14,7 @@
<div class="control-group info">
<label class="control-label" for="staffs">{{'label.staff' | translate}}</label>
<div class="controls">
<select id="staffs" ng-model="formData.staffId" data-ng-options="staff.id as staff.displayName for staff in editGroup.staffOptions" value="{{staff.id}}">
<select id="staffId" ng-model="formData.staffId" data-ng-options="staff.id as staff.displayName for staff in editGroup.staffOptions" value="{{staff.id}}">
<option value="">{{'label.select.staff' | translate}}</option>
</select>
</div>
@ -21,14 +22,14 @@
<div class="control-group">
<label class="control-label" for="externalid">{{'label.externalid' | translate}}</label>
<div class="controls">
<input type="text" id="externalid" ng-model="formData.externalId">
<input type="text" id="externalId" ng-model="formData.externalId">
</div>
</div>
<div ng-hide="editGroup.status.value == 'Pending'">
<div class="control-group">
<label class="control-label">{{'label.form.activationdate' | translate}}<span class="required">*</span></label>
<div class="controls">
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="first.date" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)"/>
<input id="activationDate" type="text" datepicker-pop="dd MMMM yyyy" ng-model="first.date" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)"/>
</div>
</div>
</div>
@ -42,7 +43,7 @@
<div class="paddedleft">
<div>
<label class="control-label">{{ 'label.enteractivationdate' | translate }}<span class="required">*</span></label>
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="first.date" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)"/>
<input id="activationDate" type="text" datepicker-pop="dd MMMM yyyy" ng-model="first.date" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)"/>
</div>
<br/>
<a href="#/viewgroup/{{editGroup.id}}" class="btn">{{'label.cancel' | translate}}</a>

View File

@ -1,5 +1,6 @@
<div ng-controller="GroupAttendanceController">
<form class="form-horizontal well">
<api-validate></api-validate>
<fieldset>
<legend>{{'label.attendance' | translate}}</legend>
<div class="control-group">

View File

@ -1,4 +1,5 @@
<div data-ng-controller="MemberManageController">
<api-validate></api-validate>
<div data-ng-switch on="managecode">
<form ng-switch-when="1">
<div class="paddedleft">

View File

@ -1,4 +1,5 @@
<div data-ng-controller="TransferClientsController">
<api-validate></api-validate>
<form name="tranferclientsform" novalidate="" rc-submit="transfer()">
<div class="paddedleft">
<h3>{{ 'label.transferclientsbetweengroups' | translate }}</h3>

View File

@ -6,13 +6,14 @@
</ul>
</div>
<form class="form-horizontal well" novalidate="" name="loanchargeform" ng-submit="submit()">
<api-validate></api-validate>
<fieldset>
<legend>{{ 'label.add.loan.charge' | translate }}</legend>
<div class="control-group">
<label class="control-label" for="chargeId">{{ 'label.charge' | translate }}<span class="required">*</span></label>
<div class="controls">
<select ng-model="formData.chargeId" ng-options="charge.id as charge.name for charge in charges" value="{{charge.id}}" ng-change="selectCharge()">
<select id="chargeId" ng-model="formData.chargeId" ng-options="charge.id as charge.name for charge in charges" value="{{charge.id}}" ng-change="selectCharge()">
<option value="">{{'label.select.charge' | translate}}</option>
</select>
</div>
@ -21,7 +22,7 @@
<div class="control-group">
<label class="control-label" for="amount">{{ 'label.transaction.amount' | translate }}<span class="required">*</span></label>
<div class="controls">
<input type="text" name="amount" ng-model="formData.amount" required ng-late-Validate>
<input id="amount" type="text" name="amount" ng-model="formData.amount" required ng-late-Validate>
<span ng-show="loanchargeform.amount.$invalid">
<small class="error">
Required Field
@ -44,7 +45,7 @@
<div class="control-group" ng-show="chargeData.chargeTimeType.id==2">
<label class="control-label">{{ 'label.charge.due.date' | translate }}</label>
<div class="controls">
<input type="text" datepicker-pop="dd MMMM yyyy" placeholder="{{'label.placeholder.duedate' | translate}}" ng-model="formData.dueDate" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" late-Validate />
<input id="dueDate" type="text" datepicker-pop="dd MMMM yyyy" placeholder="{{'label.placeholder.duedate' | translate}}" ng-model="formData.dueDate" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" late-Validate />
</div>
</div>
</div>

View File

@ -6,19 +6,20 @@
</ul>
</div>
<form class="form-horizontal well" ng-submit="submit()">
<api-validate></api-validate>
<fieldset>
<legend>{{ 'label.add.loan.collateral' | translate }}</legend>
<div class="control-group">
<label class="control-label" for="collateralTypeId">{{ 'label.collateral.type' | translate }}<span class="required">*</span></label>
<div class="controls">
<select ng-model="formData.collateralTypeId" ng-options="collateralType.id as collateralType.name for collateralType in collateralTypes" value="{{collateralType.id}}"></select>
<select id="collateralTypeId" ng-model="formData.collateralTypeId" ng-options="collateralType.id as collateralType.name for collateralType in collateralTypes" value="{{collateralType.id}}"></select>
</div>
</div>
<div class="control-group">
<label class="control-label" for="value">{{ 'label.transaction.amount' | translate }}</label>
<div class="controls">
<input type="text" ng-model="formData.value">
<input id="value" type="text" ng-model="formData.value">
</div>
</div>
<div class="control-group">

View File

@ -5,6 +5,7 @@
<li class="active">{{'link.upload.document' | translate}}</li>
</ul>
</div>
<api-validate></api-validate>
<form class="form-horizontal well" name="loandocumentform" novalidate="" ng-submit="submit()">
<fieldset>
<legend>{{'label.upload.loan.document' | translate}}</legend>
@ -12,7 +13,7 @@
<div class="control-group">
<label class="control-label" for="name">{{'label.name' | translate}}<span class="required">*</span></label>
<div class="controls">
<input type="text" name="name" ng-model="formData.name" required late-Validate/>
<input id="name" type="text" name="name" ng-model="formData.name" required late-Validate/>
<span ng-show="loandocumentform.name.$invalid">
<small class="error" ng-show="loandocumentform.name.$error.req">
Required Field
@ -24,14 +25,14 @@
<div class="control-group">
<label class="control-label" for="description">{{'label.description' | translate}}</label>
<div class="controls">
<textarea rows="2" ng-model="formData.description"></textarea>
<textarea rows="2" id="description" ng-model="formData.description"></textarea>
</div>
</div>
<div class="control-group">
<label class="control-label" for="file">{{'label.select.file' | translate}}<span class="required">*</span></label>
<div class="controls">
<input type="file" ng-file-select="onFileSelect($files)">
<input id="file" type="file" ng-file-select="onFileSelect($files)">
</div>
</div>

View File

@ -6,19 +6,20 @@
</ul>
</div>
<form class="form-horizontal" name="assignloanofficerform" novalidate="" ng-submit="submit()">
<api-validate></api-validate>
<fieldset>
<legend>{{ 'label.assign.loan.officer' | translate }}</legend>
<div class="control-group">
<label class="control-label" for="toLoanOfficerId">{{ 'label.toloanofficer' | translate }}<span class="required">*</span></label>
<div class="controls">
<select ng-model="formData.toLoanOfficerId" ng-options="loanOfficer.id as loanOfficer.displayName for loanOfficer in loanOfficers" value="{{loanOfficer.id}}"></select>
<select id="toLoanOfficerId" ng-model="formData.toLoanOfficerId" ng-options="loanOfficer.id as loanOfficer.displayName for loanOfficer in loanOfficers" value="{{loanOfficer.id}}"></select>
</div>
</div>
<div class="control-group">
<label class="control-label" for="assignmentDate">{{ 'label.loanofficer.assignmentDate' | translate }}<span class="required">*</span></label>
<div class="controls">
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="formData.assignmentDate" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" late-Validate />
<input id="assignmentDate" type="text" datepicker-pop="dd MMMM yyyy" ng-model="formData.assignmentDate" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" late-Validate />
</div>
</div>

View File

@ -1,10 +1,11 @@
<form class="form-horizontal well" ng-controller="EditGuarantorController">
<api-validate></api-validate>
<fieldset>
<legend class="bolder">{{'label.guarantor' | translate}}</legend>
<div class="control-group">
<label class="control-label">{{ 'label.relationship' | translate }}</label>
<div class="controls">
<select ng-model="formData.relationshipType" ng-options="type.id as type.name for type in template.allowedClientRelationshipTypes" value="{{type.id}}"></select>
<select id="relationshipType" ng-model="formData.relationshipType" ng-options="type.id as type.name for type in template.allowedClientRelationshipTypes" value="{{type.id}}"></select>
</div>
</div>
<div class="control-group">
@ -16,44 +17,44 @@
<div class="control-group">
<label class="control-label">{{ 'label.form.lastname' | translate }}</label>
<div class="controls">
<input type="text" ng-model="formData.lastname">
<input id="lastname" type="text" ng-model="formData.lastname">
</div>
</div>
<div class="control-group">
<label class="control-label">{{ 'label.dob' | translate }}</label>
<div class="controls">
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="date.first" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)"/>
<input id="dob" type="text" datepicker-pop="dd MMMM yyyy" ng-model="date.first" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)"/>
</div>
</div>
<div class="control-group">
<label class="control-label">{{ 'label.address' | translate }}</label>
<div class="controls">
<input type="text" placeholder="Line 1" ng-model="formData.addressline1"><br/>
<input type="text" placeholder="Line 2" ng-model="formData.addressline2">
<input id="addressline1" type="text" placeholder="Line 1" ng-model="formData.addressline1"><br/>
<input id="addressline2" type="text" placeholder="Line 2" ng-model="formData.addressline2">
</div>
</div>
<div class="control-group">
<label class="control-label">{{ 'label.city' | translate }}</label>
<div class="controls">
<input type="text" ng-model="formData.city">
<input id="city" type="text" ng-model="formData.city">
</div>
</div>
<div class="control-group">
<label class="control-label">{{ 'label.zip' | translate }}</label>
<div class="controls">
<input type="text" ng-model="formData.zip">
<input id="zip" type="text" ng-model="formData.zip">
</div>
</div>
<div class="control-group">
<label class="control-label">{{ 'label.mobile' | translate }}</label>
<div class="controls">
<input type="text" ng-model="formData.mobile">
<input id="mobile" type="text" ng-model="formData.mobile">
</div>
</div>
<div class="control-group">
<label class="control-label">{{ 'label.residence' | translate }}</label>
<div class="controls">
<input type="text" ng-model="formData.residence">
<input id="residence" type="text" ng-model="formData.residence">
</div>
</div>
<div class="offset2 paddedleft120">

View File

@ -1,4 +1,5 @@
<form name="editloanaccountform" novalidate="" class="well" ng-controller="EditLoanAccAppController" rc-submit="submit()">
<api-validate></api-validate>
<fieldset>
<legend>{{'form.legend.edit.loan.account' | translate }}</legend>
<div class="control-group">
@ -13,7 +14,7 @@
</td>
<td width="30%">
<label class="control-label">{{ 'label.product' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.productId" ng-options="product.id as product.name for product in loanaccountinfo.productOptions" value="{{product.id}}" ng-change="loanProductChange(formData.productId)"/>
<select id="productId" ng-model="formData.productId" ng-options="product.id as product.name for product in loanaccountinfo.productOptions" value="{{product.id}}" ng-change="loanProductChange(formData.productId)"/>
</td>
</tr>
<tr class="span2"></tr>
@ -21,26 +22,26 @@
<td></td>
<td>
<label class="control-label">{{ 'label.loanofficer' | translate }}&nbsp;</label>
<select ng-model="formData.loanOfficerId" ng-options="loanOfficer.id as loanOfficer.displayName for loanOfficer in loanaccountinfo.loanOfficerOptions" value="{{loanOfficer.id}}">
<select id="loanOfficerId" ng-model="formData.loanOfficerId" ng-options="loanOfficer.id as loanOfficer.displayName for loanOfficer in loanaccountinfo.loanOfficerOptions" value="{{loanOfficer.id}}">
<option value="">{{'label.select.loanofficer' | translate}}</option>
</select>
</td>
<td>
<label class="control-label">{{ 'label.submittedon' | translate }}&nbsp;<span class="required">*</span></label>
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="formData.submittedOnDate" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" late-Validate />
<input id="submittedOnDate" type="text" datepicker-pop="dd MMMM yyyy" ng-model="formData.submittedOnDate" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" late-Validate />
</td>
</tr>
<tr class="control-group">
<td></td>
<td>
<label class="control-label">{{ 'label.loanpurpose' | translate }}&nbsp;</label>
<select ng-model="formData.loanPurposeId" ng-options="loanPurpose.id as loanPurpose.name for loanPurpose in loanaccountinfo.loanPurposeOptions" value="{{loanPurpose.id}}">
<select id="loanPurposeId" ng-model="formData.loanPurposeId" ng-options="loanPurpose.id as loanPurpose.name for loanPurpose in loanaccountinfo.loanPurposeOptions" value="{{loanPurpose.id}}">
<option value="">{{'label.select.purpose' | translate}}</option>
</select>
</td>
<td>
<label class="control-label">{{ 'label.fund' | translate }}&nbsp;</label>
<select ng-model="formData.fundId" ng-options="fund.id as fund.name for fund in loanaccountinfo.fundOptions" value="{{fund.id}}">
<select id="fundId" ng-model="formData.fundId" ng-options="fund.id as fund.name for fund in loanaccountinfo.fundOptions" value="{{fund.id}}">
<option value="">{{'label.select.fund' | translate}}</option>
</select>
</td>
@ -80,41 +81,40 @@
<tr>
<td width="40%">
<label class="control-label">{{ 'table.heading.principal' | translate }}&nbsp;<span class="required">*</span></label>
<input type="text" name="principal" ng-model="formData.principal" required late-Validate />
<input id="principal" type="text" name="principal" ng-model="formData.principal" required late-Validate />
{{loanaccountinfo.currency.displaySymbol}}
<form-validate valattributeform="editloanaccountform" valattribute="principal"/>
</td>
<td width="40%">
<label class="control-label">{{ 'label.loanterm' | translate }}&nbsp;<span class="required">*</span></label>
<input class="input-small" name="loanterm" type="text" ng-model="formData.loanTermFrequency" required late-Validate/>
<select class="input-small" ng-model="formData.loanTermFrequencyType" ng-options="termFrequencyType.id as termFrequencyType.value for termFrequencyType in loanaccountinfo.termFrequencyTypeOptions" value="{{termFrequencyType.id}}"/>
<input id="loanTermFrequency" class="input-small" name="loanterm" type="text" ng-model="formData.loanTermFrequency" required late-Validate/>
<select id="loanTermFrequencyType" class="input-small" ng-model="formData.loanTermFrequencyType" ng-options="termFrequencyType.id as termFrequencyType.value for termFrequencyType in loanaccountinfo.termFrequencyTypeOptions" value="{{termFrequencyType.id}}"/>
<form-validate valattributeform="editloanaccountform" valattribute="loanterm"/>
</td>
</tr>
<tr>
<td>
<label class="control-label">{{ 'label.numofrepayments' | translate }}&nbsp;<span class="required">*</span></label>
<input class="input-small" name="numofrepayments" type="text" ng-model="formData.numberOfRepayments" required late-Validate/>
<input id="numberOfRepayments" class="input-small" name="numofrepayments" type="text" ng-model="formData.numberOfRepayments" required late-Validate/>
<form-validate valattributeform="editloanaccountform" valattribute="numofrepayments"/>
</td>
<td>
<label class="control-label">{{ 'label.repaidevery' | translate }}&nbsp;</label>
<input class="input-small" name="repaidevery" type="text" ng-model="formData.repaymentEvery" required late-Validate/>
<select class="input-small" ng-model="formData.repaymentFrequencyType" ng-options="repaymentFrequencyType.id as repaymentFrequencyType.value for repaymentFrequencyType in loanaccountinfo.termFrequencyTypeOptions" value="{{repaymentFrequencyType.id}}"/>
<input id="repaymentEvery" class="input-small" name="repaidevery" type="text" ng-model="formData.repaymentEvery" required late-Validate/>
<select id="repaymentFrequencyType" class="input-small" ng-model="formData.repaymentFrequencyType" ng-options="repaymentFrequencyType.id as repaymentFrequencyType.value for repaymentFrequencyType in loanaccountinfo.termFrequencyTypeOptions" value="{{repaymentFrequencyType.id}}"/>
<form-validate valattributeform="editloanaccountform" valattribute="repaidevery"/>
</td>
</tr>
<tr>
<td>
<label class="control-label">{{ 'label.nominalinterestrate' | translate }}&nbsp;</label>
<input class="input-small" name="nominalinterestrate" type="text" ng-model="formData.interestRatePerPeriod" required late-Validate/>
<select class="input-small" ng-model="formData.interestRateFrequencyType" ng-options="interestRateFrequencyType.id as interestRateFrequencyType.value for interestRateFrequencyType in loanaccountinfo.interestRateFrequencyTypeOptions" value="{{interestRateFrequencyType.id}}"/>
<input id="interestRatePerPeriod" class="input-small" name="nominalinterestrate" type="text" ng-model="formData.interestRatePerPeriod" required late-Validate/>
<select id="interestRateFrequencyType" class="input-small" ng-model="formData.interestRateFrequencyType" ng-options="interestRateFrequencyType.id as interestRateFrequencyType.value for interestRateFrequencyType in loanaccountinfo.interestRateFrequencyTypeOptions" value="{{interestRateFrequencyType.id}}"/>
<form-validate valattributeform="editloanaccountform" valattribute="nominalinterestrate"/>
</td>
<td>
<label class="control-label">{{ 'label.expecteddisbursementon' | translate }}&nbsp;<span class="required">*</span></label>
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="formData.expectedDisbursementDate" is-open="opened1" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" late-Validate />
<input id="expectedDisbursementDate" type="text" datepicker-pop="dd MMMM yyyy" ng-model="formData.expectedDisbursementDate" is-open="opened1" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" late-Validate />
</td>
</tr>
<tr>
@ -132,50 +132,50 @@
<tr>
<td width="40%">
<label class="control-label">{{ 'label.amortization' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.amortizationType" ng-options="amortizationType.id as amortizationType.value for amortizationType in loanaccountinfo.amortizationTypeOptions" value="{{amortizationType.id}}">
<select id="amortizationType" ng-model="formData.amortizationType" ng-options="amortizationType.id as amortizationType.value for amortizationType in loanaccountinfo.amortizationTypeOptions" value="{{amortizationType.id}}">
</td>
<td width="40%">
<label class="control-label">{{ 'label.interestmethod' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.interestType" ng-options="interestType.id as interestType.value for interestType in loanaccountinfo.interestTypeOptions" value="{{interestType.id}}">
<select id="interestType" ng-model="formData.interestType" ng-options="interestType.id as interestType.value for interestType in loanaccountinfo.interestTypeOptions" value="{{interestType.id}}">
</td>
</tr>
<tr>
<td>
<label class="control-label">{{ 'label.interestcalculationperiod' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.interestCalculationPeriodType" ng-options="interestCalculationPeriodType.id as interestCalculationPeriodType.value for interestCalculationPeriodType in loanaccountinfo.interestCalculationPeriodTypeOptions" value="{{interestCalculationPeriodType.id}}">
<select id="interestCalculationPeriodType" ng-model="formData.interestCalculationPeriodType" ng-options="interestCalculationPeriodType.id as interestCalculationPeriodType.value for interestCalculationPeriodType in loanaccountinfo.interestCalculationPeriodTypeOptions" value="{{interestCalculationPeriodType.id}}">
</td>
<td>
{{formData.displaySymbol}}
<label class="control-label">{{ 'label.arearstolerance' | translate }}&nbsp;</label>
<input type="text" ng-model="formData.inArrearsTolerance">
<input id="inArrearsTolerance" type="text" ng-model="formData.inArrearsTolerance">
{{loanaccountinfo.currency.displaySymbol}}
</td>
</tr>
<tr>
<td>
<label class="control-label">{{ 'label.repaymentstrategy' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.transactionProcessingStrategyId" ng-options="transactionProcessingStrategy.id as transactionProcessingStrategy.name for transactionProcessingStrategy in loanaccountinfo.transactionProcessingStrategyOptions" value="{{transactionProcessingStrategy.id}}">
<select id="transactionProcessingStrategyId" ng-model="formData.transactionProcessingStrategyId" ng-options="transactionProcessingStrategy.id as transactionProcessingStrategy.name for transactionProcessingStrategy in loanaccountinfo.transactionProcessingStrategyOptions" value="{{transactionProcessingStrategy.id}}">
</td>
<td>
<label class="control-label">{{ 'label.grace' | translate }}&nbsp;</label>
<input class="input-small" type="text" ng-model="formData.graceOnPrincipalPayment">
<input class="input-small" type="text" ng-model="formData.graceOnInterestPayment">
<input id="graceOnPrincipalPayment" class="input-small" type="text" ng-model="formData.graceOnPrincipalPayment">
<input id="graceOnInterestPayment" class="input-small" type="text" ng-model="formData.graceOnInterestPayment">
</td>
</tr>
<tr>
<td>
<label class="control-label">{{ 'label.interestfreeperiod' | translate }}&nbsp;</label>
<input type="text" ng-model="formData.graceOnInterestCharged">
<input id="graceOnInterestCharged" type="text" ng-model="formData.graceOnInterestCharged">
</td>
<td>
<label class="control-label">{{ 'label.interestchargedfrom' | translate }}&nbsp;</label>
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="formData.interestChargedFromDate" is-open="opened2" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" late-Validate />
<input type="text" id="interestChargedFromDate" datepicker-pop="dd MMMM yyyy" ng-model="formData.interestChargedFromDate" is-open="opened2" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" late-Validate />
</td>
</tr>
<tr>
<td>
<label class="control-label">{{ 'label.firstrepaymenton' | translate }}&nbsp;</label>
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="formData.repaymentsStartingFromDate" is-open="opened3" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" late-Validate />
<input type="text" id="repaymentsStartingFromDate" datepicker-pop="dd MMMM yyyy" ng-model="formData.repaymentsStartingFromDate" is-open="opened3" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" late-Validate />
</td>
<td></td>
</tr>
@ -205,10 +205,10 @@
<tr ng-repeat="charge in charges" >
<td>{{charge.name}},{{charge.currency.displaySymbol}}</td>
<td>{{charge.chargeCalculationType.value}}</td>
<td><input class="input-small" type="text" ng-model="charge.amount" placeholder="{{'label.placeholder.amount' | translate}}"></td>
<td><input class="input-small" id="{{charges[$index].amount}}" type="text" ng-model="charge.amount" placeholder="{{'label.placeholder.amount' | translate}}"></td>
<td>{{charge.chargeTimeType.value}}</td>
<td>
<input type="text" datepicker-pop="dd MMMM yyyy" placeholder="{{'label.placeholder.duedate' | translate}}" ng-model="charge.dueDate" is-open="'openedch'+$index" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" late-Validate />
<input id="{{charges[$index].dueDate}}" type="text" datepicker-pop="dd MMMM yyyy" placeholder="{{'label.placeholder.duedate' | translate}}" ng-model="charge.dueDate" is-open="'openedch'+$index" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" late-Validate />
</td>
<td><a ng-click="deleteCharge($index)"><i class="icon-remove icon-white"></i></a></td>
</tr>
@ -237,8 +237,8 @@
</tr>
<tr ng-repeat="collateral in collaterals" >
<td><input type="text" class="input-small" ng-model="collateral.name" readonly></td>
<td><input type="text" class="input-small" ng-model="collateral.value"></td>
<td><input type="text" ng-model="collateral.description" placeholder="{{'label.description' | translate}}"></td>
<td><input type="text" id="{{collaterals[$index].value}}" class="input-small" ng-model="collateral.value"></td>
<td><input type="text" id="{{collaterals[$index].description}}" ng-model="collateral.description" placeholder="{{'label.description' | translate}}"></td>
<td><a ng-click="deleteCollateral($index)"><i class="icon-remove icon-white"></i></a></td>
</tr>
</table>

View File

@ -6,13 +6,13 @@
</ul>
</div>
<form name="loanchargeform" novalidate="" class="form-horizontal well" ng-submit="submit()">
<api-validate></api-validate>
<fieldset>
<legend>{{ 'label.edit.loan.charge' | translate }}</legend>
<div class="control-group">
<label class="control-label" for="amount">{{ 'label.transaction.amount' | translate }}<span class="required">*</span></label>
<div class="controls">
<input ng-autofocus="true" type="text" name="amount" ng-model="formData.amount" required late-Validate/>
<input id="amount" ng-autofocus="true" type="text" name="amount" ng-model="formData.amount" required late-Validate/>
<span ng-show="loanchargeform.amount.$invalid">
<small class="error">
Required Field

View File

@ -7,19 +7,20 @@
</ul>
</div>
<form class="form-horizontal well" ng-submit="submit()">
<api-validate></api-validate>
<fieldset>
<legend>{{ 'label.edit.loan.collateral' | translate }}</legend>
<div class="control-group">
<label class="control-label" for="collateralTypeId">{{ 'label.collateral.type' | translate }}<span class="required">*</span></label>
<div class="controls">
<select ng-model="formData.collateralTypeId" ng-options="collateralType.id as collateralType.name for collateralType in collateralTypes" value="{{collateralType.id}}"></select>
<select id="collateralTypeId" ng-model="formData.collateralTypeId" ng-options="collateralType.id as collateralType.name for collateralType in collateralTypes" value="{{collateralType.id}}"></select>
</div>
</div>
<div class="control-group">
<label class="control-label" for="value">{{ 'label.transaction.amount' | translate }}</label>
<div class="controls">
<input type="text" ng-model="formData.value">
<input id="value" type="text" ng-model="formData.value">
</div>
</div>
<div class="control-group">

View File

@ -1,4 +1,5 @@
<form class="form-horizontal well" name="guaratorform" novalidate="" ng-controller="GuarantorController" rc-submit="submit()">
<api-validate></api-validate>
<fieldset>
<legend class="bolder">{{'label.guarantor' | translate}}</legend>
<div class="control-group">
@ -18,7 +19,7 @@
<div class="control-group">
<label class="control-label">{{ 'label.relationship' | translate }}</label>
<div class="controls">
<select ng-model="formData.relationship" ng-options="type.id as type.name for type in template.allowedClientRelationshipTypes" value="{{type.id}}">
<select id="relationship" ng-model="formData.relationship" ng-options="type.id as type.name for type in template.allowedClientRelationshipTypes" value="{{type.id}}">
<option value="">{{'label.select.one' | translate}}</option>
</select>
</div>
@ -28,7 +29,7 @@
<div class="control-group">
<label class="control-label">{{ 'label.relationship' | translate }}</label>
<div class="controls">
<select ng-model="formData.relationshipType" ng-options="type.id as type.name for type in template.allowedClientRelationshipTypes" value="{{type.id}}">
<select id="relationshipType" ng-model="formData.relationshipType" ng-options="type.id as type.name for type in template.allowedClientRelationshipTypes" value="{{type.id}}">
<option value="">{{'label.select.one' | translate}}</option>
</select>
</div>
@ -42,44 +43,44 @@
<div class="control-group">
<label class="control-label">{{ 'label.form.lastname' | translate }}</label>
<div class="controls">
<input type="text" ng-model="formData.lastname">
<input id="lastname" type="text" ng-model="formData.lastname">
</div>
</div>
<div class="control-group">
<label class="control-label">{{ 'label.dob' | translate }}</label>
<div class="controls">
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="date.first" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)"/>
<input id="dob" type="text" datepicker-pop="dd MMMM yyyy" ng-model="date.first" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)"/>
</div>
</div>
<div class="control-group">
<label class="control-label">{{ 'label.address' | translate }}</label>
<div class="controls">
<input type="text" placeholder="Line 1" ng-model="formData.addressline1"><br/>
<input type="text" placeholder="Line 2" ng-model="formData.addressline2">
<input id="addressline1" type="text" placeholder="Line 1" ng-model="formData.addressline1"><br/>
<input id="addressline2" type="text" placeholder="Line 2" ng-model="formData.addressline2">
</div>
</div>
<div class="control-group">
<label class="control-label">{{ 'label.city' | translate }}</label>
<div class="controls">
<input type="text" ng-model="formData.city">
<input id="city" type="text" ng-model="formData.city">
</div>
</div>
<div class="control-group">
<label class="control-label">{{ 'label.zip' | translate }}</label>
<div class="controls">
<input type="text" ng-model="formData.zip">
<input id="zip" type="text" ng-model="formData.zip">
</div>
</div>
<div class="control-group">
<label class="control-label">{{ 'label.mobile' | translate }}</label>
<div class="controls">
<input type="text" ng-model="formData.mobile">
<input id="mobile" type="text" ng-model="formData.mobile">
</div>
</div>
<div class="control-group">
<label class="control-label">{{ 'label.residence' | translate }}</label>
<div class="controls">
<input type="text" ng-model="formData.residence">
<input id="residence" type="text" ng-model="formData.residence">
</div>
</div>
</div>

View File

@ -5,6 +5,7 @@
<li class="active">{{action}}</li>
</ul>
</div>
<api-validate></api-validate>
<form class="form-horizontal well" name="loanactionform" novalidate="" rc-submit="submit()">
<fieldset>
<legend>{{ title | translate}}</legend>
@ -12,14 +13,14 @@
<div class="control-group" ng-show="showDateField">
<label class="control-label" for="modelName">{{labelName | translate}}<span class="required">*</span></label>
<div class="controls">
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="formData[modelName]" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" late-Validate />
<input id="{{modelName}}" type="text" datepicker-pop="dd MMMM yyyy" ng-model="formData[modelName]" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" late-Validate />
</div>
</div>
<div class="control-group" ng-show="showAmountField">
<label class="control-label" for="transactionAmount">{{ 'label.loan.account.transactionAmount' | translate}}<span class="required">*</span></label>
<div class="controls">
<input type="text" name="amount" ng-model="formData.transactionAmount" required late-Validate>
<input id="transactionAmount" type="text" name="amount" ng-model="formData.transactionAmount" required late-Validate>
<form-validate valattributeform="loanactionform" valattribute="amount"/>
</div>
</div>
@ -28,7 +29,7 @@
<div class="control-group">
<label class="control-label" for="paymentTypeId">{{ 'label.loan.account.paymentTypeId' | translate}}<span class="required">*</span></label>
<div class="controls">
<select ng-model="formData.paymentTypeId" ng-options="paymentType.id as paymentType.name for paymentType in paymentTypes" value="{{paymentType.id}}"></select>
<select id="paymentTypeId" ng-model="formData.paymentTypeId" ng-options="paymentType.id as paymentType.name for paymentType in paymentTypes" value="{{paymentType.id}}"></select>
</div>
</div>
<div class="control-group">
@ -44,31 +45,31 @@
<div class="control-group">
<label class="control-label" for="accountNumber">{{ 'label.loan.account.accountNumber' | translate}}</label>
<div class="controls">
<input type="text" ng-model="formData.accountNumber">
<input id="accountNumber" type="text" ng-model="formData.accountNumber">
</div>
</div>
<div class="control-group">
<label class="control-label" for="checkNumber">{{ 'label.loan.account.checkNumber' | translate}}</label>
<div class="controls">
<input type="text" ng-model="formData.checkNumber">
<input id="checkNumber" type="text" ng-model="formData.checkNumber">
</div>
</div>
<div class="control-group">
<label class="control-label" for="routingCode">{{ 'label.loan.account.routingCode' | translate}}</label>
<div class="controls">
<input type="text" ng-model="formData.routingCode">
<input id="routingCode" type="text" ng-model="formData.routingCode">
</div>
</div>
<div class="control-group">
<label class="control-label" for="receiptNumber">{{ 'label.loan.account.receiptNumber' | translate}}</label>
<div class="controls">
<input type="text" ng-model="formData.receiptNumber">
<input id="receiptNumber" type="text" ng-model="formData.receiptNumber">
</div>
</div>
<div class="control-group">
<label class="control-label" for="bankNumber">{{ 'label.loan.account.bankNumber' | translate}}</label>
<div class="controls">
<input type="text" ng-model="formData.bankNumber">
<input id="bankNumber" type="text" ng-model="formData.bankNumber">
</div>
</div>
</div>
@ -77,7 +78,7 @@
<div class="control-group" ng-show="showNoteField">
<label class="control-label" for="note">{{ 'label.note' | translate}}</label>
<div class="controls">
<textarea rows="2" ng-model="formData.note"></textarea>
<textarea id="note" rows="2" ng-model="formData.note"></textarea>
</div>
</div>
<div class="control-group" ng-show="showDelete">
@ -94,4 +95,4 @@
</fieldset>
</form>
</div>
</div>

View File

@ -1,4 +1,5 @@
<form name="newjlgloanform" novalidate="" class="well" ng-controller="NewJLGLoanAccAppController" rc-submit="submit()" >
<api-validate></api-validate>
<fieldset>
<legend>{{ 'form.legend.new.jlg.loan.application' | translate }}</legend>
<div class="control-group">
@ -11,7 +12,7 @@
</td>
<td width="30%">
<label class="control-label">{{ 'label.product' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.productId" ng-options="product.id as product.name for product in products" value="{{product.id}}" ng-change="loanProductChange(formData.productId)" required="required">
<select id="productId" ng-model="formData.productId" ng-options="product.id as product.name for product in products" value="{{product.id}}" ng-change="loanProductChange(formData.productId)" required="required">
<option style="display:none" value="">{{'label.select.loan.product' | translate}}</option>
</select>
</td>
@ -61,25 +62,25 @@
<td width="12%"></td>
<td width="30%">
<label class="control-label">{{ 'label.loanofficer' | translate }}&nbsp;</label>
<select ng-model="formData.loanOfficerId" ng-options="loanOfficer.id as loanOfficer.displayName for loanOfficer in loanaccountinfo.loanOfficerOptions" value="{{loanOfficer.id}}">
<select id="loanOfficerId" ng-model="formData.loanOfficerId" ng-options="loanOfficer.id as loanOfficer.displayName for loanOfficer in loanaccountinfo.loanOfficerOptions" value="{{loanOfficer.id}}">
<option value="">{{'label.select.loanofficer' | translate}}</option>
</select>
</td>
<td width="30%">
<label class="control-label">{{ 'label.submittedon' | translate }}&nbsp;<span class="required">*</span></label>
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="formData.submittedOnDate" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)"/>
<input id="submittedOnDate" type="text" datepicker-pop="dd MMMM yyyy" ng-model="formData.submittedOnDate" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)"/>
</td>
</tr>
<tr class="control-group">
<td></td>
<td>
<label class="control-label">{{ 'label.loanpurpose' | translate }}&nbsp;</label>
<select ng-model="formData.loanPurposeId" ng-options="loanPurpose.id as loanPurpose.name for loanPurpose in loanaccountinfo.loanPurposeOptions" value="{{loanPurpose.id}}">
<select id="loanPurposeId" ng-model="formData.loanPurposeId" ng-options="loanPurpose.id as loanPurpose.name for loanPurpose in loanaccountinfo.loanPurposeOptions" value="{{loanPurpose.id}}">
<option value="">{{'label.select.purpose' | translate}}</option>
</td>
<td>
<label class="control-label">{{ 'label.fund' | translate }}&nbsp;</label>
<select ng-model="formData.fundId" ng-options="fund.id as fund.name for fund in loanaccountinfo.fundOptions" value="{{fund.id}}">
<select id="fundId" ng-model="formData.fundId" ng-options="fund.id as fund.name for fund in loanaccountinfo.fundOptions" value="{{fund.id}}">
<option value="">{{'label.select.fund' | translate}}</option>
</select>
</td>
@ -119,33 +120,33 @@
<tr>
<td width="40%">
<label class="control-label">{{ 'label.expecteddisbursementon' | translate }}&nbsp;<span class="required">*</span></label>
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="formData.expectedDisbursementDate" is-open="opened1" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)"/>
<input id="expectedDisbursementDate" type="text" datepicker-pop="dd MMMM yyyy" ng-model="formData.expectedDisbursementDate" is-open="opened1" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)"/>
</td>
<td width="40%">
<label class="control-label">{{ 'label.loanterm' | translate }}&nbsp;<span class="required">*</span></label>
<input class="input-small" name="loanterm" type="text" ng-model="formData.loanTermFrequency" required late-Validate/>
<select class="input-small" ng-model="formData.loanTermFrequencyType" ng-options="termFrequencyType.id as termFrequencyType.value for termFrequencyType in loanaccountinfo.termFrequencyTypeOptions" value="{{termFrequencyType.id}}"></select>
<input id="loanTermFrequency" class="input-small" name="loanterm" type="text" ng-model="formData.loanTermFrequency" required late-Validate/>
<select id="loanTermFrequencyType" class="input-small" ng-model="formData.loanTermFrequencyType" ng-options="termFrequencyType.id as termFrequencyType.value for termFrequencyType in loanaccountinfo.termFrequencyTypeOptions" value="{{termFrequencyType.id}}"></select>
<form-validate valattributeform="newjlgloanform" valattribute="loanterm"/>
</td>
</tr>
<tr>
<td>
<label class="control-label">{{ 'label.numofrepayments' | translate }}&nbsp;<span class="required">*</span></label>
<input class="input-small" name="numofrepayments" type="text" ng-model="formData.numberOfRepayments" required late-Validate/>
<input id="numberOfRepayments" class="input-small" name="numofrepayments" type="text" ng-model="formData.numberOfRepayments" required late-Validate/>
<form-validate valattributeform="newjlgloanform" valattribute="numofrepayments"/>
</td>
<td>
<label class="control-label">{{ 'label.repaidevery' | translate }}&nbsp;<span class="required">*</span></label>
<input class="input-small" name="repaidevery" type="text" ng-model="formData.repaymentEvery" required late-Validate/>
<select class="input-small" ng-model="formData.repaymentFrequencyType" ng-options="repaymentFrequencyType.id as repaymentFrequencyType.value for repaymentFrequencyType in loanaccountinfo.termFrequencyTypeOptions" value="{{repaymentFrequencyType.id}}"></select>
<input id="repaymentEvery" class="input-small" name="repaidevery" type="text" ng-model="formData.repaymentEvery" required late-Validate/>
<select id="repaymentFrequencyType" class="input-small" ng-model="formData.repaymentFrequencyType" ng-options="repaymentFrequencyType.id as repaymentFrequencyType.value for repaymentFrequencyType in loanaccountinfo.termFrequencyTypeOptions" value="{{repaymentFrequencyType.id}}"></select>
<form-validate valattributeform="newjlgloanform" valattribute="repaidevery"/>
</td>
</tr>
<tr>
<td>
<label class="control-label">{{ 'label.nominalinterestrate' | translate }}&nbsp;<span class="required">*</span></label>
<input class="input-small" name="nominalinterestrate" type="text" ng-model="formData.interestRatePerPeriod" required late-Validate/>
<select class="input-small" ng-model="formData.interestRateFrequencyType" ng-options="interestRateFrequencyType.id as interestRateFrequencyType.value for interestRateFrequencyType in loanaccountinfo.interestRateFrequencyTypeOptions" value="{{interestRateFrequencyType.id}}"></select>
<input id="interestRatePerPeriod" class="input-small" name="nominalinterestrate" type="text" ng-model="formData.interestRatePerPeriod" required late-Validate/>
<select id="interestRateFrequencyType" class="input-small" ng-model="formData.interestRateFrequencyType" ng-options="interestRateFrequencyType.id as interestRateFrequencyType.value for interestRateFrequencyType in loanaccountinfo.interestRateFrequencyTypeOptions" value="{{interestRateFrequencyType.id}}"></select>
<form-validate valattributeform="newjlgloanform" valattribute="nominalinterestrate"/>
</td>
<td></td>
@ -165,50 +166,50 @@
<tr>
<td width="40%">
<label class="control-label">{{ 'label.amortization' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.amortizationType" ng-options="amortizationType.id as amortizationType.value for amortizationType in loanaccountinfo.amortizationTypeOptions" value="{{amortizationType.id}}">
<select id="amortizationType" ng-model="formData.amortizationType" ng-options="amortizationType.id as amortizationType.value for amortizationType in loanaccountinfo.amortizationTypeOptions" value="{{amortizationType.id}}">
</td>
<td width="40%">
<label class="control-label">{{ 'label.interestmethod' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.interestType" ng-options="interestType.id as interestType.value for interestType in loanaccountinfo.interestTypeOptions" value="{{interestType.id}}">
<select id="interestType" ng-model="formData.interestType" ng-options="interestType.id as interestType.value for interestType in loanaccountinfo.interestTypeOptions" value="{{interestType.id}}">
</td>
</tr>
<tr>
<td>
<label class="control-label">{{ 'label.interestcalculationperiod' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.interestCalculationPeriodType" ng-options="interestCalculationPeriodType.id as interestCalculationPeriodType.value for interestCalculationPeriodType in loanaccountinfo.interestCalculationPeriodTypeOptions" value="{{interestCalculationPeriodType.id}}">
<select id="interestCalculationPeriodType" ng-model="formData.interestCalculationPeriodType" ng-options="interestCalculationPeriodType.id as interestCalculationPeriodType.value for interestCalculationPeriodType in loanaccountinfo.interestCalculationPeriodTypeOptions" value="{{interestCalculationPeriodType.id}}">
</td>
<td>
{{formData.displaySymbol}}
<label class="control-label">{{ 'label.arearstolerance' | translate }}&nbsp;</label>
<input type="text" ng-model="formData.inArrearsTolerance">
<input id="inArrearsTolerance" type="text" ng-model="formData.inArrearsTolerance">
{{loanaccountinfo.currency.displaySymbol}}
</td>
</tr>
<tr>
<td>
<label class="control-label">{{ 'label.repaymentstrategy' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.transactionProcessingStrategyId" ng-options="transactionProcessingStrategy.id as transactionProcessingStrategy.name for transactionProcessingStrategy in loanaccountinfo.transactionProcessingStrategyOptions" value="{{transactionProcessingStrategy.id}}">
<select id="transactionProcessingStrategyId" ng-model="formData.transactionProcessingStrategyId" ng-options="transactionProcessingStrategy.id as transactionProcessingStrategy.name for transactionProcessingStrategy in loanaccountinfo.transactionProcessingStrategyOptions" value="{{transactionProcessingStrategy.id}}">
</td>
<td>
<label class="control-label">{{ 'label.grace' | translate }}&nbsp;</label>
<input class="input-small" type="text" ng-model="formData.graceOnPrincipalPayment">
<input class="input-small" type="text" ng-model="formData.graceOnInterestPayment">
<input id="graceOnPrincipalPayment" class="input-small" type="text" ng-model="formData.graceOnPrincipalPayment">
<input id="graceOnInterestPayment" class="input-small" type="text" ng-model="formData.graceOnInterestPayment">
</td>
</tr>
<tr>
<td>
<label class="control-label">{{ 'label.interestfreeperiod' | translate }}&nbsp;</label>
<input type="text" ng-model="formData.graceOnInterestCharged">
<input id="graceOnInterestCharged" type="text" ng-model="formData.graceOnInterestCharged">
</td>
<td>
<label class="control-label">{{ 'label.interestchargedfrom' | translate }}&nbsp;</label>
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="formData.interestChargedFromDate" is-open="opened2" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" late-Validate />
<input id="interestChargedFromDate" type="text" datepicker-pop="dd MMMM yyyy" ng-model="formData.interestChargedFromDate" is-open="opened2" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" late-Validate />
</td>
</tr>
<tr>
<td>
<label class="control-label">{{ 'label.firstrepaymenton' | translate }}&nbsp;</label>
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="formData.repaymentsStartingFromDate" is-open="opened3" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" late-Validate />
<input id="repaymentsStartingFromDate" type="text" datepicker-pop="dd MMMM yyyy" ng-model="formData.repaymentsStartingFromDate" is-open="opened3" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" late-Validate />
</td>
<td></td>
</tr>
@ -239,10 +240,10 @@
<tr ng-repeat="charge in charges" >
<td>{{charge.name}},{{charge.currency.displaySymbol}}</td>
<td>{{charge.chargeCalculationType.value}}</td>
<td><input class="input-small" type="text" ng-model="charge.amount" placeholder="{{'label.placeholder.amount' | translate}}"></td>
<td><input id="{{charges[$index].amount}}" class="input-small" type="text" ng-model="charge.amount" placeholder="{{'label.placeholder.amount' | translate}}"></td>
<td>{{charge.chargeTimeType.value}}</td>
<td>
<input type="text" datepicker-pop="dd MMMM yyyy" placeholder="{{'label.placeholder.duedate' | translate}}" ng-model="charge.dueDate" is-open="'openedch'+$index" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" />
<input id="charges[{{$index}}].duedate" type="text" datepicker-pop="dd MMMM yyyy" placeholder="{{'label.placeholder.duedate' | translate}}" ng-model="charge.dueDate" is-open="'openedch'+$index" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" />
</td>
<td><a ng-click="deleteCharge($index)"><i class="icon-remove icon-white"></i></a></td>
</tr>
@ -271,8 +272,8 @@
</tr>
<tr ng-repeat="collateral in collaterals" >
<td><input type="text" class="input-small" ng-model="collateral.name" readonly></td>
<td><input type="text" class="input-small" ng-model="collateral.value"></td>
<td><input type="text" ng-model="collateral.description" placeholder="{{'label.description' | translate}}"></td>
<td><input id="{{collaterals[$index].value}}" type="text" class="input-small" ng-model="collateral.value"></td>
<td><input id="{{collaterals[$index].description}}" type="text" ng-model="collateral.description" placeholder="{{'label.description' | translate}}"></td>
<td><a ng-click="deleteCollateral($index)"><i class="icon-remove icon-white"></i></a></td>
</tr>
</table>

View File

@ -6,11 +6,7 @@
<li class="active">{{'label.loan.application' | translate}}</li>
</ul>
</div>
<div class="error" ng-show="errorStatus || errorDetails">
<label>{{'label.error' | translate}}</label>
<label ng-show="errorStatus">{{errorStatus}}</label>
<label ng-hide="errorStatus" ng-repeat="error in errorDetails">{{error.code | translate}}</label>
</div>
<api-validate></api-validate>
<form name="newloanaccountform" novalidate="" rc-submit="submit()" class="well">
<fieldset>
<legend>{{ 'form.legend.new.loan.application' | translate }}</legend>
@ -26,7 +22,7 @@
</td>
<td width="30%">
<label class="control-label">{{ 'label.product' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.productId" ng-options="product.id as product.name for product in products" value="{{product.id}}" ng-change="loanProductChange(formData.productId)" required="required">
<select id="productId" ng-model="formData.productId" ng-options="product.id as product.name for product in products" value="{{product.id}}" ng-change="loanProductChange(formData.productId)" required="required">
<option style="display:none" value="">{{'label.select.loan.product' | translate}}</option>
</select>
</td>
@ -40,7 +36,7 @@
<td width="12%"></td>
<td width="30%">
<label class="control-label">{{ 'label.loanofficer' | translate }}&nbsp;</label>
<select ng-model="formData.loanOfficerId" ng-options="loanOfficer.id as loanOfficer.displayName for loanOfficer in loanaccountinfo.loanOfficerOptions" value="{{loanOfficer.id}}">
<select id="loanOfficerId" ng-model="formData.loanOfficerId" ng-options="loanOfficer.id as loanOfficer.displayName for loanOfficer in loanaccountinfo.loanOfficerOptions" value="{{loanOfficer.id}}">
<option value="">{{'label.select.loanofficer' | translate}}</option>
</select>
</td>
@ -53,12 +49,13 @@
<td></td>
<td>
<label class="control-label">{{ 'label.loanpurpose' | translate }}&nbsp;</label>
<select ng-model="formData.loanPurposeId" ng-options="loanPurpose.id as loanPurpose.name for loanPurpose in loanaccountinfo.loanPurposeOptions" value="{{loanPurpose.id}}">
<select id="loanPurposeId" ng-model="formData.loanPurposeId" ng-options="loanPurpose.id as loanPurpose.name for loanPurpose in loanaccountinfo.loanPurposeOptions" value="{{loanPurpose.id}}">
<option value="">{{'label.select.purpose' | translate}}</option>
</select>
</td>
<td>
<label class="control-label">{{ 'label.fund' | translate }}&nbsp;</label>
<select ng-model="formData.fundId" ng-options="fund.id as fund.name for fund in loanaccountinfo.fundOptions" value="{{fund.id}}">
<select id="fundId" ng-model="formData.fundId" ng-options="fund.id as fund.name for fund in loanaccountinfo.fundOptions" value="{{fund.id}}">
<option value="">{{'label.select.fund' | translate}}</option>
</select>
</td>
@ -104,29 +101,29 @@
</td>
<td width="40%">
<label class="control-label">{{ 'label.loanterm' | translate }}&nbsp;<span class="required">*</span></label>
<input class="input-small" name="loanterm" type="text" ng-model="formData.loanTermFrequency" required late-Validate/>
<select class="input-small" ng-model="formData.loanTermFrequencyType" ng-options="termFrequencyType.id as termFrequencyType.value for termFrequencyType in loanaccountinfo.termFrequencyTypeOptions" value="{{termFrequencyType.id}}"/>
<input id="loanTermFrequency" class="input-small" name="loanterm" type="text" ng-model="formData.loanTermFrequency" required late-Validate/>
<select id="loanTermFrequencyType" class="input-small" ng-model="formData.loanTermFrequencyType" ng-options="termFrequencyType.id as termFrequencyType.value for termFrequencyType in loanaccountinfo.termFrequencyTypeOptions" value="{{termFrequencyType.id}}"/>
<form-validate valattributeform="newloanaccountform" valattribute="loanterm"/>
</td>
</tr>
<tr>
<td>
<label class="control-label">{{ 'label.numofrepayments' | translate }}&nbsp;<span class="required">*</span></label>
<input class="input-small" name="numofrepayments" type="text" ng-model="formData.numberOfRepayments" required late-Validate/>
<input id="numberOfRepayments" class="input-small" name="numofrepayments" type="text" ng-model="formData.numberOfRepayments" required late-Validate/>
<form-validate valattributeform="newloanaccountform" valattribute="numofrepayments"/>
</td>
<td>
<label class="control-label">{{ 'label.repaidevery' | translate }}&nbsp;<span class="required">*</span></label>
<input class="input-small" type="text" name="repaidevery" ng-model="formData.repaymentEvery" required late-Validate/>
<select class="input-small" ng-model="formData.repaymentFrequencyType" ng-options="repaymentFrequencyType.id as repaymentFrequencyType.value for repaymentFrequencyType in loanaccountinfo.termFrequencyTypeOptions" value="{{repaymentFrequencyType.id}}"/>
<input id="repaymentEvery" class="input-small" type="text" name="repaidevery" ng-model="formData.repaymentEvery" required late-Validate/>
<select id="repaymentFrequencyType" class="input-small" ng-model="formData.repaymentFrequencyType" ng-options="repaymentFrequencyType.id as repaymentFrequencyType.value for repaymentFrequencyType in loanaccountinfo.termFrequencyTypeOptions" value="{{repaymentFrequencyType.id}}"/>
<form-validate valattributeform="newloanaccountform" valattribute="repaidevery"/>
</td>
</tr>
<tr>
<td>
<label class="control-label">{{ 'label.nominalinterestrate' | translate }}&nbsp;<span class="required">*</span></label>
<input class="input-small" type="text" name="nominalinterestrate" ng-model="formData.interestRatePerPeriod" required late-Validate/>
<select class="input-small" ng-model="formData.interestRateFrequencyType" ng-options="interestRateFrequencyType.id as interestRateFrequencyType.value for interestRateFrequencyType in loanaccountinfo.interestRateFrequencyTypeOptions" value="{{interestRateFrequencyType.id}}"/>
<input id="interestRatePerPeriod" class="input-small" type="text" name="nominalinterestrate" ng-model="formData.interestRatePerPeriod" required late-Validate/>
<select id="interestRateFrequencyType" class="input-small" ng-model="formData.interestRateFrequencyType" ng-options="interestRateFrequencyType.id as interestRateFrequencyType.value for interestRateFrequencyType in loanaccountinfo.interestRateFrequencyTypeOptions" value="{{interestRateFrequencyType.id}}"/>
<form-validate valattributeform="newloanaccountform" valattribute="nominalinterestrate"/>
</td>
<td>
@ -149,50 +146,50 @@
<tr>
<td width="40%">
<label class="control-label">{{ 'label.amortization' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.amortizationType" ng-options="amortizationType.id as amortizationType.value for amortizationType in loanaccountinfo.amortizationTypeOptions" value="{{amortizationType.id}}">
<select id="amortizationType" ng-model="formData.amortizationType" ng-options="amortizationType.id as amortizationType.value for amortizationType in loanaccountinfo.amortizationTypeOptions" value="{{amortizationType.id}}">
</td>
<td width="40%">
<label class="control-label">{{ 'label.interestmethod' | translate }}&nbsp;</label><span class="required">*</span></label>
<select ng-model="formData.interestType" ng-options="interestType.id as interestType.value for interestType in loanaccountinfo.interestTypeOptions" value="{{interestType.id}}">
<select id="interestType" ng-model="formData.interestType" ng-options="interestType.id as interestType.value for interestType in loanaccountinfo.interestTypeOptions" value="{{interestType.id}}">
</td>
</tr>
<tr>
<td>
<label class="control-label">{{ 'label.interestcalculationperiod' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.interestCalculationPeriodType" ng-options="interestCalculationPeriodType.id as interestCalculationPeriodType.value for interestCalculationPeriodType in loanaccountinfo.interestCalculationPeriodTypeOptions" value="{{interestCalculationPeriodType.id}}">
<select id="interestCalculationPeriodType" ng-model="formData.interestCalculationPeriodType" ng-options="interestCalculationPeriodType.id as interestCalculationPeriodType.value for interestCalculationPeriodType in loanaccountinfo.interestCalculationPeriodTypeOptions" value="{{interestCalculationPeriodType.id}}">
</td>
<td>
{{formData.displaySymbol}}
<label class="control-label">{{ 'label.arearstolerance' | translate }}&nbsp;</label>
<input type="text" ng-model="formData.inArrearsTolerance">
<input id="inArrearsTolerance" type="text" ng-model="formData.inArrearsTolerance">
{{loanaccountinfo.currency.displaySymbol}}
</td>
</tr>
<tr>
<td>
<label class="control-label">{{ 'label.repaymentstrategy' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.transactionProcessingStrategyId" ng-options="transactionProcessingStrategy.id as transactionProcessingStrategy.name for transactionProcessingStrategy in loanaccountinfo.transactionProcessingStrategyOptions" value="{{transactionProcessingStrategy.id}}">
<select id="transactionProcessingStrategyId" ng-model="formData.transactionProcessingStrategyId" ng-options="transactionProcessingStrategy.id as transactionProcessingStrategy.name for transactionProcessingStrategy in loanaccountinfo.transactionProcessingStrategyOptions" value="{{transactionProcessingStrategy.id}}">
</td>
<td>
<label class="control-label">{{ 'label.grace' | translate }}&nbsp;</label>
<input class="input-small" type="text" ng-model="formData.graceOnPrincipalPayment">
<input class="input-small" type="text" ng-model="formData.graceOnInterestPayment">
<input id="graceOnPrincipalPayment" class="input-small" type="text" ng-model="formData.graceOnPrincipalPayment">
<input id="graceOnInterestPayment" class="input-small" type="text" ng-model="formData.graceOnInterestPayment">
</td>
</tr>
<tr>
<td>
<label class="control-label">{{ 'label.interestfreeperiod' | translate }}&nbsp;</label>
<input type="text" ng-model="formData.graceOnInterestCharged">
<input id="graceOnInterestCharged" type="text" ng-model="formData.graceOnInterestCharged">
</td>
<td>
<label class="control-label">{{ 'label.interestchargedfrom' | translate }}&nbsp;</label>
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="date.third" is-open="opened2" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" late-Validate />
<input id="interestChargedFromDate" type="text" datepicker-pop="dd MMMM yyyy" ng-model="date.third" is-open="opened2" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" late-Validate />
</td>
</tr>
<tr>
<td>
<label class="control-label">{{ 'label.firstrepaymenton' | translate }}&nbsp;</label>
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="date.fourth" is-open="opened3" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" late-Validate />
<input id="repaymentsStartingFromDate" type="text" datepicker-pop="dd MMMM yyyy" ng-model="date.fourth" is-open="opened3" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" late-Validate />
</td>
<td></td>
</tr>
@ -223,10 +220,10 @@
<tr ng-repeat="charge in charges" >
<td>{{charge.name}},{{charge.currency.displaySymbol}}</td>
<td>{{charge.chargeCalculationType.value}}</td>
<td><input class="input-small" type="text" ng-model="charge.amount" placeholder="{{'label.placeholder.amount' | translate}}"></td>
<td><input id="{{charges[$index].amount}}" class="input-small" type="text" ng-model="charge.amount" placeholder="{{'label.placeholder.amount' | translate}}"></td>
<td>{{charge.chargeTimeType.value}}</td>
<td>
<input type="text" datepicker-pop="dd MMMM yyyy" placeholder="{{'label.placeholder.duedate' | translate}}" ng-model="charge.dueDate" is-open="'openedch'+$index" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" late-Validate />
<input id="charges[{{$index}}].duedate" type="text" datepicker-pop="dd MMMM yyyy" placeholder="{{'label.placeholder.duedate' | translate}}" ng-model="charge.dueDate" is-open="'openedch'+$index" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" late-Validate />
</td>
<td><a ng-click="deleteCharge($index)"><i class="icon-remove icon-white"></i></a></td>
</tr>
@ -255,8 +252,8 @@
</tr>
<tr ng-repeat="collateral in collaterals" >
<td><input type="text" class="input-small" ng-model="collateral.name" readonly></td>
<td><input type="text" class="input-small" ng-model="collateral.value"></td>
<td><input type="text" ng-model="collateral.description" placeholder="{{'label.description' | translate}}"></td>
<td><input id="{{collaterals[$index].value}}" type="text" class="input-small" ng-model="collateral.value"></td>
<td><input id="{{collaterals[$index].description}}" type="text" ng-model="collateral.description" placeholder="{{'label.description' | translate}}"></td>
<td><a ng-click="deleteCollateral($index)"><i class="icon-remove icon-white"></i></a></td>
</tr>
</table>

View File

@ -5,6 +5,7 @@
</ul>
</div>
<form class="form-horizontal well" ng-controller="BulkLoanReassignmentController" ng-submit="submit()">
<api-validate></api-validate>
<fieldset>
<legend>{{'label.bulkloanreassignment' | translate}}</legend>
<table>
@ -25,7 +26,7 @@
<div class="control-group">
<label class="control-label">{{ 'label.assignmentdate' | translate }}<span class="required">*</span></label>
<div class="controls">
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="first.date" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" required late-Validate />
<input id="assignmentDate" type="text" datepicker-pop="dd MMMM yyyy" ng-model="first.date" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" required late-Validate />
</div>
</div>
</td>
@ -35,7 +36,7 @@
<div class="control-group">
<label class="control-label" >{{ 'label.fromloanofficer' | translate }}<span class="required">*</span></label>
<div class="controls">
<select ng-model="formData.fromLoanOfficerId" data-ng-options="officer.id as officer.displayName for officer in officers" ng-change="getOfficerClients()" >
<select id="fromLoanOfficerId" ng-model="formData.fromLoanOfficerId" data-ng-options="officer.id as officer.displayName for officer in officers" ng-change="getOfficerClients()" >
<option value="">{{'label.select.one' | translate}}</option>
</select>
</div>
@ -45,7 +46,7 @@
<div class="control-group">
<label class="control-label" >{{ 'label.toloanofficer' | translate }}<span class="required">*</span></label>
<div class="controls">
<select ng-model="formData.toLoanOfficerId" data-ng-options="officer.id as officer.displayName for officer in officers">
<select id="toLoanOfficerId" ng-model="formData.toLoanOfficerId" data-ng-options="officer.id as officer.displayName for officer in officers">
<option value="">{{'label.select.one' | translate}}</option>
</select>
</div>

View File

@ -6,13 +6,14 @@
</ul>
</div>
<form name="createemployeeform" novalidate="" class="form-horizontal well" ng-controller="CreateEmployeeController" rc-submit="submit()">
<api-validate></api-validate>
<fieldset>
<legend>{{'label.createemployee' | translate}}</legend>
<div class="control-group">
<label class="control-label" for="office">{{ 'label.office' | translate }}<span class="required">*</span></label>
<div class="controls">
<select ng-model="formData.officeId" ng-options="office.id as office.name for office in offices" value="{{office.id}}">
<select id="officeId" ng-model="formData.officeId" ng-options="office.id as office.name for office in offices" value="{{office.id}}">
</select>
</div>
</div>

View File

@ -6,6 +6,7 @@
</ul>
</div>
<form name="addholidayform" novalidate="" class="form-horizontal well" ng-controller="AddHolController" rc-submit="submit()">
<api-validate></api-validate>
<fieldset>
<legend>{{'label.createholiday' | translate}}</legend>
<table>
@ -14,7 +15,7 @@
<div class="control-group">
<label class="control-label">{{ 'label.holiday.name' | translate }}<span class="required">*</span></label>
<div class="controls">
<input ng-autofocus="true" type="text" name="name" ng-model="formData.name" required late-Validate/>
<input id="name" ng-autofocus="true" type="text" name="name" ng-model="formData.name" required late-Validate/>
<form-validate valattributeform="addholidayform" valattribute="name"/>
</div>
</div>
@ -25,7 +26,7 @@
<div class="control-group">
<label class="control-label">{{ 'label.holiday.applicableoffices' | translate }}</label>
<div class="controls">
<select multiple ng-model="formData.officeId" name="office" required>
<select id="officeId" multiple ng-model="formData.officeId" name="office" required>
<option ng-repeat="office in offices" value="{{office.id}}">{{office.name}}</option>
</select>
<form-validate valattributeform="addholidayform" valattribute="office"/>
@ -40,12 +41,12 @@
<div>
<label class="control-label">{{ 'label.holiday.fromdate' | translate }}<span class="required">*</span></label>
<div class="controls">
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="date.first" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)"/>
<input id="fromDate" type="text" datepicker-pop="dd MMMM yyyy" ng-model="date.first" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)"/>
</div></div>
<div>
<label class="control-label">{{ 'label.holiday.todate' | translate }}<span class="required">*</span></label>
<div class="controls">
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="date.second" is-open="opened1" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)"/>
<input id="toDate" type="text" datepicker-pop="dd MMMM yyyy" ng-model="date.second" is-open="opened1" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)"/>
</div>
</div>
</div>
@ -57,7 +58,7 @@
<div class="control-group">
<label class="control-label">{{ 'label.holiday.repaymentsheduleto' | translate }}<span class="required">*</span></label>
<div class="controls">
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="date.third" is-open="opened2" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)"/>
<input id="repaymentsRescheduledTo" type="text" datepicker-pop="dd MMMM yyyy" ng-model="date.third" is-open="opened2" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)"/>
</div>
</div>
</td>
@ -67,7 +68,7 @@
<div class="control-group">
<label class="control-label">{{ 'label.holiday.desc' | translate }}</label>
<div class="controls">
<input type="text" data-ng-model="formData.description"/>
<input id="" type="text" data-ng-model="formData.description"/>
</div>
</div>
</td>

View File

@ -6,6 +6,7 @@
</ul>
</div>
<form name="createofficeform" novalidate="" class="form-horizontal well" ng-controller="CreateOfficeController" rc-submit="submit()">
<api-validate></api-validate>
<fieldset>
<legend>{{'label.createoffice' | translate}}</legend>
<table>
@ -14,7 +15,7 @@
<div class="control-group">
<label class="control-label">{{ 'label.officename' | translate }}<span class="required">*</span></label>
<div class="controls">
<input ng-autofocus="true" type="text" name="name" ng-model="formData.name" required late-Validate/>
<input id="name" ng-autofocus="true" type="text" name="name" ng-model="formData.name" required late-Validate/>
<form-validate valattributeform="createofficeform" valattribute="name"/>
</div>
</div>
@ -25,7 +26,7 @@
<div class="control-group">
<label class="control-label">{{ 'label.parentoffice' | translate }}<span class="required">*</span></label>
<div class="controls">
<select ng-model="formData.parentId" ng-options="office.id as office.name for office in offices" value="{{office.id}}"></select>
<select id="parentId" ng-model="formData.parentId" ng-options="office.id as office.name for office in offices" value="{{office.id}}"></select>
</div>
</div>
</td>
@ -35,7 +36,7 @@
<div class="control-group">
<label class="control-label">{{ 'label.openedon' | translate }}<span class="required">*</span></label>
<div class="controls">
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="first.date" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)"/>
<input id="openingDate" type="text" datepicker-pop="dd MMMM yyyy" ng-model="first.date" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)"/>
</div>
</div>
</td>
@ -45,7 +46,7 @@
<div class="control-group">
<label class="control-label">{{ 'label.externalId' | translate }}</label>
<div class="controls">
<input type="text" name="externalId" ng-model="formData.externalId">
<input id="externalId" type="text" name="externalId" ng-model="formData.externalId">
</div>
</div>
</td>

View File

@ -8,13 +8,14 @@
</ul>
</div>
<form name="editemployeeform" novalidate="" class="form-horizontal well" rc-submit="submit()">
<api-validate></api-validate>
<fieldset>
<legend>{{'label.editemployee' | translate}}</legend>
<div class="control-group">
<label class="control-label" for="office">{{ 'label.office' | translate }}<span class="required">*</span></label>
<div class="controls">
<select ng-model="formData.officeId" ng-options="office.id as office.name for office in offices" value="{{office.id}}">
<select id="officeId" ng-model="formData.officeId" ng-options="office.id as office.name for office in offices" value="{{office.id}}">
</select>
</div>
</div>

View File

@ -6,6 +6,7 @@
</ul>
</div>
<form name="editofficeform" novalidate="" class="form-horizontal well" ng-controller="EditOfficeController" rc-submit="submit()">
<api-validate></api-validate>
<fieldset>
<table>
<tr>
@ -13,7 +14,7 @@
<div class="control-group">
<label class="control-label" for="name">{{ 'label.officename' | translate }}<span class="required">*</span></label>
<div class="controls">
<input ng-autofocus="true" type="text" name="name" ng-model="formData.name" required late-Validate/>
<input id="name" ng-autofocus="true" type="text" name="name" ng-model="formData.name" required late-Validate/>
<form-validate valattributeform="editofficeform" valattribute="name"/>
</div>
</div>
@ -24,7 +25,7 @@
<div class="control-group">
<label class="control-label">{{ 'label.openedon' | translate }}<span class="required">*</span></label>
<div class="controls">
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="first.date" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)"/>
<input id="openingDate" type="text" datepicker-pop="dd MMMM yyyy" ng-model="first.date" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)"/>
</div>
</div>
</td>
@ -34,7 +35,7 @@
<div class="control-group">
<label class="control-label">{{ 'label.externalId' | translate }}</label>
<div class="controls">
<input type="text" name="externalId" ng-model="formData.externalId">
<input id="externalId" type="text" name="externalId" ng-model="formData.externalId">
</div>
</div>
</td>

View File

@ -1,9 +1,10 @@
<form name="createchargeform" novalidate="" class="form-horizontal well" ng-controller="CreateChargeController" rc-submit="submit()">
<api-validate></api-validate>
<fieldset>
<div class="control-group">
<label class="control-label">{{'label.chargesappliesto' | translate}}<span class="required">*</span></label>
<div class="controls">
<select name="chargeappliesto" ng-model="formData.chargeAppliesTo" ng-options="chargesapply.id as chargesapply.value for chargesapply in template.chargeAppliesToOptions" value="{{chargesapply.id}}" ng-change="chargeAppliesToSelected(formData.chargeAppliesTo)" required>
<select id="chargeAppliesTo" name="chargeappliesto" ng-model="formData.chargeAppliesTo" ng-options="chargesapply.id as chargesapply.value for chargesapply in template.chargeAppliesToOptions" value="{{chargesapply.id}}" ng-change="chargeAppliesToSelected(formData.chargeAppliesTo)" required>
<option value="">{{'label.select.one' | translate}}</option>
</select>
<form-validate valattributeform="createchargeform" valattribute="chargeappliesto"/>
@ -21,7 +22,7 @@
<div class="control-group">
<label class="control-label">{{'label.currency' | translate}}<span class="required">*</span></label>
<div class="controls">
<select name="currency" ng-model="formData.currencyCode" ng-options="currency.code as currency.name for currency in template.currencyOptions" value="{{currency.code}}"
<select id="currencyCode" name="currency" ng-model="formData.currencyCode" ng-options="currency.code as currency.name for currency in template.currencyOptions" value="{{currency.code}}"
required>
<option value="">{{'label.select.currency' | translate}}</option>
</select>
@ -31,7 +32,8 @@
<div class="control-group">
<label class="control-label">{{'label.chargetimetype' | translate}}<span class="required">*</span></label>
<div class="controls">
<select name="chargetimetype" ng-model="formData.chargeTimeType" ng-options="timetype.id as timetype.value for timetype in chargeTimeTypeOptions" value="{{timetype.id}}" required>
<select id="chargeTimeType" name="chargetimetype" ng-model="formData.chargeTimeType" ng-options="timetype.id as timetype.value for timetype in chargeTimeTypeOptions" value="{{timetype.id}}" required>
<option value="">{{'label.select.one' | translate}}</option>
</select>
<form-validate valattributeform="createchargeform" valattribute="chargetimetype"/>
@ -40,7 +42,7 @@
<div class="control-group">
<label class="control-label">{{'label.chargecalculation' | translate}}<span class="required">*</span></label>
<div class="controls">
<select name="chargecalculation" ng-model="formData.chargeCalculationType" ng-options="chargecalculation.id as chargecalculation.value for chargecalculation in chargeCalculationTypeOptions" value="{{chargecalculation.id}}" required>
<select id="chargeCalculationType" name="chargecalculation" ng-model="formData.chargeCalculationType" ng-options="chargecalculation.id as chargecalculation.value for chargecalculation in chargeCalculationTypeOptions" value="{{chargecalculation.id}}" required>
<option value="">{{'label.select.one' | translate}}</option>
</select>
<form-validate valattributeform="createchargeform" valattribute="chargecalculation"/>
@ -49,7 +51,7 @@
<div class="control-group" ng-show="showChargePaymentByField">
<label class="control-label">{{'label.chargepaymentby' | translate}}<span class="required">*</span></label>
<div class="controls">
<select name="showchargepaymentbyfield" ng-model="formData.chargePaymentMode" ng-options="chargepayment.id as chargepayment.value for chargepayment in template.chargePaymetModeOptions" value="{{chargepayment.id}}" required>
<select id="chargePaymentMode" name="showchargepaymentbyfield" ng-model="formData.chargePaymentMode" ng-options="chargepayment.id as chargepayment.value for chargepayment in template.chargePaymetModeOptions" value="{{chargepayment.id}}" required>
<option value="">{{'label.select.one' | translate}}</option>
</select>
<form-validate valattributeform="createchargeform" valattribute="showchargepaymentbyfield"/>
@ -58,7 +60,7 @@
<div class="control-group">
<label class="control-label" for="amount">{{'label.amount' | translate}}<span class="required">*</span></label>
<div class="controls">
<input name="amount" type="text" id="amount" ng-model="formData.amount" required late-Validate/>
<input id="amount" name="amount" type="text" id="amount" ng-model="formData.amount" required late-Validate/>
<form-validate valattributeform="createchargeform" valattribute="amount"/>
</div>
</div>

View File

@ -6,6 +6,7 @@
</ul>
</div>
<form name="createloanproductform" novalidate="" class="well" ng-controller="CreateLoanProductController" rc-submit="submit()">
<api-validate></api-validate>
<div class="control-group">
<table width="100%">
<tr class="control-group">
@ -17,7 +18,7 @@
<tr>
<td width="40%">
<label class="control-label">{{ 'label.productname' | translate }}&nbsp;<span class="required">*</span></label>
<input type="text" name="name" ng-model="formData.name" required late-validate/>
<input type="text" id="name" name="name" ng-model="formData.name" required late-validate/>
<form-validate valattributeform="createloanproductform" valattribute="name"/>
</td>
<td width="40%">
@ -34,7 +35,7 @@
<tr>
<td width="40%">
<label class="control-label">{{ 'label.fund' | translate }}&nbsp;</label>
<select ng-model="formData.fundId" ng-options="fund.id as fund.name for fund in product.fundOptions" value="{{fund.id}}">
<select id="fundId" ng-model="formData.fundId" ng-options="fund.id as fund.name for fund in product.fundOptions" value="{{fund.id}}">
<option style="display:none" value="">{{'label.select.fund' | translate}}</option>
</select>
</td>
@ -44,11 +45,11 @@
<tr>
<td width="40%">
<label class="control-label">{{ 'label.startdate' | translate }}&nbsp;</label>
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="date.first" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" />
<input id="startDate" type="text" datepicker-pop="dd MMMM yyyy" ng-model="date.first" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" />
</td>
<td width="40%">
<label class="control-label">{{ 'label.closedate' | translate }}&nbsp;</label>
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="date.second" is-open="opened1" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" />
<input id="closeDate" type="text" datepicker-pop="dd MMMM yyyy" ng-model="date.second" is-open="opened1" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" />
</td>
</tr>
<tr>
@ -78,18 +79,18 @@
<tr>
<td width="40%">
<label class="control-label">{{ 'label.currency' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.currencyCode" ng-options="currency.code as currency.name for currency in product.currencyOptions" value="{{currency.code}}"/>
<select id="currencyCode" ng-model="formData.currencyCode" ng-options="currency.code as currency.name for currency in product.currencyOptions" value="{{currency.code}}"/>
</td>
<td width="40%">
<label class="control-label">{{ 'label.decimalplaces' | translate }}&nbsp;<span class="required">*</span></label>
<input type="text" name="decimalplace" class="input-small"ng-model="formData.digitsAfterDecimal" required late-validate/>
<input type="text" id="digitsAfterDecimal" name="decimalplace" class="input-small"ng-model="formData.digitsAfterDecimal" required late-validate/>
<form-validate valattributeform="createloanproductform" valattribute="decimalplace"/>
</td>
</tr>
<tr>
<td width="40%">
<label class="control-label">{{ 'label.currencyinmultiplesof' | translate }}&nbsp;<span class="required">*</span></label>
<input type="text" name="multiplesof" ng-model="formData.inMultiplesOf" required late-validate/>
<input type="text" id="inMultiplesOf" name="multiplesof" ng-model="formData.inMultiplesOf" required late-validate/>
<form-validate valattributeform="createloanproductform" valattribute="multiplesof"/>
<td width="40%">
</td>
@ -102,13 +103,13 @@
<label class="control-label">{{ 'label.principal' | translate }}&nbsp;<span class="required">*</span></label>
<tr>
<th>
<input type="text" class="input-small" ng-model="formData.minPrincipal">&nbsp;
<input id="minPrincipal" type="text" class="input-small" ng-model="formData.minPrincipal">&nbsp;
</th>
<th>
<input type="text" name="principal" class="input-small" ng-model="formData.principal" required late-validate/>&nbsp;
<input type="text" id="principal" name="principal" class="input-small" ng-model="formData.principal" required late-validate/>&nbsp;
</th>
<th>
<input type="text" class="input-small" ng-model="formData.maxPrincipal">
<input type="text" id="maxPrincipal" class="input-small" ng-model="formData.maxPrincipal">
<form-validate valattributeform="createloanproductform" valattribute="principal"/>
</th>
</tr>
@ -132,13 +133,13 @@
<label class="control-label">{{ 'label.numofrepayments' | translate }}&nbsp;<span class="required">*</span></label>
<tr>
<th>
<input type="text" class="input-small" ng-model="formData.minNumberOfRepayments">&nbsp;
<input id="minNumberOfRepayments" type="text" class="input-small" ng-model="formData.minNumberOfRepayments">&nbsp;
</th>
<th>
<input type="text" name="numofrepayments" class="input-small" ng-model="formData.numberOfRepayments" required late-validate/>&nbsp;&nbsp;
<input type="text" id="numberOfRepayments" name="numofrepayments" class="input-small" ng-model="formData.numberOfRepayments" required late-validate/>&nbsp;&nbsp;
</th>
<th>
<input type="text" class="input-small" ng-model="formData.maxNumberOfRepayments">
<input type="text" id="maxNumberOfRepayments" class="input-small" ng-model="formData.maxNumberOfRepayments">
<form-validate valattributeform="createloanproductform" valattribute="numofrepayments"/>
</th>
</tr>
@ -159,8 +160,8 @@
<tr>
<td width="40%">
<label class="control-label">{{ 'label.repaidevery' | translate }}&nbsp;<span class="required">*</span></label>
<input name="repaymentEvery" class="input-small" type="text" ng-model="formData.repaymentEvery" required late-validate/>&nbsp;
<select class="input-small" ng-model="formData.repaymentFrequencyType" ng-options="repaymentFrequencyType.id as repaymentFrequencyType.value for repaymentFrequencyType in product.repaymentFrequencyTypeOptions" value="{{repaymentFrequencyType.id}}"/>
<input id="repaymentEvery" name="repaymentEvery" class="input-small" type="text" ng-model="formData.repaymentEvery" required late-validate/>&nbsp;
<select id="repaymentFrequencyType" class="input-small" ng-model="formData.repaymentFrequencyType" ng-options="repaymentFrequencyType.id as repaymentFrequencyType.value for repaymentFrequencyType in product.repaymentFrequencyTypeOptions" value="{{repaymentFrequencyType.id}}"/>
<form-validate valattributeform="createloanproductform" valattribute="repaymentEvery"/>
</td>
<td width="40%"></td>
@ -171,16 +172,16 @@
<label class="control-label">{{ 'label.nominalinterestrate' | translate }}&nbsp;<span class="required">*</span></label>
<tr>
<th>
<input type="text" class="input-small" ng-model="formData.minInterestRatePerPeriod">&nbsp;
<input id="minInterestRatePerPeriod" type="text" class="input-small" ng-model="formData.minInterestRatePerPeriod">&nbsp;
</th>
<th>
<input type="text" name="interestRatePerPeriod" class="input-small" ng-model="formData.interestRatePerPeriod" required late-validate/>&nbsp;
<input type="text" id="interestRatePerPeriod" name="interestRatePerPeriod" class="input-small" ng-model="formData.interestRatePerPeriod" required late-validate/>&nbsp;
</th>
<th>
<input type="text" class="input-small" ng-model="formData.maxInterestRatePerPeriod">
<input id="maxInterestRatePerPeriod" type="text" class="input-small" ng-model="formData.maxInterestRatePerPeriod">
</th>
<th>
<select class="input-small" ng-model="formData.interestRateFrequencyType" ng-options="interestRateFrequencyType.id as interestRateFrequencyType.value for interestRateFrequencyType in product.interestRateFrequencyTypeOptions" value="{{interestRateFrequencyType.id}}"/>
<select class="input-small" id="interestRateFrequencyType" ng-model="formData.interestRateFrequencyType" ng-options="interestRateFrequencyType.id as interestRateFrequencyType.value for interestRateFrequencyType in product.interestRateFrequencyTypeOptions" value="{{interestRateFrequencyType.id}}"/>
<form-validate valattributeform="createloanproductform" valattribute="interestRatePerPeriod"/>
</th>
</tr>
@ -215,38 +216,38 @@
<tr>
<td width="40%">
<label class="control-label">{{ 'label.amortization' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.amortizationType" ng-options="amortizationType.id as amortizationType.value for amortizationType in product.amortizationTypeOptions" value="{{amortizationType.id}}">
<select id="amortizationType" ng-model="formData.amortizationType" ng-options="amortizationType.id as amortizationType.value for amortizationType in product.amortizationTypeOptions" value="{{amortizationType.id}}">
</td>
<td width="40%">
<label class="control-label">{{ 'label.interestmethod' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.interestType" ng-options="interestType.id as interestType.value for interestType in product.interestTypeOptions" value="{{interestType.id}}">
<select id="interestType" ng-model="formData.interestType" ng-options="interestType.id as interestType.value for interestType in product.interestTypeOptions" value="{{interestType.id}}">
</td>
</tr>
<tr>
<td>
<label class="control-label">{{ 'label.interestcalculationperiod' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.interestCalculationPeriodType" ng-options="interestCalculationPeriodType.id as interestCalculationPeriodType.value for interestCalculationPeriodType in product.interestCalculationPeriodTypeOptions" value="{{interestCalculationPeriodType.id}}">
<select id="interestCalculationPeriodType" ng-model="formData.interestCalculationPeriodType" ng-options="interestCalculationPeriodType.id as interestCalculationPeriodType.value for interestCalculationPeriodType in product.interestCalculationPeriodTypeOptions" value="{{interestCalculationPeriodType.id}}">
</td>
<td>
<label class="control-label">{{ 'label.arearstolerance' | translate }}&nbsp;</label>
<input type="text" ng-model="formData.inArrearsTolerance">
<input id="inArrearsTolerance" type="text" ng-model="formData.inArrearsTolerance">
{{formData.principalCurrencyCode}}
</td>
</tr>
<tr>
<td>
<label class="control-label">{{ 'label.repaymentstrategy' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.transactionProcessingStrategyId" ng-options="transactionProcessingStrategy.id as transactionProcessingStrategy.name for transactionProcessingStrategy in product.transactionProcessingStrategyOptions" value="{{transactionProcessingStrategy.id}}">
<select id="transactionProcessingStrategyId" ng-model="formData.transactionProcessingStrategyId" ng-options="transactionProcessingStrategy.id as transactionProcessingStrategy.name for transactionProcessingStrategy in product.transactionProcessingStrategyOptions" value="{{transactionProcessingStrategy.id}}">
</td>
<td>
<table>
<label class="control-label">{{ 'label.grace' | translate }}&nbsp;</label>
<tr>
<th>
<input type="text" class="input-small" ng-model="formData.graceOnPrincipalPayment">&nbsp;
<input id="graceOnPrincipalPayment" type="text" class="input-small" ng-model="formData.graceOnPrincipalPayment">&nbsp;
</th>
<th>
<input type="text" class="input-small" ng-model="formData.graceOnInterestPayment">&nbsp;
<input id="graceOnInterestPayment" type="text" class="input-small" ng-model="formData.graceOnInterestPayment">&nbsp;
</th>
</tr>
<tr>
@ -263,7 +264,7 @@
<tr>
<td>
<label class="control-label">{{ 'label.interestfreeperiod' | translate }}&nbsp;</label>
<input type="text" ng-model="formData.graceOnInterestCharged">
<input id="graceOnInterestCharged" type="text" ng-model="formData.graceOnInterestCharged">
</td>
</tr>
</table>
@ -278,7 +279,7 @@
</td>
<td class="blockquoteresult">
<form>
<select ng-model="chargeId" ng-options="charge.id as charge.name for charge in product.chargeOptions" value="{{charge.id}}">
<select id="chargeId" ng-model="chargeId" ng-options="charge.id as charge.name for charge in product.chargeOptions" value="{{charge.id}}">
<option style="display:none" value="">{{'label.select.charge' | translate}}</option>
</select>
<button class="btn btn-primary" ng-click="chargeSelected(chargeId)">{{ 'button.add' | translate }}</button>
@ -345,14 +346,14 @@
<tr class="control-group">
<td>
<label class="control-label">{{ 'label.fundsource' | translate }}&nbsp;</label>
<select ng-model="formData.fundSourceAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in assetAccountOptions" value="{{assetAccount.id}}">
<select id="fundSourceAccountId" ng-model="formData.fundSourceAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in assetAccountOptions" value="{{assetAccount.id}}">
</select>
</td>
</tr>
<tr class="control-group">
<td>
<label class="control-label">{{ 'label.loanportfolio' | translate }}&nbsp;</label>
<select ng-model="formData.loanPortfolioAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in assetAccountOptions" value="{{assetAccount.id}}">
<select id="loanPortfolioAccountId" ng-model="formData.loanPortfolioAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in assetAccountOptions" value="{{assetAccount.id}}">
</select>
</td>
<td>
@ -361,7 +362,7 @@
<tr class="control-group">
<td>
<label class="control-label">{{ 'label.transfersinsuspenpense' | translate }}&nbsp;</label>
<select ng-model="formData.transfersInSuspenseAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in assetAccountOptions" value="{{assetAccount.id}}">
<select id="transfersInSuspenseAccountId" ng-model="formData.transfersInSuspenseAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in assetAccountOptions" value="{{assetAccount.id}}">
</select>
</td>
<td>
@ -375,7 +376,7 @@
<tr class="control-group">
<td>
<label class="control-label">{{ 'label.incomefrominterest' | translate }}&nbsp;</label>
<select ng-model="formData.interestOnLoanAccountId" ng-options="incomeAccount.id as incomeAccount.name for incomeAccount in incomeAccountOptions" value="{{incomeAccount.id}}">
<select id="interestOnLoanAccountId" ng-model="formData.interestOnLoanAccountId" ng-options="incomeAccount.id as incomeAccount.name for incomeAccount in incomeAccountOptions" value="{{incomeAccount.id}}">
</select>
</td>
<td></td>
@ -383,7 +384,7 @@
<tr class="control-group">
<td>
<label class="control-label">{{ 'label.incomefromfees' | translate }}&nbsp;</label>
<select ng-model="formData.incomeFromFeeAccountId" ng-options="incomeAccount.id as incomeAccount.name for incomeAccount in incomeAccountOptions" value="{{incomeAccount.id}}">
<select id="incomeFromFeeAccountId" ng-model="formData.incomeFromFeeAccountId" ng-options="incomeAccount.id as incomeAccount.name for incomeAccount in incomeAccountOptions" value="{{incomeAccount.id}}">
</select>
</td>
<td>
@ -392,7 +393,7 @@
<tr class="control-group">
<td>
<label class="control-label">{{ 'label.incomefrompenalties' | translate }}&nbsp;</label>
<select ng-model="formData.incomeFromPenaltyAccountId" ng-options="incomeAccount.id as incomeAccount.name for incomeAccount in incomeAccountOptions" value="{{incomeAccount.id}}">
<select id="incomeFromPenaltyAccountId" ng-model="formData.incomeFromPenaltyAccountId" ng-options="incomeAccount.id as incomeAccount.name for incomeAccount in incomeAccountOptions" value="{{incomeAccount.id}}">
</select>
</td>
<td>
@ -406,14 +407,14 @@
<tr class="control-group">
<td>
<label class="control-label">{{ 'label.loseswrittenoff' | translate }}&nbsp;</label>
<select ng-model="formData.writeOffAccountId" ng-options="expenseAccount.id as expenseAccount.name for expenseAccount in expenseAccountOptions" value="{{expenseAccount.id}}">
<select id="writeOffAccountId" ng-model="formData.writeOffAccountId" ng-options="expenseAccount.id as expenseAccount.name for expenseAccount in expenseAccountOptions" value="{{expenseAccount.id}}">
</select> <hr/>
</td>
</tr>
<tr>
<td>
<label class="control-label">{{ 'label.overpaymentliability' | translate }}&nbsp;</label>
<select ng-model="formData.overpaymentLiabilityAccountId" ng-options="liability.id as liability.name for liability in liabilityOptions" value="{{liability.id}}">
<select id="overpaymentLiabilityAccountId" ng-model="formData.overpaymentLiabilityAccountId" ng-options="liability.id as liability.name for liability in liabilityOptions" value="{{liability.id}}">
</select>
</td>
</tr>
@ -447,12 +448,12 @@
</tr>
<tr ng-repeat="configureFundOption in configureFundOptions">
<td>
<select ng-model="configureFundOption.paymentTypeId" ng-options="paymentType.id as paymentType.name for paymentType in configureFundOption.paymentTypeOptions" value="{{paymentType.id}}">
<select id="configureFundOptions[{{$index}}].paymentTypeId" ng-model="configureFundOption.paymentTypeId" ng-options="paymentType.id as paymentType.name for paymentType in configureFundOption.paymentTypeOptions" value="{{paymentType.id}}">
</select>
</td>
<td></td>
<td>
<select ng-model="configureFundOption.fundSourceAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in configureFundOption.assetAccountOptions" value="{{assetAccount.id}}">
<select id="configureFundOptions[{{$index}}].fundSourceAccountId" ng-model="configureFundOption.fundSourceAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in configureFundOption.assetAccountOptions" value="{{assetAccount.id}}">
</select>
</td>
<td></td>
@ -480,12 +481,12 @@
</tr>
<tr ng-repeat="specificIncomeaccount in specificIncomeaccounts">
<td>
<select ng-model="specificIncomeaccount.chargeId" ng-options="charge.id as charge.name for charge in specificIncomeaccount.chargeOptions" value="{{charge.id}}">
<select id="specificIncomeaccounts[{{$index}}].chargeId" ng-model="specificIncomeaccount.chargeId" ng-options="charge.id as charge.name for charge in specificIncomeaccount.chargeOptions" value="{{charge.id}}">
</select>
</td>
<td></td>
<td>
<select ng-model="specificIncomeaccount.incomeAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in specificIncomeaccount.incomeAccountOptions" value="{{assetAccount.id}}">
<select id="specificIncomeaccounts[{{$index}}].incomeAccountId" ng-model="specificIncomeaccount.incomeAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in specificIncomeaccount.incomeAccountOptions" value="{{assetAccount.id}}">
</select>
</td>
<td></td>
@ -513,12 +514,12 @@
</tr>
<tr ng-repeat="penaltySpecificIncomeaccount in penaltySpecificIncomeaccounts">
<td>
<select ng-model="penaltySpecificIncomeaccount.chargeId" ng-options="charge.id as charge.name for charge in penaltySpecificIncomeaccount.chargeOptions" value="{{charge.id}}">
<select id="penaltySpecificIncomeaccounts[{{$index}}].chargeId" ng-model="penaltySpecificIncomeaccount.chargeId" ng-options="charge.id as charge.name for charge in penaltySpecificIncomeaccount.chargeOptions" value="{{charge.id}}">
</select>
</td>
<td></td>
<td>
<select ng-model="penaltySpecificIncomeaccount.incomeAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in penaltySpecificIncomeaccount.incomeAccountOptions" value="{{assetAccount.id}}">
<select id="penaltySpecificIncomeaccounts[{{$index}}].incomeAccountId" ng-model="penaltySpecificIncomeaccount.incomeAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in penaltySpecificIncomeaccount.incomeAccountOptions" value="{{assetAccount.id}}">
</select>
</td>
<td></td>

View File

@ -6,6 +6,7 @@
</ul>
</div>
<form name="createsavingproductform" novalidate="" class="well" ng-controller="CreateSavingProductController" rc-submit="submit()">
<api-validate></api-validate>
<div class="control-group">
<table width="100%">
<tr class="control-group">
@ -17,7 +18,7 @@
<tr>
<td width="40%">
<label class="control-label">{{ 'label.productname' | translate }}&nbsp;<span class="required">*</span></label>
<input ng-autofocus="true" name="name" type="text" ng-model="formData.name" required late-validate/>
<input ng-autofocus="true" id="name" name="name" type="text" ng-model="formData.name" required late-validate/>
<form-validate valattributeform="createsavingproductform" valattribute="name"/>
</td>
<td width="40%">
@ -26,7 +27,7 @@
<tr>
<td width="40%">
<label class="control-label">{{ 'label.description' | translate }}<span class="required">*</span></label>
<textarea rows="2" name="description" ng-model="formData.description" required late-validate/></textarea>
<textarea rows="2" id="description" name="description" ng-model="formData.description" required late-validate/></textarea>
<form-validate valattributeform="createsavingproductform" valattribute="description"/>
</td>
<td width="40%">
@ -50,30 +51,30 @@
<tr>
<td width="40%">
<label class="control-label">{{ 'label.currency' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.currencyCode" ng-options="currency.code as currency.name for currency in product.currencyOptions" value="{{currency.code}}">
<select id="currencyCode" ng-model="formData.currencyCode" ng-options="currency.code as currency.name for currency in product.currencyOptions" value="{{currency.code}}">
</td>
<td width="40%">
<label class="control-label">{{ 'label.decimalplaces' | translate }}&nbsp;<span class="required">*</span></label>
<input type="text" name="decimalplace" class="input-small"ng-model="formData.digitsAfterDecimal" required late-validate/>
<input type="text" id="digitsAfterDecimal" name="decimalplace" class="input-small"ng-model="formData.digitsAfterDecimal" required late-validate/>
<form-validate valattributeform="createsavingproductform" valattribute="decimalplace"/>
</td>
</tr>
<tr>
<td width="40%">
<label class="control-label">{{ 'label.multiplesof' | translate }}&nbsp;<span class="required">*</span></label>
<input type="text" name="multiplesof" ng-model="formData.inMultiplesOf" required late-validate/>
<input type="text" id="inMultiplesOf" name="multiplesof" ng-model="formData.inMultiplesOf" required late-validate/>
<form-validate valattributeform="createsavingproductform" valattribute="multiplesof"/>
</td>
<td width="40%">
<label class="control-label">{{ 'label.nominalannualinterestrate' | translate }}&nbsp;<span class="required">*</span></label>
<input name="nominalAnnualInterestRate" type="text" class="input-small" ng-model="formData.nominalAnnualInterestRate" required late-validate/>
<input id="nominalAnnualInterestRate" name="nominalAnnualInterestRate" type="text" class="input-small" ng-model="formData.nominalAnnualInterestRate" required late-validate/>
<form-validate valattributeform="createsavingproductform" valattribute="nominalAnnualInterestRate"/>
</td>
</tr>
<tr>
<td width="40%">
<label class="control-label">{{ 'label.interestcompoundingperiod' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.interestCompoundingPeriodType" ng-options="type.id as type.value for type in product.interestCompoundingPeriodTypeOptions" value="{{type.id}}">
<select id="interestCompoundingPeriodTypeOptions" ng-model="formData.interestCompoundingPeriodType" ng-options="type.id as type.value for type in product.interestCompoundingPeriodTypeOptions" value="{{type.id}}">
</select>
</td>
<td width="40%"></td>
@ -81,7 +82,7 @@
<tr>
<td width="40%">
<label class="control-label">{{ 'label.interestpostingperiod' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.interestPostingPeriodType" ng-options="type.id as type.value for type in product.interestPostingPeriodTypeOptions" value="{{type.id}}">
<select id="interestPostingPeriodTypeOptions" ng-model="formData.interestPostingPeriodType" ng-options="type.id as type.value for type in product.interestPostingPeriodTypeOptions" value="{{type.id}}">
</select>
</td>
<td width="40%"></td>
@ -89,12 +90,12 @@
<tr>
<td width="40%">
<label class="control-label">{{ 'label.interest.calculated.using' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.interestCalculationType" ng-options="type.id as type.value for type in product.interestCalculationTypeOptions" value="{{type.id}}">
<select id="interestCalculationType" ng-model="formData.interestCalculationType" ng-options="type.id as type.value for type in product.interestCalculationTypeOptions" value="{{type.id}}">
</select>
</td>
<td width="40%">
<label class="control-label">{{ 'label.daysinyears' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.interestCalculationDaysInYearType" ng-options="type.id as type.value for type in product.interestCalculationDaysInYearTypeOptions" value="{{type.id}}">
<select id="interestCalculationDaysInYearType" ng-model="formData.interestCalculationDaysInYearType" ng-options="type.id as type.value for type in product.interestCalculationDaysInYearTypeOptions" value="{{type.id}}">
</select>
</td>
</tr>
@ -111,7 +112,7 @@
<tr>
<td width="40%">
<label class="control-label">{{ 'label.minimumopeningbalance' | translate }}&nbsp;</label>
<input type="text" ng-model="formData.minRequiredOpeningBalance">
<input id="minRequiredOpeningBalance" type="text" ng-model="formData.minRequiredOpeningBalance">
</td>
<td width="40%">
</td>
@ -119,8 +120,8 @@
<tr>
<td width="80%">
<label class="control-label">{{ 'label.lockinPeriodFrequency' | translate }}&nbsp;</label>
<input type="text" class="input-small" ng-model="formData.lockinPeriodFrequency">&nbsp;
<select ng-model="formData.lockinPeriodFrequencyType" class="input-small" ng-options="type.id as type.value for type in product.lockinPeriodFrequencyTypeOptions" value="{{type.id}}">
<input id="lockinPeriodFrequency" type="text" class="input-small" ng-model="formData.lockinPeriodFrequency">&nbsp;
<select id="lockinPeriodFrequencyType" ng-model="formData.lockinPeriodFrequencyType" class="input-small" ng-options="type.id as type.value for type in product.lockinPeriodFrequencyTypeOptions" value="{{type.id}}">
<option style="display:none" value="">{{'label.select.one' | translate}}</option>
</select>
</td>
@ -128,7 +129,7 @@
<tr>
<td width="40%">
<label class="control-label">{{ 'label.applywithdrawalfeefortransfers' | translate }}&nbsp;</label>
<input type="checkbox" ng-model="formData.withdrawalFeeForTransfers" ng-true-value="true" ng-false-value="false">
<input id="withdrawalFeeForTransfers" type="checkbox" ng-model="formData.withdrawalFeeForTransfers" ng-true-value="true" ng-false-value="false">
</td>
<td width="40%"></td>
</tr>
@ -210,7 +211,7 @@
<tr class="control-group">
<td>
<label class="control-label">{{ 'label.savingreference' | translate }}&nbsp;</label>
<select ng-model="formData.savingsReferenceAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in assetAccountOptions" value="{{assetAccount.id}}">
<select id="savingsReferenceAccountId" ng-model="formData.savingsReferenceAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in assetAccountOptions" value="{{assetAccount.id}}">
</select>
</td>
</tr>
@ -225,14 +226,14 @@
<tr class="control-group">
<td>
<label class="control-label">{{ 'label.savingcontrol' | translate }}&nbsp;</label>
<select ng-model="formData.savingsControlAccountId" ng-options="liabilityAccount.id as liabilityAccount.name for liabilityAccount in liabilityAccountOptions" value="{{liabilityAccount.id}}">
<select id="savingsControlAccountId" ng-model="formData.savingsControlAccountId" ng-options="liabilityAccount.id as liabilityAccount.name for liabilityAccount in liabilityAccountOptions" value="{{liabilityAccount.id}}">
</select>
</td>
</tr>
<tr class="control-group">
<td>
<label class="control-label">{{ 'label.savingstransfersinsuspenpense' | translate }}&nbsp;</label>
<select ng-model="formData.transfersInSuspenseAccountId" ng-options="liabilityAccount.id as liabilityAccount.name for liabilityAccount in liabilityAccountOptions" value="{{liabilityAccount.id}}">
<select id="transfersInSuspenseAccountId" ng-model="formData.transfersInSuspenseAccountId" ng-options="liabilityAccount.id as liabilityAccount.name for liabilityAccount in liabilityAccountOptions" value="{{liabilityAccount.id}}">
</select>
</td>
<td>
@ -249,7 +250,7 @@
<tr class="control-group">
<td>
<label class="control-label">{{ 'label.interestonsavings' | translate }}&nbsp;</label>
<select ng-model="formData.interestOnSavingsAccountId" ng-options="expenseAccount.id as expenseAccount.name for expenseAccount in expenseAccountOptions" value="{{expenseAccount.id}}">
<select id="interestOnSavingsAccountId" ng-model="formData.interestOnSavingsAccountId" ng-options="expenseAccount.id as expenseAccount.name for expenseAccount in expenseAccountOptions" value="{{expenseAccount.id}}">
</select>
</td>
<td></td>
@ -265,7 +266,7 @@
<tr class="control-group">
<td>
<label class="control-label">{{ 'label.incomefromfees' | translate }}&nbsp;</label>
<select ng-model="formData.incomeFromFeeAccountId" ng-options="incomeAccount.id as incomeAccount.name for incomeAccount in incomeAccountOptions" value="{{incomeAccount.id}}">
<select id="incomeFromFeeAccountId" ng-model="formData.incomeFromFeeAccountId" ng-options="incomeAccount.id as incomeAccount.name for incomeAccount in incomeAccountOptions" value="{{incomeAccount.id}}">
</select>
</td>
<td>
@ -274,7 +275,7 @@
<tr class="control-group">
<td>
<label class="control-label">{{ 'label.incomefrompenalties' | translate }}&nbsp;</label>
<select ng-model="formData.incomeFromPenaltyAccountId" ng-options="incomeAccount.id as incomeAccount.name for incomeAccount in incomeAccountOptions" value="{{incomeAccount.id}}">
<select id="incomeFromPenaltyAccountId" ng-model="formData.incomeFromPenaltyAccountId" ng-options="incomeAccount.id as incomeAccount.name for incomeAccount in incomeAccountOptions" value="{{incomeAccount.id}}">
</select>
</td>
<td>
@ -310,12 +311,12 @@
</tr>
<tr ng-repeat="configureFundOption in configureFundOptions">
<td>
<select ng-model="configureFundOption.paymentTypeId" ng-options="paymentType.id as paymentType.name for paymentType in configureFundOption.paymentTypeOptions" value="{{paymentType.id}}">
<select id="configureFundOptions[{{$index}}].paymentTypeId" ng-model="configureFundOption.paymentTypeId" ng-options="paymentType.id as paymentType.name for paymentType in configureFundOption.paymentTypeOptions" value="{{paymentType.id}}">
</select>
</td>
<td></td>
<td>
<select ng-model="configureFundOption.fundSourceAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in configureFundOption.assetAccountOptions" value="{{assetAccount.id}}">
<select id="configureFundOptions[{{$index}}].fundSourceAccountId" ng-model="configureFundOption.fundSourceAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in configureFundOption.assetAccountOptions" value="{{assetAccount.id}}">
</select>
</td>
<td></td>
@ -343,12 +344,12 @@
</tr>
<tr ng-repeat="specificIncomeaccount in specificIncomeaccounts">
<td>
<select ng-model="specificIncomeaccount.chargeId" ng-options="charge.id as charge.name for charge in specificIncomeaccount.chargeOptions" value="{{charge.id}}">
<select id="specificIncomeaccounts[{{$index}}].chargeId" ng-model="specificIncomeaccount.chargeId" ng-options="charge.id as charge.name for charge in specificIncomeaccount.chargeOptions" value="{{charge.id}}">
</select>
</td>
<td></td>
<td>
<select ng-model="specificIncomeaccount.incomeAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in specificIncomeaccount.incomeAccountOptions" value="{{assetAccount.id}}">
<select id="specificIncomeaccounts[{{$index}}].incomeAccountId" ng-model="specificIncomeaccount.incomeAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in specificIncomeaccount.incomeAccountOptions" value="{{assetAccount.id}}">
</select>
</td>
<td></td>
@ -376,12 +377,12 @@
</tr>
<tr ng-repeat="penaltySpecificIncomeaccount in penaltySpecificIncomeaccounts">
<td>
<select ng-model="penaltySpecificIncomeaccount.chargeId" ng-options="charge.id as charge.name for charge in penaltySpecificIncomeaccount.chargeOptions" value="{{charge.id}}">
<select id="penaltySpecificIncomeaccounts[{{$index}}].chargeId" ng-model="penaltySpecificIncomeaccount.chargeId" ng-options="charge.id as charge.name for charge in penaltySpecificIncomeaccount.chargeOptions" value="{{charge.id}}">
</select>
</td>
<td></td>
<td>
<select ng-model="penaltySpecificIncomeaccount.incomeAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in penaltySpecificIncomeaccount.incomeAccountOptions" value="{{assetAccount.id}}">
<select id="penaltySpecificIncomeaccounts[{{$index}}].incomeAccountId" ng-model="penaltySpecificIncomeaccount.incomeAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in penaltySpecificIncomeaccount.incomeAccountOptions" value="{{assetAccount.id}}">
</select>
</td>
<td></td>
@ -402,7 +403,4 @@
<button type="reset" class="btn" ng-click="cancel()">{{'label.cancel' | translate}}</button>
<button type="submit" class="btn btn-primary">{{'label.save' | translate}}</button>
</div>
</form>
</form>

View File

@ -1,8 +1,9 @@
<div ng-controller="EditChargeController">
<api-validate></api-validate>
<div class="control-group">
<label class="control-label">{{'label.chargesappliesto' | translate}}<span class="required">*</span></label>
<div class="controls">
<select ng-model="formData.chargeAppliesTo" data-ng-options="chargesapply.id as chargesapply.value for chargesapply in template.chargeAppliesToOptions" value="{{chargesapply.id}}" ng-disabled="true">
<select id="chargeAppliesTo" ng-model="formData.chargeAppliesTo" data-ng-options="chargesapply.id as chargesapply.value for chargesapply in template.chargeAppliesToOptions" value="{{chargesapply.id}}" ng-disabled="true">
</select>
</div>
</div>
@ -20,28 +21,28 @@
<div class="control-group">
<label class="control-label">{{'label.form.currency' | translate}}<span class="required">*</span></label>
<div class="controls">
<select ng-model="formData.currencyCode" data-ng-options="currency.code as currency.name for currency in template.currencyOptions" value="{{currency.code}}">
<select id="currencyCode" ng-model="formData.currencyCode" data-ng-options="currency.code as currency.name for currency in template.currencyOptions" value="{{currency.code}}">
</select>
</div>
</div>
<div class="control-group">
<label class="control-label">{{'label.chargetimetype' | translate}}<span class="required">*</span></label>
<div class="controls">
<select ng-model="formData.chargeTimeType" data-ng-options="timetype.id as timetype.value for timetype in template.chargeTimeTypeOptions" value="{{timetype.id}}">
<select id="chargeTimeType" ng-model="formData.chargeTimeType" data-ng-options="timetype.id as timetype.value for timetype in template.chargeTimeTypeOptions" value="{{timetype.id}}">
</select>
</div>
</div>
<div class="control-group">
<label class="control-label">{{'label.chargecalculation' | translate}}<span class="required">*</span></label>
<div class="controls">
<select ng-model="formData.chargeCalculationType" data-ng-options="chargecalculation.id as chargecalculation.value for chargecalculation in template.chargeCalculationTypeOptions" value="{{chargecalculation.id}}">
<select id="chargeCalculationType" ng-model="formData.chargeCalculationType" data-ng-options="chargecalculation.id as chargecalculation.value for chargecalculation in template.chargeCalculationTypeOptions" value="{{chargecalculation.id}}">
</select>
</div>
</div>
<div class="control-group">
<label class="control-label">{{'label.chargepaymentby' | translate}}<span class="required">*</span></label>
<div class="controls">
<select ng-model="formData.chargePaymentMode" data-ng-options="chargepayment.id as chargepayment.value for chargepayment in template.chargePaymetModeOptions" value="{{chargepayment.id}}">
<select id="chargePaymentMode" ng-model="formData.chargePaymentMode" data-ng-options="chargepayment.id as chargepayment.value for chargepayment in template.chargePaymetModeOptions" value="{{chargepayment.id}}">
</select>
</div>
</div>

View File

@ -7,6 +7,7 @@
<li class="active">{{'label.editloanproduct' | translate}}</li>
</ul>
</div>
<api-validate></api-validate>
<form name="editloanproductform" novalidate="" class="well" rc-submit="submit()">
<div class="control-group">
<table width="100%">
@ -19,7 +20,7 @@
<tr>
<td width="40%">
<label class="control-label">{{ 'label.productname' | translate }}&nbsp;<span class="required">*</span></label>
<input type="text" ng-autofocus="true" name="name" ng-model="formData.name" required late-validate/>
<input id="name" type="text" ng-autofocus="true" name="name" ng-model="formData.name" required late-validate/>
<form-validate valattributeform="editloanproductform" valattribute="name"/>
</td>
<td width="40%">
@ -28,7 +29,7 @@
<tr>
<td width="40%">
<label class="control-label">{{ 'label.description' | translate }}</label>
<textarea rows="2" ng-model="formData.description"></textarea>
<textarea id="description" rows="2" ng-model="formData.description"></textarea>
</td>
<td width="40%">
</td>
@ -36,7 +37,7 @@
<tr>
<td width="40%">
<label class="control-label">{{ 'label.fund' | translate }}&nbsp;</label>
<select ng-model="formData.fundId" ng-options="fund.id as fund.name for fund in product.fundOptions" value="{{fund.id}}">
<select id="fundId" ng-model="formData.fundId" ng-options="fund.id as fund.name for fund in product.fundOptions" value="{{fund.id}}">
<option style="display:none" value="">{{'label.select.fund' | translate}}</option>
</select>
</td>
@ -46,18 +47,18 @@
<tr>
<td width="40%">
<label class="control-label">{{ 'label.startdate' | translate }}&nbsp;</label>
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="date.first" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)"/>
<input id="startDate" type="text" datepicker-pop="dd MMMM yyyy" ng-model="date.first" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)"/>
</td>
<td width="40%">
<label class="control-label">{{ 'label.closedate' | translate }}&nbsp;</label>
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="date.second" is-open="opened1" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)"/>
<input id="closeDate" type="text" datepicker-pop="dd MMMM yyyy" ng-model="date.second" is-open="opened1" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)"/>
</td>
</tr>
<tr>
<td width="40%">
<label class="control-label" for="active">{{ 'label.includeinborrowerloancounter' | translate }}</label>
<label class="checkbox">
<input type="checkbox" ng-model="formData.includeInBorrowerCycle">
<input type="checkbox" id="includeInBorrowerCycle" ng-model="formData.includeInBorrowerCycle">
</label>
</td>
<td width="40%"></td>
@ -80,18 +81,18 @@
<tr>
<td width="40%">
<label class="control-label">{{ 'label.currency' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.currencyCode" ng-options="currency.code as currency.name for currency in product.currencyOptions" value="{{currency.code}}">
<select id="currencyCode" ng-model="formData.currencyCode" ng-options="currency.code as currency.name for currency in product.currencyOptions" value="{{currency.code}}">
</td>
<td width="40%">
<label class="control-label">{{ 'label.decimalplaces' | translate }}&nbsp;<span class="required">*</span></label>
<input type="text" name="decimalplace" class="input-small"ng-model="formData.digitsAfterDecimal" required late-validate/>
<input type="text" id="digitsAfterDecimal" name="decimalplace" class="input-small"ng-model="formData.digitsAfterDecimal" required late-validate/>
<form-validate valattributeform="editloanproductform" valattribute="decimalplace"/>
</td>
</tr>
<tr>
<td width="40%">
<label class="control-label">{{ 'label.currencyinmultiplesof' | translate }}&nbsp;<span class="required">*</span></label>
<input type="text" name="multiplesof" ng-model="formData.inMultiplesOf" required late-validate/>
<input type="text" id="inMultiplesOf" name="multiplesof" ng-model="formData.inMultiplesOf" required late-validate/>
<form-validate valattributeform="editloanproductform" valattribute="multiplesof"/>
<td width="40%">
</td>
@ -104,13 +105,13 @@
<label class="control-label">{{ 'label.principal' | translate }}&nbsp;<span class="required">*</span></label>
<tr>
<th>
<input type="text" class="input-small" ng-model="formData.minPrincipal">&nbsp;
<input type="text" id="minPrincipal" class="input-small" ng-model="formData.minPrincipal">&nbsp;
</th>
<th>
<input type="text" name="principal" class="input-small" ng-model="formData.principal" required late-validate/>&nbsp;
<input type="text" id="principal" name="principal" class="input-small" ng-model="formData.principal" required late-validate/>&nbsp;
</th>
<th>
<input type="text" class="input-small" ng-model="formData.maxPrincipal">
<input type="text" id="maxPrincipal" class="input-small" ng-model="formData.maxPrincipal">
<form-validate valattributeform="editloanproductform" valattribute="principal"/>
</th>
</tr>
@ -134,13 +135,13 @@
<label class="control-label">{{ 'label.numofrepayments' | translate }}&nbsp;<span class="required">*</span></label>
<tr>
<th>
<input type="text" class="input-small" ng-model="formData.minNumberOfRepayments">&nbsp;
<input type="text" id="minNumberOfRepayments" class="input-small" ng-model="formData.minNumberOfRepayments">&nbsp;
</th>
<th>
<input type="text" name="numofrepayments" class="input-small" ng-model="formData.numberOfRepayments" required late-validate/>&nbsp;&nbsp;
<input id="numberOfRepayments" type="text" name="numofrepayments" class="input-small" ng-model="formData.numberOfRepayments" required late-validate/>&nbsp;&nbsp;
</th>
<th>
<input type="text" class="input-small" ng-model="formData.maxNumberOfRepayments">
<input type="text" id="maxNumberOfRepayments" class="input-small" ng-model="formData.maxNumberOfRepayments">
<form-validate valattributeform="editloanproductform" valattribute="numofrepayments"/>
</th>
</tr>
@ -161,8 +162,8 @@
<tr>
<td width="40%">
<label class="control-label">{{ 'label.repaidevery' | translate }}&nbsp;<span class="required">*</span></label>
<input name="repaymentEvery" class="input-small" type="text" ng-model="formData.repaymentEvery" required late-validate/>&nbsp;
<select class="input-small" ng-model="formData.repaymentFrequencyType" ng-options="repaymentFrequencyType.id as repaymentFrequencyType.value for repaymentFrequencyType in product.repaymentFrequencyTypeOptions" value="{{repaymentFrequencyType.id}}"/>
<input id="repaymentEvery" name="repaymentEvery" class="input-small" type="text" ng-model="formData.repaymentEvery" required late-validate/>&nbsp;
<select id="repaymentFrequencyType" class="input-small" ng-model="formData.repaymentFrequencyType" ng-options="repaymentFrequencyType.id as repaymentFrequencyType.value for repaymentFrequencyType in product.repaymentFrequencyTypeOptions" value="{{repaymentFrequencyType.id}}"/>
<form-validate valattributeform="editloanproductform" valattribute="repaymentEvery"/>
</td>
<td width="40%"></td>
@ -173,16 +174,16 @@
<label class="control-label">{{ 'label.nominalinterestrate' | translate }}&nbsp;<span class="required">*</span></label>
<tr>
<th>
<input type="text" class="input-small" ng-model="formData.minInterestRatePerPeriod">&nbsp;
<input type="text" id="minInterestRatePerPeriod" class="input-small" ng-model="formData.minInterestRatePerPeriod">&nbsp;
</th>
<th>
<input type="text" name="interestRatePerPeriod" class="input-small" ng-model="formData.interestRatePerPeriod" required late-validate/>&nbsp;
<input type="text" id="interestRatePerPeriod" name="interestRatePerPeriod" class="input-small" ng-model="formData.interestRatePerPeriod" required late-validate/>&nbsp;
</th>
<th>
<input type="text" class="input-small" ng-model="formData.maxInterestRatePerPeriod">
<input type="text" id="maxInterestRatePerPeriod" class="input-small" ng-model="formData.maxInterestRatePerPeriod">
</th>
<th>
<select class="input-small" ng-model="formData.interestRateFrequencyType" ng-options="interestRateFrequencyType.id as interestRateFrequencyType.value for interestRateFrequencyType in product.interestRateFrequencyTypeOptions" value="{{interestRateFrequencyType.id}}"/>
<select id="interestRateFrequencyType" class="input-small" ng-model="formData.interestRateFrequencyType" ng-options="interestRateFrequencyType.id as interestRateFrequencyType.value for interestRateFrequencyType in product.interestRateFrequencyTypeOptions" value="{{interestRateFrequencyType.id}}"/>
<form-validate valattributeform="editloanproductform" valattribute="interestRatePerPeriod"/>
</th>
</tr>
@ -217,39 +218,39 @@
<tr>
<td width="40%">
<label class="control-label">{{ 'label.amortization' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.amortizationType" ng-options="amortizationType.id as amortizationType.value for amortizationType in product.amortizationTypeOptions" value="{{amortizationType.id}}">
<select id="amortizationType" ng-model="formData.amortizationType" ng-options="amortizationType.id as amortizationType.value for amortizationType in product.amortizationTypeOptions" value="{{amortizationType.id}}">
</td>
<td width="40%">
<label class="control-label">{{ 'label.interestmethod' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.interestType" ng-options="interestType.id as interestType.value for interestType in product.interestTypeOptions" value="{{interestType.id}}">
<select id="interestType" ng-model="formData.interestType" ng-options="interestType.id as interestType.value for interestType in product.interestTypeOptions" value="{{interestType.id}}">
</td>
</tr>
<tr>
<td>
<label class="control-label">{{ 'label.interestcalculationperiod' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.interestCalculationPeriodType" ng-options="interestCalculationPeriodType.id as interestCalculationPeriodType.value for interestCalculationPeriodType in product.interestCalculationPeriodTypeOptions" value="{{interestCalculationPeriodType.id}}">
<select id="interestCalculationPeriodType" ng-model="formData.interestCalculationPeriodType" ng-options="interestCalculationPeriodType.id as interestCalculationPeriodType.value for interestCalculationPeriodType in product.interestCalculationPeriodTypeOptions" value="{{interestCalculationPeriodType.id}}">
</td>
<td>
{{formData.displaySymbol}}
<label class="control-label">{{ 'label.arearstolerance' | translate }}&nbsp;</label>
<input type="text" ng-model="formData.inArrearsTolerance">
<input id="inArrearsTolerance" type="text" ng-model="formData.inArrearsTolerance">
{{formData.principalCurrencyCode}}
</td>
</tr>
<tr>
<td>
<label class="control-label">{{ 'label.repaymentstrategy' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.transactionProcessingStrategyId" ng-options="transactionProcessingStrategy.id as transactionProcessingStrategy.name for transactionProcessingStrategy in product.transactionProcessingStrategyOptions" value="{{transactionProcessingStrategy.id}}">
<select id="transactionProcessingStrategyId" ng-model="formData.transactionProcessingStrategyId" ng-options="transactionProcessingStrategy.id as transactionProcessingStrategy.name for transactionProcessingStrategy in product.transactionProcessingStrategyOptions" value="{{transactionProcessingStrategy.id}}">
</td>
<td>
<table>
<label class="control-label">{{ 'label.grace' | translate }}&nbsp;</label>
<tr>
<th>
<input type="text" class="input-small" ng-model="formData.graceOnPrincipalPayment">&nbsp;
<input id="graceOnPrincipalPayment" type="text" class="input-small" ng-model="formData.graceOnPrincipalPayment">&nbsp;
</th>
<th>
<input type="text" class="input-small" ng-model="formData.graceOnInterestPayment">&nbsp;
<input id="graceOnInterestPayment" type="text" class="input-small" ng-model="formData.graceOnInterestPayment">&nbsp;
</th>
</tr>
<tr>
@ -266,7 +267,7 @@
<tr>
<td>
<label class="control-label">{{ 'label.interestfreeperiod' | translate }}&nbsp;</label>
<input type="text" ng-model="formData.graceOnInterestCharged">
<input id="graceOnInterestCharged" type="text" ng-model="formData.graceOnInterestCharged">
</td>
<td>
</td>
@ -347,14 +348,14 @@
<tr class="control-group">
<td>
<label class="control-label">{{ 'label.fundsource' | translate }}&nbsp;</label>
<select ng-model="formData.fundSourceAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in assetAccountOptions" value="{{assetAccount.id}}">
<select id="fundSourceAccountId" ng-model="formData.fundSourceAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in assetAccountOptions" value="{{assetAccount.id}}">
</select>
</td>
</tr>
<tr class="control-group">
<td>
<label class="control-label">{{ 'label.loanportfolio' | translate }}&nbsp;</label>
<select ng-model="formData.loanPortfolioAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in assetAccountOptions" value="{{assetAccount.id}}">
<select id="loanPortfolioAccountId" ng-model="formData.loanPortfolioAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in assetAccountOptions" value="{{assetAccount.id}}">
</select>
</td>
<td>
@ -363,7 +364,7 @@
<tr class="control-group">
<td>
<label class="control-label">{{ 'label.transfersinsuspenpense' | translate }}&nbsp;</label>
<select ng-model="formData.transfersInSuspenseAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in assetAccountOptions" value="{{assetAccount.id}}">
<select id="transfersInSuspenseAccountId" ng-model="formData.transfersInSuspenseAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in assetAccountOptions" value="{{assetAccount.id}}">
</select>
</td>
<td>
@ -377,7 +378,7 @@
<tr class="control-group">
<td>
<label class="control-label">{{ 'label.incomefrominterest' | translate }}&nbsp;</label>
<select ng-model="formData.interestOnLoanAccountId" ng-options="incomeAccount.id as incomeAccount.name for incomeAccount in incomeAccountOptions" value="{{incomeAccount.id}}">
<select id="interestOnLoanAccountId" ng-model="formData.interestOnLoanAccountId" ng-options="incomeAccount.id as incomeAccount.name for incomeAccount in incomeAccountOptions" value="{{incomeAccount.id}}">
</select>
</td>
<td></td>
@ -385,7 +386,7 @@
<tr class="control-group">
<td>
<label class="control-label">{{ 'label.incomefromfees' | translate }}&nbsp;</label>
<select ng-model="formData.incomeFromFeeAccountId" ng-options="incomeAccount.id as incomeAccount.name for incomeAccount in incomeAccountOptions" value="{{incomeAccount.id}}">
<select id="incomeFromFeeAccountId" ng-model="formData.incomeFromFeeAccountId" ng-options="incomeAccount.id as incomeAccount.name for incomeAccount in incomeAccountOptions" value="{{incomeAccount.id}}">
</select>
</td>
<td>
@ -394,7 +395,7 @@
<tr class="control-group">
<td>
<label class="control-label">{{ 'label.incomefrompenalties' | translate }}&nbsp;</label>
<select ng-model="formData.incomeFromPenaltyAccountId" ng-options="incomeAccount.id as incomeAccount.name for incomeAccount in incomeAccountOptions" value="{{incomeAccount.id}}">
<select id="incomeFromPenaltyAccountId" ng-model="formData.incomeFromPenaltyAccountId" ng-options="incomeAccount.id as incomeAccount.name for incomeAccount in incomeAccountOptions" value="{{incomeAccount.id}}">
</select>
</td>
<td>
@ -408,7 +409,7 @@
<tr class="control-group">
<td>
<label class="control-label">{{ 'label.loseswrittenoff' | translate }}&nbsp;</label>
<select ng-model="formData.writeOffAccountId" ng-options="expenseAccount.id as expenseAccount.name for expenseAccount in expenseAccountOptions" value="{{expenseAccount.id}}">
<select id="writeOffAccountId" ng-model="formData.writeOffAccountId" ng-options="expenseAccount.id as expenseAccount.name for expenseAccount in expenseAccountOptions" value="{{expenseAccount.id}}">
</select>
</td>
<td>
@ -444,12 +445,12 @@
</tr>
<tr ng-repeat="configureFundOption in configureFundOptions">
<td>
<select ng-model="configureFundOption.paymentTypeId" ng-options="paymentType.id as paymentType.name for paymentType in configureFundOption.paymentTypeOptions" value="{{paymentType.id}}">
<select id="configureFundOptions[{{$index}}].paymentTypeId" ng-model="configureFundOption.paymentTypeId" ng-options="paymentType.id as paymentType.name for paymentType in configureFundOption.paymentTypeOptions" value="{{paymentType.id}}">
</select>
</td>
<td></td>
<td>
<select ng-model="configureFundOption.fundSourceAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in configureFundOption.assetAccountOptions" value="{{assetAccount.id}}">
<select id="configureFundOptions[{{$index}}].fundSourceAccountId" ng-model="configureFundOption.fundSourceAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in configureFundOption.assetAccountOptions" value="{{assetAccount.id}}">
</select>
</td>
<td></td>
@ -477,12 +478,12 @@
</tr>
<tr ng-repeat="specificIncomeaccount in specificIncomeaccounts">
<td>
<select ng-model="specificIncomeaccount.chargeId" ng-options="charge.id as charge.name for charge in specificIncomeaccount.chargeOptions" value="{{charge.id}}">
<select id="specificIncomeaccounts[{{$index}}].chargeId" ng-model="specificIncomeaccount.chargeId" ng-options="charge.id as charge.name for charge in specificIncomeaccount.chargeOptions" value="{{charge.id}}">
</select>
</td>
<td></td>
<td>
<select ng-model="specificIncomeaccount.incomeAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in specificIncomeaccount.incomeAccountOptions" value="{{assetAccount.id}}">
<select id="specificIncomeaccounts[{{$index}}].incomeAccountId" ng-model="specificIncomeaccount.incomeAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in specificIncomeaccount.incomeAccountOptions" value="{{assetAccount.id}}">
</select>
</td>
<td></td>
@ -510,12 +511,12 @@
</tr>
<tr ng-repeat="penaltySpecificIncomeaccount in penaltySpecificIncomeaccounts">
<td>
<select ng-model="penaltySpecificIncomeaccount.chargeId" ng-options="charge.id as charge.name for charge in penaltySpecificIncomeaccount.chargeOptions" value="{{charge.id}}">
<select id="penaltySpecificIncomeaccounts[{{$index}}].chargeId" ng-model="penaltySpecificIncomeaccount.chargeId" ng-options="charge.id as charge.name for charge in penaltySpecificIncomeaccount.chargeOptions" value="{{charge.id}}">
</select>
</td>
<td></td>
<td>
<select ng-model="penaltySpecificIncomeaccount.incomeAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in penaltySpecificIncomeaccount.incomeAccountOptions" value="{{assetAccount.id}}">
<select id="penaltySpecificIncomeaccounts[{{$index}}].incomeAccountId" ng-model="penaltySpecificIncomeaccount.incomeAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in penaltySpecificIncomeaccount.incomeAccountOptions" value="{{assetAccount.id}}">
</select>
</td>
<td></td>

View File

@ -8,6 +8,7 @@
</ul>
</div>
<form name="createsavingproductform" novalidate="" class="well" rc-submit="submit()">
<api-validate></api-validate>
<div class="control-group">
<table width="100%">
<tr class="control-group">
@ -19,7 +20,7 @@
<tr>
<td width="40%">
<label class="control-label">{{ 'label.productname' | translate }}&nbsp;<span class="required">*</span></label>
<input ng-autofocus="true" name="name" type="text" ng-model="formData.name" required late-validate/>
<input id="name" ng-autofocus="true" name="name" type="text" ng-model="formData.name" required late-validate/>
<form-validate valattributeform="createsavingproductform" valattribute="name"/>
</td>
<td width="40%">
@ -28,7 +29,7 @@
<tr>
<td width="40%">
<label class="control-label">{{ 'label.description' | translate }}<span class="required">*</span></label>
<textarea rows="2" name="description" ng-model="formData.description" required late-validate/></textarea>
<textarea rows="2" id="description" name="description" ng-model="formData.description" required late-validate/></textarea>
<form-validate valattributeform="createsavingproductform" valattribute="description"/>
</td>
<td width="40%">
@ -52,30 +53,30 @@
<tr>
<td width="40%">
<label class="control-label">{{ 'label.currency' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.currencyCode" ng-options="currency.code as currency.name for currency in product.currencyOptions" value="{{currency.code}}">
<select id="currencyCode" ng-model="formData.currencyCode" ng-options="currency.code as currency.name for currency in product.currencyOptions" value="{{currency.code}}">
</td>
<td width="40%">
<label class="control-label">{{ 'label.decimalplaces' | translate }}&nbsp;<span class="required">*</span></label>
<input type="text" name="decimalplace" class="input-small"ng-model="formData.digitsAfterDecimal" required late-validate/>
<input id="digitsAfterDecimal" type="text" name="decimalplace" class="input-small"ng-model="formData.digitsAfterDecimal" required late-validate/>
<form-validate valattributeform="createsavingproductform" valattribute="decimalplace"/>
</td>
</tr>
<tr>
<td width="40%">
<label class="control-label">{{ 'label.multiplesof' | translate }}&nbsp;<span class="required">*</span></label>
<input type="text" name="multiplesof" ng-model="formData.inMultiplesOf" required late-validate/>
<input id="inMultiplesOf" type="text" name="multiplesof" ng-model="formData.inMultiplesOf" required late-validate/>
<form-validate valattributeform="createsavingproductform" valattribute="multiplesof"/>
</td>
<td width="40%">
<label class="control-label">{{ 'label.nominalannualinterestrate' | translate }}&nbsp;<span class="required">*</span></label>
<input name="nominalAnnualInterestRate" type="text" class="input-small" ng-model="formData.nominalAnnualInterestRate" required late-validate/>
<input id="nominalAnnualInterestRate" name="nominalAnnualInterestRate" type="text" class="input-small" ng-model="formData.nominalAnnualInterestRate" required late-validate/>
<form-validate valattributeform="createsavingproductform" valattribute="nominalAnnualInterestRate"/>
</td>
</tr>
<tr>
<td width="40%">
<label class="control-label">{{ 'label.interestcompoundingperiod' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.interestCompoundingPeriodType" ng-options="type.id as type.value for type in product.interestCompoundingPeriodTypeOptions" value="{{type.id}}">
<select id="interestCompoundingPeriodType" ng-model="formData.interestCompoundingPeriodType" ng-options="type.id as type.value for type in product.interestCompoundingPeriodTypeOptions" value="{{type.id}}">
</select>
</td>
<td width="40%"></td>
@ -83,7 +84,7 @@
<tr>
<td width="40%">
<label class="control-label">{{ 'label.interestpostingperiod' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.interestPostingPeriodType" ng-options="type.id as type.value for type in product.interestPostingPeriodTypeOptions" value="{{type.id}}">
<select id="interestPostingPeriodType" ng-model="formData.interestPostingPeriodType" ng-options="type.id as type.value for type in product.interestPostingPeriodTypeOptions" value="{{type.id}}">
</select>
</td>
<td width="40%"></td>
@ -91,12 +92,12 @@
<tr>
<td width="40%">
<label class="control-label">{{ 'label.interest.calculated.using' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.interestCalculationType" ng-options="type.id as type.value for type in product.interestCalculationTypeOptions" value="{{type.id}}">
<select id="interestCalculationType" ng-model="formData.interestCalculationType" ng-options="type.id as type.value for type in product.interestCalculationTypeOptions" value="{{type.id}}">
</select>
</td>
<td width="40%">
<label class="control-label">{{ 'label.daysinyears' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.interestCalculationDaysInYearType" ng-options="type.id as type.value for type in product.interestCalculationDaysInYearTypeOptions" value="{{type.id}}">
<select id="interestCalculationDaysInYearType" ng-model="formData.interestCalculationDaysInYearType" ng-options="type.id as type.value for type in product.interestCalculationDaysInYearTypeOptions" value="{{type.id}}">
</select>
</td>
</tr>
@ -113,7 +114,7 @@
<tr>
<td width="40%">
<label class="control-label">{{ 'label.minimumopeningbalance' | translate }}&nbsp;</label>
<input type="text" ng-model="formData.minRequiredOpeningBalance">
<input id="minRequiredOpeningBalance" type="text" ng-model="formData.minRequiredOpeningBalance">
</td>
<td width="40%">
</td>
@ -121,8 +122,8 @@
<tr>
<td width="80%">
<label class="control-label">{{ 'label.lockinPeriodFrequency' | translate }}&nbsp;</label>
<input type="text" class="input-small" ng-model="formData.lockinPeriodFrequency">&nbsp;
<select ng-model="formData.lockinPeriodFrequencyType" class="input-small" ng-options="type.id as type.value for type in product.lockinPeriodFrequencyTypeOptions" value="{{type.id}}">
<input id="lockinPeriodFrequency" type="text" class="input-small" ng-model="formData.lockinPeriodFrequency">&nbsp;
<select id="lockinPeriodFrequencyType" ng-model="formData.lockinPeriodFrequencyType" class="input-small" ng-options="type.id as type.value for type in product.lockinPeriodFrequencyTypeOptions" value="{{type.id}}">
<option style="display:none" value="">{{'label.select.one' | translate}}</option>
</select>
</td>
@ -130,7 +131,7 @@
<tr>
<td width="40%">
<label class="control-label">{{ 'label.applywithdrawalfeefortransfers' | translate }}&nbsp;</label>
<input type="checkbox" ng-model="formData.withdrawalFeeForTransfers" ng-true-value="true" ng-false-value="false">
<input id="withdrawalFeeForTransfers" type="checkbox" ng-model="formData.withdrawalFeeForTransfers" ng-true-value="true" ng-false-value="false">
</td>
<td width="40%"></td>
</tr>
@ -212,7 +213,7 @@
<tr class="control-group">
<td>
<label class="control-label">{{ 'label.savingreference' | translate }}&nbsp;</label>
<select ng-model="formData.savingsReferenceAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in assetAccountOptions" value="{{assetAccount.id}}">
<select id="savingsReferenceAccountId" ng-model="formData.savingsReferenceAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in assetAccountOptions" value="{{assetAccount.id}}">
</select>
</td>
</tr>
@ -227,14 +228,14 @@
<tr class="control-group">
<td>
<label class="control-label">{{ 'label.savingcontrol' | translate }}&nbsp;</label>
<select ng-model="formData.savingsControlAccountId" ng-options="liabilityAccount.id as liabilityAccount.name for liabilityAccount in liabilityAccountOptions" value="{{liabilityAccount.id}}">
<select id="savingsControlAccountId" ng-model="formData.savingsControlAccountId" ng-options="liabilityAccount.id as liabilityAccount.name for liabilityAccount in liabilityAccountOptions" value="{{liabilityAccount.id}}">
</select>
</td>
</tr>
<tr class="control-group">
<td>
<label class="control-label">{{ 'label.savingstransfersinsuspenpense' | translate }}&nbsp;</label>
<select ng-model="formData.transfersInSuspenseAccountId" ng-options="liabilityAccount.id as liabilityAccount.name for liabilityAccount in liabilityAccountOptions" value="{{liabilityAccount.id}}">
<select id="transfersInSuspenseAccountId" ng-model="formData.transfersInSuspenseAccountId" ng-options="liabilityAccount.id as liabilityAccount.name for liabilityAccount in liabilityAccountOptions" value="{{liabilityAccount.id}}">
</select>
</td>
<td>
@ -251,7 +252,7 @@
<tr class="control-group">
<td>
<label class="control-label">{{ 'label.interestonsavings' | translate }}&nbsp;</label>
<select ng-model="formData.interestOnSavingsAccountId" ng-options="expenseAccount.id as expenseAccount.name for expenseAccount in expenseAccountOptions" value="{{expenseAccount.id}}">
<select id="interestOnSavingsAccountId" ng-model="formData.interestOnSavingsAccountId" ng-options="expenseAccount.id as expenseAccount.name for expenseAccount in expenseAccountOptions" value="{{expenseAccount.id}}">
</select>
</td>
<td></td>
@ -267,7 +268,7 @@
<tr class="control-group">
<td>
<label class="control-label">{{ 'label.incomefromfees' | translate }}&nbsp;</label>
<select ng-model="formData.incomeFromFeeAccountId" ng-options="incomeAccount.id as incomeAccount.name for incomeAccount in incomeAccountOptions" value="{{incomeAccount.id}}">
<select id="incomeFromFeeAccountId" ng-model="formData.incomeFromFeeAccountId" ng-options="incomeAccount.id as incomeAccount.name for incomeAccount in incomeAccountOptions" value="{{incomeAccount.id}}">
</select>
</td>
<td>
@ -276,7 +277,7 @@
<tr class="control-group">
<td>
<label class="control-label">{{ 'label.incomefrompenalties' | translate }}&nbsp;</label>
<select ng-model="formData.incomeFromPenaltyAccountId" ng-options="incomeAccount.id as incomeAccount.name for incomeAccount in incomeAccountOptions" value="{{incomeAccount.id}}">
<select id="incomeFromPenaltyAccountId" ng-model="formData.incomeFromPenaltyAccountId" ng-options="incomeAccount.id as incomeAccount.name for incomeAccount in incomeAccountOptions" value="{{incomeAccount.id}}">
</select>
</td>
<td>
@ -312,12 +313,12 @@
</tr>
<tr ng-repeat="configureFundOption in configureFundOptions">
<td>
<select ng-model="configureFundOption.paymentTypeId" ng-options="paymentType.id as paymentType.name for paymentType in configureFundOption.paymentTypeOptions" value="{{paymentType.id}}">
<select id="configureFundOptions[{{$index}}].paymentTypeId" ng-model="configureFundOption.paymentTypeId" ng-options="paymentType.id as paymentType.name for paymentType in configureFundOption.paymentTypeOptions" value="{{paymentType.id}}">
</select>
</td>
<td></td>
<td>
<select ng-model="configureFundOption.fundSourceAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in configureFundOption.assetAccountOptions" value="{{assetAccount.id}}">
<select id="configureFundOptions[{{$index}}].fundSourceAccountId" ng-model="configureFundOption.fundSourceAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in configureFundOption.assetAccountOptions" value="{{assetAccount.id}}">
</select>
</td>
<td></td>
@ -345,12 +346,12 @@
</tr>
<tr ng-repeat="specificIncomeaccount in specificIncomeaccounts">
<td>
<select ng-model="specificIncomeaccount.chargeId" ng-options="charge.id as charge.name for charge in specificIncomeaccount.chargeOptions" value="{{charge.id}}">
<select id="specificIncomeaccounts[{{$index}}].chargeId" ng-model="specificIncomeaccount.chargeId" ng-options="charge.id as charge.name for charge in specificIncomeaccount.chargeOptions" value="{{charge.id}}">
</select>
</td>
<td></td>
<td>
<select ng-model="specificIncomeaccount.incomeAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in specificIncomeaccount.incomeAccountOptions" value="{{assetAccount.id}}">
<select id="specificIncomeaccounts[{{$index}}].incomeAccountId" ng-model="specificIncomeaccount.incomeAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in specificIncomeaccount.incomeAccountOptions" value="{{assetAccount.id}}">
</select>
</td>
<td></td>
@ -378,12 +379,12 @@
</tr>
<tr ng-repeat="penaltySpecificIncomeaccount in penaltySpecificIncomeaccounts">
<td>
<select ng-model="penaltySpecificIncomeaccount.chargeId" ng-options="charge.id as charge.name for charge in penaltySpecificIncomeaccount.chargeOptions" value="{{charge.id}}">
<select id="penaltySpecificIncomeaccounts[{{$index}}].chargeId" ng-model="penaltySpecificIncomeaccount.chargeId" ng-options="charge.id as charge.name for charge in penaltySpecificIncomeaccount.chargeOptions" value="{{charge.id}}">
</select>
</td>
<td></td>
<td>
<select ng-model="penaltySpecificIncomeaccount.incomeAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in penaltySpecificIncomeaccount.incomeAccountOptions" value="{{assetAccount.id}}">
<select id="penaltySpecificIncomeaccounts[{{$index}}].incomeAccountId" ng-model="penaltySpecificIncomeaccount.incomeAccountId" ng-options="assetAccount.id as assetAccount.name for assetAccount in penaltySpecificIncomeaccount.incomeAccountOptions" value="{{assetAccount.id}}">
</select>
</td>
<td></td>
@ -405,7 +406,4 @@
<button type="submit" class="btn btn-primary">{{'label.save' | translate}}</button>
</div>
</form>
</div>
</div>

View File

@ -1,10 +1,11 @@
<form name="addproductmixform" novalidate class="form-horizontal well" ng-controller="AddProductMixController" rc-submit="submit()">
<api-validate></api-validate>
<fieldset>
<legend>{{'label.addproductmix' | translate}}</legend>
<div class="control-group">
<label class="control-label">{{ 'label.selectproduct' | translate }}</label>
<div class="controls">
<select name="product" ng-model="formData.productId" ng-options="product.id as product.name for product in products" value="{{product.id}}" data-ng-change="productInfo(formData.productId)" required>
<select id="productId" name="product" ng-model="formData.productId" ng-options="product.id as product.name for product in products" value="{{product.id}}" data-ng-change="productInfo(formData.productId)" required>
<option value="">{{'label.select.product' | translate}}</option>
</select>
<form-validate valattributeform="addproductmixform" valattribute="product"/>
@ -35,6 +36,4 @@
<button type="submit" class="btn btn-primary">{{ 'label.save' | translate }}</button>
</div>
</fieldset>
</form>
</form>

View File

@ -1,4 +1,5 @@
<form data-ng-controller="ViewProductMixController" ng-submit="submit()">
<api-validate></api-validate>
<div class="paddedleft">
<h3>{{ 'label.editproductmix' | translate }}</h3>
<div class="row-fluid">
@ -25,4 +26,4 @@
<button type="submit" class="btn btn-primary">{{ 'label.save' | translate }}</button>
</div>
</div>
</form>
</form>

View File

@ -1,4 +1,5 @@
<div class="row alert-block form-horizontal span" ng-controller="RunReportsController">
<api-validate></api-validate>
<div class="row alert-block span" >
<h3><b>{{reportName}}</b>&nbsp;<a class="btn" ng-show="checkStatus()" ng-click="isCollapsed=!isCollapsed"><i class="icon-sort-down icon-white"></i></a></h3>
</div>
@ -8,7 +9,7 @@
<div class="control-group info" ng-repeat="reportParam in reportParams">
<label class="control-label" for="{{reportParam.variable}}">{{ reportParam.label }}</label>
<div class="controls">
<select class="input-xlarge" ng-model="formData[reportParam.inputName]" ng-change="getDependencies(reportParam)" required>
<select id="{{reportParam.inputName}}" class="input-xlarge" ng-model="formData[reportParam.inputName]" ng-change="getDependencies(reportParam)" required>
<option ng-show="reportParam.selectAll == 'Y'" value="-1">All</option>
<option ng-repeat="selectOption in reportParam.selectOptions" value="{{selectOption.id}}">{{selectOption.name}}</option>
</select>
@ -17,7 +18,7 @@
<div class="control-group info" ng-repeat="reportDateParam in reportDateParams">
<label class="control-label" for="{{reportDateParam.variable}}">{{ reportDateParam.label }}</label>
<div class="controls">
<input type="text" datepicker-pop="yyyy-MM-dd" ng-model="formData[reportDateParam.inputName]" is-open="'opened'+$index" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" required late-Validate />
<input id="{{reportDateParam.inputName}}" type="text" datepicker-pop="yyyy-MM-dd" ng-model="formData[reportDateParam.inputName]" is-open="'opened'+$index" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" required late-Validate />
</div>
</div>
<div class="control-group info" ng-show="reportType == 'Pentaho'" >

View File

@ -4,12 +4,12 @@
</ul>
</div>
<form name="savingccountchargeform" novalidate="" class="form-horizontal" ng-controller="AddNewSavingsChargeController" ng-submit="submit()">
<api-validate></api-validate>
<fieldset>
<div class="control-group">
<label class="control-label">{{ 'label.charges' | translate }}<span class="required">*</span></label>
<div class="controls">
<select ng-model="formData.chargeId" ng-options="charge.id as charge.name for charge in chargeOptions" value="{{formData.chargeId}}"
<select ng-model="formData.chargeId" id="chargeId" ng-options="charge.id as charge.name for charge in chargeOptions" value="{{formData.chargeId}}"
ng-change="chargeSelected(formData.chargeId)">
<option style="display:none" value="">{{ 'label.select.charge' | translate }}</option>
</select>
@ -20,7 +20,7 @@
<div class="control-group">
<label class="control-label">{{ 'label.amount' | translate }}<span class="required">*</span></label>
<div class="controls">
<input type="text" name="amount" ng-model="formData.amount" required ng-late-Validate/>
<input id="amount" type="text" name="amount" ng-model="formData.amount" required ng-late-Validate/>
<span ng-show="savingccountchargeform.amount.$invalid">
<small class="error">
Required Field
@ -32,7 +32,7 @@
<div class="control-group">
<label class="control-label">{{ 'label.chargecalculation' | translate }}</label>
<div class="controls">
<select ng-model="chargeCalculationType" ng-options="chargeCalculation.id as chargeCalculation.value for chargeCalculation in chargeDetails.chargeCalculationTypeOptions" value="{{chargeCalculation.id}}" disabled="disabled">
<select id="chargeCalculationType" ng-model="chargeCalculationType" ng-options="chargeCalculation.id as chargeCalculation.value for chargeCalculation in chargeDetails.chargeCalculationTypeOptions" value="{{chargeCalculation.id}}" disabled="disabled">
</select>
</div>
</div>
@ -40,7 +40,7 @@
<div class="control-group">
<label class="control-label">{{ 'label.chargecalculation' | translate }}</label>
<div class="controls">
<select ng-model="chargeTimeType" ng-options="chargeTime.id as chargeTime.value for chargeTime in chargeDetails.chargeTimeTypeOptions" value="{{chargeTime.id}}" disabled="disabled">
<select id="chargeTimeType" ng-model="chargeTimeType" ng-options="chargeTime.id as chargeTime.value for chargeTime in chargeDetails.chargeTimeTypeOptions" value="{{chargeTime.id}}" disabled="disabled">
</select>
</div>
</div>
@ -48,7 +48,7 @@
<div class="control-group" ng-show="!withDrawCharge">
<label class="control-label">{{ 'label.dueon' | translate }}<span class="required">*</span></label>
<div class="controls">
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="formData.feeOnMonthDay" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" required late-Validate />
<input id="feeOnMonthDay" type="text" datepicker-pop="dd MMMM yyyy" ng-model="formData.feeOnMonthDay" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" required late-Validate />
</div>
</div>

View File

@ -5,6 +5,7 @@
<li class="active">{{'label.edit.saving.application' | translate}}</li>
</ul>
</div>
<api-validate></api-validate>
<form name="editsavingccountform" novalidate="" class="well" rc-submit="submit()">
<fieldset>
<legend>{{ 'label.edit.saving.application' | translate }}</legend>
@ -18,7 +19,7 @@
</td>
<td width="50%">
<label class="control-label">{{ 'label.product' | translate }}&nbsp;</label>
<select ng-model="formData.productId" ng-options="product.id as product.name for product in products" ng-change="changeProduct()" value="{{product.id}}"></select>
<select id="productId" ng-model="formData.productId" ng-options="product.id as product.name for product in products" ng-change="changeProduct()" value="{{product.id}}"></select>
</td>
</tr>
</table>
@ -27,13 +28,13 @@
<tr class="control-group">
<td width="50%">
<label class="control-label">{{ 'label.field.officer' | translate }}&nbsp;</label>
<select ng-model="formData.fieldOfficerId" ng-options="fieldOfficer.id as fieldOfficer.displayName for fieldOfficer in fieldOfficers" value="{{fieldOfficer.id}}">
<select id="fieldOfficerId" ng-model="formData.fieldOfficerId" ng-options="fieldOfficer.id as fieldOfficer.displayName for fieldOfficer in fieldOfficers" value="{{fieldOfficer.id}}">
<option style="display:none" value="">{{'label.select.loanofficer' | translate}}</option>
</select>
</td>
<td width="50%">
<label class="control-label">{{ 'label.submittedon' | translate }}&nbsp;<span class="required">*</span></label>
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="formData.submittedOnDate" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)"/>
<input id="submittedOnDate" type="text" datepicker-pop="dd MMMM yyyy" ng-model="formData.submittedOnDate" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)"/>
</td>
</tr>
<tr class="span2"></tr>
@ -56,7 +57,7 @@
<tr>
<td width="50%">
<label class="control-label">{{ 'label.nominalannualinterestrate' | translate }}&nbsp;<span class="required">*</span></label>
<input type="text" name="nominalannualinterestrate" class="input-small" ng-model="formData.nominalAnnualInterestRate" required ng-late-Validate/>
<input id="nominalAnnualInterestRate" type="text" name="nominalannualinterestrate" class="input-small" ng-model="formData.nominalAnnualInterestRate" required ng-late-Validate/>
<form-validate valattributeform="editsavingccountform" valattribute="nominalannualinterestrate"/>
</td>
<td width="50%">
@ -67,24 +68,24 @@
<tr>
<td width="50%">
<label class="control-label">{{ 'label.interestcompoundingperiod' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.interestCompoundingPeriodType" ng-options="type.id as type.value for type in data.interestCompoundingPeriodTypeOptions" value="{{type.id}}">
<select id="interestCompoundingPeriodType" ng-model="formData.interestCompoundingPeriodType" ng-options="type.id as type.value for type in data.interestCompoundingPeriodTypeOptions" value="{{type.id}}">
</select>
</td>
<td width="50%">
<label class="control-label">{{ 'label.interestpostingperiod' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.interestPostingPeriodType" ng-options="type.id as type.value for type in data.interestPostingPeriodTypeOptions" value="{{type.id}}">
<select id="interestPostingPeriodType" ng-model="formData.interestPostingPeriodType" ng-options="type.id as type.value for type in data.interestPostingPeriodTypeOptions" value="{{type.id}}">
</select>
</td>
</tr>
<tr>
<td width="50%">
<label class="control-label">{{ 'label.interest.calculated.using' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.interestCalculationType" ng-options="type.id as type.value for type in data.interestCalculationTypeOptions" value="{{type.id}}">
<select id="interestCalculationType" ng-model="formData.interestCalculationType" ng-options="type.id as type.value for type in data.interestCalculationTypeOptions" value="{{type.id}}">
</select>
</td>
<td width="50%">
<label class="control-label">{{ 'label.daysinyears' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.interestCalculationDaysInYearType" ng-options="type.id as type.value for type in data.interestCalculationDaysInYearTypeOptions" value="{{type.id}}"/>
<select id="interestCalculationDaysInYearType" ng-model="formData.interestCalculationDaysInYearType" ng-options="type.id as type.value for type in data.interestCalculationDaysInYearTypeOptions" value="{{type.id}}"/>
</select>
</td>
</tr>
@ -101,12 +102,12 @@
<tr>
<td width="50%">
<label class="control-label">{{ 'label.minimumopeningbalance' | translate }}&nbsp;</label>
<input type="text" class="input-small" ng-model="formData.minRequiredOpeningBalance">
<input id="minRequiredOpeningBalance" type="text" class="input-small" ng-model="formData.minRequiredOpeningBalance">
</td>
<td width="50%">
<label class="control-label">{{ 'label.lockinPeriodFrequency' | translate }}&nbsp;</label>
<input type="text" class="input-small" ng-model="formData.lockinPeriodFrequency">&nbsp;
<select ng-model="formData.lockinPeriodFrequencyType" class="input-small" ng-options="type.id as type.value for type in data.lockinPeriodFrequencyTypeOptions" value="{{type.id}}">
<input id="lockinPeriodFrequency" type="text" class="input-small" ng-model="formData.lockinPeriodFrequency">&nbsp;
<select id="lockinPeriodFrequencyType" ng-model="formData.lockinPeriodFrequencyType" class="input-small" ng-options="type.id as type.value for type in data.lockinPeriodFrequencyTypeOptions" value="{{type.id}}">
<option value="">{{ 'label.select' | translate }}</option>
</select>
</td>
@ -143,9 +144,9 @@
<tr ng-repeat="charge in charges" >
<td>{{charge.name}},{{charge.currency.displaySymbol}}</td>
<td>{{charge.chargeCalculationType.value}}</td>
<td><input class="input-small" type="text" ng-model="charge.amount" placeholder="{{'label.placeholder.amount' | translate}}"></td>
<td><input id="charges[{{$index}}].amount" class="input-small" type="text" ng-model="charge.amount" placeholder="{{'label.placeholder.amount' | translate}}"></td>
<td>{{charge.chargeTimeType.value}}</td>
<td ng-show="charge.chargeTimeType.value=='Annual Fee'"><input class="input-small" type="text" ng-model="charge.feeOnMonthDay" ></td>{{charge.feeOnMonthDay}}
<td ng-show="charge.chargeTimeType.value=='Annual Fee'"><input class="input-small" id="charges[{{$index}}].feeOnMonthDay" type="text" ng-model="charge.feeOnMonthDay" ></td>{{charge.feeOnMonthDay}}
<td ng-hide="charge.chargeTimeType.value=='Annual Fee'"></td>
<td><a ng-click="deleteCharge($index)"><i class="icon-remove icon-white"></i></a></td>
</tr>

View File

@ -7,6 +7,7 @@
<li class="active">{{'label.saving.application' | translate}}</li>
</ul>
</div>
<api-validate></api-validate>
<form name="newsavingccountform" novalidate="" class="well" rc-submit="submit()">
<fieldset>
<legend>{{ 'label.saving.application' | translate }}</legend>
@ -20,7 +21,7 @@
</td>
<td width="50%">
<label class="control-label">{{ 'label.product' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.productId" ng-options="product.id as product.name for product in products" value="{{product.id}}" ng-change="changeProduct()" required="required">
<select id="productId" ng-model="formData.productId" ng-options="product.id as product.name for product in products" value="{{product.id}}" ng-change="changeProduct()" required="required">
<option style="display:none" value="">{{'label.select.saving.product' | translate}}</option>
</select>
</td>
@ -31,13 +32,13 @@
<tr class="control-group">
<td width="50%">
<label class="control-label">{{ 'label.loanofficer' | translate }}&nbsp;</label>
<select ng-model="formData.fieldOfficerId" ng-options="fieldOfficer.id as fieldOfficer.displayName for fieldOfficer in fieldOfficers" value="{{fieldOfficer.id}}">
<select id="fieldOfficerId" ng-model="formData.fieldOfficerId" ng-options="fieldOfficer.id as fieldOfficer.displayName for fieldOfficer in fieldOfficers" value="{{fieldOfficer.id}}">
<option value="">{{'label.select.loanofficer' | translate}}</option>
</select>
</td>
<td width="50%">
<label class="control-label">{{ 'label.submittedon' | translate }}&nbsp;<span class="required">*</span></label>
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="date.submittedOnDate" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)"/>
<input id="submittedOnDate" type="text" datepicker-pop="dd MMMM yyyy" ng-model="date.submittedOnDate" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)"/>
</td>
</tr>
<tr class="span2"></tr>
@ -60,7 +61,7 @@
<tr>
<td width="50%">
<label class="control-label">{{ 'label.nominalannualinterestrate' | translate }}&nbsp;<span class="required">*</span></label>
<input type="text" name="nominalannualinterestrate" class="input-small" ng-model="formData.nominalAnnualInterestRate" required late-Validate/>
<input id="nominalAnnualInterestRate" type="text" name="nominalannualinterestrate" class="input-small" ng-model="formData.nominalAnnualInterestRate" required late-Validate/>
<form-validate valattributeform="newsavingccountform" valattribute="nominalannualinterestrate"/>
</td>
<td width="50%">
@ -71,24 +72,24 @@
<tr>
<td width="50%">
<label class="control-label">{{ 'label.interestcompoundingperiod' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.interestCompoundingPeriodType" ng-options="type.id as type.value for type in data.interestCompoundingPeriodTypeOptions" value="{{type.id}}">
<select id="interestCompoundingPeriodType" ng-model="formData.interestCompoundingPeriodType" ng-options="type.id as type.value for type in data.interestCompoundingPeriodTypeOptions" value="{{type.id}}">
</select>
</td>
<td width="50%">
<label class="control-label">{{ 'label.interestpostingperiod' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.interestPostingPeriodType" ng-options="type.id as type.value for type in data.interestPostingPeriodTypeOptions" value="{{type.id}}">
<select id="interestPostingPeriodType" ng-model="formData.interestPostingPeriodType" ng-options="type.id as type.value for type in data.interestPostingPeriodTypeOptions" value="{{type.id}}">
</select>
</td>
</tr>
<tr>
<td width="50%">
<label class="control-label">{{ 'label.interest.calculated.using' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.interestCalculationType" ng-options="type.id as type.value for type in data.interestCalculationTypeOptions" value="{{type.id}}">
<select id="interestCalculationType" ng-model="formData.interestCalculationType" ng-options="type.id as type.value for type in data.interestCalculationTypeOptions" value="{{type.id}}">
</select>
</td>
<td width="50%">
<label class="control-label">{{ 'label.daysinyears' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.interestCalculationDaysInYearType" ng-options="type.id as type.value for type in data.interestCalculationDaysInYearTypeOptions" value="{{type.id}}">
<select id="interestCalculationDaysInYearType" ng-model="formData.interestCalculationDaysInYearType" ng-options="type.id as type.value for type in data.interestCalculationDaysInYearTypeOptions" value="{{type.id}}">
</select>
</td>
</tr>
@ -105,12 +106,12 @@
<tr>
<td width="50%">
<label class="control-label">{{ 'label.minimumopeningbalance' | translate }}&nbsp;</label>
<input type="text" class="input-small" ng-model="formData.minRequiredOpeningBalance">
<input id="minRequiredOpeningBalance" type="text" class="input-small" ng-model="formData.minRequiredOpeningBalance">
</td>
<td width="50%">
<label class="control-label">{{ 'label.lockinPeriodFrequency' | translate }}&nbsp;</label>
<input type="text" class="input-small" ng-model="formData.lockinPeriodFrequency">&nbsp;
<select ng-model="formData.lockinPeriodFrequencyType" class="input-small" ng-options="type.id as type.value for type in data.lockinPeriodFrequencyTypeOptions" value="{{type.id}}">
<input id="lockinPeriodFrequency" type="text" class="input-small" ng-model="formData.lockinPeriodFrequency">&nbsp;
<select id="lockinPeriodFrequencyType" ng-model="formData.lockinPeriodFrequencyType" class="input-small" ng-options="type.id as type.value for type in data.lockinPeriodFrequencyTypeOptions" value="{{type.id}}">
<option value="">{{'label.select.one' | translate}}</option>
</select>
</td>
@ -147,9 +148,9 @@
<tr ng-repeat="charge in charges" >
<td>{{charge.name}},{{charge.currency.displaySymbol}}</td>
<td>{{charge.chargeCalculationType.value}}</td>
<td><input class="input-small" type="text" ng-model="charge.amount" placeholder="{{'label.placeholder.amount' | translate}}"></td>
<td><input id="charges[{{$index}}].amount" class="input-small" type="text" ng-model="charge.amount" placeholder="{{'label.placeholder.amount' | translate}}"></td>
<td>{{charge.chargeTimeType.value}}</td>
<td ng-show="charge.chargeTimeType.value=='Annual Fee'"><input class="input-small" type="text" ng-model="charge.feeOnMonthDay" ></td>
<td ng-show="charge.chargeTimeType.value=='Annual Fee'"><input id="charges[{{$index}}].feeOnMonthDay" class="input-small" type="text" ng-model="charge.feeOnMonthDay" ></td>
<td ng-hide="charge.chargeTimeType.value=='Annual Fee'"></td>
<td><a ng-click="deleteCharge($index)"><i class="icon-remove icon-white"></i></a></td>
</tr>

View File

@ -6,13 +6,14 @@
</ul>
</div>
<form name="savingccountactionform" novalidate="" class="form-horizontal" ng-submit="submit()">
<api-validate></api-validate>
<fieldset>
<legend>{{ title | translate}}</legend>
<div class="control-group" ng-show="showDateField">
<label class="control-label" for="modelName">{{labelName | translate}}<span class="required">*</span></label>
<div class="controls">
<input type="text" datepicker-pop="dd MMMM yyyy" ng-model="formData[modelName]" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" required late-Validate />
<input id="{{modelName}}" type="text" datepicker-pop="dd MMMM yyyy" ng-model="formData[modelName]" is-open="opened" min="minDate" max="'2020-06-22'" date-disabled="disabled(date, mode)" required late-Validate />
</div>
</div>
@ -20,14 +21,14 @@
<div class="control-group">
<label class="control-label" for="transactionAmount">{{ 'label.saving.account.transactionAmount' | translate}}<span class="required">*</span></label>
<div class="controls">
<input type="text" name="transactionAmount" ng-model="formData.transactionAmount" required late-Validate/>
<input id="transactionAmount" type="text" name="transactionAmount" ng-model="formData.transactionAmount" required late-Validate/>
<form-validate valattributeform="savingccountactionform" valattribute="transactionAmount"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for="paymentTypeId">{{ 'label.saving.account.paymentTypeId' | translate}}<span class="required">*</span></label>
<div class="controls">
<select ng-model="formData.paymentTypeId" ng-options="paymentType.id as paymentType.name for paymentType in paymentTypes" value="{{paymentType.id}}">
<select id="paymentTypeId" ng-model="formData.paymentTypeId" ng-options="paymentType.id as paymentType.name for paymentType in paymentTypes" value="{{paymentType.id}}">
<option value="">{{'label.select.one' | translate}}</option>
</select>
</div>
@ -45,31 +46,31 @@
<div class="control-group">
<label class="control-label" for="accountNumber">{{ 'label.saving.account.accountNumber' | translate}}</label>
<div class="controls">
<input type="text" ng-model="formData.accountNumber">
<input id="accountNumber" type="text" ng-model="formData.accountNumber">
</div>
</div>
<div class="control-group">
<label class="control-label" for="checkNumber">{{ 'label.saving.account.checkNumber' | translate}}</label>
<div class="controls">
<input type="text" ng-model="formData.checkNumber">
<input id="checkNumber" type="text" ng-model="formData.checkNumber">
</div>
</div>
<div class="control-group">
<label class="control-label" for="routingCode">{{ 'label.saving.account.routingCode' | translate}}</label>
<div class="controls">
<input type="text" ng-model="formData.routingCode">
<input id="routingCode" type="text" ng-model="formData.routingCode">
</div>
</div>
<div class="control-group">
<label class="control-label" for="receiptNumber">{{ 'label.saving.account.receiptNumber' | translate}}</label>
<div class="controls">
<input type="text" ng-model="formData.receiptNumber">
<input id="receiptNumber" type="text" ng-model="formData.receiptNumber">
</div>
</div>
<div class="control-group">
<label class="control-label" for="bankNumber">{{ 'label.saving.account.bankNumber' | translate}}</label>
<div class="controls">
<input type="text" ng-model="formData.bankNumber">
<input id="bankNumber" type="text" ng-model="formData.bankNumber">
</div>
</div>
</div>
@ -77,7 +78,7 @@
<div class="control-group" ng-show="showAnnualAmountField">
<label class="control-label">{{ 'label.amount' | translate}}<span class="required">*</span></label>
<div class="controls">
<input type="text" name="amount" ng-model="formData.amount" required late-Validate/>
<input id="amount" type="text" name="amount" ng-model="formData.amount" required late-Validate/>
<span ng-show="savingccountactionform.amount.$invalid">
<small class="error">
Required Field
@ -88,14 +89,14 @@
<div class="control-group" ng-show="showNoteField">
<label class="control-label" for="note">{{ 'label.note' | translate}}</label>
<div class="controls">
<textarea rows="2" ng-model="formData.note"></textarea>
<textarea rows="2" id="note" ng-model="formData.note"></textarea>
</div>
</div>
<div class="control-group" ng-show="showAmountField">
<label class="control-label">{{ labelName | translate}}</label>
<div class="controls">
<input type="text" ng-model="formData.amount">
<input type="text" id="amount" ng-model="formData.amount">
</div>
</div>

View File

@ -6,6 +6,7 @@
</ul>
</div>
<form name="addcodeform" novalidate="" class="form-horizontal well" ng-controller="AddCodeController" rc-submit="submit()">
<api-validate></api-validate>
<fieldset>
<legend>{{'label.addcode' | translate}}</legend>
<div>

View File

@ -6,19 +6,20 @@
</ul>
</div>
<form name="createdatatableform" novalidate="" class="form-horizontal well" ng-controller="CreateDataTableController" rc-submit="submit()">
<api-validate></api-validate>
<fieldset>
<legend>{{ 'label.create.datatable' | translate }}</legend>
<div class="control-group">
<label class="control-label" for="datatableName">{{ 'label.datatable.name' | translate }}<span class="required">*</span></label>
<div class="controls">
<input type="text" name="datatableName" ng-model="formData.datatableName" required late-Validate/>
<input id="datatableName" type="text" name="datatableName" ng-model="formData.datatableName" required late-Validate/>
<form-validate valattributeform="createdatatableform" valattribute="datatableName"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for="apptableName">{{ 'label.datatable.apptableName' | translate }}<span class="required">*</span></label>
<div class="controls">
<select ng-model="formData.apptableName" name="apptable" required="required">
<select id="apptableName" ng-model="formData.apptableName" name="apptable" required="required">
<option style="display:none" value="">{{'label.select.apptableName' | translate}}</option>
<option value="m_client">{{'apptable.m.client' | translate}}</option>
<option value="m_group">{{'apptable.m.group' | translate}}</option>

View File

@ -6,6 +6,7 @@
</ul>
</div>
<form name="createreportrform" novalidate="" class="well" ng-controller="CreateReportController" rc-submit="submit()">
<api-validate></api-validate>
<div class="control-group">
<table width="100%">
<tr class="control-group">
@ -17,17 +18,17 @@
<tr>
<td width="30%">
<label class="control-label">{{ 'label.reportname' | translate }}&nbsp;<span class="required">*</span></label>
<input type="text" name="reportName" ng-model="formData.reportName" required late-Validate/>
<input id="reportName" type="text" name="reportName" ng-model="formData.reportName" required late-Validate/>
<form-validate valattributeform="createreportrform" valattribute="reportName"/>
</td>
<td width="20%">
<label class="control-label">{{ 'label.reporttype' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="formData.reportType" class="input-small" ng-options="reportType for reportType in reportdetail.allowedReportTypes" value="">
<select id="reportType" ng-model="formData.reportType" class="input-small" ng-options="reportType for reportType in reportdetail.allowedReportTypes" value="">
</select>
</td>
<td width="20%">
<label class="control-label">{{ 'label.reportsubtype' | translate }}&nbsp;</label>
<select ng-model="formData.reportSubType" class="input-small" ng-options="reportSubType for reportSubType in reportdetail.allowedReportSubTypes" value="">
<select id="reportSubType" ng-model="formData.reportSubType" class="input-small" ng-options="reportSubType for reportSubType in reportdetail.allowedReportSubTypes" value="">
<option style="display:none" value="">{{'label.select.one' | translate}}</option>
</select>
</td>
@ -35,7 +36,7 @@
<tr>
<td width="30%">
<label class="control-label">{{ 'label.reportcategory' | translate }}&nbsp;</label>
<input type="text" ng-model="formData.reportCategory">
<input id="reportCategory" type="text" ng-model="formData.reportCategory">
</td>
<td width="20%">
</td>
@ -49,7 +50,7 @@
<tr>
<td width="30%">
<label class="control-label">{{ 'label.description' | translate }}</label>
<textarea rows="2" ng-model="formData.description"></textarea>
<textarea id="description" rows="2" ng-model="formData.description"></textarea>
</td>
<td width="20%">
</td>
@ -71,7 +72,7 @@
<tr>
<td width="30%">
<label class="control-label">{{ 'label.sql' | translate }}<span class="required">*</span></label>
<textarea rows="4" name="sql" ng-model="formData.reportSql" required></textarea>
<textarea id="reportSql" rows="4" name="sql" ng-model="formData.reportSql" required></textarea>
<form-validate valattributeform="createreportrform" valattribute="sql"/>
</td>
<td width="20%">

View File

@ -7,6 +7,7 @@
<li class="active">{{'label.editcode' | translate}}</li>
</ul>
</div>
<api-validate></api-validate>
<h3>{{'label.editcode' | translate}}</h3>
<form>
<input name="codevalue" ng-model="newEle.name" placeholder="Code Value" type="text"/>&nbsp;&nbsp;
@ -26,4 +27,4 @@
<p>{{ 'error.delete.failed' | translate }}</p>
</div>
</form>
</form>

View File

@ -8,19 +8,19 @@
</ul>
</div>
<form name="editdatatableform" novalidate="" class="form-horizontal well" ng-submit="submit()">
<api-validate></api-validate>
<fieldset>
<legend>{{ 'label.edit.datatable' | translate }}</legend>
<div class="control-group">
<label class="control-label">{{ 'label.datatable.name' | translate }}<span class="required">*</span></label>
<div class="controls">
<input type="text" value="{{datatable.registeredTableName}}" readonly>
<input id="registeredTableName" type="text" value="{{datatable.registeredTableName}}" readonly>
</div>
</div>
<div class="control-group">
<label class="control-label">{{ 'label.datatable.apptableName' | translate }}<span class="required">*</span></label>
<div class="controls">
<select ng-model="formData.apptableName" required="required">
<select id="apptableName" ng-model="formData.apptableName" required="required">
<option style="display:none" value="">{{'label.select.apptableName' | translate}}</option>
<option value="m_client">{{'apptable.m.client' | translate}}</option>
<option value="m_group">{{'apptable.m.group' | translate}}</option>

View File

@ -6,6 +6,7 @@
</ul>
</div>
<form name="editreportrform" novalidate="" class="well" ng-controller="EditReportController" rc-submit="submit()">
<api-validate></api-validate>
<div class="control-group">
<table width="100%">
<tr class="control-group">
@ -17,12 +18,12 @@
<tr>
<td width="30%">
<label class="control-label">{{ 'label.reportname' | translate }}&nbsp;<span class="required">*</span></label>
<input type="text" name="reportName" ng-model="reportdetail.reportName" required late-Validate/>
<input id="reportName" type="text" name="reportName" ng-model="reportdetail.reportName" required late-Validate/>
<form-validate valattributeform="editreportrform" valattribute="reportName"/>
</td>
<td width="20%">
<label class="control-label">{{ 'label.reporttype' | translate }}&nbsp;<span class="required">*</span></label>
<select ng-model="reportdetail.reportType" class="input-small" ng-options="reportType for reportType in reportdetail.allowedReportTypes" value="">
<select id="reportType" ng-model="reportdetail.reportType" class="input-small" ng-options="reportType for reportType in reportdetail.allowedReportTypes" value="">
</select>
</td>
<td width="20%">

View File

@ -7,19 +7,20 @@
<li class="active">{{'label.editschedulerjob' | translate}}</li>
</ul>
</div>
<api-validate></api-validate>
<form class="form-horizontal" ng-submit="submit()">
<fieldset>
<div class="control-group">
<label class="control-label">{{ 'label.jobname' | translate }}</label>
<div class="controls">
<input type="text" ng-model="formData.displayName">
<input id="displayName" type="text" ng-model="formData.displayName">
</div>
</div>
<div class="control-group">
<label class="control-label">{{ 'label.cornexpression' | translate }}</label>
<div class="controls">
<input type="text" ng-model="formData.cronExpression">
<input id="cronExpression" type="text" ng-model="formData.cronExpression">
</div>
</div>

View File

@ -6,8 +6,8 @@
<div class="control-group" ng-repeat="columnHeader in columnHeaders">
<label class="control-label" for="colName">{{ columnHeader.columnName }}<span class="required">*</span></label>
<div class="controls">
<input ng-autofocus="true" type="text" ng-hide="columnHeader.columnDisplayType == 'CODELOOKUP'" ng-model="formData[columnHeader.columnName]">
<select ng-show="columnHeader.columnDisplayType == 'CODELOOKUP'" ng-model="formData[columnHeader.columnName]" ng-options="columnValue.id as columnValue.value for columnValue in columnHeader.columnValues" value="{{columnValue.id}}"></select>
<input ng-autofocus="true" id="{{columnHeader.columnName}}" type="text" ng-hide="columnHeader.columnDisplayType == 'CODELOOKUP'" ng-model="formData[columnHeader.columnName]">
<select ng-show="columnHeader.columnDisplayType == 'CODELOOKUP'" id="{{columnHeader.columnName}}" ng-model="formData[columnHeader.columnName]" ng-options="columnValue.id as columnValue.value for columnValue in columnHeader.columnValues" value="{{columnValue.id}}"></select>
</div>
</div>
<div class="offset2">

View File

@ -5,6 +5,7 @@
</ul>
</div>
<form class="well" ng-controller="CreateTemplateController">
<api-validate></api-validate>
<fieldset>
<div>
<div class="span8 paddedleft">
@ -13,17 +14,17 @@
<tr>
<td width="15%">
<label class="control-label">{{ 'label.entity' | translate }}&nbsp;</label>
<select ng-model="formData.entity" class="input-small" ng-options="entity.id as entity.name for entity in template.entities" value="{{entity.id}}" ng-change="entityChange(formData.entity)"> </select>
<select id="entity" ng-model="formData.entity" class="input-small" ng-options="entity.id as entity.name for entity in template.entities" value="{{entity.id}}" ng-change="entityChange(formData.entity)"> </select>
</td>
<td width="15%">
<label class="control-label rowleft">{{ 'label.type' | translate }}&nbsp;</label>
<select ng-model="formData.type" class="input-small rowleft" ng-options="type.id as type.name for type in template.types" value="{{type.id}}"> </select>
<select id="type" ng-model="formData.type" class="input-small rowleft" ng-options="type.id as type.name for type in template.types" value="{{type.id}}"> </select>
</td>
</tr>
<tr>
<td width="15%">
<label class="control-label">{{ 'label.templatename' | translate }}&nbsp;</label>
<input type="text" ng-model="formData.name">
<input id="name" type="text" ng-model="formData.name">
</td>
<td></td>
</tr>
@ -80,4 +81,4 @@
</div>
</div>
</fieldset>
</form>
</form>

View File

@ -6,6 +6,7 @@
<li class="active">{{'label.edittemplate' | translate}}</li>
</ul>
</div>
<api-validate></api-validate>
<form class="well">
<fieldset>
<div>
@ -15,17 +16,17 @@
<tr>
<td width="15%">
<label class="control-label">{{ 'label.entity' | translate }}&nbsp;</label>
<select ng-model="formData.entity" class="input-small" ng-options="entity.id as entity.name for entity in template.entities" value="{{entity.id}}" ng-change="entityChange(formData.entity)"> </select>
<select id="entity" ng-model="formData.entity" class="input-small" ng-options="entity.id as entity.name for entity in template.entities" value="{{entity.id}}" ng-change="entityChange(formData.entity)"> </select>
</td>
<td width="15%">
<label class="control-label rowleft">{{ 'label.type' | translate }}&nbsp;</label>
<select ng-model="formData.type" class="input-small rowleft" ng-options="type.id as type.name for type in template.types" value="{{type.id}}"> </select>
<select id="type" ng-model="formData.type" class="input-small rowleft" ng-options="type.id as type.name for type in template.types" value="{{type.id}}"> </select>
</td>
</tr>
<tr>
<td width="15%">
<label class="control-label">{{ 'label.templatename' | translate }}&nbsp;</label>
<input type="text" ng-model="formData.name">
<input id="name" type="text" ng-model="formData.name">
</td>
<td></td>
</tr>