* Date: 01.03.14 17:57
* You must not use this file without permission.
*/
namespace Workflow\Preset;
use Workflow\ComplexeCondition;
use Workflow\VTEntity;
use \Workflow\VtUtils;
class Condition extends \Workflow\Preset
{
public function beforeSave($data) {
$field = $this->field;
if(!empty($data[$field])) {
$data[$field] = $this->createChilds($data[$field]);
}
return $data;
}
private $_ConditionObj = null;
/**
* @return null|ComplexeCondition
*/
public function getConditionObj() {
if($this->_ConditionObj === null) {
if(empty($this->parameter['fromModule']) && !empty($this->workflow)) {
$workflowSettings = $this->workflow->getSettings();
$this->parameter['fromModule'] = $workflowSettings["module_name"];
}
$this->_ConditionObj = new ComplexeCondition($this->field, $this->parameter);
$this->_ConditionObj->setEnvironmentVariables(!empty($this->workflow)&&is_object($this->workflow)?$this->workflow->getEnvironmentVariables():array());
}
return $this->_ConditionObj;
}
public function clearCondition() {
$this->_task->set($this->field, array());
}
public function beforeGetTaskform($transferData) {
$condObj = $this->getConditionObj();
list($data, $viewer) = $transferData;
$condObj->setCondition($data[$this->field]);
$this->addInlineJS($condObj->getJavaScript());
if(!empty($this->parameter['templatefield'])) {
$viewer->assign($this->parameter['templatefield'], $condObj->getHTMLContent());
} else {
$viewer->assign("conditionalContent", $condObj->getHTMLContent());
}
//$condObj->InitViewer($data, $viewer);
//$start = microtime(true);
/*
$field = $this->field;
$moduleModel = \Vtiger_Module_Model::getInstance("Workflow2");
if(isset($this->parameter['enableHasChanged'])) {
$enableHasChanged = !empty($this->parameter['enableHasChanged']);
} else {
$enableHasChanged = true;
}
if(empty($this->parameter['mode'])) {
$this->parameter['mode'] = 'field';
}
if(isset($this->parameter['fromModule'])) {
$fromModule = $this->parameter['fromModule'];
} else {
$workflowSettings = $this->workflow->getSettings();
$fromModule = $workflowSettings["module_name"];
}
if(isset($this->parameter['toModule'])) {
$toModule = $this->parameter['toModule'];
} else {
$toModule = $fromModule;
}
$availCurrency = getAllCurrencies();
$availUser = array('user' => array(), 'group' => array());
$adb = \PearDatabase::getInstance();
$sql = "SELECT id FROM vtiger_ws_entity WHERE name = 'Users'";
$result = $adb->query($sql);
$wsTabId = $adb->query_result($result, 0, "id");
$sql = "SELECT id,user_name,first_name,last_name FROM vtiger_users WHERE status = 'Active'";
$result = $adb->query($sql);
while($user = $adb->fetchByAssoc($result)) {
$user["id"] = $user["id"];
$availUser["user"][$user["id"]] = $user["user_name"]." (".$user["last_name"].", ".$user["first_name"].")";
}
$sql = "SELECT id FROM vtiger_ws_entity WHERE name = 'Groups'";
$result = $adb->query($sql);
$wsTabId = $adb->query_result($result, 0, "id");
$sql = "SELECT * FROM vtiger_groups ORDER BY groupname";
$result = $adb->query($sql);
while($group = $adb->fetchByAssoc($result)) {
$group["groupid"] = $group["groupid"];
$availUser["group"][$group["groupid"]] = $group["groupname"];
}
$containerName = 'conditional_container';
if(!empty($this->parameter['container'])) {
$containerName = $this->parameter['container'];
}
$conditionals = $data[$field];
//$viewer->assign("conditional", ;
//$viewer->assign("fromModule", $fromModule);
//$viewer->assign("toModule", $toModule);
//echo 'C'.__LINE__.': '.(microtime(true) - $start).'
';
if(isset($this->parameter['references'])) {
$references = $this->parameter['references'] == true ? true : false;
} else {
$references = true;
}
$moduleFields = VtUtils::getFieldsWithBlocksForModule($toModule, $references);
// echo 'C2: '.(microtime(true) - $start).'
'.md5(serialize($moduleFields)); //10087a7ada61d0798154110be20a9c39
//exit();
//$describe = VtUtils::describeModule($toModule, true);
//$viewer->assign("describe", $moduleFields);
$viewer->assign("conditionalContent", '
