diff --git a/workflow/engine/classes/class.processMap.php b/workflow/engine/classes/class.processMap.php index fa6dcecee..db3f5b95e 100644 --- a/workflow/engine/classes/class.processMap.php +++ b/workflow/engine/classes/class.processMap.php @@ -5129,6 +5129,7 @@ class processMap { } //new functions + //deprecated function getAllDynaformCount(){ $c = $this->tmpCriteria; $c->clearSelectColumns(); @@ -5150,10 +5151,11 @@ class processMap { */ function getExtDynaformsList($start, $limit, $sProcessUID = '') { + //select the main fields for dynaform and the title and description from CONTENT Table $sDelimiter = DBAdapter::getStringDelimiter (); $oCriteria = new Criteria ( 'workflow' ); $oCriteria->addSelectColumn ( DynaformPeer::DYN_UID ); - $oCriteria->addSelectColumn ( DynaformPeer::PRO_UID ); + //$oCriteria->addSelectColumn ( DynaformPeer::PRO_UID ); $oCriteria->addSelectColumn ( DynaformPeer::DYN_TYPE ); $oCriteria->addAsColumn ( 'DYN_TITLE', 'C1.CON_VALUE' ); $oCriteria->addAsColumn ( 'DYN_DESCRIPTION', 'C2.CON_VALUE' ); @@ -5170,10 +5172,11 @@ class processMap { $aConditions [] = array ('C2.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter ); $oCriteria->addJoinMC ( $aConditions, Criteria::LEFT_JOIN ); $oCriteria->add ( DynaformPeer::PRO_UID, $sProcessUID ); - $this->tmpCriteria = clone $oCriteria; + //if we have pagination, we use it and limit the query if($start != '') $oCriteria->setOffset($start); + if($limit != '') $oCriteria->setLimit($limit); @@ -5181,23 +5184,82 @@ class processMap { $oDataset->setFetchmode ( ResultSet::FETCHMODE_ASSOC ); $oDataset->next (); $dynaformArray = array (); - $dynaformArray [] = array ('d' => 'char' ); + $gridLabel = G::LoadTranslation( 'ID_GRID' ); + $normalLabel = G::LoadTranslation( 'ID_NORMAL' ); + while ( $aRow = $oDataset->getRow () ) { + //this is a trick to copy the description and title from other language when the current language does not exist for this content row. if (($aRow ['DYN_TITLE'] == NULL)||($aRow ['DYN_TITLE'] == "")) { // There is no transaltion for this Document name, try to get/regenerate the label - $aRow ['DYN_TITLE'] = Content::Load("DYN_TITLE","",$aRow ['DYN_UID'],SYS_LANG); - } - if (($aRow ['DYN_DESCRIPTION'] == NULL)||($aRow ['DYN_DESCRIPTION'] == "")) { // There is no transaltion for this Document name, try to get/regenerate the label - + if (($aRow ['DYN_DESCRIPTION'] == NULL)||($aRow ['DYN_DESCRIPTION'] == "")) { // There is no transaltion for this Document name, try to get/regenerate the label $aRow ['DYN_DESCRIPTION'] = Content::Load("DYN_DESCRIPTION","",$aRow ['DYN_UID'],SYS_LANG); - } + + if ( $aRow['DYN_TYPE'] == 'grid' ) $aRow['DYN_TYPE'] = $gridLabel; + if ( $aRow['DYN_TYPE'] == 'xmlform' ) $aRow['DYN_TYPE'] = $normalLabel; + $aRow['TAS_EDIT'] = 0; + $aRow['TAS_VIEW'] = 0; $dynaformArray [] = $aRow; $oDataset->next (); } + $result = array(); + + //Now count how many times the dynaform was used in different tasks in VIEW mode, + $groupbyCriteria = new Criteria ( 'workflow' ); + $groupbyCriteria->clearSelectColumns(); + $groupbyCriteria->addSelectColumn ( StepPeer::STEP_UID_OBJ ); + $groupbyCriteria->addSelectColumn('COUNT(TAS_UID)'); + $groupbyCriteria->add(StepPeer::PRO_UID, $sProcessUID ); + $groupbyCriteria->add(StepPeer::STEP_TYPE_OBJ, 'DYNAFORM' ); + $groupbyCriteria->add(StepPeer::STEP_MODE, 'VIEW'); + $groupbyCriteria->addGroupByColumn(StepPeer::STEP_UID_OBJ); + $oDataset = DynaformPeer::doSelectRS ( $groupbyCriteria ); + $oDataset->setFetchmode ( ResultSet::FETCHMODE_ASSOC ); + $oDataset->next (); + while ( $aRow = $oDataset->getRow () ) { + foreach ( $dynaformArray as $key => $val ) { + if ($val['DYN_UID'] == $aRow['STEP_UID_OBJ'] ) $dynaformArray[$key]['TAS_VIEW'] = $aRow['COUNT(TAS_UID)'] ; + } + $oDataset->next (); + } - return $dynaformArray; + //Now count how many times the dynaform was used in different tasks in EDIT mode, + $groupbyCriteria = new Criteria ( 'workflow' ); + $groupbyCriteria->clearSelectColumns(); + $groupbyCriteria->addSelectColumn ( StepPeer::STEP_UID_OBJ ); + $groupbyCriteria->addSelectColumn('COUNT(TAS_UID)'); + $groupbyCriteria->add(StepPeer::PRO_UID, $sProcessUID ); + $groupbyCriteria->add(StepPeer::STEP_TYPE_OBJ, 'DYNAFORM' ); + $groupbyCriteria->add(StepPeer::STEP_MODE, 'EDIT'); + $groupbyCriteria->addGroupByColumn(StepPeer::STEP_UID_OBJ); + $oDataset = DynaformPeer::doSelectRS ( $groupbyCriteria ); + $oDataset->setFetchmode ( ResultSet::FETCHMODE_ASSOC ); + $oDataset->next (); + while ( $aRow = $oDataset->getRow () ) { + foreach ( $dynaformArray as $key => $val ) { + if ($val['DYN_UID'] == $aRow['STEP_UID_OBJ'] ) $dynaformArray[$key]['TAS_EDIT'] = $aRow['COUNT(TAS_UID)'] ; + } + $oDataset->next (); + } + + //now query to get total dynaform for this process, + //$counCriteria is used to count how many dynaforms there are in this process + $countCriteria = new Criteria ( 'workflow' ); + $countCriteria->clearSelectColumns(); + $countCriteria->addSelectColumn('COUNT(*)'); + $countCriteria->add ( DynaformPeer::PRO_UID, $sProcessUID ); + $oDataset = DynaformPeer::doSelectRS($countCriteria); + $oDataset->next(); + $aRow = $oDataset->getRow(); + + if( is_array($aRow) ) + $result['totalCount'] = $aRow[0]; + else + $result['totalCount'] = 0; + $result['data'] = $dynaformArray; + + return $result; } diff --git a/workflow/engine/methods/bpmn/proxyExtjs.php b/workflow/engine/methods/bpmn/proxyExtjs.php index b2b73e7df..4310df539 100644 --- a/workflow/engine/methods/bpmn/proxyExtjs.php +++ b/workflow/engine/methods/bpmn/proxyExtjs.php @@ -1,348 +1,344 @@ getExtDynaformsList($start, $limit, $_GET['pid']); - $result['totalCount'] = $oProcessMap->getAllDynaformCount(); - array_shift($rows); - $result['data'] = $rows; - print json_encode( $result ) ; - break; - - case 'getPMTableDynaform': - $oAdditionalTables = new AdditionalTables(); - $aData = $oAdditionalTables->load($_GET['tabId'], true); - $addTabName = $aData['ADD_TAB_NAME']; - foreach ($aData['FIELDS'] as $iRow => $aRow) - { - if ($aRow['FLD_KEY'] == 1) - { - $rows[] = $aRow; - } - } - $result['totalCount'] = count($rows); - $result['data'] = $rows; - print json_encode( $result ) ; - break; - - case 'getAdditionalTables': - $rows = $oProcessMap->getExtAdditionalTablesList(); - $result['totalCount'] = count($rows); - $result['data'] = $rows; - print json_encode( $result ) ; - break; - - case 'getInputDocumentList': - $rows = $oProcessMap->getExtInputDocumentsCriteria($start, $limit,$_GET['pid']); - $result['totalCount'] = $oProcessMap->getAllInputDocumentCount(); - array_shift($rows); - $result['data'] = $rows; - print json_encode( $result ) ; - break; - - case 'editInputDocument': - require_once 'classes/model/InputDocument.php'; - $oInputDocument = new InputDocument(); - $rows = $oInputDocument->load($_GET['INP_DOC_UID']); - $tmpData = json_encode( $rows ) ; - $tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // unescape the slashes - - $result = $tmpData; - echo $result; - break; - - case 'getOutputDocument': - $rows = $oProcessMap->getExtOutputDocumentsCriteria($start, $limit,$_GET['pid']); - $result['totalCount'] = $oProcessMap->getAllOutputDocumentCount(); - array_shift($rows); - $result['data'] = $rows; - print json_encode( $result ) ; - break; - - case 'editObjectPermission': - $rows = $oProcessMap->editExtObjectPermission($_GET['pid'],$_GET['op_uid']); - //array_shift($rows); - $tmpData = json_encode( $rows ) ; - $tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // unescape the slashes - - $result = $tmpData; - echo $result; - break; - - case 'editOutputDocument': - require_once 'classes/model/OutputDocument.php'; - $oOutputDocument = new OutputDocument(); - $rows = $oOutputDocument->load($_GET['tid']); - $tmpData = json_encode( $rows ) ; - $tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // unescape the slashes - - $result = $tmpData; - echo $result; - break; - - case 'getReportTables': - $rows = $oProcessMap->getExtReportTables($start, $limit,$_GET['pid']); - $result['totalCount'] = $oProcessMap->getAllReportTableCount(); - $result['data'] = $rows; - print json_encode( $result ) ; - break; - - case 'editReportTables': - require_once 'classes/model/ReportTable.php'; - $oReportTable = new ReportTable(); - $rows = $oReportTable->load($_GET['REP_TAB_UID']); - $tmpData = json_encode( $rows ) ; - $tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // unescape the slashes - - $result = $tmpData; - echo $result; - break; - - case 'getReportTableType': - if(isset($_GET['pid']) && $_GET['type'] == 'NORMAL') - { - $aTheFields = array(); - $aTheFields = getDynaformsVars($_GET['pid'], false); - foreach ($aTheFields as $aField) - { - $rows[] = array('FIELD_UID' => $aField['sName'] . '-' . $aField['sType'], - 'FIELD_NAME' => $aField['sName']); - } + switch( $_GET['action'] ) { + case 'getDynaformList' : + $result = $oProcessMap->getExtDynaformsList($start, $limit, $_GET['pid']); + print json_encode( $result ) ; + break; + + case 'getPMTableDynaform': + $oAdditionalTables = new AdditionalTables(); + $aData = $oAdditionalTables->load($_GET['tabId'], true); + $addTabName = $aData['ADD_TAB_NAME']; + foreach ($aData['FIELDS'] as $iRow => $aRow) + { + if ($aRow['FLD_KEY'] == 1) + { + $rows[] = $aRow; + } } - - else if (isset($_GET['pid']) && $_GET['type'] == 'GRID') - { - $aTheFields = array(); - $aTheFields = getGridsVars($_GET['pid']); - foreach ($aTheFields as $aField) - { - $rows[] = array('FIELD_UID' => $aField['sName'] . '-' . $aField['sXmlForm'], - 'FIELD_NAME' => $aField['sName']); - } - } - $result['totalCount'] = count($rows); - $result['data'] = $rows; - print json_encode( $result ) ; - break; - - case 'getDatabaseConnectionList': - $rows = $oProcessMap->getExtCriteriaDBSList($start, $limit,$_GET['pid']); - $result['totalCount'] = $oProcessMap->getAllDbSourceCount(); - $result['data'] = $rows; - print json_encode( $result ) ; - break; - - case 'editDatabaseConnection': - require_once 'classes/model/DbSource.php'; - $o = new DbSource(); - $rows = $o->load($_GET['dbs_uid'],$_GET['pid']); - $tmpData = json_encode( $rows ) ; - $tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // unescape the slashes - - $result = $tmpData; - echo $result; - break; - - case 'process_Supervisors': - $rows = $oProcessMap->listExtProcessesSupervisors($start, $limit, $_GET['pid']); - $result['totalCount'] = $oProcessMap->getAllProcessSupervisorsCount(); - $result['data'] = $rows; - print json_encode( $result ) ; - break; - - case 'availableProcessesSupervisors': - $rows = $oProcessMap->listExtNoProcessesUser($_GET['pid']); - $result['totalCount'] = count($rows); - $result['data'] = $rows; - print json_encode( $result ) ; - break; - - case 'supervisorDynaforms': - $rows = $oProcessMap->getExtSupervisorDynaformsList($start, $limit,$_GET['pid']); - $result['totalCount'] = $oProcessMap->getAllSupervisorDynaformsCount(); - $result['data'] = $rows; - print json_encode( $result ) ; - break; - case 'availableSupervisorDynaforms': - $rows = $oProcessMap->getExtAvailableSupervisorDynaformsList($_GET['pid']); - $result['totalCount'] = count($rows); - $result['data'] = $rows; - print json_encode( $result ) ; - break; - case 'supervisorInputDoc': - $rows = $oProcessMap->getExtSupervisorInputsList($start, $limit,$_GET['pid']); - $result['totalCount'] = $oProcessMap->getAllSupervisorInputsCount(); - $result['data'] = $rows; - print json_encode( $result ) ; - break; - case 'availableSupervisorInputDoc': - $rows = $oProcessMap->getExtAvailableSupervisorInputsList($_GET['pid']); - $result['totalCount'] = count($rows); - $result['data'] = $rows; - print json_encode( $result ) ; - break; - - case 'getAssignedCaseTrackerObjects': - $rows = $oProcessMap->getExtCaseTrackerObjectsCriteria($start, $limit, $_GET['pid']); - $result['totalCount'] = $oProcessMap->getAllCaseTrackerObjectCount(); - array_shift($rows); - $result['data'] = $rows; - print json_encode( $result ) ; - break; - - case 'getAvailableCaseTrackerObjects': - $rows = $oProcessMap->getAvailableExtCaseTrackerObjects($_GET['pid']); - array_shift($rows); - $result['totalCount'] = count($rows); - $result['data'] = $rows; - print json_encode( $result ) ; - break; - - case 'getAvailableSteps': - $rows = $oProcessMap->getExtAvailableBBCriteria($_GET['pid'], $_GET['tid']); - array_shift($rows); - $result['totalCount'] = count($rows); - $result['data'] = $rows; - print json_encode( $result ) ; - break; - - case 'getAssignedSteps': - $rows = $oProcessMap->getExtStepsCriteria($start, $limit,$_GET['tid']); - $result['totalCount'] = $oProcessMap->getAllStepCount(); - array_shift($rows); - $result['data'] = $rows; - print json_encode( $result ) ; - break; - - case 'getAssignedUsersList': - $rows = $oProcessMap->usersExtList($start, $limit, $_GET['pid'], $_GET['tid']); - $result['totalCount'] = $oProcessMap->getAllTaskUserCount(); - array_shift($rows); - $result['data'] = $rows; - print json_encode( $result ) ; - break; - - case 'getAvailableUsersList': - $rows = $oProcessMap->getAvailableExtUsersCriteria($_GET['tid']); - $result['totalCount'] = count($rows); - $result['data'] = $rows; - print json_encode( $result ) ; - break; - - case 'getAvailableStepTriggers': - $aStepTypeId = explode('|',$_SESSION['stepUID']); - $sStep = $aStepTypeId[0]; - $sType = $aStepTypeId[1]; - //Getting available Steps Criteria that have been not selected for a particular task - $rows = $oProcessMap->getExtAvailableStepTriggersCriteria($_GET['pid'], $sStep, $_GET['tid'], $sType); - $result['totalCount'] = count($rows); - $result['data'] = $rows; - print json_encode( $result ) ; - break; - - case 'getAssignedStepTriggers': - $rows = $oProcessMap->getExtStepTriggersCriteria($start, $limit, $sStep, $_GET['tid'], $sType); - $result['totalCount'] = $oProcessMap->getAllStepTriggerCount(); - $result['data'] = $rows; - print json_encode( $result ) ; - break; - - case 'availableUsers': - $rows = $oProcessMap->getExtAvailableUsersList($_GET['tid']); - array_shift($rows); - $result['totalCount'] = count($rows); - $result['data'] = $rows; - print json_encode( $result ) ; - break; - - case 'assignedUsers': - $rows = $oProcessMap->getExtusersadhoc($start, $limit,$_GET['pid'], $_GET['tid']); - $result['totalCount'] = $oProcessMap->getAllTaskUserCount(); - array_shift($rows); - $result['data'] = $rows; - print json_encode( $result ) ; - break; - - case 'getTaskPropertiesList': - require_once 'classes/model/Task.php'; - $oTask = new Task(); - $rows = $oTask->load($_GET['tid']); - while (list($key, $value) = each($rows)) { - if ($value == 'TRUE') - $rows[$key] = true; - else if($value == 'FALSE') - $rows[$key] = false; - - if($key == 'TAS_TYPE_DAY' && $value == '1') - $rows[$key] = 'Work Days'; - else if($key == 'TAS_TYPE_DAY' && $value == '2') - $rows[$key] = 'Calendar Days'; - - if($key == 'TAS_TYPE' && $value == 'NORMAL') + $result['totalCount'] = count($rows); + $result['data'] = $rows; + print json_encode( $result ) ; + break; + + case 'getAdditionalTables': + $rows = $oProcessMap->getExtAdditionalTablesList(); + $result['totalCount'] = count($rows); + $result['data'] = $rows; + print json_encode( $result ) ; + break; + + case 'getInputDocumentList': + $rows = $oProcessMap->getExtInputDocumentsCriteria($start, $limit,$_GET['pid']); + $result['totalCount'] = $oProcessMap->getAllInputDocumentCount(); + array_shift($rows); + $result['data'] = $rows; + print json_encode( $result ) ; + break; + + case 'editInputDocument': + require_once 'classes/model/InputDocument.php'; + $oInputDocument = new InputDocument(); + $rows = $oInputDocument->load($_GET['INP_DOC_UID']); + $tmpData = json_encode( $rows ) ; + $tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // unescape the slashes + + $result = $tmpData; + echo $result; + break; + + case 'getOutputDocument': + $rows = $oProcessMap->getExtOutputDocumentsCriteria($start, $limit,$_GET['pid']); + $result['totalCount'] = $oProcessMap->getAllOutputDocumentCount(); + array_shift($rows); + $result['data'] = $rows; + print json_encode( $result ) ; + break; + + case 'editObjectPermission': + $rows = $oProcessMap->editExtObjectPermission($_GET['pid'],$_GET['op_uid']); + //array_shift($rows); + $tmpData = json_encode( $rows ) ; + $tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // unescape the slashes + + $result = $tmpData; + echo $result; + break; + + case 'editOutputDocument': + require_once 'classes/model/OutputDocument.php'; + $oOutputDocument = new OutputDocument(); + $rows = $oOutputDocument->load($_GET['tid']); + $tmpData = json_encode( $rows ) ; + $tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // unescape the slashes + + $result = $tmpData; + echo $result; + break; + + case 'getReportTables': + $rows = $oProcessMap->getExtReportTables($start, $limit,$_GET['pid']); + $result['totalCount'] = $oProcessMap->getAllReportTableCount(); + $result['data'] = $rows; + print json_encode( $result ) ; + break; + + case 'editReportTables': + require_once 'classes/model/ReportTable.php'; + $oReportTable = new ReportTable(); + $rows = $oReportTable->load($_GET['REP_TAB_UID']); + $tmpData = json_encode( $rows ) ; + $tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // unescape the slashes + + $result = $tmpData; + echo $result; + break; + + case 'getReportTableType': + if(isset($_GET['pid']) && $_GET['type'] == 'NORMAL') + { + $aTheFields = array(); + $aTheFields = getDynaformsVars($_GET['pid'], false); + foreach ($aTheFields as $aField) + { + $rows[] = array('FIELD_UID' => $aField['sName'] . '-' . $aField['sType'], + 'FIELD_NAME' => $aField['sName']); + } + } + + else if (isset($_GET['pid']) && $_GET['type'] == 'GRID') + { + $aTheFields = array(); + $aTheFields = getGridsVars($_GET['pid']); + foreach ($aTheFields as $aField) + { + $rows[] = array('FIELD_UID' => $aField['sName'] . '-' . $aField['sXmlForm'], + 'FIELD_NAME' => $aField['sName']); + } + } + $result['totalCount'] = count($rows); + $result['data'] = $rows; + print json_encode( $result ) ; + break; + + case 'getDatabaseConnectionList': + $rows = $oProcessMap->getExtCriteriaDBSList($start, $limit,$_GET['pid']); + $result['totalCount'] = $oProcessMap->getAllDbSourceCount(); + $result['data'] = $rows; + print json_encode( $result ) ; + break; + + case 'editDatabaseConnection': + require_once 'classes/model/DbSource.php'; + $o = new DbSource(); + $rows = $o->load($_GET['dbs_uid'],$_GET['pid']); + $tmpData = json_encode( $rows ) ; + $tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // unescape the slashes + + $result = $tmpData; + echo $result; + break; + + case 'process_Supervisors': + $rows = $oProcessMap->listExtProcessesSupervisors($start, $limit, $_GET['pid']); + $result['totalCount'] = $oProcessMap->getAllProcessSupervisorsCount(); + $result['data'] = $rows; + print json_encode( $result ) ; + break; + + case 'availableProcessesSupervisors': + $rows = $oProcessMap->listExtNoProcessesUser($_GET['pid']); + $result['totalCount'] = count($rows); + $result['data'] = $rows; + print json_encode( $result ) ; + break; + + case 'supervisorDynaforms': + $rows = $oProcessMap->getExtSupervisorDynaformsList($start, $limit,$_GET['pid']); + $result['totalCount'] = $oProcessMap->getAllSupervisorDynaformsCount(); + $result['data'] = $rows; + print json_encode( $result ) ; + break; + case 'availableSupervisorDynaforms': + $rows = $oProcessMap->getExtAvailableSupervisorDynaformsList($_GET['pid']); + $result['totalCount'] = count($rows); + $result['data'] = $rows; + print json_encode( $result ) ; + break; + case 'supervisorInputDoc': + $rows = $oProcessMap->getExtSupervisorInputsList($start, $limit,$_GET['pid']); + $result['totalCount'] = $oProcessMap->getAllSupervisorInputsCount(); + $result['data'] = $rows; + print json_encode( $result ) ; + break; + case 'availableSupervisorInputDoc': + $rows = $oProcessMap->getExtAvailableSupervisorInputsList($_GET['pid']); + $result['totalCount'] = count($rows); + $result['data'] = $rows; + print json_encode( $result ) ; + break; + + case 'getAssignedCaseTrackerObjects': + $rows = $oProcessMap->getExtCaseTrackerObjectsCriteria($start, $limit, $_GET['pid']); + $result['totalCount'] = $oProcessMap->getAllCaseTrackerObjectCount(); + array_shift($rows); + $result['data'] = $rows; + print json_encode( $result ) ; + break; + + case 'getAvailableCaseTrackerObjects': + $rows = $oProcessMap->getAvailableExtCaseTrackerObjects($_GET['pid']); + array_shift($rows); + $result['totalCount'] = count($rows); + $result['data'] = $rows; + print json_encode( $result ) ; + break; + + case 'getAvailableSteps': + $rows = $oProcessMap->getExtAvailableBBCriteria($_GET['pid'], $_GET['tid']); + array_shift($rows); + $result['totalCount'] = count($rows); + $result['data'] = $rows; + print json_encode( $result ) ; + break; + + case 'getAssignedSteps': + $rows = $oProcessMap->getExtStepsCriteria($start, $limit,$_GET['tid']); + $result['totalCount'] = $oProcessMap->getAllStepCount(); + array_shift($rows); + $result['data'] = $rows; + print json_encode( $result ) ; + break; + + case 'getAssignedUsersList': + $rows = $oProcessMap->usersExtList($start, $limit, $_GET['pid'], $_GET['tid']); + $result['totalCount'] = $oProcessMap->getAllTaskUserCount(); + array_shift($rows); + $result['data'] = $rows; + print json_encode( $result ) ; + break; + + case 'getAvailableUsersList': + $rows = $oProcessMap->getAvailableExtUsersCriteria($_GET['tid']); + $result['totalCount'] = count($rows); + $result['data'] = $rows; + print json_encode( $result ) ; + break; + + case 'getAvailableStepTriggers': + $aStepTypeId = explode('|',$_SESSION['stepUID']); + $sStep = $aStepTypeId[0]; + $sType = $aStepTypeId[1]; + //Getting available Steps Criteria that have been not selected for a particular task + $rows = $oProcessMap->getExtAvailableStepTriggersCriteria($_GET['pid'], $sStep, $_GET['tid'], $sType); + $result['totalCount'] = count($rows); + $result['data'] = $rows; + print json_encode( $result ) ; + break; + + case 'getAssignedStepTriggers': + $rows = $oProcessMap->getExtStepTriggersCriteria($start, $limit, $sStep, $_GET['tid'], $sType); + $result['totalCount'] = $oProcessMap->getAllStepTriggerCount(); + $result['data'] = $rows; + print json_encode( $result ) ; + break; + + case 'availableUsers': + $rows = $oProcessMap->getExtAvailableUsersList($_GET['tid']); + array_shift($rows); + $result['totalCount'] = count($rows); + $result['data'] = $rows; + print json_encode( $result ) ; + break; + + case 'assignedUsers': + $rows = $oProcessMap->getExtusersadhoc($start, $limit,$_GET['pid'], $_GET['tid']); + $result['totalCount'] = $oProcessMap->getAllTaskUserCount(); + array_shift($rows); + $result['data'] = $rows; + print json_encode( $result ) ; + break; + + case 'getTaskPropertiesList': + require_once 'classes/model/Task.php'; + $oTask = new Task(); + $rows = $oTask->load($_GET['tid']); + while (list($key, $value) = each($rows)) { + if ($value == 'TRUE') + $rows[$key] = true; + else if($value == 'FALSE') $rows[$key] = false; - else if($key == 'TAS_TYPE' && $value == 'ADHOC') - $rows[$key] = true; - } - $tmpData = json_encode( $rows ) ; - $tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // unescape the slashes - - $result = $tmpData; - echo $result; - break; - - case 'getObjectPermission': - $rows = $oProcessMap->getExtObjectsPermissions($start, $limit,$_GET['pid']); - $result['totalCount'] = $oProcessMap->getAllObjectPermissionCount(); - $result['data'] = $rows; - print json_encode( $result ) ; - break; - - case 'getObjectPermissionType': - $rows = $oProcessMap->newExtObjectPermission($_GET['pid'],$_GET['objectType']); - array_shift($rows); - $result['totalCount'] = count($rows); - $result['data'] = $rows; - print json_encode( $result ) ; - break; - - case 'process_Edit': - $rows = $oProcessMap->editProcessNew($_GET['pid']); - $tmpData = json_encode( $rows ) ; - $tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // unescape the slashes - - $result = $tmpData; - echo $result; - break; -} + + if($key == 'TAS_TYPE_DAY' && $value == '1') + $rows[$key] = 'Work Days'; + else if($key == 'TAS_TYPE_DAY' && $value == '2') + $rows[$key] = 'Calendar Days'; + + if($key == 'TAS_TYPE' && $value == 'NORMAL') + $rows[$key] = false; + else if($key == 'TAS_TYPE' && $value == 'ADHOC') + $rows[$key] = true; + } + $tmpData = json_encode( $rows ) ; + $tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // unescape the slashes + + $result = $tmpData; + echo $result; + break; + + case 'getObjectPermission': + $rows = $oProcessMap->getExtObjectsPermissions($start, $limit,$_GET['pid']); + $result['totalCount'] = $oProcessMap->getAllObjectPermissionCount(); + $result['data'] = $rows; + print json_encode( $result ) ; + break; + + case 'getObjectPermissionType': + $rows = $oProcessMap->newExtObjectPermission($_GET['pid'],$_GET['objectType']); + array_shift($rows); + $result['totalCount'] = count($rows); + $result['data'] = $rows; + print json_encode( $result ) ; + break; + + case 'process_Edit': + $rows = $oProcessMap->editProcessNew($_GET['pid']); + $tmpData = json_encode( $rows ) ; + $tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // unescape the slashes + + $result = $tmpData; + echo $result; + break; + } //$result['data'] = $rows; //print json_encode( $result ) ; /*$tmpData = json_encode( $rows ) ; $tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // unescape the slashes - $result = $tmpData; echo $result;*/ -?> + diff --git a/workflow/engine/methods/processes/processes_Map.php b/workflow/engine/methods/processes/processes_Map.php index 30ece2f54..a451a6af2 100644 --- a/workflow/engine/methods/processes/processes_Map.php +++ b/workflow/engine/methods/processes/processes_Map.php @@ -46,9 +46,9 @@ if( $access != 1 ){ } $processUID = $_GET['PRO_UID']; -if ( isset($_SESSION['PROCESSMAP']) && $_SESSION['PROCESSMAP'] == 'BPMN' ) { - header ( "Location: ../bpmn/processmap?PRO_UID=". $processUID ); -} +//if ( isset($_SESSION['PROCESSMAP']) && $_SESSION['PROCESSMAP'] == 'BPMN' ) { +// header ( "Location: ../bpmn/processmap?PRO_UID=". $processUID ); +//} $_SESSION['PROCESS'] = $processUID; $_SESSION['PROCESSMAP'] = 'LEIMNUD'; diff --git a/workflow/engine/templates/bpmn/ProcessOptions.js b/workflow/engine/templates/bpmn/ProcessOptions.js index 00bdff317..7f3cf5254 100755 --- a/workflow/engine/templates/bpmn/ProcessOptions.js +++ b/workflow/engine/templates/bpmn/ProcessOptions.js @@ -15,7 +15,9 @@ ProcessOptions.prototype.addDynaform= function(_5625) {name: 'DYN_UID'}, {name: 'DYN_TYPE'}, {name: 'DYN_TITLE'}, - {name: 'DYN_DISCRIPTION'}, + {name: 'DYN_DESCRIPTION'}, + {name: 'TAS_EDIT'}, + {name: 'TAS_VIEW'}, {name: 'ACTION'} ]); @@ -98,8 +100,8 @@ ProcessOptions.prototype.addDynaform= function(_5625) }); } else - PMExt.notify( _('ID_TITLE_JS') , _('ID_TITLE_JS') ); - //Ext.MessageBox.alert ('Status','Dynaform assigned to a task steps cannot be deleted.'); + PMExt.notify( _('ID_TITLE_JS') , _('ID_TITLE_JS') ); + //Ext.MessageBox.alert ('Status','Dynaform assigned to a task steps cannot be deleted.'); } }); } @@ -111,38 +113,40 @@ ProcessOptions.prototype.addDynaform= function(_5625) items: [btnAdd, btnRemove] }); + //taskDynaform? and groupingStore? + //var taskDynaform = new Ext.data.GroupingStore({ var taskDynaform = new Ext.data.GroupingStore({ idProperty : 'gridIndex', reader : new Ext.data.JsonReader( { - totalProperty: 'totalCount', - root: 'data', - fields : dynaFields - }), + totalProperty: 'totalCount', + root: 'data', + fields : dynaFields + }), proxy : new Ext.data.HttpProxy({ url: 'proxyExtjs?pid='+pro_uid+'&action=getDynaformList' }), - sortInfo:{field: 'DYN_TITLE', direction: "ASC"} + //sortInfo:{field: 'DYN_TITLE', direction: "ASC"} }); - taskDynaform.load({params:{start:0, limit:10}}); + taskDynaform.load({params:{start:0, limit:10}}); - //Creating store for getting list of additional PM tables - var additionalTablesFields = Ext.data.Record.create([ - {name: 'ADD_TAB_UID', type: 'string'}, - {name: 'ADD_TAB_NAME', type: 'string'}, - {name: 'ADD_TAB_DESCRIPTION',type: 'string'} - ]); + //Creating store for getting list of additional PM tables + var additionalTablesFields = Ext.data.Record.create([ + {name: 'ADD_TAB_UID', type: 'string'}, + {name: 'ADD_TAB_NAME', type: 'string'}, + {name: 'ADD_TAB_DESCRIPTION',type: 'string'} + ]); - var additionalTables = new Ext.data.JsonStore({ - root : 'data', - totalProperty: 'totalCount', - idProperty : 'gridIndex', - remoteSort : true, - fields : additionalTablesFields, - proxy: new Ext.data.HttpProxy({ - url: 'proxyExtjs?action=getAdditionalTables' - }) - }); - additionalTables.load(); + var additionalTables = new Ext.data.JsonStore({ + root : 'data', + totalProperty: 'totalCount', + idProperty : 'gridIndex', + remoteSort : true, + fields : additionalTablesFields, + proxy: new Ext.data.HttpProxy({ + url: 'proxyExtjs?action=getAdditionalTables' + }) + }); + additionalTables.load(); //Creating store for getting list of Fields of additional PM tables var TablesFields = Ext.data.Record.create([ @@ -164,328 +168,324 @@ ProcessOptions.prototype.addDynaform= function(_5625) }); //tablesFieldsStore.load(); -var dynaformColumns = new Ext.grid.ColumnModel({ + var dynaformColumns = new Ext.grid.ColumnModel({ defaults: { - width: 200, - sortable: true - }, + width: 90, + sortable: true + }, columns: [ - new Ext.grid.RowNumberer(), + new Ext.grid.RowNumberer(), + { + header: _('ID_TITLE_FIELD'), + dataIndex: 'DYN_TITLE', + width: 280, + },{ + header: _('ID_TYPE'), + dataIndex: 'DYN_TYPE', + width: 90, + },{ + sortable: false, + header: _('ID_TAS_EDIT'), + dataIndex: 'TAS_EDIT', + width: 110 + },{ + sortable: false, + header: _('ID_TAS_VIEW'), + dataIndex: 'TAS_VIEW', + width: 110 + },{ + sortable: false, + width: 50, + renderer: function(val, meta, record) { - id: 'DYN_TITLE', - header: _('ID_TITLE_FIELD'), - dataIndex: 'DYN_TITLE', - width: 280, - editable: false, - editor: new Ext.form.TextField({ - allowBlank: false - }) - },{ - id: 'ACTION', - header: _('ID_TYPE'), - dataIndex: 'ACTION', - //width: 280, - editable: false, - editor: new Ext.form.TextField({ - allowBlank: false - }) - }, - { - sortable: false, - renderer: function(val, meta, record) - { - return String.format("Edit",pro_uid,record.data.DYN_UID); - } - }, - { - sortable: false, - renderer: function(val, meta, record) - { - return String.format("",record.data.DYN_UID); - } + return String.format("Edit",pro_uid,record.data.DYN_UID); } + },{ + sortable: false, + width: 60, + renderer: function(val, meta, record) + { + return String.format("",record.data.DYN_UID); + } + } ] }); var addTableColumns = new Ext.grid.ColumnModel({ - columns: [ - new Ext.grid.RowNumberer(), - { - id: 'FLD_NAME', - header: _('ID_PRIMARY_KEY'), - dataIndex: 'FLD_NAME', - width: 200, - editable: false, - sortable: true, - editor: new Ext.form.TextField({ - allowBlank: false - }) - },{ - id: 'PRO_VARIABLE', - header: _('ID_VARIABLES'), - dataIndex: 'PRO_VARIABLE', - width: 200, - sortable: true, - editor: new Ext.form.TextField({ - allowBlank: false - }) - },{ - sortable: false, - renderer: function(val){return '';} - } - ] - }); + columns: [ + new Ext.grid.RowNumberer(), + { + id: 'FLD_NAME', + header: _('ID_PRIMARY_KEY'), + dataIndex: 'FLD_NAME', + width: 200, + editable: false, + sortable: true, + editor: new Ext.form.TextField({ + allowBlank: false + }) + },{ + id: 'PRO_VARIABLE', + header: _('ID_VARIABLES'), + dataIndex: 'PRO_VARIABLE', + width: 200, + sortable: true, + editor: new Ext.form.TextField({ + allowBlank: false + }) + },{ + sortable: false, + renderer: function(val){return '';} + } + ] + }); - var dynaformGrid = new Ext.grid.GridPanel({ - store: taskDynaform, - id : 'mygrid', - loadMask: true, - loadingText: 'Loading...', - //renderTo: 'cases-grid', - frame: false, - autoHeight:false, - clicksToEdit: 1, - minHeight:400, - height :400, - width: '', - layout: 'fit', - cm: dynaformColumns, - stateful : true, - stateId : 'grid', - stripeRows: true, - tbar: tb, - bbar: new Ext.PagingToolbar({ - pageSize: 10, - store: taskDynaform, - displayInfo: true, - displayMsg: 'Displaying dynaforms {0} - {1} of {2}', - emptyMsg: "No users to display", - items:[] - }), - viewConfig: {forceFit: true} + var dynaformGrid = new Ext.grid.GridPanel({ + store: taskDynaform, + id : 'mygrid', + loadMask: true, + loadingText: 'Loading...', + //renderTo: 'cases-grid', + frame: false, + autoHeight:false, + minHeight:400, + height :400, + width: '', + layout: 'fit', + cm: dynaformColumns, + stateful : true, + stateId : 'grid', + stripeRows: true, + tbar: tb, + bbar: new Ext.PagingToolbar({ + pageSize: 10, + store: taskDynaform, + displayInfo: true, + displayMsg: 'Displaying dynaforms {0} - {1} of {2}', + emptyMsg: "No users to display", + items:[] + }), + viewConfig: {forceFit: true} }); - var dynaformDetails = new Ext.FormPanel({ - labelWidth: 100, - buttonAlign: 'center', - width : 490, - height : 420, - bodyStyle : 'padding:10px 0 0 10px;', - //monitorValid : true, - autoHeight: true, - //defaults :{autoScroll:true}, - items: - [{ - xtype: 'fieldset', - layout: 'fit', - border:true, - title: _('ID_SELECT_DYNAFORM'), - width: 500, - collapsible: false, - labelAlign: 'top', - items:[{ - xtype: 'radiogroup', - //id: 'dynaformType', - layout: 'fit', - fieldLabel: _('ID_TYPE'), - itemCls: 'x-check-group-alt', - columns: 1, - items: [ - { - boxLabel: _('ID_BLANK_DYNAFORM'), - name: 'DYN_SOURCE', - inputValue: 'blankDyna', - checked: true - }, + var dynaformDetails = new Ext.FormPanel({ + labelWidth : 100, + buttonAlign : 'center', + width : 490, + height : 420, + bodyStyle : 'padding:10px 0 0 10px;', + autoHeight: true, + items: + [{ + xtype: 'fieldset', + layout: 'fit', + border:true, + title: _('ID_SELECT_DYNAFORM'), + width: 500, + collapsible: false, + labelAlign: 'top', + items:[{ + xtype: 'radiogroup', + //id: 'dynaformType', + layout: 'fit', + fieldLabel: _('ID_TYPE'), + itemCls: 'x-check-group-alt', + columns: 1, + items: [ + { + boxLabel: _('ID_BLANK_DYNAFORM'), + name: 'DYN_SOURCE', + inputValue: 'blankDyna', + checked: true + }, + { + boxLabel: _('ID_PM_DYNAFORM'), + name: 'DYN_SOURCE', + inputValue: 'pmTableDyna' + }], + listeners: { + change: function(radiogroup, radio) { + if(radio.inputValue == 'blankDyna') + { + Ext.getCmp("blankDynaform").show(); + Ext.getCmp("pmTableDynaform").hide(); + } + else + { + Ext.getCmp("blankDynaform").hide(); + Ext.getCmp("pmTableDynaform").show(); + } + } + } + }] + }, + { + xtype: 'fieldset', + id: 'blankDynaform', + border:true, + hidden: false, + title: _('ID_DYNAFORM_INFORMATION'), + width: 500, + items:[{ + xtype : 'textfield', + fieldLabel: _('ID_TITLE'), + name : 'DYN_TITLE1', + width : 350, + allowBlank: false + },{ + width : 350, + xtype: 'combo', + allowBlank: false, + mode: 'local', + editable: false, + fieldLabel: _('ID_TYPE'), + triggerAction: 'all', + forceSelection: true, + name: 'ACTION', + displayField: 'name', + valueField: 'value', + value : 'Normal', + store: new Ext.data.JsonStore({ + fields : ['name', 'value'], + data : [ + {name : _('ID_NORMAL'), value: 'Normal'}, + {name : _('ID_GRID') , value: 'Grid'}, + ] + }) + },{ + xtype : 'textarea', + fieldLabel: _('ID_DESCRIPTION'), + name : 'DYN_DESCRIPTION1', + height : 120, + width : 350 + } + ] + },{ + xtype: 'fieldset', + id: 'pmTableDynaform', + border:true, + hidden: true, + title: 'Dynaform Information', + width: 500, + items:[{ + width: 350, + xtype: 'combo', + mode: 'local', + editable: true, + triggerAction: 'all', + forceSelection: true, + fieldLabel: _('ID_CREATE_PM_TABLE'), + emptyText : 'Select Table', + displayField: 'ADD_TAB_NAME', + valueField: 'ADD_TAB_UID', + value : '---------------------------', + store : additionalTables, + onSelect: function(record, index){ + var link = 'proxyExtjs?tabId='+record.data.ADD_TAB_UID+'&action=getPMTableDynaform'; + tablesFieldsStore.proxy.setUrl(link, true); + tablesFieldsStore.load(); - { - boxLabel: _('ID_PM_DYNAFORM'), - name: 'DYN_SOURCE', - inputValue: 'pmTableDyna' - }], - listeners: { - change: function(radiogroup, radio) { - if(radio.inputValue == 'blankDyna') - { - Ext.getCmp("blankDynaform").show(); - Ext.getCmp("pmTableDynaform").hide(); - } - else - { - Ext.getCmp("blankDynaform").hide(); - Ext.getCmp("pmTableDynaform").show(); - } - } - } - }] - }, + Ext.getCmp("fieldsGrid").show(); + Ext.getCmp("pmTable").setValue(record.data.ADD_TAB_UID); + + this.setValue(record.data[this.valueField || this.displayField]); + this.collapse(); + } + },{ + xtype:'hidden',//<--hidden field + name:'ADD_TABLE', + id :'pmTable' + }, + { + xtype : 'textfield', + fieldLabel: _('ID_TITLE'), + name : 'DYN_TITLE2', + allowBlank: false, + width : 350 + },{ + xtype : 'textarea', + fieldLabel: _('ID_DESCRIPTION'), + name : 'DYN_DESCRIPTION2', + height : 120, + width : 350 + }, + { + xtype: 'grid', + id:'fieldsGrid', + hidden: true, + store: tablesFieldsStore, + cm: addTableColumns, + width: 500, + //height: 300, + autoHeight: true, + clicksToEdit: 1, + plugins: [editor], + //loadMask : true, + loadingText : 'Loading...', + border: false + //renderTo : Ext.getBody() + } + ] + } + ], buttons: [{ + text: _('ID_SAVE'), + //formBind :true, + handler: function(){ + var getForm = dynaformDetails.getForm().getValues(); + //var sDynaType = getForm.DYN_SOURCE; + if(getForm.DYN_SOURCE == 'blankDyna') { - xtype: 'fieldset', - id: 'blankDynaform', - border:true, - hidden: false, - title: _('ID_DYNAFORM_INFORMATION'), - width: 500, - items:[{ - xtype : 'textfield', - fieldLabel: _('ID_TITLE'), - name : 'DYN_TITLE1', - width : 350, - allowBlank: false - },{ - width : 350, - xtype: 'combo', - allowBlank: false, - mode: 'local', - editable: false, - fieldLabel: _('ID_TYPE'), - triggerAction: 'all', - forceSelection: true, - name: 'ACTION', - displayField: 'name', - valueField: 'value', - value : 'Normal', - store: new Ext.data.JsonStore({ - fields : ['name', 'value'], - data : [ - {name : 'Normal', value: 'Normal'}, - {name : 'Grid', value: 'Grid'}, - ] - }) - },{ - xtype : 'textarea', - fieldLabel: _('ID_DESCRIPTION'), - name : 'DYN_DESCRIPTION1', - height : 120, - width : 350 - } - ] - },{ - xtype: 'fieldset', - id: 'pmTableDynaform', - border:true, - hidden: true, - title: 'Dynaform Information', - width: 500, - items:[{ - width: 350, - xtype: 'combo', - mode: 'local', - editable: true, - triggerAction: 'all', - forceSelection: true, - fieldLabel: _('ID_CREATE_PM_TABLE'), - emptyText : 'Select Table', - displayField: 'ADD_TAB_NAME', - valueField: 'ADD_TAB_UID', - value : '---------------------------', - store : additionalTables, - onSelect: function(record, index){ - var link = 'proxyExtjs?tabId='+record.data.ADD_TAB_UID+'&action=getPMTableDynaform'; - tablesFieldsStore.proxy.setUrl(link, true); - tablesFieldsStore.load(); - - Ext.getCmp("fieldsGrid").show(); - Ext.getCmp("pmTable").setValue(record.data.ADD_TAB_UID); - - this.setValue(record.data[this.valueField || this.displayField]); - this.collapse(); - } - },{ - xtype:'hidden',//<--hidden field - name:'ADD_TABLE', - id :'pmTable' - }, - { - xtype : 'textfield', - fieldLabel: _('ID_TITLE'), - name : 'DYN_TITLE2', - allowBlank: false, - width : 350 - },{ - xtype : 'textarea', - fieldLabel: _('ID_DESCRIPTION'), - name : 'DYN_DESCRIPTION2', - height : 120, - width : 350 - }, - { - xtype: 'grid', - id:'fieldsGrid', - hidden: true, - store: tablesFieldsStore, - cm: addTableColumns, - width: 500, - //height: 300, - autoHeight: true, - clicksToEdit: 1, - plugins: [editor], - //loadMask : true, - loadingText : 'Loading...', - border: false - //renderTo : Ext.getBody() - } - ] + var sAction = getForm.ACTION; + var sTitle = getForm.DYN_TITLE1; + var sDesc = getForm.DYN_DESCRIPTION1; } - ], buttons: [{ - text: _('ID_SAVE'), - //formBind :true, - handler: function(){ - var getForm = dynaformDetails.getForm().getValues(); - //var sDynaType = getForm.DYN_SOURCE; - if(getForm.DYN_SOURCE == 'blankDyna') + else + { + var sAddTab = getForm.ADD_TABLE; + var aStoreFields = tablesFieldsStore.data.items; + var fName = new Array(); + var pVar = new Array(); + for(var i=0;i