projecten

This commit is contained in:
2018-01-18 08:45:09 +01:00
parent 00246f49f7
commit 970aa53971
25 changed files with 689 additions and 285 deletions
@@ -1,48 +0,0 @@
/**
* Created by Pensare Software.
* User: Theo Weijmer
* Date: 10/01/2018
* Time: 16:28
*/
dbo.commentModel = {
comment : ko.observable(),
commentID: null,
callback : null,
options : {
// disable wrapping content with paragraphs
// instead <br> will be used
enter : $.FroalaEditor.ENTER_DIV,
key : 'zc1QXIa2QZe1UOXATEX==',
// we like gray!
theme : 'gray',
toolbarButtons: ['bold', 'italic', 'underline']
},
showComment: function ( commentID, callback ) {
var vm = dbo.commentModel;
vm.callback = callback;
vm.commentID = commentID;
$( "#comment-modal" ).modal( 'show' );
dbo.commentsDataService.getComment( vm.commentID, function ( data ) {
vm.comment( data.comment );
} );
},
saveComment: function () {
var vm = dbo.commentModel;
dbo.commentsDataService.saveComment( vm.commentID, vm.comment(), function () {
$( "#comment-modal" ).modal( 'hide' );
vm.callback();
} );
}
}
ko.applyBindings( dbo.commentModel, document.getElementById( 'comment-modal' ) );
@@ -1,130 +0,0 @@
/**
* Created by Pensare Software.
* Customer: Theo Weijmer
* Date: 25/12/2017
* Time: 17:32
*/
$( function () {
dbo.editCustomerModal = {
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(),
callback : null,
init: function () {
},
newEditCustomer: function ( customer, callback ) {
var vm = dbo.editCustomerModal;
vm.callback = typeof(callback) == 'function' ? callback : null;
vm.showCustomerModal();
vm.setCustomer( customer );
},
saveCustomer: function () {
var vm = dbo.editCustomerModal;
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(),
}
dbo.customerDataService.saveCustomer( submitDATA, function ( data ) {
if ( data.success ) {
tellMe( {
title : 'opdrachtgever aangemaakt',
message : 'opdrachtgever is succesvol opgeslagen',
modalClass: 'modal-success'
}, function () {
vm.hideCustomerModal();
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 opdrachtgever',
message : errorMessage,
modalClass: 'modal-danger'
} );
} );
},
setCustomer: function ( customer ) {
var vm = dbo.editCustomerModal;
vm.id = customer.id || 0;
vm.name( customer.name || '' );
vm.address( customer.address || '' );
vm.postcode( customer.postcode || '' );
vm.place( customer.place || '' );
vm.contactperson( customer.contactperson || '' );
vm.email( customer.email || '' );
vm.website( customer.website || '' );
vm.remarks( customer.remarks || '' );
},
showCustomerModal: function () {
$( "#customer-modal" ).modal( 'show' );
},
hideCustomerModal: function () {
$( "#customer-modal" ).modal( 'hide' );
}
};
dbo.editCustomerModal.init();
dbo.editCustomerModal.nameInvalid = ko.pureComputed( function () {
if ( !this.name() ) return true;
if ( this.name().length < 2 ) return true;
return false;
}, dbo.editCustomerModal );
dbo.editCustomerModal.emailInvalid = ko.pureComputed( function () {
if ( !this.email() ) return false;
return !dbo.helpers.validateEmail( this.email() );
}, dbo.editCustomerModal );
dbo.editCustomerModal.formValid = ko.pureComputed( function () {
if ( this.nameInvalid() ) return false;
if ( this.emailInvalid() ) return false;
return true;
}, dbo.editCustomerModal )
ko.applyBindings( dbo.editCustomerModal, document.getElementById( 'customer-modal' ) );
} );
@@ -1,142 +0,0 @@
/**
* 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' ) );
} );
-185
View File
@@ -1,185 +0,0 @@
/**
* Created by Pensare Software.
* Offer: Theo Weijmer
* Date: 25/12/2017
* Time: 17:32
*/
$( function () {
dbo.editOfferModal = {
id : null,
projects : ko.observableArray( [] ),
customers : ko.observableArray( [] ),
users : ko.observableArray( [] ),
startdate : ko.observable(),
acceptance_chance: ko.observable(),
accepteddate : ko.observable(),
rejectdate : ko.observable(),
customer_id : ko.observable(),
project_id : ko.observable(),
offernumber : ko.observable(),
offerleader_id : ko.observable(),
own_revenue : ko.observable(),
other_revenue : ko.observable(),
init: function () {
var vm = dbo.editOfferModal;
dbo.editOfferModal.refreshCustomers();
dbo.editOfferModal.refreshUsers();
},
newEditOffer: function ( offer, callback ) {
var vm = dbo.editOfferModal;
vm.callback = typeof(callback) == 'function' ? callback : null;
vm.showOfferModal();
vm.setOffer( offer );
},
getCustomerProjects: function () {
var vm = dbo.editOfferModal;
},
saveOffer: function () {
var vm = dbo.editOfferModal;
if ( vm.formValid == false ) return;
var submitDATA = {
id : vm.id,
project_id : vm.project_id(),
customer_id : vm.customer_id(),
offerleader_id : vm.offerleader_id(),
offernumber : vm.offernumber(),
own_revenue : vm.own_revenue(),
other_revenue : vm.other_revenue(),
startdate : vm.startdate(),
acceptance_chance: vm.acceptance_chance(),
accepteddate : vm.accepteddate(),
rejectdate : vm.rejectdate(),
}
dbo.offerDataService.saveOffer( submitDATA, function ( data ) {
if ( data.success ) {
tellMe( {
title : 'offer aangemaakt',
message : 'de offer is succesvol opgeslagen',
modalClass: 'modal-success'
}, function () {
vm.hideOfferModal();
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 offer',
message : errorMessage,
modalClass: 'modal-danger'
} );
} );
},
setOffer: function ( offer ) {
var vm = dbo.editOfferModal;
vm.id = offer.id || 0;
vm.customer_id( offer.customer_id || null );
vm.project_id( offer.project_id || null );
vm.offerleader_id( offer.offerleader_id || null );
vm.offernumber( offer.offernumber || null );
vm.startdate( offer.startdate || null );
vm.acceptance_chance( offer.acceptance_chance || 0 );
vm.accepteddate( offer.accepteddate || null );
vm.rejectdate( offer.rejectdate || null );
vm.own_revenue( offer.own_revenue || 0 );
vm.other_revenue( offer.other_revenue || 0 )
},
showOfferModal: function () {
$( "#offer-modal" ).modal( 'show' );
},
hideOfferModal: function () {
$( "#offer-modal" ).modal( 'hide' );
},
validateNumber: function () {
var vm = dbo.editOfferModal;
vm.acceptance_chance( dbo.helpers.validateNumber( vm.acceptance_chance(), false ) );
},
addCustomer: function () {
var vm = dbo.editOfferModal;
dbo.editCustomerModal.newEditCustomer( false, function () {
vm.refreshCustomers();
} );
},
addUser:function(){
var vm = dbo.editOfferModal;
dbo.editUserModal.newEditUser( false, function () {
vm.refreshUsers();
} );
},
refreshCustomers: function () {
var vm = dbo.editOfferModal;
dbo.customerDataService.getAllCustomers( 'F', function ( data ) {
vm.customers( data );
} );
},
refreshUsers: function () {
var vm = dbo.editOfferModal;
dbo.userDataService.getAllUsers( 'F', function ( data ) {
vm.users( data );
} );
},
resetDate: function ( field ) {
var vm = dbo.editOfferModal;
vm[field]( null );
}
};
dbo.editOfferModal.init();
dbo.editOfferModal.offerDateValid = ko.pureComputed( function () {
if ( !this.startdate() ) return false;
if ( this.startdate().length != 10 ) return false;
return true;
}, dbo.editOfferModal );
dbo.editOfferModal.chance = ko.pureComputed( function () {
if ( this.acceptance_chance() < 0 ) return this.acceptance_chance( 0 );
if ( this.acceptance_chance() > 100 ) return this.acceptance_chance( 100 );
}, dbo.editOfferModal );
dbo.editOfferModal.formValid = ko.pureComputed( function () {
if ( !this.offernumber() ) return false;
if ( !this.customer_id() ) return false;
if ( !this.offerleader_id() ) return false;
if ( !this.offerDateValid() ) return false;
return true;
}, dbo.editOfferModal )
ko.applyBindings( dbo.editOfferModal, document.getElementById( 'offer-modal' ) );
} );
@@ -1,28 +0,0 @@
/**
* Created by Pensare Software.
* Offer: Theo Weijmer
* Date: 25/12/2017
* Time: 17:32
*/
$( function () {
dbo.editProjectModal = {
showProject: ko.observable( false ),
newEditProject: function () {
var vm = dbo.editProjectModal;
vm.showProject( true );
},
closeProject: function(){
var vm = dbo.editProjectModal;
vm.showProject( false );
}
};
ko.applyBindings( dbo.editProjectModal, document.getElementById( 'project-modal' ) );
} );
-154
View File
@@ -1,154 +0,0 @@
/**
* 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(),
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()
}
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 );
},
showUserModal: function () {
$( "#user-modal" ).modal( 'show' );
},
hideUserModal: function () {
$( "#user-modal" ).modal( 'hide' );
}
};
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' ) );
} );
+19 -191
View File
@@ -22,218 +22,46 @@ dbo.offersInit = function () {
selectedRowID: ko.observable(),
init: function () {
var vm = dbo.offersModel;
var service = dbo.offersService;
service.vm = dbo.offersModel;
vm.refreshOffers();
service.refreshOffers();
},
newOffer: function () {
var vm = dbo.offersModel;
dbo.editOfferModal.newEditOffer( false, function () {
vm.refreshOffers();
} );
var service = dbo.offersService;
service.vm = dbo.offersModel;
service.newOffer();
},
toggleArchive: function () {
var vm = dbo.offersModel;
var service = dbo.offersService;
service.vm = dbo.offersModel;
vm.archive( !vm.archive() );
vm.refreshOffers();
service.toggleArchive();
},
editOffer: function () {
var offer = this;
var vm = dbo.offersModel;
var service = dbo.offersService;
service.vm = dbo.offersModel;
dbo.editOfferModal.newEditOffer( offer, function () {
vm.refreshOffers();
} );
},
selectOffer: function () {
var vm = dbo.offersModel;
vm.selectedRowID( this.id );
vm.refreshComments();
vm.refreshDocuments();
},
addDocument: function ( data, evt ) {
var vm = dbo.offersModel;
uploadFile( evt.target.files[0], vm.selectedRowID(), vm.tableName, function () {
vm.refreshDocuments();
} );
},
addComment: function () {
var vm = dbo.offersModel;
dbo.commentsDataService.addComment( vm.selectedRowID(), vm.tableName, function ( commentID ) {
dbo.commentModel.showComment( commentID, function () {
vm.refreshComments();
} )
} );
},
editComment: function () {
var vm = dbo.offersModel;
dbo.commentModel.showComment( this.id, function () {
vm.refreshComments();
} );
},
downloadDocument: function () {
window.open( 'index.php/projects/documentscontroller/downloaddocument/' + this.id );
service.editOffer();
},
archiveOffer: function () {
var vm = dbo.offersModel;
var self = this;
var service = dbo.offersService;
service.vm = dbo.offersModel;
var status = self.archive == 'F' ? 'T' : 'F';
dbo.offerDataService.archiveOffer( self.id, status, function () {
vm.refreshOffers();
} );
service.archiveOffer( this );
},
removeOffer: function () {
var vm = dbo.offersModel;
var self = this;
var service = dbo.offersService;
service.vm = dbo.offersModel;
tellMe( {
title : 'verwijderen offerte',
message : 'weet u zeker dat u de offerte wilt verwijderen, dit kan niet ongedaan worden gemaakt',
notify : true,
noText : 'nee verwijder de offerte niet',
yesText : 'ja verwijder de offerte',
modalClass: 'modal-warning'
}, function ( response ) {
console.log( response );
if ( response ) {
dbo.offerDataService.removeOffer( self.id, function ( data ) {
if ( data.result ) {
tellMe( {
title : 'offerte verwijderd',
message : 'de offerte is succesvol verwijderd',
modalClass: 'modal-success'
}, function () {
vm.refreshOffers();
} );
} else {
tellMe( {
title : 'fout bij verwijderen offerte',
message : 'de offerte kan niet worden verwijderd',
modalClass: 'modal-danger'
} );
}
} );
}
} );
},
removeFile: function () {
var vm = dbo.offersModel;
var self = this;
tellMe( {
title : 'verwijderen document',
message : 'weet u zeker dat u hjet document wilt verwijderen, dit kan niet ongedaan worden gemaakt',
notify : true,
noText : 'nee verwijder het document niet',
yesText : 'ja verwijder het document',
modalClass: 'modal-warning'
}, function ( response ) {
console.log( response );
if ( response ) {
dbo.documentsDataService.removeDocument( self.id, function ( data ) {
if ( data.result ) {
tellMe( {
title : 'document verwijderd',
message : 'het document is succesvol verwijderd',
modalClass: 'modal-success'
}, function () {
vm.refreshDocuments();
} );
} else {
tellMe( {
title : 'fout bij verwijderen document',
message : 'het document kan niet worden verwijderd',
modalClass: 'modal-danger'
} );
}
} );
}
} );
},
refreshOffers: function () {
var vm = dbo.offersModel;
dbo.offerDataService.getAllOffers( vm.archive() ? 'T' : 'F', function ( data ) {
vm.offers.removeAll();
$.each( data, function ( i, p ) {
vm.offers.push( new vm.Offer( p ) );
} )
} );
},
refreshComments: function () {
var vm = dbo.offersModel;
dbo.commentsDataService.getComments( vm.selectedRowID(), vm.tableName, function ( data ) {
vm.comments.removeAll();
console.log( data );
$.each( data, function ( i, p ) {
vm.comments.push( new vm.Comment( p ) );
} );
} );
},
refreshDocuments: function () {
var vm = dbo.offersModel;
dbo.documentsDataService.getdocuments( vm.selectedRowID(), vm.tableName, function ( data ) {
vm.documents.removeAll();
$.each( data, function ( i, p ) {
vm.documents.push( new vm.Document( p ) );
} )
} )
},
Offer: function ( data ) {
this.id = data.id;
this.offernumber = data.offernumber;
this.acceptance_chance = data.acceptance_chance;
this.projectNumber = data.project ? data.project.projectnumber : null;
this.customerName = data.customer ? data.customer.name : null;
this.customer_id = data.customer_id;
this.startdate = data.startdate ? dbo.helpers.mysql2date( data.startdate ) : null;
this.rejectdate = data.rejectdate ? dbo.helpers.mysql2date( data.rejectdate ) : null;
this.accepteddate = data.accepteddate ? dbo.helpers.mysql2date( data.accepteddate ) : null;
this.acceptance_chance = data.acceptance_chance ? data.acceptance_chance : 0;
this.archive = data.archive;
},
Comment: function ( data ) {
this.id = data.id;
this.comment_date = data.comment_date;
this.fullname = data.user.fullname;
this.comment = ko.observable( data.comment );
},
Document: function ( data ) {
this.id = data.id;
this.originalname = data.originalname;
this.uploaddate = data.uploaddate;
this.fullname = data.user.fullname;
service.removeOffer( this );
}
};
dbo.offersModel.init();
@@ -26,7 +26,7 @@ dbo.projectsInit = function () {
newProject: function () {
var vm = dbo.projectsModel;
dbo.editProjectModal.newEditProject( false, function () {
dbo.editProjectModal.addProject( false, function () {
vm.refreshProjects();
} );
},
@@ -117,8 +117,8 @@ dbo.projectsInit = function () {
var self = this;
self.id = data.id;
self.projectnumber = data.projectnumber;
self.projectleader = data.projectleader.fullname;
self.customer = data.customer.name;
self.projectleader = data.projectleader ? data.projectleader.fullname : '#NB';
self.customer = data.customer ? data.customer.name : '#NB';
self.startdate = data.startdate;
self.enddate = data.enddate;
self.archive = data.archive;