|
|
|
|
|
|
|
|
|
|
|
|
|
|
load_data(data) |
|
|
load_data(data) |
|
|
{ |
|
|
{ |
|
|
|
|
|
//save to html element |
|
|
|
|
|
this.data = data; |
|
|
|
|
|
this.el.data({job:this, data:data}); |
|
|
|
|
|
|
|
|
|
|
|
//draw GUI |
|
|
|
|
|
this.clear_err_msg(); |
|
|
this.set_job_id(data.id); |
|
|
this.set_job_id(data.id); |
|
|
this.set_tos(data.tos); |
|
|
this.set_tos(data.tos); |
|
|
this.set_start(data.start); |
|
|
this.set_start(data.start); |
|
|
|
|
|
|
|
|
this.set_client(data.client); |
|
|
this.set_client(data.client); |
|
|
this.set_ack(data.ack); |
|
|
this.set_ack(data.ack); |
|
|
this.set_rating(data.rating); |
|
|
this.set_rating(data.rating); |
|
|
//save to html element |
|
|
|
|
|
this.data = data; |
|
|
|
|
|
this.el.data({job:this, data:data}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//draw GUI by other |
|
|
this.mark_dirty_on_new_record(data); |
|
|
this.mark_dirty_on_new_record(data); |
|
|
this.mark_week_color(); |
|
|
this.mark_week_color(); |
|
|
this.validate(); //also triggers mark errors |
|
|
this.validate(); //also triggers mark errors |
|
|
|
|
|
|
|
|
d.addClass('blink_me'); |
|
|
d.addClass('blink_me'); |
|
|
setTimeout(function(){ |
|
|
setTimeout(function(){ |
|
|
d.removeClass('blink_me'); |
|
|
d.removeClass('blink_me'); |
|
|
|
|
|
d.removeClass('saved'); |
|
|
},1000); |
|
|
},1000); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
mark_saved() |
|
|
mark_saved() |
|
|
{ |
|
|
{ |
|
|
var d = this.el.find('.bsave'); |
|
|
var d = this.el.find('.bsave'); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
d.addClass('blink_me'); |
|
|
d.addClass('blink_me'); |
|
|
setTimeout(function(){ |
|
|
setTimeout(function(){ |
|
|
d.removeClass('blink_me'); |
|
|
d.removeClass('blink_me'); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
validate() |
|
|
validate() |
|
|
{ |
|
|
{ |
|
|
this.clear_err_msg(); |
|
|
|
|
|
var ok = this.validate_start() && |
|
|
|
|
|
this.validate_finish() && |
|
|
|
|
|
this.validate_rate(); |
|
|
|
|
|
|
|
|
var ok_time = this.validate_start() && |
|
|
|
|
|
this.validate_finish(); //finish might not be executed, if start is wrong |
|
|
|
|
|
var ok_tos = this.validate_tos(); //make sure this validate is executed; |
|
|
|
|
|
var ok_rate = this.validate_rate() ; //make sure this validate is executed |
|
|
|
|
|
var ok = ok_time && ok_tos && ok_rate; |
|
|
if (ok){ |
|
|
if (ok){ |
|
|
this.el.removeClass('invalidjob'); |
|
|
this.el.removeClass('invalidjob'); |
|
|
}else{ |
|
|
}else{ |
|
|
|
|
|
|
|
|
this.mark_rate_invalid(); |
|
|
this.mark_rate_invalid(); |
|
|
return false; |
|
|
return false; |
|
|
} |
|
|
} |
|
|
|
|
|
if (this.get_rate() != this.data.rate){ |
|
|
|
|
|
this.set_err_msg_rate('rate@Xero inactive ' + this.data.rate); |
|
|
|
|
|
this.mark_rate_invalid(); |
|
|
|
|
|
this.mark_dirty(); |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
this.set_err_msg_rate(''); |
|
|
this.set_err_msg_rate(''); |
|
|
this.mark_rate_valid(); |
|
|
this.mark_rate_valid(); |
|
|
return true; |
|
|
return true; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
validate_tos(){ |
|
|
|
|
|
if (this.get_tos() != this.data.tos){ |
|
|
|
|
|
this.set_err_msg_tos('require NDIS ' + this.data.tos); |
|
|
|
|
|
this.mark_tos_invalid(); |
|
|
|
|
|
this.mark_dirty(); |
|
|
|
|
|
console.log('tos mark dirty'); |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
this.set_err_msg_tos(''); |
|
|
|
|
|
this.mark_tos_valid(); |
|
|
|
|
|
return true; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
clear_err_msg(){ |
|
|
clear_err_msg(){ |
|
|
this.el.find('.divTableRow.errmsg > div').html(''); |
|
|
this.el.find('.divTableRow.errmsg > div').html(''); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
{ |
|
|
{ |
|
|
this.el.find('div.bsave_err').html(str); |
|
|
this.el.find('div.bsave_err').html(str); |
|
|
} |
|
|
} |
|
|
|
|
|
set_err_msg_tos(str) |
|
|
|
|
|
{ |
|
|
|
|
|
this.el.find('div.btos_err').html(str); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mark_tos_valid(){ |
|
|
|
|
|
this.el.find('div.btos select').removeClass('invalid'); |
|
|
|
|
|
} |
|
|
|
|
|
mark_tos_invalid(){ |
|
|
|
|
|
this.el.find('div.btos select').addClass('invalid'); |
|
|
|
|
|
} |
|
|
mark_start_valid(){ |
|
|
mark_start_valid(){ |
|
|
this.el.find('div.bstart input').removeClass('invalid'); |
|
|
this.el.find('div.bstart input').removeClass('invalid'); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$('div.sheettitle h1').click(function(){ |
|
|
$('div.sheettitle h1').click(function(){ |
|
|
reset_title_to_today(); |
|
|
reset_title_to_today(); |
|
|
|
|
|
load_timesheet(); |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
function reset_title_to_today(){ |
|
|
function reset_title_to_today(){ |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
console.log('filter worksspace'); |
|
|
|
|
|
filter_workspace(staffs, clients); |
|
|
filter_workspace(staffs, clients); |
|
|
console.log('filter by weeks'); |
|
|
|
|
|
filter_workspace_by_weeks(); |
|
|
filter_workspace_by_weeks(); |
|
|
debounced_calculate(); |
|
|
debounced_calculate(); |
|
|
} |
|
|
} |