mirror of
https://github.com/openMF/community-app.git
synced 2026-02-06 15:16:51 +00:00
Groups changes for MIFOSX-1482
This commit is contained in:
parent
14143bf949
commit
82487ae4bb
@ -153,6 +153,7 @@
|
||||
"label.button.undotransfer": "Undo Transfer",
|
||||
"label.button.deleteall": "Delete All",
|
||||
"label.button.add": "Add",
|
||||
"label.button.back": "Back",
|
||||
"label.button.attendance": "Attendance",
|
||||
"label.button.unassign": "Unassign",
|
||||
"label.button.advancesearch": "Advance Search",
|
||||
@ -557,6 +558,8 @@
|
||||
"label.heading.creategroup": "Create Group",
|
||||
"label.heading.editgroup": "Edit Group",
|
||||
"label.heading.managemembers": "Manage Members",
|
||||
"label.heading.associatenewmembers": "Associate New Members",
|
||||
"label.heading.groupmembers": "Group Members",
|
||||
"label.heading.transferclientsbetweengroups": "Transfer Client between Groups",
|
||||
"label.heading.destinationgroupdetails": "Destination Group Details",
|
||||
"label.heading.nextmeetingon": "Next Meeting on",
|
||||
@ -592,6 +595,7 @@
|
||||
"label.input.selectedclients": "Selected clients",
|
||||
"label.input.inheritgrouploanofficer": "Inherit group loan officer",
|
||||
"label.input.destinationgroup": "Destination group",
|
||||
"label.input.searchformember": "Search for a Member",
|
||||
|
||||
"#Buttons": "..",
|
||||
"label.button.creategroup": "Create Group",
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
(function (module) {
|
||||
mifosX.controllers = _.extend(module, {
|
||||
MemberManageController: function (scope, routeParams, route, location, resourceFactory) {
|
||||
MemberManageController: function (scope, routeParams, route, location, resourceFactory, $modal) {
|
||||
scope.group = [];
|
||||
scope.addedClients = [];
|
||||
scope.formData = {};
|
||||
|
||||
scope.viewClient = function (item) {
|
||||
scope.client = item;
|
||||
@ -17,53 +15,46 @@
|
||||
scope.allClients = data.clientOptions;
|
||||
scope.allMembers = data.clientMembers;
|
||||
});
|
||||
|
||||
|
||||
scope.add = function () {
|
||||
if(scope.available != ""){
|
||||
var temp = {};
|
||||
temp.id = scope.available.id;
|
||||
temp.displayName = scope.available.displayName;
|
||||
scope.addedClients.push(temp);
|
||||
}
|
||||
if(scope.available != ""){
|
||||
scope.associate = {};
|
||||
scope.associate.clientMembers = [];
|
||||
scope.associate.clientMembers[0] = scope.available.id;
|
||||
console.log(scope.associate);
|
||||
resourceFactory.groupResource.save({groupId: routeParams.id, command: 'associateClients'}, scope.associate, function (data) {
|
||||
var temp = {};
|
||||
temp.id = scope.available.id;
|
||||
temp.displayName = scope.available.displayName;
|
||||
scope.allMembers.push(temp);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
scope.sub = function (id) {
|
||||
for (var i = 0; i < scope.addedClients.length; i++) {
|
||||
if (scope.addedClients[i].id == id) {
|
||||
scope.addedClients.splice(i, 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
scope.remove = function (id) {
|
||||
$modal.open({
|
||||
templateUrl: 'delete.html',
|
||||
controller: MemberDeleteCtrl
|
||||
});
|
||||
scope.disassociate = {};
|
||||
scope.disassociate.clientMembers = [];
|
||||
scope.disassociate.clientMembers.push(id);
|
||||
console.log(scope.disassociate);
|
||||
resourceFactory.groupResource.save({groupId: routeParams.id, command: 'disassociateClients'}, scope.disassociate, function (data) {
|
||||
scope.allMembers.splice(0, 1);
|
||||
});
|
||||
};
|
||||
|
||||
scope.submit = function () {
|
||||
scope.formData.clientMembers = [];
|
||||
if(scope.addedClients.length > 0){
|
||||
for (var i in scope.addedClients) {
|
||||
scope.formData.clientMembers[i] = scope.addedClients[i].id;
|
||||
}
|
||||
resourceFactory.groupResource.save({groupId: routeParams.id, command: 'associateClients'}, scope.formData, function (data) {
|
||||
location.path('/viewgroup/' + scope.group.id);
|
||||
var MemberDeleteCtrl = function ($scope, $modalInstance) {
|
||||
$scope.delete = function () {
|
||||
resourceFactory.groupResource.save({groupId: routeParams.id, command: 'disassociateClients'}, scope.disassociate, function (data) {
|
||||
scope.allMembers.splice(0, 1);
|
||||
$modalInstance.close('activate');
|
||||
});
|
||||
} else {
|
||||
location.path('/viewgroup/' + scope.group.id);
|
||||
}
|
||||
};
|
||||
$scope.cancel = function () {
|
||||
$modalInstance.dismiss('cancel');
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
});
|
||||
mifosX.ng.application.controller('MemberManageController', ['$scope', '$routeParams', '$route', '$location', 'ResourceFactory', mifosX.controllers.MemberManageController]).run(function ($log) {
|
||||
mifosX.ng.application.controller('MemberManageController', ['$scope', '$routeParams', '$route', '$location', 'ResourceFactory', '$modal', mifosX.controllers.MemberManageController]).run(function ($log) {
|
||||
$log.info("MemberManageController initialized");
|
||||
});
|
||||
}(mifosX.controllers || {}));
|
||||
|
||||
@ -1306,4 +1306,7 @@ h3.bolder {
|
||||
}
|
||||
.meeting th:first-child{
|
||||
padding-left: 0px;
|
||||
}
|
||||
.thumbnail.row h4 {
|
||||
text-align: center;
|
||||
}
|
||||
@ -4,30 +4,43 @@
|
||||
<li><a href="#/viewgroup/{{group.id}}">{{'label.anchor.viewgroup' | translate}}</a></li>
|
||||
<li class="active">{{'label.anchor.managemembers' | translate}}</li>
|
||||
</ul>
|
||||
<script type="text/ng-template" id="delete.html">
|
||||
<div class="modal-header silver">
|
||||
<h3 class="bolder">{{'label.heading.delete' | translate}}</h3>
|
||||
</div>
|
||||
<div class="modal-body ">
|
||||
<api-validate></api-validate>
|
||||
<br>
|
||||
<button class="btn btn-warning" ng-click="cancel()">{{'label.button.cancel' | translate}}</button>
|
||||
<button class="btn btn-primary" ng-click="delete()">{{'label.button.confirm' | translate}}</button>
|
||||
</div>
|
||||
</script>
|
||||
<api-validate></api-validate>
|
||||
<form name="managemembers" class="form-horizontal well">
|
||||
<fieldset>
|
||||
<legend>{{'label.heading.managemembers' | translate}}</legend>
|
||||
<div class="row">
|
||||
<div class="col-md-5">
|
||||
<div class="col-md-7">
|
||||
<legend>{{'label.heading.associatenewmembers' | translate}}</legend>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-8 col-md-8">
|
||||
<label class="control-label col-sm-4">{{ 'label.input.searchformember' | translate }}</label>
|
||||
<div class="col-sm-4 col-md-4">
|
||||
<input id="expert" type="text" data-ng-model="available"
|
||||
placeholder="{{'label.input.select.groups' | translate }}" class="col-md-4 form-control" typeahead-on-select="viewClient(available)"
|
||||
ng-autofocus="true" typeahead="client as client.displayName for client in allClients | filter:$viewValue | limitTo:8"/>
|
||||
</div>
|
||||
<div class="col-sm-1 col-md-1">
|
||||
<button ng-show="available" type="button" class="btn angled-btn btn-primary" data-ng-click="add()">
|
||||
<i class="icon-plus"></i></button>
|
||||
{{ 'label.button.add' | translate }}
|
||||
<i class="icon-double-angle-right"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div data-ng-show="available" class="col-md-10">
|
||||
<div data-ng-show="available" class="col-md-6 col-md-offset-1">
|
||||
<p>{{'label.heading.groupdetails' | translate}}</p>
|
||||
<table class="table">
|
||||
<tr>
|
||||
<td class="width36">{{'label.heading.name' | translate}}</td>
|
||||
<td class="width60">{{client.displayName}}</td>
|
||||
<td>{{'label.heading.name' | translate}}</td>
|
||||
<td>{{client.displayName}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ 'label.heading.id' | translate }}</td>
|
||||
@ -41,10 +54,11 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="col-md-5">
|
||||
<legend>{{'label.heading.groupmembers' | translate}}</legend>
|
||||
<div class="form-group" ng-repeat="members in allMembers">
|
||||
<div class="col-sm-6 col-md-6">
|
||||
<input disabled="" class="form-control input-xxlarge" placeholder={{members.displayName}}
|
||||
<input disabled="" class="form-control input-xxlarge" placeholder="{{members.displayName}} (Id: {{members.id}})"
|
||||
type="text"/>
|
||||
</div>
|
||||
<div class="col-sm-2 col-md-2">
|
||||
@ -53,26 +67,11 @@
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group" ng-repeat="clients in addedClients">
|
||||
<div class="col-sm-6 col-md-6">
|
||||
<input disabled="" class="form-control input-xxlarge" placeholder={{clients.displayName}}
|
||||
type="text"/>
|
||||
</div>
|
||||
<div class="col-sm-2 col-md-2">
|
||||
<button type="button" class="btn angled-btn btn-primary " data-ng-click="sub(clients.id)">
|
||||
<i class="icon-remove"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-3 col-md-offset-5">
|
||||
<br>
|
||||
<a id="cancel" href="#/viewgroup/{{group.id}}" class="btn btn-default">{{ 'label.button.cancel' | translate }}</a>
|
||||
<button id="save" type="button" class="btn btn-primary" data-ng-click="submit()" has-permission='ASSOCIATECLIENTS_GROUP'>
|
||||
<i class="icon-check-sign icon-white"></i> {{ 'label.button.save' | translate }}
|
||||
</button>
|
||||
<a id="cancel" href="#/viewgroup/{{group.id}}" class="btn btn-default"><i class="icon-double-angle-left"></i> {{ 'label.button.back' | translate }}</a>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
@ -58,7 +58,7 @@
|
||||
<a ng-show="group.active" href="#/newgrouploanaccount/{{group.id}}" class="btn btn-primary" has-permission='CREATE_LOAN'><i
|
||||
class="icon-file icon-white"></i>{{ 'label.button.grouploanapplication' | translate }}</a>
|
||||
<a ng-show="group.active" href="#/newjlgloanaccount/{{group.id}}" has-permission='CREATE_LOAN' class="btn btn-primary"><i
|
||||
class="icon-plus icon-white"></i>{{ 'label.button.bulkjlgloanapplication' | translate }}</a>
|
||||
class="icon-copy icon-white"></i>{{ 'label.button.bulkjlgloanapplication' | translate }}</a>
|
||||
<span class="btn-group dropdown" on-toggle="toggled(open)">
|
||||
<a class="btn btn-primary dropdown-toggle">
|
||||
{{ 'label.button.more' | translate}}
|
||||
@ -350,61 +350,61 @@
|
||||
</div>
|
||||
<div class="col-sm-3 col-md-3">
|
||||
<div class="thumbnail row">
|
||||
<h4><strong>{{group.name}}</strong></h4>
|
||||
<table class="table-minified">
|
||||
<tr data-ng-show="group.activationDate">
|
||||
<th class="table-bold">{{ 'label.heading.activationdate' | translate }}</th>
|
||||
<td><span class="padded-td">{{group.activationDate | DateFormat}}</span></td>
|
||||
</tr>
|
||||
<tr data-ng-show="group.staffName">
|
||||
<th class="table-bold">{{ 'label.heading.staff' | translate }}</th>
|
||||
<td><span class="padded-td">{{group.staffName}}</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr data-ng-show="group.externalId">
|
||||
<th class="table-bold">{{ 'label.input.externalid' | translate }}</th>
|
||||
<td><span class="padded-td">{{group.externalId}}</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr data-ng-show="group.centerName">
|
||||
<td class="table-bold">{{ 'label.heading.center' | translate }}</td>
|
||||
<td><span class="padded-td"><a class="list-group-item-text" href="#/viewcenter/{{group.centerId}}">{{group.centerName}}</a></span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table class="table-minified">
|
||||
<tr>
|
||||
<th class="whitebg" colspan="2">{{ 'label.heading.summary' | translate }}</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{ 'label.numofactiveclient' | translate }}</th>
|
||||
<td>{{summary.activeClients}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{ 'label.numofactivegrouploans' | translate }}</th>
|
||||
<td>{{summary.activeGroupLoans}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{ 'label.numofactiveclientloans' | translate }}</th>
|
||||
<td>{{summary.activeClientLoans}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{ 'label.numofactivegroupborrowers' | translate }}</th>
|
||||
<td>{{summary.activeGroupBorrowers}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{ 'label.numofactiveclientborrowers' | translate }}</th>
|
||||
<td>{{summary.activeClientBorrowers}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{ 'label.numofactiveoverduegrouploans' | translate }}</th>
|
||||
<td>{{summary.overdueGroupLoans}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{ 'label.numofactiveoverdueclientloans' | translate }}</th>
|
||||
<td>{{summary.overdueClientLoans}}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="col-md-12 paddingleft0px">
|
||||
<h4><strong>{{group.name}} {{ 'label.heading.details' | translate }}</strong></h4>
|
||||
<table class="table-minified">
|
||||
<tr data-ng-show="group.activationDate">
|
||||
<th>{{ 'label.heading.activationdate' | translate }}</th>
|
||||
<td><span class="padded-td">{{group.activationDate | DateFormat}}</span></td>
|
||||
</tr>
|
||||
<tr data-ng-show="group.staffName">
|
||||
<th>{{ 'label.heading.staff' | translate }}</th>
|
||||
<td><span class="padded-td">{{group.staffName}}</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr data-ng-show="group.externalId">
|
||||
<th>{{ 'label.input.externalid' | translate }}</th>
|
||||
<td><span class="padded-td">{{group.externalId}}</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr data-ng-show="group.centerName">
|
||||
<td>{{ 'label.heading.center' | translate }}</td>
|
||||
<td><span class="padded-td"><a class="list-group-item-text" href="#/viewcenter/{{group.centerId}}">{{group.centerName}}</a></span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h4><strong>{{ 'label.heading.summary' | translate }}</strong></h4>
|
||||
<table class="table-minified">
|
||||
<tr>
|
||||
<th>{{ 'label.numofactiveclient' | translate }}</th>
|
||||
<td>{{summary.activeClients}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{ 'label.numofactivegrouploans' | translate }}</th>
|
||||
<td>{{summary.activeGroupLoans}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{ 'label.numofactiveclientloans' | translate }}</th>
|
||||
<td>{{summary.activeClientLoans}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{ 'label.numofactivegroupborrowers' | translate }}</th>
|
||||
<td>{{summary.activeGroupBorrowers}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{ 'label.numofactiveclientborrowers' | translate }}</th>
|
||||
<td>{{summary.activeClientBorrowers}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{ 'label.numofactiveoverduegrouploans' | translate }}</th>
|
||||
<td>{{summary.overdueGroupLoans}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{ 'label.numofactiveoverdueclientloans' | translate }}</th>
|
||||
<td>{{summary.overdueClientLoans}}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user