%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/activities/bitrix/setstatetitleactivity/ |
| Current File : /home/bitrix/www/bitrix/activities/bitrix/setstatetitleactivity/setstatetitleactivity.php |
<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
class CBPSetStateTitleActivity
extends CBPActivity
{
public function __construct($name)
{
parent::__construct($name);
$this->arProperties = array("Title" => "", "TargetStateTitle" => "");
}
public function Execute()
{
$rootActivity = $this->GetRootActivity();
$stateService = $this->workflow->GetService("StateService");
if($rootActivity instanceof CBPStateMachineWorkflowActivity)
{
$arState = $stateService->GetWorkflowState($this->GetWorkflowInstanceId());
$arActivities = $rootActivity->CollectNestedActivities();
foreach($arActivities as $activity)
if($activity->GetName() == $arState["STATE_NAME"])
break;
$stateService->SetStateTitle(
$this->GetWorkflowInstanceId(),
$activity->Title.($this->TargetStateTitle!=''?": ".$this->TargetStateTitle:'')
);
}
else
{
if($this->TargetStateTitle!='')
{
$stateService->SetStateTitle(
$this->GetWorkflowInstanceId(),
$this->TargetStateTitle
);
$rootActivity->SetCustomStatusMode();
}
}
return CBPActivityExecutionStatus::Closed;
}
public static function ValidateProperties($arTestProperties = array(), CBPWorkflowTemplateUser $user = null)
{
$arErrors = array();
/*
if (strlen($arTestProperties["TargetStateTitle"]) <= 0)
{
$arErrors[] = array("code" => "emptyState", "parameter" => "TargetStateTitle", "message" => "Bad target state.");
}
*/
return array_merge($arErrors, parent::ValidateProperties($arTestProperties, $user));
}
public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = null, $formName = "")
{
$runtime = CBPRuntime::GetRuntime();
if (!is_array($arCurrentValues))
{
$arCurrentActivity = &CBPWorkflowTemplateLoader::FindActivityByName($arWorkflowTemplate, $activityName);
if (is_array($arCurrentActivity["Properties"]) && array_key_exists("TargetStateTitle", $arCurrentActivity["Properties"]))
$arCurrentValues["target_state_title"] = $arCurrentActivity["Properties"]["TargetStateTitle"];
}
return $runtime->ExecuteResourceFile(
__FILE__,
"properties_dialog.php",
array(
"arCurrentValues" => $arCurrentValues,
)
);
}
public static function GetPropertiesDialogValues($documentType, $activityName, &$arWorkflowTemplate, &$arWorkflowParameters, &$arWorkflowVariables, $arCurrentValues, &$arErrors)
{
$arErrors = array();
$runtime = CBPRuntime::GetRuntime();
$arProperties = array("TargetStateTitle" => $arCurrentValues["target_state_title"]);
$arErrors = self::ValidateProperties($arProperties, new CBPWorkflowTemplateUser(CBPWorkflowTemplateUser::CurrentUser));
if (count($arErrors) > 0)
return false;
$arCurrentActivity = &CBPWorkflowTemplateLoader::FindActivityByName($arWorkflowTemplate, $activityName);
$arCurrentActivity["Properties"] = $arProperties;
return true;
}
}
?>