Merged colosa/processmaker into master
This commit is contained in:
@@ -36,8 +36,9 @@ function uploadContentFile()
|
||||
$FileObject = $_FILES["upload_file"]; // find data on the file
|
||||
$DestPath = sys_get_temp_dir();
|
||||
$aux='';
|
||||
$cadena=str_replace ("\r\n","",file_get_contents(htmlentities($FileObject['tmp_name'])));
|
||||
updateEditorContent(trim($cadena));
|
||||
$chain=str_replace ("\r\n","",file_get_contents(htmlentities($FileObject['tmp_name'])));
|
||||
$chain=str_replace ('"',"'",$chain);
|
||||
updateEditorContent(trim($chain));
|
||||
closeWindow();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?php
|
||||
<?php
|
||||
/**
|
||||
* cliWorkspaces.php
|
||||
*
|
||||
@@ -199,6 +199,19 @@ EOT
|
||||
);
|
||||
CLI::taskArg("workspace-name", true, true);
|
||||
CLI::taskRun("run_check_workspace_disabled_code");
|
||||
|
||||
CLI::taskName('migrate-new-cases-lists');
|
||||
CLI::taskDescription(<<<EOT
|
||||
Migrating the list cases schema to match the latest version
|
||||
|
||||
Specify the WORKSPACE to migrate from a existing workspace.
|
||||
|
||||
If no workspace is specified, then the tables schema will be upgraded or
|
||||
migrate on all available workspaces.
|
||||
EOT
|
||||
);
|
||||
CLI::taskArg('workspace', true, true);
|
||||
CLI::taskRun("run_migrate_new_cases_lists");
|
||||
/*----------------------------------********---------------------------------*/
|
||||
|
||||
/**
|
||||
@@ -286,6 +299,10 @@ function run_database_check($args, $opts) {
|
||||
database_upgrade("check", $args);
|
||||
}
|
||||
|
||||
function run_migrate_new_cases_lists($args, $opts) {
|
||||
migrate_new_cases_lists("migrate", $args);
|
||||
}
|
||||
|
||||
function database_upgrade($command, $args) {
|
||||
$workspaces = get_workspaces_from_args($args);
|
||||
$checkOnly = (strcmp($command, "check") == 0);
|
||||
@@ -642,4 +659,39 @@ function run_check_workspace_disabled_code($args, $opts)
|
||||
echo CLI::error($e->getMessage()) . "\n";
|
||||
}
|
||||
}
|
||||
/*----------------------------------********---------------------------------*/
|
||||
|
||||
function migrate_new_cases_lists($command, $args) {
|
||||
$workspaces = get_workspaces_from_args($args);
|
||||
$checkOnly = (strcmp($command, "migrate") == 0);
|
||||
foreach ($workspaces as $workspace) {
|
||||
if ($checkOnly){
|
||||
print_r("Checking database in ".pakeColor::colorize($workspace->name, "INFO")."\n");
|
||||
} else {
|
||||
print_r("Upgrading database in ".pakeColor::colorize($workspace->name, "INFO")."\n");
|
||||
}
|
||||
try {
|
||||
$ws = $workspace->name;
|
||||
$sContent = file_get_contents (PATH_DB . $ws . PATH_SEP . 'db.php');
|
||||
if (strpos($sContent, 'rb_')) {
|
||||
$workspace->onedb = false;
|
||||
} else {
|
||||
$workspace->onedb = true;
|
||||
}
|
||||
//check if is the tables List are empty
|
||||
$changes = $workspace->listFirstExecution('check');
|
||||
if ($workspace->onedb && $changes != true) {
|
||||
$workspace->migrateList($workspace->name);
|
||||
}
|
||||
if ($changes) {
|
||||
if ($checkOnly) {
|
||||
echo "-> List tables are done\n";
|
||||
}
|
||||
} else {
|
||||
echo "> List tables are done\n";
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
echo "> Error: ".CLI::error($e->getMessage()) . "\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
/*----------------------------------********---------------------------------*/
|
||||
@@ -11,7 +11,6 @@ class pmDynaform
|
||||
{
|
||||
|
||||
public static $instance = null;
|
||||
private $debugMode = false;
|
||||
public $dyn_uid = null;
|
||||
public $record = null;
|
||||
public $app_data = null;
|
||||
@@ -88,17 +87,34 @@ class pmDynaform
|
||||
}
|
||||
}
|
||||
//query & options
|
||||
if ($key === "type" && ($value === "text" || $value === "textarea" || $value === "dropdown" || $value === "suggest" || $value === "checkbox" || $value === "radio")) {
|
||||
if ($key === "type" && ($value === "text" || $value === "textarea" || $value === "dropdown" || $value === "suggest" || $value === "checkbox" || $value === "radio" || $value === "datetime")) {
|
||||
if (!isset($json->data)) {
|
||||
$json->data = array(
|
||||
"value" => "",
|
||||
"label" => ""
|
||||
);
|
||||
}
|
||||
if (!isset($json->dbConnection))
|
||||
$json->dbConnection = "none";
|
||||
if (!isset($json->sql))
|
||||
$json->sql = "";
|
||||
if (!isset($json->options))
|
||||
$json->options = array();
|
||||
else {
|
||||
//convert stdClass to array
|
||||
$option = array();
|
||||
foreach ($json->options as $valueOptions) {
|
||||
array_push($option, array(
|
||||
"value" => $valueOptions->value,
|
||||
"label" => $valueOptions->label
|
||||
));
|
||||
}
|
||||
$json->options = $option;
|
||||
}
|
||||
if ($json->dbConnection !== "none" && $json->sql !== "") {
|
||||
$cnn = Propel::getConnection($json->dbConnection);
|
||||
$stmt = $cnn->createStatement();
|
||||
$rs = $stmt->executeQuery(\G::replaceDataField($json->sql, array()), \ResultSet::FETCHMODE_NUM);
|
||||
$rs = $stmt->executeQuery(strtoupper($json->sql), \ResultSet::FETCHMODE_NUM);
|
||||
while ($rs->next()) {
|
||||
$row = $rs->getRow();
|
||||
$option = array(
|
||||
@@ -107,22 +123,40 @@ class pmDynaform
|
||||
);
|
||||
array_push($json->options, $option);
|
||||
}
|
||||
if (isset($json->options[0])) {
|
||||
$json->data = $json->options[0];
|
||||
}
|
||||
}
|
||||
if (isset($json->options[0])) {
|
||||
$json->data = $json->options[0];
|
||||
}
|
||||
}
|
||||
//data
|
||||
if ($key === "type" && ($value === "text" || $value === "textarea" || $value === "dropdown" || $value === "checkbox" || $value === "radio")) {
|
||||
if ($key === "type" && ($value === "text" || $value === "textarea" || $value === "suggest" || $value === "dropdown" || $value === "checkbox" || $value === "radio" || $value === "datetime")) {
|
||||
$json->data = array(
|
||||
"value" => isset($this->data[$json->name]) ? $this->data[$json->name] : "",
|
||||
"label" => isset($this->data[$json->name . "_label"]) ? $this->data[$json->name . "_label"] : ""
|
||||
"value" => isset($this->data[$json->name]) ? $this->data[$json->name] : $json->data["value"],
|
||||
"label" => isset($this->data[$json->name . "_label"]) ? $this->data[$json->name . "_label"] : $json->data["label"]
|
||||
);
|
||||
}
|
||||
if ($key === "type" && ($value === "suggest")) {
|
||||
if ($key === "type" && ($value === "checkbox")) {
|
||||
$json->data = array(
|
||||
"value" => isset($this->data[$json->name . "_label"]) ? $this->data[$json->name . "_label"] : "",
|
||||
"label" => isset($this->data[$json->name]) ? $this->data[$json->name] : ""
|
||||
"value" => isset($this->data[$json->name]) ? $this->data[$json->name] : array(),
|
||||
"label" => isset($this->data[$json->name . "_label"]) ? $this->data[$json->name . "_label"] : "[]"
|
||||
);
|
||||
}
|
||||
if ($key === "type" && ($value === "file") && isset($this->app_data["APPLICATION"])) {
|
||||
$oCriteria = new Criteria("workflow");
|
||||
$oCriteria->addSelectColumn(AppDocumentPeer::APP_DOC_UID);
|
||||
$oCriteria->addSelectColumn(AppDocumentPeer::DOC_VERSION);
|
||||
$oCriteria->add(AppDocumentPeer::APP_UID, $this->app_data["APPLICATION"]);
|
||||
$oCriteria->add(AppDocumentPeer::APP_DOC_FIELDNAME, $json->name);
|
||||
$rs = AppDocumentPeer::doSelectRS($oCriteria);
|
||||
$rs->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$links = array();
|
||||
while ($rs->next()) {
|
||||
$row = $rs->getRow();
|
||||
array_push($links, "../cases/cases_ShowDocument?a=" . $row["APP_DOC_UID"] . "&v=" . $row["DOC_VERSION"]);
|
||||
}
|
||||
$json->data = array(
|
||||
"value" => $links,
|
||||
"label" => isset($this->data[$json->name . "_label"]) ? $this->data[$json->name . "_label"] : "[]"
|
||||
);
|
||||
}
|
||||
//grid
|
||||
@@ -135,7 +169,7 @@ class pmDynaform
|
||||
$cells = array();
|
||||
foreach ($json->columns as $column) {
|
||||
//data
|
||||
if ($column->type === "text" || $column->type === "textarea" || $column->type === "dropdown") {
|
||||
if ($column->type === "text" || $column->type === "textarea" || $column->type === "dropdown" || $column->type === "datetime") {
|
||||
array_push($cells, array(
|
||||
"value" => isset($row[$column->name]) ? $row[$column->name] : "",
|
||||
"label" => isset($row[$column->name . "_label"]) ? $row[$column->name . "_label"] : ""
|
||||
@@ -217,14 +251,12 @@ class pmDynaform
|
||||
$file = file_get_contents(PATH_HOME . 'public_html/lib/pmdynaform/build/pmdynaform.html');
|
||||
$file = str_replace("{javascript}", $javascrip, $file);
|
||||
|
||||
$this->debug();
|
||||
echo $file;
|
||||
exit();
|
||||
}
|
||||
|
||||
public function printEdit($pm_run_outside_main_app, $application, $headData, $step_mode = 'EDIT')
|
||||
{
|
||||
error_log(print_r($this->app_data, true));
|
||||
ob_clean();
|
||||
$json = G::json_decode($this->record["DYN_CONTENT"]);
|
||||
$this->jsonr($json);
|
||||
@@ -263,8 +295,6 @@ class pmDynaform
|
||||
|
||||
$file = file_get_contents(PATH_HOME . 'public_html/lib/pmdynaform/build/pmdynaform.html');
|
||||
$file = str_replace("{javascript}", $javascrip, $file);
|
||||
|
||||
$this->debug();
|
||||
echo $file;
|
||||
exit();
|
||||
}
|
||||
@@ -300,7 +330,6 @@ class pmDynaform
|
||||
$file = file_get_contents(PATH_HOME . 'public_html/lib/pmdynaform/build/pmdynaform.html');
|
||||
$file = str_replace("{javascript}", $javascrip, $file);
|
||||
|
||||
$this->debug();
|
||||
echo $file;
|
||||
exit();
|
||||
}
|
||||
@@ -317,7 +346,6 @@ class pmDynaform
|
||||
$file = file_get_contents(PATH_HOME . 'public_html/lib/pmdynaform/build/pmdynaform.html');
|
||||
$file = str_replace("{javascript}", $javascrip, $file);
|
||||
|
||||
$this->debug();
|
||||
echo $file;
|
||||
exit();
|
||||
}
|
||||
@@ -389,13 +417,4 @@ class pmDynaform
|
||||
return array('dsn' => $dsn, 'username' => DB_USER, 'password' => DB_PASS);
|
||||
}
|
||||
|
||||
private function debug()
|
||||
{
|
||||
if ($this->debugMode) {
|
||||
echo "<pre>";
|
||||
echo G::json_encode(array($this->app_data, $this->data));
|
||||
echo "</pre>";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1842,5 +1842,177 @@ class workspaceTools
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Migrate all cases to New list
|
||||
*
|
||||
* return all LIST TABLES with data
|
||||
*/
|
||||
public function migrateList ($workSpace){
|
||||
$this->initPropel(true);
|
||||
$appCache = new AppCacheView();
|
||||
G::LoadClass("case");
|
||||
$case = new Cases();
|
||||
|
||||
//Select data CANCELLED
|
||||
$canCriteria = $appCache->getSelAllColumns();
|
||||
$canCriteria->add(AppCacheViewPeer::APP_STATUS, "CANCELLED", CRITERIA::EQUAL);
|
||||
$canCriteria->add(AppCacheViewPeer::DEL_LAST_INDEX, "1", CRITERIA::EQUAL);
|
||||
$rsCriteria = AppCacheViewPeer::doSelectRS($canCriteria);
|
||||
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
//Insert data LIST_CANCELED
|
||||
while ($rsCriteria->next()) {
|
||||
$row = $rsCriteria->getRow();
|
||||
$listCanceled = new ListCanceled();
|
||||
$listCanceled->remove($row["APP_UID"]);
|
||||
$listCanceled->setDeleted(false);
|
||||
$listCanceled->create($row);
|
||||
}
|
||||
CLI::logging("> Completed table LIST_CANCELED\n");
|
||||
|
||||
//Select data COMPLETED
|
||||
$comCriteria = $appCache->getSelAllColumns();
|
||||
$comCriteria->add(AppCacheViewPeer::APP_STATUS, "COMPLETED", CRITERIA::EQUAL);
|
||||
$comCriteria->add(AppCacheViewPeer::DEL_LAST_INDEX, "1", CRITERIA::EQUAL);
|
||||
$rsCriteria = AppCacheViewPeer::doSelectRS($comCriteria);
|
||||
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
//Insert new data LIST_COMPLETED
|
||||
while ($rsCriteria->next()) {
|
||||
$row = $rsCriteria->getRow();
|
||||
$listCompleted = new ListCompleted();
|
||||
$listCompleted->remove($row["APP_UID"]);
|
||||
$listCompleted->setDeleted(false);
|
||||
$listCompleted->create($row);
|
||||
}
|
||||
CLI::logging("> Completed table LIST_COMPLETED\n");
|
||||
|
||||
//Select data TO_DO OR DRAFT
|
||||
$inbCriteria = $appCache->getSelAllColumns();
|
||||
//$inbCriteria->add(AppCacheViewPeer::DEL_THREAD_STATUS, "OPEN", CRITERIA::EQUAL);
|
||||
$inbCriteria->add(AppCacheViewPeer::APP_STATUS, "CANCELLED", CRITERIA::NOT_EQUAL);
|
||||
$inbCriteria->add(AppCacheViewPeer::APP_STATUS, "COMPLETED", CRITERIA::NOT_EQUAL);
|
||||
$rsCriteria = AppCacheViewPeer::doSelectRS($inbCriteria);
|
||||
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
//Insert new data LIST_INBOX
|
||||
while ($rsCriteria->next()) {
|
||||
$row = $rsCriteria->getRow();
|
||||
if($row["DEL_THREAD_STATUS"] == 'OPEN'){
|
||||
$listInbox = new ListInbox();
|
||||
$listInbox->remove($row["APP_UID"],$row["DEL_INDEX"]);
|
||||
$listInbox->setDeleted(false);
|
||||
$listInbox->create($row);
|
||||
} else {
|
||||
// create participated List when the thread is CLOSED
|
||||
$listParticipatedHistory = new ListParticipatedHistory();
|
||||
$listParticipatedHistory->remove($row['APP_UID'],$row['DEL_INDEX']);
|
||||
$listParticipatedHistory = new ListParticipatedHistory();
|
||||
$listParticipatedHistory->create($row);
|
||||
$listParticipatedLast = new ListParticipatedLast();
|
||||
$listParticipatedLast->remove($row['APP_UID'], $row['USR_UID'],$row['DEL_INDEX']);
|
||||
$listParticipatedLast = new ListParticipatedLast();
|
||||
$listParticipatedLast->create($row);
|
||||
$listParticipatedLast = new ListParticipatedLast();
|
||||
$listParticipatedLast->refresh($row);
|
||||
}
|
||||
|
||||
}
|
||||
CLI::logging("> Completed table LIST_INBOX\n");
|
||||
//With this List is populated the LIST_PARTICIPATED_HISTORY and LIST_PARTICIPATED_LAST
|
||||
CLI::logging("> Completed table LIST_PARTICIPATED_HISTORY\n");
|
||||
CLI::logging("> Completed table LIST_PARTICIPATED_LAST\n");
|
||||
|
||||
//Select data TO_DO OR DRAFT CASES CREATED BY AN USER
|
||||
$myiCriteria = $appCache->getSelAllColumns();
|
||||
$myiCriteria->add(AppCacheViewPeer::DEL_INDEX, "1", CRITERIA::EQUAL);
|
||||
$rsCriteria = AppCacheViewPeer::doSelectRS($myiCriteria);
|
||||
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
//Insert new data LIST_MY_INBOX
|
||||
while ($rsCriteria->next()) {
|
||||
$row = $rsCriteria->getRow();
|
||||
$listMyInbox = new ListMyInbox();
|
||||
$listMyInbox ->remove($row["APP_UID"],$row["USR_UID"]);
|
||||
$listMyInbox->setDeleted(false);
|
||||
$listMyInbox->create($row);
|
||||
}
|
||||
CLI::logging("> Completed table LIST_MY_INBOX\n");
|
||||
|
||||
//Select data PAUSED
|
||||
$delaycriteria = new Criteria("workflow");
|
||||
$delaycriteria->addSelectColumn(AppDelayPeer::APP_UID);
|
||||
$delaycriteria->addSelectColumn(AppDelayPeer::PRO_UID);
|
||||
$delaycriteria->addSelectColumn(AppDelayPeer::APP_DEL_INDEX);
|
||||
$delaycriteria->addSelectColumn(AppCacheViewPeer::APP_NUMBER);
|
||||
$delaycriteria->addJoin( AppCacheViewPeer::APP_UID, AppDelayPeer::APP_UID, Criteria::INNER_JOIN );
|
||||
$rsCriteria = AppDelayPeer::doSelectRS($delaycriteria);
|
||||
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
//Insert new data LIST_PAUSED
|
||||
while ($rsCriteria->next()) {
|
||||
$row = $rsCriteria->getRow();
|
||||
$data = $row;
|
||||
$data["DEL_INDEX"] = $row["APP_DEL_INDEX"];
|
||||
$listPaused = new ListPaused();
|
||||
$listPaused->remove($data["APP_UID"],$data["DEL_INDEX"]);
|
||||
$listPaused->setDeleted(false);
|
||||
$listPaused->create($data);
|
||||
}
|
||||
CLI::logging("> Completed table LIST_PAUSED\n");
|
||||
|
||||
//Select and Insert LIST_UNASSIGNED
|
||||
$unaCriteria = $appCache->getSelAllColumns();
|
||||
$unaCriteria->add(AppCacheViewPeer::USR_UID, "", CRITERIA::EQUAL);
|
||||
$rsCriteria = AppCacheViewPeer::doSelectRS($unaCriteria);
|
||||
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$del = new ListUnassignedPeer();
|
||||
$del->doDeleteAll();
|
||||
$del = new ListUnassignedGroupPeer();
|
||||
$del->doDeleteAll();
|
||||
while ($rsCriteria->next()) {
|
||||
$row = $rsCriteria->getRow();
|
||||
$listUnassigned = new ListUnassigned();
|
||||
$unaUid = $listUnassigned->generateData($row["APP_UID"],$row["PREVIOUS_USR_UID"]);
|
||||
}
|
||||
CLI::logging("> Completed table LIST_UNASSIGNED\n");
|
||||
CLI::logging("> Completed table LIST_UNASSIGNED_GROUP\n");
|
||||
$this->listFirstExecution('insert');
|
||||
return true;
|
||||
}
|
||||
/**
|
||||
* This function checks if List tables are going to migrated
|
||||
*
|
||||
* return boolean value
|
||||
*/
|
||||
public function listFirstExecution ($action){
|
||||
$this->initPropel(true);
|
||||
switch ($action) {
|
||||
case 'insert':
|
||||
$conf = new Configuration();
|
||||
$data["CFG_UID"] ='MIGRATED_LIST';
|
||||
$data["OBJ_UID"] ='list';
|
||||
$data["CFG_VALUE"]='true';
|
||||
$data["PRO_UID"] ='list';
|
||||
$data["USR_UID"] ='list';
|
||||
$data["APP_UID"] ='list';
|
||||
$conf->create($data);
|
||||
return true;
|
||||
break;
|
||||
case 'check':
|
||||
$criteria = new Criteria("workflow");
|
||||
$criteria->addSelectColumn(ConfigurationPeer::CFG_UID);
|
||||
$criteria->add(ConfigurationPeer::CFG_UID, "MIGRATED_LIST", CRITERIA::EQUAL);
|
||||
$rsCriteria = AppCacheViewPeer::doSelectRS($criteria);
|
||||
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$aRows = array ();
|
||||
while ($rsCriteria->next()) {
|
||||
$aRows[] = $rsCriteria->getRow();
|
||||
}
|
||||
if(empty($aRows)){
|
||||
return false; //If is false continue with the migrated
|
||||
} else {
|
||||
return true; //Stop
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1752,5 +1752,45 @@ class AppCacheView extends BaseAppCacheView
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Get all columns by APP_CACHE_VIEW
|
||||
*
|
||||
* @return object criteria
|
||||
*/
|
||||
public function getSelAllColumns(){
|
||||
$criteria = new Criteria("workflow");
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::APP_UID);
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::DEL_INDEX);
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::DEL_LAST_INDEX);
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::APP_NUMBER);
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::APP_STATUS);
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::USR_UID);
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::PREVIOUS_USR_UID);
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::TAS_UID);
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::PRO_UID);
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::DEL_DELEGATE_DATE);
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::DEL_INIT_DATE);
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::DEL_TASK_DUE_DATE);
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::DEL_FINISH_DATE);
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::DEL_THREAD_STATUS);
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::APP_THREAD_STATUS);
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::APP_TITLE);
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::APP_PRO_TITLE);
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::APP_TAS_TITLE);
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::APP_CURRENT_USER);
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::APP_DEL_PREVIOUS_USER);
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::DEL_PRIORITY);
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::DEL_DURATION);
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::DEL_QUEUE_DURATION);
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::DEL_DELAY_DURATION);
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::DEL_STARTED);
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::DEL_FINISHED);
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::DEL_DELAYED);
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::APP_CREATE_DATE);
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::APP_FINISH_DATE);
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::APP_UPDATE_DATE);
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::APP_OVERDUE_PERCENTAGE);
|
||||
return $criteria;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -149,6 +149,34 @@ class GroupUser extends BaseGroupUser
|
||||
}
|
||||
}
|
||||
|
||||
return $rows;
|
||||
}
|
||||
/**
|
||||
* Get all users assigned to Group
|
||||
*
|
||||
* @param string $gprUid
|
||||
* @return array $rows
|
||||
*/
|
||||
public function getAllGroupUser ($gprUid)
|
||||
{
|
||||
$oCriteria = new Criteria( 'workflow' );
|
||||
$oCriteria->add( GroupUserPeer::GRP_UID, $gprUid );
|
||||
$oDataset = GroupUserPeer::doSelectRS( $oCriteria );
|
||||
$oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
|
||||
|
||||
$rows = Array ();
|
||||
while ($oDataset->next()) {
|
||||
$row = $oDataset->getRow();
|
||||
$g = new Groupwf();
|
||||
try {
|
||||
$grpRow = $g->load( $row['GRP_UID'] );
|
||||
$row = array_merge( $row, $grpRow );
|
||||
$rows[] = $row;
|
||||
} catch (Exception $e) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
return $rows;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,6 +73,7 @@ class ListCompleted extends BaseListCompleted
|
||||
$data['DEL_CURRENT_USR_USERNAME'] = $aRow['USR_USERNAME'];
|
||||
$data['DEL_CURRENT_USR_FIRSTNAME'] = $aRow['USR_FIRSTNAME'];
|
||||
$data['DEL_CURRENT_USR_LASTNAME'] = $aRow['USR_LASTNAME'];
|
||||
$data['DEL_PREVIOUS'] = isset($data['DEL_PREVIOUS']) ? $data['DEL_PREVIOUS'] : "";
|
||||
|
||||
if ($data['DEL_PREVIOUS'] != 0) {
|
||||
$criteria = new Criteria();
|
||||
|
||||
@@ -39,6 +39,8 @@ class ListInbox extends BaseListInbox
|
||||
|
||||
// create participated history
|
||||
$listParticipatedHistory = new ListParticipatedHistory();
|
||||
$listParticipatedHistory->remove($data['APP_UID'],$data['DEL_INDEX']);
|
||||
$listParticipatedHistory = new ListParticipatedHistory();
|
||||
$listParticipatedHistory->create($data);
|
||||
|
||||
// create participated history
|
||||
|
||||
@@ -47,6 +47,7 @@ class ListPaused extends BaseListPaused {
|
||||
$data['APP_PRO_TITLE'] = $aRow['CON_VALUE'];
|
||||
|
||||
$criteria = new Criteria();
|
||||
$criteria->addSelectColumn(AppDelegationPeer::USR_UID);
|
||||
$criteria->addSelectColumn(AppDelegationPeer::TAS_UID);
|
||||
$criteria->addSelectColumn(AppDelegationPeer::DEL_INIT_DATE);
|
||||
$criteria->addSelectColumn(AppDelegationPeer::DEL_DELEGATE_DATE);
|
||||
@@ -58,6 +59,7 @@ class ListPaused extends BaseListPaused {
|
||||
$dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$dataset->next();
|
||||
$aRow = $dataset->getRow();
|
||||
$data['USR_UID'] = isset($data['USR_UID']) ? $data['USR_UID'] : $aRow['USR_UID'];
|
||||
$data['TAS_UID'] = $aRow['TAS_UID'];
|
||||
$data['DEL_INIT_DATE'] = $aRow['DEL_INIT_DATE'];
|
||||
$data['DEL_DUE_DATE'] = $aRow['DEL_TASK_DUE_DATE'];
|
||||
|
||||
@@ -17,7 +17,7 @@ require_once 'classes/model/om/BaseListUnassigned.php';
|
||||
class ListUnassigned extends BaseListUnassigned
|
||||
{
|
||||
/**
|
||||
* Create List Inbox Table
|
||||
* Create List Unassigned Table
|
||||
*
|
||||
* @param type $data
|
||||
* @return type
|
||||
@@ -44,7 +44,7 @@ class ListUnassigned extends BaseListUnassigned
|
||||
}
|
||||
|
||||
/**
|
||||
* Update List Inbox Table
|
||||
* Update List Unassigned Table
|
||||
*
|
||||
* @param type $data
|
||||
* @return type
|
||||
@@ -72,19 +72,18 @@ class ListUnassigned extends BaseListUnassigned
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove List Inbox
|
||||
* Remove List Unassigned
|
||||
*
|
||||
* @param type $seqName
|
||||
* @return type
|
||||
* @throws type
|
||||
*
|
||||
*/
|
||||
public function remove ($app_uid, $del_index)
|
||||
public function remove ($app_uid)
|
||||
{
|
||||
$con = Propel::getConnection( ListUnassignedPeer::DATABASE_NAME );
|
||||
try {
|
||||
$this->setAppUid($app_uid);
|
||||
$this->setDelIndex($del_index);
|
||||
|
||||
$con->begin();
|
||||
$this->delete();
|
||||
@@ -96,6 +95,7 @@ class ListUnassigned extends BaseListUnassigned
|
||||
}
|
||||
|
||||
public function newRow ($data, $delPreviusUsrUid) {
|
||||
$data['UNA_UID'] = (isset($data['UNA_UID'])) ? $data['UNA_UID']: G::GenerateUniqueId() ;
|
||||
$data['DEL_PREVIOUS_USR_UID'] = $delPreviusUsrUid;
|
||||
$data['DEL_DUE_DATE'] = $data['DEL_TASK_DUE_DATE'];
|
||||
|
||||
@@ -163,6 +163,7 @@ class ListUnassigned extends BaseListUnassigned
|
||||
}
|
||||
|
||||
self::create($data);
|
||||
return $data['UNA_UID'];
|
||||
}
|
||||
|
||||
public function loadFilters (&$criteria, $filters)
|
||||
@@ -315,5 +316,69 @@ class ListUnassigned extends BaseListUnassigned
|
||||
}
|
||||
return $resp;
|
||||
}
|
||||
/**
|
||||
* Generate Data
|
||||
*
|
||||
* @return object criteria
|
||||
*/
|
||||
public function generateData($appUid,$delPreviusUsrUid){
|
||||
try {
|
||||
G::LoadClass("case");
|
||||
|
||||
//Generate data
|
||||
$case = new Cases();
|
||||
|
||||
$criteria = new Criteria("workflow");
|
||||
|
||||
$criteria->addSelectColumn(AppDelegationPeer::APP_UID);
|
||||
$criteria->addSelectColumn(AppDelegationPeer::DEL_INDEX);
|
||||
$criteria->addSelectColumn(ApplicationPeer::APP_DATA);
|
||||
$criteria->addSelectColumn(AppDelegationPeer::PRO_UID);
|
||||
$criteria->addSelectColumn(AppDelegationPeer::DEL_TASK_DUE_DATE);
|
||||
$criteria->addSelectColumn(TaskPeer::TAS_UID);
|
||||
$criteria->addSelectColumn(TaskPeer::TAS_GROUP_VARIABLE);
|
||||
$criteria->addJoin(AppDelegationPeer::APP_UID, ApplicationPeer::APP_UID, Criteria::LEFT_JOIN);
|
||||
$criteria->addJoin(AppDelegationPeer::TAS_UID, TaskPeer::TAS_UID, Criteria::LEFT_JOIN);
|
||||
$criteria->add(TaskPeer::TAS_ASSIGN_TYPE, "SELF_SERVICE", Criteria::EQUAL);
|
||||
//$criteria->add(TaskPeer::TAS_GROUP_VARIABLE, "", Criteria::NOT_EQUAL);
|
||||
$criteria->add(AppDelegationPeer::USR_UID, "", Criteria::EQUAL);
|
||||
$criteria->add(AppDelegationPeer::DEL_THREAD_STATUS, "OPEN", Criteria::EQUAL);
|
||||
$criteria->add(AppDelegationPeer::APP_UID, $appUid, Criteria::EQUAL);
|
||||
|
||||
$rsCriteria = AppDelegationPeer::doSelectRS($criteria);
|
||||
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
while ($rsCriteria->next()) {
|
||||
$row = $rsCriteria->getRow();
|
||||
|
||||
$applicationData = $case->unserializeData($row["APP_DATA"]);
|
||||
$taskGroupVariable = trim($row["TAS_GROUP_VARIABLE"], " @#");
|
||||
$delPreviusUsrUid = '';
|
||||
$unaUid = $this->newRow($row,$delPreviusUsrUid);
|
||||
//Selfservice by group
|
||||
if ($taskGroupVariable != "" && isset($applicationData[$taskGroupVariable]) && trim($applicationData[$taskGroupVariable]) != "") {
|
||||
$gprUid = trim($applicationData[$taskGroupVariable]);
|
||||
//Define Users by Group
|
||||
$gpr = new GroupUser();
|
||||
$arrayUsers = $gpr->getAllGroupUser($gprUid);
|
||||
foreach($arrayUsers as $urow){
|
||||
$newRow["USR_UID"] = $urow["USR_UID"];
|
||||
$listUnassignedGpr = new ListUnassignedGroup();
|
||||
$listUnassignedGpr->newRow($unaUid,$urow["USR_UID"],"GROUP",$gprUid);
|
||||
}
|
||||
} else {
|
||||
//Define all users assigned to Task
|
||||
$task = new TaskUser();
|
||||
$arrayUsers = $task->getAllUsersTask($row["TAS_UID"]);
|
||||
foreach($arrayUsers as $urow){
|
||||
$newRow["USR_UID"] = $urow["USR_UID"];
|
||||
$listUnassignedGpr = new ListUnassignedGroup();
|
||||
$listUnassignedGpr->newRow($unaUid,$urow["USR_UID"],"USER","");
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -15,5 +15,95 @@ require_once 'classes/model/om/BaseListUnassignedGroup.php';
|
||||
* @package classes.model
|
||||
*/
|
||||
class ListUnassignedGroup extends BaseListUnassignedGroup {
|
||||
/**
|
||||
* Create List Unassigned Group Table
|
||||
*
|
||||
* @param type $data
|
||||
* @return type
|
||||
*
|
||||
*/
|
||||
public function create($data)
|
||||
{
|
||||
$con = Propel::getConnection( ListUnassignedGroupPeer::DATABASE_NAME );
|
||||
try {
|
||||
$this->fromArray( $data, BasePeer::TYPE_FIELDNAME );
|
||||
if ($this->validate()) {
|
||||
$result = $this->save();
|
||||
} else {
|
||||
$e = new Exception( "Failed Validation in class " . get_class( $this ) . "." );
|
||||
$e->aValidationFailures = $this->getValidationFailures();
|
||||
throw ($e);
|
||||
}
|
||||
$con->commit();
|
||||
return $result;
|
||||
} catch(Exception $e) {
|
||||
$con->rollback();
|
||||
throw ($e);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Update List Unassigned Group Table
|
||||
*
|
||||
* @param type $data
|
||||
* @return type
|
||||
* @throws type
|
||||
*/
|
||||
public function update($data)
|
||||
{
|
||||
$con = Propel::getConnection( ListUnassignedGroupPeer::DATABASE_NAME );
|
||||
try {
|
||||
$con->begin();
|
||||
$this->setNew( false );
|
||||
$this->fromArray( $data, BasePeer::TYPE_FIELDNAME );
|
||||
if ($this->validate()) {
|
||||
$result = $this->save();
|
||||
$con->commit();
|
||||
return $result;
|
||||
} else {
|
||||
$con->rollback();
|
||||
throw (new Exception( "Failed Validation in class " . get_class( $this ) . "." ));
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
$con->rollback();
|
||||
throw ($e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove List Unassigned Group
|
||||
*
|
||||
* @param type $seqName
|
||||
* @return type
|
||||
* @throws type
|
||||
*
|
||||
*/
|
||||
public function remove ($app_uid,$una_uid)
|
||||
{
|
||||
$con = Propel::getConnection( ListUnassignedGroupPeer::DATABASE_NAME );
|
||||
try {
|
||||
$this->setAppUid($app_uid);
|
||||
$this->setUnaUid($una_uid);
|
||||
$con->begin();
|
||||
$this->delete();
|
||||
$con->commit();
|
||||
} catch (Exception $e) {
|
||||
$con->rollback();
|
||||
throw ($e);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* newRow List Unassigned Group
|
||||
*
|
||||
* @param type $seqName
|
||||
* @return type
|
||||
* @throws type
|
||||
*
|
||||
*/
|
||||
public function newRow($unaUid, $usrUid, $type, $typeUid=''){
|
||||
$data['UNA_UID'] = $unaUid;
|
||||
$data['USR_UID'] = $usrUid;
|
||||
$data['TYPE'] = $type;
|
||||
$data['TYP_UID'] = $typeUid;
|
||||
self::create($data);
|
||||
}
|
||||
} // ListUnassignedGroup
|
||||
|
||||
@@ -194,5 +194,46 @@ class TaskUser extends BaseTaskUser
|
||||
|
||||
return $result;
|
||||
}
|
||||
/**
|
||||
* Get All users assigned to task
|
||||
*
|
||||
* @param string $TAS_UID
|
||||
* @return array users info
|
||||
*
|
||||
*/
|
||||
public function getAllUsersTask ($TAS_UID)
|
||||
{
|
||||
require_once 'classes/model/Users.php';
|
||||
|
||||
$groupsTask = array ();
|
||||
$usersTask = array ();
|
||||
|
||||
//getting task's users
|
||||
$criteria = new Criteria( 'workflow' );
|
||||
$criteria->addSelectColumn( UsersPeer::USR_FIRSTNAME );
|
||||
$criteria->addSelectColumn( UsersPeer::USR_LASTNAME );
|
||||
$criteria->addSelectColumn( UsersPeer::USR_USERNAME );
|
||||
$criteria->addSelectColumn( TaskUserPeer::TAS_UID );
|
||||
$criteria->addSelectColumn( TaskUserPeer::USR_UID );
|
||||
$criteria->addSelectColumn( TaskUserPeer::TU_TYPE );
|
||||
$criteria->addSelectColumn( TaskUserPeer::TU_RELATION );
|
||||
$criteria->addJoin( TaskUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN );
|
||||
$criteria->add( TaskUserPeer::TAS_UID, $TAS_UID );
|
||||
$dataset = TaskUserPeer::doSelectRS( $criteria );
|
||||
$dataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
|
||||
while ($dataset->next()) {
|
||||
$row = $dataset->getRow();
|
||||
if($row["TU_RELATION"] == 2){
|
||||
$gpr = new GroupUser();
|
||||
$array = $gpr->getAllGroupUser($row["USR_UID"]);
|
||||
foreach($array as $urow){
|
||||
$usersTask[] = $urow;
|
||||
}
|
||||
}else{
|
||||
$usersTask[] = $row;
|
||||
}
|
||||
}
|
||||
return $usersTask;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -487,9 +487,9 @@ class Variable
|
||||
$row = $rsCriteria->getRow();
|
||||
|
||||
$variableDbConnectionUid = $row["VAR_DBCONNECTION"];
|
||||
$variableSql = $row["VAR_SQL"];
|
||||
$variableSql = strtoupper($row["VAR_SQL"]);
|
||||
} else {
|
||||
throw new \Exception(G::LoadTranslation("ID_PROCESS_VARIABLE_DOES_NOT_EXIST", array(strtolower("VAR_NAME"), $variableName)));
|
||||
throw new \Exception(G::LoadTranslation("ID_PROCESS_VARIABLE_DOES_NOT_EXIST", array("VAR_NAME", $variableName)));
|
||||
}
|
||||
|
||||
//Verify data
|
||||
|
||||
@@ -78,49 +78,32 @@
|
||||
<body onresize="resizingFrame();">
|
||||
{$stringBpmn}
|
||||
|
||||
<div class="ui-layout-north">
|
||||
<!--<div class="ui-layout-north">-->
|
||||
<section class="navBar" id="idNavBar">
|
||||
<div class="head"></div>
|
||||
<nav>
|
||||
<ul>
|
||||
<li><a href="#" ><span class="mafe-button-close" ></span></a></li>
|
||||
<li><a href="#" ><span class="mafe-button-close" ></span></a></li>
|
||||
<li><a href="#" class="mafe-button-save"></a></li>
|
||||
<li><a href="#" class="mafe-button-export-process"></a></li>
|
||||
<li><a class="mafe-button-export-bpmn-process"></a></li>
|
||||
<li><a href="#" class="mafe-button-undo"></a> <a href="#" class="mafe-button-redo"></a></li>
|
||||
<li></li>
|
||||
<li><a href="#" title="" class="mafe-button-fullscreen"></a></li>
|
||||
<li><a href="#" title="" class="mafe-button-fullscreen"></a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</section>
|
||||
</div>
|
||||
<!--</div>-->
|
||||
|
||||
<div id="p-center-layout">
|
||||
<div id="p-center-layout"/>
|
||||
<!--BODY-->
|
||||
|
||||
<div class="ui-layout-center tab-content" id="div-layout-canvas">
|
||||
<!--TODO INSERT DIV CANVAS-->
|
||||
</div>
|
||||
<div class="ui-layout-east" id="div-layout-properties">
|
||||
<div class="ui-layout-center">
|
||||
<div id="diagram-treecontainer"></div>
|
||||
</div>
|
||||
<div class="ui-layout-south">
|
||||
<div style="font-size: 11px;" id="diagram-property-grid"> </div>
|
||||
</div>
|
||||
</div>
|
||||
<!--END BODY-->
|
||||
</div>
|
||||
|
||||
|
||||
<div class="ui-layout-west">
|
||||
</div>
|
||||
<div class="bpmn_shapes">
|
||||
<!--<div class="head"></div>-->
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
@@ -130,8 +113,8 @@
|
||||
<div class="content_controls">
|
||||
<div class="head"></div>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="#" class="mafe-menu-variable"></a>
|
||||
<li>
|
||||
<a href="#" class="mafe-menu-variable"></a>
|
||||
<a href="#" class="btn_create mafe-menu-variable-create"><span></span></a>
|
||||
</li>
|
||||
<!--<li>
|
||||
|
||||
Reference in New Issue
Block a user