PMCORE-2500

This commit is contained in:
Julio Cesar Laura Avendaño
2020-12-07 22:42:37 +00:00
parent ccfa877170
commit 9285293672
4 changed files with 186 additions and 0 deletions

View File

@@ -19475,6 +19475,18 @@ msgstr "Successfully connected to MySQL Server"
msgid "My account"
msgstr "My account"
# TRANSLATION
# LABEL/ID_MY_CASES
#: LABEL/ID_MY_CASES
msgid "My Cases"
msgstr "My Cases"
# TRANSLATION
# LABEL/ID_MY_DOCUMENTS
#: LABEL/ID_MY_DOCUMENTS
msgid "My Documents"
msgstr "My Documents"
# TRANSLATION
# LABEL/ID_MY_DRAFTS
#: LABEL/ID_MY_DRAFTS
@@ -24977,6 +24989,12 @@ msgstr "Failed saving Supervisor Assigned to process"
msgid "Supervisor has been removed successfully from Process"
msgstr "Supervisor has been removed successfully from Process"
# TRANSLATION
# LABEL/ID_SUPERVISOR_TASKS
#: LABEL/ID_SUPERVISOR_TASKS
msgid "Supervisor Tasks"
msgstr "Supervisor Tasks"
# TRANSLATION
# LABEL/ID_SUPERVISOR_UNAVAILABLE
#: LABEL/ID_SUPERVISOR_UNAVAILABLE
@@ -25241,6 +25259,12 @@ msgstr "Overdue"
msgid "Task properties has been saved successfully"
msgstr "Task properties has been saved successfully"
# TRANSLATION
# LABEL/ID_TASK_REASSIGNMENTS
#: LABEL/ID_TASK_REASSIGNMENTS
msgid "Task Reassignments"
msgstr "Task Reassignments"
# TRANSLATION
# LABEL/ID_TASK_TRANSFER
#: LABEL/ID_TASK_TRANSFER

View File

@@ -60135,6 +60135,8 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE
( 'LABEL','ID_MYSQL_ERROR','en','MySQL error: {0}','2014-01-15') ,
( 'LABEL','ID_MYSQL_SUCCESS_CONNECT','en','Successfully connected to MySQL Server','2015-04-08') ,
( 'LABEL','ID_MY_ACCOUNT','en','My account','2014-01-15') ,
( 'LABEL','ID_MY_CASES','en','My Cases','2020-12-07') ,
( 'LABEL','ID_MY_DOCUMENTS','en','My Documents','2014-12-07') ,
( 'LABEL','ID_MY_DRAFTS','en','My Drafts','2014-01-15') ,
( 'LABEL','ID_MY_INBOX','en','My inbox','2014-01-15') ,
( 'LABEL','ID_NAME','en','Name','2014-01-15') ,
@@ -61080,6 +61082,7 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE
( 'LABEL','ID_SUPERVISOR_DOES_NOT_HAVE_DYNAFORMS','en','Supervisor does not have a permission for Dynaform(s).','2015-05-28') ,
( 'LABEL','ID_SUPERVISOR_FAILED','en','Failed saving Supervisor Assigned to process','2014-01-15') ,
( 'LABEL','ID_SUPERVISOR_REMOVED','en','Supervisor has been removed successfully from Process','2014-01-15') ,
( 'LABEL','ID_SUPERVISOR_TASKS','en','Supervisor Tasks','2020-12-07') ,
( 'LABEL','ID_SUPERVISOR_UNAVAILABLE','en','No supervisors are available. All supervisors have been already assigned.','2014-01-15') ,
( 'LABEL','ID_SUPPORT','en','Support','2014-10-20') ,
( 'LABEL','ID_SWITCH_EDITOR','en','Switch Editor','2014-01-15') ,
@@ -61126,6 +61129,7 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE
( 'LABEL','ID_TASK_NO_STEPS','en','The task doesn''t have any steps','2014-01-15') ,
( 'LABEL','ID_TASK_OVERDUE','en','Overdue','2015-06-09') ,
( 'LABEL','ID_TASK_PROPERTIES_SAVE','en','Task properties has been saved successfully','2014-01-15') ,
( 'LABEL','ID_TASK_REASSIGNMENTS','en','Task Reassignments','2020-12-07') ,
( 'LABEL','ID_TASK_TRANSFER','en','Task Transfer Date','2014-01-15') ,
( 'LABEL','ID_TASK_WAS_ASSIGNED_TO_USER','en','Manual assignment shouldn''t be used with sub-processes.<br>The task "{0}" from case {1} was assigned to user <b>{2}</b> ( {3} {4} )','2015-02-24') ,
( 'LABEL','ID_TAS_DURATION_REQUIRE','en','Duration task required','2014-0f-15') ,

View File

@@ -0,0 +1,84 @@
<?php
global $RBAC;
global $G_TMP_MENU;
// Home section
$G_TMP_MENU->AddIdRawOption('SEARCHS', '', G::LoadTranslation('ID_HOME'), '', '', 'blockHeader');
$G_TMP_MENU->AddIdRawOption(
'CASES_MY_CASES',
'/',
G::LoadTranslation('ID_MY_CASES'),
'fas fa-sliders-h'
);
if ($RBAC->userCanAccess('PM_ALLCASES') == 1) {
$G_TMP_MENU->AddIdRawOption(
'CASES_SEARCH',
'casesListExtJs?action=search',
G::LoadTranslation('ID_ADVANCEDSEARCH'),
'fas fa-search'
);
}
// Tasks section
$G_TMP_MENU->AddIdRawOption('FOLDERS', '', G::LoadTranslation('ID_TASKS'), '', '', 'blockHeader');
$G_TMP_MENU->AddIdRawOption(
'CASES_INBOX',
'casesListExtJs?action=todo',
G::LoadTranslation('ID_INBOX'),
'far fa-check-circle'
);
$G_TMP_MENU->AddIdRawOption(
'CASES_DRAFT',
'casesListExtJs?action=draft',
G::LoadTranslation('ID_DRAFT'),
'far fa-edit'
);
$G_TMP_MENU->AddIdRawOption(
'CASES_PAUSED',
'casesListExtJs?action=paused',
G::LoadTranslation('ID_PAUSED'),
'far fa-pause-circle'
);
$G_TMP_MENU->AddIdRawOption(
'CASES_SELFSERVICE',
'casesListExtJs?action=selfservice',
G::LoadTranslation('ID_UNASSIGNED'),
'fas fa-crosshairs'
);
// Supervisor Tasks section
$G_TMP_MENU->AddIdRawOption('ADMIN', '', G::LoadTranslation('ID_SUPERVISOR_TASKS'), '', '', 'blockHeader');
/*----------------------------------********---------------------------------*/
$licensedFeatures = PMLicensedFeatures::getSingleton();
if ($licensedFeatures->verifyfeature('7TTeDBQeWRoZTZKYjh4eFpYUlRDUUEyVERPU3FxellWank=')) {
$G_TMP_MENU->AddIdRawOption(
'CONSOLIDATED_CASES',
'casesConsolidatedListExtJs?action=consolidated',
G::LoadTranslation('ID_BATCH_ROUTING'),
'fas fa-bars'
);
}
/*----------------------------------********---------------------------------*/
if ($RBAC->userCanAccess('PM_REASSIGNCASE') == 1 || $RBAC->userCanAccess('PM_REASSIGNCASE_SUPERVISOR') == 1) {
$G_TMP_MENU->AddIdRawOption(
'CASES_TO_REASSIGN',
'casesListExtJs?action=to_reassign',
G::LoadTranslation('ID_TASK_REASSIGNMENTS'),
'fas fa-arrows-alt'
);
}
// Documents section
if ($RBAC->userCanAccess('PM_FOLDERS_ALL') == 1 || $RBAC->userCanAccess('PM_FOLDERS_OWNER') == 1) {
$G_TMP_MENU->AddIdRawOption('DOCUMENTS', '', G::LoadTranslation('ID_FOLDERS'), '', '', 'blockHeader');
$G_TMP_MENU->AddIdRawOption(
'CASES_FOLDERS',
'casesStartPage?action=documents',
G::LoadTranslation('ID_MY_DOCUMENTS'),
'fas fa-bars'
);
}

View File

@@ -4,7 +4,9 @@ namespace ProcessMaker\Services\Api;
use Exception;
use Luracast\Restler\RestException;
use Menu;
use ProcessMaker\BusinessModel\Cases\Draft;
use ProcessMaker\BusinessModel\Cases\Filter;
use ProcessMaker\BusinessModel\Cases\Inbox;
use ProcessMaker\BusinessModel\Cases\Participated;
use ProcessMaker\BusinessModel\Cases\Paused;
@@ -14,6 +16,7 @@ use ProcessMaker\BusinessModel\Cases\Unassigned;
use ProcessMaker\Model\User;
use ProcessMaker\Services\Api;
use RBAC;
use stdClass;
class Home extends Api
{
@@ -460,4 +463,75 @@ class Home extends Api
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
}
}
/**
* Get home menu
*
* @url GET /menu
*
* @return array
*
* @access protected
*/
public function getMenu()
{
// Parse menu definition
$menuInstance = new Menu();
$menuInstance->load('home');
// Initializing variables
$optionsWithCounter = ['CASES_INBOX', 'CASES_DRAFT', 'CASES_PAUSED', 'CASES_SELFSERVICE'];
$menuHome = [];
// Build the Home menu
for ($i = 0; $i < count($menuInstance->Options); $i++) {
// Initializing option object
$option = new stdClass();
// Build the object according to the option menu type
if ($menuInstance->Types[$i] === 'blockHeader') {
$option->header = true;
$option->title = $menuInstance->Labels[$i];
$option->hiddenOnCollapse = true;
} else {
$option->href = $menuInstance->Options[$i];
$option->id = $menuInstance->Id[$i];
$option->title = $menuInstance->Labels[$i];
$option->icon = $menuInstance->Icons[$i];
}
// Add additional attributes for some options
if (in_array($menuInstance->Id[$i], $optionsWithCounter)) {
$option->badge = new stdClass();
$option->badge->text = '0';
$option->badge->class = 'badge-custom';
}
if ($menuInstance->Id[$i] === 'CASES_SEARCH') {
// Get advanced search filters for the current user
$filters = Filter::getByUser($this->getUserId());
// Initializing
$child = [];
foreach ($filters as $filter) {
$childFilter = new stdClass();
$childFilter->id = $filter->id;
$childFilter->page = '/advanced-search';
$childFilter->href = "{$childFilter->page}/{$filter->id}";
$childFilter->title = $filter->name;
$childFilter->icon = 'fas fa-circle';
$childFilter->filters = $filter->filters;
$child[] = $childFilter;
}
// Adding filters to the "Advanced Search" option
$option->child = $child;
}
// Add option to the menu
$menuHome[] = $option;
}
// Return menu
return $menuHome;
}
}