Merged in paulis/processmaker/HOR-2282-A (pull request #5208)

HOR-2282
This commit is contained in:
Paula Quispe
2016-12-06 21:53:50 +00:00
13 changed files with 236 additions and 12 deletions

View File

@@ -141,7 +141,7 @@ class Derivation
$arrayTaskData["NEXT_TASK"]["TAS_PARENT"] = "";
}
$regexpTaskTypeToExclude = "GATEWAYTOGATEWAY|END-MESSAGE-EVENT|SCRIPT-TASK|INTERMEDIATE-CATCH-TIMER-EVENT|INTERMEDIATE-THROW-MESSAGE-EVENT|END-EMAIL-EVENT|INTERMEDIATE-THROW-EMAIL-EVENT|INTERMEDIATE-CATCH-MESSAGE-EVENT";
$regexpTaskTypeToExclude = "GATEWAYTOGATEWAY|END-MESSAGE-EVENT|SCRIPT-TASK|SERVICE-TASK|INTERMEDIATE-CATCH-TIMER-EVENT|INTERMEDIATE-THROW-MESSAGE-EVENT|END-EMAIL-EVENT|INTERMEDIATE-THROW-EMAIL-EVENT|INTERMEDIATE-CATCH-MESSAGE-EVENT";
$arrayTaskData["NEXT_TASK"]["USER_ASSIGNED"] = (!preg_match("/^(?:" . $regexpTaskTypeToExclude . ")$/", $arrayTaskData["NEXT_TASK"]["TAS_TYPE"]))? $this->getNextAssignedUser($arrayTaskData) : array("USR_UID" => "", "USR_FULLNAME" => "");
}
@@ -1099,6 +1099,10 @@ class Derivation
}
break;
}
//Execute Service Task
if (function_exists('executeServiceTaskByActivityUid')) {
$appFields["APP_DATA"] = executeServiceTaskByActivityUid($nextDel["TAS_UID"], $appFields);
}
//Execute Script-Task
$scriptTask = new \ProcessMaker\BusinessModel\ScriptTask();
@@ -1106,7 +1110,7 @@ class Derivation
$appFields["APP_DATA"] = $scriptTask->execScriptByActivityUid($nextDel["TAS_UID"], $appFields);
//Create record in table APP_ASSIGN_SELF_SERVICE_VALUE
$regexpTaskTypeToExclude = "SCRIPT-TASK|INTERMEDIATE-THROW-EMAIL-EVENT";
$regexpTaskTypeToExclude = "SCRIPT-TASK|INTERMEDIATE-THROW-EMAIL-EVENT|SERVICE-TASK";
if (!is_null($taskNextDel) && !preg_match("/^(?:" . $regexpTaskTypeToExclude . ")$/", $taskNextDel->getTasType())) {
if ($taskNextDel->getTasAssignType() == "SELF_SERVICE" && trim($taskNextDel->getTasGroupVariable()) != "") {
@@ -1126,7 +1130,7 @@ class Derivation
}
//Check if $taskNextDel is Script-Task
if (!is_null($taskNextDel) && ($taskNextDel->getTasType() === "SCRIPT-TASK" || $taskNextDel->getTasType() === "INTERMEDIATE-THROW-EMAIL-EVENT" || $taskNextDel->getTasType() === "INTERMEDIATE-THROW-MESSAGE-EVENT")) {
if (!is_null($taskNextDel) && ($taskNextDel->getTasType() === "SCRIPT-TASK" || $taskNextDel->getTasType() === "INTERMEDIATE-THROW-EMAIL-EVENT" || $taskNextDel->getTasType() === "INTERMEDIATE-THROW-MESSAGE-EVENT" || $taskNextDel->getTasType() === "SERVICE-TASK")) {
//Get for $nextDel["TAS_UID"] your next Task
$currentDelegationAux = array_merge($currentDelegation, array("DEL_INDEX" => $iNewDelIndex, "TAS_UID" => $nextDel["TAS_UID"]));
$nextDelegationsAux = array();

View File

@@ -396,7 +396,7 @@ class PMPlugin
throw $e;
}
}
/**
* Changes the menu properties from the given processmaker section and menu id
*
@@ -415,7 +415,7 @@ class PMPlugin
throw $e;
}
}
/**
* callBack File after import process
*
@@ -449,6 +449,49 @@ class PMPlugin
throw $e;
}
}
/**
* Path registry to file js or css.
* @param type $pathFile
* @param string $scope
* @throws Exception
*/
public function registerDesignerSourcePath($pathFile, $scope = null)
{
if ($scope === null) {
$scope = '/plugin/' . $this->sNamespace . '/';
}
try {
$pluginRegistry = &PMPluginRegistry::getSingleton();
$pluginRegistry->registerDesignerSourcePath($this->sNamespace, $scope . $pathFile);
} catch (Exception $e) {
throw $e;
}
}
/**
* Enable build js or css into build.json paths.
* @param type $sourcePath
*/
public function enableExtensionSources($sourcePath = 'config/build.json')
{
$path = PATH_PLUGINS . $this->sPluginFolder . "/";
$buildFile = $path . $sourcePath;
if (is_file($buildFile)) {
$buildObjects = G::json_decode(file_get_contents($buildFile));
foreach ($buildObjects as $item) {
$item->path = $path . rtrim($item->path, "/\\");
$extensionPath = "extension-" . $item->name . "-" . G::browserCacheFilesGetUid() . "." . $item->extension;
$file = $path . "public_html/" . $extensionPath;
@file_put_contents($file, "", LOCK_EX);
foreach ($item->files as $name) {
@file_put_contents($file, file_get_contents($item->path . "/" . $name), FILE_APPEND | LOCK_EX);
}
$this->registerDesignerSourcePath($extensionPath);
}
}
}
}
class menuDetail

View File

@@ -105,6 +105,7 @@ class PMPluginRegistry
private $_aMenuOptionsToReplace = array ();
private $_aImportProcessCallbackFile = array ();
private $_aOpenReassignCallback = array ();
private $_arrayDesignerSourcePath = array();
/**
* Registry a plugin javascript to include with js core at same runtime
@@ -408,6 +409,12 @@ class PMPluginRegistry
unset($this->_arrayDesignerMenu[$key]);
}
}
foreach ($this->_arrayDesignerSourcePath as $key => $detail) {
if ($detail->pluginName == $sNamespace) {
unset($this->_arrayDesignerSourcePath[$key]);
}
}
if(sizeof( $this->_aMenuOptionsToReplace )){
unset( $this->_aMenuOptionsToReplace );
@@ -1849,4 +1856,50 @@ class PMPluginRegistry
}
return $enabledPlugins;
}
/**
* Registry in an array routes for js or css files.
* @param type $pluginName
* @param type $pathFile
* @throws Exception
*/
public function registerDesignerSourcePath($pluginName, $pathFile)
{
try {
$flagFound = false;
foreach ($this->_arrayDesignerSourcePath as $value) {
if ($value->pluginName == $pluginName && $value->pathFile == $pathFile) {
$flagFound = true;
break;
}
}
if (!$flagFound) {
$obj = new stdClass();
$obj->pluginName = $pluginName;
$obj->pathFile = $pathFile;
$this->_arrayDesignerSourcePath[] = $obj;
}
} catch (Exception $e) {
throw $e;
}
}
/**
* You obtain an array containing the routes recorded by the
* function registerDesignerSourcePath.
* @return type
* @throws Exception
*/
public function getDesignerSourcePath()
{
try {
return $this->_arrayDesignerSourcePath;
} catch (Exception $e) {
throw $e;
}
}
}

View File

@@ -195,7 +195,7 @@ class TaskMapBuilder
$tMap->addColumn('TAS_RECEIVE_MESSAGE', 'TasReceiveMessage', 'string', CreoleTypes::LONGVARCHAR, false, null);
$tMap->addValidator('TAS_TYPE', 'validValues', 'propel.validator.ValidValuesValidator', 'NORMAL|ADHOC|SUBPROCESS|HIDDEN|GATEWAYTOGATEWAY|WEBENTRYEVENT|END-MESSAGE-EVENT|START-MESSAGE-EVENT|INTERMEDIATE-THROW-MESSAGE-EVENT|INTERMEDIATE-CATCH-MESSAGE-EVENT|SCRIPT-TASK|START-TIMER-EVENT|INTERMEDIATE-CATCH-TIMER-EVENT|END-EMAIL-EVENT|INTERMEDIATE-THROW-EMAIL-EVENT', 'Please set a valid value for TAS_TYPE');
$tMap->addValidator('TAS_TYPE', 'validValues', 'propel.validator.ValidValuesValidator', 'NORMAL|ADHOC|SUBPROCESS|HIDDEN|GATEWAYTOGATEWAY|WEBENTRYEVENT|END-MESSAGE-EVENT|START-MESSAGE-EVENT|INTERMEDIATE-THROW-MESSAGE-EVENT|INTERMEDIATE-CATCH-MESSAGE-EVENT|SCRIPT-TASK|START-TIMER-EVENT|INTERMEDIATE-CATCH-TIMER-EVENT|END-EMAIL-EVENT|INTERMEDIATE-THROW-EMAIL-EVENT|SERVICE-TASK', 'Please set a valid value for TAS_TYPE');
$tMap->addValidator('TAS_TIMEUNIT', 'validValues', 'propel.validator.ValidValuesValidator', 'MINUTES|HOURS|DAYS|WEEKS|MONTHS', 'Please select a valid value for TAS_TIMEUNIT.');