Merge branch 'Mifos_tasks_wubwub' of git://github.com/Muciojad/community-app into Muciojad-Mifos_tasks_wubwub

Conflicts:
	app/scripts/controllers/organization/ViewRoleController.js
	app/views/administration/viewrole.html
This commit is contained in:
Vishwas Babu A J 2015-03-07 22:09:23 +05:30
commit f9d0114936
2 changed files with 82 additions and 9 deletions

View File

@ -1,9 +1,13 @@
(function (module) {
mifosX.controllers = _.extend(module, {
ViewRoleController: function (scope, routeParams, resourceFactory, route, $modal) {
scope.permissions = [];
scope.groupings = [];
scope.formData = {};
scope.checkboxesChanged = false; // this flag is informing backup-system if user started editing
var bValuesOnly = []; // array for 1-0 values only from permission-checkboxes
var tempPermissionUIData = [];
resourceFactory.rolePermissionResource.get({roleId: routeParams.id}, function (data) {
scope.role = data;
@ -22,6 +26,16 @@
tempPermissionUIData[currentGrouping].permissions.push(temp);
}
scope.backupCheckValues = function()
{//backup -> save the data from formData before editing to boolean array
for(var i = 0; i< this.permissions.permissions.length; i++)
{
var temp = this.formData[this.permissions.permissions[i].code];
bValuesOnly.push(temp);
}
checkboxesChanged = true; // user started editing - set flag to true
};
scope.isRoleEnable = function(value) {
return value;
};
@ -88,17 +102,22 @@
};
scope.cancel = function () {
route.reload();
route.reload();
scope.isDisabled = true;
};
scope.submit = function () {
var permissionData = {};
permissionData.permissions = this.formData;
resourceFactory.rolePermissionResource.update({roleId: routeParams.id}, permissionData, function (data) {
route.reload();
backupCheckValues();// reload current data in array (backup)
checkboxesChanged = false; // user finished editing - set flag to false
scope.isDisabled = true;
});
};
scope.showPermissions = function (grouping) {
@ -133,10 +152,57 @@
string = string.charAt(0).toUpperCase() + string.slice(1);
return string;
};
scope.selectAll = function(allSelected)
{
var checkboxes = document.getElementsByName('cp');
if(allSelected == false)
{
for(var i in checkboxes)
{
checkboxes[i].checked = 1;
}
for(var i = 0; i< this.permissions.permissions.length; i++)
{
this.formData[this.permissions.permissions[i].code] = true;
}
}
else
{
for(var i in checkboxes)
{
checkboxes[i].checked = 0;
}
for(var i = 0; i< this.permissions.permissions.length; i++)
{
this.formData[this.permissions.permissions[i].code] = false;
}
}
};
scope.restoreCheckboxes = function()
{
for(var i = 0; i < bValuesOnly.length;i++)
{
this.formData[this.permissions.permissions[i].code] = bValuesOnly[i];
}
for(var i = bValuesOnly.length; i > 0; i--)
{
bValuesOnly.pop(); // erase old elements in flag-array
}
checkboxesChanged = false; // user canceled editing - set flag to false
};
});
}
});
mifosX.ng.application.controller('ViewRoleController', ['$scope', '$routeParams', 'ResourceFactory', '$route', '$modal', mifosX.controllers.ViewRoleController]).run(function ($log) {
mifosX.ng.application.controller('ViewRoleController', ['$scope', '$routeParams', 'ResourceFactory', '$route','$modal', mifosX.controllers.ViewRoleController]).run(function ($log) {
$log.info("ViewRoleController initialized");
});
}(mifosX.controllers || {}));
}(mifosX.controllers || {}));

View File

@ -64,7 +64,7 @@
<hr>
<div class="pull-right" ng-show="isDisabled">
<div class="btn-group">
<a data-ng-click="editRoles()" class="btn btn-primary" has-permission='UPDATE_ROLE'><i class="icon-edit icon-white"></i>{{
<a data-ng-click="editRoles(); backupCheckValues()" class="btn btn-primary" has-permission='UPDATE_ROLE'><i class="icon-edit icon-white"></i>{{
'label.button.edit' | translate }}</a>
</div>
<div class="btn-group" ng-if="!isRoleEnable(role.disabled)">
@ -79,12 +79,18 @@
<a data-ng-click="deleteRolesConfirmation()" class="btn btn-primary" has-permission='DELETE_ROLE'><i class="icon-trash icon-white"></i>{{
'label.button.delete' | translate }}</a>
</div>
</div>
<div class="btn-group" ng-show="!isDisabled" style="float: right">
<a data-ng-click="selectAll(false)" class="btn btn-primary"><i class="icon-ok-sign icon-white"></i>{{'label.button.selectAll' | translate}}</a>
<a data-ng-click="selectAll(true)" class="btn btn-danger"><i class="icon-remove-sign icon-white"></i>{{'label.button.deselectAll' | translate}}</a>
</div>
<h3>{{'label.heading.permissions' | translate}}:&nbsp;&nbsp;<strong>{{formatName(previousGrouping)}}</strong>
</h3>
<table width="100%">
<tr>
<td width="15%" valign="top">
<td width="30%" valign="top">
<table>
<tr ng-repeat="grouping in groupings" ng-class="{graybg: grouping == previousGrouping}">
<td><a ng-click="showPermissions(grouping);"><span>{{formatName(grouping)}}</span></a></td>
@ -92,17 +98,18 @@
</table>
</td>
<td width="85%" valign="top">
<table width="100%">
<tr ng-repeat="permission in permissions.permissions">
<td width="50%"><label for="{{permission.code}}">{{permissionName(permission.code)}}</label></td>
<td><input id="{{permission.code}}" type="checkbox" data-ng-model="formData[permission.code]" ng-disabled="isDisabled"></td>
<td><input id="{{permission.code}}" type="checkbox" name='cp'
data-ng-model="formData[permission.code]" ng-disabled="isDisabled"></td>
</tr>
</table>
</td>
</tr>
</table>
<div class="col-md-offset-3" ng-hide="isDisabled">
<a class="btn btn-default" ng-click="cancel()">{{ 'label.button.cancel' | translate}}</a>
<div class="col-md-offset-4" ng-hide="isDisabled">
<a class="btn btn-default" ng-click="cancel(); restoreCheckboxes()">{{ 'label.button.cancel' | translate}}</a>
<button type="submit" class="btn btn-primary" has-permission='UPDATE_ROLE'>{{ 'label.button.save' | translate}}</button>
</div>
</form>