Skip to content

Instantly share code, notes, and snippets.

@justintoth
Created February 19, 2014 19:14
Show Gist options
  • Save justintoth/9099402 to your computer and use it in GitHub Desktop.
Save justintoth/9099402 to your computer and use it in GitHub Desktop.
function mapJobFormViewModel(list) {
var self = new baseFormViewModel('job', list);
self.entity;
self.init = function () {
self.baseInit();
//setup datetime pickers.
$('#expectedArrivalDate').datetimepicker({
dateFormat: 'm/d/yy',
timeFormat: 'h:mmtt'
});
};
self.clear = function () {
self.fill({
id: '',
latitude: '',
longitude: '',
userId: self.entity ? self.entity.id : '',
vehicleId: self.entity ? self.entity.id : '',
name: '',
description: '',
expectedArrivalDate: moment().add('hours', 1),
statusId: '',
markerId: '',
address1: '',
address2: '',
city: '',
state: '',
zipCode: ''
});
};
self.fill = function (job) {
job.prettyExpectedArrivalDate = job.expectedArrivalDate ? utils.formatDateTime(job.expectedArrivalDate) : '';
_.each(_.keys(job), function (key) {
if (!self[key]) {
self[key] = ko.observable(job[key]);
}
else {
self[key](job[key]);
}
});
if (!job.markerId) {
self.markerId('');
}
};
self.markerChanged = function () {
var markerId = self.markerId();
if (markerId) {
utils.block($('#job-form'), 'Loading marker');
api.markers.read({
data: {
id: self.markerId()
},
success: function (marker) {
self.latitude(marker.latitude);
self.longitude(marker.longitude);
self.name(marker.name);
self.address1(marker.address1);
self.address2(marker.address2);
self.city(marker.city);
self.state(marker.state);
self.zipCode(marker.zipCode);
$('#job-form').unblock();
},
error: function (result) {
$('#job-form').unblock();
}
});
}
};
self.init();
return self;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment