$(function() {
var $body = $('body');
/**
* View employee Labor
* GSSA/PortalBundle/Resources/views/Employee/employeeTimeClock.html.twig
* GSSA/PortalBundle/Resources/views/Portal/viewEmployees.html.twig
*/
var inc = 0;
$body.on('click', '.reviewTimeClock a', function(e){
e.preventDefault();
var me = $(this),
employee_id = me.attr('data-empid'),
camp_id = me.attr('data-campid'),
camp_id = $('#viewEmployeeTimeclock').attr('data-campid'),
dataLocation = $('ul#employee-timeclock-data-location');
inc = 0;
$('#viewEmployeeTimeclock').attr('data-empid', employee_id);
var data = {
employee_id: employee_id,
camp_id: camp_id
}
$.ajax({
beforeSend: function(){
dataLocation.empty();
},
data: data,
complete: function(data){
$('#employee-timeclock-data-loading').hide();
},
success: function(data) {
var parse = $.parseJSON(data);
if ( parse.error && !parse.data ) {
$('#employee-timeclock-data-loading').hide();
$('#employee-timeclock-data-error').show();
} else {
$.each(parse.data, function(k, v){
++inc;
var type0, type1, type2, type3;
switch ( v.action ){
case 0:
type0 = 'selected';
break;
case 1:
type1 = 'selected';
break;
case 2:
type2 = 'selected';
break;
case 3:
type3 = 'selected';
break;
}
dataLocation.append(
'
'
+ ''
+ '
'
+ '
'
+ '
'
+ '
'
+ '
'
+ '
'
+ ''
+ ''
+ '
'
+ '');
$('.date-employee-field-'+k).datepicker({
setDate: v.date
});
$('.time-employee-field-'+k).timepicker({
template: false,
showInputs: true,
minuteStep: 1,
defaultTime: v.time
});
});
}
},
method: 'POST',
url: gssaBaseURL + '/portal/view/employees/' + employee_id + '/timeclock'
});
});
/**
*
* Add New Punch Action
*
* GSSA/PortalBundle/Resources/views/Employee/employeeTimeClock.html.twig
* GSSA/PortalBundle/Resources/views/Portal/viewEmployees.html.twig
*/
$body.on('click', '#emp-add-punch', function(){
++inc;
var dataLocation = $('ul#employee-timeclock-data-location');
dataLocation.append(''
+ ''
+ '
'
+ '
'
+ '
'
+ '
'
+ '
'
+ '
'
+ ''
+ ''
+ '
'
+ '');
$('.date-employee-field-'+inc).datepicker({
todayHighlight: true,
todayBtn: true
});
$('.time-employee-field-'+inc).timepicker({
template: false,
showInputs: true,
minuteStep: 1
});
});
// Remove Punch Action
$body.on('click', 'button.emp-remove-punch', function(){
var me = $(this),
tag = me.attr('data-tag'),
employee_id = $('#viewEmployeeTimeclock').attr('data-empid'),
camp_id = $('#viewEmployeeTimeclock').attr('data-campid'),
target = me.attr('data-target'),
data = {
targetId : target,
tag : tag,
camp_id : camp_id
};
if ( target !== '-1' ) {
$.ajax({
beforeSend: function(){
me.addClass('disabled');
me.parents('li').addClass('list-group-item-info');
},
data: data,
success: function(d){
me.parents('li').fadeOut(2000).remove();
},
method: 'POST',
url: gssaBaseURL + '/portal/view/employees/' + employee_id + '/record/timeclock'
});
} else {
me.parents('li').fadeOut(2000).remove();
}
});
// Save Punch Action
$body.on('click', 'button.emp-save-punch', function(){
var me = $(this),
id = me.attr('data-inc'),
tag = me.attr('data-tag'),
camp_id = $('#viewEmployeeTimeclock').attr('data-campid'),
employee_id = $('#viewEmployeeTimeclock').attr('data-empid');
data = {
action : $('.action-employee-field-' + id + ' :selected').val(),
time : $('.time-employee-field-' + id).val(),
date : $('.date-employee-field-' + id).val(),
tag : tag,
targetId : me.attr('target'),
employee_id: employee_id,
camp_id : camp_id
};
$.ajax({
beforeSend: function() {
me.addClass('disabled');
me.parents('li').addClass('list-group-item-info');
},
data: data,
error: function(d) {
me.parents('li').addClass('list-group-item-danger');
},
success: function( data ) {
me.removeClass('disabled');
var parse = $.parseJSON(data);
if (parse.success) {
me.parents('li').removeClass('list-group-item-info');
me.attr('data-target', parse.target);
me.attr('data-tag', 'existing');
me.prev().attr('data-target', parse.target); //the delete button
} else {
me.parents('li').addClass('list-group-item-danger');
}
},
method: 'POST',
url: gssaBaseURL + '/portal/view/employees/' + employee_id + '/record/timeclock'
});
});
$('div#viewEmployeeTimeclock').on('hidden.bs.modal', function (e) {
$('#employee-timeclock-data-loading').show();
$('#employee-timeclock-data-error').hide();
$('ul#employee-timeclock-data-location').empty();
});
/**
* Multi Employees punching
*
* GSSA/PortalBundle/Resources/views/Employee/employeeTimeClock.html.twig
*/
$body.on('click', 'input.role-check-all', function(){
var checked = this.checked;
$.each($(this).closest('div').find('input[type="checkbox"]'), function(){
$(this).prop('checked', checked);
});
updateLaborPunchButton();
});
$body.on('click', 'button.edit-current-time', function() {
$(this).parent().children('input').removeAttr('readonly');
$(this).hide();
$(this).parent().children('input')[0].focus();
});
// Hiding panel buttons when no employee is checked
$body.on('click', 'input.emp-all-labor', function() {
updateLaborPunchButton();
});
var updateLaborPunchButton = function() {
var noneChecked = $('input.emp-all-labor:checked').length === 0;
if (noneChecked) {
$('button.emp-all-labor-punch').hide();
} else {
$('button.emp-all-labor-punch').show();
}
}
updateLaborPunchButton();
// Editing current time
$('#applyEditCurrentTime').on('click', function() {
var currentDateTime = $("#currentDate").val() + ' ' + $("#currentTime").val();
$("#currentLocalTime").val(currentDateTime);
$("#currentLocalTimeButton").text(currentDateTime);
$('#launchEditCurrentLocalTime').modal('hide');
});
// Submit multi employees punch
$body.on('click', 'button.emp-all-labor-punch', function(){
var me = $(this),
action = Number(me.attr('method')),
url = self.location.pathname.substr(-1) === '/' ? '../timeclock/' + action : './timeclock/' + action,
data = {};
data.action = action;
data.employees = $('input.emp-all-labor:checked').map(function() { return $(this).attr('data-emp') }).get().join(",");
data.currentLocalTime = $('#currentLocalTime').val();
$.ajax({
beforeSend: function() {
me.addClass('disabled').text('Sending...');
},
complete: function(){
me.removeClass('disabled');
},
success: function(data){
var parse = $.parseJSON(data);
if ( parse.error ) {
me.text('Error Occurred').removeClass('disabled');
} else {
switch ( action ) {
case 0:
me.text('Clock In');
break;
case 1:
me.text('Clock Out');
break;
case 2:
me.text('Meal Start');
break;
case 3:
me.text('Meal End');
break;
}
$('input:checked').prop('checked', false);
updateLaborPunchButton();
}
},
data: data,
method: 'POST',
url: url
});
});
});