Compare commits
1 Commits
v28.2.0.OS
...
feature/cu
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
84548c4f63 |
@@ -5,7 +5,7 @@ if(!file_exists('config.php')){
|
||||
}
|
||||
include ('config.php');
|
||||
if(!isset($_REQUEST['g']) || !isset($_REQUEST['n'])){
|
||||
header("Location:".CLIENT_BASE_URL."login.php");
|
||||
header("Location:".CLIENT_BASE_URL."login.php");
|
||||
exit();
|
||||
}
|
||||
$group = $_REQUEST['g'];
|
||||
@@ -14,9 +14,16 @@ $name= $_REQUEST['n'];
|
||||
$groups = array('admin','modules');
|
||||
|
||||
if($group == 'admin' || $group == 'modules'){
|
||||
$name = str_replace("..","",$name);
|
||||
$name = str_replace("..","",$name);
|
||||
$name = str_replace("/","",$name);
|
||||
include APP_BASE_PATH.'/'.$group.'/'.$name.'/index.php';
|
||||
}else if ($group == 'extension'){
|
||||
$name = str_replace("..","",$name);
|
||||
$name = str_replace("/","",$name);
|
||||
$moduleName = $name;
|
||||
$moduleGroup = 'extensions';
|
||||
$extensionIndex = APP_BASE_PATH.'/../extensions/'.$name.'/web/index.php';
|
||||
include APP_BASE_PATH.'extensions/wrapper.php';
|
||||
}else{
|
||||
exit();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,10 +13,10 @@ if(!defined('HOME_LINK_OTHERS')){
|
||||
}
|
||||
|
||||
//Version
|
||||
define('VERSION', '28.2.0.OS');
|
||||
define('CACHE_VALUE', '28.2.0.OS.2020-11130243');
|
||||
define('VERSION_NUMBER', '280200');
|
||||
define('VERSION_DATE', '13/11/2020');
|
||||
define('VERSION', '28.1.1.OS');
|
||||
define('CACHE_VALUE', '28.1.1.OS.2020-11071143');
|
||||
define('VERSION_NUMBER', '280101');
|
||||
define('VERSION_DATE', '07/11/2020');
|
||||
|
||||
if(!defined('CONTACT_EMAIL')){define('CONTACT_EMAIL','icehrm@gamonoid.com');}
|
||||
if(!defined('KEY_PREFIX')){define('KEY_PREFIX','IceHrm');}
|
||||
@@ -36,3 +36,7 @@ define('ALL_CLIENT_BASE_PATH', '/var/www/icehrm.app/icehrmapp/');
|
||||
define('LDAP_ENABLED', true);
|
||||
define('RECRUITMENT_ENABLED', false);
|
||||
define('APP_WEB_URL', 'https://icehrm.com');
|
||||
|
||||
if (!defined('EXTENSIONS_URL')) {
|
||||
define('EXTENSIONS_URL', str_replace('/web/', '/extensions/', BASE_URL));
|
||||
}
|
||||
|
||||
31
core/extensions/wrapper.php
Normal file
31
core/extensions/wrapper.php
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
use Classes\ExtensionManager;
|
||||
use Utils\LogManager;
|
||||
|
||||
if (!isset($extensionIndex)) {
|
||||
exit();
|
||||
}
|
||||
define('MODULE_PATH',APP_BASE_PATH.'extensions/'.$moduleName);
|
||||
include APP_BASE_PATH.'header.php';
|
||||
$extensionManager = new ExtensionManager();
|
||||
$meta = $extensionManager->getExtensionMetaData($moduleName);
|
||||
if (!$meta) {
|
||||
LogManager::getInstance()->error("Extension metadata.json not found for $moduleName");
|
||||
exit();
|
||||
}
|
||||
|
||||
if ($meta->headless) {
|
||||
LogManager::getInstance()->error("Extension running in headless mode for $moduleName");
|
||||
exit();
|
||||
}
|
||||
?>
|
||||
<script type="text/javascript" src="<?=BASE_URL.'dist/vendorReact.js'?>?v=<?=$jsVersion?>"></script>
|
||||
<script type="text/javascript" src="<?=BASE_URL.'dist/vendorAntd.js'?>?v=<?=$jsVersion?>"></script>
|
||||
<script type="text/javascript" src="<?=BASE_URL.'dist/vendorAntdIcons.js'?>?v=<?=$jsVersion?>"></script>
|
||||
<script type="text/javascript" src="<?=BASE_URL.'dist/vendorAntv.js'?>?v=<?=$jsVersion?>"></script>
|
||||
<script type="text/javascript" src="<?=BASE_URL.'dist/vendorOther.js'?>?v=<?=$jsVersion?>"></script>
|
||||
<script type="text/javascript" src="<?=EXTENSIONS_URL.$moduleName.'/dist/'.$moduleName.'.js'?>?v=<?=$jsVersion?>"></script>
|
||||
<?php
|
||||
include $extensionIndex;
|
||||
include APP_BASE_PATH.'footer.php';
|
||||
?>
|
||||
@@ -215,6 +215,26 @@ if (defined('SYM_CLIENT')) {
|
||||
|
||||
<?php }?>
|
||||
|
||||
<?php foreach($extensions as $menu){?>
|
||||
<?php if(count($menu['menu']) == 0){continue;}?>
|
||||
<li class="treeview" ref="<?="extension_".str_replace(" ", "_", $menu['name'])?>">
|
||||
<a href="#">
|
||||
<i class="fa <?=!isset($mainIcons[$menu['name']])?"fa-th":$mainIcons[$menu['name']];?>"></i></i> <span><?=\Classes\LanguageManager::tran($menu['name'])?></span>
|
||||
<i class="fa fa-angle-left pull-right"></i>
|
||||
</a>
|
||||
|
||||
<ul class="treeview-menu" id="<?="extension_".str_replace(" ", "_", $menu['name'])?>">
|
||||
<?php foreach ($menu['menu'] as $item){?>
|
||||
<li>
|
||||
<a data-turbolinks="true" href="<?=CLIENT_BASE_URL?>?g=extension&n=<?=$item['name']?>&m=<?="extension_".str_replace(" ", "_", $menu['name'])?>">
|
||||
<i class="fa <?=!isset($item['icon'])?"fa-angle-double-right":$item['icon']?>"></i> <?=\Classes\LanguageManager::tran($item['label'])?>
|
||||
</a>
|
||||
</li>
|
||||
<?php }?>
|
||||
</ul>
|
||||
</li>
|
||||
<?php }?>
|
||||
|
||||
<?php
|
||||
if(file_exists(CLIENT_PATH.'/third_party_meta.json')){
|
||||
$tpModules = json_decode(file_get_contents(CLIENT_PATH.'/third_party_meta.json'),true);
|
||||
|
||||
@@ -291,6 +291,12 @@ foreach ($ams as $am) {
|
||||
}
|
||||
}
|
||||
|
||||
$extensionManager = new \Classes\ExtensionManager();
|
||||
$extensionData = $extensionManager->setupExtensions();
|
||||
$extensionIcons = $extensionData[0];
|
||||
$extensionTemp = $extensionData[1];
|
||||
$extensionMenus = array_keys($extensionIcons);
|
||||
|
||||
foreach ($adminModulesTemp as $k => $v) {
|
||||
ksort($adminModulesTemp[$k]);
|
||||
}
|
||||
@@ -299,6 +305,10 @@ foreach ($userModulesTemp as $k => $v) {
|
||||
ksort($userModulesTemp[$k]);
|
||||
}
|
||||
|
||||
foreach ($extensionTemp as $k => $v) {
|
||||
ksort($extensionTemp[$k]);
|
||||
}
|
||||
|
||||
$adminIcons = json_decode(file_get_contents(CLIENT_PATH.'/admin/meta.json'), true);
|
||||
$adminMenus = array_keys($adminIcons);
|
||||
|
||||
@@ -332,8 +342,6 @@ foreach ($userMenus as $menu) {
|
||||
}
|
||||
}
|
||||
|
||||
$mainIcons = array_merge($adminIcons, $userIcons);
|
||||
|
||||
foreach ($userModulesTemp as $k => $v) {
|
||||
if (!in_array($k, $added)) {
|
||||
$arr = array("name"=>$k,"menu"=>$userModulesTemp[$k]);
|
||||
@@ -341,6 +349,25 @@ foreach ($userModulesTemp as $k => $v) {
|
||||
}
|
||||
}
|
||||
|
||||
$extensions = array();
|
||||
foreach ($extensionMenus as $menu) {
|
||||
if (isset($extensionTemp[$menu])) {
|
||||
$arr = array("name"=>$menu,"menu"=>$extensionTemp[$menu]);
|
||||
$extensions[] = $arr;
|
||||
$added[] = $menu;
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($extensionTemp as $k => $v) {
|
||||
if (!in_array($k, $added)) {
|
||||
$arr = array("name"=>$k,"menu"=>$extensionTemp[$k]);
|
||||
$extensions[] = $arr;
|
||||
}
|
||||
}
|
||||
|
||||
// Merge icons
|
||||
$mainIcons = array_merge($adminIcons, $userIcons, $extensionIcons);
|
||||
|
||||
//Remove modules having no permissions
|
||||
if (!empty($user)) {
|
||||
if (!empty($user->user_roles)) {
|
||||
@@ -393,4 +420,24 @@ if (!empty($user)) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($extensions as $fk => $menu) {
|
||||
foreach ($menu['menu'] as $key => $item) {
|
||||
// If the user's once of the user roles are blacklisted for the module
|
||||
$commonRoles = array_intersect($item['user_roles_blacklist'], $userRoles);
|
||||
if (!empty($commonRoles)) {
|
||||
unset($extensions[$fk]['menu'][$key]);
|
||||
}
|
||||
if (!in_array($user->user_level, $item['user_levels'])) {
|
||||
if (!empty($userRoles)) {
|
||||
$commonRoles = array_intersect($item['user_roles'], $userRoles);
|
||||
if (empty($commonRoles)) {
|
||||
unset($extensions[$fk]['menu'][$key]);
|
||||
}
|
||||
} else {
|
||||
unset($extensions[$fk]['menu'][$key]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -278,4 +278,12 @@ abstract class AbstractModuleManager
|
||||
{
|
||||
BaseService::getInstance()->addCalculationHook($code, $name, $class, $method);
|
||||
}
|
||||
|
||||
public function install() {
|
||||
|
||||
}
|
||||
|
||||
public function uninstall() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
143
core/src/Classes/ExtensionManager.php
Normal file
143
core/src/Classes/ExtensionManager.php
Normal file
@@ -0,0 +1,143 @@
|
||||
<?php
|
||||
|
||||
namespace Classes;
|
||||
|
||||
use Utils\LogManager;
|
||||
|
||||
class ExtensionManager
|
||||
{
|
||||
const GROUP = 'extension';
|
||||
protected function processExtensionInDB() {
|
||||
$dbModule = new \Modules\Common\Model\Module();
|
||||
$extensions = $dbModule->Find("mod_group = ?", array(self::GROUP));
|
||||
|
||||
$extensionsInDB = [];
|
||||
foreach ($extensions as $dbm) {
|
||||
$extensionsInDB[$dbm->name] = $dbm;
|
||||
ModuleAccessService::getInstance()->setModule($dbm->name, self::GROUP, $dbm);
|
||||
}
|
||||
|
||||
return $extensionsInDB;
|
||||
}
|
||||
|
||||
public function getExtensionsPath() {
|
||||
return APP_BASE_PATH.'../extensions/';
|
||||
}
|
||||
|
||||
public function getExtensionMetaData($extensionName)
|
||||
{
|
||||
return json_decode(file_get_contents($this->getExtensionsPath().$extensionName.'/meta.json'));
|
||||
}
|
||||
|
||||
public function setupExtensions() {
|
||||
$menu = [];
|
||||
$extensions = [];
|
||||
$extensionDirs = scandir($this->getExtensionsPath());
|
||||
$currentLocation = 0;
|
||||
|
||||
$extensionsInDB = $this->processExtensionInDB();
|
||||
|
||||
$needToInstall = false;
|
||||
|
||||
foreach ($extensionDirs as $extensionDir) {
|
||||
if (is_dir($this->getExtensionsPath().$extensionDir) && $extensionDir != '.' && $extensionDir != '..') {
|
||||
$meta = $this->getExtensionMetaData($extensionDir);
|
||||
|
||||
$arr = [];
|
||||
$arr['name'] = $extensionDir;
|
||||
$arr['label'] = $meta->label;
|
||||
$arr['icon'] = $meta->icon;
|
||||
$arr['menu'] = $meta->menu[0];
|
||||
$arr['order'] = 0;
|
||||
$arr['status'] = 'Enabled';
|
||||
$arr['user_levels'] = $meta->user_levels;
|
||||
$arr['user_roles'] = isset($meta->user_roles)?$meta->user_roles:"";
|
||||
$arr['model_namespace'] = $meta->model_namespace;
|
||||
$arr['manager'] = $meta->manager;
|
||||
|
||||
// Add menu
|
||||
$menu[$meta->menu[0]] = $meta->menu[1];
|
||||
|
||||
//Check in admin dbmodules
|
||||
if (isset($extensionsInDB[$arr['name']])) {
|
||||
$dbModule = $extensionsInDB[$arr['name']];
|
||||
|
||||
$arr['name'] = $dbModule->name;
|
||||
$arr['label'] = $dbModule->label;
|
||||
$arr['icon'] = $dbModule->icon;
|
||||
$arr['menu'] = $dbModule->menu;
|
||||
$arr['status'] = $dbModule->status;
|
||||
$arr['user_levels'] = json_decode($dbModule->user_levels);
|
||||
$arr['user_roles'] = empty($dbModule->user_roles)
|
||||
? [] : json_decode($dbModule->user_roles);
|
||||
$arr['user_roles_blacklist'] = empty($dbModule->user_roles_blacklist)
|
||||
? [] : json_decode($dbModule->user_roles_blacklist);
|
||||
} else {
|
||||
$dbModule = new \Modules\Common\Model\Module();
|
||||
$dbModule->menu = $arr['menu'];
|
||||
$dbModule->name = $arr['name'];
|
||||
$dbModule->label = $arr['label'];
|
||||
$dbModule->icon = $arr['icon'];
|
||||
$dbModule->mod_group = self::GROUP;
|
||||
$dbModule->mod_order = $arr['order'];
|
||||
$dbModule->status = "Enabled";
|
||||
$dbModule->version = isset($meta->version)?$meta->version:"";
|
||||
$dbModule->update_path = self::GROUP.">".$extensionDir;
|
||||
$dbModule->user_levels = isset($meta->user_levels)?json_encode($meta->user_levels):"";
|
||||
$dbModule->user_roles = isset($meta->user_roles)?json_encode($meta->user_roles):"";
|
||||
|
||||
$ok = $dbModule->Save();
|
||||
if (!$ok) {
|
||||
LogManager::getInstance()->error('Error saving module: '.$dbModule->name);
|
||||
}
|
||||
$needToInstall = $ok;
|
||||
}
|
||||
|
||||
/* @var \Classes\AbstractModuleManager */
|
||||
$manager = $this->includeModuleManager($extensionDir, $arr);
|
||||
if ($dbModule->status == 'Disabled') {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($needToInstall) {
|
||||
$manager->install();
|
||||
}
|
||||
|
||||
$menuName = $arr['menu'];
|
||||
if (!isset($extensions[$menuName])) {
|
||||
$extensions[$menuName] = array();
|
||||
}
|
||||
|
||||
if (!$meta->headless) {
|
||||
if ($arr['order'] == '0' || $arr['order'] == '') {
|
||||
$extensions[$menuName]["Z".$currentLocation] = $arr;
|
||||
$currentLocation++;
|
||||
} else {
|
||||
$extensions[$arr['menu']]["A".$arr['order']] = $arr;
|
||||
}
|
||||
}
|
||||
|
||||
$initializer = $manager->getInitializer();
|
||||
if ($initializer !== null) {
|
||||
$initializer->setBaseService(BaseService::getInstance());
|
||||
$initializer->init();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return [$menu, $extensions];
|
||||
}
|
||||
|
||||
public function includeModuleManager($name, $data)
|
||||
{
|
||||
include($this->getExtensionsPath().$name.'/'.$name.'.php');
|
||||
$moduleManagerClass = $data['manager'];
|
||||
/* @var \Classes\AbstractModuleManager $moduleManagerObj*/
|
||||
$moduleManagerObj = new $moduleManagerClass();
|
||||
$moduleManagerObj->setModuleObject($data);
|
||||
$moduleManagerObj->setModuleType(self::GROUP);
|
||||
$moduleManagerObj->setModulePath(CLIENT_PATH.'/'.self::GROUP.'/'.$name);
|
||||
\Classes\BaseService::getInstance()->addModuleManager($moduleManagerObj);
|
||||
return $moduleManagerObj;
|
||||
}
|
||||
}
|
||||
20
core/src/Classes/IceExtension.php
Normal file
20
core/src/Classes/IceExtension.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
namespace Classes;
|
||||
|
||||
abstract class IceExtension extends AbstractModuleManager
|
||||
{
|
||||
public function initializeUserClasses()
|
||||
{
|
||||
// TODO: Implement initializeUserClasses() method.
|
||||
}
|
||||
|
||||
public function initializeFieldMappings()
|
||||
{
|
||||
// TODO: Implement initializeFieldMappings() method.
|
||||
}
|
||||
|
||||
public function initializeDatabaseErrorMappings()
|
||||
{
|
||||
// TODO: Implement initializeDatabaseErrorMappings() method.
|
||||
}
|
||||
}
|
||||
@@ -8,6 +8,8 @@
|
||||
|
||||
namespace Classes\Migration;
|
||||
|
||||
use Utils\LogManager;
|
||||
|
||||
abstract class AbstractMigration
|
||||
{
|
||||
protected $file;
|
||||
@@ -16,7 +18,7 @@ abstract class AbstractMigration
|
||||
|
||||
protected $lastError;
|
||||
|
||||
public function __construct($file)
|
||||
public function __construct($file = null)
|
||||
{
|
||||
$this->file = $file;
|
||||
}
|
||||
@@ -50,6 +52,7 @@ abstract class AbstractMigration
|
||||
$ret = $this->db()->Execute($sql);
|
||||
if (!$ret) {
|
||||
$this->lastError = $this->db()->ErrorMsg();
|
||||
LogManager::getInstance()->error('Error in migration: '.$this->lastError);
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ class ModuleAccess
|
||||
* @param $name
|
||||
* @param $group
|
||||
*/
|
||||
public function __construct($name, $group)
|
||||
public function __construct($name, $group = 'extension')
|
||||
{
|
||||
$this->name = $name;
|
||||
$this->group = $group;
|
||||
|
||||
1
extensions/gitkeep
Executable file
1
extensions/gitkeep
Executable file
@@ -0,0 +1 @@
|
||||
git keep
|
||||
42
gulpfile.js
42
gulpfile.js
@@ -359,6 +359,48 @@ gulp.task('modules-js', (done) => {
|
||||
.pipe(gulp.dest('./web/dist'));
|
||||
});
|
||||
|
||||
gulp.task('extension-js', (done) => {
|
||||
let extension = process.argv.filter((item) => item.substr(0, 3) === '--x');
|
||||
if (extension.length === 1) {
|
||||
extension = extension[0].substr(3);
|
||||
}
|
||||
|
||||
// map them to our stream function
|
||||
return browserify({
|
||||
entries: [`extensions/${extension}/web/js/index.js`],
|
||||
basedir: '.',
|
||||
debug: true,
|
||||
cache: {},
|
||||
packageCache: {},
|
||||
})
|
||||
.external(vendorsFlat)
|
||||
.transform('babelify', {
|
||||
plugins: [
|
||||
['@babel/plugin-proposal-class-properties', { loose: true }],
|
||||
],
|
||||
presets: ['@babel/preset-env', '@babel/preset-react'],
|
||||
extensions: ['.js', '.jsx'],
|
||||
})
|
||||
.transform(require('browserify-css'))
|
||||
.bundle()
|
||||
.pipe(source(`${extension}.js`))
|
||||
.pipe(buffer())
|
||||
.pipe(ifElse(!isProduction, () => sourcemaps.init({ loadMaps: true })))
|
||||
.pipe(ifElse(isProduction, () => uglifyes(
|
||||
{
|
||||
compress: true,
|
||||
mangle: {
|
||||
reserved: [],
|
||||
},
|
||||
},
|
||||
)))
|
||||
.pipe(ifElse(isProduction, () => javascriptObfuscator({
|
||||
compact: true,
|
||||
})))
|
||||
.pipe(ifElse(!isProduction, () => sourcemaps.write('./')))
|
||||
.pipe(gulp.dest(`./extensions/${extension}/dist`));
|
||||
});
|
||||
|
||||
|
||||
gulp.task('watch', () => {
|
||||
gulp.watch('web/admin/src/*/*.js', gulp.series('admin-js'));
|
||||
|
||||
737
release.md
737
release.md
@@ -1,19 +1,3 @@
|
||||
# Release Notes IceHrm Open Source
|
||||
|
||||
## Release note v28.2.0.OS
|
||||
|
||||
### New features
|
||||
|
||||
* 🦠 💉 Custom extensions [https://icehrm.gitbook.io/icehrm/developer-guide/creating-first-extension](https://icehrm.gitbook.io/icehrm/developer-guide/creating-first-extension)
|
||||
|
||||
## Release note v28.1.1.OS
|
||||
|
||||
### 🐛 Bug fixes
|
||||
|
||||
* Fixing inability to filter employee documents
|
||||
* Fixed the issue with selecting projects when adding timesheets details
|
||||
* Fix issues occurred due to incorrectly configured API
|
||||
|
||||
## Release note v28.1.0.OS
|
||||
|
||||
### 🧲 New features
|
||||
@@ -32,477 +16,441 @@
|
||||
* New REST endpoints for employee qualifications
|
||||
|
||||
### 🐛 Bug fixes
|
||||
|
||||
* Fixed, issue with managers being able to create performance reviews for employees who are not their direct reports
|
||||
* Fixed, issues related to using full profile image instead of using smaller version of profile image
|
||||
* Changing third gender to other
|
||||
* Improvements and fixes for internal frontend data caching
|
||||
|
||||
## Release note v27.0.2.OS
|
||||
|
||||
This fixes some major issues found in v27.0.1.OS
|
||||
|
||||
### 🐛 Bug fixes
|
||||
|
||||
* Filtering across whole application was broken and now it's fixed
|
||||
* Fixed the issue related to photo not being shown to the admin when photo attendance is enabled
|
||||
|
||||
### 🧑🏻💻 For developers
|
||||
|
||||
* We have added support for vagrant development environment based on Debian 10 / PHP 7.3 \(with Xdebug\) / Nginx / MySQL
|
||||
|
||||
## Release note v27.0.0.OS
|
||||
|
||||
### New features
|
||||
|
||||
* Employee document management is now available for open-source version
|
||||
* UI/UX improvements \(new fonts / better spacing\)
|
||||
* UI/UX improvements (new fonts / better spacing)
|
||||
* Payroll module improvements
|
||||
* Security improvements to password policy
|
||||
* Albanian language is now available
|
||||
* Ability to deploy using docker
|
||||
|
||||
### For developers
|
||||
|
||||
* Developer environment based on docker [https://www.youtube.com/watch?v=sz8OV\_ON6S8](https://www.youtube.com/watch?v=sz8OV_ON6S8)
|
||||
* Developer environment based on docker [https://www.youtube.com/watch?v=sz8OV_ON6S8](https://www.youtube.com/watch?v=sz8OV_ON6S8)
|
||||
* [Developer guide](https://icehrm.gitbook.io/icehrm/developer-guide/create-new-module)
|
||||
* Fully supports all php versions >= 5.6 upto v7.3 \(php 5.6 support is deprecated and not recommended\)
|
||||
* Fully supports all php versions >= 5.6 upto v7.3 (php 5.6 support is deprecated and not recommended)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
* Fixes to newly found vulnerabilities \([https://github.com/gamonoid/icehrm/issues/213](https://github.com/gamonoid/icehrm/issues/213)\): credits to: [Talos](https://talosintelligence.com/)
|
||||
* Fixes to newly found vulnerabilities (https://github.com/gamonoid/icehrm/issues/213): credits to: [Talos](https://talosintelligence.com/)
|
||||
* Fixed the travel request approval for managers
|
||||
* Fixed the issue with attendance source IP display
|
||||
* Fixing Api issues in PHP 7.3
|
||||
|
||||
## Release note v26.6.0.OS
|
||||
|
||||
Release note v26.6.0.OS
|
||||
------------------------
|
||||
|
||||
### Features
|
||||
|
||||
* Some Improvements to UI such as updating Icons and upgrading font-awesome to its latest version
|
||||
* Tracking IP and location of the employee when marking attendance, this is done when updating attendance via mobile
|
||||
* Ability to control location tracking via mobile using server side settings
|
||||
* Improvements to translations
|
||||
|
||||
* Some Improvements to UI such as updating Icons and upgrading font-awesome to its latest version
|
||||
* Tracking IP and location of the employee when marking attendance, this is done when updating attendance via mobile
|
||||
* Ability to control location tracking via mobile using server side settings
|
||||
* Improvements to translations
|
||||
* Compatible with location tracking with icehrm mobile app
|
||||
|
||||
### Mobile App
|
||||
|
||||
* This release is coupled with mobile application release on AppStore \([https://apple.co/2Yrtxoy](https://apple.co/2Yrtxoy)\) and Google Play \([http://bit.ly/2OkMmKe](http://bit.ly/2OkMmKe)\)
|
||||
* This release is coupled with mobile application release on AppStore (https://apple.co/2Yrtxoy) and Google Play (http://bit.ly/2OkMmKe)
|
||||
|
||||
### Fixes
|
||||
|
||||
* Order projects by name on Timesheet project listing \(This is to make it easier to edit timesheets with many projects\)
|
||||
* Link home page user profile to employee profile update page
|
||||
* Fix issues related to configuring Api with mobile app
|
||||
|
||||
* Order projects by name on Timesheet project listing (This is to make it easier to edit timesheets with many projects)
|
||||
* Link home page user profile to employee profile update page
|
||||
* Fix issues related to configuring Api with mobile app
|
||||
|
||||
### Security Improvements
|
||||
* Upgrade npm missing dependencies
|
||||
|
||||
* Upgrade npm missing dependencies
|
||||
|
||||
## Release note v26.2.0.OS
|
||||
|
||||
Release note v26.2.0.OS
|
||||
------------------------
|
||||
|
||||
### Features
|
||||
* Add staff directory module
|
||||
* Update client-side js to ES6
|
||||
* Compatible with IceHrm Mobile App
|
||||
* Use npm libraries when possible
|
||||
* Add gulp build for frontend assets
|
||||
* Allow generating QR code with rest api key (https://github.com/gamonoid/icehrm/issues/169)
|
||||
* Updated readme for development setup with vagrant
|
||||
|
||||
* Add staff directory module
|
||||
* Update client-side js to ES6
|
||||
* Compatible with IceHrm Mobile App
|
||||
* Use npm libraries when possible
|
||||
* Add gulp build for frontend assets
|
||||
* Allow generating QR code with rest api key \([https://github.com/gamonoid/icehrm/issues/169](https://github.com/gamonoid/icehrm/issues/169)\)
|
||||
* Updated readme for development setup with vagrant
|
||||
|
||||
|
||||
### Fixes
|
||||
* Add missing employee details report
|
||||
* Fix: Labels of 'Employee Custom Fields' not displayed (https://github.com/gamonoid/icehrm/issues/146)
|
||||
* Fix: Work week for all counties can not be edited
|
||||
* Fix: Custom fields are not shown under employee profile (https://github.com/gamonoid/icehrm/issues/159)
|
||||
* Fix: Additional buttons shown below timesheet list (https://github.com/gamonoid/icehrm/issues/171)
|
||||
* Updates to Italian translations (https://github.com/gamonoid/icehrm/pull/166) by https://github.com/nightwatch75
|
||||
|
||||
* Add missing employee details report
|
||||
* Fix: Labels of 'Employee Custom Fields' not displayed \([https://github.com/gamonoid/icehrm/issues/146](https://github.com/gamonoid/icehrm/issues/146)\)
|
||||
* Fix: Work week for all counties can not be edited
|
||||
* Fix: Custom fields are not shown under employee profile \([https://github.com/gamonoid/icehrm/issues/159](https://github.com/gamonoid/icehrm/issues/159)\)
|
||||
* Fix: Additional buttons shown below timesheet list \([https://github.com/gamonoid/icehrm/issues/171](https://github.com/gamonoid/icehrm/issues/171)\)
|
||||
* Updates to Italian translations \([https://github.com/gamonoid/icehrm/pull/166](https://github.com/gamonoid/icehrm/pull/166)\) by [https://github.com/nightwatch75](https://github.com/nightwatch75)
|
||||
|
||||
## Release note v24.0.0.OS
|
||||
|
||||
Release note v24.0.0.OS
|
||||
------------------------
|
||||
|
||||
### Features
|
||||
|
||||
* Allow passing additional parameters to payroll predefined methods
|
||||
* Pass leave type name in function field to get leave count for a given type
|
||||
* Add employee name to payroll report
|
||||
* Show supervisor name on employee profile
|
||||
* Add custom fields to employee report
|
||||
* Add filter by status feature to subordinate time sheets
|
||||
* Allow passing additional parameters to payroll predefined methods
|
||||
* Pass leave type name in function field to get leave count for a given type
|
||||
* Add employee name to payroll report
|
||||
* Show supervisor name on employee profile
|
||||
* Add custom fields to employee report
|
||||
* Add filter by status feature to subordinate time sheets
|
||||
|
||||
### Security Fixes
|
||||
|
||||
* Fix missing login form CSRF token
|
||||
* Fix risky usage of hashed password in request
|
||||
* Fixing permission issues on module access for each user level
|
||||
* Prevent manager from accessing sensitive user records
|
||||
|
||||
* Fix missing login form CSRF token
|
||||
* Fix risky usage of hashed password in request
|
||||
* Fixing permission issues on module access for each user level
|
||||
* Prevent manager from accessing sensitive user records
|
||||
|
||||
### Other Fixes
|
||||
|
||||
* Hide employee salary from managers
|
||||
* Prevent manager from accessing audit, cron and notifications
|
||||
* Prevent managers from deleting employees
|
||||
* Validate overtime start and end times
|
||||
* Fix issue: employee can download draft payroll
|
||||
|
||||
## Release note v23.0.1.OS
|
||||
|
||||
* Hide employee salary from managers
|
||||
* Prevent manager from accessing audit, cron and notifications
|
||||
* Prevent managers from deleting employees
|
||||
* Validate overtime start and end times
|
||||
* Fix issue: employee can download draft payroll
|
||||
|
||||
Release note v23.0.1.OS
|
||||
------------------------
|
||||
This release include some very critical security fixes. We recommend upgrading your installation to latest release.
|
||||
|
||||
### Fixes
|
||||
|
||||
* Fix missing login form CSRF token
|
||||
* Fix risky usage of hashed password in request
|
||||
|
||||
## Release note v23.0.0.OS
|
||||
|
||||
* Fix missing login form CSRF token
|
||||
* Fix risky usage of hashed password in request
|
||||
|
||||
Release note v23.0.0.OS
|
||||
------------------------
|
||||
### Features
|
||||
* Loading last used module when revisiting application
|
||||
* Finnish language support (Beta)
|
||||
* Improvements to German, Italian and Chinese language translations
|
||||
* Allow quickly switching languages
|
||||
* Improvements to security for preventing possible LFI attacks
|
||||
* Allow manual date inputs
|
||||
* Custom fields for travel requests
|
||||
* Allow importing approved overtime hours into payroll
|
||||
* Add date and time masks
|
||||
|
||||
|
||||
### Fixes
|
||||
* Fix logout cookie issue, by clearing remember me cookie when logging out
|
||||
* Improve privacy for GDPR
|
||||
* Improvements to file upload field
|
||||
* Fix issue: attendance rest end point not working on php 5.6
|
||||
|
||||
* Loading last used module when revisiting application
|
||||
* Finnish language support \(Beta\)
|
||||
* Improvements to German, Italian and Chinese language translations
|
||||
* Allow quickly switching languages
|
||||
* Improvements to security for preventing possible LFI attacks
|
||||
* Allow manual date inputs
|
||||
* Custom fields for travel requests
|
||||
* Allow importing approved overtime hours into payroll
|
||||
* Add date and time masks
|
||||
Release note v22.0.0.OS
|
||||
------------------------
|
||||
### Features
|
||||
* Improvements to module naming
|
||||
|
||||
### Fixes
|
||||
* Fix issue: filter dialog default values are not selected
|
||||
* Fix issue: department head can be an employee outside the department
|
||||
* Fix issue: department head or supervisor (who has manager leave access) can't use switch employee feature
|
||||
* Fix issue: employee name is not visible on report if middle name is empty
|
||||
|
||||
Release note v21.1.0.OS
|
||||
------------------------
|
||||
### Features
|
||||
* UI improvements (help button and error messages)
|
||||
* Allow adding placeholders to text fields
|
||||
* Improvements to German Translations
|
||||
|
||||
### Fixes
|
||||
* Fixing notification issues
|
||||
|
||||
Release note v21.0.0.OS
|
||||
------------------------
|
||||
### Features
|
||||
* Fully compatible with php 7.1
|
||||
* Add Net_SMTP via composer (no pear installation needed)
|
||||
|
||||
### Fixes
|
||||
* Fixes for web servers not supporting JSON in GET request
|
||||
|
||||
Release note v21.0.0.OS
|
||||
------------------------
|
||||
### Features
|
||||
* Fully compatible with php 7.1
|
||||
* Add Net_SMTP via composer (no pear installation needed)
|
||||
|
||||
### Fixes
|
||||
* Fixes for web servers not supporting JSON in GET request
|
||||
|
||||
Release note v20.3.0.PRO
|
||||
------------------------
|
||||
### Features
|
||||
* Employee and Attendance REST Api Released
|
||||
* Import/Export for Payroll Configurations
|
||||
* Ability to import employee approved time sheet hours to payroll
|
||||
* Swift Mailer based SMTP support (no need to install Net_SMTP anymore)
|
||||
* Add direct Edit button on employee list
|
||||
|
||||
### Fixes
|
||||
* Fix DB connection issues due to special characters in password
|
||||
* Fixes for custom field saving issues in mysql v5.7.x
|
||||
|
||||
Release note v20.2
|
||||
------------------
|
||||
### Fixes
|
||||
* Fix for resetting modules
|
||||
|
||||
Release note v20.1
|
||||
------------------
|
||||
### Features
|
||||
* Compatible with MySQL 5.7 Strict Mode
|
||||
* PSR-2 compatible code
|
||||
* Employee History Module
|
||||
* Staff Directory
|
||||
|
||||
### Fixes
|
||||
* Fix: password reset not working
|
||||
* Fix: limiting selectable countries via Settings
|
||||
* Fix for resetting modules
|
||||
|
||||
Release note v20.0
|
||||
------------------
|
||||
### Features
|
||||
* Payroll Module
|
||||
* Compatible with MySQL 5.7 Strict Mode
|
||||
* Namespaced Classes
|
||||
* LDAP Module
|
||||
|
||||
### Fixes
|
||||
* Fix: limiting selectable countries via Settings
|
||||
|
||||
Release note v19.0
|
||||
------------------
|
||||
### Features
|
||||
* Development environment
|
||||
* Overtime module
|
||||
* Department heads who can manage all employees attached to a company structure
|
||||
|
||||
|
||||
Release note v18.0
|
||||
------------------
|
||||
### Features
|
||||
* Translations (beta) for German, French, Polish, Italian, Sinhala, Chinese, Japanese, Hindi and Spanish
|
||||
* PDF Reports
|
||||
* Ability to specify department heads
|
||||
* Add advanced custom fields to employees via UI
|
||||
* Allow indirect admins to approve travel requests
|
||||
* Adding more languages to Language meta data table
|
||||
* Improvements to report module
|
||||
* Ability to select sections for placing custom fields on employee detail view screen
|
||||
* Introducing clone button
|
||||
* Unlimited custom fields for employees
|
||||
* PDF report for monitoring time employee spent on projects
|
||||
* Report files module - Allow downloading all previously generated reports
|
||||
|
||||
### Fixes
|
||||
* Fix: subordinates are not showing beyond first page issue.
|
||||
|
||||
* Fix logout cookie issue, by clearing remember me cookie when logging out
|
||||
* Improve privacy for GDPR
|
||||
* Improvements to file upload field
|
||||
* Fix issue: attendance rest end point not working on php 5.6
|
||||
|
||||
## Release note v22.0.0.OS
|
||||
Release note v16.1
|
||||
------------------
|
||||
|
||||
### Fixes
|
||||
* Fix LDAP user login issue
|
||||
* Allow creating users with username having dot and dash
|
||||
|
||||
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
|
||||
|
||||
Release note v15.2
|
||||
------------------
|
||||
|
||||
### Features
|
||||
|
||||
* Improvements to module naming
|
||||
|
||||
* Overtime Reports
|
||||
* Overtime calculation for california
|
||||
|
||||
### Fixes
|
||||
* Fix issue: uncaught error when placeholder value is empty
|
||||
* Log email sending success status
|
||||
* Fix broken longer company name issue
|
||||
* Make the application accessible when client on an intranet with no internet connection
|
||||
* Fix issue: when a module is disabled other modules depend on it stops working
|
||||
|
||||
* Fix issue: filter dialog default values are not selected
|
||||
* Fix issue: department head can be an employee outside the department
|
||||
* Fix issue: department head or supervisor \(who has manager leave access\) can't use switch employee feature
|
||||
* Fix issue: employee name is not visible on report if middle name is empty
|
||||
|
||||
## Release note v21.1.0.OS
|
||||
Release note v15.0
|
||||
------------------
|
||||
|
||||
### Features
|
||||
|
||||
* UI improvements \(help button and error messages\)
|
||||
* Allow adding placeholders to text fields
|
||||
* Improvements to German Translations
|
||||
|
||||
* Clear HTML5 local storage when logging in and switching users
|
||||
* Showing a loading message while getting data from server
|
||||
* Adding a new field to show total time of each time sheet
|
||||
* New report added for listing Employee Time Sheets
|
||||
* Company logo uploaded via settings will be used for all email headers
|
||||
|
||||
### Fixes
|
||||
* Fix issue: default module URL is incorrect for Employees
|
||||
* Fix date parsing issue in time sheets
|
||||
* AWS phar is included only when required
|
||||
|
||||
* Fixing notification issues
|
||||
|
||||
## Release note v21.0.0.OS
|
||||
Release note v14.1
|
||||
------------------
|
||||
|
||||
### Features
|
||||
|
||||
* Fully compatible with php 7.1
|
||||
* Add Net\_SMTP via composer \(no pear installation needed\)
|
||||
* Add Quick access menu
|
||||
|
||||
### Fixes
|
||||
* Fix issue: salary module not loading
|
||||
* Add travel report
|
||||
|
||||
* Fixes for web servers not supporting JSON in GET request
|
||||
|
||||
## Release note v21.0.0.OS
|
||||
Release note v14.0
|
||||
------------------
|
||||
|
||||
### Features
|
||||
|
||||
* Fully compatible with php 7.1
|
||||
* Add Net\_SMTP via composer \(no pear installation needed\)
|
||||
|
||||
* IceHrm is now fully compatible with PHP 7
|
||||
* Improvements to travel management module to change the process of applying for travel requests
|
||||
* New report add for getting travel requests
|
||||
* Improvements to user interface
|
||||
* Bunch of UI improvements including changing menu order and font sizes
|
||||
* Add a setting to use server time for time zone defined on department that a user is attached to create new attendance records
|
||||
* Improvements to admin/manager and user dashboard
|
||||
* Managers allowed to view/add/edit employee documents
|
||||
* New reports added for employee expenses and travel
|
||||
|
||||
### Fixes
|
||||
* Fix unavailable help links
|
||||
|
||||
* Fixes for web servers not supporting JSON in GET request
|
||||
|
||||
## Release note v20.3.0.PRO
|
||||
Release note v13.4
|
||||
-----------------
|
||||
|
||||
### Features
|
||||
|
||||
* Employee and Attendance REST Api Released
|
||||
* Import/Export for Payroll Configurations
|
||||
* Ability to import employee approved time sheet hours to payroll
|
||||
* Swift Mailer based SMTP support \(no need to install Net\_SMTP anymore\)
|
||||
* Add direct Edit button on employee list
|
||||
|
||||
|
||||
### Fixes
|
||||
* Fix employee leave report leave type field
|
||||
|
||||
* Fix DB connection issues due to special characters in password
|
||||
* Fixes for custom field saving issues in mysql v5.7.x
|
||||
|
||||
## Release note v20.2
|
||||
|
||||
### Fixes
|
||||
|
||||
* Fix for resetting modules
|
||||
|
||||
## Release note v20.1
|
||||
Release note v13.0
|
||||
-----------------
|
||||
|
||||
### Features
|
||||
|
||||
* Compatible with MySQL 5.7 Strict Mode
|
||||
* PSR-2 compatible code
|
||||
* Employee History Module
|
||||
* Staff Directory
|
||||
|
||||
* Recruitment module
|
||||
* Allow managers to edit attendance of direct report employees
|
||||
|
||||
### Fixes
|
||||
* Employee switching issue fixed
|
||||
* Fix terminated employee labels
|
||||
* Fix issue with punch-in
|
||||
|
||||
* Fix: password reset not working
|
||||
* Fix: limiting selectable countries via Settings
|
||||
* Fix for resetting modules
|
||||
|
||||
## Release note v20.0
|
||||
Release note v12.6
|
||||
-----------------
|
||||
|
||||
### Features
|
||||
|
||||
* Payroll Module
|
||||
* Compatible with MySQL 5.7 Strict Mode
|
||||
* Namespaced Classes
|
||||
* LDAP Module
|
||||
|
||||
* Charts module
|
||||
* Code level security improvements
|
||||
|
||||
### Fixes
|
||||
* Employee switching issue fixed
|
||||
|
||||
* Fix: limiting selectable countries via Settings
|
||||
|
||||
## Release note v19.0
|
||||
Release note v11.1
|
||||
-----------------
|
||||
|
||||
### Features
|
||||
* Add/Edit or remove employee fields
|
||||
|
||||
* Development environment
|
||||
* Overtime module
|
||||
* Department heads who can manage all employees attached to a company structure
|
||||
|
||||
## Release note v18.0
|
||||
Release note v11.0
|
||||
-----------------
|
||||
|
||||
### Features
|
||||
|
||||
* Translations \(beta\) for German, French, Polish, Italian, Sinhala, Chinese, Japanese, Hindi and Spanish
|
||||
* PDF Reports
|
||||
* Ability to specify department heads
|
||||
* Add advanced custom fields to employees via UI
|
||||
* Allow indirect admins to approve travel requests
|
||||
* Adding more languages to Language meta data table
|
||||
* Improvements to report module
|
||||
* Ability to select sections for placing custom fields on employee detail view screen
|
||||
* Introducing clone button
|
||||
* Unlimited custom fields for employees
|
||||
* PDF report for monitoring time employee spent on projects
|
||||
* Report files module - Allow downloading all previously generated reports
|
||||
* Employee data archiving
|
||||
* Leave cancellation requests
|
||||
* Adding view employee feature
|
||||
|
||||
### Fixes
|
||||
* Improvements to date time pickers
|
||||
|
||||
* Fix: subordinates are not showing beyond first page issue.
|
||||
|
||||
## Release note v16.1
|
||||
|
||||
### Fixes
|
||||
|
||||
* Fix LDAP user login issue
|
||||
* Allow creating users with username having dot and dash
|
||||
|
||||
## Release note v16.0
|
||||
Release note v10.1
|
||||
-----------------
|
||||
|
||||
### Features
|
||||
* Integration with ice-framework (http://githun.com/thilinah/ice-framework)
|
||||
* Option for only allow users to add an entry to a timesheet only if they have marked atteandance for the selected period
|
||||
* Restricting availability of leave types to employees using leave groups
|
||||
* Admins and add notes to employees
|
||||
|
||||
* 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
|
||||
Release note v9.1
|
||||
-----------------
|
||||
|
||||
### Fixes
|
||||
* Add missing S3FileSystem class
|
||||
* Fix issue: passing result of a method call directly into empty method is not supported in php v5.3
|
||||
|
||||
* 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
|
||||
|
||||
## Release note v15.2
|
||||
Release note v9.0
|
||||
-----------------
|
||||
|
||||
### Features
|
||||
* New user interface
|
||||
* Decimal leave counts supported
|
||||
|
||||
Update icehrm v8.4 to v9.0
|
||||
--------------------------
|
||||
|
||||
* Overtime Reports
|
||||
* Overtime calculation for california
|
||||
* Make a backup of your icehrm db
|
||||
* Run db script "icehrmdb_update_v8.4_to_v9.0.sql" which can be found inside script folder of icehrm_v9.0
|
||||
* remove all folders except app folder in icehrm root folder
|
||||
* copy all folders except app folder from new installation to icehrm root folder
|
||||
|
||||
|
||||
Release note v8.4
|
||||
-----------------
|
||||
|
||||
### Fixes
|
||||
* Fix leave carry forward rounding issues
|
||||
* Fix issue: select2 default value not getting set for select2
|
||||
* Fix issue: email not sent when admin changing leave status
|
||||
|
||||
* Fix issue: uncaught error when placeholder value is empty
|
||||
* Log email sending success status
|
||||
* Fix broken longer company name issue
|
||||
* Make the application accessible when client on an intranet with no internet connection
|
||||
* Fix issue: when a module is disabled other modules depend on it stops working
|
||||
|
||||
## Release note v15.0
|
||||
|
||||
### Features
|
||||
|
||||
* Clear HTML5 local storage when logging in and switching users
|
||||
* Showing a loading message while getting data from server
|
||||
* Adding a new field to show total time of each time sheet
|
||||
* New report added for listing Employee Time Sheets
|
||||
* Company logo uploaded via settings will be used for all email headers
|
||||
Release note v8.3
|
||||
-----------------
|
||||
|
||||
### Fixes
|
||||
* Fix user table issue on windows, this will resolve errors such as: (Note that this fix has no effect on unix based installations)
|
||||
* Admin not able to view user uploaded documents
|
||||
* Admin not able to upload documants for users
|
||||
* Admin can not view employee attendance records
|
||||
* Employee projects can not be added
|
||||
|
||||
* Fix issue: default module URL is incorrect for Employees
|
||||
* Fix date parsing issue in time sheets
|
||||
* AWS phar is included only when required
|
||||
|
||||
## Release note v14.1
|
||||
Release note v8.2
|
||||
-----------------
|
||||
|
||||
### Features
|
||||
|
||||
* Add Quick access menu
|
||||
|
||||
### Fixes
|
||||
|
||||
* Fix issue: salary module not loading
|
||||
* Add travel report
|
||||
|
||||
## Release note v14.0
|
||||
|
||||
### Features
|
||||
|
||||
* IceHrm is now fully compatible with PHP 7
|
||||
* Improvements to travel management module to change the process of applying for travel requests
|
||||
* New report add for getting travel requests
|
||||
* Improvements to user interface
|
||||
* Bunch of UI improvements including changing menu order and font sizes
|
||||
* Add a setting to use server time for time zone defined on department that a user is attached to create new attendance records
|
||||
* Improvements to admin/manager and user dashboard
|
||||
* Managers allowed to view/add/edit employee documents
|
||||
* New reports added for employee expenses and travel
|
||||
|
||||
### Fixes
|
||||
|
||||
* Fix unavailable help links
|
||||
|
||||
## Release note v13.4
|
||||
|
||||
### Features
|
||||
|
||||
### Fixes
|
||||
|
||||
* Fix employee leave report leave type field
|
||||
|
||||
## Release note v13.0
|
||||
|
||||
### Features
|
||||
|
||||
* Recruitment module
|
||||
* Allow managers to edit attendance of direct report employees
|
||||
|
||||
### Fixes
|
||||
|
||||
* Employee switching issue fixed
|
||||
* Fix terminated employee labels
|
||||
* Fix issue with punch-in
|
||||
|
||||
## Release note v12.6
|
||||
|
||||
### Features
|
||||
|
||||
* Charts module
|
||||
* Code level security improvements
|
||||
|
||||
### Fixes
|
||||
|
||||
* Employee switching issue fixed
|
||||
|
||||
## Release note v11.1
|
||||
|
||||
### Features
|
||||
|
||||
* Add/Edit or remove employee fields
|
||||
|
||||
## Release note v11.0
|
||||
|
||||
### Features
|
||||
|
||||
* Employee data archiving
|
||||
* Leave cancellation requests
|
||||
* Adding view employee feature
|
||||
|
||||
### Fixes
|
||||
|
||||
* Improvements to date time pickers
|
||||
|
||||
## Release note v10.1
|
||||
|
||||
### Features
|
||||
|
||||
* Integration with ice-framework \([http://githun.com/thilinah/ice-framework](http://githun.com/thilinah/ice-framework)\)
|
||||
* Option for only allow users to add an entry to a timesheet only if they have marked atteandance for the selected period
|
||||
* Restricting availability of leave types to employees using leave groups
|
||||
* Admins and add notes to employees
|
||||
|
||||
## Release note v9.1
|
||||
|
||||
### Fixes
|
||||
|
||||
* Add missing S3FileSystem class
|
||||
* Fix issue: passing result of a method call directly into empty method is not supported in php v5.3
|
||||
|
||||
## Release note v9.0
|
||||
|
||||
### Features
|
||||
|
||||
* New user interface
|
||||
* Decimal leave counts supported
|
||||
|
||||
## Update icehrm v8.4 to v9.0
|
||||
|
||||
* Make a backup of your icehrm db
|
||||
* Run db script "icehrmdb\_update\_v8.4\_to\_v9.0.sql" which can be found inside script folder of icehrm\_v9.0
|
||||
* remove all folders except app folder in icehrm root folder
|
||||
* copy all folders except app folder from new installation to icehrm root folder
|
||||
|
||||
## Release note v8.4
|
||||
|
||||
### Fixes
|
||||
|
||||
* Fix leave carry forward rounding issues
|
||||
* Fix issue: select2 default value not getting set for select2
|
||||
* Fix issue: email not sent when admin changing leave status
|
||||
|
||||
## Release note v8.3
|
||||
|
||||
### Fixes
|
||||
|
||||
* Fix user table issue on windows, this will resolve errors such as: \(Note that this fix has no effect on unix based installations\)
|
||||
* Admin not able to view user uploaded documents
|
||||
* Admin not able to upload documants for users
|
||||
* Admin can not view employee attendance records
|
||||
* Employee projects can not be added
|
||||
|
||||
## Release note v8.2
|
||||
|
||||
### Features
|
||||
|
||||
* Instance verification added
|
||||
|
||||
## Release note v8.1
|
||||
Release note v8.1
|
||||
-----------------
|
||||
|
||||
### Fixes
|
||||
|
||||
* Fixed bug that caused a fatal error in php v5.4
|
||||
* aws2.7.11 phar file replaced by a aws2.7.11 extracted files
|
||||
* old aws sdk removed
|
||||
|
||||
## Release note v8.0
|
||||
Release note v8.0
|
||||
-----------------
|
||||
|
||||
### Features
|
||||
|
||||
* Admin dashbord module
|
||||
* If the employee joined in current leave period, his leave entitlement is calculated proportional to joined date
|
||||
* Improvements to reporting module
|
||||
@@ -514,22 +462,22 @@ This release include some very critical security fixes. We recommend upgrading y
|
||||
* Upgrade aws sdk to v2.7.11
|
||||
* Allow employees to change password
|
||||
* Use only the email address defined under user for sending mails
|
||||
* Making work\_email and private\_email fields optional
|
||||
* Making work_email and private_email fields optional
|
||||
|
||||
|
||||
### Fixes
|
||||
|
||||
* Upload dialog close button issue fixed
|
||||
|
||||
## Release note v7.2
|
||||
Release note v7.2
|
||||
-----------------
|
||||
|
||||
### Fixes
|
||||
* Some critical vulnerabilities are fixed as recommend by http://zeroscience.mk/en/
|
||||
|
||||
* Some critical vulnerabilities are fixed as recommend by [http://zeroscience.mk/en/](http://zeroscience.mk/en/)
|
||||
|
||||
## Release note v7.1
|
||||
Release note v7.1
|
||||
-----------------
|
||||
|
||||
### Features
|
||||
|
||||
* Improved company structure graph
|
||||
* Leave notes implementation <20> Supervisor can add a note when approving or rejecting leaves
|
||||
* Filtering support
|
||||
@@ -538,20 +486,20 @@ This release include some very critical security fixes. We recommend upgrading y
|
||||
* Add ability to disable employee information editing
|
||||
|
||||
### Fixes
|
||||
|
||||
* Make loans editable only by admin
|
||||
* Fix: permissions not getting applied to employee documents
|
||||
* Fix error adding employee documents when no user assigned to the admin
|
||||
|
||||
### Code Quality
|
||||
|
||||
* Moving all module related code and data into module folders
|
||||
|
||||
## Release note v6.1
|
||||
Release note v6.1
|
||||
-----------------
|
||||
|
||||
Leave carry forwared related isue fixed
|
||||
|
||||
## Release note v6.0
|
||||
Release note v6.0
|
||||
-----------------
|
||||
|
||||
* Features
|
||||
* Notifications for leaves and timesheets
|
||||
@@ -565,18 +513,21 @@ Leave carry forwared related isue fixed
|
||||
* Admin can make all projects available to employees or just the set of prjects assigned to them using Setting "Projects: Make All Projects Available to Employees"
|
||||
* Employee document, date added field can not be changed by the employee anymore
|
||||
* About dialog added for admins
|
||||
|
||||
* Fixes
|
||||
* Fix default employee delete issue \(when the default employee is deleted the admin user attached to it also get deleted\)
|
||||
* Fix default employee delete issue (when the default employee is deleted the admin user attached to it also get deleted)
|
||||
* Fix user duplicate email issue
|
||||
* Fix manager can not logout from switched employee
|
||||
* Remove admin guide from non admin users
|
||||
|
||||
## Release note v5.3
|
||||
Release note v5.3
|
||||
-----------------
|
||||
|
||||
* Fixes
|
||||
* Fix missing employee name in employee details report
|
||||
|
||||
## Release note v5.2
|
||||
Release note v5.2
|
||||
-----------------
|
||||
|
||||
* Fixes
|
||||
* Remove unwanted error logs
|
||||
@@ -585,33 +536,38 @@ Leave carry forwared related isue fixed
|
||||
* Remove add new button from subordinates module
|
||||
* Adding administrators' guide
|
||||
|
||||
## Release note v5.1
|
||||
Release note v5.1
|
||||
-----------------
|
||||
|
||||
* Fixes
|
||||
* Fixing for non updating null fields
|
||||
* [https://bitbucket.org/thilina/icehrm-opensource/commits/df57308b53484a2e43ef5c72967ed1cd0dc756cc](https://bitbucket.org/thilina/icehrm-opensource/commits/df57308b53484a2e43ef5c72967ed1cd0dc756cc)
|
||||
* https://bitbucket.org/thilina/icehrm-opensource/commits/df57308b53484a2e43ef5c72967ed1cd0dc756cc
|
||||
|
||||
## Release note v5.0
|
||||
Release note v5.0
|
||||
-----------------
|
||||
|
||||
* Features
|
||||
* New user permission implementation
|
||||
* Adding new user level - Manager
|
||||
|
||||
* Fixes
|
||||
* Fixing remote table loading issue
|
||||
|
||||
## Release note v4.2
|
||||
Release note v4.2
|
||||
-----------------
|
||||
|
||||
### Fixes
|
||||
* https://bitbucket.org/thilina/icehrm-opensource/issue/23/subordinate-leaves-pagination-not-working
|
||||
* https://bitbucket.org/thilina/icehrm-opensource/issue/20/error-occured-while-time-punch
|
||||
|
||||
* [https://bitbucket.org/thilina/icehrm-opensource/issue/23/subordinate-leaves-pagination-not-working](https://bitbucket.org/thilina/icehrm-opensource/issue/23/subordinate-leaves-pagination-not-working)
|
||||
* [https://bitbucket.org/thilina/icehrm-opensource/issue/20/error-occured-while-time-punch](https://bitbucket.org/thilina/icehrm-opensource/issue/20/error-occured-while-time-punch)
|
||||
|
||||
## Release note v4.1
|
||||
Release note v4.1
|
||||
-----------------
|
||||
|
||||
### Features
|
||||
|
||||
* Better email format for notifications
|
||||
* Convert upload dialog to a bootstrp model
|
||||
|
||||
* Fixes
|
||||
* Fix error sending emails with amazon SES
|
||||
* Fix errors related to XAMPP and WAMPP servers
|
||||
@@ -620,4 +576,3 @@ Leave carry forwared related isue fixed
|
||||
* Allow icehrm client to work without an internet connection
|
||||
* Fix installer incorrect base url issue
|
||||
* Fix empty user creation issue
|
||||
|
||||
|
||||
@@ -426,7 +426,7 @@ class EmployeeAdapter extends ReactModalAdapterBase {
|
||||
&& (
|
||||
<Tag color="volcano" onClick={() => modJs.terminateEmployee(record.id)} style={{ cursor: 'pointer' }}>
|
||||
<DeleteOutlined />
|
||||
{` ${adapter.gt('Deactivate')}`}
|
||||
{` ${adapter.gt('Delete')}`}
|
||||
</Tag>
|
||||
)}
|
||||
{adapter.hasAccess('save')
|
||||
|
||||
@@ -943,3 +943,7 @@ table.dataTable{
|
||||
.table-row-dark {
|
||||
background-color: #fbfbfb;
|
||||
}
|
||||
|
||||
.mod-tab {
|
||||
margin-bottom:0px;margin-left:5px;border-bottom: none;
|
||||
}
|
||||
|
||||
2
web/dist/admin-bundle.js
vendored
2
web/dist/admin-bundle.js
vendored
File diff suppressed because one or more lines are too long
4
web/dist/common.js
vendored
4
web/dist/common.js
vendored
File diff suppressed because one or more lines are too long
4
web/dist/modules-bundle.js
vendored
4
web/dist/modules-bundle.js
vendored
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user