IceHrm v18.0

This commit is contained in:
Thilina Hasantha
2016-08-04 14:27:59 +05:30
parent 9e243073df
commit a10fbba14a
882 changed files with 90619 additions and 2546 deletions

View File

@@ -14,6 +14,14 @@ class TravelActionManager extends ApproveAdminActionManager{
}
public function getModuleTabUrl(){
return "g=modules&n=travel&m=module_Travel_Management";
return "g=modules&n=travel&m=module_Travel_Management#tabEmployeeTravelRecord";
}
public function getModuleSubordinateTabUrl(){
return "g=modules&n=travel&m=module_Travel_Management#tabSubordinateEmployeeTravelRecord";
}
public function getModuleApprovalTabUrl(){
return "g=modules&n=travel&m=module_Travel_Management#tabEmployeeTravelRecordApproval";
}
}

View File

@@ -89,9 +89,13 @@ if (!class_exists('EmployeeTravelRecord')) {
var $notificationModuleName = "Travel Management";
var $notificationUnitName = "TravelRequest";
var $notificationUnitPrefix = "A";
var $notificationUnitAdminUrl = "g=admin&n=travel&m=admin_Employees";
var $notificationUnitAdminUrl = "g=modules&n=travel&m=module_Travel_Management#tabSubordinateEmployeeTravelRecord";
var $preApproveSettingName = "Travel: Pre-Approve Travel Request";
public function isMultiLevelApprovalsEnabled(){
return (SettingsManager::getInstance()->getSetting('Travel: Enable Multi Level Approvals') == '1');
}
public function getAdminAccess()
{
return array("get", "element", "save", "delete");
@@ -124,5 +128,28 @@ if (!class_exists('EmployeeTravelRecord')) {
);
}
public function getType(){
return 'EmployeeTravelRecord';
}
public function allowIndirectMapping(){
if(SettingsManager::getInstance()->getSetting('Travel: Allow Indirect Admins to Approve') == '1'){
return true;
}
return false;
}
}
}
}
if (!class_exists('EmployeeTravelRecordApproval')) {
class EmployeeTravelRecordApproval extends EmployeeTravelRecord
{
public function Find($whereOrderBy,$bindarr=false,$pkeysArr=false,$extra=array()){
return $this->findApprovals(new EmployeeTravelRecord(), $whereOrderBy,$bindarr,$pkeysArr,$extra);
}
}
}

View File

@@ -3,17 +3,17 @@
<div class="small-box bg-red">
<div class="inner">
<h3>
Travel
<t>Travel</t>
</h3>
<p id="numberOfTravel">
Requests
<t>Requests</t>
</p>
</div>
<div class="icon">
<i class="ion ion-plane"></i>
</div>
<a href="#_moduleLink_#" class="small-box-footer" id="travelLink">
Manage Travel <i class="fa fa-arrow-circle-right"></i>
<t>Manage</t> <t>Travel</t> <i class="fa fa-arrow-circle-right"></i>
</a>
</div>
</div>
</div>

View File

@@ -30,7 +30,7 @@ $options = array();
$options['setRemoteTable'] = 'true';
$moduleBuilder = new ModuleBuilder();
$moduleBuilder->addModuleOrGroup(new ModuleTab('EmployeeTravelRecord','EmployeeTravelRecord','Travel Requests','EmployeeTravelRecordAdapter','','',true,$options));
$moduleBuilder->addModuleOrGroup(new ModuleTab('EmployeeTravelRecord','EmployeeTravelRecord','Travel Requests','EmployeeTravelRecordAdminAdapter','','',true,$options));
echo UIManager::getInstance()->renderModule($moduleBuilder);
@@ -38,41 +38,4 @@ $itemName = 'TravelRequest';
$moduleName = 'Travel Management';
$itemNameLower = strtolower($itemName);
$statuses = array("Approved","Pending","Rejected","Cancelled");
?><div class="modal" id="<?=$itemNameLower?>StatusModel" tabindex="-1" role="dialog" aria-labelledby="messageModelLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"><li class="fa fa-times"/></button>
<h3 style="font-size: 17px;">Change <?=$itemName?> Status</h3>
</div>
<div class="modal-body">
<form id="expenseStatusForm">
<div class="control-group">
<label class="control-label" for="expense_status"><?=$itemName?> Status</label>
<div class="controls">
<select type="text" id="<?=$itemNameLower?>_status" class="form-control" name="<?=$itemNameLower?>_status" value="">
<?php foreach($statuses as $status){?>
<option value="<?=$status?>"><?=$status?></option>
<?php }?>
</select>
</div>
</div>
<div class="control-group">
<label class="control-label" for="expense_status">Status Change Note</label>
<div class="controls">
<textarea id="<?=$itemNameLower?>_reason" class="form-control" name="<?=$itemNameLower?>_reason" maxlength="500"></textarea>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button class="btn btn-primary" onclick="modJs.changeStatus();">Change <?=$itemName?> Status</button>
<button class="btn" onclick="modJs.closeDialog();">Not Now</button>
</div>
</div>
</div>
</div>
<?php
include APP_BASE_PATH.'footer.php';
include APP_BASE_PATH.'footer.php';

View File

@@ -110,22 +110,22 @@ EmployeeImmigrationAdapter.method('getFilters', function() {
/**
* EmployeeTravelRecordAdapter
* EmployeeTravelRecordAdminAdapter
*/
function EmployeeTravelRecordAdapter(endPoint,tab,filter,orderBy) {
function EmployeeTravelRecordAdminAdapter(endPoint,tab,filter,orderBy) {
this.initAdapter(endPoint,tab,filter,orderBy);
this.itemName = 'TravelRequest';
this.itemNameLower = 'travelrequest';
this.modulePathName = 'travel';
}
EmployeeTravelRecordAdapter.inherits(ApproveAdminAdapter);
EmployeeTravelRecordAdminAdapter.inherits(ApproveAdminAdapter);
EmployeeTravelRecordAdapter.method('getDataMapping', function() {
EmployeeTravelRecordAdminAdapter.method('getDataMapping', function() {
return [
"id",
"employee",
@@ -138,7 +138,7 @@ EmployeeTravelRecordAdapter.method('getDataMapping', function() {
];
});
EmployeeTravelRecordAdapter.method('getHeaders', function() {
EmployeeTravelRecordAdminAdapter.method('getHeaders', function() {
return [
{ "sTitle": "ID" ,"bVisible":false},
{ "sTitle": "Employee" },
@@ -151,7 +151,7 @@ EmployeeTravelRecordAdapter.method('getHeaders', function() {
];
});
EmployeeTravelRecordAdapter.method('getFormFields', function() {
EmployeeTravelRecordAdminAdapter.method('getFormFields', function() {
return [
["id", {"label": "ID", "type": "hidden"}],
["employee", {