Merge remote branch 'upstream/master'

This commit is contained in:
jennylee
2014-04-29 12:22:37 -04:00
12 changed files with 246 additions and 81 deletions

View File

@@ -33,7 +33,7 @@ class WebApplication
*/
public function setRootDir($rootDir)
{
$this->rootDir = $rootDir;
$this->rootDir = rtrim($rootDir, DS);
$this->workflowDir = $rootDir . DS . "workflow" . DS;
}
@@ -160,7 +160,7 @@ class WebApplication
*/
header('Access-Control-Allow-Origin: *');
require_once $this->rootDir . "framework/src/Maveriks/Extension/Restler/UploadFormat.php";
require_once $this->rootDir . "/framework/src/Maveriks/Extension/Restler/UploadFormat.php";
// $servicesDir contains directory where Services Classes are allocated
$servicesDir = $this->workflowDir . 'engine' . DS . 'src' . DS . 'ProcessMaker' . DS . 'Services' . DS;
@@ -383,7 +383,7 @@ class WebApplication
PATH_RBAC_CORE . PATH_SEPARATOR .
get_include_path()
);
///print_r(get_include_path()); die;
/*
* Setting Up Workspace

View File

@@ -31,8 +31,7 @@
require_once 'classes/model/om/BaseRbacUsersPeer.php';
// include object class
include_once 'classes/model/RbacUsers.php';
//include_once 'classes/model/RbacUsers.php';
/**
* Skeleton subclass for performing query and update operations on the 'USERS' table.

View File

@@ -30,7 +30,7 @@
require_once 'classes/model/om/BaseUsersRolesPeer.php';
// include object class
include_once 'classes/model/UsersRoles.php';
//include_once 'classes/model/UsersRoles.php';
/**

View File

@@ -3,7 +3,7 @@
require_once 'propel/util/BasePeer.php';
// The object class -- needed for instanceof checks in this class.
// actual class may be a subclass -- as returned by RbacUsersPeer::getOMClass()
include_once 'classes/model/RbacUsers.php';
//include_once 'classes/model/RbacUsers.php';
/**
* Base static class for performing query and update operations on the 'USERS' table.

View File

@@ -3,7 +3,7 @@
require_once 'propel/util/BasePeer.php';
// The object class -- needed for instanceof checks in this class.
// actual class may be a subclass -- as returned by UsersRolesPeer::getOMClass()
include_once 'classes/model/UsersRoles.php';
//include_once 'classes/model/UsersRoles.php';
/**
* Base static class for performing query and update operations on the 'USERS_ROLES' table.

View File

@@ -1269,7 +1269,12 @@ class adminProxy extends HttpProxyController
$data = array('info' => array());
$pmRestClient = OauthClientsPeer::retrieveByPK('x-pm-local-client');
$status = ! empty($pmRestClient);
$row = $pmRestClient->toArray(BasePeer::TYPE_FIELDNAME);
if ($status) {
$row = $pmRestClient->toArray(BasePeer::TYPE_FIELDNAME);
} else {
$row = array("CLIENT_ID" => '');
}
$data['info'] = array(
array(

View File

@@ -456,7 +456,7 @@ class Table
public function saveTableData ($pmt_uid, $pmt_data)
{
$pmt_uid = $this->validateTabUid($pmt_uid, false);
$rows = $pmt_data['pmt_rows'];
$rows = $pmt_data;
$additionalTables = new AdditionalTables();
$table = $additionalTables->load($pmt_uid, true);
@@ -570,7 +570,7 @@ class Table
public function updateTableData($pmt_uid, $pmt_data)
{
$pmt_uid = $this->validateTabUid($pmt_uid, false);
$rows = $pmt_data['pmt_rows'];
$rows = $pmt_data;
$rows = array_merge( array_change_key_case( $rows, CASE_LOWER ), array_change_key_case( $rows, CASE_UPPER ) );
$oAdditionalTables = new AdditionalTables();

View File

@@ -226,6 +226,18 @@ class BpmnWorkflow extends Project\Bpmn
if ($event && $event->getEvnType() == "START") {
$this->wp->setStartTask($data["FLO_ELEMENT_DEST"]);
}
// update case scheduler
if ($event && $event->getEvnType() == "START" && $event->getEvnMarker() == "TIMER") {
$aData = array('TAS_UID'=>$data["FLO_ELEMENT_DEST"], 'SCH_UID'=>$data["FLO_ELEMENT_ORIGIN"]);
$this->wp->updateCaseScheduler($aData);
}
// update web entry
if ($event && $event->getEvnType() == "START" && $event->getEvnMarker() == "MESSAGE") {
$aData = array('TAS_UID'=>$data["FLO_ELEMENT_DEST"], 'WE_UID'=>$data["FLO_ELEMENT_ORIGIN"]);
$this->wp->updateWebEntry($aData);
}
break;
}
break;
@@ -271,6 +283,25 @@ class BpmnWorkflow extends Project\Bpmn
$this->wp->setStartTask($activity->getActUid(), false);
}
}
// update case scheduler
if (! is_null($event) && $event->getEvnType() == "START" && $event->getEvnMarker() == "TIMER") {
$aData = array(
'TAS_UID'=>'',
'SCH_UID'=>$flow->getFloElementOrigin()
);
$this->wp->updateCaseScheduler($aData);
}
// update web entry
if (! is_null($event) && $event->getEvnType() == "START" && $event->getEvnMarker() == "MESSAGE") {
$aData = array(
'TAS_UID'=>'',
'WE_UID'=>$flow->getFloElementOrigin()
);
$this->wp->updateWebEntry($aData);
}
} elseif ($flow->getFloElementOriginType() == "bpmnActivity" &&
$flow->getFloElementDestType() == "bpmnEvent") {
// verify case: activity -> event(end)
@@ -306,7 +337,38 @@ class BpmnWorkflow extends Project\Bpmn
throw new \RuntimeException("Required param \"EVN_TYPE\" is missing.");
}
return parent::addEvent($data);
$eventUid = parent::addEvent($data);
$event = \BpmnEventPeer::retrieveByPK($eventUid);
// create case scheduler
if ($event && $event->getEvnMarker() == "TIMER" && $event->getEvnType() == "START") {
$this->wp->addCaseScheduler($eventUid);
}
// create web entry
if ($event && $event->getEvnMarker() == "MESSAGE" && $event->getEvnType() == "START") {
$this->wp->addWebEntry($eventUid);
}
return $eventUid;
}
public function removeEvent($data)
{
$event = \BpmnEventPeer::retrieveByPK($data);
// delete case scheduler
if ($event && $event->getEvnMarker() == "TIMER" && $event->getEvnType() == "START") {
$this->wp->removeCaseScheduler($data);
}
// delete web entry
if ($event && $event->getEvnMarker() == "MESSAGE" && $event->getEvnType() == "START") {
$this->wp->removeWebEntry($data);
}
parent::removeEvent($data);
}
public function mapBpmnFlowsToWorkflowRoutes()

View File

@@ -580,9 +580,10 @@ class Bpmn extends Handler
case "bpmnActivity": $class = "BpmnActivity"; break;
case "bpmnGateway": $class = "BpmnGateway"; break;
case "bpmnEvent": $class = "BpmnEvent"; break;
case "bpmnArtifact": $class = "BpmnArtifact"; break;
default:
throw new \RuntimeException(sprintf("Invalid Object type, accepted types: [%s|%s|%s], given %s.",
"BpmnActivity", "BpmnBpmnGateway", "BpmnEvent", $data["FLO_ELEMENT_ORIGIN_TYPE"]
throw new \RuntimeException(sprintf("Invalid Object type, accepted types: [%s|%s|%s|%s], given %s.",
"BpmnActivity", "BpmnBpmnGateway", "BpmnEvent", "bpmnArtifact", $data["FLO_ELEMENT_ORIGIN_TYPE"]
));
}
@@ -597,9 +598,10 @@ class Bpmn extends Handler
case "bpmnActivity": $class = "BpmnActivity"; break;
case "bpmnGateway": $class = "BpmnGateway"; break;
case "bpmnEvent": $class = "BpmnEvent"; break;
case "bpmnArtifact": $class = "BpmnArtifact"; break;
default:
throw new \RuntimeException(sprintf("Invalid Object type, accepted types: [%s|%s|%s], given %s.",
"BpmnActivity", "BpmnBpmnGateway", "BpmnEvent", $data["FLO_ELEMENT_DEST_TYPE"]
throw new \RuntimeException(sprintf("Invalid Object type, accepted types: [%s|%s|%s|%s], given %s.",
"BpmnActivity", "BpmnBpmnGateway", "BpmnEvent", "bpmnArtifact", $data["FLO_ELEMENT_DEST_TYPE"]
));
}

View File

@@ -771,4 +771,120 @@ class Workflow extends Handler
$status = $value ? "DISABLED" : "ACTIVE";
$this->update(array("PRO_STATUS" => $status));
}
public function addCaseScheduler($schUid)
{
try {
$caseScheduler = new \CaseScheduler();
$data = array(
'SCH_NAME'=>'',
'SCH_DEL_USER_NAME'=>'',
'SCH_DEL_USER_UID'=>'',
'PRO_UID'=>$this->proUid,
'TAS_UID'=>'',
'SCH_TIME_NEXT_RUN'=>date('Y-m-d H:i:s'),
'SCH_LAST_RUN_TIME'=>NULL,
'SCH_STATE'=>'',
'SCH_LAST_STATE'=>'',
'USR_UID'=>'',
'SCH_OPTION'=>'',
'SCH_START_TIME'=>date('Y-m-d H:i:s'),
'SCH_START_DATE'=>date('Y-m-d H:i:s'),
'SCH_DAYS_PERFORM_TASK'=>'',
'SCH_EVERY_DAYS'=>NULL,
'SCH_WEEK_DAYS'=>'',
'SCH_START_DAY'=>'',
'SCH_START_DAY_OPT_1'=>'',
'SCH_START_DAY_OPT_2'=>'',
'SCH_MONTHS'=>'',
'SCH_END_DATE'=>date('Y-m-d H:i:s'),
'SCH_REPEAT_EVERY'=>'',
'SCH_REPEAT_STOP_IF_RUNNING'=>'',
'CASE_SH_PLUGIN_UID'=>NULL,
'SCH_DEL_USER_PASS'=>'',
'SCH_UID'=>$schUid,
'SCH_REPEAT_UNTIL'=>''
);
self::log("Adding Case Scheduler with data: ", $data);
$caseSchedulerUid = $caseScheduler->create($data);
self::log("Adding Case Scheduler success!, created case Scheduler id: ", $caseSchedulerUid);
return $caseSchedulerUid;
} catch (\Exception $oError) {
throw ($oError);
}
}
public function removeCaseScheduler($schUid)
{
try {
$caseScheduler = new \CaseScheduler();
self::log("Remove Case Scheduler: ".$schUid);
$caseScheduler->remove($schUid);
self::log("Remove Case Scheduler Success!");
} catch (\Exception $e) {
self::log("Exception: ", $e->getMessage(), "Trace: ", $e->getTraceAsString());
throw $e;
}
}
public function updateCaseScheduler($data)
{
try {
$caseScheduler = new \CaseScheduler();
$caseScheduler->update($data);
self::log("Update Case Scheduler Success!");
} catch (\Exception $e) {
self::log("Exception: ", $e->getMessage(), "Trace: ", $e->getTraceAsString());
throw $e;
}
}
public function addWebEntry($weUid)
{
try {
$webEntry = new \WebEntry();
$webEntryUid = $weUid;
$webEntry->setWeUid($webEntryUid);
$webEntry->setProUid($this->proUid);
$webEntry->setWeMethod('');
$webEntry->setWeCreateDate(date('Y-m-d H:i:s'));
$webEntry->save();
//Return
self::log("Adding Web Entry success!, created Web Entry id: ", $webEntryUid);
return $webEntryUid;
} catch (\Exception $oError) {
throw ($oError);
}
}
public function removeWebEntry($weUid)
{
try {
$webEntry = new \ProcessMaker\BusinessModel\WebEntry();
self::log("Remove Web Entry: ".$weUid);
$webEntry->delete($weUid);
self::log("Remove Web Entry Success!");
} catch (\Exception $e) {
self::log("Exception: ", $e->getMessage(), "Trace: ", $e->getTraceAsString());
throw $e;
}
}
public function updateWebEntry($data)
{
try {
$webEntryUid = $data['WE_UID'];
$webEntry = \WebEntryPeer::retrieveByPK($webEntryUid);
$webEntry->fromArray($data, \BasePeer::TYPE_FIELDNAME);
$webEntry->save();
self::log("Update Web Entry Success!");
} catch (\Exception $e) {
self::log("Exception: ", $e->getMessage(), "Trace: ", $e->getTraceAsString());
throw $e;
}
}
}

View File

@@ -103,7 +103,6 @@ class Pmtable extends Api
* @param string $pmt_uid {@min 1} {@max 32}
*
* @param array $request_data
* @param array $pmt_rows {@from body} {@required true}
* @return array
*
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
@@ -114,8 +113,7 @@ class Pmtable extends Api
*/
public function doPostPmTableData(
$pmt_uid,
$request_data,
$pmt_rows = ''
$request_data
) {
try {
$oReportTable = new \ProcessMaker\BusinessModel\Table();
@@ -130,7 +128,6 @@ class Pmtable extends Api
* @param string $pmt_uid {@min 1} {@max 32}
*
* @param array $request_data
* @param string $pmt_tab_dsc {@from body}
* @return void
*
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
@@ -140,8 +137,7 @@ class Pmtable extends Api
*/
public function doPutPmTable(
$pmt_uid,
$request_data,
$pmt_tab_dsc = ''
$request_data
) {
try {
$request_data['pmt_uid'] = $pmt_uid;
@@ -156,7 +152,6 @@ class Pmtable extends Api
* @param string $pmt_uid {@min 1} {@max 32}
*
* @param array $request_data
* @param array $pmt_rows {@from body} {@required true}
* @return array
*
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
@@ -166,8 +161,7 @@ class Pmtable extends Api
*/
public function doPutPmTableData(
$pmt_uid,
$request_data,
$pmt_rows = ''
$request_data
) {
try {
$oReportTable = new \ProcessMaker\BusinessModel\Table();