Release note v16.0
------------------ ### Features * Advanced Employee Management Module is now included in IceHrm Open Source Edition * LDAP Module which was only available in IceHrm Enterprise is now included in open source also * Initial implementation of icehrm REST Api for reading employee details * Improvements to data filtering * Multiple tabs for settings module * Overtime reports - now its possible to calculate overtime for employees.compatible with US overtime rules * Logout the user if tried accessing an unauthorized module * Setting for updating module names ### Fixes * Fix issue: classes should be loaded even the module is disabled * Deleting the only Admin user is not allowed * Fixes for handling non UTF-8 * Fix for non-mandatory select boxes are shown as mandatory
This commit is contained in:
@@ -22,7 +22,7 @@ Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilin
|
||||
*/
|
||||
|
||||
class SettingsInitialize extends AbstractInitialize{
|
||||
|
||||
|
||||
public function init(){
|
||||
if(SettingsManager::getInstance()->getSetting("Api: REST Api Enabled") == "1"){
|
||||
$user = BaseService::getInstance()->getCurrentUser();
|
||||
@@ -30,7 +30,7 @@ class SettingsInitialize extends AbstractInitialize{
|
||||
$dbUser->Load("id = ?",array($user->id));
|
||||
$resp = RestApiManager::getInstance()->getAccessTokenForUser($dbUser);
|
||||
if($resp->getStatus() != IceResponse::SUCCESS){
|
||||
LogManager::getInstance()->error("Error occured while creating REST Api acces token for ".$user->username);
|
||||
LogManager::getInstance()->error("Error occurred while creating REST Api access token for ".$user->username);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -25,37 +25,26 @@ $moduleName = 'settings';
|
||||
define('MODULE_PATH',dirname(__FILE__));
|
||||
include APP_BASE_PATH.'header.php';
|
||||
include APP_BASE_PATH.'modulejslibs.inc.php';
|
||||
?><div class="span9">
|
||||
|
||||
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
|
||||
<li class="active"><a id="tabSetting" href="#tabPageSetting">Settings</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane active" id="tabPageSetting">
|
||||
<div id="Setting" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
||||
|
||||
</div>
|
||||
<div id="SettingForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
$moduleBuilder = new ModuleBuilder();
|
||||
|
||||
$options1 = array();
|
||||
$options1['setShowAddNew'] = 'false';
|
||||
|
||||
$moduleBuilder->addModuleOrGroup(new ModuleTab('CompanySetting','Setting','Company','SettingAdapter','{"name":["Company:"]}','name',true,$options1));
|
||||
$moduleBuilder->addModuleOrGroup(new ModuleTab('SystemSetting','Setting','System','SettingAdapter','{"name":["System:"]}','name',false,$options1));
|
||||
$moduleBuilder->addModuleOrGroup(new ModuleTab('EmailSetting','Setting','Email','SettingAdapter','{"name":["Email:"]}','name',false,$options1));
|
||||
$moduleBuilder->addModuleOrGroup(new ModuleTab('LeaveSetting','Setting','Leave / PTO','SettingAdapter','{"name":["Leave:"]}','name',false,$options1));
|
||||
$moduleBuilder->addModuleOrGroup(new ModuleTab('LDAPSetting','Setting','LDAP','SettingAdapter','{"name":["LDAP:"]}','name',false,$options1));
|
||||
$moduleBuilder->addModuleOrGroup(new ModuleTab('OtherSetting','Setting','Other','SettingAdapter','{"name":["Projects:","Attendance:","Recruitment:","Notifications:","Expense:","Travel:","Api:"]}','name',false,$options1));
|
||||
echo UIManager::getInstance()->renderModule($moduleBuilder);
|
||||
?>
|
||||
</div>
|
||||
<script>
|
||||
var modJsList = new Array();
|
||||
|
||||
modJsList['tabSetting'] = new SettingAdapter('Setting','Setting','','name');
|
||||
modJsList['tabSetting'].setShowAddNew(false);
|
||||
|
||||
var modJs = modJsList['tabSetting'];
|
||||
|
||||
$(window).load(function() {
|
||||
modJs.loadRemoteDataForSettings();
|
||||
});
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
<?php include APP_BASE_PATH.'footer.php';?>
|
||||
@@ -62,24 +62,46 @@ SettingAdapter.method('edit', function(id) {
|
||||
|
||||
|
||||
SettingAdapter.method('fillForm', function(object) {
|
||||
this.uber('fillForm',object);
|
||||
|
||||
var metaField = this.getMetaFieldForRendering('value');
|
||||
var metaVal = object[metaField];
|
||||
var formFields = null;
|
||||
|
||||
if(metaVal != "" && metaVal != undefined){
|
||||
var formFields = [
|
||||
[ "id", {"label":"ID","type":"hidden"}],
|
||||
JSON.parse(metaVal)
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
this.uber('fillForm',object, null, formFields);
|
||||
$("#helptext").html(object.description);
|
||||
});
|
||||
|
||||
|
||||
SettingAdapter.method('loadRemoteDataForSettings', function () {
|
||||
var field = ["country", {"label": "Country", "type": "select2", "remote-source": ["Country", "code", "name"]}];
|
||||
if (field[1]['remote-source'] != undefined && field[1]['remote-source'] != null) {
|
||||
var key = field[1]['remote-source'][0] + "_" + field[1]['remote-source'][1] + "_" + field[1]['remote-source'][2];
|
||||
this.fieldMasterDataKeys[key] = false;
|
||||
this.sourceMapping[field[0]] = field[1]['remote-source'];
|
||||
var fields = [];
|
||||
var field = null;
|
||||
fields.push(["country", {"label": "Country", "type": "select2multi", "remote-source": ["Country", "id", "name"]}]);
|
||||
fields.push(["currency", {"label": "Currency", "type": "select2multi", "remote-source": ["CurrencyType","id","code+name"]}]);
|
||||
fields.push(["nationality", {"label": "Nationality", "type": "select2multi", "remote-source": ["Nationality","id","name"]}]);
|
||||
|
||||
var callBackData = {};
|
||||
callBackData['callBack'] = 'initFieldMasterDataResponse';
|
||||
callBackData['callBackData'] = [key];
|
||||
for(index in fields){
|
||||
field = fields[index];
|
||||
if (field[1]['remote-source'] != undefined && field[1]['remote-source'] != null) {
|
||||
var key = field[1]['remote-source'][0] + "_" + field[1]['remote-source'][1] + "_" + field[1]['remote-source'][2];
|
||||
this.fieldMasterDataKeys[key] = false;
|
||||
this.sourceMapping[field[0]] = field[1]['remote-source'];
|
||||
|
||||
var callBackData = {};
|
||||
callBackData['callBack'] = 'initFieldMasterDataResponse';
|
||||
callBackData['callBackData'] = [key];
|
||||
|
||||
this.getFieldValues(field[1]['remote-source'], callBackData);
|
||||
}
|
||||
}
|
||||
|
||||
this.getFieldValues(field[1]['remote-source'], callBackData);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user