/** * 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 = ''; 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' ) ); } );