Merge branch 'release/v27.0.0.OS'

This commit is contained in:
Thilina Pituwala
2020-05-31 09:29:13 +02:00
8 changed files with 126 additions and 100 deletions

View File

@@ -1,5 +1,6 @@
<?php <?php
$migrationList = []; $migrationList = [];
$migrationList[] = 'v20200530_270009_update_module_names';
$migrationList[] = 'v20200518_270011_add_al_language'; $migrationList[] = 'v20200518_270011_add_al_language';
$migrationList[] = 'v20200429_270010_setting_groups'; $migrationList[] = 'v20200429_270010_setting_groups';
$migrationList[] = 'v20200411_270009_email_log'; $migrationList[] = 'v20200411_270009_email_log';

View File

@@ -0,0 +1,16 @@
<?php
namespace Classes\Migration;
class v20200530_270009_update_module_names extends AbstractMigration {
public function up(){
$sql = <<<'SQL'
Update Settings set value = '1' where name = 'System: Reset Module Names';
SQL;
return $this->executeQuery($sql);
}
public function down(){
return true;
}
}

View File

@@ -1350,7 +1350,6 @@ class BaseService
$settings->name = "Instance: Key"; $settings->name = "Instance: Key";
} }
$settings->value = $key; $settings->value = $key;
$settings->category = 'Instance';
$settings->Save(); $settings->Save();
} }
@@ -1377,17 +1376,11 @@ class BaseService
return false; return false;
} }
/*
$data = AesCtr::decrypt($key, $instanceId, 256); $data = AesCtr::decrypt($key, $instanceId, 256);
$arr = explode("|", $data); $arr = explode("|", $data);
if ($arr[0] == KEY_PREFIX && $arr[1] == $instanceId) { if ($arr[0] == KEY_PREFIX && $arr[1] == $instanceId) {
return true; return true;
} }
*/
if (strlen($key) > 20) {
return true;
}
return false; return false;
} }

View File

@@ -21,6 +21,8 @@ services:
- 8090:8090 - 8090:8090
logging: logging:
driver: none driver: none
depends_on:
- mysql-testing
# Cypress container # Cypress container
cypress: cypress:

View File

@@ -25,7 +25,7 @@ $ cd icehrm
$ docker-compose -f docker-compose-prod.yaml up -d $ docker-compose -f docker-compose-prod.yaml up -d
``` ```
- Visit [http://localhost:8070/](http://localhost:8070/) to load icehrm, that's it - Visit [http://localhost:8070/](http://localhost:8070/) to load icehrm
You can find database and app data under `icehrm/docker/production` You can find database and app data under `icehrm/docker/production`
@@ -38,6 +38,9 @@ docker-compose -f docker-compose-prod.yaml down
For setting up your development environment watch [https://www.youtube.com/watch?v=sz8OV_ON6S8](https://www.youtube.com/watch?v=sz8OV_ON6S8) For setting up your development environment watch [https://www.youtube.com/watch?v=sz8OV_ON6S8](https://www.youtube.com/watch?v=sz8OV_ON6S8)
Refer [docker documentation](https://docs.docker.com/develop/dev-best-practices/) for best practices
IceHrm Mobile App (Beta) IceHrm Mobile App (Beta)
------------------------ ------------------------

View File

@@ -749,7 +749,12 @@ class EmployeeAdapter extends SubProfileEnabledAdapterBase {
deleteBtn = ''; deleteBtn = '';
} }
// eslint-disable-next-line max-len // eslint-disable-next-line max-len
let html = `<div style="width:110px;"><img class="tableActionButton" src="_BASE_images/user.png" style="cursor:pointer;" rel="tooltip" title="Login as this Employee" onclick="modJs.setAdminProfile(_id_);return false;"></img><img class="tableActionButton" src="_BASE_images/view.png" style="cursor:pointer;margin-left:15px;" rel="tooltip" title="View" onclick="modJs.view(_id_);return false;"></img><img class="tableActionButton" src="_BASE_images/edit.png" style="cursor:pointer;margin-left:15px;" rel="tooltip" title="Edit" onclick="modJs.edit(_id_);return false;"></img>${deleteBtn}</div>`; let html = `<div style="width:120px;">
<img class="tableActionButton" src="_BASE_images/user.png" style="cursor:pointer;" rel="tooltip" title="Login as this Employee" onclick="modJs.setAdminProfile(_id_);return false;"></img>
<img class="tableActionButton" src="_BASE_images/view.png" style="cursor:pointer;margin-left:15px;" rel="tooltip" title="View" onclick="modJs.view(_id_);return false;"></img>
<img class="tableActionButton" src="_BASE_images/edit.png" style="cursor:pointer;margin-left:15px;" rel="tooltip" title="Edit" onclick="modJs.edit(_id_);return false;"></img>
${deleteBtn}
</div>`;
html = html.replace(/_id_/g, id); html = html.replace(/_id_/g, id);
html = html.replace(/_BASE_/g, this.baseUrl); html = html.replace(/_BASE_/g, this.baseUrl);
return html; return html;
@@ -1213,7 +1218,7 @@ class TerminatedEmployeeAdapter extends EmployeeAdapter {
getActionButtonsHtml(id) { getActionButtonsHtml(id) {
// eslint-disable-next-line max-len // eslint-disable-next-line max-len
let html = `<div style="width:110px;"> let html = `<div style="width:120px;">
<img class="tableActionButton" src="_BASE_images/edit.png" style="cursor:pointer;margin-left:15px;" rel="tooltip" title="Edit" onclick="modJs.edit(_id_);return false;"></img> <img class="tableActionButton" src="_BASE_images/edit.png" style="cursor:pointer;margin-left:15px;" rel="tooltip" title="Edit" onclick="modJs.edit(_id_);return false;"></img>
<img class="tableActionButton" src="_BASE_images/delete.png" style="margin-left:15px;cursor:pointer;" rel="tooltip" title="Archive Employee" onclick="modJs.deleteEmployee(_id_);return false;"></img> <img class="tableActionButton" src="_BASE_images/delete.png" style="margin-left:15px;cursor:pointer;" rel="tooltip" title="Archive Employee" onclick="modJs.deleteEmployee(_id_);return false;"></img>
<img class="tableActionButton" src="_BASE_images/redo.png" style="margin-left:15px;cursor:pointer;" rel="tooltip" title="Restore Employee" onclick="modJs.activateEmployee(_id_);return false;"></img> <img class="tableActionButton" src="_BASE_images/redo.png" style="margin-left:15px;cursor:pointer;" rel="tooltip" title="Restore Employee" onclick="modJs.activateEmployee(_id_);return false;"></img>
@@ -1298,7 +1303,7 @@ class ArchivedEmployeeAdapter extends SubProfileEnabledAdapterBase {
getActionButtonsHtml(id) { getActionButtonsHtml(id) {
// eslint-disable-next-line max-len // eslint-disable-next-line max-len
let html = '<div style="width:110px;"><img class="tableActionButton" src="_BASE_images/download.png" style="cursor:pointer;" rel="tooltip" title="Download Archived Data" onclick="modJs.download(_id_);return false;"></img><img class="tableActionButton" src="_BASE_images/delete.png" style="margin-left:15px;cursor:pointer;" rel="tooltip" title="Remove Archived Data" onclick="modJs.deleteRow(_id_);return false;"></img></div>'; let html = '<div style="width:120px;"><img class="tableActionButton" src="_BASE_images/download.png" style="cursor:pointer;" rel="tooltip" title="Download Archived Data" onclick="modJs.download(_id_);return false;"></img><img class="tableActionButton" src="_BASE_images/delete.png" style="margin-left:15px;cursor:pointer;" rel="tooltip" title="Remove Archived Data" onclick="modJs.deleteRow(_id_);return false;"></img></div>';
html = html.replace(/_id_/g, id); html = html.replace(/_id_/g, id);
html = html.replace(/_BASE_/g, this.baseUrl); html = html.replace(/_BASE_/g, this.baseUrl);
return html; return html;

View File

@@ -170,8 +170,14 @@ class EmployeeTravelRecordApproverAdapter extends EmployeeTravelRecordAdminAdapt
*/ */
class SubordinateEmployeeTravelRecordAdapter extends EmployeeTravelRecordAdminAdapter { class SubordinateEmployeeTravelRecordAdapter extends EmployeeTravelRecordAdminAdapter {
constructor(endPoint, tab, filter, orderBy) {
super(endPoint, tab, filter, orderBy);
this.itemName = 'Travel';
this.itemNameLower = 'employeetravelrecord';
this.modulePathName = 'travel';
} }
}
module.exports = { module.exports = {
EmployeeImmigrationAdapter, EmployeeImmigrationAdapter,