Merge pull request #95 from mifoscontributer/updaterefs

Updating missed refferences
This commit is contained in:
Nayan Ambali 2013-09-13 17:55:21 -07:00
commit 92c139e31c
23 changed files with 978 additions and 14 deletions

View File

@ -0,0 +1,21 @@
(function(module) {
mifosX.controllers = _.extend(module, {
ViewAccRuleController: function(scope, resourceFactory, routeParams, location) {
resourceFactory.accountingRulesResource.getById({accountingRuleId:routeParams.id}, function(data){
scope.rule = data;
});
scope.deleteRule = function (){
resourceFactory.accountingRulesResource.delete({accountingRuleId:routeParams.id}, {}, function(data){
location.path('/accounting_rules');
});
};
}
});
mifosX.ng.application.controller('ViewAccRuleController', ['$scope', 'ResourceFactory', '$routeParams', '$location', mifosX.controllers.ViewAccRuleController]).run(function($log) {
$log.info("ViewAccRuleController initialized");
});
}(mifosX.controllers || {}));

View File

@ -22,7 +22,7 @@
newholiday.offices.push(temp);
}
resourceFactory.holValueResource.save(newholiday,function(data){
location.path('/managehol');
location.path('/holidays');
});
};
}

View File

@ -1,13 +1,9 @@
(function(module) {
mifosX.controllers = _.extend(module, {
ViewHolController: function(scope,routeParams, resourceFactory) {
scope.holidays = [];
scope.officehols = [];
resourceFactory.holResource.getAllHols({officeId:1},function(data){
scope.holidays = data;
});
resourceFactory.holValueResource.getholvalues({officeId:1,holId: routeParams.id} , function(data) {
scope.officehols = data;
scope.holiday = data;
});
}
});

View File

@ -0,0 +1,197 @@
(function(module) {
mifosX.controllers = _.extend(module, {
RunReportsController: function(scope, routeParams, resourceFactory, location) {
scope.isCollapsed = false; //displays options div on startup
scope.hideTable = true; //hides the results div on startup
scope.hidePentahoReport = true; //hides the results div on startup
scope.formData = {};
scope.reportParams = new Array();
scope.reportDateParams = new Array();
scope.reqFields = new Array();
scope.reportData = {};
scope.reportData.columnHeaders = [];
scope.reportData.data = [];
scope.baseURL="#";
scope.reportName = routeParams.name;
scope.reportType = routeParams.type;
scope.pentahoReportDetail=[];
resourceFactory.runReportsResource.getReport({reportSource: 'FullParameterList', parameterType : true, R_reportListing: "'"+routeParams.name+"'"}, function(data){
for (var i in data.data ) {
var temp = {
name: data.data[i].row[0],
variable: data.data[i].row[1],
label: data.data[i].row[2],
displayType: data.data[i].row[3],
formatType: data.data[i].row[4],
defaultVal: data.data[i].row[5],
selectOne: data.data[i].row[6],
selectAll: data.data[i].row[7],
parentParameterName: data.data[i].row[8],
inputName: "R_"+ data.data[i].row[1] //model name
};
scope.reqFields.push(temp);
if (temp.displayType == 'select' && temp.parentParameterName == null) {
intializeParams(temp,{});
} else if (temp.displayType == 'date') {
scope.reportDateParams.push(temp);
}
}
});
if (scope.reportType == 'Pentaho') {
resourceFactory.runReportsResource.getReport({reportSource: 'FullReportDetails', parameterType : true, R_reportName: routeParams.name}, function(data){
var prevId = -1;
var currId;
var tmpParameters;
for (var i in data.data )
{
currId = data.data[i].row[0]
if (currId != prevId)
{
tmpParameters = [];
if (!(data.data[i].row[5] == null))
{
tmpParam = [];
tmpParam.push(data.data[i].row[6]);
tmpParam.push(data.data[i].row[7]);
tmpParameters.push(tmpParam);
}
tmpRow = {
id: data.data[i].row[0],
name: data.data[i].row[1],
type: data.data[i].row[2],
subtype: data.data[i].row[3],
category: data.data[i].row[4],
parameters: tmpParameters
}
scope.pentahoReportDetail.push(tmpRow);
prevId = currId;
}
else
{
tmpParam = [];
tmpParam.push(data.data[i].row[6]);
tmpParam.push(data.data[i].row[7]);
scope.pentahoReportDetail[(scope.pentahoReportDetail.length - 1)].parameters.push(tmpParam);
}
}
});
}
function getSuccuessFunction (paramData) {
var tempDataObj = new Object();
var successFunction = function(data) {
var selectData = [];
var isExistedRecord = false;
for (var i in data.data ) {
selectData.push({id: data.data[i].row[0], name: data.data[i].row[1]});
}
for (var i in scope.reportParams ) {
if (scope.reportParams[i].name == paramData.name) {
scope.reportParams[i].selectOptions = selectData;
isExistedRecord = true;
}
}
if (!isExistedRecord) {
paramData.selectOptions = selectData;
scope.reportParams.push(paramData);
}
};
return successFunction;
}
function intializeParams (paramData, params) {
params.reportSource = paramData.name;
params.parameterType = true;
var successFunction = getSuccuessFunction(paramData);
resourceFactory.runReportsResource.getReport(params, successFunction);
}
scope.getDependencies = function (paramData) {
for (var i = 0; i < scope.reqFields.length; i++) {
var temp = scope.reqFields[i];
if (temp.parentParameterName == paramData.name) {
if (temp.displayType == 'select') {
var parentParamValue = this.formData[paramData.inputName];
if (parentParamValue != undefined) {
eval("var params={};params." + paramData.inputName + "='" + parentParamValue + "';");
intializeParams(temp, params);
}
} else if (temp.displayType == 'date') {
scope.reportDateParams.push(temp);
}
}
}
};
scope.checkStatus = function () {
var collapsed = false;
if (scope.isCollapsed) {
collapsed = true;
}
return collapsed;
};
function buildReportParms() {
var paramCount = 1;
var reportParams = "";
for (var i = 0; i < scope.reqFields.length; i++) {
var reqField = scope.reqFields[i];
for (var j = 0; j < scope.pentahoReportDetail.length; j++) {
var tempParam = scope.pentahoReportDetail[j];
for (var k = 0; k < tempParam.parameters.length; k++) {
if (reqField.name == tempParam.parameters[k][1]) {
var paramName = "R_"+tempParam.parameters[k][0];
if (paramCount > 1) reportParams += "&"
reportParams += encodeURIComponent(paramName) + "=" + encodeURIComponent(scope.formData[scope.reqFields[i].inputName]);
paramCount = paramCount + 1;
}
}
}
}
return reportParams;
}
scope.runReport = function (){
scope.isCollapsed=true;
switch(scope.reportType)
{
case "Table":
scope.hideTable=false;
scope.hidePentahoReport = true;
scope.formData.reportSource = scope.reportName;
resourceFactory.runReportsResource.getReport(scope.formData, function(data){
scope.reportData.columnHeaders = data.columnHeaders;
scope.reportData.data = data.data;
});
break;
case "Pentaho":
scope.hideTable=true;
scope.hidePentahoReport = false;
scope.baseURL = "https://demo.openmf.org/mifosng-provider/api/v1/runreports/" + encodeURIComponent(scope.reportName);
scope.baseURL += "?output-type="+encodeURIComponent(scope.formData.outputType)+"&tenantIdentifier=default";
var inQueryParameters = buildReportParms();
if (inQueryParameters > "") scope.baseURL += "&" + inQueryParameters;
break;
default:
alert("System Error: Unknown Report Type: " + scope.reportType);
}
};
}
});
mifosX.ng.application.controller('RunReportsController', ['$scope', '$routeParams', 'ResourceFactory', '$location', mifosX.controllers.RunReportsController]).run(function($log) {
$log.info("RunReportsController initialized");
});
}(mifosX.controllers || {}));

View File

@ -0,0 +1,51 @@
(function(module) {
mifosX.controllers = _.extend(module, {
ViewReportsController: function(scope, routeParams, resourceFactory, location) {
scope.reports = [];
if (routeParams.type == 'all') {
resourceFactory.runReportsResource.get({reportSource: 'FullReportList', parameterType : true, genericResultSet : false}, function(data){
scope.reports = scope.getReports(data);
});
} else if (routeParams.type == 'clients') {
resourceFactory.runReportsResource.get({reportSource: 'reportCategoryList', R_reportCategory:'Client', parameterType : true, genericResultSet : false}, function(data){
scope.reports = scope.getReports(data);
});
} else if (routeParams.type == 'loans') {
resourceFactory.runReportsResource.get({reportSource: 'reportCategoryList', R_reportCategory:'Loan', parameterType : true, genericResultSet : false}, function(data){
scope.reports = scope.getReports(data);
});
} else if (routeParams.type == 'funds') {
resourceFactory.runReportsResource.get({reportSource: 'reportCategoryList', R_reportCategory:'Fund', parameterType : true, genericResultSet : false}, function(data){
scope.reports = scope.getReports(data);
});
} else if (routeParams.type == 'accounting') {
resourceFactory.runReportsResource.get({reportSource: 'reportCategoryList', R_reportCategory:'Accounting', parameterType : true, genericResultSet : false}, function(data){
scope.reports = scope.getReports(data);
});
}
// Remove the duplicate entries from the array. The reports api returns same report multiple times if it have more than one parameter.
scope.getReports = function(data){
var prevId = -1;
var currId;
var reports = [];
for (var i = 0; i < data.length; i++) {
currId = data[i].report_id;
if (currId != prevId) {
reports.push(data[i]);
};
prevId = currId;
}
return reports;
};
}
});
mifosX.ng.application.controller('ViewReportsController', ['$scope', '$routeParams', 'ResourceFactory', '$location', mifosX.controllers.ViewReportsController]).run(function($log) {
$log.info("ViewReportsController initialized");
});
}(mifosX.controllers || {}));

View File

@ -0,0 +1,17 @@
(function(module) {
mifosX.controllers = _.extend(module, {
AddCodeController: function(scope, resourceFactory, location) {
scope.submit = function() {
resourceFactory.codeResources.save(this.formData,function(data){
location.path('/viewcode/'+data.resourceId);
});
};
}
});
mifosX.ng.application.controller('AddCodeController', ['$scope', 'ResourceFactory', '$location', mifosX.controllers.AddCodeController]).run(function($log) {
$log.info("AddCodeController initialized");
});
}(mifosX.controllers || {}));

View File

@ -0,0 +1,22 @@
(function(module) {
mifosX.controllers = _.extend(module, {
ViewCodeController: function(scope, routeParams , resourceFactory, location ) {
scope.codevalues = [];
resourceFactory.codeResources.get({codeId: routeParams.id} , function(data) {
scope.code = data;
});
resourceFactory.codeValueResource.getAllCodeValues({codeId: routeParams.id} , function(data) {
scope.codevalues = data;
});
scope.delcode = function(){
resourceFactory.codeResources.remove({codeId: routeParams.id},this.code,function(data){
location.path('/codes');
});
}
}
});
mifosX.ng.application.controller('ViewCodeController', ['$scope', '$routeParams','ResourceFactory','$location', mifosX.controllers.ViewCodeController]).run(function($log) {
$log.info("ViewCodeController initialized");
});
}(mifosX.controllers || {}));

View File

@ -45,7 +45,20 @@ define(['underscore', 'mifosX'], function() {
'accounting/ViewTransactionController',
'accounting/JournalEntryController',
'accounting/SearchTransactionController',
'accounting/AccountingClosureController'
'accounting/AccountingClosureController',
'accounting/AccountingRuleController',
'accounting/AccCreateRuleController',
'accounting/AccEditRuleController',
'accounting/ViewAccRuleController',
'system/CodeController',
'system/EditCodeController',
'system/ViewCodeController',
'system/AddCodeController',
'organization/HolController',
'organization/ViewHolController',
'organization/AddHolController',
'reports/ViewReportsController',
'reports/RunReportsController'
],
filters: [
'StatusLookup'

View File

@ -138,6 +138,45 @@
})
.when('/closedaccountingDetails/:officeId', {
templateUrl: 'views/accounting/view_close_accounting.html'
})
.when('/accounting_rules', {
templateUrl: 'views/accounting/accounting_rules.html'
})
.when('/viewaccrule/:id', {
templateUrl: 'views/accounting/view_acc_rule.html'
})
.when('/add_accrule', {
templateUrl: 'views/accounting/add_acc_rule.html'
})
.when('/editaccrule/:id', {
templateUrl: 'views/accounting/edit_acc_rule.html'
})
.when('/viewcode/:id', {
templateUrl: 'views/system/viewcode.html'
})
.when('/addcode', {
templateUrl: 'views/system/addcode.html'
})
.when('/codes', {
templateUrl: 'views/system/codes.html'
})
.when('/editcode/:id', {
templateUrl: 'views/system/editcode.html'
})
.when('/holidays', {
templateUrl: 'views/organization/holidays.html'
})
.when('/createholiday', {
templateUrl: 'views/organization/createholiday.html'
})
.when('/viewholiday/:id', {
templateUrl: 'views/organization/viewholiday.html'
})
.when('/reports/:type', {
templateUrl: 'views/reports/view_reports.html'
})
.when('/run_report/:name', {
templateUrl: 'views/reports/run_reports.html'
});
$locationProvider.html5Mode(false);

View File

@ -126,13 +126,8 @@
getAllHols: {method: 'GET', params: {}, isArray: true}
}),
holValueResource: defineResource(apiVer + "/holidays/:holId", {holId:'@holId'}, {
getholvalues: {method: 'GET', params: {}, isArray:true},
getholvalues: {method: 'GET', params: {}}
})
};
}];
}

View File

@ -0,0 +1,28 @@
<div>
<ul class="breadcrumb">
<li><a href="#/accounting">{{'link.accounting' | translate}}</a> <span class="divider">/</span></li>
<li class="active">{{'label.accountingrules' | translate}}</li>
</ul>
</div>
<div class="row alert-block span" >
<div class="span4 pull-right">
<a href="#/add_accrule" class="btn btn-primary"><i class="icon-plus icon-white"></i> {{"button.addrule" | translate}}</a>
</div>
</div>
<div class="row alert-block span" ng-controller="AccountingRuleController">
<table class="table" ui:sortable>
<thead>
<tr>
<th>Name</th>
<th>Office</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="rule in rules">
<td><a href="#/viewaccrule/{{rule.id}}">{{rule.name}}</a></td>
<td>{{rule.officeName}}</td>
</tr>
</tbody>
</table>
</div>

View File

@ -0,0 +1,95 @@
<div class="paddedbottom10">
<ul class="breadcrumb">
<li><a href="#/accounting">{{'link.accounting' | translate}}</a> <span class="divider">/</span></li>
<li><a href="#/accounting_rules">{{'label.accountingrules' | translate}}</a> <span class="divider">/</span></li>
<li class="active">{{'button.addrule' | translate}}</li>
</ul>
</div>
<form class="form-horizontal well" ng-controller="AccCreateRuleController" ng-submit="submit()">
<fieldset>
<legend>{{ 'label.accounting.rule.title' | translate }}</legend>
<div class="control-group">
<label class="control-label" for="name">{{ 'label.accounting.rule.name' | translate }}</label>
<div class="controls">
<input type="text" class="input-xlarge" id="name" ng-model="formData.name">
</div>
</div>
<div class="control-group info">
<label class="control-label" for="officeId">{{ 'label.office' | translate }}</label>
<div class="controls">
<select class="input-xlarge" ng-model="formData.office">
<option ng-repeat="office in offices" value="{{office.id}}">{{office.name}}</option>
</select>
</div>
</div>
<div class="control-group">
<label class="control-label" for="description">{{ 'label.description' | translate }}</label>
<div class="controls">
<input type="text" class="input-xlarge" ng-model="formData.description">
</div>
</div>
<div class="control-group">
<label class="control-label">{{ 'label.journalentry.effected.entries' | translate }}</label>
<div class="controls">
<table width="100%">
<tr>
<td width="50%">
<strong>{{ 'label.journalentry.credit' | translate }}</strong>
</td>
<td width="50%">
<strong>{{ 'label.journalentry.debit' | translate }}</strong>
</td>
</tr>
<tr>
<td width="50%">
<span>{{ 'label.credit.rule.type' | translate }}</span> &nbsp;
<input type="radio" ng-model="creditRuleType" value="Account" ng-change="resetCredits()">Account &nbsp;&nbsp;&nbsp;
<input type="radio" ng-model="creditRuleType" value="tags" ng-change="resetCredits()">Tags
</td>
<td width="50%">
<span>{{ 'label.debit.rule.type' | translate }}</span>&nbsp;
<input type="radio" ng-model="debitRuleType" value="Account" ng-change="resetDebits()">Account &nbsp;&nbsp;&nbsp;
<input type="radio" ng-model="debitRuleType" value="tags" ng-change="resetDebits()">Tags
</td>
</tr>
<tr>
<td>
<div ng-show="creditRuleType=='Account'">
<select class="input-medium" ng-model="formData.accountToCredit" ng-options="creditAccount.name for creditAccount in glAccounts" ></select>
</div>
<div ng-show="creditRuleType=='tags'">
<label for="allowMultipleCreditEntries">{{ 'label.allowMultipleCreditEntries' | translate}}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="checkbox" ng-model="formData.allowMultipleCreditEntries"></label>
<select class="input-medium" ng-model="formData.creditTagTemplate" ng-options="creditTag.name for creditTag in creditTagOptions" ></select>
&nbsp; <a ng-click="addCreditTag()">&nbsp;<i class="icon-plus icon-white"></i></a>
<br>
<div ng-repeat="crTag in formData.creditTags">
<input type="text" class="input-medium" ng-model="crTag.name" readonly>
<a ng-click="removeCrTag($index)">&nbsp;<i class="icon-remove icon-white"></i></a>
</div>
</div>
</td>
<td>
<div ng-show="debitRuleType=='Account'">
<select class="input-medium" ng-model="formData.accountToDebit" ng-options="debitAccount.name for debitAccount in glAccounts" ></select>
</div>
<div ng-show="debitRuleType=='tags'">
<label for="allowMultipleDebitEntries">{{ 'label.allowMultipleDebitEntries' | translate}}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="checkbox" ng-model="formData.allowMultipleDebitEntries"></label>
<select class="input-medium" ng-model="formData.debitTagTemplate" ng-options="debitTag.name for debitTag in debitTagOptions" ></select>
&nbsp; <a ng-click="addDebitTag()">&nbsp;<i class="icon-plus icon-white"></i></a>
<br>
<div ng-repeat="dbTag in formData.debitTags">
<input type="text" class="input-medium" ng-model="dbTag.name" readonly>
<a ng-click="removeDebitTag($index)">&nbsp;<i class="icon-remove icon-white"></i></a>
</div>
</div>
</td>
</tr>
</table>
</div>
</div>
<div class="form-actions">
<button type="reset" class="btn">{{ 'label.cancel' | translate }}</button>
<button type="submit" class="btn btn-primary">{{ 'label.save' | translate }}</button>
</div>
</fieldset>
</form>

View File

@ -0,0 +1,98 @@
<div ng-controller="AccEditRuleController">
<div class="paddedbottom10">
<ul class="breadcrumb">
<li><a href="#/accounting">{{'link.accounting' | translate}}</a> <span class="divider">/</span></li>
<li><a href="#/accounting_rules">{{'label.accountingrules' | translate}}</a> <span class="divider">/</span></li>
<li><a href="#/viewaccrule/{{accountingRuleId}}">{{formData.name}}</a> <span class="divider">/</span></li>
<li class="active">{{'label.accounting.rule.edit.title' | translate}}</li>
</ul>
</div>
<form class="form-horizontal well" ng-submit="submit()">
<fieldset>
<legend>{{ 'label.accounting.rule.edit.title' | translate }}</legend>
<div class="control-group">
<label class="control-label" for="name">{{ 'label.accounting.rule.name' | translate }}</label>
<div class="controls">
<input type="text" class="input-xlarge" id="name" ng-model="formData.name">
</div>
</div>
<div class="control-group info">
<label class="control-label" for="office">{{ 'label.office' | translate }}</label>
<div class="controls">
<select class="input-xlarge" ng-model="formData.office">
<option ng-repeat="office in offices" value="{{office.id}}">{{office.name}}</option>
</select>
</div>
</div>
<div class="control-group">
<label class="control-label" for="description">{{ 'label.description' | translate }}</label>
<div class="controls">
<input type="text" class="input-xlarge" ng-model="formData.description">
</div>
</div>
<div class="control-group">
<label class="control-label">{{ 'label.journalentry.effected.entries' | translate }}</label>
<div class="controls">
<table width="100%">
<tr>
<td width="50%">
<strong>{{ 'label.journalentry.credit' | translate }}</strong>
</td>
<td width="50%">
<strong>{{ 'label.journalentry.debit' | translate }}</strong>
</td>
</tr>
<tr>
<td width="50%">
<span>{{ 'label.credit.rule.type' | translate }}</span> &nbsp;
<input type="radio" ng-model="creditRuleType" value="Account" ng-change="resetCredits()">Account &nbsp;&nbsp;&nbsp;
<input type="radio" ng-model="creditRuleType" value="tags" ng-change="resetCredits()">Tags
</td>
<td width="50%">
<span>{{ 'label.debit.rule.type' | translate }}</span>&nbsp;
<input type="radio" ng-model="debitRuleType" value="Account" ng-change="resetDebits()">Account &nbsp;&nbsp;&nbsp;
<input type="radio" ng-model="debitRuleType" value="tags" ng-change="resetDebits()">Tags
</td>
</tr>
<tr>
<td>
<div ng-show="creditRuleType=='Account'">
<select class="input-medium" ng-model="formData.accountToCredit" ng-options="creditAccount.name for creditAccount in glAccounts" ></select>
</div>
<div ng-show="creditRuleType=='tags'">
<label for="allowMultipleCreditEntries">{{ 'label.allowMultipleCreditEntries' | translate}}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="checkbox" ng-model="formData.allowMultipleCreditEntries"></label>
<select class="input-medium" ng-model="formData.creditTagTemplate" ng-options="creditTag.name for creditTag in creditTagOptions" ></select>
&nbsp; <a ng-click="addCreditTag()">&nbsp;<i class="icon-plus icon-white"></i></a>
<br>
<div ng-repeat="crTag in formData.creditTags">
<input type="text" class="input-medium" ng-model="crTag.name" readonly>
<a ng-click="removeCrTag($index)">&nbsp;<i class="icon-remove icon-white"></i></a>
</div>
</div>
</td>
<td>
<div ng-show="debitRuleType=='Account'">
<select class="input-medium" ng-model="formData.accountToDebit" ng-options="debitAccount.name for debitAccount in glAccounts" ></select>
</div>
<div ng-show="debitRuleType=='tags'">
<label for="allowMultipleDebitEntries">{{ 'label.allowMultipleDebitEntries' | translate}}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="checkbox" ng-model="formData.allowMultipleDebitEntries"></label>
<select class="input-medium" ng-model="formData.debitTagTemplate" ng-options="debitTag.name for debitTag in debitTagOptions" ></select>
&nbsp; <a ng-click="addDebitTag()">&nbsp;<i class="icon-plus icon-white"></i></a>
<br>
<div ng-repeat="dbTag in formData.debitTags">
<input type="text" class="input-medium" ng-model="dbTag.name" readonly>
<a ng-click="removeDebitTag($index)">&nbsp;<i class="icon-remove icon-white"></i></a>
</div>
</div>
</td>
</tr>
</table>
</div>
</div>
<div class="form-actions">
<button type="reset" class="btn">{{ 'label.cancel' | translate }}</button>
<button type="submit" class="btn btn-primary">{{ 'label.save' | translate }}</button>
</div>
</fieldset>
</form>
</div>

View File

@ -0,0 +1,54 @@
<div ng-controller="ViewAccRuleController">
<div class="paddedbottom10">
<ul class="breadcrumb">
<li><a href="#/accounting">{{'link.accounting' | translate}}</a> <span class="divider">/</span></li>
<li><a href="#/accounting_rules">{{'label.accountingrules' | translate}}</a> <span class="divider">/</span></li>
<li class="active">{{rule.name}}</li>
</ul>
</div>
<div>
<div class="pull-right">
<div class="btn-group">
<a href="#/editaccrule/{{rule.id}}" class="btn btn-primary"><i class="icon-edit icon-white"></i> Edit</a>
<a class="btn btn-primary" ng-click="deleteRule()"><i class="icon-trash icon-white"></i> Delete</a>
</div>
</div>
</div>
<div class="row paddedleft">
<h3>{{rule.name}}</h3>
<label>{{ 'label.office' | translate }}&nbsp;{{rule.officeName}}</label>
<label>{{ 'label.description' | translate }}&nbsp;{{rule.description}}</label>
<hr/>
<table width="100%">
<thead>
<th>{{ 'label.credit.account.details' | translate }}</th>
<th align="left">{{ 'label.debit.account.details' | translate }}</th>
</thead>
<tbody>
<tr>
<td>
<table align="center">
<tr ng-repeat="crAccount in rule.creditAccounts">
<td>{{crAccount.name}}({{crAccount.glCode}})</td>
</tr>
<tr ng-repeat="creditTag in rule.creditTags">
<td>{{creditTag.tag.name}}</td>
</tr>
</table>
</td>
<td>
<table align="left">
<tr ng-repeat="dbAccount in rule.debitAccounts">
<td>{{dbAccount.name}}({{dbAccount.glCode}})</td>
</tr>
<tr ng-repeat="debitTag in rule.debitTags">
<td>{{debitTag.tag.name}}</td>
</tr>
</table>
</td>
</tr>
</tbody>
</table>
</div>
</div>

View File

@ -0,0 +1,80 @@
<div class="paddedbottom10">
<ul class="breadcrumb">
<li><a href="#/organization">{{'link.admin.organisation' | translate}}</a> <span class="divider">/</span></li>
<li><a href="#/holidays">{{'label.manageholidays' | translate}}</a> <span class="divider">/</span></li>
<li class="active">{{'label.createholiday' | translate}}</li>
</ul>
</div>
<form class="form-horizontal well" ng-controller="AddHolController" ng-submit="submit()">
<fieldset>
<legend>{{'label.createholiday' | translate}}</legend>
<table>
<tr>
<td>
<div class="control-group">
<label class="control-label" for="name">{{ 'label.holiday.name' | translate }}</label>
<div class="controls">
<input type="text" class="input-xlarge" ng-model="formData.name">
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="control-group">
<label class="control-label" for="office">{{ 'label.holiday.applicableoffices' | translate }}</label>
<div class="controls">
<select multiple class="input-xlarge" ng-model="formData.officeId">
<option ng-repeat="office in offices" value="{{office.id}}">{{office.name}}</option>
</select>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="control-group">
<div class="span4 pull-left">
<div>
<label class="control-label" for="fromdate">{{ 'label.holiday.fromdate' | translate }}</label>
<div class="controls">
<input type="text" data-ng-model="formData.fromDate"/>
</div></div>
<div>
<label class="control-label" for="todate">{{ 'label.holiday.todate' | translate }}</label>
<div class="controls">
<input type="text" data-ng-model="formData.toDate"/>
</div>
</div>
</div>
</div>
</td>
</tr>
<td>
<div class="control-group">
<label class="control-label" for="fromdate">{{ 'label.holiday.repaymentsheduleto' | translate }}</label>
<div class="controls">
<input type="text" data-ng-model="formData.repaymentsRescheduledTo"/>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="control-group">
<label class="control-label" for="fromdate">{{ 'label.holiday.desc' | translate }}</label>
<div class="controls">
<input type="text" data-ng-model="formData.description"/>
</div>
</div>
</td>
</tr>
</table>
<div class="form-actions">
<a href="#/managehol" class="btn btn-primary">Cancel</a>
<button type="submit" class="btn btn-primary">Save</button>
</div>
</fieldset>
</form>

View File

@ -0,0 +1,34 @@
<div>
<ul class="breadcrumb">
<li><a href="#/organization">{{'link.admin.organisation' | translate}}</a> <span class="divider">/</span></li>
<li class="active">{{'label.manageholidays' | translate}}</li>
</ul>
</div>
<div class="row alert-block span">
<input ng-model="filterText" type="text" class="form-control" placeholder="Filter by Office Name"/>
<div class="span4 pull-right">
<a href="#/createholiday" class="btn btn-primary"><i class="icon-plus icon-white"></i>{{'label.createholiday' | translate}}</a>
</div>
</div>
<div class="row alert-block span" data-ng-controller="HolController">
<table class="table" ui:sortable>
<thead>
<tr>
<th>Holiday Name</th>
<th>Start Date</th>
<th>End Date</th>
<th>Alternate Working Day</th>
</tr>
</thead>
<tbody>
<tr data-ng-repeat="holiday in holidays | filter:filterText">
<td><a href="#/viewholiday/{{holiday.id}}">{{holiday.name}}</a></td>
<td>{{holiday.fromDate}}</td>
<td>{{holiday.toDate}}</td>
<td>{{holiday.repaymentsScheduleTO}}</td>
</tr>
</tbody>
</table>
</div>

View File

@ -0,0 +1,32 @@
<div ng-controller="ViewHolController">
<h3>{{holiday.name}}</h3>
<h3>Include Description Here</h3>
<table >
<tr>
<td>{{ 'label.holiday.name' | translate }}</td>
<td>{{holiday.name}}</td>
</tr>
<tr>
<td>{{ 'label.holiday.fromdate' | translate }}</td>
<td>{{holiday.fromDate}}</td>
</tr>
<tr>
<td>{{ 'label.holiday.todate' | translate }}</td>
<td>{{holiday.toDate}}</td>
</tr>
<tr>
<td>{{ 'label.holiday.repaymentsheduleto' | translate }}</td>
<td>{{holiday.repaymentsScheduleTO}}</td>
</tr>
</table>
<table>
<thead>
<tr>
<td>{{ 'label.holiday.applicableoffices' | translate }}</td>
</tr>
</thead>
<tr >
<td>Include applicable offices here</td>
</tr>
</table>
</div>

View File

@ -0,0 +1,58 @@
<div class="row alert-block form-horizontal span" ng-controller="RunReportsController">
<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>
<div collapse="isCollapsed" class="row alert-block span">
<br>
<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>
<option ng-show="reportParam.selectAll == 'Y'" value="-1">All</option>
<option ng-repeat="selectOption in reportParam.selectOptions" value="{{selectOption.id}}">{{selectOption.name}}</option>
</select>
</div>
</div>
<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" ng-model="formData[reportDateParam.inputName]" />
</div>
</div>
<div class="control-group info" ng-show="reportType == 'Pentaho'" >
<label class="control-label" for="outputType">{{ 'label.report.output.type' | translate }}</label>
<div class="controls">
<select class="input-xlarge" ng-model="formData.outputType">
<option value="HTML">Show Report</option>
<option value="XLS">Export Excel Format</option>
<option value="CSV">Export CSV Format</option>
<option value="PDF">PDF Format</option>
</select>
</div>
</div>
<span><a ng-click="runReport()" class="btn btn-primary control"><i class="icon-play icon-white"></i>&nbsp;&nbsp;Run</a></span>
</div>
<div collapse="hideTable" class="row alert-block span tab-content">
<br>
<table class="table table-striped">
<thead>
<tr class="graybg">
<th ng-repeat="columnHeader in reportData.columnHeaders" >{{columnHeader.columnName}}</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="row in reportData.data" >
<td ng-repeat="col in row.row" >{{col}}</td>
</tr>
</tbody>
</table>
</div>
<div collapse="hidePentahoReport" class="row alert-block span tab-content">
<br>
<iframe id=rptLoadingFrame src="{{baseURL}}" frameborder="0" width="100%" height="600px"></iframe>';
</div>
</div>

View File

@ -0,0 +1,22 @@
<div class="row alert-block span" >
<input ng-model="filterText" type="text" class="form-control input-xxlarge" placeholder="Filter by name">
</div>
<div class="row alert-block span" ng-controller="ViewReportsController">
<table class="table" ui:sortable>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Category</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="report in reports | filter:filterText">
<td><a href="#/run_report/{{report.report_name}}?type={{report.report_type}}">{{report.report_name}}</a></td>
<td>{{report.report_type}}</td>
<td>{{report.report_category}}</td>
</tr>
</tbody>
</table>
</div>

View File

@ -0,0 +1,23 @@
<div class="paddedbottom10">
<ul class="breadcrumb">
<li><a href="#/system">{{'link.admin.system' | translate}}</a> <span class="divider">/</span></li>
<li><a href="#/codes">{{'label.managecodes' | translate}}</a> <span class="divider">/</span></li>
<li class="active">{{'label.addcode' | translate}}</li>
</ul>
</div>
<form class="form-horizontal well" ng-controller="AddCodeController" ng-submit="submit()">
<fieldset>
<legend>{{'label.addcode' | translate}}</legend>
<div>
<label class="control-label" for="codename">Code Name</label>
<div class="controls">
<input type="text" class="input-xlarge" id="codename" ng-model="formData.name">
</div>
</div>
<div class="form-actions">
<a href="#/codes" class="btn btn-primary">Cancel</a>
<button type="submit" class="btn btn-primary">Save</button>
</div>
</fieldset>
</form>

View File

@ -0,0 +1,29 @@
<div class="paddedbottom10">
<ul class="breadcrumb">
<li><a href="#/system">{{'link.admin.system' | translate}}</a> <span class="divider">/</span></li>
<li class="active">{{'label.managecodes' | translate}}</li>
</ul>
</div>
<div class="span4 pull-right">
<a href="#/addcode" class="btn btn-primary"><i class="icon-plus icon-white"></i>Add Code</a>
</div>
<div class="row alert-block span" data-ng-controller="CodeController">
<table class="table" ui:sortable>
<thead>
<tr>
<th>CodeName</th>
<th>System Defined</th>
</tr>
</thead>
<tbody>
<tr data-ng-repeat="code in codes">
<td><a href="#/viewcode/{{code.id}}">{{code.name}}</a></td>
<td>{{code.systemDefined}}</td>
</tr>
</tbody>
</table>
</div>

View File

@ -0,0 +1,24 @@
<div 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>
<li><a href="#/codes">{{'label.managecodes' | translate}}</a> <span class="divider">/</span></li>
<li><a href="#/viewcode/{{codeId}}">{{code.name}}</a> <span class="divider">/</span></li>
<li class="active">{{'label.editcode' | translate}}</li>
</ul>
</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>Add</a>
</form>
<div data-ng-repeat="codevalue in codevalues">
<input disabled="" placeholder={{codevalue.name}} type="text"/>&nbsp;&nbsp;<input disabled="" placeholder={{codevalue.position}}
type="text"/>&nbsp;&nbsp;<a ng-click='deleteCv(codevalue.id)'><i class="icon-remove"></i></a>
</div>
<div class="pull-right" data-ng-show="stat">
<p>{{ 'error.delete.failed' | translate }}</p>
</div>
</div>

View File

@ -0,0 +1,36 @@
<div ng-controller="ViewCodeController">
<div class="paddedbottom10">
<ul class="breadcrumb">
<li><a href="#/system">{{'link.admin.system' | translate}}</a> <span class="divider">/</span></li>
<li><a href="#/codes">{{'label.managecodes' | translate}}</a> <span class="divider">/</span></li>
<li class="active">{{code.name}}</li>
</ul>
</div>
<div class="row">
<div class="pull-right">
<div class="btn-group">
<a href="#/editcode/{{code.id}}" class="btn btn-primary"><i class="icon-edit icon-white"></i> Edit</a>
<a data-ng-click="delcode()" class="btn btn-primary" ng-show="code.systemDefined == false"><i class="icon-trash icon-white"></i> Delete</a></div>
</div>
</div>
<div class="row paddedleft">
<h3>{{code.name}}</h3>
<div>
<table class="table" ui:sortable>
<thead>
<tr>
<th>{{ 'label.name1' | translate }}</th>
<th>{{ 'label.position' | translate }}</th>
</tr>
</thead>
<tbody>
<tr data-ng-repeat="codevalue in codevalues">
<td>{{codevalue.name}}</td>
<td>{{codevalue.position}}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>