163 lines
4.7 KiB
JavaScript
163 lines
4.7 KiB
JavaScript
/**
|
|
* Created by Pensare Software.
|
|
* User: Theo Weijmer
|
|
* Date: 25/12/2017
|
|
* Time: 17:32
|
|
*/
|
|
|
|
$( function () {
|
|
dbo.editUserModal = {
|
|
|
|
id : null,
|
|
roles : ko.observableArray( [] ),
|
|
firstname : ko.observable(),
|
|
lastname : ko.observable(),
|
|
middlename: ko.observable(),
|
|
username : ko.observable(),
|
|
email : ko.observable(),
|
|
role : ko.observable(),
|
|
hourlyRate: ko.observable(),
|
|
|
|
callback: null,
|
|
|
|
init: function () {
|
|
var vm = dbo.editUserModal;
|
|
|
|
dbo.rolesDataservice.getAllRoles( 'F', function ( data ) {
|
|
vm.roles( data );
|
|
} );
|
|
},
|
|
|
|
newEditUser: function ( user, callback ) {
|
|
var vm = dbo.editUserModal;
|
|
vm.callback = typeof(callback) == 'function' ? callback : null;
|
|
|
|
vm.showUserModal();
|
|
|
|
vm.setUser( user );
|
|
},
|
|
|
|
setRole: function () {
|
|
var vm = dbo.editUserModal;
|
|
|
|
vm.role( this.rolelevel );
|
|
},
|
|
|
|
saveUser: function () {
|
|
var vm = dbo.editUserModal;
|
|
|
|
if ( vm.formValid == false ) return;
|
|
|
|
var submitDATA = {
|
|
id : vm.id,
|
|
firstname : vm.firstname(),
|
|
middlename: vm.middlename(),
|
|
lastname : vm.lastname(),
|
|
username : vm.username(),
|
|
email : vm.email(),
|
|
role : vm.role(),
|
|
hourlyrate: vm.hourlyRate()
|
|
}
|
|
|
|
dbo.userDataService.saveUser( submitDATA, function ( data ) {
|
|
if ( data.success ) {
|
|
tellMe( {
|
|
title : 'gebruiker aangemaakt',
|
|
message : 'gebuiker is succesvol opgeslagen',
|
|
modalClass: 'modal-success'
|
|
}, function () {
|
|
vm.hideUserModal();
|
|
|
|
if ( typeof(vm.callback) == 'function' ) vm.callback();
|
|
} );
|
|
|
|
return;
|
|
}
|
|
|
|
var errorMessage = '<ul>';
|
|
$.each( data.messages, function ( i, p ) {
|
|
if ( p[0] ) {
|
|
errorMessage += '<li>' + i + ': ' + p[0] + '</li>';
|
|
}
|
|
} );
|
|
errorMessage += '</ul>';
|
|
tellMe( {
|
|
title : 'fout aanmaken gebruiker',
|
|
message : errorMessage,
|
|
modalClass: 'modal-danger'
|
|
} );
|
|
} );
|
|
},
|
|
|
|
setUser: function ( user ) {
|
|
var vm = dbo.editUserModal;
|
|
var role = isNaN( user.role ) ? null : user.role;
|
|
|
|
vm.id = user.id || 0;
|
|
vm.firstname( user.firstname || '' );
|
|
vm.lastname( user.lastname || '' );
|
|
vm.middlename( user.middlename || '' );
|
|
vm.username( user.username || '' );
|
|
vm.email( user.email || '' );
|
|
vm.role( user.role || null );
|
|
vm.hourlyRate( user.hourlyrate || 0 );
|
|
},
|
|
|
|
showUserModal: function () {
|
|
$( "#user-modal" ).modal( 'show' );
|
|
},
|
|
|
|
hideUserModal: function () {
|
|
$( "#user-modal" ).modal( 'hide' );
|
|
},
|
|
|
|
validateNumber: function ( field ) {
|
|
var vm = dbo.editUserModal;
|
|
vm[field]( dbo.helpers.validateNumber( vm[field](), true ) );
|
|
}
|
|
};
|
|
|
|
dbo.editUserModal.init();
|
|
|
|
dbo.editUserModal.lastnameInvalid = ko.pureComputed( function () {
|
|
if ( !this.lastname() ) return true;
|
|
|
|
if ( this.lastname().length < 2 ) return true;
|
|
|
|
return false;
|
|
}, dbo.editUserModal );
|
|
|
|
dbo.editUserModal.firstnameInvalid = ko.pureComputed( function () {
|
|
if ( !this.firstname() ) return true;
|
|
|
|
if ( this.firstname().length < 2 ) return true;
|
|
|
|
return false;
|
|
}, dbo.editUserModal );
|
|
|
|
dbo.editUserModal.usernameInvalid = ko.pureComputed( function () {
|
|
if ( !this.username() ) return true;
|
|
|
|
if ( this.username().length < 4 ) return true;
|
|
|
|
return false;
|
|
}, dbo.editUserModal );
|
|
|
|
dbo.editUserModal.emailInvalid = ko.pureComputed( function () {
|
|
if ( !this.email() ) return true;
|
|
|
|
return !dbo.helpers.validateEmail( this.email() );
|
|
}, dbo.editUserModal );
|
|
|
|
dbo.editUserModal.formValid = ko.pureComputed( function () {
|
|
if ( this.firstnameInvalid() ) return false;
|
|
if ( this.lastnameInvalid() ) return false;
|
|
if ( this.usernameInvalid() ) return false;
|
|
if ( this.emailInvalid() ) return false;
|
|
|
|
return true;
|
|
}, dbo.editUserModal )
|
|
|
|
ko.applyBindings( dbo.editUserModal, document.getElementById( 'user-modal' ) );
|
|
|
|
} ); |