community-app/app/scripts/controllers/user/UserFormController.js
2014-03-02 04:09:27 -08:00

60 lines
2.4 KiB
JavaScript

(function (module) {
mifosX.controllers = _.extend(module, {
UserFormController: function (scope, resourceFactory) {
scope.offices = [];
scope.roles = [];
resourceFactory.officeResource.getAllOffices({}, function (data) {
scope.offices = data;
});
resourceFactory.roleResource.getAllRoles({}, function (data) {
scope.roles = data;
});
scope.$on('OpenUserFormDialog', function () {
scope.userFormData = {selectedRoles: {}, sendPasswordToEmail: false};
scope.formInError = false;
scope.errors = [];
});
scope.submitUserForm = function () {
scope.formInError = false;
scope.errors = [];
var userData = {
username: scope.userFormData.username,
firstname: scope.userFormData.firstname,
lastname: scope.userFormData.lastname,
email: scope.userFormData.email,
officeId: scope.userFormData.office.id,
sendPasswordToEmail: scope.userFormData.sendPasswordToEmail,
roles: _.map(
_.keys(scope.userFormData.selectedRoles), function (roleId) {
return parseInt(roleId, 10);
}
)
};
scope.$emit('SubmitUserFormStart');
new resourceFactory.userResource(userData).$save({},
function (data) {
userData.id = data.resourceId;
scope.users.push(userData);
scope.$emit('SubmitUserFormSuccess');
},
function (response) {
scope.formInError = true;
scope.errors = response.data.errors;
scope.$emit('SubmitUserFormError');
}
);
};
scope.cancelUserForm = function () {
scope.$emit('CloseUserForm');
};
}
});
mifosX.ng.application.controller('UserFormController', ['$scope', 'ResourceFactory', mifosX.controllers.UserFormController]).run(function ($log) {
$log.info("UserFormController initialized");
});
}(mifosX.controllers || {}));