Improvement in groups and manage groups redesigned.

This commit is contained in:
Gaurav Saini 2014-08-08 02:42:31 +05:30
parent 9cf5c6c689
commit 0cba1ba7fe
5 changed files with 141 additions and 69 deletions

View File

@ -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",

View File

@ -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) {

View File

@ -1280,4 +1280,10 @@ h3.bolder {
.lang-dropdown{
right: 0;
left: initial;
}
.meeting{
margin-left: -7px
}
.meeting th:first-child{
padding-left: 0px;
}

View File

@ -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>

View File

@ -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>