Upgrades from IceHrm Pro v24

This commit is contained in:
gamonoid
2018-07-03 03:10:32 +02:00
parent 8b276d54e6
commit 9cee4e91df
8253 changed files with 659182 additions and 47489 deletions

View File

@@ -228,7 +228,11 @@ EmployeeAdapter.method('getFilters', function() {
});
EmployeeAdapter.method('getActionButtonsHtml', function(id) {
var html = '<div style="width:110px;"><img class="tableActionButton" src="_BASE_images/user.png" style="cursor:pointer;" rel="tooltip" title="Login as this Employee" onclick="modJs.setAdminProfile(_id_);return false;"></img><img class="tableActionButton" src="_BASE_images/view.png" style="cursor:pointer;margin-left:15px;" rel="tooltip" title="View" onclick="modJs.view(_id_);return false;"></img><img class="tableActionButton" src="_BASE_images/edit.png" style="cursor:pointer;margin-left:15px;" rel="tooltip" title="Edit" onclick="modJs.edit(_id_);return false;"></img><img class="tableActionButton" src="_BASE_images/edit.png" style="display:none;cursor:pointer;margin-left:15px;" rel="tooltip" title="Edit" onclick="modJs.edit(_id_);return false;"></img><img class="tableActionButton" src="_BASE_images/connect-no.png" style="margin-left:15px;cursor:pointer;" rel="tooltip" title="Terminate Employee" onclick="modJs.terminateEmployee(_id_);return false;"></img></div>';
var deleteBtn = '<img class="tableActionButton" src="_BASE_images/connect-no.png" style="margin-left:15px;cursor:pointer;" rel="tooltip" title="Terminate Employee" onclick="modJs.terminateEmployee(_id_);return false;"></img>';
if (this.showDelete === false) {
deleteBtn = '';
}
var html = '<div style="width:110px;"><img class="tableActionButton" src="_BASE_images/user.png" style="cursor:pointer;" rel="tooltip" title="Login as this Employee" onclick="modJs.setAdminProfile(_id_);return false;"></img><img class="tableActionButton" src="_BASE_images/view.png" style="cursor:pointer;margin-left:15px;" rel="tooltip" title="View" onclick="modJs.view(_id_);return false;"></img><img class="tableActionButton" src="_BASE_images/edit.png" style="cursor:pointer;margin-left:15px;" rel="tooltip" title="Edit" onclick="modJs.edit(_id_);return false;"></img><img class="tableActionButton" src="_BASE_images/edit.png" style="display:none;cursor:pointer;margin-left:15px;" rel="tooltip" title="Edit" onclick="modJs.edit(_id_);return false;"></img>'+deleteBtn+'</div>';
html = html.replace(/_id_/g,id);
html = html.replace(/_BASE_/g,this.baseUrl);
return html;

View File

@@ -85,11 +85,11 @@ UserAdapter.method('save', function() {
var msg = this.doCustomValidation(params);
if(msg == null){
var id = $('#'+this.getTableName()+"_submit #id").val();
params['csrf'] = $('#'+this.getTableName()+'Form').data('csrf');
if(id != null && id != undefined && id != ""){
$(params).attr('id',id);
params['id'] = id;
this.add(params,[]);
}else{
var reqJson = JSON.stringify(params);
var callBackData = [];
@@ -105,9 +105,6 @@ UserAdapter.method('save', function() {
//$("#"+this.getTableName()+'Form .label').show();
this.showMessage("Error Saving User",msg);
}
}
});
@@ -116,14 +113,13 @@ UserAdapter.method('changePasswordConfirm', function() {
$('#adminUsersChangePwd_error').hide();
var passwordValidation = function (str) {
var val = /^[a-zA-Z0-9]\w{6,}$/;
return str != null && val.test(str);
return str.length > 7;
};
var password = $('#adminUsersChangePwd #newpwd').val();
if(!passwordValidation(password)){
$('#adminUsersChangePwd_error').html("Password may contain only letters, numbers and should be longer than 6 characters");
$('#adminUsersChangePwd_error').html("Password should be longer than 7 characters");
$('#adminUsersChangePwd_error').show();
return;
}

View File

@@ -374,10 +374,12 @@ AdapterBase.method('getFieldValues', function(fieldMaster,callBackData) {
that.requestCache.setData(this.success.key, data);
callBackData['callBackData'].push(data.data);
if(callBackData['callBackSuccess'] != null && callBackData['callBackSuccess'] != undefined){
if(callBackData['callBackSuccess'] != null && callBackData['callBackSuccess'] != undefined) {
callBackData['callBackData'].push(callBackData['callBackSuccess']);
}
that.callFunction(callBackData['callBack'],callBackData['callBackData']);
} else if (data.message === 'Access violation') {
alert('Error : ' + callbackWraper.table + ' ' + data.message);
}
};
@@ -797,12 +799,13 @@ ApproveModuleAdapter.method('getActionButtonsHtml', function(id,data) {
html = html.replace('_logs_',viewLogsButton);
if(this.showDelete){
if(data[7] == "Approved"){
if (data[7] === "Approved") {
html = html.replace('_delete_',requestCancellationButton);
}else{
} else if(data[7] === "Pending" || this.user.user_level === "Admin") {
html = html.replace('_delete_',deleteButton);
} else {
html = html.replace('_delete_','');
}
}else{
html = html.replace('_delete_','');
}
@@ -1090,6 +1093,12 @@ TableEditAdapter.method('createTable', function(elementId) {
return modJs.validateCellValue($(this), evt, newValue);
});
this.afterCreateTable(elementId);
});
TableEditAdapter.method('afterCreateTable', function(elementId) {
});
TableEditAdapter.method('addCellDataUpdate' , function(colId, rowId, data) {

View File

@@ -42,6 +42,7 @@ function IceHRMBase() {
this.settings = {};
this.translations = {};
this.customFields = [];
this.csrfRequired = false;
}
this.fieldTemplates = null;
@@ -115,6 +116,10 @@ IceHRMBase.method('setInstanceId' , function(id) {
this.instanceId = id;
});
IceHRMBase.method('setCSRFRequired' , function(val) {
this.csrfRequired = val;
});
IceHRMBase.method('setGoogleAnalytics' , function(ga) {
this.ga = ga;
});
@@ -1019,9 +1024,12 @@ IceHRMBase.method('save', function(callGetFunction, successCallback) {
params = this.forceInjectValuesBeforeSave(params);
var msg = this.doCustomValidation(params);
if(msg == null){
if (this.csrfRequired) {
params['csrf'] = $('#'+this.getTableName()+'Form').data('csrf');
}
var id = $('#'+this.getTableName()+"_submit #id").val();
if(id != null && id != undefined && id != ""){
$(params).attr('id',id);
params['id'] = id;
}
params = this.makeEmptyDateFieldsNull(params);
this.add(params,[],callGetFunction, successCallback);

View File

@@ -3077,19 +3077,6 @@ button.close {
*margin-left: 0;
}
.btn:hover {
color: #333333;
text-decoration: none;
background-color: #e6e6e6;
*background-color: #d9d9d9;
/* Buttons in IE7 don't get borders, so darken on hover */
background-position: 0 -15px;
-webkit-transition: background-position 0.1s linear;
-moz-transition: background-position 0.1s linear;
-o-transition: background-position 0.1s linear;
transition: background-position 0.1s linear;
}
.btn:focus {
outline: thin dotted #333;
@@ -3270,14 +3257,16 @@ input[type="button"].btn-block {
.btn-danger.disabled,
.btn-danger[disabled] {
color: #ffffff;
/*
background-color: #bd362f;
*background-color: #a9302a;
*background-color: #a9302a;*/
}
/*
.btn-danger:active,
.btn-danger.active {
background-color: #942a25 \9;
}
/background-color: #942a25 \9;
}*/
.btn-success {
color: #ffffff;

101
web/js/bootstrap-datatable.js vendored Normal file
View File

@@ -0,0 +1,101 @@
/* Default class modification */
$.extend( $.fn.dataTableExt.oStdClasses, {
"sSortAsc": "header headerSortDown",
"sSortDesc": "header headerSortUp",
"sSortable": "header"
} );
/* API method to get paging information */
$.fn.dataTableExt.oApi.fnPagingInfo = function ( oSettings )
{
return {
"iStart":oSettings._iDisplayStart,
"iEnd":oSettings.fnDisplayEnd(),
"iLength":oSettings._iDisplayLength,
"iTotal":oSettings.fnRecordsTotal(),
"iFilteredTotal": oSettings.fnRecordsDisplay(),
"iPage":Math.ceil( oSettings._iDisplayStart / oSettings._iDisplayLength ),
"iTotalPages":Math.ceil( oSettings.fnRecordsDisplay() / oSettings._iDisplayLength )
};
}
/* Bootstrap style pagination control */
$.extend( $.fn.dataTableExt.oPagination, {
"bootstrap": {
"fnInit": function( oSettings, nPaging, fnDraw ) {
var oLang = oSettings.oLanguage.oPaginate;
var fnClickHandler = function ( e ) {
e.preventDefault();
if ( oSettings.oApi._fnPageChange(oSettings, e.data.action) ) {
fnDraw( oSettings );
}
};
$(nPaging).addClass('pagination').append(
'<ul>'+
'<li class="prev disabled"><a href="#">&larr; '+oLang.sPrevious+'</a></li>'+
'<li class="next disabled"><a href="#">'+oLang.sNext+' &rarr; </a></li>'+
'</ul>'
);
var els = $('a', nPaging);
$(els[0]).bind( 'click.DT', { action: "previous" }, fnClickHandler );
$(els[1]).bind( 'click.DT', { action: "next" }, fnClickHandler );
},
"fnUpdate": function ( oSettings, fnDraw ) {
var iListLength = 5;
var oPaging = oSettings.oInstance.fnPagingInfo();
var an = oSettings.aanFeatures.p;
var i, j, sClass, iStart, iEnd, iHalf=Math.floor(iListLength/2);
if ( oPaging.iTotalPages < iListLength) {
iStart = 1;
iEnd = oPaging.iTotalPages;
}
else if ( oPaging.iPage <= iHalf ) {
iStart = 1;
iEnd = iListLength;
} else if ( oPaging.iPage >= (oPaging.iTotalPages-iHalf) ) {
iStart = oPaging.iTotalPages - iListLength + 1;
iEnd = oPaging.iTotalPages;
} else {
iStart = oPaging.iPage - iHalf + 1;
iEnd = iStart + iListLength - 1;
}
for ( i=0, iLen=an.length ; i<iLen ; i++ ) {
// Remove the middle elements
$('li:gt(0)', an[i]).filter(':not(:last)').remove();
// Add the new list items and their event handlers
for ( j=iStart ; j<=iEnd ; j++ ) {
sClass = (j==oPaging.iPage+1) ? 'class="active"' : '';
$('<li '+sClass+'><a href="#">'+j+'</a></li>')
.insertBefore( $('li:last', an[i])[0] )
.bind('click', function (e) {
e.preventDefault();
oSettings._iDisplayStart = (parseInt($('a', this).text(),10)-1) * oPaging.iLength;
fnDraw( oSettings );
} );
}
// Add / remove disabled classes from the static elements
if ( oPaging.iPage === 0 ) {
$('li:first', an[i]).addClass('disabled');
} else {
$('li:first', an[i]).removeClass('disabled');
}
if ( oPaging.iPage === oPaging.iTotalPages-1 || oPaging.iTotalPages === 0 ) {
$('li:last', an[i]).addClass('disabled');
} else {
$('li:last', an[i]).removeClass('disabled');
}
$(".pagination li a").off().on('click',function(){
modJs.scrollToTop();
});
}
}
}
} );

View File

@@ -1,105 +0,0 @@
<script type="text/javascript" charset="utf-8">
/* Default class modification */
$.extend( $.fn.dataTableExt.oStdClasses, {
"sSortAsc": "header headerSortDown",
"sSortDesc": "header headerSortUp",
"sSortable": "header"
} );
/* API method to get paging information */
$.fn.dataTableExt.oApi.fnPagingInfo = function ( oSettings )
{
return {
"iStart":oSettings._iDisplayStart,
"iEnd":oSettings.fnDisplayEnd(),
"iLength":oSettings._iDisplayLength,
"iTotal":oSettings.fnRecordsTotal(),
"iFilteredTotal": oSettings.fnRecordsDisplay(),
"iPage":Math.ceil( oSettings._iDisplayStart / oSettings._iDisplayLength ),
"iTotalPages":Math.ceil( oSettings.fnRecordsDisplay() / oSettings._iDisplayLength )
};
}
/* Bootstrap style pagination control */
$.extend( $.fn.dataTableExt.oPagination, {
"bootstrap": {
"fnInit": function( oSettings, nPaging, fnDraw ) {
var oLang = oSettings.oLanguage.oPaginate;
var fnClickHandler = function ( e ) {
e.preventDefault();
if ( oSettings.oApi._fnPageChange(oSettings, e.data.action) ) {
fnDraw( oSettings );
}
};
$(nPaging).addClass('pagination').append(
'<ul>'+
'<li class="prev disabled"><a href="#">&larr; '+oLang.sPrevious+'</a></li>'+
'<li class="next disabled"><a href="#">'+oLang.sNext+' &rarr; </a></li>'+
'</ul>'
);
var els = $('a', nPaging);
$(els[0]).bind( 'click.DT', { action: "previous" }, fnClickHandler );
$(els[1]).bind( 'click.DT', { action: "next" }, fnClickHandler );
},
"fnUpdate": function ( oSettings, fnDraw ) {
var iListLength = 5;
var oPaging = oSettings.oInstance.fnPagingInfo();
var an = oSettings.aanFeatures.p;
var i, j, sClass, iStart, iEnd, iHalf=Math.floor(iListLength/2);
if ( oPaging.iTotalPages < iListLength) {
iStart = 1;
iEnd = oPaging.iTotalPages;
}
else if ( oPaging.iPage <= iHalf ) {
iStart = 1;
iEnd = iListLength;
} else if ( oPaging.iPage >= (oPaging.iTotalPages-iHalf) ) {
iStart = oPaging.iTotalPages - iListLength + 1;
iEnd = oPaging.iTotalPages;
} else {
iStart = oPaging.iPage - iHalf + 1;
iEnd = iStart + iListLength - 1;
}
for ( i=0, iLen=an.length ; i<iLen ; i++ ) {
// Remove the middle elements
$('li:gt(0)', an[i]).filter(':not(:last)').remove();
// Add the new list items and their event handlers
for ( j=iStart ; j<=iEnd ; j++ ) {
sClass = (j==oPaging.iPage+1) ? 'class="active"' : '';
$('<li '+sClass+'><a href="#">'+j+'</a></li>')
.insertBefore( $('li:last', an[i])[0] )
.bind('click', function (e) {
e.preventDefault();
oSettings._iDisplayStart = (parseInt($('a', this).text(),10)-1) * oPaging.iLength;
fnDraw( oSettings );
} );
}
// Add / remove disabled classes from the static elements
if ( oPaging.iPage === 0 ) {
$('li:first', an[i]).addClass('disabled');
} else {
$('li:first', an[i]).removeClass('disabled');
}
if ( oPaging.iPage === oPaging.iTotalPages-1 || oPaging.iTotalPages === 0 ) {
$('li:last', an[i]).addClass('disabled');
} else {
$('li:last', an[i]).removeClass('disabled');
}
$(".pagination li a").off().on('click',function(){
modJs.scrollToTop();
});
}
}
}
} );
</script>

View File

@@ -251,6 +251,8 @@ EmployeeAdapter.method('modEmployeeGetSuccessCallBack' , function(data) {
$("#"+this.getTableName()+" #" + fields[i][0]+"_Name").html(data[fields[i][0]+"_Name"]);
}
$("#"+this.getTableName()+" #supervisor_Name").html(data["supervisor_Name"]);
var subordinates = "";
for(var i=0;i<data.subordinates.length;i++){
if(data.subordinates[i].first_name != undefined && data.subordinates[i].first_name != null){
@@ -350,14 +352,13 @@ EmployeeAdapter.method('changePasswordConfirm', function() {
$('#adminUsersChangePwd_error').hide();
var passwordValidation = function (str) {
var val = /^[a-zA-Z0-9]\w{6,}$/;
return str != null && val.test(str);
return str.length > 7;
};
var password = $('#adminUsersChangePwd #newpwd').val();
if(!passwordValidation(password)){
$('#adminUsersChangePwd_error').html("Password may contain only letters, numbers and should be longer than 6 characters");
$('#adminUsersChangePwd_error').html("Password should be longer than 7 characters");
$('#adminUsersChangePwd_error').show();
return;
}

View File

@@ -558,7 +558,8 @@ SubEmployeeTimeSheetAdapter.method('getCustomTableParams', function() {
SubEmployeeTimeSheetAdapter.method('getFilters', function() {
return [
[ "employee", {"label":"Employee","type":"select2","allow-null":true,"null-label":"All Employees","remote-source":["Employee","id","first_name+last_name"]}]
[ "employee", {"label":"Employee","type":"select2","allow-null":true,"null-label":"All Employees","remote-source":["Employee","id","first_name+last_name"]}],
[ "status", {"label":"Status","type":"select","allow-null":true,"null-label":"All","source":[["Submitted","Submitted"],["Pending","Pending"],["Approved","Approved"], ["Rejected","Rejected"]]}],
];
});

View File

@@ -4888,3 +4888,228 @@ fieldset[disabled] .btn-vk.active {
max-width: 100%;
height: auto;
}
/*
* Component: Control sidebar. By default, this is the right sidebar.
*/
.control-sidebar-bg {
position: fixed;
z-index: 1000;
bottom: 0;
}
.control-sidebar-bg,
.control-sidebar {
top: 0;
right: -230px;
width: 230px;
-webkit-transition: right 0.3s ease-in-out;
-o-transition: right 0.3s ease-in-out;
transition: right 0.3s ease-in-out;
}
.control-sidebar {
position: absolute;
padding-top: 50px;
z-index: 1010;
}
@media (max-width: 768px) {
.control-sidebar {
padding-top: 100px;
}
}
.control-sidebar > .tab-content {
padding: 10px 15px;
}
.control-sidebar.control-sidebar-open,
.control-sidebar.control-sidebar-open + .control-sidebar-bg {
right: 0;
}
.control-sidebar-open .control-sidebar-bg,
.control-sidebar-open .control-sidebar {
right: 0;
}
@media (min-width: 768px) {
.control-sidebar-open .content-wrapper,
.control-sidebar-open .right-side,
.control-sidebar-open .main-footer {
margin-right: 230px;
}
}
.nav-tabs.control-sidebar-tabs > li:first-of-type > a,
.nav-tabs.control-sidebar-tabs > li:first-of-type > a:hover,
.nav-tabs.control-sidebar-tabs > li:first-of-type > a:focus {
border-left-width: 0;
}
.nav-tabs.control-sidebar-tabs > li > a {
border-radius: 0;
}
.nav-tabs.control-sidebar-tabs > li > a,
.nav-tabs.control-sidebar-tabs > li > a:hover {
border-top: none;
border-right: none;
border-left: 1px solid transparent;
border-bottom: 1px solid transparent;
}
.nav-tabs.control-sidebar-tabs > li > a .icon {
font-size: 16px;
}
.nav-tabs.control-sidebar-tabs > li.active > a,
.nav-tabs.control-sidebar-tabs > li.active > a:hover,
.nav-tabs.control-sidebar-tabs > li.active > a:focus,
.nav-tabs.control-sidebar-tabs > li.active > a:active {
border-top: none;
border-right: none;
border-bottom: none;
}
@media (max-width: 768px) {
.nav-tabs.control-sidebar-tabs {
display: table;
}
.nav-tabs.control-sidebar-tabs > li {
display: table-cell;
}
}
.control-sidebar-heading {
font-weight: 400;
font-size: 16px;
padding: 10px 0;
margin-bottom: 10px;
}
.control-sidebar-subheading {
display: block;
font-weight: 400;
font-size: 14px;
}
.control-sidebar-menu {
list-style: none;
padding: 0;
margin: 0 -15px;
}
.control-sidebar-menu > li > a {
display: block;
padding: 10px 15px;
}
.control-sidebar-menu > li > a:before,
.control-sidebar-menu > li > a:after {
content: " ";
display: table;
}
.control-sidebar-menu > li > a:after {
clear: both;
}
.control-sidebar-menu > li > a > .control-sidebar-subheading {
margin-top: 0;
}
.control-sidebar-menu .menu-icon {
float: left;
width: 35px;
height: 35px;
border-radius: 50%;
text-align: center;
line-height: 35px;
}
.control-sidebar-menu .menu-info {
margin-left: 45px;
margin-top: 3px;
}
.control-sidebar-menu .menu-info > .control-sidebar-subheading {
margin: 0;
}
.control-sidebar-menu .menu-info > p {
margin: 0;
font-size: 11px;
}
.control-sidebar-menu .progress {
margin: 0;
}
.control-sidebar-dark {
color: #b8c7ce;
}
.control-sidebar-dark,
.control-sidebar-dark + .control-sidebar-bg {
background: #222d32;
}
.control-sidebar-dark .nav-tabs.control-sidebar-tabs {
border-bottom: #1c2529;
}
.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a {
background: #181f23;
color: #b8c7ce;
}
.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a,
.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a:hover,
.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a:focus {
border-left-color: #141a1d;
border-bottom-color: #141a1d;
}
.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a:hover,
.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a:focus,
.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a:active {
background: #1c2529;
}
.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a:hover {
color: #fff;
}
.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li.active > a,
.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li.active > a:hover,
.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li.active > a:focus,
.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li.active > a:active {
background: #222d32;
color: #fff;
}
.control-sidebar-dark .control-sidebar-heading,
.control-sidebar-dark .control-sidebar-subheading {
color: #fff;
}
.control-sidebar-dark .control-sidebar-menu > li > a:hover {
background: #1e282c;
}
.control-sidebar-dark .control-sidebar-menu > li > a .menu-info > p {
color: #b8c7ce;
}
.control-sidebar-light {
color: #5e5e5e;
}
.control-sidebar-light,
.control-sidebar-light + .control-sidebar-bg {
background: #f9fafc;
border-left: 1px solid #d2d6de;
}
.control-sidebar-light .nav-tabs.control-sidebar-tabs {
border-bottom: #d2d6de;
}
.control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a {
background: #e8ecf4;
color: #444444;
}
.control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a,
.control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a:hover,
.control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a:focus {
border-left-color: #d2d6de;
border-bottom-color: #d2d6de;
}
.control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a:hover,
.control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a:focus,
.control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a:active {
background: #eff1f7;
}
.control-sidebar-light .nav-tabs.control-sidebar-tabs > li.active > a,
.control-sidebar-light .nav-tabs.control-sidebar-tabs > li.active > a:hover,
.control-sidebar-light .nav-tabs.control-sidebar-tabs > li.active > a:focus,
.control-sidebar-light .nav-tabs.control-sidebar-tabs > li.active > a:active {
background: #f9fafc;
color: #111;
}
.control-sidebar-light .control-sidebar-heading,
.control-sidebar-light .control-sidebar-subheading {
color: #111;
}
.control-sidebar-light .control-sidebar-menu {
margin-left: -14px;
}
.control-sidebar-light .control-sidebar-menu > li > a:hover {
background: #f4f4f5;
}
.control-sidebar-light .control-sidebar-menu > li > a .menu-info > p {
color: #5e5e5e;
}