Merge pull request #260 from goutham-M/mifosx-admin-validation

validation is added to admin
This commit is contained in:
Nayan Ambali 2013-11-09 01:06:07 -08:00
commit 4847255d40
30 changed files with 286 additions and 263 deletions

View File

@ -166,6 +166,8 @@
"table.heading.associatedwith":"Associated With",
"button.createdatatable":"Create Datatable",
"label.edit.datatable":"Edit Datatable",
"label.columntypeerr":"Type require",
"label.columnnameerr":"Column name require",
"#view datatable":"",
"table.heading.fieldname":"Field Name",
@ -275,6 +277,7 @@
"label.loan.offiecer.unassigneddate":"Unassigned Date:",
"label.loan.application":"New Loan Application",
"label.loanpurpose":"Loan Purpose",
"label.select.product":"Select product",
"form.legend.new.loan.application":"New Loan Application",
"form.legend.new.jlg.loan.application":"New JLG Loan Application",
@ -576,6 +579,7 @@
"label.addcode":"Add Code",
"label.editcode":"Edit Code",
"label.code.name":"Name",
"label.codevalueerror":"Code value require",
"#Admin system reports":"",
"table.heading.reportname":"Report Name",
@ -625,7 +629,7 @@
"label.select.apptableName":"Select",
"label.datatable.multiRow":"Multi Row",
"label.column.name":"Column Name",
"label.select.columnType":"Type",
"label.select.columnType":"Select type",
"datatable.column.type.string":"String",
"datatable.column.type.number":"Number",
"datatable.column.type.decimal":"Decimal",

View File

@ -2,6 +2,7 @@
mifosX.controllers = _.extend(module, {
ManageFundsController: function(scope, location, resourceFactory) {
scope.funderror = false;
resourceFactory.fundsResource.getAllFunds(function(data){
scope.funds = data;
});
@ -9,9 +10,12 @@
scope.addFund = function (){
if(scope.newfund != undefined ) {
resourceFactory.fundsResource.save({'name':scope.newfund} , function(data){
location.path('/managefunds');
});
scope.funderror = false;
resourceFactory.fundsResource.save({'name':scope.newfund} , function(data){
location.path('/managefunds');
});
} else {
scope.funderror = true;
}
scope.newfund = undefined;

View File

@ -3,7 +3,7 @@
CreateChargeController: function(scope, resourceFactory,location) {
scope.template = [];
scope.formData = {};
resourceFactory.chargeTemplateResource.getChargeTemplates(function(data) {
resourceFactory.chargeTemplateResource.get(function(data) {
scope.template = data;
scope.showChargePaymentByField = true;
scope.chargeCalculationTypeOptions = data.chargeCalculationTypeOptions;

View File

@ -24,7 +24,6 @@
nominalAnnualInterestRate : data.nominalAnnualInterestRate,
minRequiredOpeningBalance : data.minRequiredOpeningBalance,
lockinPeriodFrequency : data.lockinPeriodFrequency,
lockinPeriodFrequencyType : data.lockinPeriodFrequencyType.id,
withdrawalFeeForTransfers : data.withdrawalFeeForTransfers == true ? 'true' : 'false',
interestCompoundingPeriodType : data.interestCompoundingPeriodType.id,
interestPostingPeriodType : data.interestPostingPeriodType.id,
@ -33,6 +32,10 @@
accountingRule : data.accountingRule.id,
}
if (data.lockinPeriodFrequencyType) {
scope.formData.lockinPeriodFrequencyType = data.lockinPeriodFrequencyType.id;
}
if(scope.formData.accountingRule == 1){
scope.formData.savingsReferenceAccountId = scope.assetAccountOptions[0].id;
scope.formData.savingsControlAccountId = scope.liabilityAccountOptions[0].id;

View File

@ -3,6 +3,10 @@
CreateDataTableController: function(scope, routeParams , resourceFactory, location) {
scope.columns = [];
scope.columnnameerror = false;
scope.columntypeerror = false;
scope.datatableTemplate = {};
scope.labelerror = "requiredfield";
resourceFactory.codeResources.getAllCodes({}, function(data) {
scope.codes = data;
@ -10,10 +14,18 @@
scope.addColumn = function () {
if (scope.datatableTemplate.columnName && scope.datatableTemplate.columnType) {
scope.columnnameerror = false;
scope.columntypeerror = false;
scope.columns.push({name:scope.datatableTemplate.columnName, type:scope.datatableTemplate.columnType, mandatory:false});
scope.datatableTemplate.columnName = undefined;
scope.datatableTemplate.columnType = undefined;
}
} else if (!scope.datatableTemplate.columnName) {
scope.columnnameerror = true;
scope.labelerror = "columnnameerr";
} else if (scope.datatableTemplate.columnName) {
scope.columntypeerror = true;
scope.labelerror = "columntypeerr";
}
};
scope.removeColumn = function (index) {

View File

@ -4,6 +4,8 @@
scope.codevalues = [];
scope.newcodevalues = [];
scope.newEle = undefined;
scope.codevalueerror = false;
scope.newEle = {};
resourceFactory.codeResources.get({codeId: routeParams.id} , function(data) {
scope.code = data;
@ -17,10 +19,14 @@
scope.addCv = function(){
if(scope.newEle != undefined && scope.newEle.hasOwnProperty('name')) {
scope.codevalueerror = true;
resourceFactory.codeValueResource.save({codeId: routeParams.id},this.newEle,function(data){
scope.stat=false;
location.path('/viewcode/'+routeParams.id);
});
} else if (!scope.newEle.name) {
scope.codevalueerror = true;
scope.labelerror = "codevalueerror";
}
};

View File

@ -5,6 +5,9 @@
scope.columns = [];
scope.dropColumns = [];
scope.formData = {};
scope.columnnameerror = false;
scope.columntypeerror = false;
scope.datatableTemplate = {};
resourceFactory.codeResources.getAllCodes({}, function(data) {
scope.codes = data;
@ -52,10 +55,18 @@
scope.addColumn = function () {
if (scope.datatableTemplate.columnName && scope.datatableTemplate.columnType) {
scope.columnnameerror = false;
scope.columntypeerror = false;
scope.columns.push({name:scope.datatableTemplate.columnName, type:scope.datatableTemplate.columnType, mandatory:false});
scope.datatableTemplate.columnName = undefined;
scope.datatableTemplate.columnType = undefined;
}
} else if (!scope.datatableTemplate.columnName) {
scope.columnnameerror = true;
scope.labelerror = "columnnameerr";
} else if (scope.datatableTemplate.columnName) {
scope.columntypeerror = true;
scope.labelerror = "columntypeerr";
}
};
scope.removeColumn = function (index) {

View File

@ -6,7 +6,7 @@
<li class="active">{{'label.addrole' | translate}}</li>
</ul>
</div>
<form name="addroleform" novalidate="" class="form-horizontal well" ng-submit="submit()">
<form name="addroleform" novalidate="" class="form-horizontal well" rc-submit="submit()">
<fieldset>
<legend>{{'label.addrole' | translate}}</legend>
@ -14,11 +14,7 @@
<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/>
<span ng-show="addroleform.name.$invalid">
<small class="error" ng-show="addroleform.name.$error.req">
Required Field
</small>
</span>
<form-validate valattributeform="addroleform" valattribute="name"/>
</div>
</div>
@ -26,11 +22,7 @@
<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/>
<span ng-show="addroleform.description.$invalid">
<small class="error" ng-show="addroleform.description.$error.req">
Required Field
</small>
</span>
<form-validate valattributeform="addroleform" valattribute="description"/>
</div>
</div>

View File

@ -4,53 +4,35 @@
<li class="active">{{'label.createuser' | translate}}</li>
</ul>
</div>
<form name="createuserform" novalidate="" class="form-horizontal" ng-controller="CreateUserController" ng-submit="submit()">
<form name="createuserform" novalidate="" class="form-horizontal" ng-controller="CreateUserController" rc-submit="submit()">
<fieldset>
<legend>{{'label.createuser' | translate}}</legend>
<div class="control-group">
<label class="control-label" for="username">{{'label.username' | translate}}<span class="required">*</span></label>
<div class="controls">
<input type="text" id="username" name="username" ng-model="formData.username" required late-Validate/>
<span ng-show="createuserform.username.$invalid">
<small class="error" ng-show="createuserform.username.$error.req">
Required Field
</small>
</span>
<form-validate valattributeform="createuserform" valattribute="username"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for="firstname">{{'label.firstname' | translate}}<span class="required">*</span></label>
<div class="controls">
<input type="text" id="firstname" name="firstname" ng-model="formData.firstname" required late-Validate/>
<span ng-show="createuserform.firstname.$invalid">
<small class="error" ng-show="createuserform.firstname.$error.req">
Required Field
</small>
</span>
<form-validate valattributeform="createuserform" valattribute="firstname"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for="lastname">{{'label.lastname' | translate}}<span class="required">*</span></label>
<div class="controls">
<input type="text" id="lastname" name="lastname" ng-model="formData.lastname" required late-Validate/>
<span ng-show="createuserform.lastname.$invalid">
<small class="error" ng-show="createuserform.lastname.$error.req">
Required Field
</small>
</span>
<form-validate valattributeform="createuserform" valattribute="lastname"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for="email">{{'label.email' | translate}}<span class="required">*</span></label>
<div class="controls">
<input type="email" id="email" name="email" ng-model="formData.email" required late-Validate/>
<span ng-show="createuserform.email.$invalid">
<small class="error" ng-show="createuserform.email.$error.req">
Required Field
</small>
<small class="error" ng-show="createuserform.email.$error.email && !createuserform.email.$error.req">
Not valid email!</small>
</span>
<form-validate valattributeform="createuserform" valattribute="email"/>
</div>
</div>
<div class="control-group">
@ -84,9 +66,10 @@
<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" multiple>
<select id="role" 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"/>
</div>
</div>
<div class="offset3">

View File

@ -7,7 +7,7 @@
</ul>
</div>
<form name="edituserform" novalidate="" class="form-horizontal well" ng-submit="submit()">
<form name="edituserform" novalidate="" class="form-horizontal well" rc-submit="submit()">
<fieldset>
<legend>{{'label.edituser' | translate}}</legend>
@ -15,32 +15,31 @@
<label class="control-label" for="username">{{'label.username' | translate}}<span class="required">*</span></label>
<div class="controls">
<input type="text" id="username" name="username" ng-model="formData.username" required late-Validate/>
<span ng-show="createuserform.username.$invalid">
<small class="error" ng-show="createuserform.username.$error.req">
Required Field
</small>
</span>
<form-validate valattributeform="edituserform" valattribute="username"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for="firstname">{{'label.firstname' | translate}}<span class="required">*</span></label>
<div class="controls">
<input type="text" id="firstname" value="{{user.firstname}}" ng-model="formData.firstname">
<input type="text" id="firstname" name="firstname" value="{{user.firstname}}" ng-model="formData.firstname" required late-Validate/>
<form-validate valattributeform="edituserform" valattribute="firstname"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for="lastname">{{'label.lastname' | translate}}<span class="required">*</span></label>
<div class="controls">
<input type="text" id="lastname" value="{{user.lastname}}" ng-model="formData.lastname">
<input type="text" id="lastname" name="lastname" value="{{user.lastname}}" ng-model="formData.lastname" required late-Validate/>
<form-validate valattributeform="edituserform" valattribute="lastname"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for="email">{{'label.email' | translate}}<span class="required">*</span></label>
<div class="controls">
<input type="text" id="email" value="{{user.email}}" ng-model="formData.email">
<input type="email" id="email" name="email" value="{{user.email}}" ng-model="formData.email" required late-Validate/>
<form-validate valattributeform="edituserform" valattribute="email"/>
</div>
</div>
@ -56,8 +55,9 @@
<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" ng-options="availablerole.name for availablerole in availableRoles" value="{{availablerole.id}}" multiple>
<select 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>
</div>

View File

@ -5,7 +5,7 @@
<li class="active">{{'label.createemployee' | translate}}</li>
</ul>
</div>
<form name="createemployeeform" novalidate="" class="form-horizontal well" ng-controller="CreateEmployeeController" ng-submit="submit()">
<form name="createemployeeform" novalidate="" class="form-horizontal well" ng-controller="CreateEmployeeController" rc-submit="submit()">
<fieldset>
<legend>{{'label.createemployee' | translate}}</legend>
@ -21,11 +21,7 @@
<label class="control-label" for="firstname">{{ 'label.firstname' | translate }}<span class="required">*</span></label>
<div class="controls">
<input type="text" id="firstname" name="firstname" ng-model="formData.firstname" required late-Validate/>
<span ng-show="createemployeeform.firstname.$invalid">
<small class="error" ng-show="createemployeeform.firstname.$error.req">
Required Field
</small>
</span>
<form-validate valattributeform="createemployeeform" valattribute="firstname"/>
</div>
</div>
@ -33,11 +29,7 @@
<label class="control-label" for="lastname">{{ 'label.lastname' | translate }}<span class="required">*</span></label>
<div class="controls">
<input type="text" id="lastname" name="lastname" ng-model="formData.lastname" required late-Validate/>
<span ng-show="createemployeeform.lastname.$invalid">
<small class="error" ng-show="createemployeeform.lastname.$error.req">
Required Field
</small>
</span>
<form-validate valattributeform="createemployeeform" valattribute="lastname"/>
</div>
</div>

View File

@ -5,7 +5,7 @@
<li class="active">{{'label.createholiday' | translate}}</li>
</ul>
</div>
<form name="addholidayform" novalidate="" class="form-horizontal well" ng-controller="AddHolController" ng-submit="submit()">
<form name="addholidayform" novalidate="" class="form-horizontal well" ng-controller="AddHolController" rc-submit="submit()">
<fieldset>
<legend>{{'label.createholiday' | translate}}</legend>
<table>
@ -15,11 +15,7 @@
<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/>
<span ng-show="addholidayform.name.$invalid">
<small class="error" ng-show="addholidayform.name.$error.req">
Required Field
</small>
</span>
<form-validate valattributeform="addholidayform" valattribute="name"/>
</div>
</div>
</td>
@ -29,9 +25,10 @@
<div class="control-group">
<label class="control-label">{{ 'label.holiday.applicableoffices' | translate }}</label>
<div class="controls">
<select multiple ng-model="formData.officeId">
<select 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"/>
</div>
</div>
</td>
@ -43,12 +40,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)" required late-Validate />
<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)"/>
</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)" required late-Validate />
<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)"/>
</div>
</div>
</div>
@ -60,7 +57,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)" required late-Validate />
<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)"/>
</div>
</div>
</td>

View File

@ -5,7 +5,7 @@
<li class="active">{{'label.createoffice' | translate}}</li>
</ul>
</div>
<form name="createofficeform" novalidate="" class="form-horizontal well" ng-controller="CreateOfficeController" ng-submit="submit()">
<form name="createofficeform" novalidate="" class="form-horizontal well" ng-controller="CreateOfficeController" rc-submit="submit()">
<fieldset>
<legend>{{'label.createoffice' | translate}}</legend>
<table>
@ -15,11 +15,7 @@
<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/>
<span ng-show="createofficeform.name.$invalid">
<small class="error" ng-show="createofficeform.name.$error.req">
Required Field
</small>
</span>
<form-validate valattributeform="createofficeform" valattribute="name"/>
</div>
</div>
</td>
@ -39,7 +35,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)" required late-Validate />
<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)"/>
</div>
</div>
</td>

View File

@ -7,7 +7,7 @@
<li class="active">{{'label.createemployee' | translate}}</li>
</ul>
</div>
<form name="editemployeeform" novalidate="" class="form-horizontal well" ng-submit="submit()">
<form name="editemployeeform" novalidate="" class="form-horizontal well" rc-submit="submit()">
<fieldset>
<legend>{{'label.editemployee' | translate}}</legend>
@ -23,11 +23,7 @@
<label class="control-label" for="firstname">{{ 'label.firstname' | translate }}<span class="required">*</span></label>
<div class="controls">
<input type="text" id="firstname" name="firstname" ng-model="formData.firstname" required late-Validate/>
<span ng-show="editemployeeform.firstname.$invalid">
<small class="error">
Required Field
</small>
</span>
<form-validate valattributeform="editemployeeform" valattribute="firstname"/>
</div>
</div>
@ -35,11 +31,7 @@
<label class="control-label" for="lastname">{{ 'label.lastname' | translate }}<span class="required">*</span></label>
<div class="controls">
<input type="text" id="lastname" name="lastname" ng-model="formData.lastname" required late-Validate/>
<span ng-show="editemployeeform.lastname.$invalid">
<small class="error">
Required Field
</small>
</span>
<form-validate valattributeform="editemployeeform" valattribute="lastname"/>
</div>
</div>

View File

@ -5,7 +5,7 @@
<li class="active">{{'label.editoffice' | translate}}</li>
</ul>
</div>
<form name="editofficeform" novalidate="" class="form-horizontal well" ng-controller="EditOfficeController" ng-submit="submit()">
<form name="editofficeform" novalidate="" class="form-horizontal well" ng-controller="EditOfficeController" rc-submit="submit()">
<fieldset>
<table>
<tr>
@ -14,11 +14,7 @@
<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/>
<span ng-show="editofficeform.name.$invalid">
<small class="error">
Required Field
</small>
</span>
<form-validate valattributeform="editofficeform" valattribute="name"/>
</div>
</div>
</td>
@ -28,7 +24,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)" required late-Validate />
<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)"/>
</div>
</div>
</td>

View File

@ -5,16 +5,21 @@
</ul>
</div>
<h3>{{'label.managefunds' | translate}}</h3>
<div class="row alert-block span" ng-controller="ManageFundsController">
<form name="managefundform" novalidate class="row alert-block span" ng-controller="ManageFundsController">
<div>
<input ng-autofocus="true" class="form-control input-xxlarge"
<input name="fund" ng-autofocus="true" class="form-control input-xxlarge"
ng-model="newfund"
placeholder="{{'label.newfund' | translate}}"
type="text"
/>&nbsp;&nbsp;<a ng-click='addFund()'><i class="icon-plus"></i></a>
<span ng-show="managefundform.fund.$invalid || funderror">
<small class="error" ng-show="managefundform.fund.$error.req || funderror">
{{ 'label.requiredfield' | translate }}
</small>
</span>
<div ng-repeat="fund in funds">
<input disabled="" class="form-control input-xxlarge" placeholder={{fund.name}} type="text"/>
</div>
</div>
</div>
</form>

View File

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

View File

@ -5,7 +5,7 @@
<li class="active">{{'label.createloanproduct' | translate}}</li>
</ul>
</div>
<form class="well" ng-controller="CreateLoanProductController">
<form name="createloanproductform" novalidate="" class="well" ng-controller="CreateLoanProductController" rc-submit="submit()">
<div class="control-group">
<table width="100%">
<tr class="control-group">
@ -16,8 +16,9 @@
<table>
<tr>
<td width="40%">
<label class="control-label">{{ 'label.productname' | translate }}&nbsp;</label>
<input type="text" ng-model="formData.name">
<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/>
<form-validate valattributeform="createloanproductform" valattribute="name"/>
</td>
<td width="40%">
</td>
@ -76,25 +77,20 @@
<table>
<tr>
<td width="40%">
<label class="control-label">{{ 'label.currency' | translate }}&nbsp;</label>
<select ng-model="formData.currencyCode" ng-options="currency.code as currency.name for currency in product.currencyOptions" value="{{currency.code}}">
<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}}"/>
</td>
<td width="40%">
<label class="control-label">{{ 'label.decimalplaces' | translate }}&nbsp;</label>
<input type="text" class="input-small"ng-model="formData.digitsAfterDecimal">
<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/>
<form-validate valattributeform="createloanproductform" valattribute="decimalplace"/>
</td>
</tr>
<tr>
<td width="40%">
<label class="control-label">{{ 'label.multiplesof' | translate }}&nbsp;</label>
<input type="text" ng-model="formData.digitsAfterDecimal">
<td width="40%">
</td>
</tr>
<tr>
<td width="40%">
<label class="control-label">{{ 'label.currencyinmultiplesof' | translate }}&nbsp;</label>
<input type="text" ng-model="formData.inMultiplesOf">
<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/>
<form-validate valattributeform="createloanproductform" valattribute="multiplesof"/>
<td width="40%">
</td>
</tr>
@ -103,16 +99,17 @@
<tr>
<td width="80%">
<table>
<label class="control-label">{{ 'label.principal' | translate }}&nbsp;</label>
<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;
</th>
<th>
<input type="text" class="input-small" ng-model="formData.principal">&nbsp;
<input type="text" 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">
<form-validate valattributeform="createloanproductform" valattribute="principal"/>
</th>
</tr>
<tr>
@ -132,16 +129,17 @@
<tr>
<td width="80%">
<table>
<label class="control-label">{{ 'label.numofrepayments' | translate }}&nbsp;</label>
<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;
</th>
<th>
<input type="text" class="input-small" ng-model="formData.numberOfRepayments">&nbsp;
<input 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">
<form-validate valattributeform="createloanproductform" valattribute="numofrepayments"/>
</th>
</tr>
<tr>
@ -160,28 +158,30 @@
</tr>
<tr>
<td width="40%">
<label class="control-label">{{ 'label.repaidevery' | translate }}&nbsp;</label>
<input class="input-small" type="text" ng-model="formData.repaymentEvery">&nbsp;
<select class="input-small" ng-model="formData.repaymentFrequencyType" ng-options="repaymentFrequencyType.id as repaymentFrequencyType.value for repaymentFrequencyType in product.repaymentFrequencyTypeOptions" value="{{repaymentFrequencyType.id}}">
<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}}"/>
<form-validate valattributeform="createloanproductform" valattribute="repaymentEvery"/>
</td>
<td width="40%"></td>
</tr>
<tr>
<td width="80%">
<table>
<label class="control-label">{{ 'label.nominalinterestrate' | translate }}&nbsp;</label>
<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;
</th>
<th>
<input type="text" class="input-small" ng-model="formData.interestRatePerPeriod">&nbsp;
<input type="text" 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">
</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" 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>
<tr>
@ -214,17 +214,17 @@
<table>
<tr>
<td width="40%">
<label class="control-label">{{ 'label.amortization' | translate }}&nbsp;</label>
<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}}">
</td>
<td width="40%">
<label class="control-label">{{ 'label.interestmethod' | translate }}&nbsp;</label>
<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}}">
</td>
</tr>
<tr>
<td>
<label class="control-label">{{ 'label.interestcalculationperiod' | translate }}&nbsp;</label>
<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}}">
</td>
<td>
@ -235,7 +235,7 @@
</tr>
<tr>
<td>
<label class="control-label">{{ 'label.repaymentstrategy' | translate }}&nbsp;</label>
<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}}">
</td>
<td>
@ -538,6 +538,6 @@
</div>
<div class="offset6 paddedtop">
<button type="reset" class="btn" ng-click="cancel()">{{'label.cancel' | translate}}</button>
<button type="submit" class="btn btn-primary" ng-click="submit()">{{'label.save' | translate}}</button>
<button type="submit" class="btn btn-primary">{{'label.save' | translate}}</button>
</div>
</form>

View File

@ -5,7 +5,7 @@
<li class="active">{{'label.createsavingproduct' | translate}}</li>
</ul>
</div>
<form class="well" ng-controller="CreateSavingProductController">
<form name="createsavingproductform" novalidate="" class="well" ng-controller="CreateSavingProductController" rc-submit="submit()">
<div class="control-group">
<table width="100%">
<tr class="control-group">
@ -16,16 +16,18 @@
<table>
<tr>
<td width="40%">
<label class="control-label">{{ 'label.productname' | translate }}&nbsp;</label>
<input ng-autofocus="true" type="text" ng-model="formData.name">
<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/>
<form-validate valattributeform="createsavingproductform" valattribute="name"/>
</td>
<td width="40%">
</td>
</tr>
<tr>
<td width="40%">
<label class="control-label">{{ 'label.description' | translate }}</label>
<textarea rows="2" ng-model="formData.description"></textarea>
<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>
<form-validate valattributeform="createsavingproductform" valattribute="description"/>
</td>
<td width="40%">
</td>
@ -47,27 +49,30 @@
<table>
<tr>
<td width="40%">
<label class="control-label">{{ 'label.currency' | translate }}&nbsp;</label>
<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}}">
</td>
<td width="40%">
<label class="control-label">{{ 'label.decimalplaces' | translate }}&nbsp;</label>
<input type="text" class="input-small"ng-model="formData.digitsAfterDecimal">
<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/>
<form-validate valattributeform="createsavingproductform" valattribute="decimalplace"/>
</td>
</tr>
<tr>
<td width="40%">
<label class="control-label">{{ 'label.multiplesof' | translate }}&nbsp;</label>
<input type="text" class="input-small"ng-model="formData.inMultiplesOf">
<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/>
<form-validate valattributeform="createsavingproductform" valattribute="multiplesof"/>
</td>
<td width="40%">
<label class="control-label">{{ 'label.nominalannualinterestrate' | translate }}&nbsp;</label>
<input type="text" class="input-small" ng-model="formData.nominalAnnualInterestRate">
<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/>
<form-validate valattributeform="createsavingproductform" valattribute="nominalAnnualInterestRate"/>
</td>
</tr>
<tr>
<td width="40%">
<label class="control-label">{{ 'label.interestcompoundingperiod' | translate }}&nbsp;</label>
<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>
</td>
@ -75,7 +80,7 @@
</tr>
<tr>
<td width="40%">
<label class="control-label">{{ 'label.interestpostingperiod' | translate }}&nbsp;</label>
<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>
</td>
@ -83,12 +88,12 @@
</tr>
<tr>
<td width="40%">
<label class="control-label">{{ 'label.interest.calculated.using' | translate }}&nbsp;</label>
<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>
</td>
<td width="40%">
<label class="control-label">{{ 'label.daysinyears' | translate }}&nbsp;</label>
<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>
</td>
@ -395,7 +400,7 @@
</div>
<div class="offset6 paddedtop">
<button type="reset" class="btn" ng-click="cancel()">{{'label.cancel' | translate}}</button>
<button type="submit" class="btn btn-primary" ng-click="submit()">{{'label.save' | translate}}</button>
<button type="submit" class="btn btn-primary">{{'label.save' | translate}}</button>
</div>
</form>

View File

@ -1,53 +1,55 @@
<div ng-controller="EditChargeController">
<div class="control-group">
<label class="control-label">{{'label.chargesappliesto' | translate}}</label>
<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>
</div>
</div>
<form class="form-horizontal well" ng-controller="EditChargeController" ng-submit="submit()">
<form name="editchargeform" novalidate class="form-horizontal well" ng-controller="EditChargeController" rc-submit="submit()">
<fieldset>
<legend>{{'label.editcharge' | translate}}</legend>
<hr/>
<div class="control-group">
<label class="control-label" for="name">{{'label.name' | translate}}</label>
<label class="control-label" for="name">{{'label.name' | translate}}<span class="required">*</span></label>
<div class="controls">
<input ng-autofocus="true" type="text" id="name" ng-model="formData.name">
<input name="name" ng-autofocus="true" type="text" id="name" ng-model="formData.name" required late-Validate/>
<form-validate valattributeform="editchargeform" valattribute="name"/>
</div>
</div>
<div class="control-group">
<label class="control-label">{{'label.form.currency' | translate}}</label>
<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>
</div>
</div>
<div class="control-group">
<label class="control-label">{{'label.chargetimetype' | translate}}</label>
<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>
</div>
</div>
<div class="control-group">
<label class="control-label">{{'label.chargecalculation' | translate}}</label>
<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>
</div>
</div>
<div class="control-group">
<label class="control-label">{{'label.chargepaymentby' | translate}}</label>
<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>
</div>
</div>
<div class="control-group">
<label class="control-label" for="amount">{{'label.amount' | translate}}</label>
<label class="control-label" for="amount">{{'label.amount' | translate}}<span class="required">*</span></label>
<div class="controls">
<input type="text" id="amount" ng-model="formData.amount">
<input name="amount" type="text" id="amount" ng-model="formData.amount" required late-Validate/>
<form-validate valattributeform="editchargeform" valattribute="amount"/>
</div>
</div>
<div class="control-group">

View File

@ -7,7 +7,7 @@
<li class="active">{{'label.editloanproduct' | translate}}</li>
</ul>
</div>
<form class="well">
<form name="editloanproductform" novalidate="" class="well" rc-submit="submit()">
<div class="control-group">
<table width="100%">
<tr class="control-group">
@ -18,8 +18,9 @@
<table>
<tr>
<td width="40%">
<label class="control-label">{{ 'label.productname' | translate }}&nbsp;</label>
<input ng-autofocus="true" type="text" ng-model="formData.name">
<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/>
<form-validate valattributeform="editloanproductform" valattribute="name"/>
</td>
<td width="40%">
</td>
@ -45,11 +46,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)" required late-Validate />
<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)"/>
</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)" required late-Validate />
<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)"/>
</td>
</tr>
<tr>
@ -78,18 +79,20 @@
<table>
<tr>
<td width="40%">
<label class="control-label">{{ 'label.currency' | translate }}&nbsp;</label>
<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}}">
</td>
<td width="40%">
<label class="control-label">{{ 'label.decimalplaces' | translate }}&nbsp;</label>
<input type="text" class="input-small"ng-model="formData.digitsAfterDecimal">
<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/>
<form-validate valattributeform="editloanproductform" valattribute="decimalplace"/>
</td>
</tr>
<tr>
<td width="40%">
<label class="control-label">{{ 'label.currencyinmultiplesof' | translate }}&nbsp;</label>
<input type="text" ng-model="formData.inMultiplesOf">
<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/>
<form-validate valattributeform="editloanproductform" valattribute="multiplesof"/>
<td width="40%">
</td>
</tr>
@ -98,16 +101,17 @@
<tr>
<td width="80%">
<table>
<label class="control-label">{{ 'label.principal' | translate }}&nbsp;</label>
<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;
</th>
<th>
<input type="text" class="input-small" ng-model="formData.principal">&nbsp;
<input type="text" 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">
<form-validate valattributeform="editloanproductform" valattribute="principal"/>
</th>
</tr>
<tr>
@ -127,16 +131,17 @@
<tr>
<td width="80%">
<table>
<label class="control-label">{{ 'label.numofrepayments' | translate }}&nbsp;</label>
<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;
</th>
<th>
<input type="text" class="input-small" ng-model="formData.numberOfRepayments">&nbsp;
<input 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">
<form-validate valattributeform="editloanproductform" valattribute="numofrepayments"/>
</th>
</tr>
<tr>
@ -155,28 +160,30 @@
</tr>
<tr>
<td width="40%">
<label class="control-label">{{ 'label.repaidevery' | translate }}&nbsp;</label>
<input class="input-small" type="text" ng-model="formData.repaymentEvery">&nbsp;
<select class="input-small" ng-model="formData.repaymentFrequencyType" ng-options="repaymentFrequencyType.id as repaymentFrequencyType.value for repaymentFrequencyType in product.repaymentFrequencyTypeOptions" value="{{repaymentFrequencyType.id}}">
<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}}"/>
<form-validate valattributeform="editloanproductform" valattribute="repaymentEvery"/>
</td>
<td width="40%"></td>
</tr>
<tr>
<td width="80%">
<table>
<label class="control-label">{{ 'label.nominalinterestrate' | translate }}&nbsp;</label>
<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;
</th>
<th>
<input type="text" class="input-small" ng-model="formData.interestRatePerPeriod">&nbsp;
<input type="text" 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">
</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" 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>
<tr>
@ -209,17 +216,17 @@
<table>
<tr>
<td width="40%">
<label class="control-label">{{ 'label.amortization' | translate }}&nbsp;</label>
<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}}">
</td>
<td width="40%">
<label class="control-label">{{ 'label.interestmethod' | translate }}&nbsp;</label>
<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}}">
</td>
</tr>
<tr>
<td>
<label class="control-label">{{ 'label.interestcalculationperiod' | translate }}&nbsp;</label>
<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}}">
</td>
<td>
@ -231,7 +238,7 @@
</tr>
<tr>
<td>
<label class="control-label">{{ 'label.repaymentstrategy' | translate }}&nbsp;</label>
<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}}">
</td>
<td>
@ -528,7 +535,7 @@
<div class="offset6 paddedtop">
<a href="#/viewloanproduct/{{product.id}}" class="btn">{{'label.cancel' | translate}}</a>
<button type="submit" class="btn btn-primary" ng-click="submit()">{{'label.save' | translate}}</button>
<button type="submit" class="btn btn-primary">{{'label.save' | translate}}</button>
</div>
</form>
</div>

View File

@ -7,7 +7,7 @@
<li class="active">{{'label.editsavingproduct' | translate}}</li>
</ul>
</div>
<form class="well">
<form name="createsavingproductform" novalidate="" class="well" rc-submit="submit()">
<div class="control-group">
<table width="100%">
<tr class="control-group">
@ -18,16 +18,18 @@
<table>
<tr>
<td width="40%">
<label class="control-label">{{ 'label.productname' | translate }}&nbsp;</label>
<input ng-autofocus="true" type="text" ng-model="formData.name">
<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/>
<form-validate valattributeform="createsavingproductform" valattribute="name"/>
</td>
<td width="40%">
</td>
</tr>
<tr>
<td width="40%">
<label class="control-label">{{ 'label.description' | translate }}</label>
<textarea rows="2" ng-model="formData.description"></textarea>
<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>
<form-validate valattributeform="createsavingproductform" valattribute="description"/>
</td>
<td width="40%">
</td>
@ -49,27 +51,30 @@
<table>
<tr>
<td width="40%">
<label class="control-label">{{ 'label.currency' | translate }}&nbsp;</label>
<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}}">
</td>
<td width="40%">
<label class="control-label">{{ 'label.decimalplaces' | translate }}&nbsp;</label>
<input type="text" class="input-small"ng-model="formData.digitsAfterDecimal">
<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/>
<form-validate valattributeform="createsavingproductform" valattribute="decimalplace"/>
</td>
</tr>
<tr>
<td width="40%">
<label class="control-label">{{ 'label.multiplesof' | translate }}&nbsp;</label>
<input type="text" class="input-small"ng-model="formData.inMultiplesOf">
<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/>
<form-validate valattributeform="createsavingproductform" valattribute="multiplesof"/>
</td>
<td width="40%">
<label class="control-label">{{ 'label.nominalannualinterestrate' | translate }}&nbsp;</label>
<input type="text" class="input-small" ng-model="formData.nominalAnnualInterestRate">
<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/>
<form-validate valattributeform="createsavingproductform" valattribute="nominalAnnualInterestRate"/>
</td>
</tr>
<tr>
<td width="40%">
<label class="control-label">{{ 'label.interestcompoundingperiod' | translate }}&nbsp;</label>
<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>
</td>
@ -77,7 +82,7 @@
</tr>
<tr>
<td width="40%">
<label class="control-label">{{ 'label.interestpostingperiod' | translate }}&nbsp;</label>
<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>
</td>
@ -85,12 +90,12 @@
</tr>
<tr>
<td width="40%">
<label class="control-label">{{ 'label.interest.calculated.using' | translate }}&nbsp;</label>
<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>
</td>
<td width="40%">
<label class="control-label">{{ 'label.daysinyears' | translate }}&nbsp;</label>
<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>
</td>
@ -397,7 +402,7 @@
</div>
<div class="offset6 paddedtop">
<button type="reset" class="btn btn-warning" ng-click="cancel()">{{'label.cancel' | translate}}</button>
<button type="submit" class="btn btn-primary" ng-click="submit()">{{'label.save' | translate}}</button>
<button type="submit" class="btn btn-primary">{{'label.save' | translate}}</button>
</div>
</form>
</div>

View File

@ -1,12 +1,13 @@
<form class="form-horizontal well" ng-controller="AddProductMixController" ng-submit="submit()">
<form name="addproductmixform" novalidate class="form-horizontal well" ng-controller="AddProductMixController" rc-submit="submit()">
<fieldset>
<legend>{{'label.addproductmix' | translate}}</legend>
<div class="control-group">
<label class="control-label">{{ 'label.selectproduct' | translate }}</label>
<div class="controls">
<select ng-model="formData.productId">
<option ng-repeat="product in products" data-ng-click="productInfo(product.id)" value="{{product.id}}">{{product.name}}</option>
<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>
<option value="">{{'label.select.product' | translate}}</option>
</select>
<form-validate valattributeform="addproductmixform" valattribute="product"/>
</div>
</div>
<div class="control-group">

View File

@ -5,18 +5,14 @@
<li class="active">{{'label.addcode' | translate}}</li>
</ul>
</div>
<form name="addcodeform" novalidate="" class="form-horizontal well" ng-controller="AddCodeController" ng-submit="submit()">
<form name="addcodeform" novalidate="" class="form-horizontal well" ng-controller="AddCodeController" rc-submit="submit()">
<fieldset>
<legend>{{'label.addcode' | translate}}</legend>
<div>
<label class="control-label" for="codename">{{'label.codename' | translate}}<span class="required">*</span></label>
<div class="controls">
<input type="text" id="codename" name="codename" ng-model="formData.name" required late-Validate/>
<span ng-show="addcodeform.codename.$invalid">
<small class="error" ng-show="addcodeform.codename.$error.req">
Required Field
</small>
</span>
<form-validate valattributeform="addcodeform" valattribute="codename"/>
</div>
</div><br>
<div class="offset3">

View File

@ -5,24 +5,20 @@
<li class="active">{{'label.create.datatable' | translate}}</li>
</ul>
</div>
<form name="createdatatableform" novalidate="" class="form-horizontal well" ng-controller="CreateDataTableController" ng-submit="submit()">
<form name="createdatatableform" novalidate="" class="form-horizontal well" ng-controller="CreateDataTableController" rc-submit="submit()">
<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/>
<span ng-show="createdatatableform.datatableName.$invalid">
<small class="error" ng-show="createdatatableform.datatableName.$error.req">
Required Field
</small>
</span>
<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" required="required">
<select 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>
@ -31,6 +27,7 @@
<option value="m_office">{{'apptable.m.office' | translate}}</option>
<option value="m_savings_account">{{'apptable.m.savings.account' | translate}}</option>
</select>
<form-validate valattributeform="createdatatableform" valattribute="apptable"/>
</div>
</div>
<div class="control-group">
@ -40,8 +37,8 @@
<div class="control-group">
<label class="control-label">{{ 'label.add.columns' | translate }}<span class="required">*</span></label>s
<div class="controls">
<input ng-model="datatableTemplate.columnName" type="text" placeholder="{{'label.column.name' | translate}}"/>&nbsp;&nbsp;
<select ng-model="datatableTemplate.columnType">&nbsp;&nbsp;
<input ng-model="datatableTemplate.columnName" name="columnname" type="text" placeholder="{{'label.column.name' | translate}}" required late-Validate/>&nbsp;&nbsp;
<select name="columnType" ng-model="datatableTemplate.columnType" required>&nbsp;&nbsp;
<option style="display:none" value="">{{'label.select.columnType' | translate}}</option>
<option value="String">{{'datatable.column.type.string' | translate}}</option>
<option value="Number">{{'datatable.column.type.number' | translate}}</option>
@ -51,6 +48,11 @@
<option value="Dropdown">{{'datatable.column.type.dropdown' | translate}}</option>
</select>&nbsp;&nbsp;
<a ng-click="addColumn()"><i class="icon-plus icon-white"></i></a>
<span ng-show="createdatatableform.columnname.$invalid || columnnameerror || columntypeerror">
<small class="error" ng-show="createdatatableform.columnname.$error.req || columnnameerror || columntypeerror || rc.createdatatableform.attempted">
{{ 'label.'+labelerror | translate }}
</small>
</span>
</div>
</div>

View File

@ -5,7 +5,7 @@
<li class="active">{{'label.createreport' | translate}}</li>
</ul>
</div>
<form name="createreportrform" novalidate="" class="well" ng-controller="CreateReportController">
<form name="createreportrform" novalidate="" class="well" ng-controller="CreateReportController" rc-submit="submit()">
<div class="control-group">
<table width="100%">
<tr class="control-group">
@ -18,11 +18,7 @@
<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/>
<span ng-show="createreportrform.reportName.$invalid">
<small class="error" ng-show="createreportrform.reportName.$error.req">
Required Field
</small>
</span>
<form-validate valattributeform="createreportrform" valattribute="reportName"/>
</td>
<td width="20%">
<label class="control-label">{{ 'label.reporttype' | translate }}&nbsp;<span class="required">*</span></label>
@ -68,14 +64,15 @@
<tr class="control-group">
<td width="10%">
<label class="control-label"><h4>{{ 'label.heading.sql' | translate }}</h4></label>
<label class="control-label"><h4>{{ 'label.heading.sql' | translate }}</h4>
</td>
<td class="blockquoteresult" width="90%">
<table>
<tr>
<td width="30%">
<label class="control-label">{{ 'label.sql' | translate }}</label>
<textarea rows="4" ng-model="formData.reportSql"></textarea>
<label class="control-label">{{ 'label.sql' | translate }}<span class="required">*</span></label>
<textarea rows="4" name="sql" ng-model="formData.reportSql" required></textarea>
<form-validate valattributeform="createreportrform" valattribute="sql"/>
</td>
<td width="20%">
</td>
@ -120,7 +117,7 @@
</div>
<div class="offset6">
<button type="reset" class="btn" ng-click="cancel()">{{'button.cancel' | translate}}</button>
<button type="submit" class="btn btn-primary" ng-click="submit()">{{'button.save' | translate}}</button>
<button type="submit" class="btn btn-primary">{{'button.save' | translate}}</button>
</div>
</form>

View File

@ -1,4 +1,4 @@
<div ng-controller="EditCodeController" ng-submit="submit()">
<form name="editcodeform" novalidate="" ng-controller="EditCodeController" ng-submit="submit()">
<div class="paddedbottom10">
<ul class="breadcrumb">
<li><a href="#/system">{{'link.admin.system' | translate}}</a> <span class="divider">/</span></li>
@ -9,9 +9,14 @@
</div>
<h3>{{'label.editcode' | translate}}</h3>
<form>
<input ng-model="newEle.name" placeholder="Code Value" type="text"/>&nbsp;&nbsp;<input ng-model="newEle.position"
placeholder="Position" type="text"/>&nbsp;&nbsp;
<a data-ng-click="addCv()" class="btn btn-primary"><i class="icon-plus icon-white"></i>{{ 'label.add' | translate }}</a>
<input name="codevalue" ng-model="newEle.name" placeholder="Code Value" type="text"/>&nbsp;&nbsp;
<input name="position" ng-model="newEle.position" placeholder="Position" type="text"/>&nbsp;&nbsp;
<a data-ng-click="addCv()" class="btn btn-primary"><i class="icon-plus icon-white"></i>{{ 'label.add' | translate }}</a>
<span ng-show="createcenterform.name.$invalid || codevalueerror">
<small class="error" ng-show="createcenterform.name.$error.req || codevalueerror">
{{'label.'+labelerror | translate}}
</small>
</span>
</form>
<div data-ng-repeat="codevalue in codevalues">
<input disabled="" placeholder={{codevalue.name}} type="text"/>&nbsp;&nbsp;<input disabled="" placeholder={{codevalue.position}}
@ -21,4 +26,4 @@
<p>{{ 'error.delete.failed' | translate }}</p>
</div>
</div>
</form>

View File

@ -7,7 +7,7 @@
<li class="active">{{'label.edit.datatable' | translate}}</li>
</ul>
</div>
<form class="form-horizontal well" ng-submit="submit()">
<form name="editdatatableform" novalidate="" class="form-horizontal well" ng-submit="submit()">
<fieldset>
<legend>{{ 'label.edit.datatable' | translate }}</legend>
@ -34,7 +34,7 @@
<div class="control-group">
<label class="control-label">{{ 'label.add.columns' | translate }}</label>
<div class="controls">
<input ng-model="datatableTemplate.columnName" type="text" placeholder="{{'label.column.name' | translate}}"/>&nbsp;&nbsp;
<input name="columnname" ng-model="datatableTemplate.columnName" type="text" placeholder="{{'label.column.name' | translate}}"/>&nbsp;&nbsp;
<select ng-model="datatableTemplate.columnType">&nbsp;&nbsp;
<option style="display:none" value="">{{'label.select.columnType' | translate}}</option>
<option value="string">{{'datatable.column.type.string' | translate}}</option>
@ -45,6 +45,11 @@
<option value="dropdown">{{'datatable.column.type.dropdown' | translate}}</option>
</select>&nbsp;&nbsp;
<a ng-click="addColumn()"><i class="icon-plus icon-white"></i></a>
<span ng-show="editdatatableform.columnname.$invalid || columnnameerror || columntypeerror">
<small class="error" ng-show="editdatatableform.columnname.$error.req || columnnameerror || columntypeerror">
{{ 'label.'+labelerror | translate }}
</small>
</span>
</div>
</div>

View File

@ -5,7 +5,7 @@
<li class="active">{{'label.editreport' | translate}}</li>
</ul>
</div>
<form name="editreportrform" novalidate="" class="well" ng-controller="EditReportController">
<form name="editreportrform" novalidate="" class="well" ng-controller="EditReportController" rc-submit="submit()">
<div class="control-group">
<table width="100%">
<tr class="control-group">
@ -18,11 +18,7 @@
<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/>
<span ng-show="editreportrform.reportName.$invalid">
<small class="error">
Required Field
</small>
</span>
<form-validate valattributeform="editreportrform" valattribute="reportName"/>
</td>
<td width="20%">
<label class="control-label">{{ 'label.reporttype' | translate }}&nbsp;<span class="required">*</span></label>
@ -74,8 +70,9 @@
<table>
<tr>
<td width="30%">
<label class="control-label">{{ 'label.sql' | translate }}</label>
<textarea rows="4" ng-model="reportdetail.reportSql"></textarea>
<label class="control-label">{{ 'label.sql' | translate }}<span class="required">*</span></label>
<textarea rows="4" name="sql" ng-model="reportdetail.reportSql" required></textarea>
<form-validate valattributeform="editreportrform" valattribute="sql"/>
</td>
<td width="20%">
</td>
@ -108,7 +105,7 @@
</div>
<div class="offset6">
<button type="reset" class="btn" ng-click="cancel()">{{'button.cancel' | translate}}</button>
<button type="submit" class="btn btn-primary" ng-click="submit()">{{'button.save' | translate}}</button>
<button type="submit" class="btn btn-primary">{{'button.save' | translate}}</button>
</div>
</form>

View File

@ -8,8 +8,8 @@
</div>
<div class="pull-right">
<div class="btn-group">
<a href="#/editreport/{{report.id}}" class="btn btn-primary"><i class="icon-edit icon-white"></i>{{'button.edit' | translate}</a>
<button type="button" class="btn btn-danger" ng-show="noncoreReport" ng-click="deletereport()"><i class="icon-trash icon-white"></i>{{'label.delete' | translate}</button>
<a href="#/editreport/{{report.id}}" class="btn btn-primary"><i class="icon-edit icon-white"></i>{{'button.edit' | translate}}</a>
<button type="button" class="btn btn-danger" ng-show="noncoreReport" ng-click="deletereport()"><i class="icon-trash icon-white"></i>{{'label.delete' | translate}}</button>
</div>
</div>
<script type="text/ng-template" id="deletenoncorereport.html">