mirror of
https://github.com/openMF/community-app.git
synced 2026-02-06 14:11:54 +00:00
Improvement in groups and manage groups redesigned.
This commit is contained in:
parent
9cf5c6c689
commit
0cba1ba7fe
@ -555,8 +555,7 @@
|
||||
"label.heading.repeatdetails": "Repeat Details",
|
||||
"label.heading.creategroup": "Create Group",
|
||||
"label.heading.editgroup": "Edit Group",
|
||||
"label.heading.associatemembers": "Associate Members",
|
||||
"label.heading.disassociatemembers": "Dissociate Members",
|
||||
"label.heading.managemembers": "Manage Members",
|
||||
"label.heading.transferclientsbetweengroups": "Transfer Client between Groups",
|
||||
"label.heading.destinationgroupdetails": "Destination Group Details",
|
||||
"label.heading.nextmeetingon": "Next Meeting on",
|
||||
@ -598,8 +597,7 @@
|
||||
"label.button.groupsavingapplication": "Group Saving Application",
|
||||
"label.button.grouploanapplication": "Group Loan Application",
|
||||
"label.button.jlgloanapplication": "JLG Loan Application",
|
||||
"label.button.disassociatemember": "Dissociate Member",
|
||||
"label.button.associatemember": "Associate Member",
|
||||
"label.button.managemembers": "Manage Members",
|
||||
"label.button.transferclients": "Transfer Clients",
|
||||
"label.button.attachmeeting": "Attach Meeting",
|
||||
|
||||
@ -2016,6 +2014,7 @@
|
||||
"label.anchor.schedulerjobs": "Scheduler Jobs",
|
||||
"label.anchor.configuration": "Configurations",
|
||||
"label.anchor.addcodevalue":"Add Code Value",
|
||||
"label.anchor.managemembers":"Manage Members",
|
||||
|
||||
"#Inputs": "..",
|
||||
"label.input.entity": "Entity",
|
||||
|
||||
@ -2,8 +2,13 @@
|
||||
mifosX.controllers = _.extend(module, {
|
||||
MemberManageController: function (scope, routeParams, route, location, resourceFactory) {
|
||||
scope.group = [];
|
||||
scope.managecode = routeParams.managecode;
|
||||
scope.addedClients = [];
|
||||
scope.formData = {};
|
||||
|
||||
scope.viewClient = function (item) {
|
||||
scope.client = item;
|
||||
};
|
||||
|
||||
resourceFactory.groupResource.get({groupId: routeParams.id, associations: 'all'}, function (data) {
|
||||
scope.group = data;
|
||||
});
|
||||
@ -13,19 +18,49 @@
|
||||
scope.allMembers = data.clientMembers;
|
||||
});
|
||||
|
||||
scope.associate = function () {
|
||||
resourceFactory.groupResource.save({groupId: routeParams.id, command: 'associateClients'}, this.formData, function (data) {
|
||||
location.path('/viewgroup/' + data.groupId);
|
||||
});
|
||||
|
||||
scope.add = function () {
|
||||
if(scope.available != ""){
|
||||
var temp = {};
|
||||
temp.id = scope.available.id;
|
||||
temp.displayName = scope.available.displayName;
|
||||
scope.addedClients.push(temp);
|
||||
}
|
||||
};
|
||||
|
||||
scope.disassociate = function () {
|
||||
var disassociateMembers = new Object();
|
||||
disassociateMembers.clientMembers = this.formData.clientMembers;
|
||||
resourceFactory.groupResource.save({groupId: routeParams.id, command: 'disassociateClients'}, disassociateMembers, function (data) {
|
||||
location.path('/viewgroup/' + data.groupId);
|
||||
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) {
|
||||
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);
|
||||
});
|
||||
} else {
|
||||
location.path('/viewgroup/' + scope.group.id);
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
});
|
||||
mifosX.ng.application.controller('MemberManageController', ['$scope', '$routeParams', '$route', '$location', 'ResourceFactory', mifosX.controllers.MemberManageController]).run(function ($log) {
|
||||
|
||||
@ -1280,4 +1280,10 @@ h3.bolder {
|
||||
.lang-dropdown{
|
||||
right: 0;
|
||||
left: initial;
|
||||
}
|
||||
.meeting{
|
||||
margin-left: -7px
|
||||
}
|
||||
.meeting th:first-child{
|
||||
padding-left: 0px;
|
||||
}
|
||||
@ -1,50 +1,79 @@
|
||||
<div data-ng-controller="MemberManageController">
|
||||
<div class="col-md-12" data-ng-controller="MemberManageController">
|
||||
<ul class="breadcrumb">
|
||||
<li><a href="#/groups">{{'label.anchor.groups' | translate}}</a></li>
|
||||
<li><a href="#/viewgroup/{{group.id}}">{{'label.anchor.viewgroup' | translate}}</a></li>
|
||||
<li class="active">{{'label.anchor.managemembers' | translate}}</li>
|
||||
</ul>
|
||||
<api-validate></api-validate>
|
||||
<div data-ng-switch on="managecode">
|
||||
<form ng-switch-when="1">
|
||||
<div class="paddedleft">
|
||||
<h3>{{ 'label.heading.associatemembers' | translate }}</h3>
|
||||
|
||||
<div>
|
||||
<label class="control-label col-sm-2">{{ 'label.input.clients' | translate }}<span class="required">*</span></label>
|
||||
<select multiple ng-model="formData.clientMembers" class="multiselect">
|
||||
<option ng-repeat="client in allClients" value="{{client.id}}">
|
||||
{{client.displayName}}({{client.id}})
|
||||
</option>
|
||||
</select>
|
||||
<form name="managemembers" class="form-horizontal well">
|
||||
<fieldset>
|
||||
<legend>{{'label.heading.managemembers' | translate}}</legend>
|
||||
<div class="row">
|
||||
<div class="col-md-5">
|
||||
<div class="form-group">
|
||||
<div class="col-sm-8 col-md-8">
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div data-ng-show="available" class="col-md-10">
|
||||
<p>{{'label.heading.groupdetails' | translate}}</p>
|
||||
<table class="table">
|
||||
<tr>
|
||||
<td class="width36">{{'label.heading.name' | translate}}</td>
|
||||
<td class="width60">{{client.displayName}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ 'label.heading.id' | translate }}</td>
|
||||
<td valign="top">{{client.id}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ 'label.heading.office' | translate }}</td>
|
||||
<td>{{client.officeName}}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br/>
|
||||
|
||||
<div>
|
||||
<a href="#/viewgroup/{{group.id}}" class="btn btn-default">{{ 'label.button.cancel' | translate }}</a>
|
||||
<button type="button" class="btn btn-primary" data-ng-click="associate()" has-permission='ASSOCIATECLIENTS_GROUP'>{{ 'label.button.save' |
|
||||
translate }}
|
||||
</button>
|
||||
<div class="col-md-6">
|
||||
<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}}
|
||||
type="text"/>
|
||||
</div>
|
||||
<div class="col-sm-2 col-md-2">
|
||||
<button type="button" class="btn angled-btn btn-primary " data-ng-click="remove(members.id)">
|
||||
<i class="icon-remove"></i>
|
||||
</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>
|
||||
<hr/>
|
||||
</form>
|
||||
<form ng-switch-when="2">
|
||||
<div class="paddedleft">
|
||||
<h3>{{ 'label.heading.disassociatemembers' | translate }}</h3>
|
||||
|
||||
<div>
|
||||
<label class="control-label col-sm-2">{{ 'label.input.clients' | translate }}<span class="required">*</span></label>
|
||||
<select multiple ng-model="formData.clientMembers" class="multiselect">
|
||||
<option ng-repeat="mem in allMembers" value="{{mem.id}}">{{mem.displayName}}({{mem.id}})
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
<br/>
|
||||
|
||||
<div>
|
||||
<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="disassociate()" has-permission='DISASSOCIATECLIENTS_GROUP'>{{
|
||||
'label.button.save' | translate }}
|
||||
</button>
|
||||
</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>
|
||||
</div>
|
||||
<hr/>
|
||||
</form>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
@ -53,12 +53,10 @@
|
||||
'label.button.activate' | translate }}</a>
|
||||
<a href="#/editgroup/{{group.id}}?managecode=1" has-permission='UPDATE_GROUP' class="btn btn-primary"><i class="icon-edit icon-white"></i>{{
|
||||
'label.button.edit' | translate }}</a>
|
||||
<a href="#/groupattendance?groupId={{group.id}}&calendarId={{group.collectionMeetingCalendar.id}}" has-permission='SAVEORUPDATEATTENDANCE_MEETING'
|
||||
data-ng-show="group.collectionMeetingCalendar" class="btn btn-primary pull-right">{{'label.button.attendance' | translate }}</a>
|
||||
<a ng-show="group.active" href="#/new_group_saving_application/{{group.id}}" has-permission='CREATE_SAVINGSACCOUNT' class="btn btn-primary"><i
|
||||
class="icon-plus icon-white"></i>{{ 'label.button.groupsavingapplication' | translate }}</a>
|
||||
class="icon-file icon-white"></i>{{ 'label.button.groupsavingapplication' | translate }}</a>
|
||||
<a ng-show="group.active" href="#/newgrouploanaccount/{{group.id}}" class="btn btn-primary" has-permission='CREATE_LOAN'><i
|
||||
class="icon-plus icon-white"></i>{{ 'label.button.grouploanapplication' | translate }}</a><!--
|
||||
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.jlgloanapplication' | translate }}</a>-->
|
||||
<span class="btn-group dropdown" on-toggle="toggled(open)">
|
||||
@ -67,6 +65,10 @@
|
||||
<span class="caret"></span>
|
||||
</a>
|
||||
<ul class="dropdown dropdown-menu dropdown-menu-right">
|
||||
<li>
|
||||
<a href="#/groupattendance?groupId={{group.id}}&calendarId={{group.collectionMeetingCalendar.id}}" has-permission='SAVEORUPDATEATTENDANCE_MEETING'
|
||||
data-ng-show="group.collectionMeetingCalendar">{{'label.button.attendance' | translate }}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#/assignstaff/{{group.id}}/groups" data-ng-hide="group.staffId" has-permission='ASSIGNSTAFF_GROUP'>{{
|
||||
'label.button.assignstaff' | translate }}</a>
|
||||
@ -100,7 +102,7 @@
|
||||
<h3>{{'label.heading.groupclosed' | translate}}</h3>
|
||||
</div>
|
||||
<div id="center" class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="col-md-7">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title ng-binding">{{ 'label.heading.clients' | translate }}</h3>
|
||||
@ -113,9 +115,10 @@
|
||||
<div class="col-md-12 primarydiv" data-ng-hide="group.status.value == 'Closed'">
|
||||
<a href="#/addmember?groupId={{group.id}}&officeId={{group.officeId}}" class="btn btn-primary pull-right" has-permission='CREATE_CLIENT'>
|
||||
<i class="icon-plus-sign-alt icon-white"></i>{{ 'label.button.add' | translate }}</a>
|
||||
<a href="#/membermanage/{{group.id}}?managecode=2" class="btn btn-primary pull-right" has-permission='DISASSOCIATECLIENTS_GROUP'>{{'label.button.disassociatemember' | translate }}</a>
|
||||
<a href="#/membermanage/{{group.id}}?managecode=1" class="btn btn-primary pull-right" has-permission='ASSOCIATECLIENTS_GROUP'>{{'label.button.associatemember' | translate }}</a>
|
||||
<a href="#/transferclients/{{group.id}}" class="btn btn-primary pull-right" has-permission='TRANSFERCLIENTS_GROUP'>{{'label.button.transferclients' | translate }}</a>
|
||||
<a href="#/membermanage/{{group.id}}" class="btn btn-primary pull-right" has-permission='ASSOCIATECLIENTS_GROUP'>
|
||||
<i class="icon-edit icon-white"></i>{{'label.button.managemembers' | translate }}</a>
|
||||
<a href="#/transferclients/{{group.id}}" class="btn btn-primary pull-right" has-permission='TRANSFERCLIENTS_GROUP'>
|
||||
<i class="icon-arrow-right icon-white"></i>{{'label.button.transferclients' | translate }}</a>
|
||||
</div>
|
||||
<table class="table table-condensed marginbottom0" style="display:inline-table;">
|
||||
<thead>
|
||||
@ -127,11 +130,11 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="pointer-main" ng-repeat="member in group.clientMembers">
|
||||
<td class="pointer width20" data-ng-click="routeToMem(member.id)">
|
||||
<td class="pointer" data-ng-click="routeToMem(member.id)">
|
||||
<i class="icon-stop {{member.status.code | StatusLookup}}" tooltip="{{member.status.value}}"></i>
|
||||
{{member.accountNo}}
|
||||
</td>
|
||||
<td class="pointer width30" data-ng-click="routeToMem(member.id)">{{member.displayName}}</td>
|
||||
<td class="pointer" data-ng-click="routeToMem(member.id)">{{member.displayName}}</td>
|
||||
</td>
|
||||
<td><a class="btn btn-success btn-sm" ng-href="#/newindividualjlgloanaccount/{{group.id}}/{{member.id}}" data-ng-show="isActiveMember(member.status.code)"><i
|
||||
class="icon-plus icon-white"></i>{{ 'label.button.jlgloanapplication' | translate }}</a></td>
|
||||
@ -142,7 +145,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="col-md-5 meeting">
|
||||
<div class="alert alert-warning" role="alert">
|
||||
<table>
|
||||
<tr>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user