externals
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
/**
|
||||
* Created by Pensare Software.
|
||||
* External: Theo Weijmer
|
||||
* Date: 25/12/2017
|
||||
* Time: 09:50
|
||||
*/
|
||||
|
||||
dbo.externalDataService = {
|
||||
|
||||
getAllExternals: function ( archive = 'F', callback ) {
|
||||
$.getJSON( 'index.php/beheer/externalsController/getAllExternals/' + archive )
|
||||
.done( function ( data ) {
|
||||
callback( data );
|
||||
} );
|
||||
},
|
||||
|
||||
getExternal: function ( userID, callback ) {
|
||||
$.getJSON( 'index.php/beheer/externalsController/getExternal/' + userID )
|
||||
.done( function ( data ) {
|
||||
callback( data );
|
||||
} );
|
||||
},
|
||||
|
||||
checkExternalname: function ( username, callback ) {
|
||||
$.post( 'index.php/beheer/userController/checkExternalname', 'json' )
|
||||
.done( function ( data ) {
|
||||
console.log( data );
|
||||
callback( data );
|
||||
} );
|
||||
},
|
||||
|
||||
saveExternal: function ( submitDATA, callback ) {
|
||||
$.post( 'index.php/beheer/externalsController/saveExternal', submitDATA, function () {
|
||||
}, 'json' )
|
||||
.done( function ( data ) {
|
||||
callback( data );
|
||||
} );
|
||||
},
|
||||
|
||||
archiveExternal: function(userID, status, callback){
|
||||
$.get('index.php/beheer/externalsController/archiveExternal/' + userID + '/' + status)
|
||||
.done(function(){
|
||||
callback();
|
||||
});
|
||||
},
|
||||
|
||||
removeExternal: function ( userID, callback ) {
|
||||
$.getJSON( 'index.php/beheer/externalsController/removeExternal/' + userID )
|
||||
.done( function ( data ) {
|
||||
callback( data );
|
||||
} );
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -9,5 +9,51 @@ dbo.helpers = {
|
||||
validateEmail: function ( email ) {
|
||||
var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
||||
return re.test( email.toLowerCase() );
|
||||
},
|
||||
|
||||
validateNumber: function ( input, point = true ) {
|
||||
var validNumbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.', ','];
|
||||
var pointTaken = false;
|
||||
var pointedString = '';
|
||||
|
||||
// convert to comma or point number
|
||||
if ( point ) {
|
||||
input = input.replace( ',', '' );
|
||||
} else {
|
||||
input = input.replace( '.', '' );
|
||||
}
|
||||
|
||||
//remain only last comma or point and remove all non numbers
|
||||
var reverse = dbo.helpers.reverseString( input ).toString();
|
||||
for ( let character of reverse ) {
|
||||
if ( character == ',' || character == '.' ) {
|
||||
if ( pointTaken == false ) pointedString += character
|
||||
pointTaken = true;
|
||||
} else {
|
||||
if ( dbo.helpers.inArray( character, validNumbers ) ) {
|
||||
pointedString += character;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pointedString = dbo.helpers.reverseString( pointedString );
|
||||
|
||||
return pointedString;
|
||||
},
|
||||
|
||||
inArray: function ( needle, hayStack ) {
|
||||
var valid = false;
|
||||
|
||||
$.each( hayStack, function ( i, p ) {
|
||||
if ( p == needle ) valid = true;
|
||||
} );
|
||||
|
||||
return valid;
|
||||
},
|
||||
|
||||
reverseString: function ( string = '' ) {
|
||||
string = string.toString();
|
||||
if ( string.length == 0 ) return '';
|
||||
return string.split( '' ).reverse().join( '' );
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
/**
|
||||
* Created by Pensare Software.
|
||||
* User: Theo Weijmer
|
||||
* Date: 29/12/2017
|
||||
* Time: 14:19
|
||||
*/
|
||||
|
||||
dbo.externalsInit = function () {
|
||||
|
||||
if ( dbo.externalsModel !== undefined ) {
|
||||
|
||||
} else {
|
||||
dbo.externalsModel = {
|
||||
|
||||
externals: ko.observableArray( [] ),
|
||||
external : ko.observable(),
|
||||
archive : ko.observable( false ),
|
||||
|
||||
init: function () {
|
||||
var vm = dbo.externalsModel;
|
||||
|
||||
vm.refreshExternals();
|
||||
},
|
||||
|
||||
newExternal: function () {
|
||||
var vm = dbo.externalsModel;
|
||||
dbo.editExternalModal.newEditExternal( false, function () {
|
||||
vm.refreshExternals();
|
||||
} );
|
||||
},
|
||||
|
||||
toggleArchive: function () {
|
||||
var vm = dbo.externalsModel;
|
||||
|
||||
vm.archive( !vm.archive() );
|
||||
|
||||
vm.refreshExternals();
|
||||
},
|
||||
|
||||
editExternal: function () {
|
||||
var external = this;
|
||||
var vm = dbo.externalsModel;
|
||||
|
||||
dbo.editExternalModal.newEditExternal( external, function () {
|
||||
vm.refreshExternals();
|
||||
} );
|
||||
},
|
||||
|
||||
archiveExternal: function () {
|
||||
var vm = dbo.externalsModel;
|
||||
var self = this;
|
||||
|
||||
var status = self.archive == 'F' ? 'T' : 'F';
|
||||
|
||||
dbo.externalDataService.archiveExternal( self.id, status, function () {
|
||||
vm.refreshExternals();
|
||||
} );
|
||||
},
|
||||
|
||||
removeExternal: function () {
|
||||
var vm = dbo.externalsModel;
|
||||
var self = this;
|
||||
|
||||
tellMe( {
|
||||
title : 'verwijderen externe',
|
||||
message : 'weet u zeker dat u de externe wilt verwijderen, dit kan niet ongedaan worden gemaakt',
|
||||
notify : true,
|
||||
noText : 'nee verwijder de externe niet',
|
||||
yesText : 'ja verwijder de externe',
|
||||
modalClass: 'modal-warning'
|
||||
}, function ( response ) {
|
||||
if ( response ) {
|
||||
dbo.externalDataService.removeExternal( self.id, function ( data ) {
|
||||
if ( data.result ) {
|
||||
tellMe( {
|
||||
title : 'externe verwijderd',
|
||||
message : 'de externe is succesvol verwijderd',
|
||||
modalClass: 'modal-success'
|
||||
}, function () {
|
||||
vm.refreshExternals();
|
||||
} );
|
||||
} else {
|
||||
tellMe( {
|
||||
title : 'fout bij verwijderen externe',
|
||||
message : 'de externe kan niet worden verwijderd',
|
||||
modalClass: 'modal-danger'
|
||||
} );
|
||||
}
|
||||
} );
|
||||
}
|
||||
} );
|
||||
},
|
||||
|
||||
refreshExternals: function () {
|
||||
var vm = dbo.externalsModel;
|
||||
|
||||
dbo.externalDataService.getAllExternals( vm.archive() ? 'T' : 'F', function ( data ) {
|
||||
vm.externals( data );
|
||||
} );
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
|
||||
dbo.externalsModel.init();
|
||||
|
||||
ko.applyBindings( dbo.externalsModel, document.getElementById( 'EXTERNALS' ) );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,142 @@
|
||||
/**
|
||||
* 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(),
|
||||
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()
|
||||
}
|
||||
|
||||
dbo.externalDataService.saveExternal( submitDATA, function ( data ) {
|
||||
if ( data.success ) {
|
||||
tellMe( {
|
||||
title : 'externe aangemaakt',
|
||||
message : 'externe 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 externe',
|
||||
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 || '' );
|
||||
},
|
||||
|
||||
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' ) );
|
||||
|
||||
} );
|
||||
Reference in New Issue
Block a user