Compare commits
4
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
704546fee2 | ||
|
|
5df15d39c1 | ||
|
|
143bcac1f9 | ||
|
|
84548c4f63 |
No files matched your search
@@ -17,6 +17,13 @@ if($group == 'admin' || $group == 'modules'){
|
|||||||
$name = str_replace("..","",$name);
|
$name = str_replace("..","",$name);
|
||||||
$name = str_replace("/","",$name);
|
$name = str_replace("/","",$name);
|
||||||
include APP_BASE_PATH.'/'.$group.'/'.$name.'/index.php';
|
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{
|
}else{
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
@@ -13,10 +13,10 @@ if(!defined('HOME_LINK_OTHERS')){
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Version
|
//Version
|
||||||
define('VERSION', '28.2.0.OS');
|
define('VERSION', '28.1.1.OS');
|
||||||
define('CACHE_VALUE', '28.2.0.OS.2020-11130243');
|
define('CACHE_VALUE', '28.1.1.OS.2020-11071143');
|
||||||
define('VERSION_NUMBER', '280200');
|
define('VERSION_NUMBER', '280101');
|
||||||
define('VERSION_DATE', '13/11/2020');
|
define('VERSION_DATE', '07/11/2020');
|
||||||
|
|
||||||
if(!defined('CONTACT_EMAIL')){define('CONTACT_EMAIL','icehrm@gamonoid.com');}
|
if(!defined('CONTACT_EMAIL')){define('CONTACT_EMAIL','icehrm@gamonoid.com');}
|
||||||
if(!defined('KEY_PREFIX')){define('KEY_PREFIX','IceHrm');}
|
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('LDAP_ENABLED', true);
|
||||||
define('RECRUITMENT_ENABLED', false);
|
define('RECRUITMENT_ENABLED', false);
|
||||||
define('APP_WEB_URL', 'https://icehrm.com');
|
define('APP_WEB_URL', 'https://icehrm.com');
|
||||||
|
|
||||||
|
if (!defined('EXTENSIONS_URL')) {
|
||||||
|
define('EXTENSIONS_URL', str_replace('/web/', '/extensions/', BASE_URL));
|
||||||
|
}
|
||||||
@@ -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 }?>
|
||||||
|
|
||||||
|
<?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
|
<?php
|
||||||
if(file_exists(CLIENT_PATH.'/third_party_meta.json')){
|
if(file_exists(CLIENT_PATH.'/third_party_meta.json')){
|
||||||
$tpModules = json_decode(file_get_contents(CLIENT_PATH.'/third_party_meta.json'),true);
|
$tpModules = json_decode(file_get_contents(CLIENT_PATH.'/third_party_meta.json'),true);
|
||||||
|
|||||||
+49
-2
@@ -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) {
|
foreach ($adminModulesTemp as $k => $v) {
|
||||||
ksort($adminModulesTemp[$k]);
|
ksort($adminModulesTemp[$k]);
|
||||||
}
|
}
|
||||||
@@ -299,6 +305,10 @@ foreach ($userModulesTemp as $k => $v) {
|
|||||||
ksort($userModulesTemp[$k]);
|
ksort($userModulesTemp[$k]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
foreach ($extensionTemp as $k => $v) {
|
||||||
|
ksort($extensionTemp[$k]);
|
||||||
|
}
|
||||||
|
|
||||||
$adminIcons = json_decode(file_get_contents(CLIENT_PATH.'/admin/meta.json'), true);
|
$adminIcons = json_decode(file_get_contents(CLIENT_PATH.'/admin/meta.json'), true);
|
||||||
$adminMenus = array_keys($adminIcons);
|
$adminMenus = array_keys($adminIcons);
|
||||||
|
|
||||||
@@ -332,8 +342,6 @@ foreach ($userMenus as $menu) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$mainIcons = array_merge($adminIcons, $userIcons);
|
|
||||||
|
|
||||||
foreach ($userModulesTemp as $k => $v) {
|
foreach ($userModulesTemp as $k => $v) {
|
||||||
if (!in_array($k, $added)) {
|
if (!in_array($k, $added)) {
|
||||||
$arr = array("name"=>$k,"menu"=>$userModulesTemp[$k]);
|
$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
|
//Remove modules having no permissions
|
||||||
if (!empty($user)) {
|
if (!empty($user)) {
|
||||||
if (!empty($user->user_roles)) {
|
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);
|
BaseService::getInstance()->addCalculationHook($code, $name, $class, $method);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function install() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function uninstall() {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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;
|
namespace Classes\Migration;
|
||||||
|
|
||||||
|
use Utils\LogManager;
|
||||||
|
|
||||||
abstract class AbstractMigration
|
abstract class AbstractMigration
|
||||||
{
|
{
|
||||||
protected $file;
|
protected $file;
|
||||||
@@ -16,7 +18,7 @@ abstract class AbstractMigration
|
|||||||
|
|
||||||
protected $lastError;
|
protected $lastError;
|
||||||
|
|
||||||
public function __construct($file)
|
public function __construct($file = null)
|
||||||
{
|
{
|
||||||
$this->file = $file;
|
$this->file = $file;
|
||||||
}
|
}
|
||||||
@@ -50,6 +52,7 @@ abstract class AbstractMigration
|
|||||||
$ret = $this->db()->Execute($sql);
|
$ret = $this->db()->Execute($sql);
|
||||||
if (!$ret) {
|
if (!$ret) {
|
||||||
$this->lastError = $this->db()->ErrorMsg();
|
$this->lastError = $this->db()->ErrorMsg();
|
||||||
|
LogManager::getInstance()->error('Error in migration: '.$this->lastError);
|
||||||
}
|
}
|
||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ class ModuleAccess
|
|||||||
* @param $name
|
* @param $name
|
||||||
* @param $group
|
* @param $group
|
||||||
*/
|
*/
|
||||||
public function __construct($name, $group)
|
public function __construct($name, $group = 'extension')
|
||||||
{
|
{
|
||||||
$this->name = $name;
|
$this->name = $name;
|
||||||
$this->group = $group;
|
$this->group = $group;
|
||||||
|
|||||||
Executable
+1
@@ -0,0 +1 @@
|
|||||||
|
git keep
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"label": "My Tasks",
|
||||||
|
"menu": ["Tasks", "fa-list"],
|
||||||
|
"icon": "fa-tasks",
|
||||||
|
"user_levels": [
|
||||||
|
"Admin",
|
||||||
|
"Manager",
|
||||||
|
"User"
|
||||||
|
],
|
||||||
|
"model_namespace": "\\Tasks\\Model",
|
||||||
|
"manager": "\\Tasks\\Extension",
|
||||||
|
"headless": false
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
<?php
|
||||||
|
namespace Tasks;
|
||||||
|
|
||||||
|
use Classes\IceExtension;
|
||||||
|
|
||||||
|
class Extension extends IceExtension
|
||||||
|
{
|
||||||
|
|
||||||
|
public function install() {
|
||||||
|
$migration = new Migration();
|
||||||
|
return $migration->up();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function uninstall() {
|
||||||
|
$migration = new Migration();
|
||||||
|
return $migration->down();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setupModuleClassDefinitions()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setupRestEndPoints()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
namespace Tasks;
|
||||||
|
|
||||||
|
use Classes\Migration\AbstractMigration;
|
||||||
|
|
||||||
|
class Migration extends AbstractMigration
|
||||||
|
{
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
$sql = <<<'SQL'
|
||||||
|
create table `Tasks` (
|
||||||
|
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
||||||
|
`employee` bigint(20) NULL,
|
||||||
|
`name` varchar(250) NOT NULL,
|
||||||
|
`description` TEXT NULL,
|
||||||
|
`attachment` varchar(100) NULL,
|
||||||
|
`created` DATETIME default NULL,
|
||||||
|
`updated` DATETIME default NULL,
|
||||||
|
primary key (`id`),
|
||||||
|
CONSTRAINT `Fk_EmployeeTasks_Employees` FOREIGN KEY (`employee`) REFERENCES `Employees` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
|
) engine=innodb default charset=utf8;
|
||||||
|
SQL;
|
||||||
|
return $this->executeQuery($sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
$sql = <<<'SQL'
|
||||||
|
DROP TABLE IF EXISTS `Tasks`;
|
||||||
|
SQL;
|
||||||
|
return $this->executeQuery($sql);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Tasks\Model;
|
||||||
|
|
||||||
|
use Classes\ModuleAccess;
|
||||||
|
use Model\BaseModel;
|
||||||
|
|
||||||
|
class Task extends BaseModel
|
||||||
|
{
|
||||||
|
public $table = 'Tasks';
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
require_once __DIR__.'/src/Tasks/Extension.php';
|
||||||
|
require_once __DIR__.'/src/Tasks/Migration.php';
|
||||||
|
require_once __DIR__.'/src/Tasks/Model/Task.php';
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
$user = \Classes\BaseService::getInstance()->getCurrentUser();
|
||||||
|
echo "Welcome ".$user->username."<br/>";
|
||||||
|
|
||||||
|
echo "Creating a task <br/>";
|
||||||
|
|
||||||
|
$task = new \Tasks\Model\Task();
|
||||||
|
$taskName = 'Task-'.rand(rand(0, 100), 50000);
|
||||||
|
|
||||||
|
$task->name = $taskName;
|
||||||
|
$task->employee = $user->employee;
|
||||||
|
$task->description = $taskName.' description';
|
||||||
|
$task->created = date('Y-m-d H:i:s');
|
||||||
|
$task->updated = date('Y-m-d H:i:s');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Saving the task, $ok will be false if there were any error during the creation
|
||||||
|
*/
|
||||||
|
$ok = $task->Save();
|
||||||
|
|
||||||
|
if (!$ok) {
|
||||||
|
echo "Error: ".$task->ErrorMsg()." <br/>";
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "Find last task <br/>";
|
||||||
|
|
||||||
|
$taskFromDB = new \Tasks\Model\Task();
|
||||||
|
/**
|
||||||
|
* You can use load method to load the first matching task into an empty model
|
||||||
|
*/
|
||||||
|
$taskFromDB->Load('name = ?', [$taskName]);
|
||||||
|
|
||||||
|
var_dump($taskFromDB);
|
||||||
+42
@@ -359,6 +359,48 @@ gulp.task('modules-js', (done) => {
|
|||||||
.pipe(gulp.dest('./web/dist'));
|
.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.task('watch', () => {
|
||||||
gulp.watch('web/admin/src/*/*.js', gulp.series('admin-js'));
|
gulp.watch('web/admin/src/*/*.js', gulp.series('admin-js'));
|
||||||
|
|||||||
+136
-181
@@ -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
|
## Release note v28.1.0.OS
|
||||||
|
|
||||||
### 🧲 New features
|
### 🧲 New features
|
||||||
@@ -32,97 +16,81 @@
|
|||||||
* New REST endpoints for employee qualifications
|
* New REST endpoints for employee qualifications
|
||||||
|
|
||||||
### 🐛 Bug fixes
|
### 🐛 Bug fixes
|
||||||
|
|
||||||
* Fixed, issue with managers being able to create performance reviews for employees who are not their direct reports
|
* 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
|
* Fixed, issues related to using full profile image instead of using smaller version of profile image
|
||||||
* Changing third gender to other
|
* Changing third gender to other
|
||||||
* Improvements and fixes for internal frontend data caching
|
* 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
|
## Release note v27.0.0.OS
|
||||||
|
|
||||||
### New features
|
### New features
|
||||||
|
|
||||||
* Employee document management is now available for open-source version
|
* 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
|
* Payroll module improvements
|
||||||
* Security improvements to password policy
|
* Security improvements to password policy
|
||||||
* Albanian language is now available
|
* Albanian language is now available
|
||||||
* Ability to deploy using docker
|
* Ability to deploy using docker
|
||||||
|
|
||||||
### For developers
|
### 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)
|
* [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
|
### Bug fixes
|
||||||
|
* Fixes to newly found vulnerabilities (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](https://github.com/gamonoid/icehrm/issues/213)\): credits to: [Talos](https://talosintelligence.com/)
|
|
||||||
* Fixed the travel request approval for managers
|
* Fixed the travel request approval for managers
|
||||||
* Fixed the issue with attendance source IP display
|
* Fixed the issue with attendance source IP display
|
||||||
* Fixing Api issues in PHP 7.3
|
* Fixing Api issues in PHP 7.3
|
||||||
|
|
||||||
## Release note v26.6.0.OS
|
|
||||||
|
Release note v26.6.0.OS
|
||||||
|
------------------------
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
* Some Improvements to UI such as updating Icons and upgrading font-awesome to its latest version
|
* 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
|
* 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
|
* Ability to control location tracking via mobile using server side settings
|
||||||
* Improvements to translations
|
* Improvements to translations
|
||||||
|
* Compatible with location tracking with icehrm mobile app
|
||||||
|
|
||||||
### Mobile App
|
### Mobile App
|
||||||
|
* This release is coupled with mobile application release on AppStore (https://apple.co/2Yrtxoy) and Google Play (http://bit.ly/2OkMmKe)
|
||||||
* 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)\)
|
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
* Order projects by name on Timesheet project listing (This is to make it easier to edit timesheets with many projects)
|
||||||
* 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
|
* Link home page user profile to employee profile update page
|
||||||
* Fix issues related to configuring Api with mobile app
|
* Fix issues related to configuring Api with mobile app
|
||||||
|
|
||||||
### Security Improvements
|
### Security Improvements
|
||||||
|
|
||||||
* Upgrade npm missing dependencies
|
* Upgrade npm missing dependencies
|
||||||
|
|
||||||
## Release note v26.2.0.OS
|
|
||||||
|
Release note v26.2.0.OS
|
||||||
|
------------------------
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
* Add staff directory module
|
* Add staff directory module
|
||||||
* Update client-side js to ES6
|
* Update client-side js to ES6
|
||||||
* Compatible with IceHrm Mobile App
|
* Compatible with IceHrm Mobile App
|
||||||
* Use npm libraries when possible
|
* Use npm libraries when possible
|
||||||
* Add gulp build for frontend assets
|
* 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)\)
|
* Allow generating QR code with rest api key (https://github.com/gamonoid/icehrm/issues/169)
|
||||||
* Updated readme for development setup with vagrant
|
* Updated readme for development setup with vagrant
|
||||||
|
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
|
||||||
* Add missing employee details report
|
* 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: 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: 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: 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](https://github.com/gamonoid/icehrm/issues/171)\)
|
* 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](https://github.com/gamonoid/icehrm/pull/166)\) by [https://github.com/nightwatch75](https://github.com/nightwatch75)
|
* Updates to Italian translations (https://github.com/gamonoid/icehrm/pull/166) by https://github.com/nightwatch75
|
||||||
|
|
||||||
## Release note v24.0.0.OS
|
|
||||||
|
Release note v24.0.0.OS
|
||||||
|
------------------------
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
* Allow passing additional parameters to payroll predefined methods
|
* Allow passing additional parameters to payroll predefined methods
|
||||||
* Pass leave type name in function field to get leave count for a given type
|
* Pass leave type name in function field to get leave count for a given type
|
||||||
* Add employee name to payroll report
|
* Add employee name to payroll report
|
||||||
@@ -131,35 +99,31 @@ This fixes some major issues found in v27.0.1.OS
|
|||||||
* Add filter by status feature to subordinate time sheets
|
* Add filter by status feature to subordinate time sheets
|
||||||
|
|
||||||
### Security Fixes
|
### Security Fixes
|
||||||
|
|
||||||
* Fix missing login form CSRF token
|
* Fix missing login form CSRF token
|
||||||
* Fix risky usage of hashed password in request
|
* Fix risky usage of hashed password in request
|
||||||
* Fixing permission issues on module access for each user level
|
* Fixing permission issues on module access for each user level
|
||||||
* Prevent manager from accessing sensitive user records
|
* Prevent manager from accessing sensitive user records
|
||||||
|
|
||||||
### Other Fixes
|
### Other Fixes
|
||||||
|
|
||||||
* Hide employee salary from managers
|
* Hide employee salary from managers
|
||||||
* Prevent manager from accessing audit, cron and notifications
|
* Prevent manager from accessing audit, cron and notifications
|
||||||
* Prevent managers from deleting employees
|
* Prevent managers from deleting employees
|
||||||
* Validate overtime start and end times
|
* Validate overtime start and end times
|
||||||
* Fix issue: employee can download draft payroll
|
* Fix issue: employee can download draft payroll
|
||||||
|
|
||||||
## Release note v23.0.1.OS
|
Release note v23.0.1.OS
|
||||||
|
------------------------
|
||||||
This release include some very critical security fixes. We recommend upgrading your installation to latest release.
|
This release include some very critical security fixes. We recommend upgrading your installation to latest release.
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
|
||||||
* Fix missing login form CSRF token
|
* Fix missing login form CSRF token
|
||||||
* Fix risky usage of hashed password in request
|
* Fix risky usage of hashed password in request
|
||||||
|
|
||||||
## Release note v23.0.0.OS
|
Release note v23.0.0.OS
|
||||||
|
------------------------
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
* Loading last used module when revisiting application
|
* Loading last used module when revisiting application
|
||||||
* Finnish language support \(Beta\)
|
* Finnish language support (Beta)
|
||||||
* Improvements to German, Italian and Chinese language translations
|
* Improvements to German, Italian and Chinese language translations
|
||||||
* Allow quickly switching languages
|
* Allow quickly switching languages
|
||||||
* Improvements to security for preventing possible LFI attacks
|
* Improvements to security for preventing possible LFI attacks
|
||||||
@@ -168,122 +132,106 @@ This release include some very critical security fixes. We recommend upgrading y
|
|||||||
* Allow importing approved overtime hours into payroll
|
* Allow importing approved overtime hours into payroll
|
||||||
* Add date and time masks
|
* Add date and time masks
|
||||||
|
|
||||||
### Fixes
|
|
||||||
|
|
||||||
|
### Fixes
|
||||||
* Fix logout cookie issue, by clearing remember me cookie when logging out
|
* Fix logout cookie issue, by clearing remember me cookie when logging out
|
||||||
* Improve privacy for GDPR
|
* Improve privacy for GDPR
|
||||||
* Improvements to file upload field
|
* Improvements to file upload field
|
||||||
* Fix issue: attendance rest end point not working on php 5.6
|
* Fix issue: attendance rest end point not working on php 5.6
|
||||||
|
|
||||||
## Release note v22.0.0.OS
|
Release note v22.0.0.OS
|
||||||
|
------------------------
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
* Improvements to module naming
|
* Improvements to module naming
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
|
||||||
* Fix issue: filter dialog default values are not selected
|
* Fix issue: filter dialog default values are not selected
|
||||||
* Fix issue: department head can be an employee outside the department
|
* 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: 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
|
* Fix issue: employee name is not visible on report if middle name is empty
|
||||||
|
|
||||||
## Release note v21.1.0.OS
|
Release note v21.1.0.OS
|
||||||
|
------------------------
|
||||||
### Features
|
### Features
|
||||||
|
* UI improvements (help button and error messages)
|
||||||
* UI improvements \(help button and error messages\)
|
|
||||||
* Allow adding placeholders to text fields
|
* Allow adding placeholders to text fields
|
||||||
* Improvements to German Translations
|
* Improvements to German Translations
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
|
||||||
* Fixing notification issues
|
* Fixing notification issues
|
||||||
|
|
||||||
## Release note v21.0.0.OS
|
Release note v21.0.0.OS
|
||||||
|
------------------------
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
* Fully compatible with php 7.1
|
* Fully compatible with php 7.1
|
||||||
* Add Net\_SMTP via composer \(no pear installation needed\)
|
* Add Net_SMTP via composer (no pear installation needed)
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
|
||||||
* Fixes for web servers not supporting JSON in GET request
|
* Fixes for web servers not supporting JSON in GET request
|
||||||
|
|
||||||
## Release note v21.0.0.OS
|
Release note v21.0.0.OS
|
||||||
|
------------------------
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
* Fully compatible with php 7.1
|
* Fully compatible with php 7.1
|
||||||
* Add Net\_SMTP via composer \(no pear installation needed\)
|
* Add Net_SMTP via composer (no pear installation needed)
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
|
||||||
* Fixes for web servers not supporting JSON in GET request
|
* Fixes for web servers not supporting JSON in GET request
|
||||||
|
|
||||||
## Release note v20.3.0.PRO
|
Release note v20.3.0.PRO
|
||||||
|
------------------------
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
* Employee and Attendance REST Api Released
|
* Employee and Attendance REST Api Released
|
||||||
* Import/Export for Payroll Configurations
|
* Import/Export for Payroll Configurations
|
||||||
* Ability to import employee approved time sheet hours to payroll
|
* Ability to import employee approved time sheet hours to payroll
|
||||||
* Swift Mailer based SMTP support \(no need to install Net\_SMTP anymore\)
|
* Swift Mailer based SMTP support (no need to install Net_SMTP anymore)
|
||||||
* Add direct Edit button on employee list
|
* Add direct Edit button on employee list
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
|
||||||
* Fix DB connection issues due to special characters in password
|
* Fix DB connection issues due to special characters in password
|
||||||
* Fixes for custom field saving issues in mysql v5.7.x
|
* Fixes for custom field saving issues in mysql v5.7.x
|
||||||
|
|
||||||
## Release note v20.2
|
Release note v20.2
|
||||||
|
------------------
|
||||||
### Fixes
|
### Fixes
|
||||||
|
|
||||||
* Fix for resetting modules
|
* Fix for resetting modules
|
||||||
|
|
||||||
## Release note v20.1
|
Release note v20.1
|
||||||
|
------------------
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
* Compatible with MySQL 5.7 Strict Mode
|
* Compatible with MySQL 5.7 Strict Mode
|
||||||
* PSR-2 compatible code
|
* PSR-2 compatible code
|
||||||
* Employee History Module
|
* Employee History Module
|
||||||
* Staff Directory
|
* Staff Directory
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
|
||||||
* Fix: password reset not working
|
* Fix: password reset not working
|
||||||
* Fix: limiting selectable countries via Settings
|
* Fix: limiting selectable countries via Settings
|
||||||
* Fix for resetting modules
|
* Fix for resetting modules
|
||||||
|
|
||||||
## Release note v20.0
|
Release note v20.0
|
||||||
|
------------------
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
* Payroll Module
|
* Payroll Module
|
||||||
* Compatible with MySQL 5.7 Strict Mode
|
* Compatible with MySQL 5.7 Strict Mode
|
||||||
* Namespaced Classes
|
* Namespaced Classes
|
||||||
* LDAP Module
|
* LDAP Module
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
|
||||||
* Fix: limiting selectable countries via Settings
|
* Fix: limiting selectable countries via Settings
|
||||||
|
|
||||||
## Release note v19.0
|
Release note v19.0
|
||||||
|
------------------
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
* Development environment
|
* Development environment
|
||||||
* Overtime module
|
* Overtime module
|
||||||
* Department heads who can manage all employees attached to a company structure
|
* Department heads who can manage all employees attached to a company structure
|
||||||
|
|
||||||
## Release note v18.0
|
|
||||||
|
|
||||||
|
Release note v18.0
|
||||||
|
------------------
|
||||||
### Features
|
### Features
|
||||||
|
* Translations (beta) for German, French, Polish, Italian, Sinhala, Chinese, Japanese, Hindi and Spanish
|
||||||
* Translations \(beta\) for German, French, Polish, Italian, Sinhala, Chinese, Japanese, Hindi and Spanish
|
|
||||||
* PDF Reports
|
* PDF Reports
|
||||||
* Ability to specify department heads
|
* Ability to specify department heads
|
||||||
* Add advanced custom fields to employees via UI
|
* Add advanced custom fields to employees via UI
|
||||||
@@ -297,20 +245,19 @@ This release include some very critical security fixes. We recommend upgrading y
|
|||||||
* Report files module - Allow downloading all previously generated reports
|
* Report files module - Allow downloading all previously generated reports
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
|
||||||
* Fix: subordinates are not showing beyond first page issue.
|
* Fix: subordinates are not showing beyond first page issue.
|
||||||
|
|
||||||
## Release note v16.1
|
|
||||||
|
Release note v16.1
|
||||||
|
------------------
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
|
||||||
* Fix LDAP user login issue
|
* Fix LDAP user login issue
|
||||||
* Allow creating users with username having dot and dash
|
* Allow creating users with username having dot and dash
|
||||||
|
|
||||||
## Release note v16.0
|
Release note v16.0
|
||||||
|
------------------
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
* Advanced Employee Management Module is now included in IceHrm Open Source Edition
|
* 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
|
* 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
|
* Initial implementation of icehrm REST Api for reading employee details
|
||||||
@@ -321,31 +268,30 @@ This release include some very critical security fixes. We recommend upgrading y
|
|||||||
* Setting for updating module names
|
* Setting for updating module names
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
|
||||||
* Fix issue: classes should be loaded even the module is disabled
|
* Fix issue: classes should be loaded even the module is disabled
|
||||||
* Deleting the only Admin user is not allowed
|
* Deleting the only Admin user is not allowed
|
||||||
* Fixes for handling non UTF-8
|
* Fixes for handling non UTF-8
|
||||||
* Fix for non-mandatory select boxes are shown as mandatory
|
* Fix for non-mandatory select boxes are shown as mandatory
|
||||||
|
|
||||||
## Release note v15.2
|
Release note v15.2
|
||||||
|
------------------
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
* Overtime Reports
|
* Overtime Reports
|
||||||
* Overtime calculation for california
|
* Overtime calculation for california
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
|
||||||
* Fix issue: uncaught error when placeholder value is empty
|
* Fix issue: uncaught error when placeholder value is empty
|
||||||
* Log email sending success status
|
* Log email sending success status
|
||||||
* Fix broken longer company name issue
|
* Fix broken longer company name issue
|
||||||
* Make the application accessible when client on an intranet with no internet connection
|
* 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: when a module is disabled other modules depend on it stops working
|
||||||
|
|
||||||
## Release note v15.0
|
|
||||||
|
Release note v15.0
|
||||||
|
------------------
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
* Clear HTML5 local storage when logging in and switching users
|
* Clear HTML5 local storage when logging in and switching users
|
||||||
* Showing a loading message while getting data from server
|
* Showing a loading message while getting data from server
|
||||||
* Adding a new field to show total time of each time sheet
|
* Adding a new field to show total time of each time sheet
|
||||||
@@ -353,26 +299,24 @@ This release include some very critical security fixes. We recommend upgrading y
|
|||||||
* Company logo uploaded via settings will be used for all email headers
|
* Company logo uploaded via settings will be used for all email headers
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
|
||||||
* Fix issue: default module URL is incorrect for Employees
|
* Fix issue: default module URL is incorrect for Employees
|
||||||
* Fix date parsing issue in time sheets
|
* Fix date parsing issue in time sheets
|
||||||
* AWS phar is included only when required
|
* AWS phar is included only when required
|
||||||
|
|
||||||
## Release note v14.1
|
Release note v14.1
|
||||||
|
------------------
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
* Add Quick access menu
|
* Add Quick access menu
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
|
||||||
* Fix issue: salary module not loading
|
* Fix issue: salary module not loading
|
||||||
* Add travel report
|
* Add travel report
|
||||||
|
|
||||||
## Release note v14.0
|
Release note v14.0
|
||||||
|
------------------
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
* IceHrm is now fully compatible with PHP 7
|
* IceHrm is now fully compatible with PHP 7
|
||||||
* Improvements to travel management module to change the process of applying for travel requests
|
* Improvements to travel management module to change the process of applying for travel requests
|
||||||
* New report add for getting travel requests
|
* New report add for getting travel requests
|
||||||
@@ -384,125 +328,129 @@ This release include some very critical security fixes. We recommend upgrading y
|
|||||||
* New reports added for employee expenses and travel
|
* New reports added for employee expenses and travel
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
|
||||||
* Fix unavailable help links
|
* Fix unavailable help links
|
||||||
|
|
||||||
## Release note v13.4
|
|
||||||
|
Release note v13.4
|
||||||
|
-----------------
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
|
||||||
* Fix employee leave report leave type field
|
* Fix employee leave report leave type field
|
||||||
|
|
||||||
## Release note v13.0
|
Release note v13.0
|
||||||
|
-----------------
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
* Recruitment module
|
* Recruitment module
|
||||||
* Allow managers to edit attendance of direct report employees
|
* Allow managers to edit attendance of direct report employees
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
|
||||||
* Employee switching issue fixed
|
* Employee switching issue fixed
|
||||||
* Fix terminated employee labels
|
* Fix terminated employee labels
|
||||||
* Fix issue with punch-in
|
* Fix issue with punch-in
|
||||||
|
|
||||||
## Release note v12.6
|
Release note v12.6
|
||||||
|
-----------------
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
* Charts module
|
* Charts module
|
||||||
* Code level security improvements
|
* Code level security improvements
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
|
||||||
* Employee switching issue fixed
|
* Employee switching issue fixed
|
||||||
|
|
||||||
## Release note v11.1
|
|
||||||
|
Release note v11.1
|
||||||
|
-----------------
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
* Add/Edit or remove employee fields
|
* Add/Edit or remove employee fields
|
||||||
|
|
||||||
## Release note v11.0
|
|
||||||
|
Release note v11.0
|
||||||
|
-----------------
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
* Employee data archiving
|
* Employee data archiving
|
||||||
* Leave cancellation requests
|
* Leave cancellation requests
|
||||||
* Adding view employee feature
|
* Adding view employee feature
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
|
||||||
* Improvements to date time pickers
|
* Improvements to date time pickers
|
||||||
|
|
||||||
## Release note v10.1
|
|
||||||
|
Release note v10.1
|
||||||
|
-----------------
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
* Integration with ice-framework (http://githun.com/thilinah/ice-framework)
|
||||||
* 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
|
* 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
|
* Restricting availability of leave types to employees using leave groups
|
||||||
* Admins and add notes to employees
|
* Admins and add notes to employees
|
||||||
|
|
||||||
## Release note v9.1
|
Release note v9.1
|
||||||
|
-----------------
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
|
||||||
* Add missing S3FileSystem class
|
* 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: passing result of a method call directly into empty method is not supported in php v5.3
|
||||||
|
|
||||||
## Release note v9.0
|
|
||||||
|
Release note v9.0
|
||||||
|
-----------------
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
* New user interface
|
* New user interface
|
||||||
* Decimal leave counts supported
|
* Decimal leave counts supported
|
||||||
|
|
||||||
## Update icehrm v8.4 to v9.0
|
Update icehrm v8.4 to v9.0
|
||||||
|
--------------------------
|
||||||
|
|
||||||
* Make a backup of your icehrm db
|
* 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
|
* 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
|
* remove all folders except app folder in icehrm root folder
|
||||||
* copy all folders except app folder from new installation to icehrm root folder
|
* copy all folders except app folder from new installation to icehrm root folder
|
||||||
|
|
||||||
## Release note v8.4
|
|
||||||
|
Release note v8.4
|
||||||
|
-----------------
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
|
||||||
* Fix leave carry forward rounding issues
|
* Fix leave carry forward rounding issues
|
||||||
* Fix issue: select2 default value not getting set for select2
|
* Fix issue: select2 default value not getting set for select2
|
||||||
* Fix issue: email not sent when admin changing leave status
|
* Fix issue: email not sent when admin changing leave status
|
||||||
|
|
||||||
## Release note v8.3
|
Release note v8.3
|
||||||
|
-----------------
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
* Fix user table issue on windows, this will resolve errors such as: (Note that this fix has no effect on unix based installations)
|
||||||
* 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 view user uploaded documents
|
||||||
* Admin not able to upload documants for users
|
* Admin not able to upload documants for users
|
||||||
* Admin can not view employee attendance records
|
* Admin can not view employee attendance records
|
||||||
* Employee projects can not be added
|
* Employee projects can not be added
|
||||||
|
|
||||||
## Release note v8.2
|
|
||||||
|
Release note v8.2
|
||||||
|
-----------------
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
* Instance verification added
|
* Instance verification added
|
||||||
|
|
||||||
## Release note v8.1
|
Release note v8.1
|
||||||
|
-----------------
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
|
||||||
* Fixed bug that caused a fatal error in php v5.4
|
* Fixed bug that caused a fatal error in php v5.4
|
||||||
* aws2.7.11 phar file replaced by a aws2.7.11 extracted files
|
* aws2.7.11 phar file replaced by a aws2.7.11 extracted files
|
||||||
* old aws sdk removed
|
* old aws sdk removed
|
||||||
|
|
||||||
## Release note v8.0
|
Release note v8.0
|
||||||
|
-----------------
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
* Admin dashbord module
|
* Admin dashbord module
|
||||||
* If the employee joined in current leave period, his leave entitlement is calculated proportional to joined date
|
* If the employee joined in current leave period, his leave entitlement is calculated proportional to joined date
|
||||||
* Improvements to reporting module
|
* 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
|
* Upgrade aws sdk to v2.7.11
|
||||||
* Allow employees to change password
|
* Allow employees to change password
|
||||||
* Use only the email address defined under user for sending mails
|
* 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
|
### Fixes
|
||||||
|
|
||||||
* Upload dialog close button issue fixed
|
* Upload dialog close button issue fixed
|
||||||
|
|
||||||
## Release note v7.2
|
Release note v7.2
|
||||||
|
-----------------
|
||||||
|
|
||||||
### Fixes
|
### 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
|
### Features
|
||||||
|
|
||||||
* Improved company structure graph
|
* Improved company structure graph
|
||||||
* Leave notes implementation � Supervisor can add a note when approving or rejecting leaves
|
* Leave notes implementation � Supervisor can add a note when approving or rejecting leaves
|
||||||
* Filtering support
|
* 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
|
* Add ability to disable employee information editing
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
|
||||||
* Make loans editable only by admin
|
* Make loans editable only by admin
|
||||||
* Fix: permissions not getting applied to employee documents
|
* Fix: permissions not getting applied to employee documents
|
||||||
* Fix error adding employee documents when no user assigned to the admin
|
* Fix error adding employee documents when no user assigned to the admin
|
||||||
|
|
||||||
### Code Quality
|
### Code Quality
|
||||||
|
|
||||||
* Moving all module related code and data into module folders
|
* Moving all module related code and data into module folders
|
||||||
|
|
||||||
## Release note v6.1
|
Release note v6.1
|
||||||
|
-----------------
|
||||||
|
|
||||||
Leave carry forwared related isue fixed
|
Leave carry forwared related isue fixed
|
||||||
|
|
||||||
## Release note v6.0
|
Release note v6.0
|
||||||
|
-----------------
|
||||||
|
|
||||||
* Features
|
* Features
|
||||||
* Notifications for leaves and timesheets
|
* 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"
|
* 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
|
* Employee document, date added field can not be changed by the employee anymore
|
||||||
* About dialog added for admins
|
* About dialog added for admins
|
||||||
|
|
||||||
* Fixes
|
* 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 user duplicate email issue
|
||||||
* Fix manager can not logout from switched employee
|
* Fix manager can not logout from switched employee
|
||||||
* Remove admin guide from non admin users
|
* Remove admin guide from non admin users
|
||||||
|
|
||||||
## Release note v5.3
|
Release note v5.3
|
||||||
|
-----------------
|
||||||
|
|
||||||
* Fixes
|
* Fixes
|
||||||
* Fix missing employee name in employee details report
|
* Fix missing employee name in employee details report
|
||||||
|
|
||||||
## Release note v5.2
|
Release note v5.2
|
||||||
|
-----------------
|
||||||
|
|
||||||
* Fixes
|
* Fixes
|
||||||
* Remove unwanted error logs
|
* Remove unwanted error logs
|
||||||
@@ -585,33 +536,38 @@ Leave carry forwared related isue fixed
|
|||||||
* Remove add new button from subordinates module
|
* Remove add new button from subordinates module
|
||||||
* Adding administrators' guide
|
* Adding administrators' guide
|
||||||
|
|
||||||
## Release note v5.1
|
Release note v5.1
|
||||||
|
-----------------
|
||||||
|
|
||||||
* Fixes
|
* Fixes
|
||||||
* Fixing for non updating null fields
|
* 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
|
* Features
|
||||||
* New user permission implementation
|
* New user permission implementation
|
||||||
* Adding new user level - Manager
|
* Adding new user level - Manager
|
||||||
|
|
||||||
* Fixes
|
* Fixes
|
||||||
* Fixing remote table loading issue
|
* Fixing remote table loading issue
|
||||||
|
|
||||||
## Release note v4.2
|
Release note v4.2
|
||||||
|
-----------------
|
||||||
|
|
||||||
### Fixes
|
### 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
|
### Features
|
||||||
|
|
||||||
* Better email format for notifications
|
* Better email format for notifications
|
||||||
* Convert upload dialog to a bootstrp model
|
* Convert upload dialog to a bootstrp model
|
||||||
|
|
||||||
* Fixes
|
* Fixes
|
||||||
* Fix error sending emails with amazon SES
|
* Fix error sending emails with amazon SES
|
||||||
* Fix errors related to XAMPP and WAMPP servers
|
* 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
|
* Allow icehrm client to work without an internet connection
|
||||||
* Fix installer incorrect base url issue
|
* Fix installer incorrect base url issue
|
||||||
* Fix empty user creation 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' }}>
|
<Tag color="volcano" onClick={() => modJs.terminateEmployee(record.id)} style={{ cursor: 'pointer' }}>
|
||||||
<DeleteOutlined />
|
<DeleteOutlined />
|
||||||
{` ${adapter.gt('Deactivate')}`}
|
{` ${adapter.gt('Delete')}`}
|
||||||
</Tag>
|
</Tag>
|
||||||
)}
|
)}
|
||||||
{adapter.hasAccess('save')
|
{adapter.hasAccess('save')
|
||||||
|
|||||||
@@ -943,3 +943,7 @@ table.dataTable{
|
|||||||
.table-row-dark {
|
.table-row-dark {
|
||||||
background-color: #fbfbfb;
|
background-color: #fbfbfb;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.mod-tab {
|
||||||
|
margin-bottom:0px;margin-left:5px;border-bottom: none;
|
||||||
|
}
|
||||||
Vendored
+1
-1
@@ -1 +1 @@
|
|||||||
var _0x3a83=['Are\x20you\x20sure\x20you\x20want\x20to\x20delete\x20this\x20item\x20?','Max\x20Salary','#changePasswordBtn','_children','UserRole','<option\x20value=\x22__val__\x22>__text__</option>','DeductionGroupAdapter','showSave','monthly_installment','gracePeriod','Error','tabPayrollData','equals','maxLine','.filterBtn','changePasswordConfirm','httpsAgent','modes','issued','Timeline','_div_inner','./Cancel','saveUsage','page','Date\x20Time','./dispatchRequest','content-type','yellow','nodes','Contact\x20details','marital_status','ProjectAdapter','Payroll\x20Report\x20Column','createRef','gender','attachment3','formId','Shift-','getMappedFields','this','CommonDataImporter','domain=','\x20Courses','Display\x20Status','y-1-2','getElementById','viewFrom','edit','Success','#attendnaceCanvasOutWrapper','aqua','process.binding\x20is\x20not\x20supported','false','styles','ellipsis','isParent','fromCharCode','getSelection','<img\x20src=\x22_img_\x22\x20class=\x22img-circle\x22\x20style=\x22width:45px;height:\x2045px;\x22\x20alt=\x22User\x20Image\x22>','fillForm','ReactNative','sendCellDataUpdates','geekblue','TravelRequest','lowerCondition','type','permissions','dependencies','Time-In','helpers','Driving\x20License\x20No','#tabPageCompanyGraph','stateAfter','EmployeeCompanyLoanAdapter','CompanyLoanAdapter','Cancellation\x20Requested','#numberOfCourses','vendor','18px','./adapters/xhr','localVars','closeModal','png','Certification','rmClass','tooltip','modeGen','period_months','preProcessRemoteTableData','triple','remove','upload','getClientMessage','clearWhenEmpty','rowFieldName','formFieldsToData','unmountComponentAtNode','around','createField','User\x20Level','List','./FormValidation','insertBefore','addActualFields','&ob=','curOp','draggingText','min-width:\x201px','start_time','View','saveUser','Document\x20Id','minHeight','selForContextMenu','fileupload','other_id','cyan','Is\x20ID\x20Field','findWordAt','Authorization','ArchivedEmployee','CodeMirror-wrap','Invalid\x20attempt\x20to\x20spread\x20non-iterable\x20instance.\x0aIn\x20order\x20to\x20be\x20iterable,\x20non-array\x20objects\x20must\x20have\x20a\x20[Symbol.iterator]()\x20method.','addToHistory','#tabPageAttendanceGraph\x20div','componentWillUnmount','./helpers/bind','&sSearch=','undefined','payrollColumn','orderBy','work_station_id','menu+name','phrases','initFieldMasterDataResponse','atomic','getSubHeaderTitle','<canvas\x20id=\x22attendnaceCanvasIn\x22\x20height=\x22156\x22\x20width=\x22208\x22\x20style=\x22border:\x201px\x20#222\x20dotted;\x22></canvas>','AttendanceGraphAdapter','setPermissions','_message','pay_frequency','detachLine','\x20Departments','\x20Employees','\x20Active','px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20top:\x20','autofocus','getKey','charCodeAt','fa\x20fa\x20fa-file-code-o','change','<img\x20class=\x22tableActionButton\x22\x20src=\x22_BASE_images/clone.png\x22\x20style=\x22margin-left:15px;cursor:pointer;\x22\x20rel=\x22tooltip\x22\x20title=\x22Copy\x22\x20onclick=\x22modJs.copyRow(_id_);return\x20false;\x22></img>','.dataTables_filter\x20label','OrEmpty','gutterFiller','employee_id','empty','lastAnchorOffset','activeElt','(?:$|\x5cs)','offsetHeight','OvertimeRequest','Male','./AdapterBase','menu','hasOwnProperty','Employee\x20Projects','setPhotoAttendance','tables','pageSize','addClass','_id_','pagination','vardef','getItem','Fragment','#plainMessageModel','payroll_','Calculation\x20Process','format','moveV','Reading','parse','showAll','viewport','contenteditable','admin=users','<div\x20style=\x22width:150px;\x22><img\x20class=\x22tableActionButton\x22\x20src=\x22_BASE_images/edit.png\x22\x20style=\x22margin-left:15px;cursor:pointer;\x22\x20rel=\x22tooltip\x22\x20title=\x22Edit\x22\x20onclick=\x22modJs.edit(_id_);return\x20false;\x22></img><img\x20class=\x22tableActionButton\x22\x20src=\x22_BASE_images/delete.png\x22\x20style=\x22margin-left:15px;cursor:pointer;\x22\x20rel=\x22tooltip\x22\x20title=\x22Delete\x22\x20onclick=\x22modJs.deletePayrollGroup(_id_);return\x20false;\x22></img><img\x20class=\x22tableActionButton\x22\x20src=\x22_BASE_images/clone.png\x22\x20style=\x22margin-left:15px;cursor:pointer;\x22\x20rel=\x22tooltip\x22\x20title=\x22Duplicate\x22\x20onclick=\x22modJs.copyRow(_id_);return\x20false;\x22></img></div>','deleteRow','string-2','.tableActionButton','Show','innerHeight','textarea','initMasterDataReader','.select2Multi','Cancel','setScrollLeft','Restricted\x20Manager','numberOfLeaves','<div\x20style=\x22width:80px;\x22><img\x20class=\x22tableActionButton\x22\x20src=\x22_BASE_images/download.png\x22\x20style=\x22cursor:pointer;\x22\x20rel=\x22tooltip\x22\x20title=\x22Download\x22\x20onclick=\x22download(_name_);return\x20false;\x22></img></div>','#_delete_#','px;','response','defineInitHook','rbottom','Expiry\x20Date','lookAhead','openStatus','loading','toString','filtersContainer','.select2Field','lineNumber','request','currLine truncated
|
var _0x1eb8=['datagroupTemplate','ProvinceAdapter','addToken','CodeMirror-line','TravelRequest','ensurePolled','fa\x20fa-file-image-o','ProjectAdapter','allow-null','search\x20table:','init','18px','cutIncoming','Tag','barHeight','#payday_all','closeDialog','fetchConfig','env','sourceData','Axios','parameters','codemirror','inclusiveLeft','getClientMessage','/certifications','getText','saveSuccessItemCallback','altGraphKey','zeroWidthHack','registerGlobalHelper','TerminatedEmployeeAdapter','Employee\x20Data','wheelStartX','toISOString','LeavePeriod','if-modified-since','getTableFields','isValid','modeGen','changeStatusFailCallBack','coverEnd','innerMode','sortable','cachedTextHeight','addCustomFields','lineDiv','activateEmployee','readonly','current','maybeHiddenMarkers','paramsSerializer','User\x20Level','errorMap','&ft=','CodeMirror-cursor','getInitData','PayslipTemplateAdapter','Employee\x20Salary','headers','theme','inputmask','shiftKey','Common\x20Data\x20Importer','first_name+last_name','&method=get&url=/','detachLine','AttendanceDataImporter','createTable','Number\x20required','../../../../components/TagList','sortOrder','exit','.row','match','Contact\x20details','csv,txt','maxLineLength','Benifit','display_section','classes','currentProfile','<div\x20style=\x22width:132px;\x22>\x0a<img\x20class=\x22tableActionButton\x22\x20src=\x22_BASE_images/edit.png\x22\x20style=\x22cursor:pointer;margin-left:15px;\x22\x20rel=\x22tooltip\x22\x20title=\x22Edit\x22\x20onclick=\x22modJs.edit(_id_);return\x20false;\x22></img>\x0a<img\x20class=\x22tableActionButton\x22\x20src=\x22_BASE_images/delete.png\x22\x20style=\x22margin-left:15px;cursor:pointer;\x22\x20rel=\x22tooltip\x22\x20title=\x22Archive\x20Employee\x22\x20onclick=\x22modJs.deleteEmployee(_id_);return\x20false;\x22></img>\x0a<img\x20class=\x22tableActionButton\x22\x20src=\x22_BASE_images/redo.png\x22\x20style=\x22margin-left:15px;cursor:pointer;\x22\x20rel=\x22tooltip\x22\x20title=\x22Restore\x20Employee\x22\x20onclick=\x22modJs.activateEmployee(_id_);return\x20false;\x22></img>\x0a</div>','Reset','all','clearError','#attendnaceCanvasEmp','mask','Payroll\x20Column','fill','text/plain','LeaveStartingBalance','iterator','onUploadProgress','defaultPrevented','marital_status','project','countryCompany','width:\x20','ASC','CodeMirror-focused','text-anchor','instanceId','datetimepicker','first','display_order','Parent','showElement','scrollToElementBottom','Employee\x20Distribution','calculation_hook','highlightFrontier','getLogs','rect','<img\x20class=\x22tableActionButton\x22\x20src=\x22_BASE_images/delete.png\x22\x20style=\x22margin-left:15px;cursor:pointer;\x22\x20rel=\x22tooltip\x22\x20title=\x22Delete\x22\x20onclick=\x22modJs.deleteRow(_id_);return\x20false;\x22></img>','getActiveSubordinateEmployees','process','<option\x20value=\x22NULL\x22>Select</option>','Description','.paydayCheck','resetSelectionOnContextMenu','../../../api/ReactLegacyModalAdapterBase','reportedViewTo','formContainer','\x20Request\x20status\x20changed\x20successfully','helpers','resetFilters','errorMessages','updateFieldsSubForm','dragstart','interceptors','SUCCESS','fields','rowFieldName','.completeBtnTable','Tasks','username','green','construct','addFailCallBack','Disallowed\x20User\x20Roles','inputTypes','rememberSelection','namespace','[datetimemask]','addAdditionalRequestData','req','attachment3','formatter','deleteLine','poll','Deduction','padding-right:\x20.1px','stat','responseType','Are\x20you\x20sure\x20you\x20want\x20to\x20delete\x20this\x20payroll\x20group?\x20Deleting\x20the\x20payroll\x20group\x20will\x20delete\x20all\x20the\x20Payroll\x20columns\x20and\x20Saved\x20calculations\x20attached\x20to\x20this\x20Payroll\x20Group','No\x20Upper\x20Limit','yAxis','tagName','maybeUnhiddenMarkers','fieldset','auto','createTask','dataToFormFields','resetDataGroup','DatePicker','lte','File\x20Upload','File\x20to\x20Import','activeTouch','createRef','translate(','lastIndexOf','isPlainObject','\x20#help_err_','pollInterval','Other','moveStart','gracePeriod','country','markText','admin=dashboard','getActionButtonHeader','saveUsageFailCallBack','editcell','\x20<i\x20class=\x22fa\x20fa-plus\x22></i></button>','_submit','?t=','dependencies','user_roles','position:\x20relative;\x20outline:\x20none','.35em','prepareSelection','getFormSelectOptionsRemote','./MasterDataReader','Attachment\x201','Reading','detach','employee','terminateEmployeeSuccessCallback','initialFilter','deleteH','../core/createError','getElementById','fa\x20fa-file-powerpoint-o','funding','ImmigrationDocument','left','Password\x20too\x20short','removeInner','#numberOfLeaves','status_to','createUser','Number\x20or\x20Empty','hash','Dropped','job_title_Name','DeductionAdapter','TaskList','MonitorOutlined','middle','cancelCallback','All\x20Loan\x20Types','fieldMasterDataCallbackData','insertInner','map_out_snapshot','CompanyDocumentAdapter','immigration_status','expiry','vert','helper','#numberOfAttendanceLastWeek','tabSkiLine truncated
|
||||||
Vendored
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
var _0xe21f=['readInt32BE','$1\x20','Invalid\x20string.\x20Length\x20must\x20be\x20a\x20multiple\x20of\x204','string','buffer','#_time_#','join','#_header_#','writeInt32LE','height','readUInt16LE','allocUnsafeSlow',',height=','replace','#_url_#','decrypt','September','writeIntLE','Argument\x20must\x20be\x20a\x20Buffer','rotWord','image','readUIntLE','apply','Index\x20out\x20of\x20range','writeInt16BE','\x22value\x22\x20argument\x20is\x20out\x20of\x20bounds','setItem','getUTCDate','#_fromName_#','Out\x20of\x20range\x20index','Buffer','css','June','./Aes','You\x20have\x20','./RequestCache','getItem','out\x20of\x20range\x20index','split','ieee754','alloc','readInt32LE','log','from','notification','about\x20an\x20hour\x20ago','species','data','swap32','#_count_#','readFloatBE','key','url','amd','toString','byteLength','August','readFloatLE','March','isView','Share\x20on\x20Google','writeFloatLE','January','<br/>','writeInt32BE','attr','open','readIntBE','./SocialShare','exports','readIntLE','readDoubleLE','getMinutes','copy','offset\x20is\x20not\x20uint','INSPECT_MAX_BYTES','toJSON','<Buffer\x20','utf16le','keys','December','writeInt16LE','\x22\x20is\x20invalid\x20for\x20option\x20\x22size\x22','copyWithin','encrypt','read',',left=','No\x20Base64\x20Decode','undefined','clearNotifications','slimscroll','service.php','writeUInt32BE','The\x20first\x20argument\x20must\x20be\x20one\x20of\x20type\x20string,\x20Buffer,\x20ArrayBuffer,\x20Array,\x20or\x20Array-like\x20Object.\x20Received\x20type\x20','toLowerCase','May','shiftRows','lastIndexOf','latin1','poolSize','find','Cannot\x20find\x20module\x20\x27','byteOffset','SocialShare','function','code','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/','Saturday','ceil','width=','Sunday','includes','setBaseUrl','Trying\x20to\x20access\x20beyond\x20buffer\x20length','__proto__','isEncoding','fromByteArray','rCon','write','pow','action','3px','concat','sBox','baseUrl','compare','writeFloatBE','html','ucs-2','./Notifications','min','subBytes','fill','Cannot\x20call\x20a\x20class\x20as\x20a\x20function','writable','\x22list\x22\x20argument\x20must\x20be\x20an\x20Array\x20of\x20Buffers','isBuffer','Buffer\x20size\x20must\x20be\x20a\x20multiple\x20of\x2016-bits','getTime','toPrimitive','base64-js','readUInt8','error','hex','getKey','valueOf','./aes','inspect','templates','getData','Invalid\x20code\x20point','\x22\x20is\x20invalid\x20for\x20argument\x20\x22value\x22','RequestCache','toByteArray','addRoundKey','push','slice','floor','set','SUCCESS','Unknown\x20encoding:\x20','\x20at\x20','trim','getMySQLFormatDate','less\x20than\x20a\x20minute\x20ago','October','base64Encode','writeUInt8','TYPED_ARRAY_SUPPORT','&url=','number','renderNotifications','utf8Encode','getMonth','\x20bytes','encoding\x20must\x20be\x20a\x20string','\x20...\x20','readDoubleBE','name','writeUInt32LE','#_message_#','100%','parent','\x22offset\x22\x20is\x20outside\x20of\x20buffer\x20bounds','readInt16BE','getLineBreakString','call','timeUtils','defineProperty','keyExpansion','prototype','utf-16le','readUInt16BE','_isBuffer','setServerGMToffset','The\x20\x22string\x22\x20argument\x20must\x20be\x20one\x20of\x20type\x20string,\x20Buffer,\x20or\x20ArrayBuffer.\x20Received\x20type\x20','.notificationTime','This\x20browser\x20lacks\x20typed\x20array\x20(Uint8Array)\x20support\x20which\x20is\x20required\x20by\x20`buffer`\x20v5.x.\x20Use\x20`buffer`\x20v4.x\x20if\x20you\x20require\x20old\x20browser\x20support.','length','Buffer\x20size\x20must\x20be\x20a\x20multiple\x20of\x2032-bits','getUTCMonth','#notifications','utf8','Ctr','renderNotification','status','Aes','getFullYear','getDay','val\x20must\x20be\x20string,\x20number\x20or\x20Buffer','random','Buffer.write(string,\x20encoding,\x20offset[,\x20length])\x20is\x20no\x20longer\x20supported','getJSON','foo','sourceEnd\x20out\x20of\x20bounds','February','message','mixColumns','writeDoubleLE','charCodeAt','value','writeDoubleBE','fromCharCode','serverGMToffset','utf-8','\x20hours\x20ago','__esModule','writeUIntBE','constructor','SlowBuffer','enumerable','.navbar\x20.menu','width=550,height=260,scrollbars=yes,resizable=yes,toolbar=no,directories=no,location=no,menubar=no,status=no,left=200,top=200','getTimezoneOffset','indexOf','readUInt32LE','ucs2','\x22buffer\x22\x20argument\x20must\x20be\x20a\x20Buffer\x20instance','The\x20value\x20\x22','setTimeUtils','Attempt\x20to\x20allocate\x20Buffer\x20larger\x20than\x20maximum\x20size:\x200x','Share\x20on\x20Linked\x20in','remove','width','http://twitter.com/share?text=','round','removeAllByPrefix','\x20minutes\x20ago','\x22size\x22\x20argument\x20must\x20be\x20of\x20type\x20number','subWord','popup','Share\x20on\x20Facebook','substr','type','parse','title','The\x20\x22value\x22\x20argument\x20must\x20not\x20be\x20of\x20type\x20number.\x20Received\x20type\x20number','base64Decode','subarray','cipher','configurable','ascii','base64','writeInt8','#_notifications_#','kMaxLength','binary','swap16','The\x20\x22Line truncated
|
var _0x5199=['charCodeAt','.navbar\x20.menu','string','base64Decode','No\x20Base64\x20Decode','title','swap64','subWord','default','\x22length\x22\x20is\x20outside\x20of\x20buffer\x20bounds','rCon','Saturday','Wednesday','constructor','writeInt8','remove','toLocaleString','readInt8','readDoubleBE','ucs2','RequestCache','readDoubleLE','read','writeUIntBE','about\x20an\x20hour\x20ago','fromByteArray','val\x20must\x20be\x20string,\x20number\x20or\x20Buffer','mixColumns','concat','code','setTemplates','serverGMToffset','exports','toJSON','Buffer','\x20...\x20','setupTimeUtils','base64Encode','fill','byteLength','indexOf','Buffer\x20size\x20must\x20be\x20a\x20multiple\x20of\x2064-bits','fromCharCode','toString','keyExpansion','setupNotifications','readIntLE','html','Ctr','<br/>','#notifications','writeInt32LE','write','each','time',',left=','_isBuffer','height','writeUInt8','100%','equals','MODULE_NOT_FOUND','August','getTime','No\x20Base64\x20Encode','out\x20of\x20range\x20index','defineProperty','base64','writeFloatBE','TYPED_ARRAY_SUPPORT','encrypt','clearPendingNotifications','copy','log','species','prototype','readInt32LE','getUTCMonth','writable','_arr','ascii','parse','setBaseUrl','\x22buffer\x22\x20argument\x20must\x20be\x20a\x20Buffer\x20instance','call','utf16le','configurable','readUInt32LE','targetStart\x20out\x20of\x20bounds','isBuffer','number','writeInt16BE','readUIntLE','April','The\x20\x22string\x22\x20argument\x20must\x20be\x20one\x20of\x20type\x20string,\x20Buffer,\x20or\x20ArrayBuffer.\x20Received\x20type\x20','convertToRelativeTime','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/','The\x20\x22value\x22\x20argument\x20must\x20not\x20be\x20of\x20type\x20number.\x20Received\x20type\x20number','substr','writeDoubleBE','Cannot\x20call\x20a\x20class\x20as\x20a\x20function','SlowBuffer','#_image_#','renderNotifications','readInt32BE','shiftRows','__esModule','subBytes','LN2','name','latin1','width=','setTimeUtils','toPrimitive','image','baseUrl','Attempt\x20to\x20write\x20outside\x20buffer\x20bounds','The\x20value\x20\x22','Share\x20on\x20Google','removeAllByPrefix','writeFloatLE','width=550,height=260,scrollbars=yes,resizable=yes,toolbar=no,directories=no,location=no,menubar=no,status=no,left=200,top=200','#_count_#','Thursday','https://plus.google.com/share?url=','data','slice','#_fromName_#','allocUnsafeSlow','offset\x20is\x20not\x20uint',',height=','Argument\x20must\x20be\x20a\x20Buffer','October','getUTCFullYear','subarray','byteOffset','url','utf8Decode','value','error','March','alloc','#_url_#','pow','copyWithin','compare','rotWord','September','action','split','getJSON','toLowerCase','utf-16le','Unknown\x20encoding:\x20','includes','writeUIntLE','.label-danger','#_message_#','https://www.facebook.com/sharer/sharer.php?u=','isView','toByteArray','\x20minutes\x20ago','getItem','clearNotifications','getTimezoneOffset','setItem','\x22\x20is\x20invalid\x20for\x20argument\x20\x22value\x22','3px','storage','attr','.notificationTime','readFloatBE','Index\x20out\x20of\x20range','#_time_#','lastIndexOf','status','SUCCESS','Monday','writeIntBE','getMonth','min','offset','readInt16LE','Attempt\x20to\x20allocate\x20Buffer\x20larger\x20than\x20maximum\x20size:\x200x','Invalid\x20code\x20point','You\x20have\x20no\x20new\x20notifications','replaceWith','amd','renderNotification','templates','floor','utf8Encode','readInt16BE','SocialShare','undefined','getMinutes','keys','popup','#_notifications_#','ucs-2','#_header_#','getDay','https://www.linkedin.com/cws/share?url=','addRoundKey','Tuesday','type','function','invalidateTable','getData','&url=','January','writeUInt32LE','random','May','\x20new\x20notifications','Buffer\x20size\x20must\x20be\x20a\x20multiple\x20of\x2032-bits','width','replace','binary','cipher','./SocialShare','setData','\x22list\x22\x20argument\x20must\x20be\x20an\x20Array\x20of\x20Buffers','parent','Out\x20of\x20range\x20index','June','writeDoubleLE','$1\x20','round','push','writeUInt16BE','allocUnsafe','<Buffer\x20','open','readIntBE','The\x20first\x20argument\x20must\x20be\x20one\x20of\x20type\x20string,\x20Buffer,\x20ArrayBuffer,\x20Array,\x20or\x20Array-like\x20Object.\x20Received\x20type\x20','swap32','The\x20\x22target\x22\x20argument\x20must\x20be\x20one\x20of\x20type\x20Buffer\x20or\x20Uint8Array.\x20Received\x20type\x20','setServerGMToffset','\x20bytes','Trying\x20to\x20access\x20beyond\x20buffer\x20length','getKey','sBox','July','join','from','You\x20have\x20','decrypt','notifications','readFloatLE','base64-js','./TimeUtils','INSPECT_MAX_BYTES','utf8','writeInt16LE','argument\x20should\x20be\x20a\x20Buffer','key','getMySQLFormatDate','./aes','encoding\x20must\x20be\x20a\x20string','css','trim','slimscroll','notification','ceil','readUInt32BE','find','abs','swap16','poolSize','\x20at\x20',',top=','valueOf','Invalid\x20string.\x20Length\x20must\x20be\x20a\x20multiple\x20of\x204','hex','utf-8','December','isArray','__proto__','getNotifications','enumerable','getLLine truncated
|
||||||
* The buffer module from node.js, for the browser.
|
* The buffer module from node.js, for the browser.
|
||||||
*
|
*
|
||||||
* @author Feross Aboukhadijeh <https://feross.org>
|
* @author Feross Aboukhadijeh <https://feross.org>
|
||||||
* @license MIT
|
* @license MIT
|
||||||
*/
|
*/
|
||||||
'use strict';var _0x11c442=_0x405300(_0x59d534('0x6d')),_0x271393=_0x405300(_0x59d534('0x8'));_0x414bee[_0x59d534('0x121')]=_0x4e499f,_0x414bee[_0x59d534('0xc6')]=function(_0x11a0a4){var _0x12b252=_0x59d534;return+_0x11a0a4!=_0x11a0a4&&(_0x11a0a4=0x0),_0x4e499f[_0x12b252('0x9')](+_0x11a0a4);},_0x414bee[_0x59d534('0x2c')]=0x32;function _0xda109f(_0x5c89dc){var _0x5739ca=_0x59d534;if(_0x5c89dc>0x7fffffff)throw new RangeError(_0x5739ca('0xcf')+_0x5c89dc+'\x22\x20is\x20invalid\x20for\x20option\x20\x22size\x22');var _0x42f605=new Uint8Array(_0x5c89dc);return _0x42f605['__proto__']=_0x4e499f[_0x5739ca('0x9f')],_0x42f605;}function _0x4e499f(_0x3689d5,_0x1920aa,_0x38de19){var _0x204d9d=_0x59d534;if(_0x204d9d('0x8b')==typeof _0x3689d5){if(_0x204d9d('0x106')==typeof _0x1920aa)throw new TypeError('The\x20\x22string\x22\x20argument\x20must\x20be\x20of\x20type\x20string.\x20Received\x20type\x20number');return _0x336479(_0x3689d5);}return _0x4a0bc9(_0x3689d5,_0x1920aa,_0x38de19);}function _0x4a0bc9(_0x564cf7,_0x5e9651,_0x47c68e){var _0x4f6600=_0x59d534;if(_0x4f6600('0x106')==typeof _0x564cf7)return function(_0xcdfcba,_0x409f62){var _0x2e4a54=_0x4f6600;_0x2e4a54('0x106')==typeof _0x409f62&&''!==_0x409f62||(_0x409f62='utf8');if(!_0x4e499f[_0x2e4a54('0x54')](_0x409f62))throw new TypeError(_0x2e4a54('0x81')+_0x409f62);var _0x2e7dc5=0x0|_0x1a2970(_0xcdfcba,_0x409f62),_0xfcfe38=_0xda109f(_0x2e7dc5),_0x450991=_0xfcfe38[_0x2e4a54('0x57')](_0xcdfcba,_0x409f62);return _0x450991!==_0x2e7dc5&&(_0xfcfe38=_0xfcfe38[_0x2e4a54('0x7d')](0x0,_0x450991)),_0xfcfe38;}(_0x564cf7,_0x5e9651);if(ArrayBuffer[_0x4f6600('0x1c')](_0x564cf7))return _0xd4aeb2(_0x564cf7);if(null==_0x564cf7)throw TypeError(_0x4f6600('0x3e')+typeof _0x564cf7);if(_0x1fb583(_0x564cf7,ArrayBuffer)||_0x564cf7&&_0x1fb583(_0x564cf7[_0x4f6600('0x107')],ArrayBuffer))return function(_0x2e1e7c,_0x42c91c,_0x330105){var _0x36d173=_0x4f6600;if(_0x42c91c<0x0||_0x2e1e7c[_0x36d173('0x18')]<_0x42c91c)throw new RangeError(_0x36d173('0x98'));if(_0x2e1e7c[_0x36d173('0x18')]<_0x42c91c+(_0x330105||0x0))throw new RangeError('\x22length\x22\x20is\x20outside\x20of\x20buffer\x20bounds');var _0x3c1fd2;return _0x3c1fd2=void 0x0===_0x42c91c&&void 0x0===_0x330105?new Uint8Array(_0x2e1e7c):void 0x0===_0x330105?new Uint8Array(_0x2e1e7c,_0x42c91c):new Uint8Array(_0x2e1e7c,_0x42c91c,_0x330105),(_0x3c1fd2[_0x36d173('0x53')]=_0x4e499f[_0x36d173('0x9f')],_0x3c1fd2);}(_0x564cf7,_0x5e9651,_0x47c68e);if(_0x4f6600('0x8b')==typeof _0x564cf7)throw new TypeError(_0x4f6600('0xe1'));var _0x5ff66d=_0x564cf7[_0x4f6600('0x72')]&&_0x564cf7[_0x4f6600('0x72')]();if(null!=_0x5ff66d&&_0x5ff66d!==_0x564cf7)return _0x4e499f[_0x4f6600('0xc')](_0x5ff66d,_0x5e9651,_0x47c68e);var _0x4c3cd5=function(_0x27977){var _0x2c95b5=_0x4f6600;if(_0x4e499f[_0x2c95b5('0x69')](_0x27977)){var _0xe2dfa8=0x0|_0x32d239(_0x27977['length']),_0x5d461b=_0xda109f(_0xe2dfa8);return 0x0===_0x5d461b[_0x2c95b5('0xa7')]||_0x27977['copy'](_0x5d461b,0x0,0x0,_0xe2dfa8),_0x5d461b;}if(void 0x0!==_0x27977[_0x2c95b5('0xa7')])return'number'!=typeof _0x27977[_0x2c95b5('0xa7')]||_0x13d2a1(_0x27977['length'])?_0xda109f(0x0):_0xd4aeb2(_0x27977);if(_0x2c95b5('0x121')===_0x27977[_0x2c95b5('0xde')]&&Array['isArray'](_0x27977['data']))return _0xd4aeb2(_0x27977[_0x2c95b5('0x10')]);}(_0x564cf7);if(_0x4c3cd5)return _0x4c3cd5;if(_0x4f6600('0x39')!=typeof Symbol&&null!=Symbol['toPrimitive']&&'function'==typeof _0x564cf7[Symbol['toPrimitive']])return _0x4e499f[_0x4f6600('0xc')](_0x564cf7[Symbol[_0x4f6600('0x6c')]](_0x4f6600('0x106')),_0x5e9651,_0x47c68e);throw new TypeError(_0x4f6600('0x3e')+typeof _0x564cf7);}function _0x16de90(_0x1c1476){var _0x2c883e=_0x59d534;if('number'!=typeof _0x1c1476)throw new TypeError(_0x2c883e('0xd9'));if(_0x1c1476<0x0)throw new RangeError(_0x2c883e('0xcf')+_0x1c1476+_0x2c883e('0x33'));}function _0x336479(_0x33ed6b){return _0x16de90(_0x33ed6b),_0xda109f(_0x33ed6b<0x0?0x0:0x0|_0x32d239(_0x33ed6b));}function _0xd4aeb2(_0x50cd17){var _0x247978=_0x59d534;for(var _0x3aa21f=_0x50cd17['length']<0x0?0x0:0x0|_0x32d239(_0x50cd17[_0x247978('0xa7')]),_0x5d7156=_0xda109f(_0x3aa21f),_0x29e837=0x0;_0x29e837<_0x3aa21f;_0x29e837+=0x1)_0x5d7156[_0x29e837]=0xff&_0x50cd17[_0x29e837];return _0x5d7156;}function _0x32d239(_0x3cdcc9){var _0x5360eb=_0x59d534;if(_0x3cdcc9>=0x7fffffff)throw new RangeError(_0x5360eb('0xd1')+0x7fffffff[_0x5360eb('0x17')](0x10)+_0x5360eb('0x8f'));return 0x0|_0x3cdcc9;}function _0x1a2970(_0x2807a9,_0x1e4ee2){var _0x5a681d=_0x59d534;if(_0x4e499f['isBuffer'](_0x2807a9))return _0x2807a9[_0x5a681d('0xa7')];if(ArrayBuffer[_0x5a681d('0x1c')](_0x2807a9)||_0x1fb583(_0x2807a9,ArrayBuffer))return _0x2807a9[_0x5a681d('0x18')];if(_0x5a681d('0x106')!=typeof _0x2807a9)throw new TypeError(_0x5a681d('0xa4')+typeof _0x2807a9);var _0x331c40=_0x2807a9['length'],_0xbad5f2=arguments['length']>0x2&&!0x0===arguments[0x2];if(!_0xbad5f2&&0x0===_0x331c40)return 0x0;for(var _0x113c85=!0x1;;)switch(_0x1e4ee2){case'ascii':case'latin1':case _0x5a681d('0xeb'):return _0x331c40;Line truncated
|
'use strict';var _0x23bebd=_0xc5b789(_0x4871a5('0xfb')),_0x523f39=_0xc5b789('ieee754');_0x4ff271[_0x4871a5('0x23')]=_0x5d3326,_0x4ff271[_0x4871a5('0x66')]=function(_0x544451){var _0xf7b0f4=_0x4871a5;return+_0x544451!=_0x544451&&(_0x544451=0x0),_0x5d3326[_0xf7b0f4('0x8e')](+_0x544451);},_0x4ff271[_0x4871a5('0xfd')]=0x32;function _0x453360(_0x389e81){var _0xa25efa=_0x4871a5;if(_0x389e81>0x7fffffff)throw new RangeError(_0xa25efa('0x76')+_0x389e81+'\x22\x20is\x20invalid\x20for\x20option\x20\x22size\x22');var _0x309c31=new Uint8Array(_0x389e81);return _0x309c31[_0xa25efa('0x117')]=_0x5d3326['prototype'],_0x309c31;}function _0x5d3326(_0x5c5cd4,_0x3db9e4,_0x205958){var _0x342c65=_0x4871a5;if(_0x342c65('0x5b')==typeof _0x5c5cd4){if(_0x342c65('0x3')==typeof _0x3db9e4)throw new TypeError('The\x20\x22string\x22\x20argument\x20must\x20be\x20of\x20type\x20string.\x20Received\x20type\x20number');return _0x24dc7b(_0x5c5cd4);}return _0x3a191e(_0x5c5cd4,_0x3db9e4,_0x205958);}function _0x3a191e(_0x4439ee,_0x46d915,_0x3d262d){var _0x5b866e=_0x4871a5;if(_0x5b866e('0x3')==typeof _0x4439ee)return function(_0x3c99de,_0x50055a){var _0x51e9b2=_0x5b866e;_0x51e9b2('0x3')==typeof _0x50055a&&''!==_0x50055a||(_0x50055a=_0x51e9b2('0xfe'));if(!_0x5d3326['isEncoding'](_0x50055a))throw new TypeError(_0x51e9b2('0x9a')+_0x50055a);var _0x395698=0x0|_0xfba21(_0x3c99de,_0x50055a),_0x2108db=_0x453360(_0x395698),_0x1d9e24=_0x2108db[_0x51e9b2('0x35')](_0x3c99de,_0x50055a);return _0x1d9e24!==_0x395698&&(_0x2108db=_0x2108db['slice'](0x0,_0x1d9e24)),_0x2108db;}(_0x4439ee,_0x46d915);if(ArrayBuffer[_0x5b866e('0xa0')](_0x4439ee))return _0x1340e2(_0x4439ee);if(null==_0x4439ee)throw TypeError(_0x5b866e('0xec')+typeof _0x4439ee);if(_0x120be3(_0x4439ee,ArrayBuffer)||_0x4439ee&&_0x120be3(_0x4439ee[_0x5b866e('0x11b')],ArrayBuffer))return function(_0x726423,_0x3a7328,_0x4aab0e){var _0x2ba08f=_0x5b866e;if(_0x3a7328<0x0||_0x726423['byteLength']<_0x3a7328)throw new RangeError('\x22offset\x22\x20is\x20outside\x20of\x20buffer\x20bounds');if(_0x726423[_0x2ba08f('0x28')]<_0x3a7328+(_0x4aab0e||0x0))throw new RangeError(_0x2ba08f('0xa'));var _0x4063b9;return _0x4063b9=void 0x0===_0x3a7328&&void 0x0===_0x4aab0e?new Uint8Array(_0x726423):void 0x0===_0x4aab0e?new Uint8Array(_0x726423,_0x3a7328):new Uint8Array(_0x726423,_0x3a7328,_0x4aab0e),(_0x4063b9['__proto__']=_0x5d3326[_0x2ba08f('0x4c')],_0x4063b9);}(_0x4439ee,_0x46d915,_0x3d262d);if(_0x5b866e('0x5b')==typeof _0x4439ee)throw new TypeError(_0x5b866e('0x62'));var _0xf0824f=_0x4439ee[_0x5b866e('0x111')]&&_0x4439ee[_0x5b866e('0x111')]();if(null!=_0xf0824f&&_0xf0824f!==_0x4439ee)return _0x5d3326[_0x5b866e('0xf6')](_0xf0824f,_0x46d915,_0x3d262d);var _0x37821a=function(_0x5944b1){var _0x4f3d75=_0x5b866e;if(_0x5d3326['isBuffer'](_0x5944b1)){var _0x1da735=0x0|_0x2358d3(_0x5944b1[_0x4f3d75('0x0')]),_0x3a5ceb=_0x453360(_0x1da735);return 0x0===_0x3a5ceb[_0x4f3d75('0x0')]||_0x5944b1[_0x4f3d75('0x49')](_0x3a5ceb,0x0,0x0,_0x1da735),_0x3a5ceb;}if(void 0x0!==_0x5944b1[_0x4f3d75('0x0')])return _0x4f3d75('0x5b')!=typeof _0x5944b1[_0x4f3d75('0x0')]||_0x2cb041(_0x5944b1[_0x4f3d75('0x0')])?_0x453360(0x0):_0x1340e2(_0x5944b1);if(_0x4f3d75('0x23')===_0x5944b1[_0x4f3d75('0xce')]&&Array['isArray'](_0x5944b1[_0x4f3d75('0x7e')]))return _0x1340e2(_0x5944b1['data']);}(_0x4439ee);if(_0x37821a)return _0x37821a;if(_0x5b866e('0xc3')!=typeof Symbol&&null!=Symbol[_0x5b866e('0x72')]&&_0x5b866e('0xcf')==typeof _0x4439ee[Symbol[_0x5b866e('0x72')]])return _0x5d3326['from'](_0x4439ee[Symbol[_0x5b866e('0x72')]]('string'),_0x46d915,_0x3d262d);throw new TypeError(_0x5b866e('0xec')+typeof _0x4439ee);}function _0x1c6ddd(_0x547277){var _0x4caf62=_0x4871a5;if(_0x4caf62('0x5b')!=typeof _0x547277)throw new TypeError('\x22size\x22\x20argument\x20must\x20be\x20of\x20type\x20number');if(_0x547277<0x0)throw new RangeError(_0x4caf62('0x76')+_0x547277+'\x22\x20is\x20invalid\x20for\x20option\x20\x22size\x22');}function _0x24dc7b(_0x2f83ca){return _0x1c6ddd(_0x2f83ca),_0x453360(_0x2f83ca<0x0?0x0:0x0|_0x2358d3(_0x2f83ca));}function _0x1340e2(_0x30af7f){var _0x4e111c=_0x4871a5;for(var _0x407ea6=_0x30af7f[_0x4e111c('0x0')]<0x0?0x0:0x0|_0x2358d3(_0x30af7f[_0x4e111c('0x0')]),_0x526038=_0x453360(_0x407ea6),_0x34f769=0x0;_0x34f769<_0x407ea6;_0x34f769+=0x1)_0x526038[_0x34f769]=0xff&_0x30af7f[_0x34f769];return _0x526038;}function _0x2358d3(_0x34b732){var _0x5bcca8=_0x4871a5;if(_0x34b732>=0x7fffffff)throw new RangeError(_0x5bcca8('0xb8')+0x7fffffff['toString'](0x10)+_0x5bcca8('0xf0'));return 0x0|_0x34b732;}function _0xfba21(_0x1501f1,_0x16589f){var _0x55139d=_0x4871a5;if(_0x5d3326[_0x55139d('0x5a')](_0x1501f1))return _0x1501f1[_0x55139d('0x0')];if(ArrayBuffer['isView'](_0x1501f1)||_0x120be3(_0x1501f1,ArrayBuffer))return _0x1501f1[_0x55139d('0x28')];if(_0x55139d('0x3')!=typeof _0x1501f1)throw new TypeError(_0x55139d('0x5f')+typeof _0x1501f1);var _0x3f2ea4=_0x1501f1[_0x55139d('0x0')],_0x49684e=arguments['length']>0x2&&!0x0===arguments[0x2];if(!_0x49684e&&0x0===_0x3f2ea4)return 0x0;for(vLine truncated
|
||||||
Vendored
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
var _0x39a6=['certification_id','thirdPartyPopup','Required','testKanji','defineProperties','isModuleInstalled','maxBodyLength','_renderForm','MMM\x20d\x20\x20<b>HH:mm</b>','Document','attachment','json','$1\x20','duration','isarray','getValue','subarray','<tr><td><img\x20class=\x22tableActionButton\x22\x20src=\x22_BASE_images/delete.png\x22\x20style=\x22cursor:pointer;\x22\x20rel=\x22tooltip\x22\x20title=\x22Delete\x22\x20onclick=\x22modJsList[\x27tabEmployeeTimeEntry\x27].deleteRow(_id_);return\x20false;\x22></img></td><td>_start_</td><td>_end_</td><td>_duration_</td><td>_project_</td><td>_details_</td>','Divider','EmployeeProjectAdapter','#adminUsersModel','filtersAlreadySet','first_name','fuchsia','multiple','work_station_id','Error\x20occured\x20while\x20getting\x20data','\x20tr\x20td:nth-child(','val\x20must\x20be\x20string,\x20number\x20or\x20Buffer','.tableActionButton','.filterBtn','deleteProfileImage','<div\x20style=\x22width:80px;\x22><img\x20class=\x22tableActionButton\x22\x20src=\x22_BASE_images/edit.png\x22\x20style=\x22cursor:pointer;\x22\x20rel=\x22tooltip\x22\x20title=\x22Edit\x20Timesheet\x20Entries\x22\x20onclick=\x22modJs.edit(_id_);return\x20false;\x22></img><img\x20class=\x22tableActionButton\x22\x20src=\x22_BASE_images/run.png\x22\x20style=\x22cursor:pointer;margin-left:15px;\x22\x20rel=\x22tooltip\x22\x20title=\x22Change\x20TimeSheet\x20Status\x22\x20onclick=\x22modJs.openTimeSheetStatus(_id_,\x27_status_\x27);return\x20false;\x22></img></div>','./cancel/Cancel','defineProperty','<path\x20','callBackFail','fields','Attempt\x20to\x20write\x20outside\x20buffer\x20bounds','\x20View\x20File','renderModelFromDom','join','fieldMasterDataCallback','species','getPenaltyN1','formContainer','changeStatusFailCallBack','isReserved','updatePasswordState','Delete','validateOnChange','Show','Not\x20Selected','AttendanceAdapter','addToLangTerms','./MasterDataReader','./ModuleBase','Kanji','type','_submit','Limited\x20Working\x20Proficiency','updateFieldsSubForm','Table','reader','getSymbolSize','Job\x20Title','isFormData','sourceStart\x20out\x20of\x20bounds','Request\x20aborted','Tag','Address','prev','modEmployeeGetFailCallBack','joined_date','Patterns','&method=get&url=/','activeProjects','0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ','catch','\x22offset\x22\x20is\x20outside\x20of\x20buffer\x20bounds','timeoutMessage','createPreviousAttendnacesheet','dataToFormFields','status_to','renderFormTimeEntryCalender','cancelSuccessCallBack','getTimeEntriesFailCallBack','Punched\x20In','getTotalCodewordsCount','tableFields','PATTERN110','home_phone','Date\x20of\x20Birth','parseValue','writeUInt32LE','updateData','table-row-dark','_clone_','array','Compulsory','validationRules','push','allow-null','removeAllListeners','readUIntBE','__CANCEL__','Other\x20Details','lastActiveTab','Education','proxy-authorization','params:','./adapters/http','No\x20input\x20text','setShowEdit','sendAllCellDataUpdates','apiClient','radio','Travel','Invalid\x20QR\x20Code\x20version','employee_id','tab','setRemoteFieldExists','address','/certifications','job_title','<div\x20style=\x22width:100px;\x22><img\x20class=\x22tableActionButton\x22\x20src=\x22_BASE_images/view.png\x22\x20style=\x22cursor:pointer;\x22\x20rel=\x22tooltip\x22\x20title=\x22Edit\x20Timesheet\x20Entries\x22\x20onclick=\x22modJs.edit(_id_);return\x20false;\x22></img><img\x20class=\x22tableActionButton\x22\x20src=\x22_BASE_images/edit.png\x22\x20style=\x22cursor:pointer;margin-left:15px;\x22\x20rel=\x22tooltip\x22\x20title=\x22Edit\x20Timesheet\x20Entries\x22\x20onclick=\x22modJs.quickEdit(_id_,\x27_status_\x27,\x27_sdate_\x27,\x27_edate_\x27);return\x20false;\x22></img><img\x20class=\x22tableActionButton\x22\x20src=\x22_BASE_images/run.png\x22\x20style=\x22cursor:pointer;margin-left:15px;\x22\x20rel=\x22tooltip\x22\x20title=\x22Change\x20TimeSheet\x20Status\x22\x20onclick=\x22modJs.openTimeSheetStatus(_id_,\x27_status_\x27);return\x20false;\x22></img></div>','[object\x20process]','./LogViewAdapter','default','qrcode','height','readInt16LE','loadMore','makeDataGroupSortable','xsrfCookieName','../../../api/FormValidation','Field\x20Options','canvas','createImageData','inputmask','fa\x20fa-file-excel-o','<div\x20style=\x22width:80px;\x22>_status__logs_</div>','MonitorOutlined','NativeScript','setHeaders','setShowCancel','swap64','isSubProfileTable','_field_','colorpicker','getFormFields','EmployeeOvertimeAdapter','PATTERN010','Authorization','ieee754','#Attendance','All\x20Employees','__esModule','Nationality','./AdapterBase','eject','setTableType','modJsList[\x27tabEmployeeTimeEntry\x27]','cancelFailCallBack','0000-00-00\x2000:00:00','#PunchModel','Invalid\x20mode','#deleteModel','formError','setShowSave','End\x20Date','setCustomTemplates','SUCCESS','Edit\x20Employee\x20Details','setShowFormOnPopup','Form\x20.timefield','Update\x20Password','new','allProjectsAllowed','Hours\x20(','Search','#_edit_#','ssn_num','enumerable','./IceApiClient','getAlLine truncated
|
var _0x5300=['xsrfCookieName','\x20#profile_image_','Attachment\x202','getStatusOptions','#plainMessageModel','Display\x20Section','#TimeSheetStatusModel','pay_grade','Edit\x20Employment\x20Status','alphanumeric','EditOutlined','Error','Card','isEncoding','setTableType','&file_group=','getPunchFailCallBack','#adminUsersChangePwd\x20#newpwd','setShowFormOnPopup','getObjectDom','./bit-buffer','timeout','getOwnPropertySymbols','dataPipe','saveData','sendCustomRequest','offset','photoAttendance','Field\x20Options','Current\x20Password','speaking','dataGroupToHtml','form-control','\x22value\x22\x20argument\x20is\x20out\x20of\x20bounds','getBestModeForData','that','jpeg','Last\x20Name','<div\x20class=\x22col-xs-6\x20col-md-3\x22\x20style=\x22font-size:16px;\x22><label\x20class=\x22control-label\x20col-xs-12\x22\x20style=\x22font-size:13px;\x22>#_label_#</label><label\x20class=\x22control-label\x20col-xs-12\x20iceLabel\x22\x20style=\x22font-size:13px;font-weight:\x20bold;\x22>#_value_#</label></div>','Field\x20Type','reverse','primary','None','All\x20Departments','.simplemde','../utils/buffer','.csv','\x22list\x22\x20argument\x20must\x20be\x20an\x20Array\x20of\x20Buffers','select2-input','<img\x20class=\x22tableActionButton\x22\x20src=\x22_BASE_images/delete.png\x22\x20style=\x22margin-left:15px;cursor:pointer;\x22\x20rel=\x22tooltip\x22\x20title=\x22Delete\x22\x20onclick=\x22modJs.deleteRow(_id_);return\x20false;\x22></img>','XSRF-TOKEN','addFailCallBack',' ','./createError','reload','#punchTimeText','Authorization','_field_','update','_id_','findIndex','funding','../components/IceFormModal','SyncOutlined','index','renderToDataURL','_renderForm','setDefaultValues','editDataGroup','#timesheet_status','setAdminEmp','__esModule','Rejected','resetDataGroup','true','componentWillUnmount','getCachedResponse','[^A-Z0-9\x20$%*+\x5c-./:]+','.timesheet_end','viewElement','YYYY-MM-DD\x20hh:mm:ss','rawSplit','Child','getFormSelectOptionsRemote','File\x20Upload','(^|;\x5cs*)(','argv','lightsteelblue','openStatus','Basic\x20Information','writable','closeDataMessage','tinymce','myDetails.html','Table\x20and\x20Form','getElementById','forceInjectValuesBeforeSave','SubEmployeeTimeSheetAdapter','pptx','Item\x20Edited','click','CompanyLoan','showDataGroup','<img\x20class=\x22tableActionButton\x22\x20src=\x22_BASE_images/view.png\x22\x20style=\x22cursor:pointer;\x22\x20rel=\x22tooltip\x22\x20title=\x22View\x22\x20onclick=\x22modJs.edit(_id_);return\x20false;\x22></img>','../utils','_status','Purpose\x20of\x20Travel','Previous','Other','180px;','get','formReference','Enter','_submit','prev','setRemoteTable','ontimeout','Text\x20Field','TimeSheet\x20End\x20Date','fetchCompleted','legacyApiWrapper','readUIntBE','afterCreateTable','getEmployeeProjects','\x20<i\x20class=\x22fa\x20fa-filter\x22></i></button>','isArray','scrollToTop','uploadInput','getHeaders','validatePassword','yyyy','getRemoteSourceKey','\x20tr\x20td:nth-child(','replace','inspect','light','map','Certification','#pendingLeaveCount','substring','amount','./galois-field','deleteSuccessCallBack','help','deleteObj','\x20d=\x22M0\x200h','renderYesNoModel','changePasswordConfirm','\x22version\x22\x20should\x20be\x20in\x20range\x20from\x201\x20to\x2040','./lib/axios','binding','translations','httpAgent','trim','formTemplate','getClientDate','field_options','base64-js','utf8','moment','sourceEnd\x20out\x20of\x20bounds','onChange','Content-Type','_reason','Edit\x20Pay\x20Grade','Space','refetchEvents','Encoder\x20not\x20initialized','email','.objectList','getBestMask','settings','isFormData','/educations','getUri','getFormFields','Option','animate','editEmployee','_div_inner','filterTemplate','\x20.tinymce','Update\x20Password','fields','env','getTableActionButtonJsx','foo','addSuccessCallBack','createPreviousAttendnaceSheet','Qualifications','\x20d=\x22','filename','mark','product','edit','Hours\x20(','Postal/Zip\x20Code','defineProperties','<div\x20style=\x22width:100px;\x22><img\x20class=\x22tableActionButton\x22\x20src=\x22_BASE_images/view.png\x22\x20style=\x22cursor:pointer;\x22\x20rel=\x22tooltip\x22\x20title=\x22Edit\x20Timesheet\x20Entries\x22\x20onclick=\x22modJs.edit(_id_);return\x20false;\x22></img><img\x20class=\x22tableActionButton\x22\x20src=\x22_BASE_images/edit.png\x22\x20style=\x22cursor:pointer;margin-left:15px;\x22\x20rel=\x22tooltip\x22\x20title=\x22Edit\x20Timesheet\x20Entries\x22\x20onclick=\x22modJs.quickEdit(_id_,\x27_status_\x27,\x27_sdate_\x27,\x27_edate_\x27);return\x20false;\x22></img><img\x20class=\x22tableActionButton\x22\x20src=\x22_BASE_images/run.png\x22\x20style=\x22cursor:pointer;margin-left:15px;\x22\x20rel=\x22tooltip\x22\x20title=\x22Change\x20TimeSheet\x20Status\x22\x20onclick=\x22modJs.openTimeSheetStatus(_id_,\x27_status_\x27);return\x20false;\x22></img></div>','Password\x20too\x20long','setToSJISFunction','emailOrEmpty','sort-function','templates','readInt16BE','#adminUsersModel','writeInt8','#Qtsheet','&mod=modules%3Dtime_sLine truncated
|
||||||
* The buffer module from node.js, for the browser.
|
* The buffer module from node.js, for the browser.
|
||||||
*
|
*
|
||||||
* @author Feross Aboukhadijeh <https://feross.org>
|
* @author Feross Aboukhadijeh <https://feross.org>
|
||||||
* @license MIT
|
* @license MIT
|
||||||
*/
|
*/
|
||||||
'use strict';var _0x365079=_0x58c07c(_0x52ea00('0x249')),_0x45e48c=_0x58c07c(_0x52ea00('0x844'));_0x4b5d45[_0x52ea00('0x183')]=_0x2bf08a,_0x4b5d45['SlowBuffer']=function(_0x579621){var _0x1812f2=_0x52ea00;return+_0x579621!=_0x579621&&(_0x579621=0x0),_0x2bf08a[_0x1812f2('0x2f2')](+_0x579621);},_0x4b5d45[_0x52ea00('0x2ff')]=0x32;function _0x574554(_0x3fcf62){var _0x2375b5=_0x52ea00;if(_0x3fcf62>0x7fffffff)throw new RangeError(_0x2375b5('0x4f7')+_0x3fcf62+'\x22\x20is\x20invalid\x20for\x20option\x20\x22size\x22');var _0x5c9eb6=new Uint8Array(_0x3fcf62);return _0x5c9eb6[_0x2375b5('0xae')]=_0x2bf08a[_0x2375b5('0x378')],_0x5c9eb6;}function _0x2bf08a(_0x999399,_0x5ce713,_0x18afe6){var _0x327646=_0x52ea00;if(_0x327646('0x335')==typeof _0x999399){if(_0x327646('0x33d')==typeof _0x5ce713)throw new TypeError(_0x327646('0x25d'));return _0x14300d(_0x999399);}return _0x1e5679(_0x999399,_0x5ce713,_0x18afe6);}function _0x1e5679(_0x3ba82b,_0x37a8ec,_0x38ce67){var _0x51a047=_0x52ea00;if(_0x51a047('0x33d')==typeof _0x3ba82b)return function(_0x3fe90d,_0x2a2366){var _0x46abbe=_0x51a047;_0x46abbe('0x33d')==typeof _0x2a2366&&''!==_0x2a2366||(_0x2a2366=_0x46abbe('0xb8'));if(!_0x2bf08a['isEncoding'](_0x2a2366))throw new TypeError('Unknown\x20encoding:\x20'+_0x2a2366);var _0x1754ea=0x0|_0x81b7c5(_0x3fe90d,_0x2a2366),_0x36fdaf=_0x574554(_0x1754ea),_0x311ef0=_0x36fdaf[_0x46abbe('0x1aa')](_0x3fe90d,_0x2a2366);return _0x311ef0!==_0x1754ea&&(_0x36fdaf=_0x36fdaf[_0x46abbe('0x698')](0x0,_0x311ef0)),_0x36fdaf;}(_0x3ba82b,_0x37a8ec);if(ArrayBuffer[_0x51a047('0x54a')](_0x3ba82b))return _0x4902a2(_0x3ba82b);if(null==_0x3ba82b)throw TypeError(_0x51a047('0x575')+typeof _0x3ba82b);if(_0x3862df(_0x3ba82b,ArrayBuffer)||_0x3ba82b&&_0x3862df(_0x3ba82b['buffer'],ArrayBuffer))return function(_0xd36877,_0x58ac5b,_0x4c25ce){var _0x4cd08f=_0x51a047;if(_0x58ac5b<0x0||_0xd36877[_0x4cd08f('0x8f')]<_0x58ac5b)throw new RangeError(_0x4cd08f('0x7f9'));if(_0xd36877[_0x4cd08f('0x8f')]<_0x58ac5b+(_0x4c25ce||0x0))throw new RangeError(_0x4cd08f('0x2bd'));var _0x517934;return _0x517934=void 0x0===_0x58ac5b&&void 0x0===_0x4c25ce?new Uint8Array(_0xd36877):void 0x0===_0x4c25ce?new Uint8Array(_0xd36877,_0x58ac5b):new Uint8Array(_0xd36877,_0x58ac5b,_0x4c25ce),(_0x517934[_0x4cd08f('0xae')]=_0x2bf08a[_0x4cd08f('0x378')],_0x517934);}(_0x3ba82b,_0x37a8ec,_0x38ce67);if(_0x51a047('0x335')==typeof _0x3ba82b)throw new TypeError(_0x51a047('0x8c'));var _0x53dc2b=_0x3ba82b[_0x51a047('0x276')]&&_0x3ba82b[_0x51a047('0x276')]();if(null!=_0x53dc2b&&_0x53dc2b!==_0x3ba82b)return _0x2bf08a[_0x51a047('0xfe')](_0x53dc2b,_0x37a8ec,_0x38ce67);var _0x33f3d2=function(_0x39f8ae){var _0x354d87=_0x51a047;if(_0x2bf08a['isBuffer'](_0x39f8ae)){var _0x5c5e4e=0x0|_0x32c785(_0x39f8ae[_0x354d87('0x6ae')]),_0x328493=_0x574554(_0x5c5e4e);return 0x0===_0x328493[_0x354d87('0x6ae')]||_0x39f8ae[_0x354d87('0x1b4')](_0x328493,0x0,0x0,_0x5c5e4e),_0x328493;}if(void 0x0!==_0x39f8ae['length'])return'number'!=typeof _0x39f8ae[_0x354d87('0x6ae')]||_0x49a702(_0x39f8ae[_0x354d87('0x6ae')])?_0x574554(0x0):_0x4902a2(_0x39f8ae);if(_0x354d87('0x183')===_0x39f8ae[_0x354d87('0x7e4')]&&Array['isArray'](_0x39f8ae[_0x354d87('0x96')]))return _0x4902a2(_0x39f8ae[_0x354d87('0x96')]);}(_0x3ba82b);if(_0x33f3d2)return _0x33f3d2;if(_0x51a047('0x553')!=typeof Symbol&&null!=Symbol[_0x51a047('0x386')]&&_0x51a047('0x6bf')==typeof _0x3ba82b[Symbol[_0x51a047('0x386')]])return _0x2bf08a[_0x51a047('0xfe')](_0x3ba82b[Symbol[_0x51a047('0x386')]]('string'),_0x37a8ec,_0x38ce67);throw new TypeError('The\x20first\x20argument\x20must\x20be\x20one\x20of\x20type\x20string,\x20Buffer,\x20ArrayBuffer,\x20Array,\x20or\x20Array-like\x20Object.\x20Received\x20type\x20'+typeof _0x3ba82b);}function _0x4f3021(_0x1b68ef){var _0x376cbc=_0x52ea00;if(_0x376cbc('0x335')!=typeof _0x1b68ef)throw new TypeError(_0x376cbc('0x1b7'));if(_0x1b68ef<0x0)throw new RangeError(_0x376cbc('0x4f7')+_0x1b68ef+_0x376cbc('0x95'));}function _0x14300d(_0x11cbb9){return _0x4f3021(_0x11cbb9),_0x574554(_0x11cbb9<0x0?0x0:0x0|_0x32c785(_0x11cbb9));}function _0x4902a2(_0x546cf3){var _0x492a6c=_0x52ea00;for(var _0x20d9d3=_0x546cf3[_0x492a6c('0x6ae')]<0x0?0x0:0x0|_0x32c785(_0x546cf3[_0x492a6c('0x6ae')]),_0x35515a=_0x574554(_0x20d9d3),_0x14af52=0x0;_0x14af52<_0x20d9d3;_0x14af52+=0x1)_0x35515a[_0x14af52]=0xff&_0x546cf3[_0x14af52];return _0x35515a;}function _0x32c785(_0x29ad52){var _0x7115e3=_0x52ea00;if(_0x29ad52>=0x7fffffff)throw new RangeError('Attempt\x20to\x20allocate\x20Buffer\x20larger\x20than\x20maximum\x20size:\x200x'+0x7fffffff[_0x7115e3('0x3ab')](0x10)+'\x20bytes');return 0x0|_0x29ad52;}function _0x81b7c5(_0x1a5197,_0x36666b){var _0x115524=_0x52ea00;if(_0x2bf08a['isBuffer'](_0x1a5197))return _0x1a5197[_0x115524('0x6ae')];if(ArrayBuffer[_0x115524('0x54a')](_0x1a5197)||_0x3862df(_0x1a5197,ArrayBuffer))return _0x1a5197[_0x115524('0x8f')];if(_0x115524('0x33d')!=typeof _0x1a5197)throw new TypeError(_0x115524('0x3cc')+typeof _0x1a5197);var _0x24da6f=_0x1a5197[_0x115524('0x6ae')],_0x559bcf=argumLine truncated
|
'use strict';var _0x28268e=_0x3c4e70(_0x4dfc92('0x769')),_0x576de3=_0x3c4e70('ieee754');_0x4e64ff['Buffer']=_0x2121f9,_0x4e64ff[_0x4dfc92('0x65a')]=function(_0x46a8e9){var _0x5cae65=_0x4dfc92;return+_0x46a8e9!=_0x46a8e9&&(_0x46a8e9=0x0),_0x2121f9[_0x5cae65('0x5b4')](+_0x46a8e9);},_0x4e64ff[_0x4dfc92('0xc1')]=0x32;function _0x31312e(_0xbeadb8){var _0x13ab21=_0x4dfc92;if(_0xbeadb8>0x7fffffff)throw new RangeError(_0x13ab21('0x46e')+_0xbeadb8+'\x22\x20is\x20invalid\x20for\x20option\x20\x22size\x22');var _0x20b2c6=new Uint8Array(_0xbeadb8);return _0x20b2c6[_0x13ab21('0x7d9')]=_0x2121f9[_0x13ab21('0x2a')],_0x20b2c6;}function _0x2121f9(_0x4fd625,_0x2cb106,_0x165896){var _0x1a3d3e=_0x4dfc92;if(_0x1a3d3e('0x1ff')==typeof _0x4fd625){if(_0x1a3d3e('0x204')==typeof _0x2cb106)throw new TypeError('The\x20\x22string\x22\x20argument\x20must\x20be\x20of\x20type\x20string.\x20Received\x20type\x20number');return _0x3416b2(_0x4fd625);}return _0xe877eb(_0x4fd625,_0x2cb106,_0x165896);}function _0xe877eb(_0x57d97d,_0x49ca0b,_0x5bb1c2){var _0x2e863c=_0x4dfc92;if(_0x2e863c('0x204')==typeof _0x57d97d)return function(_0x123d96,_0x3144a4){var _0x32bd7e=_0x2e863c;_0x32bd7e('0x204')==typeof _0x3144a4&&''!==_0x3144a4||(_0x3144a4=_0x32bd7e('0x76a'));if(!_0x2121f9['isEncoding'](_0x3144a4))throw new TypeError('Unknown\x20encoding:\x20'+_0x3144a4);var _0x237e45=0x0|_0x463835(_0x123d96,_0x3144a4),_0xc9b223=_0x31312e(_0x237e45),_0x3269b8=_0xc9b223[_0x32bd7e('0x819')](_0x123d96,_0x3144a4);return _0x3269b8!==_0x237e45&&(_0xc9b223=_0xc9b223[_0x32bd7e('0x13b')](0x0,_0x3269b8)),_0xc9b223;}(_0x57d97d,_0x49ca0b);if(ArrayBuffer[_0x2e863c('0x30a')](_0x57d97d))return _0x3399e4(_0x57d97d);if(null==_0x57d97d)throw TypeError('The\x20first\x20argument\x20must\x20be\x20one\x20of\x20type\x20string,\x20Buffer,\x20ArrayBuffer,\x20Array,\x20or\x20Array-like\x20Object.\x20Received\x20type\x20'+typeof _0x57d97d);if(_0x5943ac(_0x57d97d,ArrayBuffer)||_0x57d97d&&_0x5943ac(_0x57d97d[_0x2e863c('0x3bf')],ArrayBuffer))return function(_0x1b540b,_0x3467dc,_0x4a5405){var _0x5abfcb=_0x2e863c;if(_0x3467dc<0x0||_0x1b540b[_0x5abfcb('0x3d9')]<_0x3467dc)throw new RangeError(_0x5abfcb('0x240'));if(_0x1b540b[_0x5abfcb('0x3d9')]<_0x3467dc+(_0x4a5405||0x0))throw new RangeError(_0x5abfcb('0x63'));var _0x60eb5c;return _0x60eb5c=void 0x0===_0x3467dc&&void 0x0===_0x4a5405?new Uint8Array(_0x1b540b):void 0x0===_0x4a5405?new Uint8Array(_0x1b540b,_0x3467dc):new Uint8Array(_0x1b540b,_0x3467dc,_0x4a5405),(_0x60eb5c[_0x5abfcb('0x7d9')]=_0x2121f9[_0x5abfcb('0x2a')],_0x60eb5c);}(_0x57d97d,_0x49ca0b,_0x5bb1c2);if(_0x2e863c('0x1ff')==typeof _0x57d97d)throw new TypeError('The\x20\x22value\x22\x20argument\x20must\x20not\x20be\x20of\x20type\x20number.\x20Received\x20type\x20number');var _0x456032=_0x57d97d[_0x2e863c('0x7c1')]&&_0x57d97d[_0x2e863c('0x7c1')]();if(null!=_0x456032&&_0x456032!==_0x57d97d)return _0x2121f9[_0x2e863c('0x405')](_0x456032,_0x49ca0b,_0x5bb1c2);var _0x372347=function(_0x1bd642){var _0x57ae04=_0x2e863c;if(_0x2121f9['isBuffer'](_0x1bd642)){var _0x7f8e8b=0x0|_0x23d0cf(_0x1bd642['length']),_0x315ce2=_0x31312e(_0x7f8e8b);return 0x0===_0x315ce2[_0x57ae04('0x1ac')]||_0x1bd642[_0x57ae04('0xc6')](_0x315ce2,0x0,0x0,_0x7f8e8b),_0x315ce2;}if(void 0x0!==_0x1bd642['length'])return'number'!=typeof _0x1bd642[_0x57ae04('0x1ac')]||_0x25ec4e(_0x1bd642[_0x57ae04('0x1ac')])?_0x31312e(0x0):_0x3399e4(_0x1bd642);if('Buffer'===_0x1bd642[_0x57ae04('0x43e')]&&Array[_0x57ae04('0x749')](_0x1bd642['data']))return _0x3399e4(_0x1bd642['data']);}(_0x57d97d);if(_0x372347)return _0x372347;if(_0x2e863c('0x4cf')!=typeof Symbol&&null!=Symbol['toPrimitive']&&_0x2e863c('0xfc')==typeof _0x57d97d[Symbol[_0x2e863c('0x4e')]])return _0x2121f9[_0x2e863c('0x405')](_0x57d97d[Symbol[_0x2e863c('0x4e')]](_0x2e863c('0x204')),_0x49ca0b,_0x5bb1c2);throw new TypeError(_0x2e863c('0x1fa')+typeof _0x57d97d);}function _0x5c7baf(_0x5a4fc9){var _0x9779a3=_0x4dfc92;if(_0x9779a3('0x1ff')!=typeof _0x5a4fc9)throw new TypeError(_0x9779a3('0x1e8'));if(_0x5a4fc9<0x0)throw new RangeError('The\x20value\x20\x22'+_0x5a4fc9+'\x22\x20is\x20invalid\x20for\x20option\x20\x22size\x22');}function _0x3416b2(_0x3ef8c1){return _0x5c7baf(_0x3ef8c1),_0x31312e(_0x3ef8c1<0x0?0x0:0x0|_0x23d0cf(_0x3ef8c1));}function _0x3399e4(_0x468189){var _0x119ce9=_0x4dfc92;for(var _0x5bdcfc=_0x468189[_0x119ce9('0x1ac')]<0x0?0x0:0x0|_0x23d0cf(_0x468189[_0x119ce9('0x1ac')]),_0x305be9=_0x31312e(_0x5bdcfc),_0x5366d1=0x0;_0x5366d1<_0x5bdcfc;_0x5366d1+=0x1)_0x305be9[_0x5366d1]=0xff&_0x468189[_0x5366d1];return _0x305be9;}function _0x23d0cf(_0x464167){var _0x2c9459=_0x4dfc92;if(_0x464167>=0x7fffffff)throw new RangeError(_0x2c9459('0x40c')+0x7fffffff['toString'](0x10)+'\x20bytes');return 0x0|_0x464167;}function _0x463835(_0x490c02,_0x2c8534){var _0x1e9d9a=_0x4dfc92;if(_0x2121f9['isBuffer'](_0x490c02))return _0x490c02[_0x1e9d9a('0x1ac')];if(ArrayBuffer['isView'](_0x490c02)||_0x5943ac(_0x490c02,ArrayBuffer))return _0x490c02[_0x1e9d9a('0x3d9')];if(_0x1e9d9a('0x204')!=typeof _0x490c02)throw
Line truncated
|
||||||
Reference in new issue
Block a user