Removing unnecessary files from the Actions By Email feature (code cleanup).
This commit is contained in:
@@ -35,7 +35,7 @@ class ActionsByEmailService
|
||||
if ($params['type'] != 'activity'
|
||||
|| !\PMLicensedFeatures
|
||||
::getSingleton()
|
||||
->verifyfeature('zLhSk5TeEQrNFI2RXFEVktyUGpnczV1WEJNWVp6cjYxbTU3R29mVXVZNWhZQT0='))
|
||||
->verifyfeature('zLhSk5TeEQrNFI2RXFEVktyUGpnczV1WEJNWVp6cjYxbTU3R29mVXVZNWhZQT0='))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1,109 +0,0 @@
|
||||
<?php
|
||||
$G_PUBLISH = new Publisher();
|
||||
|
||||
try {
|
||||
// Validations
|
||||
if (!isset($_REQUEST['APP_UID'])) {
|
||||
$_REQUEST['APP_UID'] = '';
|
||||
}
|
||||
|
||||
if (!isset($_REQUEST['DEL_INDEX'])) {
|
||||
$_REQUEST['DEL_INDEX'] = '';
|
||||
}
|
||||
|
||||
if ($_REQUEST['APP_UID'] == '') {
|
||||
throw new Exception('The parameter APP_UID is empty.');
|
||||
}
|
||||
|
||||
if ($_REQUEST['DEL_INDEX'] == '') {
|
||||
throw new Exception('The parameter DEL_INDEX is empty.');
|
||||
}
|
||||
|
||||
$_REQUEST['APP_UID'] = G::decrypt(urldecode(utf8_encode($_REQUEST['APP_UID'])), URL_KEY);
|
||||
$_REQUEST['DEL_INDEX'] = G::decrypt(urldecode(utf8_encode($_REQUEST['DEL_INDEX'])), URL_KEY);
|
||||
$_REQUEST['FIELD'] = G::decrypt(urldecode(utf8_encode($_REQUEST['FIELD'])), URL_KEY);
|
||||
$_REQUEST['VALUE'] = G::decrypt(urldecode(utf8_encode($_REQUEST['VALUE'])), URL_KEY);
|
||||
$_REQUEST['ABER'] = G::decrypt(urldecode(utf8_encode($_REQUEST['ABER'])), URL_KEY);
|
||||
|
||||
G::LoadClass('case');
|
||||
|
||||
$cases = new Cases();
|
||||
$caseFieldsABE = $cases->loadCase($_REQUEST['APP_UID'], $_REQUEST['DEL_INDEX']);
|
||||
|
||||
if (is_null($caseFieldsABE['DEL_FINISH_DATE'])) {
|
||||
$dataField = array();
|
||||
$dataField[$_REQUEST['FIELD']] = $_REQUEST['VALUE'];
|
||||
$caseFieldsABE ['APP_DATA'] = array_merge ( $caseFieldsABE ['APP_DATA'], $dataField );
|
||||
|
||||
$dataResponses = array();
|
||||
$dataResponses['ABE_REQ_UID'] = $_REQUEST['ABER'];
|
||||
$dataResponses['ABE_RES_CLIENT_IP'] = $_SERVER['REMOTE_ADDR'];
|
||||
$dataResponses['ABE_RES_DATA'] = serialize($_REQUEST['VALUE']);
|
||||
$dataResponses['ABE_RES_STATUS'] = 'PENDING';
|
||||
$dataResponses['ABE_RES_MESSAGE'] = '';
|
||||
|
||||
try {
|
||||
set_include_path(PATH_PLUGINS . 'actionsByEmail' . PATH_SEPARATOR . get_include_path());
|
||||
require_once 'classes/model/AbeResponses.php';
|
||||
$abeAbeResponsesInstance = new AbeResponses();
|
||||
$dataResponses['ABE_RES_UID'] = $abeAbeResponsesInstance->createOrUpdate($dataResponses);
|
||||
} catch (Exception $error) {
|
||||
throw $error;
|
||||
}
|
||||
|
||||
$cases->updateCase($_REQUEST['APP_UID'], $caseFieldsABE);
|
||||
|
||||
G::LoadClass('wsBase');
|
||||
|
||||
$ws = new wsBase();
|
||||
|
||||
$result = $ws->derivateCase($caseFieldsABE['CURRENT_USER_UID'], $_REQUEST['APP_UID'], $_REQUEST['DEL_INDEX'], true);
|
||||
$code = (is_array($result) ? $result['status_code'] : $result->status_code);
|
||||
|
||||
if ($code != 0 ) {
|
||||
throw new Exception('An error occurred while the application was being processed.<br /><br />
|
||||
Error code: '.$result->status_code.'<br />
|
||||
Error message: '.$result->message.'<br /><br />');
|
||||
}
|
||||
|
||||
// Update
|
||||
$dataResponses['ABE_RES_STATUS'] = ($code == 0 ? 'SENT' : 'ERROR');
|
||||
$dataResponses['ABE_RES_MESSAGE'] = ($code == 0 ? '-' : $result->message);
|
||||
|
||||
try {
|
||||
$abeAbeResponsesInstance = new AbeResponses();
|
||||
$abeAbeResponsesInstance->createOrUpdate($dataResponses);
|
||||
} catch (Exception $error) {
|
||||
throw $error;
|
||||
}
|
||||
|
||||
$message = '<strong>The answer has been submited. Thank you</strong>';
|
||||
|
||||
//Save Cases Notes
|
||||
include_once 'utils.php';
|
||||
|
||||
$dataAbeRequests = loadAbeRequest($_REQUEST['ABER']);
|
||||
$dataAbeConfiguration = loadAbeConfiguration($dataAbeRequests['ABE_UID']);
|
||||
|
||||
if ($dataAbeConfiguration['ABE_CASE_NOTE_IN_RESPONSE'] == 1) {
|
||||
$response = new stdclass();
|
||||
$response->usrUid = $caseFieldsABE['APP_DATA']['USER_LOGGED'];
|
||||
$response->appUid = $_REQUEST['APP_UID'];
|
||||
$response->noteText = "Check the information that was sent for the receiver: " . $dataAbeRequests['ABE_REQ_SENT_TO'];
|
||||
|
||||
postNote($response);
|
||||
}
|
||||
|
||||
$dataAbeRequests['ABE_REQ_ANSWERED'] = 1;
|
||||
$code == 0 ? uploadAbeRequest($dataAbeRequests) : '';
|
||||
} else {
|
||||
$message = '<strong>The response has already been sent.</strong>';
|
||||
}
|
||||
|
||||
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'login/showInfo', '', array('MESSAGE' => $message));
|
||||
} catch (Exception $error) {
|
||||
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'login/showMessage', '', array('MESSAGE' => $error->getMessage() . 'Please contact to your system administrator.'));
|
||||
}
|
||||
|
||||
G::RenderPage('publish', 'blank');
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
<?php
|
||||
global $G_PUBLISH;
|
||||
$G_PUBLISH = new Publisher();
|
||||
|
||||
try {
|
||||
// Validations
|
||||
if (!isset($_REQUEST['APP_UID'])) {
|
||||
$_REQUEST['APP_UID'] = '';
|
||||
}
|
||||
|
||||
if (!isset($_REQUEST['DEL_INDEX'])) {
|
||||
$_REQUEST['DEL_INDEX'] = '';
|
||||
}
|
||||
|
||||
if ($_REQUEST['APP_UID'] == '') {
|
||||
throw new Exception('The parameter APP_UID is empty.');
|
||||
}
|
||||
|
||||
if ($_REQUEST['DEL_INDEX'] == '') {
|
||||
throw new Exception('The parameter DEL_INDEX is empty.');
|
||||
}
|
||||
|
||||
G::LoadClass('case');
|
||||
|
||||
$cases = new Cases();
|
||||
$caseFields = $cases->loadCase(G::decrypt($_REQUEST['APP_UID'], URL_KEY),G::decrypt($_REQUEST['DEL_INDEX'], URL_KEY));
|
||||
|
||||
if (is_null($caseFields['DEL_FINISH_DATE'])) {
|
||||
$action = 'dataFormPost.php?APP_UID=' . $_REQUEST['APP_UID'] . '&DEL_INDEX=' . $_REQUEST['DEL_INDEX'] . '&ABER=' . $_REQUEST['ABER'];
|
||||
$G_PUBLISH->AddContent('dynaform', 'xmlform', $caseFields['PRO_UID'] . PATH_SEP . G::decrypt($_REQUEST['DYN_UID'], URL_KEY), '', $caseFields['APP_DATA'], $action, '../../gulliver/defaultAjaxDynaform');
|
||||
} else {
|
||||
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'login/showInfo', '', array('MESSAGE' => '<strong>The form has already been filled and sent.</strong>'));
|
||||
}
|
||||
} catch (Exception $error) {
|
||||
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'login/showInfo', '', array('MESSAGE' => $error->getMessage()));
|
||||
}
|
||||
|
||||
G::RenderPage('publish', 'blank');
|
||||
|
||||
@@ -1,202 +0,0 @@
|
||||
<?php
|
||||
$G_PUBLISH = new Publisher();
|
||||
|
||||
try {
|
||||
if ($_REQUEST['APP_UID'] == '') {
|
||||
throw new Exception('The parameter APP_UID is empty.');
|
||||
}
|
||||
|
||||
if ($_REQUEST['DEL_INDEX'] == '') {
|
||||
throw new Exception('The parameter DEL_INDEX is empty.');
|
||||
}
|
||||
|
||||
if ($_REQUEST['ABER'] == '') {
|
||||
throw new Exception('The parameter ABER is empty.');
|
||||
}
|
||||
|
||||
if (!isset($_REQUEST['form'])) {
|
||||
$_REQUEST['form'] = array();
|
||||
}
|
||||
|
||||
$_REQUEST['APP_UID'] = G::decrypt($_REQUEST['APP_UID'], URL_KEY);
|
||||
$_REQUEST['DEL_INDEX'] = G::decrypt($_REQUEST['DEL_INDEX'], URL_KEY);
|
||||
$_REQUEST['ABER'] = G::decrypt($_REQUEST['ABER'], URL_KEY);
|
||||
|
||||
G::LoadClass('case');
|
||||
|
||||
$case = new Cases();
|
||||
$casesFields = $case->loadCase($_REQUEST['APP_UID'], $_REQUEST['DEL_INDEX']);
|
||||
|
||||
$casesFields['APP_DATA'] = array_merge($casesFields['APP_DATA'], $_REQUEST['form']);
|
||||
|
||||
//Get user info
|
||||
$current_user_uid = null;
|
||||
$currentUsrName = null;
|
||||
|
||||
$criteria = new Criteria("workflow");
|
||||
|
||||
$criteria->addSelectColumn(AppDelegationPeer::USR_UID);
|
||||
$criteria->add(AppDelegationPeer::APP_UID, $_REQUEST["APP_UID"]);
|
||||
$criteria->add(AppDelegationPeer::DEL_INDEX, $_REQUEST["DEL_INDEX"]);
|
||||
|
||||
$rsSQL = AppDelegationPeer::doSelectRS($criteria);
|
||||
$rsSQL->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
while ($rsSQL->next()) {
|
||||
$row = $rsSQL->getRow();
|
||||
|
||||
$current_user_uid = $row["USR_UID"];
|
||||
}
|
||||
|
||||
if ($current_user_uid != null) {
|
||||
$criteria = new Criteria("workflow");
|
||||
|
||||
$criteria->addSelectColumn(UsersPeer::USR_USERNAME);
|
||||
$criteria->add(UsersPeer::USR_UID, $current_user_uid);
|
||||
|
||||
$rsSQL = UsersPeer::doSelectRS($criteria);
|
||||
$rsSQL->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
$rsSQL->next();
|
||||
|
||||
$row = $rsSQL->getRow();
|
||||
$currentUsrName = $row["USR_USERNAME"];
|
||||
|
||||
$casesFields["APP_DATA"]["USER_LOGGED"] = $current_user_uid;
|
||||
$casesFields["APP_DATA"]["USR_USERNAME"] = $currentUsrName;
|
||||
}
|
||||
|
||||
foreach ($casesFields["APP_DATA"] as $index => $value) {
|
||||
$_SESSION[$index] = $value;
|
||||
}
|
||||
|
||||
//Update case info
|
||||
$case->updateCase($_REQUEST['APP_UID'], $casesFields);
|
||||
|
||||
G::LoadClass('wsBase');
|
||||
|
||||
$wsBaseInstance = new wsBase();
|
||||
$result = $wsBaseInstance->derivateCase($casesFields['CURRENT_USER_UID'], $_REQUEST['APP_UID'], $_REQUEST ['DEL_INDEX'], true);
|
||||
$code = (is_array($result) ? $result['status_code'] : $result->status_code);
|
||||
|
||||
$dataResponses = array();
|
||||
$dataResponses['ABE_REQ_UID'] = $_REQUEST['ABER'];
|
||||
$dataResponses['ABE_RES_CLIENT_IP'] = $_SERVER['REMOTE_ADDR'];
|
||||
$dataResponses['ABE_RES_DATA'] = serialize($_REQUEST['form']);
|
||||
$dataResponses['ABE_RES_STATUS'] = 'PENDING';
|
||||
$dataResponses['ABE_RES_MESSAGE'] = '';
|
||||
|
||||
try {
|
||||
set_include_path(PATH_PLUGINS . 'actionsByEmail' . PATH_SEPARATOR . get_include_path());
|
||||
require_once 'classes/model/AbeResponses.php';
|
||||
|
||||
$abeAbeResponsesInstance = new AbeResponses();
|
||||
$dataResponses['ABE_RES_UID'] = $abeAbeResponsesInstance->createOrUpdate($dataResponses);
|
||||
} catch (Exception $error) {
|
||||
throw $error;
|
||||
}
|
||||
|
||||
if ($code == 0) {
|
||||
//Save Cases Notes
|
||||
include_once 'utils.php';
|
||||
|
||||
$dataAbeRequests = loadAbeRequest($_REQUEST['ABER']);
|
||||
$dataAbeConfiguration = loadAbeConfiguration($dataAbeRequests['ABE_UID']);
|
||||
|
||||
if ($dataAbeConfiguration['ABE_CASE_NOTE_IN_RESPONSE'] == 1) {
|
||||
$response = new stdclass();
|
||||
$response->usrUid = $casesFields['APP_DATA']['USER_LOGGED'];
|
||||
$response->appUid = $_REQUEST['APP_UID'];
|
||||
$response->noteText = "Check the information that was sent for the receiver: " . $dataAbeRequests['ABE_REQ_SENT_TO'];
|
||||
|
||||
postNote($response);
|
||||
}
|
||||
|
||||
$dataAbeRequests['ABE_REQ_ANSWERED'] = 1;
|
||||
$code == 0 ? uploadAbeRequest($dataAbeRequests) : '';
|
||||
|
||||
if (isset ( $_FILES ['form'] )) {
|
||||
foreach ($_FILES ['form'] ['name'] as $fieldName => $value) {
|
||||
if ($_FILES ['form'] ['error'] [$fieldName] == 0) {
|
||||
$appDocument = new AppDocument ( );
|
||||
|
||||
if ( isset ( $_REQUEST['INPUTS'] [$fieldName] ) && $_REQUEST['INPUTS'] [$fieldName] != '' ) {
|
||||
require_once 'classes/model/AppFolder.php';
|
||||
require_once 'classes/model/InputDocument.php';
|
||||
|
||||
$inputDocument = new InputDocument();
|
||||
$id = $inputDocument->load($_REQUEST['INPUTS'] [$fieldName]);
|
||||
|
||||
//Get the Custom Folder ID (create if necessary)
|
||||
$oFolder=new AppFolder();
|
||||
$folderId=$oFolder->createFromPath($id['INP_DOC_DESTINATION_PATH']);
|
||||
|
||||
//Tags
|
||||
$fileTags=$oFolder->parseTags($id['INP_DOC_TAGS']);
|
||||
|
||||
$fields = array (
|
||||
'APP_UID' => $_REQUEST['APP_UID'],
|
||||
'DEL_INDEX' => $_REQUEST ['DEL_INDEX'],
|
||||
'USR_UID' => $casesFields['APP_DATA']['USER_LOGGED'],
|
||||
'DOC_UID' => $_REQUEST['INPUTS'] [$fieldName],
|
||||
'APP_DOC_TYPE' => 'INPUT',
|
||||
'APP_DOC_CREATE_DATE' => date ( 'Y-m-d H:i:s' ),
|
||||
'APP_DOC_COMMENT' => '',
|
||||
'APP_DOC_TITLE' => '',
|
||||
'APP_DOC_FILENAME' => $_FILES ['form'] ['name'] [$fieldName],
|
||||
'FOLDER_UID' => $folderId,
|
||||
'APP_DOC_TAGS' => $fileTags
|
||||
);
|
||||
} else {
|
||||
$fields = array (
|
||||
'APP_UID' => $_REQUEST['APP_UID'],
|
||||
'DEL_INDEX' => $_REQUEST ['DEL_INDEX'],
|
||||
'USR_UID' => $casesFields['APP_DATA']['USER_LOGGED'],
|
||||
'DOC_UID' => - 1,
|
||||
'APP_DOC_TYPE' => 'ATTACHED',
|
||||
'APP_DOC_CREATE_DATE' => date ( 'Y-m-d H:i:s' ),
|
||||
'APP_DOC_COMMENT' => '',
|
||||
'APP_DOC_TITLE' => '',
|
||||
'APP_DOC_FILENAME' => $_FILES ['form'] ['name'] [$fieldName]
|
||||
);
|
||||
}
|
||||
|
||||
$appDocument->create($fields);
|
||||
$docVersion = $appDocument->getDocVersion();
|
||||
$appDocUid = $appDocument->getAppDocUid ();
|
||||
$info = pathinfo ( $appDocument->getAppDocFilename () );
|
||||
$extension = (isset ( $info ['extension'] ) ? $info ['extension'] : '');
|
||||
$pathName = PATH_DOCUMENT . $_REQUEST['APP_UID'] . PATH_SEP;
|
||||
$fileName = $appDocUid . '_'.$docVersion.'.' . $extension;
|
||||
|
||||
G::uploadFile ( $_FILES ['form'] ['tmp_name'] [$fieldName], $pathName, $fileName );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$assign = $result['message'];
|
||||
$aMessage['MESSAGE'] = '<strong>The information was submitted. Thank you.</strong>';
|
||||
} else {
|
||||
throw new Exception('An error occurred while the application was being processed.<br /><br />
|
||||
Error code: '.$result->status_code.'<br />
|
||||
Error message: '.$result->message.'<br /><br />');
|
||||
}
|
||||
|
||||
// Update
|
||||
$dataResponses['ABE_RES_STATUS'] = ($code == 0 ? 'SENT' : 'ERROR');
|
||||
$dataResponses['ABE_RES_MESSAGE'] = ($code == 0 ? '-' : $result->message);
|
||||
|
||||
try {
|
||||
$abeAbeResponsesInstance = new AbeResponses();
|
||||
$abeAbeResponsesInstance->createOrUpdate($dataResponses);
|
||||
} catch (Exception $error) {
|
||||
throw $error;
|
||||
}
|
||||
|
||||
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'login/showInfo', '', $aMessage);
|
||||
} catch (Exception $error) {
|
||||
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'login/showMessage', '', array('MESSAGE' => $error->getMessage().'Please contact to your system administrator.'));
|
||||
}
|
||||
|
||||
G::RenderPage('publish', 'blank');
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<dynaForm name="actionByEmail Setup Form" type="xmlform" width="550">
|
||||
<TITLE type="title" group="1">
|
||||
<en>Action By Email Plugin</en>
|
||||
<pt-BR><![CDATA[Ação por Email Plugin]]></pt-BR>
|
||||
</TITLE>
|
||||
<HelpText type="subtitle" maxlength="100" size="60">
|
||||
<en>There is no further configuration needed.</en>
|
||||
<pt-BR><![CDATA[Não há nenhuma configuração adicional necessária.]]></pt-BR>
|
||||
</HelpText>
|
||||
</dynaForm>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,33 +0,0 @@
|
||||
<form id="{$form_id}" name="{$form_name}" action="{$form_action}" class="{$form_className}" method="post" encType="multipart/form-data" style="margin:0px;" onsubmit='return validateForm("{$form_objectRequiredFields}".parseJSON());'> <div class="borderForm" style="width:{$form_width}; padding-left:0; padding-right:0; border-width:{$form_border};">
|
||||
<div class="boxTop"><div class="a"></div><div class="b"></div><div class="c"></div></div>
|
||||
<div class="content" style="height:{$form_height};" >
|
||||
<table width="99%">
|
||||
<tr>
|
||||
<td valign='top'>
|
||||
<input type="hidden" name="__notValidateThisFields__" id="__notValidateThisFields__" value="" />
|
||||
<input type="hidden" name="DynaformRequiredFields" id="DynaformRequiredFields" value='{$form_objectRequiredFields}' />
|
||||
<table cellspacing="0" cellpadding="0" border="0" width="100%">
|
||||
<tr style="display: none">
|
||||
<td colspan="2">{$form.TEMPLATE}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='FormTitle' colspan="2" align="">{$form.THETITLE}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='FormFieldContent' colspan="2">{$form.CONTENT}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='FormButton' colspan="2" align="center">{$form.ACCEPT} {$form.CANCEL}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="boxBottom"><div class="a"></div><div class="b"></div><div class="c"></div></div>
|
||||
</div>
|
||||
</form>
|
||||
<script type="text/javascript">
|
||||
{$form.JS}
|
||||
try {literal}{{/literal} dynaformSetFocus();}catch(e){literal}{{/literal}}
|
||||
</script>
|
||||
@@ -1,40 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<dynaForm name="actionsByEmail_FileEdit" type="xmlform" width="100%" enableTemplate="1">
|
||||
<TEMPLATE type="hidden" defaultValue=""/>
|
||||
<THETITLE type="title" enableHTML="1">
|
||||
<en><![CDATA[<div align="center">Edit @#TEMPLATE email template</div>]]></en>
|
||||
<pt-BR><![CDATA[<div align="center">Editar @#TEMPLATE de e-mail template</div>]]></pt-BR>
|
||||
</THETITLE>
|
||||
<CONTENT type="html" height="420" width="100%" defaultValue="">
|
||||
<en/>
|
||||
<pt-BR/>
|
||||
</CONTENT>
|
||||
<ACCEPT type="button" onclick="saveFile();">
|
||||
<en>Save</en>
|
||||
<pt-BR><![CDATA[Salvar]]></pt-BR>
|
||||
</ACCEPT>
|
||||
<CANCEL type="button" onclick="cancel();">
|
||||
<en>Cancel</en>
|
||||
<pt-BR><![CDATA[Cancelar]]></pt-BR>
|
||||
</CANCEL>
|
||||
<JS type="javascript" replacetags="1"><![CDATA[
|
||||
var cancel = function () {
|
||||
oPanel.remove();
|
||||
};
|
||||
|
||||
var saveFile = function() {
|
||||
var fc64 = base64_encode(getField('CONTENT').value);
|
||||
fc64 = fc64.replace(/&/g, '@amp@');
|
||||
fc64 = fc64.replace(/\+/g, '%2B');
|
||||
var oRPC = new leimnud.module.rpc.xmlhttp({
|
||||
url: '../actionsByEmail/actionsByEmailAjax',
|
||||
args: 'action=updateTemplate&PRO_UID=' + Pm.options.uid + '&TEMPLATE=' + getField('TEMPLATE').value + '&CONTENT=' + fc64
|
||||
});
|
||||
oPanel.loader.show();
|
||||
oRPC.callback = function(rpc) {
|
||||
oPanel.remove();
|
||||
}.extend(this);
|
||||
oRPC.make();
|
||||
};
|
||||
]]></JS>
|
||||
</dynaForm>
|
||||
@@ -1,52 +0,0 @@
|
||||
<form id="{$form_id}" name="" action="{$form_action}" class="{$form_className}" method="post" encType="multipart/form-data" style="margin:0px;" onsubmit="return validateForm('{$form_objectRequiredFields}');"> <div class="borderForm" style="width:{$form_width}; padding-left:0; padding-right:0; border-width:{$form_border};">
|
||||
<div class="boxTop"><div class="a"></div><div class="b"></div><div class="c"></div></div>
|
||||
<div class="content" style="height:{$form_height};" >
|
||||
<table width="99%">
|
||||
<tr>
|
||||
<td valign='top'>
|
||||
<input type="hidden" class="notValidateThisFields" name="__notValidateThisFields__" id="__notValidateThisFields__" value="{$form_objectRequiredFields}" />
|
||||
<input type="hidden" name="DynaformRequiredFields" id="DynaformRequiredFields" value="{$form_objectRequiredFields}" />
|
||||
<table cellspacing="0" cellpadding="0" border="0" width="100%">
|
||||
<tr style="display: none">
|
||||
<td colspan="2">{$form.IFORM}{$form.INDEX}{$form.ABE_UID}{$form.PRO_UID}{$form.TAS_UID}{$form.SYS_LANG}{$form.ABE_EMAIL_FIELD_VALUE}{$form.ABE_ACTION_FIELD_VALUE}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='FormLabel' width="{$form_labelWidth}">{$ABE_TYPE}</td>
|
||||
<td class='FormFieldContent' width='{$form_fieldContentWidth}' >{$form.ABE_TYPE}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='FormLabel' width="{$form_labelWidth}"><font color="red">* </font>{$ABE_TEMPLATE}</td>
|
||||
<td class='FormFieldContent' width='{$form_fieldContentWidth}' >{$form.ABE_TEMPLATE} {$form.EDIT}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='FormLabel' width="{$form_labelWidth}"><font color="red">* </font>{$DYN_UID}</td>
|
||||
<td class='FormFieldContent' width='{$form_fieldContentWidth}' >{$form.DYN_UID}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='FormLabel' width="{$form_labelWidth}">{$ABE_EMAIL_FIELD}</td>
|
||||
<td class='FormFieldContent' width='{$form_fieldContentWidth}' >{$form.ABE_EMAIL_FIELD}</td>
|
||||
</tr>
|
||||
<tr style="display: none;">
|
||||
<td class='FormLabel' width="{$form_labelWidth}"><font color="red">* </font>{$ABE_ACTION_FIELD}</td>
|
||||
<td class='FormFieldContent' width='{$form_fieldContentWidth}' >{$form.ABE_ACTION_FIELD}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='FormLabel' width="{$form_labelWidth}"></td>
|
||||
<td>{$form.ABE_CASE_NOTE_IN_RESPONSE}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='FormButton' colspan="2" align="center">{$form.APPLY_CHANGES}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="FormRequiredTextMessage"><font color="red">* </font> {$REQUIRED_LABEL}</div> </div>
|
||||
<div class="boxBottom"><div class="a"></div><div class="b"></div><div class="c"></div></div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
{$form.JS}
|
||||
</script>
|
||||
</form>
|
||||
|
||||
@@ -1,67 +0,0 @@
|
||||
<?php
|
||||
set_include_path(PATH_PLUGINS . 'actionsByEmail' . PATH_SEPARATOR . get_include_path());
|
||||
require_once 'classes/model/AbeConfiguration.php';
|
||||
|
||||
// Get the configuration for the current task
|
||||
if (isset($_REQUEST['data'])) {
|
||||
$data = G::json_decode(stripslashes($_REQUEST['data']));
|
||||
} else {
|
||||
// ToDo: Trigger a error
|
||||
}
|
||||
|
||||
$task = new Task();
|
||||
$taskFields = $task->load($data->uid);
|
||||
|
||||
$criteria = new Criteria();
|
||||
$criteria->add(AbeConfigurationPeer::PRO_UID, $taskFields['PRO_UID']);
|
||||
$criteria->add(AbeConfigurationPeer::TAS_UID, $data->uid);
|
||||
$result = AbeConfigurationPeer::doSelectRS($criteria);
|
||||
$result->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$result->next();
|
||||
|
||||
if ($configuration = $result->getRow()) {
|
||||
$configuration['ABE_EMAIL_FIELD_VALUE'] = $configuration['ABE_EMAIL_FIELD'];
|
||||
$configuration['ABE_ACTION_FIELD_VALUE'] = $configuration['ABE_ACTION_FIELD'];
|
||||
} else {
|
||||
$configuration = array();
|
||||
}
|
||||
|
||||
$configuration['PRO_UID'] = $taskFields['PRO_UID'];
|
||||
$configuration['TAS_UID'] = $taskFields['TAS_UID'];
|
||||
$configuration['SYS_LANG'] = SYS_LANG;
|
||||
$configuration['IFORM'] = $data->iForm;
|
||||
$configuration['INDEX'] = $data->index;
|
||||
|
||||
$templates = array();
|
||||
$templates[] = 'dummy';
|
||||
$path = PATH_DATA_MAILTEMPLATES . $taskFields['PRO_UID'] . PATH_SEP;
|
||||
|
||||
G::verifyPath($path, true);
|
||||
|
||||
if (defined('PARTNER_FLAG')) {
|
||||
if (!file_exists($path . 'actionsByEmailPartner.html')) {
|
||||
@copy(PATH_PLUGINS . 'actionsByEmail' . PATH_SEP . 'data' . PATH_SEP . 'actionsByEmailPartner.html', $path . 'actionsByEmail.html');
|
||||
}
|
||||
} else {
|
||||
if (!file_exists($path . 'actionsByEmail.html')) {
|
||||
@copy(PATH_PLUGINS . 'actionsByEmail' . PATH_SEP . 'data' . PATH_SEP . 'actionsByEmail.html', $path . 'actionsByEmail.html');
|
||||
}
|
||||
}
|
||||
|
||||
$directory = dir($path);
|
||||
|
||||
while ($object = $directory->read()) {
|
||||
if (($object !== '.') && ($object !== '..') && ($object !== 'alert_message.html')) {
|
||||
$templates[] = array('FILE' => $object, 'NAME' => $object);
|
||||
}
|
||||
}
|
||||
|
||||
global $_DBArray;
|
||||
|
||||
$_DBArray['ABE_TEMPLATES'] = $templates;
|
||||
$_SESSION['_DBArray'] = $_DBArray;
|
||||
|
||||
// Render the form
|
||||
global $G_PUBLISH;
|
||||
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'actionsByEmail/configActionsByEmail', null, $configuration);
|
||||
|
||||
@@ -1,215 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<dynaForm type="xmlform" name="" width="550" height="300" enabletemplate="1" mode="edit" labelWidth="150">
|
||||
<IFORM type="hidden"/>
|
||||
<INDEX type="hidden"/>
|
||||
<ABE_UID type="hidden"/>
|
||||
<PRO_UID type="hidden"/>
|
||||
<TAS_UID type="hidden"/>
|
||||
<SYS_LANG type="hidden"/>
|
||||
<ABE_EMAIL_FIELD_VALUE type="hidden"/>
|
||||
<ABE_ACTION_FIELD_VALUE type="hidden"/>
|
||||
<ABE_TYPE type="dropdown" required="0" defaultValue="text">
|
||||
<en>Type
|
||||
<option name="">- None -</option>
|
||||
<option name="LINK">Link to fill a form</option>
|
||||
<option name="FIELD">Use a field to generate actions links</option>
|
||||
</en>
|
||||
<pt-BR><![CDATA[Tipo]]><option name=""><![CDATA[- Nenhum -]]></option><option name="LINK"><![CDATA[Link para preencher um formulário]]></option><option name="FIELD"><![CDATA[Usar um campo para gerar links ações]]></option></pt-BR>
|
||||
</ABE_TYPE>
|
||||
<ABE_TEMPLATE type="dropdown" required="1" sqlconnection="dbarray" colWidth="30" titleAlign="left">
|
||||
SELECT FILE, NAME FROM ABE_TEMPLATES
|
||||
<en>Template
|
||||
<option name=""> - Selec a Template - </option>
|
||||
</en>
|
||||
<pt-BR><![CDATA[Modelo]]><option name=""><![CDATA[- Escolha um modelo -]]></option></pt-BR></ABE_TEMPLATE>
|
||||
<EDIT type="link" colWidth="40" value="@G::LoadTranslation(ID_EDIT)" link="#" onclick="editTemplateABE();"/>
|
||||
<DYN_UID type="dropdown" required="1" readonly="0" mode="edit" btn_cancel="Cancel"><![CDATA[SELECT DYN_UID, C.CON_VALUE AS DYN_TITLE FROM DYNAFORM LEFT JOIN CONTENT AS C ON (DYN_UID = C.CON_ID AND C.CON_CATEGORY='DYN_TITLE' AND C.CON_LANG = '@#SYS_LANG') WHERE PRO_UID = '@#PRO_UID' AND DYN_TYPE = 'xmlform' ORDER BY DYN_TITLE ASC]]><en>Dynaform
|
||||
<option name="">- Select a Dynaform -</option>
|
||||
</en><pt-BR><![CDATA[Formulário Dinâmico]]><option name=""><![CDATA[- Escolha um Formulário Dinâmico -]]></option></pt-BR></DYN_UID>
|
||||
<ABE_EMAIL_FIELD type="dropdown" required="0">
|
||||
<en>Field with the email
|
||||
<option name="">- Send to the email of the assigned user to the task -</option>
|
||||
</en>
|
||||
<pt-BR><![CDATA[Campo com o e-mail]]><option name=""><![CDATA[- Enviar para o e-mail do usuário atribuído à tarefa -]]></option></pt-BR>
|
||||
</ABE_EMAIL_FIELD>
|
||||
<ABE_ACTION_FIELD type="dropdown" required="0">
|
||||
<en>Field to Send in the Email
|
||||
<option name=""> - Select a Field - </option>
|
||||
</en>
|
||||
<pt-BR><![CDATA[Campo de enviar o e-mail]]><option name=""><![CDATA[- Escolha um campo -]]></option></pt-BR>
|
||||
</ABE_ACTION_FIELD>
|
||||
<ABE_CASE_NOTE_IN_RESPONSE type="checkbox" value="1" falsevalue="0" defaultvalue="0" readonly="0" labelonright="1" enablehtml="0" btn_cancel="Cancel" hint="" required="0" savelabel="0">
|
||||
<en>Register a Case Note when the recipient submits the Response</en>
|
||||
<pt-BR><![CDATA[Registrar um caso de nota quando o destinatário envia a resposta]]></pt-BR>
|
||||
</ABE_CASE_NOTE_IN_RESPONSE>
|
||||
<APPLY_CHANGES type="button" onclick="saveConfigurationABE();">
|
||||
<en>Apply Changes</en>
|
||||
<pt-BR><![CDATA[Aplicar alterações]]></pt-BR>
|
||||
</APPLY_CHANGES>
|
||||
<REQUIRED_LABEL type="text">
|
||||
<pt-BR><![CDATA[Campo obrigatório]]></pt-BR>
|
||||
<en><![CDATA[Required Field]]></en>
|
||||
</REQUIRED_LABEL>
|
||||
<JS type="javascript"><![CDATA[
|
||||
var loadFieldsABE = function() {
|
||||
var rpc = new leimnud.module.rpc.xmlhttp({
|
||||
url: '../actionsByEmail/actionsByEmailAjax',
|
||||
args: 'action=loadFields&PRO_UID=' + Pm.options.uid + '&DYN_UID=' + getField('DYN_UID').value
|
||||
});
|
||||
rpc.callback = function(rpc) {
|
||||
var response = rpc.xmlhttp.responseText.parseJSON();
|
||||
var ABE_EMAIL_FIELD = getField('ABE_EMAIL_FIELD');
|
||||
ABE_EMAIL_FIELD.options.length = 0;
|
||||
ABE_EMAIL_FIELD.options.add(new Option('- Send to the email of the assigned user to the task -', ''));
|
||||
ABE_EMAIL_FIELD.selectedIndex = 0;
|
||||
for (i = 0; i < response.emailFields.length; i++) {
|
||||
ABE_EMAIL_FIELD.options.add(new Option(response.emailFields[i].label, response.emailFields[i].value));
|
||||
}
|
||||
ABE_EMAIL_FIELD.value = getField('ABE_EMAIL_FIELD_VALUE').value;
|
||||
var ABE_ACTION_FIELD = getField('ABE_ACTION_FIELD');
|
||||
ABE_ACTION_FIELD.options.length = 0;
|
||||
ABE_ACTION_FIELD.options.add(new Option('- Select a Field -', ''));
|
||||
ABE_ACTION_FIELD.selectedIndex = 0;
|
||||
for (i = 0; i < response.actionFields.length; i++) {
|
||||
ABE_ACTION_FIELD.options.add(new Option(response.actionFields[i].label, response.actionFields[i].value));
|
||||
}
|
||||
ABE_ACTION_FIELD.value = getField('ABE_ACTION_FIELD_VALUE').value;
|
||||
};
|
||||
rpc.make();
|
||||
};
|
||||
|
||||
var editTemplateABE = function() {
|
||||
if(getField('ABE_TEMPLATE').value == '') {
|
||||
setFocus(getField('ABE_TEMPLATE'));
|
||||
alert('Select a Template');
|
||||
return false;
|
||||
}
|
||||
|
||||
oPanel = new leimnud.module.panel;
|
||||
oPanel.options = {
|
||||
limit : true,
|
||||
size : {w: 800, h: 600},
|
||||
position: {x: 50, y: 50, center: true},
|
||||
title : '',
|
||||
control : {close: true, resize: false},
|
||||
fx : {shadow: true, modal: true}
|
||||
};
|
||||
oPanel.make();
|
||||
var oRPC = new leimnud.module.rpc.xmlhttp({
|
||||
url: '../actionsByEmail/actionsByEmailAjax',
|
||||
args: 'action=editTemplate&PRO_UID=' + Pm.options.uid + '&TEMPLATE=' + getField('ABE_TEMPLATE').value
|
||||
});
|
||||
oPanel.loader.show();
|
||||
oRPC.callback = function (rpc) {
|
||||
oPanel.loader.hide();
|
||||
oPanel.addContent(rpc.xmlhttp.responseText);
|
||||
var scs = rpc.xmlhttp.responseText.extractScript();scs.evalScript();
|
||||
}.extend(this);
|
||||
oRPC.make();
|
||||
};
|
||||
|
||||
var saveConfigurationABE = function() {
|
||||
if(getField('ABE_TYPE').value != '') {
|
||||
if(getField('ABE_TEMPLATE').value == '') {
|
||||
setFocus(getField('ABE_TEMPLATE'));
|
||||
alert('Select a Template');
|
||||
return false;
|
||||
}
|
||||
if(getField('DYN_UID').value == '') {
|
||||
setFocus(getField('DYN_UID'));
|
||||
alert('Select a DynaForm');
|
||||
return false;
|
||||
}
|
||||
if(getField('ABE_TYPE').value == 'FIELD') {
|
||||
if(getField('ABE_ACTION_FIELD').value == '') {
|
||||
setFocus(getField('ABE_ACTION_FIELD'));
|
||||
alert('Select the field to Send in the Email');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
var rpc = new leimnud.module.rpc.xmlhttp({
|
||||
url: '../actionsByEmail/actionsByEmailAjax',
|
||||
args: 'action=saveConfiguration' +
|
||||
'&ABE_UID=' + getField('ABE_UID').value +
|
||||
'&PRO_UID=' + Pm.options.uid +
|
||||
'&TAS_UID=' + getField('TAS_UID').value +
|
||||
'&ABE_TYPE=' + getField('ABE_TYPE').value +
|
||||
'&ABE_TEMPLATE=' + getField('ABE_TEMPLATE').value +
|
||||
'&DYN_UID=' + getField('DYN_UID').value +
|
||||
'&ABE_EMAIL_FIELD=' + getField('ABE_EMAIL_FIELD').value +
|
||||
'&ABE_ACTION_FIELD=' + getField('ABE_ACTION_FIELD').value +
|
||||
'&ABE_CASE_NOTE_IN_RESPONSE=' + (getField('ABE_CASE_NOTE_IN_RESPONSE').checked ? 1 : 0)
|
||||
});
|
||||
rpc.callback = function(rpc) {
|
||||
var response = rpc.xmlhttp.responseText.parseJSON();
|
||||
if (response.status == 'OK') {
|
||||
getField('ABE_UID').value = response.ABE_UID;
|
||||
alert('Changes saved.');
|
||||
}
|
||||
else {
|
||||
alert(response.message);
|
||||
}
|
||||
};
|
||||
rpc.make();
|
||||
};
|
||||
|
||||
leimnud.event.add(getField('ABE_TYPE'), 'change', function() {
|
||||
switch (getField('ABE_TYPE').value) {
|
||||
case '':
|
||||
hideRowById('ABE_TEMPLATE');
|
||||
hideRowById('DYN_UID');
|
||||
hideRowById('ABE_EMAIL_FIELD');
|
||||
hideRowById('ABE_ACTION_FIELD');
|
||||
hideRowById('ABE_CASE_NOTE_IN_RESPONSE');
|
||||
break;
|
||||
case 'LINK':
|
||||
showRowById('ABE_TEMPLATE');
|
||||
showRowById('DYN_UID');
|
||||
showRowById('ABE_EMAIL_FIELD');
|
||||
hideRowById('ABE_ACTION_FIELD');
|
||||
showRowById('ABE_CASE_NOTE_IN_RESPONSE');
|
||||
break;
|
||||
case 'FIELD':
|
||||
showRowById('ABE_TEMPLATE');
|
||||
showRowById('DYN_UID');
|
||||
showRowById('ABE_EMAIL_FIELD');
|
||||
showRowById('ABE_ACTION_FIELD');
|
||||
showRowById('ABE_CASE_NOTE_IN_RESPONSE');
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
leimnud.event.add(getField('DYN_UID'), 'change', function() {
|
||||
loadFieldsABE();
|
||||
});
|
||||
|
||||
switch (getField('ABE_TYPE').value) {
|
||||
case '':
|
||||
hideRowById('ABE_TEMPLATE');
|
||||
hideRowById('DYN_UID');
|
||||
hideRowById('ABE_EMAIL_FIELD');
|
||||
hideRowById('ABE_ACTION_FIELD');
|
||||
hideRowById('ABE_CASE_NOTE_IN_RESPONSE');
|
||||
break;
|
||||
case 'LINK':
|
||||
showRowById('ABE_TEMPLATE');
|
||||
showRowById('DYN_UID');
|
||||
showRowById('ABE_EMAIL_FIELD');
|
||||
hideRowById('ABE_ACTION_FIELD');
|
||||
showRowById('ABE_CASE_NOTE_IN_RESPONSE');
|
||||
break;
|
||||
case 'FIELD':
|
||||
showRowById('ABE_TEMPLATE');
|
||||
showRowById('DYN_UID');
|
||||
showRowById('ABE_EMAIL_FIELD');
|
||||
showRowById('ABE_ACTION_FIELD');
|
||||
showRowById('ABE_CASE_NOTE_IN_RESPONSE');
|
||||
break;
|
||||
}
|
||||
|
||||
if (getField('DYN_UID').value != '') {
|
||||
loadFieldsABE();
|
||||
}
|
||||
]]></JS>
|
||||
</dynaForm>
|
||||
@@ -1,3 +0,0 @@
|
||||
<?php
|
||||
// ToDo: Render the tracking form, for the next release
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
[actionsByEmail]
|
||||
name = "Actions by Email"
|
||||
description = "It allows to perform actions on cases from an email sent to an user, in this first version it allows to fill out a form or select a value from one field to derivate the case later."
|
||||
pluginFolder = "actionsByEmail"
|
||||
setupPage = "actionsByEmail"
|
||||
version = ""
|
||||
pmVersion = ""
|
||||
dependencies = ""
|
||||
workspaces = ""
|
||||
@@ -1,231 +0,0 @@
|
||||
var actionsByEmailGrid;
|
||||
var store;
|
||||
var win ;
|
||||
|
||||
new Ext.KeyMap(document, {
|
||||
key: Ext.EventObject.F5,
|
||||
fn: function(keycode, e) {
|
||||
if (! e.ctrlKey) {
|
||||
if (Ext.isIE) {
|
||||
e.browserEvent.keyCode = 8;
|
||||
}
|
||||
e.stopEvent();
|
||||
document.location = document.location;
|
||||
} else {
|
||||
Ext.Msg.alert(_('ID_REFRESH_LABEL'), _('ID_REFRESH_MESSAGE'));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Ext.onReady(function(){
|
||||
Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
|
||||
Ext.QuickTips.init();
|
||||
|
||||
store = new Ext.data.GroupingStore( {
|
||||
proxy : new Ext.data.HttpProxy({
|
||||
url: '../actionsByEmail/actionsByEmailAjax',
|
||||
method: 'POST'
|
||||
}),
|
||||
|
||||
reader : new Ext.data.JsonReader( {
|
||||
totalProperty: 'totalCount',
|
||||
root: 'data',
|
||||
fields : [
|
||||
{name : 'ABE_UID'},
|
||||
{name : 'ABE_REQ_UID'},
|
||||
{name : 'APP_UID'},
|
||||
{name : 'TAS_UID'},
|
||||
{name : 'ABE_REQ_DATE'},
|
||||
{name : 'ABE_REQ_SUBJECT'},
|
||||
{name : 'APP_NUMBER'},
|
||||
{name : 'USER'},
|
||||
{name : 'ABE_REQ_SENT_TO'},
|
||||
{name : 'ABE_REQ_STATUS'},
|
||||
{name : 'ABE_REQ_ANSWERED'},
|
||||
{name : 'ABE_RES_MESSAGE'}
|
||||
]
|
||||
})
|
||||
});
|
||||
store.setBaseParam( 'action', 'loadActionByEmail' );
|
||||
|
||||
actionsByEmailGrid = new Ext.grid.GridPanel( {
|
||||
region: 'center',
|
||||
layout: 'fit',
|
||||
id: 'actionsByEmailGrid',
|
||||
//width:800,
|
||||
title : '',
|
||||
stateful : true,
|
||||
stateId : 'grid',
|
||||
enableColumnResize: true,
|
||||
enableHdMenu: true,
|
||||
frame:false,
|
||||
columnLines: true,
|
||||
|
||||
cm: new Ext.grid.ColumnModel({
|
||||
defaults: {
|
||||
sortable: true
|
||||
},
|
||||
columns: [
|
||||
{id: 'ABE_UID', dataIndex: 'ABE_UID', hidden:true, hideable:false},
|
||||
{header: _('ID_DATE').toUpperCase(), width: 100, dataIndex: 'ABE_REQ_DATE', sortable: true },
|
||||
{header: "Case Number".toUpperCase(), width: 70, dataIndex: 'APP_NUMBER', sortable: true },
|
||||
{header: _('ID_SUBJECT').toUpperCase(), width: 150, dataIndex: 'ABE_REQ_SUBJECT', sortable: true },
|
||||
{header: _('ID_FROM').toUpperCase(), width: 110, dataIndex: 'USER', sortable: true },
|
||||
{header: _('ID_TO').toUpperCase(), width: 110, dataIndex: 'ABE_REQ_SENT_TO', sortable: true },
|
||||
{header: _('ID_STATUS').toUpperCase(), width: 40, dataIndex: 'ABE_REQ_STATUS', sortable: true },
|
||||
{header: "Answered".toUpperCase(), width: 60, dataIndex: 'ABE_REQ_ANSWERED' },
|
||||
{header: "View Response".toUpperCase(), width: 80, sortable: false, align: 'center', renderer: function(val){ return '<img src="/images/ext/default/s.gif" class="x-tree-node-icon ss_layout_header" unselectable="off" id="extdd-17" onclick="openForm()" '; }, dataIndex: 'somefieldofyourstore'},
|
||||
{header: "Error message".toUpperCase(), width: 130, dataIndex: 'ABE_RES_MESSAGE',sortable: false }
|
||||
]
|
||||
}),
|
||||
store: store,
|
||||
tbar:[
|
||||
{
|
||||
text: "Resend Email",
|
||||
iconCls: 'button_menu_ext ss_sprite ss_world',
|
||||
handler:ForwardEmail
|
||||
}
|
||||
],
|
||||
// paging bar on the bottom
|
||||
bbar: new Ext.PagingToolbar({
|
||||
pageSize: 25,
|
||||
store: store,
|
||||
displayInfo: true,
|
||||
displayMsg: _('ID_DISPLATING_ACTIONSBYEMAIL') + ' {0} - {1} ' + _('ID_DISPLAY_OF') + ' {2}'//,
|
||||
}),
|
||||
viewConfig: {
|
||||
forceFit: true
|
||||
},
|
||||
listeners: {
|
||||
render: function(){
|
||||
this.loadMask = new Ext.LoadMask(this.body, {msg:_('ID_LOADING_GRID')});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
store.load({params:{ start : 0 , limit : 25 }});
|
||||
actionsByEmailGrid.addListener('rowcontextmenu', onMessageContextMenu,this);
|
||||
actionsByEmailGrid.on('rowcontextmenu', function (grid, rowIndex, evt) {
|
||||
var sm = grid.getSelectionModel();
|
||||
sm.selectRow(rowIndex, sm.isSelected(rowIndex));
|
||||
|
||||
var rowSelected = Ext.getCmp('actionsByEmailGrid').getSelectionModel().getSelected();
|
||||
|
||||
}, this);
|
||||
actionsByEmailGrid.on('contextmenu', function (evt) {
|
||||
evt.preventDefault();
|
||||
}, this);
|
||||
|
||||
function onMessageContextMenu(grid, rowIndex, e) {
|
||||
e.stopEvent();
|
||||
var coords = e.getXY();
|
||||
messageContextMenu.showAt([coords[0], coords[1]]);
|
||||
}
|
||||
|
||||
var viewport = new Ext.Viewport({
|
||||
layout: 'border',
|
||||
autoScroll: true,
|
||||
items: [
|
||||
actionsByEmailGrid
|
||||
]
|
||||
});
|
||||
});
|
||||
|
||||
function openForm(){
|
||||
var rows = actionsByEmailGrid.getSelectionModel().getSelections();
|
||||
var REQ_UID = '';
|
||||
var ids = '';
|
||||
for (i=0; i<rows.length; i++) {
|
||||
if (i != 0 ) {
|
||||
ids += ',';
|
||||
}
|
||||
ids += rows[i].get('APP_NUMBER') + ', ';
|
||||
ids += rows[i].get('ABE_REQ_SUBJECT');
|
||||
REQ_UID += rows[i].get('ABE_REQ_UID');
|
||||
}
|
||||
if ( REQ_UID != '' ) {
|
||||
win = new Ext.Window({
|
||||
id: 'win',
|
||||
title: ids,
|
||||
pageX: 100 ,
|
||||
pageY: 100 ,
|
||||
width: 500,
|
||||
floatable: true,
|
||||
autoHeight:true,
|
||||
modal: true,
|
||||
layout: 'fit',
|
||||
autoLoad : {
|
||||
url : '../actionsByEmail/actionsByEmailAjax',
|
||||
params : { action:'viewForm',REQ_UID : REQ_UID },
|
||||
scripts: true
|
||||
},
|
||||
plain: true,
|
||||
buttons: [{
|
||||
id: 'btn',
|
||||
text: _('ID_CLOSE'),
|
||||
handler: function() {
|
||||
//var index = this.id.replace('btn', '');
|
||||
win.hide();
|
||||
}
|
||||
}]}).show();
|
||||
} else {
|
||||
Ext.Msg.show({
|
||||
title:'',
|
||||
msg: TRANSLATIONS.ID_NO_SELECTION_WARNING,
|
||||
buttons: Ext.Msg.INFO,
|
||||
fn: function(){},
|
||||
animEl: 'elId',
|
||||
icon: Ext.MessageBox.INFO,
|
||||
buttons: Ext.MessageBox.OK
|
||||
});
|
||||
}
|
||||
}
|
||||
function ForwardEmail(){
|
||||
var rows = actionsByEmailGrid.getSelectionModel().getSelections();
|
||||
var REQ_UID = '';
|
||||
var ids = '';
|
||||
for (i=0; i<rows.length; i++) {
|
||||
if (i != 0 ) {
|
||||
ids += ',';
|
||||
}
|
||||
REQ_UID += rows[i].get('ABE_REQ_UID');
|
||||
ids += rows[i].get('APP_NUMBER') + ', ';
|
||||
ids += rows[i].get('ABE_REQ_SUBJECT');
|
||||
}
|
||||
if ( REQ_UID != '' ) {
|
||||
win = new Ext.Window({
|
||||
id: 'win',
|
||||
title: ids,
|
||||
pageX: 100 ,
|
||||
pageY: 100 ,
|
||||
width: 500,
|
||||
floatable: true,
|
||||
autoHeight:true,
|
||||
modal: true,
|
||||
layout: 'fit',
|
||||
autoLoad : {
|
||||
url : '../actionsByEmail/actionsByEmailAjax',
|
||||
params : { action:'forwardMail',REQ_UID :REQ_UID},
|
||||
scripts: true
|
||||
},
|
||||
plain: true,
|
||||
buttons: [{
|
||||
id: 'btn',
|
||||
text: _('ID_CLOSE'),
|
||||
handler: function() {
|
||||
win.hide();
|
||||
}
|
||||
}]}).show();
|
||||
} else {
|
||||
Ext.Msg.show({
|
||||
title:'',
|
||||
msg: "Select an item from the list",
|
||||
buttons: Ext.Msg.INFO,
|
||||
fn: function(){},
|
||||
animEl: 'elId',
|
||||
icon: Ext.MessageBox.INFO,
|
||||
buttons: Ext.MessageBox.OK
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -1,218 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Description of ActivityViews
|
||||
*
|
||||
*/
|
||||
class ActivityConfigurationView
|
||||
{
|
||||
public function retrieveView()
|
||||
{
|
||||
$view = array(
|
||||
'type' => 'form',
|
||||
'language' => 'en',
|
||||
'title' => 'Actions by Email',
|
||||
'layouts' => array(),
|
||||
'fields' => array(
|
||||
// array(
|
||||
// 'name' => 'IFORM',
|
||||
// 'type' => 'hidden'
|
||||
// ),
|
||||
// array(
|
||||
// 'name' => 'INDEX',
|
||||
// 'type' => 'hidden'
|
||||
// ),
|
||||
// array(
|
||||
// 'name' => 'ABE_UID',
|
||||
// 'type' => 'hidden'
|
||||
// ),
|
||||
// array(
|
||||
// 'name' => 'PRO_UID',
|
||||
// 'type' => 'hidden'
|
||||
// ),
|
||||
// array(
|
||||
// 'name' => 'PRJ_UID',
|
||||
// 'type' => 'hidden'
|
||||
// ),
|
||||
// array(
|
||||
// 'name' => 'TAS_UID',
|
||||
// 'type' => 'hidden'
|
||||
// ),
|
||||
// array(
|
||||
// 'name' => 'SYS_LANG',
|
||||
// 'type' => 'hidden'
|
||||
// ),
|
||||
// array(
|
||||
// 'name' => 'ABE_EMAIL_FIELD_VALUE',
|
||||
// 'type' => 'hidden'
|
||||
// ),
|
||||
// array(
|
||||
// 'name' => 'ABE_ACTION_FIELD_VALUE',
|
||||
// 'type' => 'hidden'
|
||||
// ),
|
||||
array(
|
||||
'name' => 'ABE_TYPE',
|
||||
'label' => 'Type',
|
||||
'type' => 'dropdown',
|
||||
'options' => array(
|
||||
array(
|
||||
'label' => '- None -',
|
||||
'value' => '',
|
||||
'type' => 'default'
|
||||
),
|
||||
array(
|
||||
'label' => 'Link to fill a form',
|
||||
'value' => 'LINK',
|
||||
),
|
||||
array(
|
||||
'label' => 'Use a field to generate actions links',
|
||||
'value' => 'FIELD',
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'name' => 'ABE_TEMPLATE',
|
||||
'label' => 'Template',
|
||||
'type' => 'dropdown',
|
||||
'data_source' => array(
|
||||
'type' => 'REST',
|
||||
'method' => 'GET',
|
||||
'end_point' => '/ActionsByEmail/Templates',
|
||||
'parameters' => array()
|
||||
),
|
||||
'options' => array(
|
||||
array(
|
||||
'value' => '',
|
||||
'label' => '- Select a Template -',
|
||||
'type' => 'default'
|
||||
)
|
||||
)
|
||||
),
|
||||
// array(
|
||||
// 'name' => 'EDIT',
|
||||
// 'type' => 'link',
|
||||
// 'value' => 'Edit',
|
||||
// 'action' => array(
|
||||
// 'type' => 'view-render',
|
||||
// 'data_source' => array(
|
||||
// 'type' => 'REST',
|
||||
// 'method' => 'GET',
|
||||
// 'end_point' => '/ActionsByEmail/Templates/editTemplate',
|
||||
// 'parameters' => array('ABE_TEMPLATE')
|
||||
// )
|
||||
// )
|
||||
// ),
|
||||
array(
|
||||
'name' => 'DYN_UID',
|
||||
'label' => 'Dynaform',
|
||||
'value' => 'DYN_UID',
|
||||
'type' => 'dropdown',
|
||||
'data_source' => array(
|
||||
'type' => 'REST',
|
||||
'method' => 'GET',
|
||||
'end_point' => '/project/{prj_uid}/dynaforms',
|
||||
'parameters' => array()
|
||||
),
|
||||
'options' => array(
|
||||
array(
|
||||
'value' => '',
|
||||
'label' => '- Select a Dynaform -',
|
||||
'type' => 'default'
|
||||
)
|
||||
),
|
||||
'events' => array(
|
||||
'change' => array(
|
||||
'listeners' => array('email-field', 'action-field')
|
||||
)
|
||||
),
|
||||
),
|
||||
array(
|
||||
'name' => 'ABE_EMAIL_FIELD',
|
||||
'value' => 'ABE_EMAIL_FIELD',
|
||||
'label' => 'Field with the email',
|
||||
'type' => 'dropdown',
|
||||
'options' => array(
|
||||
array(
|
||||
'value' => '',
|
||||
'label' => '- Send to the email of the assigned user to the task -',
|
||||
'type' => 'default'
|
||||
)
|
||||
),
|
||||
'listeners' => array(
|
||||
array(
|
||||
'name' => 'email-field',
|
||||
'action' => array(
|
||||
'type' => 'field-render',
|
||||
'data_source' => array(
|
||||
'type' => 'REST',
|
||||
'method' => 'GET',
|
||||
'end_point' => '/project/{prj_uid}/dynaform/{dyn_uid}/fields',
|
||||
'parameters' => array()
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'name' => 'ABE_ACTION_FIELD',
|
||||
'value' => 'ABE_ACTION_FIELD',
|
||||
'label' => 'Field to Send in the Email',
|
||||
'type' => 'dropdown',
|
||||
'options' => array(
|
||||
array(
|
||||
'value' => '',
|
||||
'label' => '- Select a Field -',
|
||||
'type' => 'default'
|
||||
)
|
||||
),
|
||||
'listeners' => array(
|
||||
'name' => 'action-field',
|
||||
'action' => array(
|
||||
'type' => 'field-render',
|
||||
'data_source' => array(
|
||||
'type' => 'REST',
|
||||
'method' => 'GET',
|
||||
'end_point' => '/project/:prj_uid/dynaform/:dyn_uid/fields',
|
||||
'parameters' => array()
|
||||
)
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'name' => 'ABE_CASE_NOTE_IN_RESPONSE',
|
||||
'type' => 'checkbox',
|
||||
'labelVisible' => false,
|
||||
'options' => array(
|
||||
array(
|
||||
'id' => 'formTimingControlOption',
|
||||
'label' => 'Register a Case Note when the recipient submits the Response',
|
||||
'value' => '1'
|
||||
)
|
||||
)
|
||||
),
|
||||
// array(
|
||||
// 'name' => 'APPLY_CHANGES',
|
||||
// 'type' => 'button',
|
||||
// 'label' => 'Apply Changes',
|
||||
// 'value' => 'APPLY_CHANGES',
|
||||
// 'action' => array(
|
||||
// 'type' => 'view-close',
|
||||
// 'data_source' => array(
|
||||
// 'type' => 'REST',
|
||||
// 'method' => 'POST',
|
||||
// 'end_point' => '/ActionsByEmail/saveConfiguration',
|
||||
// 'parameters' => array('_ALL')
|
||||
// )
|
||||
// )
|
||||
// ),
|
||||
// array(
|
||||
// 'name' => 'REQUIRED_LABEL',
|
||||
// 'type' => 'label',
|
||||
// 'label' => 'Required Field',
|
||||
// 'value' => 'REQUIRED_LABEL'
|
||||
// )
|
||||
)
|
||||
);
|
||||
return $view;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -74,15 +74,22 @@ class Activity extends Api
|
||||
*/
|
||||
public function doGetProjectActivityFeatureConfiguration($pro_uid, $tas_uid, $filter = '')
|
||||
{
|
||||
|
||||
try {
|
||||
$featureHandler = new \Features\FeaturesHandler();
|
||||
$configuration = $featureHandler->loadConfiguration(array(
|
||||
'type' => 'activity',
|
||||
'form' => 'configuration',
|
||||
'PRO_UID' => $pro_uid,
|
||||
'TAS_UID' => $tas_uid
|
||||
));
|
||||
return $configuration;
|
||||
$configurations = array();
|
||||
if (PMLicensedFeatures
|
||||
::getSingleton()
|
||||
->verifyfeature('zLhSk5TeEQrNFI2RXFEVktyUGpnczV1WEJNWVp6cjYxbTU3R29mVXVZNWhZQT0=')) {
|
||||
$params = array(
|
||||
'type' => 'activity',
|
||||
'form' => 'configuration',
|
||||
'PRO_UID' => $pro_uid,
|
||||
'TAS_UID' => $tas_uid
|
||||
);
|
||||
$actionsByEmailService = new \Features\ActionsByEmail\ActionsByEmailService();
|
||||
$configurations[] = $actionsByEmailService->loadConfiguration($params);
|
||||
}
|
||||
return $configurations;
|
||||
} catch (\Exception $e) {
|
||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||
}
|
||||
@@ -110,8 +117,12 @@ class Activity extends Api
|
||||
$properties = $task->updateProperties($prj_uid, $act_uid, $request_data);
|
||||
|
||||
/*----------------------------------********---------------------------------*/
|
||||
$featureHandler = new \Features\FeaturesHandler();
|
||||
$featureHandler->saveConfiguration($request_data['properties']['_features']);
|
||||
if (PMLicensedFeatures
|
||||
::getSingleton()
|
||||
->verifyfeature('zLhSk5TeEQrNFI2RXFEVktyUGpnczV1WEJNWVp6cjYxbTU3R29mVXVZNWhZQT0=')) {
|
||||
$actionsByEmailService = new \Features\ActionsByEmail\ActionsByEmailService();
|
||||
$actionsByEmailService->saveConfiguration($request_data['properties']['_features']);
|
||||
}
|
||||
/*----------------------------------********---------------------------------*/
|
||||
} catch (\Exception $e) {
|
||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||
|
||||
Reference in New Issue
Block a user