PM-2376: I completed actionsByEmail with Field in form

This commit is contained in:
Paula V. Quispe
2015-04-28 12:36:33 -04:00
parent d6a5668285
commit 7def8c7655
6 changed files with 75 additions and 11 deletions

View File

@@ -64,6 +64,18 @@ class actionsByEmailClass extends PMPlugin
$cases = new Cases();
$caseFields = $cases->loadCase($data->APP_UID);
$criteria = new Criteria();
$criteria->addSelectColumn(AbeConfigurationPeer::ABE_UID);
$criteria->addSelectColumn(AbeConfigurationPeer::PRO_UID);
$criteria->addSelectColumn(AbeConfigurationPeer::ABE_TYPE);
$criteria->addSelectColumn(AbeConfigurationPeer::TAS_UID);
$criteria->addSelectColumn(AbeConfigurationPeer::ABE_TEMPLATE);
$criteria->addSelectColumn(AbeConfigurationPeer::ABE_DYN_TYPE);
$criteria->addSelectColumn(AbeConfigurationPeer::DYN_UID);
$criteria->addSelectColumn(AbeConfigurationPeer::ABE_EMAIL_FIELD);
$criteria->addSelectColumn(AbeConfigurationPeer::ABE_ACTION_FIELD);
$criteria->addSelectColumn(AbeConfigurationPeer::ABE_SUBJECT_FIELD);
$criteria->addSelectColumn(DynaformPeer::DYN_CONTENT);
$criteria->addJoin( AbeConfigurationPeer::DYN_UID, DynaformPeer::DYN_UID, Criteria::LEFT_JOIN );
$criteria->add(AbeConfigurationPeer::PRO_UID, $caseFields['PRO_UID']);
$criteria->add(AbeConfigurationPeer::TAS_UID, $data->TAS_UID);
$result = AbeConfigurationPeer::doSelectRS($criteria);
@@ -136,19 +148,29 @@ class actionsByEmailClass extends PMPlugin
$field->type = 'dropdown';
$field->options = array();
$actionField = str_replace('@@', '', $configuration['ABE_ACTION_FIELD']);
foreach ($variables as $variable) {
if ($variable['var_name'] == $actionField) {
$field->label = $variable['var_name'];
$field->type = 'dropdown';
$values = json_decode($variable['var_accepted_values']);
foreach ($values as $value) {
$field->options[$value->keyValue] = $value->value;
$dynaform = $configuration['DYN_UID'];
$variables = G::json_decode($configuration['DYN_CONTENT'], true);
if(isset($variables['items'][0]['items'])){
$fields = $variables['items'][0]['items'];
foreach ($fields as $key => $value) {
foreach($value as $var){ G::pr($var);
if(isset($var['variable'])){
if ($var['variable'] == $actionField) {
$field->label = $var['label'];
$field->type = $var['type'];
$values = $var['options'];
foreach ($values as $val){
$field->options[$val['value']] = $val['value'];
}
}
}
}
}
}
G::LoadClass('pmDynaform');
$obj = new pmDynaform($configuration['DYN_UID']);
$file = $obj->printPmDynaformAbe($configuration['DYN_CONTENT']);
$__ABE__ .= '<strong>' . $field->label . '</strong><br /><table align="left" border="0"><tr>';
switch ($field->type) {
case 'dropdown':
case 'radiogroup':

View File

@@ -472,6 +472,17 @@ class pmDynaform
exit();
}
public function printPmDynaformAbe($content)
{
$this->record["DYN_CONTENT"] = $content;
$json = G::json_decode($this->record["DYN_CONTENT"]);
$this->jsonr($json);
$javascrip = "";
$file = file_get_contents(PATH_HOME . 'public_html/lib/pmdynaform/build/pmdynaform.html');
$file = str_replace("{javascript}", $javascrip, $file);
return $file;
}
public function synchronizeVariable($processUid, $newVariable, $oldVariable)
{
$criteria = new Criteria("workflow");

View File

@@ -177,6 +177,7 @@ class AppDelegation extends BaseAppDelegation
$data->APP_UID = $sAppUid;
$data->DEL_INDEX = $delIndex;
$data->USR_UID = $sUsrUid;
$data->PREVIOUS_USR_UID = $delPreviusUsrUid;
$oPluginRegistry = &PMPluginRegistry::getSingleton();
$oPluginRegistry->executeTriggers(PM_CREATE_NEW_DELEGATION, $data);

View File

@@ -6,7 +6,7 @@ if (PMLicensedFeatures
// since all the request parameters using this script are encrypted
// using the URL_KEY the probability of injecting any kind of code using
// this entry point are only possible knowing the aforementioned key.
switch (G::decrypt(urldecode(utf8_encode($_REQUEST['ACTION'])), URL_KEY)) {
switch (true) {
case 'processABE' :
$G_PUBLISH = new Publisher();
try {

View File

@@ -54,6 +54,7 @@ class ActionsByEmail
if ($configuration = $result->getRow()) {
$configuration['ABE_UID'] = $configuration['ABE_UID'];
$configuration['ABE_TYPE'] = $configuration['ABE_TYPE'];
$configuration['DYN_UID'] = $configuration['DYN_UID'];
$configuration['ABE_TEMPLATE'] = $configuration['ABE_TEMPLATE'];
$configuration['ABE_SUBJECT_FIELD'] = $configuration['ABE_SUBJECT_FIELD'];
$configuration['ABE_EMAIL_FIELD'] = $configuration['ABE_EMAIL_FIELD'];

View File

@@ -3,6 +3,12 @@ namespace ProcessMaker\Services\Api;
use \ProcessMaker\Services\Api;
use \Luracast\Restler\RestException;
use \G;
use \Smarty;
use \Criteria;
use \ResultSet;
use \DynaformPeer;
use \ContentPeer;
require_once 'classes/model/AbeConfiguration.php';
require_once 'classes/model/AbeRequests.php';
@@ -544,5 +550,28 @@ class ActionsByEmail extends Api
}
return $templates;
}
/**
*
* @url GET /Dynaforms/:proUid
*/
public function getDynaforms($proUid)
{
$criteria = new Criteria();
$criteria->addSelectColumn(DynaformPeer::DYN_UID);
$criteria->addSelectColumn(ContentPeer::CON_VALUE);
$criteria->addJoin( DynaformPeer::DYN_UID, ContentPeer::CON_ID, Criteria::LEFT_JOIN );
$criteria->add( DynaformPeer::PRO_UID, $proUid, Criteria::EQUAL );
$criteria->add( DynaformPeer::DYN_TYPE, 'xmlform', Criteria::EQUAL );
$criteria->add( ContentPeer::CON_CATEGORY, 'DYN_TITLE');
$criteria->add( ContentPeer::CON_LANG, SYS_LANG);
$dataset = DynaformPeer::doSelectRS($criteria);
$dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$dynaform = array();
while ($dataset->next()) {
$aRow = $dataset->getRow();
$dynaform[] = array('DYN_UID' => $aRow['DYN_UID'], 'DYN_NAME' => $aRow['CON_VALUE']);
}
return $dynaform;
}
}