Merge remote-tracking branch 'origin/develop' into feature/PMCORE-3140
This commit is contained in:
@@ -41,8 +41,10 @@ if (!defined('TIME_ZONE')) {
|
||||
$cliName = array_shift($args);
|
||||
$taskName = array_shift($args);
|
||||
$workspace = array_shift($args);
|
||||
while ($workspace[0] == '-') {
|
||||
$workspace = array_shift($args);
|
||||
if (isset($workspace[0])) {
|
||||
while ($workspace[0] == '-') {
|
||||
$workspace = array_shift($args);
|
||||
}
|
||||
}
|
||||
|
||||
// Get time zone (global or by workspace)
|
||||
|
||||
@@ -7,6 +7,7 @@ use ProcessMaker\Services\Api\Project\Variable;
|
||||
|
||||
class ActionsByEmailCoreClass extends PMPlugin
|
||||
{
|
||||
//The %0d and %0a are URL-encoded forms of CR and LF
|
||||
const BODY_REPLY_LF = '%0D%0A';
|
||||
private $abeRequest = [];
|
||||
private $appNumber = null;
|
||||
@@ -716,38 +717,60 @@ class ActionsByEmailCoreClass extends PMPlugin
|
||||
$customGrid = unserialize($this->getItemAbeProperties('ABE_CUSTOM_GRID'));
|
||||
$field = new stdClass();
|
||||
$field->label = '';
|
||||
$html = '<div style="width: 100%"></div><strong>' . $field->label . '</strong><table align="left" border="0"><tr>';
|
||||
$html .= '<td><table align="left" cellpadding="2"><tr>';
|
||||
|
||||
$html = ''
|
||||
. "<div style='width: 100%; display: inline-block;'>\n"
|
||||
. "<strong>{$field->label}</strong>\n"
|
||||
. "<table align='left' border='0'>\n"
|
||||
. "<tr>\n"
|
||||
. "<td>\n"
|
||||
. "<table align='left' cellpadding='2'>\n"
|
||||
. "<tr>\n";
|
||||
|
||||
$index = 1;
|
||||
foreach ($customGrid as $key => $value) {
|
||||
// Get the subject
|
||||
$emailSubject = $this->getSubjectByResponse($value['abe_custom_label']);
|
||||
$emailBody = $this->getBodyByResponse($value['abe_custom_value']);
|
||||
// Define the html for the actions
|
||||
$html .= '<td align="center"><a style="' . $value['abe_custom_format'] . '" ';
|
||||
$html .= 'href="mailto:' . $noReply . '?subject=' . $emailSubject . '&body=' . $emailBody . '" target="_blank" >';
|
||||
$html .= $value['abe_custom_label'];
|
||||
$html .= '</a></td>' . (($index % 5 == 0) ? '</tr><tr>' : ' ');
|
||||
|
||||
$emailSubject = rawurlencode($emailSubject);
|
||||
$emailBody = rawurlencode($emailBody);
|
||||
|
||||
$href = "mailto:{$noReply}?subject={$emailSubject}&body={$emailBody}";
|
||||
|
||||
$html = $html
|
||||
. "<td align='center'>\n"
|
||||
. "<a style=\"{$value['abe_custom_format']}\" href=\"{$href}\" target='_blank' >{$value['abe_custom_label']}</a>\n"
|
||||
. "</td>\n";
|
||||
//this is left for compatibility with template customizations
|
||||
if ($index % 5 === 0) {
|
||||
$html = $html
|
||||
. "</tr>\n"
|
||||
. "<tr>\n";
|
||||
}
|
||||
$index++;
|
||||
}
|
||||
$html .= '</tr></table></div>';
|
||||
$html = $html
|
||||
. "</tr>\n"
|
||||
. "</table>\n"
|
||||
. "</td>\n"
|
||||
. "</tr>\n"
|
||||
. "</table>\n"
|
||||
. "</div>\n";
|
||||
|
||||
return $html;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the subject for response the action by email
|
||||
*
|
||||
* Get the subject for response the action by email.
|
||||
*
|
||||
* @param string $fieldLabel
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
private function getSubjectByResponse($fieldLabel)
|
||||
private function getSubjectByResponse(string $fieldLabel): string
|
||||
{
|
||||
$subject = G::LoadTranslation('ID_CASE') . ' ' . $this->getCasePropertiesKey('APP_TITLE');
|
||||
$subject .= $this->delimiter . ' ' . $fieldLabel;
|
||||
|
||||
return urlencode($subject);
|
||||
return $subject;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -769,10 +792,11 @@ class ActionsByEmailCoreClass extends PMPlugin
|
||||
];
|
||||
$bodyToCrypt = G::json_encode($bodyToCrypt);
|
||||
|
||||
$body = str_repeat(self::BODY_REPLY_LF, 4);
|
||||
$body .= '/' . str_repeat("=", 24) . self::BODY_REPLY_LF;
|
||||
$body .= G::LoadTranslation('ID_ABE_EMAIL_RESPONSE_BODY_NOTE') . self::BODY_REPLY_LF;
|
||||
$body .= '{' . Crypt::encryptString($bodyToCrypt) . '}' . self::BODY_REPLY_LF;
|
||||
$CR_LF = "\r\n";
|
||||
$body = str_repeat($CR_LF, 4);
|
||||
$body .= '/' . str_repeat("=", 24) . $CR_LF;
|
||||
$body .= G::LoadTranslation('ID_ABE_EMAIL_RESPONSE_BODY_NOTE') . $CR_LF;
|
||||
$body .= '{' . Crypt::encryptString($bodyToCrypt) . '}' . $CR_LF;
|
||||
$body .= str_repeat("=", 24) . '/';
|
||||
return $body;
|
||||
}
|
||||
|
||||
@@ -206,8 +206,10 @@ EOT;
|
||||
$args = $argv;
|
||||
$cliname = array_shift( $args );
|
||||
$taskName = array_shift( $args );
|
||||
while ($taskName[0] == '-') {
|
||||
$taskName = array_shift( $args );
|
||||
if (isset($taskName[0])) {
|
||||
while ($taskName[0] == '-') {
|
||||
$taskName = array_shift( $args );
|
||||
}
|
||||
}
|
||||
if (! $taskName) {
|
||||
echo self::error( "Specify a task from the list below." ) . "\n\n";
|
||||
|
||||
@@ -162,7 +162,7 @@ class AppDocument extends BaseAppDocument
|
||||
try {
|
||||
$oAppDocument = new AppDocument();
|
||||
|
||||
if (! isset( $aData['APP_DOC_UID'] )) {
|
||||
if (empty($aData['APP_DOC_UID'])) {
|
||||
$sUID = G::generateUniqueID();
|
||||
$docVersion = 1;
|
||||
} else {
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
use ProcessMaker\BusinessModel\Cases as BmCases;
|
||||
use ProcessMaker\BusinessModel\ProcessSupervisor;
|
||||
use ProcessMaker\Core\System;
|
||||
|
||||
$tBarGmail = false;
|
||||
if (isset($_GET['gmail']) && $_GET['gmail'] == 1) {
|
||||
@@ -157,6 +158,7 @@ if ($isBpmn && $viewSummaryForm && $isNoEmpty) {
|
||||
}
|
||||
/*----------------------------------********---------------------------------*/
|
||||
|
||||
$pmDynaform = new PmDynaform();
|
||||
$step = new Step();
|
||||
$step = $step->loadByProcessTaskPosition($case['PRO_UID'], $case['TAS_UID'], 1);
|
||||
$headPublisher->assign('uri', $script . $uri);
|
||||
@@ -171,6 +173,11 @@ $headPublisher->assign('appStatus', $case['APP_STATUS']);
|
||||
$headPublisher->assign('tbarGmail', $tBarGmail);
|
||||
$headPublisher->assign('showCustomForm', $showCustomForm);
|
||||
$headPublisher->assign('canClaimCase', $canClaimCase);
|
||||
$headPublisher->assign('_CREDENTIALS', G::json_encode($pmDynaform->getCredentials()));
|
||||
$headPublisher->assign('_SERVER', System::getHttpServerHostnameRequestsFrontEnd());
|
||||
$headPublisher->assign('_WORKSPACE', config("system.workspace"));
|
||||
$headPublisher->assign('_DEL_INDEX_DELEGATE', $delIndex);
|
||||
$headPublisher->assign('_USR_DELEGATE', $case['CURRENT_USER_UID']);
|
||||
|
||||
if (!isset($_SESSION['APPLICATION']) || !isset($_SESSION['TASK']) || !isset($_SESSION['INDEX'])) {
|
||||
$_SESSION['PROCESS'] = $case['PRO_UID'];
|
||||
|
||||
@@ -467,11 +467,11 @@
|
||||
mounted() {
|
||||
this.$nextTick(function () {
|
||||
let promise = null;
|
||||
this.getTimeZoneList();
|
||||
if ("USR_UID" in window && window.USR_UID !== "") {
|
||||
this.editing = true;
|
||||
promise = this.load();
|
||||
promise.then(response => {
|
||||
response;
|
||||
promise.then(() => {
|
||||
this.loadServices();
|
||||
});
|
||||
} else {
|
||||
@@ -851,7 +851,6 @@
|
||||
loadServices() {
|
||||
this.getCountryList();
|
||||
this.getAvailableCalendars();
|
||||
this.getTimeZoneList();
|
||||
this.getLanguagesList();
|
||||
this.getDefaultMainMenuOptionList();
|
||||
this.getDefaultCasesMenuOptionList();
|
||||
|
||||
@@ -1368,7 +1368,8 @@ Ext.onReady(function(){
|
||||
Actions.reassignCase = function()
|
||||
{
|
||||
var rowSelected = Ext.getCmp("grdpnlUsersToReassign").getSelectionModel().getSelected();
|
||||
|
||||
var msg = "";
|
||||
var credentials = JSON.parse(_CREDENTIALS);
|
||||
if( rowSelected ) {
|
||||
if (Ext.getCmp('idTextareaReason').getValue() === '') {
|
||||
Ext.Msg.alert(_('ID_ALERT'), _('ID_THE_REASON_REASSIGN_USER_EMPTY'));
|
||||
@@ -1376,11 +1377,17 @@ Ext.onReady(function(){
|
||||
}
|
||||
PMExt.confirm(_('ID_CONFIRM'), _('ID_REASSIGN_CONFIRM'), function(){
|
||||
Ext.Ajax.request({
|
||||
url : 'ajaxListener' ,
|
||||
params : {action : 'reassignCase', USR_UID: rowSelected.data.USR_UID, NOTE_REASON: Ext.getCmp('idTextareaReason').getValue(), NOTIFY_REASSIGN: Ext.getCmp('idCheckboxReason').getValue()},
|
||||
success: function ( result, request ) {
|
||||
var data = Ext.util.JSON.decode(result.responseText);
|
||||
if( data.status == 0 ) {
|
||||
method:"PUT",
|
||||
url: _SERVER + "/api/1.0/" + _WORKSPACE + `/cases/${_APP_UID}/reassign-case`,
|
||||
headers: {
|
||||
"Accept": "application/json",
|
||||
"Content-Type": "application/json",
|
||||
"Authorization": `Bearer ` + credentials.accessToken,
|
||||
},
|
||||
jsonData : {del_index : _DEL_INDEX_DELEGATE, usr_uid_target: rowSelected.data.USR_UID,usr_uid_source: _USR_DELEGATE, reason: Ext.getCmp('idTextareaReason').getValue()},
|
||||
success: function (result, request) {
|
||||
var data = result;
|
||||
if( data.status == 0 || data.status == 200) {
|
||||
try {
|
||||
if (typeof parent.notify !== "undefined") {
|
||||
parent.notify('', data.msg);
|
||||
@@ -1402,8 +1409,9 @@ Ext.onReady(function(){
|
||||
alert(data.msg);
|
||||
}
|
||||
},
|
||||
failure: function ( result, request) {
|
||||
Ext.MessageBox.alert( _('ID_FAILED') , result.responseText);
|
||||
failure: function (result, request) {
|
||||
msg = JSON.parse(result.responseText);
|
||||
Ext.MessageBox.alert( _('ID_FAILED') , msg.error? msg.error.message: "");
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user