145 lines
4.5 KiB
JavaScript
145 lines
4.5 KiB
JavaScript
/**
|
|
* Created by Pensare Software.
|
|
* External: Theo Weijmer
|
|
* Date: 25/12/2017
|
|
* Time: 17:32
|
|
*/
|
|
|
|
$( function () {
|
|
dbo.editExternalModal = {
|
|
|
|
id : null,
|
|
name : ko.observable(),
|
|
address : ko.observable(),
|
|
postcode : ko.observable(),
|
|
place : ko.observable(),
|
|
contactperson: ko.observable(),
|
|
email : ko.observable(),
|
|
website : ko.observable(),
|
|
remarks : ko.observable(),
|
|
rate : ko.observable(),
|
|
kvk_number : ko.observable(),
|
|
iban : ko.observable(),
|
|
callback : null,
|
|
|
|
init: function () {
|
|
|
|
},
|
|
|
|
newEditExternal: function ( external, callback ) {
|
|
var vm = dbo.editExternalModal;
|
|
vm.callback = typeof(callback) == 'function' ? callback : null;
|
|
|
|
vm.showExternalModal();
|
|
|
|
vm.setExternal( external );
|
|
},
|
|
|
|
saveExternal: function () {
|
|
var vm = dbo.editExternalModal;
|
|
|
|
if ( vm.formValid == false ) return;
|
|
|
|
var submitDATA = {
|
|
id : vm.id,
|
|
name : vm.name(),
|
|
address : vm.address(),
|
|
postcode : vm.postcode(),
|
|
place : vm.place(),
|
|
contactperson: vm.contactperson(),
|
|
email : vm.email(),
|
|
website : vm.website(),
|
|
remarks : vm.remarks(),
|
|
rate : vm.rate(),
|
|
kvk_number : vm.kvk_number(),
|
|
iban : vm.iban()
|
|
}
|
|
|
|
dbo.externalDataService.saveExternal( submitDATA, function ( data ) {
|
|
if ( data.success ) {
|
|
tellMe( {
|
|
title : 'onderaannemer aangemaakt',
|
|
message : 'onderaannemer is succesvol opgeslagen',
|
|
modalClass: 'modal-success'
|
|
}, function () {
|
|
vm.hideExternalModal();
|
|
|
|
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 onderaannemer',
|
|
message : errorMessage,
|
|
modalClass: 'modal-danger'
|
|
} );
|
|
} );
|
|
},
|
|
|
|
setExternal: function ( external ) {
|
|
var vm = dbo.editExternalModal;
|
|
|
|
vm.id = (external.id || 0);
|
|
vm.name( external.name || '' );
|
|
vm.address( external.address || '' );
|
|
vm.postcode( external.postcode || '' );
|
|
vm.place( external.place || '' );
|
|
vm.contactperson( external.contactperson || '' );
|
|
vm.email( external.email || '' );
|
|
vm.website( external.website || '' );
|
|
vm.remarks( external.remarks || '' );
|
|
vm.rate( external.rate || 0 );
|
|
vm.kvk_number( external.kvk_number || '' );
|
|
vm.iban( external.iban || '' );
|
|
},
|
|
|
|
showExternalModal: function () {
|
|
$( "#external-modal" ).modal( 'show' );
|
|
},
|
|
|
|
hideExternalModal: function () {
|
|
$( "#external-modal" ).modal( 'hide' );
|
|
},
|
|
|
|
validateNumber: function () {
|
|
var vm = dbo.editExternalModal;
|
|
vm.rate( dbo.helpers.validateNumber( vm.rate(), false ) );
|
|
}
|
|
|
|
};
|
|
|
|
dbo.editExternalModal.init();
|
|
|
|
dbo.editExternalModal.contactpersonInvalid = ko.pureComputed( function () {
|
|
if ( !this.contactperson() ) return true;
|
|
|
|
if ( this.contactperson().length < 2 ) return true;
|
|
|
|
return false;
|
|
}, dbo.editExternalModal );
|
|
|
|
dbo.editExternalModal.emailInvalid = ko.pureComputed( function () {
|
|
if ( !this.email() ) return false;
|
|
|
|
return !dbo.helpers.validateEmail( this.email() );
|
|
}, dbo.editExternalModal );
|
|
|
|
dbo.editExternalModal.formValid = ko.pureComputed( function () {
|
|
if ( this.contactpersonInvalid() ) return false;
|
|
if ( this.emailInvalid() ) return false;
|
|
|
|
return true;
|
|
}, dbo.editExternalModal )
|
|
|
|
ko.applyBindings( dbo.editExternalModal, document.getElementById( 'external-modal' ) );
|
|
|
|
} ); |