diff --git a/workflow/engine/classes/class.dynaformEditor.php b/workflow/engine/classes/class.dynaformEditor.php index 170a6f68d..ba3f43025 100755 --- a/workflow/engine/classes/class.dynaformEditor.php +++ b/workflow/engine/classes/class.dynaformEditor.php @@ -22,10 +22,10 @@ * For more information, contact Colosa Inc, 2566 Le Jeune Rd., * Coral Gables, FL, 33134, USA, or email info@colosa.com. */ - + /** * Created on 21/12/2007 - * Dynaform - Dynaform class + * Dynaform - Dynaform class * @copyright 2007 COLOSA * @author David Callizaya */ @@ -41,7 +41,7 @@ G::LoadClass('xmlDb'); * @package workflow.engine.classes */ -class dynaformEditor extends WebResource +class dynaformEditor extends WebResource { private $isOldCopy = false; var $file=''; @@ -91,24 +91,24 @@ class dynaformEditor extends WebResource 'resize' => false, 'blinkToFront'=> false ); - + /** * Constructor of the class dynaformEditor * @param string $get * @return void */ - function dynaformEditor($get) + function dynaformEditor($get) { $this->panelConf = array_merge( $this->panelConf , $this->defaultConfig['Editor'] ); //'title' => G::LoadTranslation('ID_DYNAFORM_EDITOR').' - ['.$this->title.']', } - + /** * Create the xml form default * @param string $filename * @return void */ - function _createDefaultXmlForm($fileName) + function _createDefaultXmlForm($fileName) { //Create the default Dynaform $sampleForm=''."\n"; @@ -138,12 +138,12 @@ class dynaformEditor extends WebResource fwrite($fp, $sampleForm); fclose($fp); } - + /** * Prints the DynaformEditor * @return void */ - function _render() + function _render() { global $G_PUBLISH; $script=''; @@ -165,9 +165,9 @@ class dynaformEditor extends WebResource $JSEditor = array( 'URL'=> G::encrypt( $this->file , URL_KEY ), ); - + $A = G::encrypt( $this->file , URL_KEY ); - + try { $openDoc = new Xml_Document(); $fileName= $this->home . $this->file . '.xml'; @@ -240,7 +240,7 @@ class dynaformEditor extends WebResource /***@Erik-> this is deprecated,. (unuseful) $G_PUBLISH->AddContent('propeltable', 'paged-table', 'dynaforms/fields_List', $oCriteria, $Parameters, '', SYS_URI.'dynaforms/dynaforms_PagedTableAjax');***/ $G_PUBLISH->AddContent('blank'); $G_PUBLISH->AddContent('xmlform', 'xmlform', 'dynaforms/dynaforms_JSEditor', 'display:none', $JSEditor , '', ''); - } + } catch (Exception $e) { } $G_PUBLISH->AddContent('xmlform', 'xmlform', 'dynaforms/dynaforms_Properties', 'display:none', $Properties , '', ''); @@ -259,7 +259,7 @@ class dynaformEditor extends WebResource //$oHeadPublisher->addScriptFile('/js/dveditor/core/dveditor.js'); //$oHeadPublisher->addScriptFile('/codepress/codepress.js',1); $oHeadPublisher->addScriptFile('/js/codemirror/js/codemirror.js',1); - + $oHeadPublisher->addScriptFile('/js/grid/core/grid.js'); $oHeadPublisher->addScriptCode(' var DYNAFORM_URL="'.$Parameters['URL'].'"; @@ -267,23 +267,23 @@ class dynaformEditor extends WebResource '); G::RenderPage( "publish", 'blank' ); } - + /** * Get the filename * @param string $file * @return string */ - function _getFilename($file) + function _getFilename($file) { return (strcasecmp(substr($file,-5),'_tmp0')==0)? substr($file,0,strlen($file)-5) : $file; } - + /** * Set the temporal copy * @param string $onOff * @return void */ - function _setUseTemporalCopy($onOff) + function _setUseTemporalCopy($onOff) { $file = self::_getFilename( $this->file ); if ($onOff) { @@ -303,26 +303,26 @@ class dynaformEditor extends WebResource self::_setTmpData(array()); } } - + /** * Set temporal data * @param $data * @return void - */ - function _setTmpData($data) + */ + function _setTmpData($data) { G::verifyPath(PATH_C . 'dynEditor/',true); $fp=fopen(PATH_C . 'dynEditor/'.session_id().'.php','w'); fwrite($fp,'$tmpData=unserialize(\''.addcslashes(serialize($data),'\\\'').'\');'); fclose($fp); } - + /** * Get temporal data * @param string $filename - * @return array + * @return array */ - function _getTmpData() + function _getTmpData() { $tmpData = array(); $file = PATH_C . 'dynEditor/'.session_id().'.php'; @@ -335,7 +335,7 @@ class dynaformEditor extends WebResource * @param file $to * @return void */ - function _copyFile($from,$to) + function _copyFile($from,$to) { $copy = implode('',file($from)); $fcopy = fopen($to,"w"); @@ -344,46 +344,46 @@ class dynaformEditor extends WebResource } } -interface iDynaformEditorAjax +interface iDynaformEditorAjax { //public function render_preview($A); } /** * DynaformEditorAjax - DynaformEditorAjax class - * + * * @package workflow.engine.classes */ -class dynaformEditorAjax extends dynaformEditor implements iDynaformEditorAjax +class dynaformEditorAjax extends dynaformEditor implements iDynaformEditorAjax { - + /** * Constructor of the class dynaformEditorAjax * @param var $post * @return void */ - function dynaformEditorAjax($post) + function dynaformEditorAjax($post) { $this->_run($post); } - + /** * Function Run * @param var $post * @return void */ - function _run($post) + function _run($post) { WebResource::WebResource($_SERVER['REQUEST_URI'],$post); } - + /** * Prints the DynaformEditorAjax * @param object $A * @return ob_get_clean */ - function render_preview($A) + function render_preview($A) { ob_start(); $file = G::decrypt( $A , URL_KEY ); global $G_PUBLISH; @@ -391,7 +391,7 @@ class dynaformEditorAjax extends dynaformEditor implements iDynaformEditorAjax $G_PUBLISH->publisherId='preview'; $form = new Form( $file , PATH_DYNAFORM, SYS_LANG, true, $G_PUBLISH->publisherId); switch(basename($form->template,'.html')) { - case 'grid': + case 'grid': $template = 'grid'; $aAux = array_keys($form->fields); if (count($aAux) > 0) { @@ -401,15 +401,16 @@ class dynaformEditorAjax extends dynaformEditor implements iDynaformEditorAjax $aFields = $aAux; } if (is_array($aFields)) { - foreach($aFields as $key => $val) + foreach($aFields as $key => $val) $aFields[$key]=array(1=>"",2=>"",3=>"",4=>"",5=>""); } break; default: $template = 'xmlform_' . $G_PUBLISH->publisherId; $aFields = array( '__DYNAFORM_OPTIONS'=> array( - 'PREVIOUS_STEP' => '#', - 'NEXT_STEP' => '#', + 'PREVIOUS_STEP' => '#', + 'NEXT_STEP' => '#', + 'NEXT_STEP_LABEL' => G::loadTranslation('ID_NEXT_STEP'), 'PREVIOUS_ACTION' => 'return false;', 'NEXT_ACTION' => 'return false;' ) @@ -419,13 +420,13 @@ class dynaformEditorAjax extends dynaformEditor implements iDynaformEditorAjax G::RenderPage('publish','raw'); return ob_get_clean(); } - + /** * Prints the Dynaform in format HTML * @param object $A * @return array */ - function render_htmledit($A) + function render_htmledit($A) { $script = ''; $file = G::decrypt( $A , URL_KEY ); @@ -457,7 +458,7 @@ class dynaformEditorAjax extends dynaformEditor implements iDynaformEditorAjax * @param object $A * @return code html */ - function get_htmlcode($A) + function get_htmlcode($A) { try { $script = ''; @@ -531,7 +532,7 @@ class dynaformEditorAjax extends dynaformEditor implements iDynaformEditorAjax * @param object $A * @return code html */ - function restore_html($A) + function restore_html($A) { $script = ''; $fileTmp = G::decrypt( $A , URL_KEY ); @@ -539,7 +540,7 @@ class dynaformEditorAjax extends dynaformEditor implements iDynaformEditorAjax $form = new Form( $fileTmp , PATH_DYNAFORM, SYS_LANG, true ); /* Navigation Bar */ $form->fields=G::array_merges( - array('__DYNAFORM_OPTIONS' => new XmlForm_Field_XmlMenu( + array('__DYNAFORM_OPTIONS' => new XmlForm_Field_XmlMenu( new Xml_Node( '__DYNAFORM_OPTIONS', 'complete', @@ -559,13 +560,13 @@ class dynaformEditorAjax extends dynaformEditor implements iDynaformEditorAjax fclose($fp); return $html; } - + /** * Set the html code * @param object $A * @return array */ - function set_htmlcode($A,$htmlcode) + function set_htmlcode($A,$htmlcode) { try { $file = G::decrypt( $A , URL_KEY ); @@ -587,7 +588,7 @@ class dynaformEditorAjax extends dynaformEditor implements iDynaformEditorAjax * @param object $A * @return array */ - function get_xmlcode($A) + function get_xmlcode($A) { try { $file = G::decrypt( $A , URL_KEY ); @@ -598,14 +599,14 @@ class dynaformEditorAjax extends dynaformEditor implements iDynaformEditorAjax return array("xmlcode"=>"","error"=>(array)$e); } } - + /** * Set the xml code * @param object $A * @param array $xmlcode * @return string */ - function set_xmlcode($A,$xmlcode) + function set_xmlcode($A,$xmlcode) { $xmlcode = urldecode($xmlcode) ; $file = G::decrypt( $A , URL_KEY ); @@ -615,14 +616,14 @@ class dynaformEditorAjax extends dynaformEditor implements iDynaformEditorAjax fclose($fp); return ""; } - + /** * Get the javascript code * @param object $A * @param string $fieldName * @return array */ - function get_javascripts($A,$fieldName) + function get_javascripts($A,$fieldName) { try { $file = G::decrypt( $A , URL_KEY ); @@ -632,7 +633,7 @@ class dynaformEditorAjax extends dynaformEditor implements iDynaformEditorAjax foreach($form->fields as $name => $value ) { if (strcasecmp($value->type,"javascript")==0) { $aOptions[] = array('key'=>$name,'value'=>$name); - if ( $name == $fieldName ) + if ( $name == $fieldName ) $sCode = $value->code; } } @@ -642,7 +643,7 @@ class dynaformEditorAjax extends dynaformEditor implements iDynaformEditorAjax return (array) $e; } } - + /** * Set the javascript code * @param object $A @@ -660,25 +661,25 @@ class dynaformEditorAjax extends dynaformEditor implements iDynaformEditorAjax $ses2 = new DBSession($dbc2); $ses2->execute(G::replaceDataField("UPDATE dynaForm SET XMLNODE_VALUE = @@CODE WHERE XMLNODE_NAME = @@FIELDNAME ", array('FIELDNAME'=>$fieldName,'CODE'=>$sCode), "myxml" )); */ - + G::LoadSystem('dynaformhandler'); - + $dynaform = new dynaFormHandler(PATH_DYNAFORM."{$file}.xml"); $dynaform->replace($fieldName, $fieldName, Array('type'=>'javascript', '#cdata'=>$sCode)); - + return 0; } catch(Exception $e) { return (array) $e; } } - + /** * Get properties of the dynaForm * @param file $A * @param string $DYN_UID * @return array */ - function get_properties( $A, $DYN_UID ) + function get_properties( $A, $DYN_UID ) { $file = G::decrypt( $A , URL_KEY ); $tmp = self::_getTmpData(); @@ -711,7 +712,7 @@ class dynaformEditorAjax extends dynaformEditor implements iDynaformEditorAjax } return $Properties; } - + /** * Set properties of the dynaForm * @param file $A @@ -763,26 +764,26 @@ class dynaformEditorAjax extends dynaformEditor implements iDynaformEditorAjax return (array) $e; } } - + /** * Get enable template * @param object $A * @return string */ - function get_enabletemplate( $A ) + function get_enabletemplate( $A ) { $file = G::decrypt( $A , URL_KEY ); $form = new Form( $file , PATH_DYNAFORM, SYS_LANG, true ); return $form->enableTemplate; } - + /** * Set enable template * @param object $A * @param string $value * @return string */ - function set_enabletemplate( $A, $value ) + function set_enabletemplate( $A, $value ) { $file = G::decrypt( $A , URL_KEY ); $value = $value=="1"?"1":"0"; @@ -791,14 +792,14 @@ class dynaformEditorAjax extends dynaformEditor implements iDynaformEditorAjax $ses2->execute("UPDATE . SET ENABLETEMPLATE = '$value'"); return $value; } - + /** * Save a dynaForm * @param object $A * @param string $DYN_UID * @return array */ - function save($A,$DYN_UID) + function save($A,$DYN_UID) { try { $answer = 0; @@ -814,7 +815,7 @@ class dynaformEditorAjax extends dynaformEditor implements iDynaformEditorAjax * in here we are validation if a xmlform has a submit action */ if(!preg_match("/type=\"submit\"/",$copy) && !preg_match("/type=\"grid\"/",$copy) && !isset($_SESSION['submitAction']) ){ - + $_SESSION['submitAction']= 1; $answer = 'noSub'; } @@ -841,13 +842,13 @@ class dynaformEditorAjax extends dynaformEditor implements iDynaformEditorAjax return (array) $e; } } - + /** * Close a dynaform * @param object $A * @return array */ - function close($A) + function close($A) { try { /* @@ -877,14 +878,14 @@ class dynaformEditorAjax extends dynaformEditor implements iDynaformEditorAjax return (array) $e; } } - + /** * Checks if a dynaform was changed * @param file $A * @param string $DYN_UID * @return array */ - function is_modified($A,$DYN_UID) + function is_modified($A,$DYN_UID) { $file = G::decrypt( $A , URL_KEY ); try { diff --git a/workflow/engine/classes/class.processMap.php b/workflow/engine/classes/class.processMap.php index 5d7bea92c..f82dbe550 100644 --- a/workflow/engine/classes/class.processMap.php +++ b/workflow/engine/classes/class.processMap.php @@ -427,6 +427,7 @@ class processMap { $_SESSION ['_DBArray'] = $_DBArray; $aFields = $oProcess->load($sProcessUID); + $aFields['PRO_SUMMARY_DYNAFORM'] = (isset($aFields['PRO_DYNAFORMS']['PROCESS']) ? $aFields['PRO_DYNAFORMS']['PROCESS'] : ''); $aFields ['THETYPE'] = 'UPDATE'; $calendarInfo = $calendar->getCalendarFor($sProcessUID, $sProcessUID, $sProcessUID); //If the function returns a DEFAULT calendar it means that this object doesn't have assigned any calendar @@ -1394,7 +1395,7 @@ class processMap { }else{ $G_PUBLISH->AddContent('xmlform', 'xmlform', $sFilename, '', $aFields); } - + G::RenderPage('publish', 'raw'); return true; } catch (Exception $oError) { @@ -2313,7 +2314,7 @@ class processMap { // var_dump($aRow); // die(); - + if (is_array($aRow)) { $aFields ['ROU_TYPE'] = $aRow ['ROU_TYPE']; $aFields ['ROU_TYPE_OLD'] = $aRow ['ROU_TYPE']; @@ -2399,7 +2400,7 @@ class processMap { break; } } - + $aFields ['action'] = 'savePattern'; $aFields ['LANG'] = SYS_LANG; $aFields ['PROCESS'] = $sProcessUID; @@ -2416,7 +2417,7 @@ class processMap { $aMessage['MESSAGE'] = $oError->getMessage(); $G_PUBLISH->AddContent('xmlform', 'xmlform', 'login/showMessage', '', $aMessage ); G::RenderPage( 'publish','blank'); - die; + die; } } @@ -2878,7 +2879,7 @@ class processMap { throw ($oError); } } - + /** * webEntryByTask * @@ -4645,12 +4646,12 @@ class processMap { $oContent = new Content(); $dynTitle = $oContent->load('DYN_TITLE', '', $oData['EVN_ACTION'], 'en'); $task_uid = $oEvent->getEvnTasUidTo(); - + $dyn = new Dynaform(); $dyn->load($oData['EVN_ACTION']); - + $dynUid = $dyn->getDynUid(); - + $task = new Task(); $task->load($task_uid); $task_name = $task->getTasTitle(); @@ -4795,7 +4796,7 @@ class processMap { $oCriteria->setOffset($start); if($limit != '') $oCriteria->setLimit($limit); - + $oDataset = TaskUserPeer::doSelectRS ( $oCriteria ); $oDataset->setFetchmode ( ResultSet::FETCHMODE_ASSOC ); $oDataset->next (); @@ -5206,7 +5207,7 @@ class processMap { $oCriteria->setOffset($start); if($limit != '') $oCriteria->setLimit($limit); - + $oDataset = InputDocumentPeer::doSelectRS ( $oCriteria ); $oDataset->setFetchmode ( ResultSet::FETCHMODE_ASSOC ); $oDataset->next (); @@ -5330,7 +5331,7 @@ class processMap { $dynaformArray = array (); $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 @@ -5339,7 +5340,7 @@ class processMap { 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; @@ -5348,7 +5349,7 @@ class processMap { $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(); @@ -5402,7 +5403,7 @@ class processMap { else $result['totalCount'] = 0; $result['data'] = $dynaformArray; - + return $result; } @@ -5824,7 +5825,7 @@ class processMap { $oCriteria->setOffset($start); if($limit != '') $oCriteria->setLimit($limit); - + $oDataset = StepSupervisorPeer::doSelectRS ( $oCriteria ); $oDataset->setFetchmode ( ResultSet::FETCHMODE_ASSOC ); $oDataset->next (); @@ -6715,7 +6716,7 @@ function saveExtEvents($oData) $aDataEvent['EVN_UID'] = $oData->evn_uid; $aDataEvent['EVN_RELATED_TO'] = 'MULTIPLE'; $aDataEvent['EVN_TYPE'] = $oData->evn_type; - + if(preg_match("/Start/", $sEvn_type)){ if(isset($oData->tas_uid) && $oData->tas_uid != '') { $aDataTask['TAS_UID'] = $oData->tas_uid; @@ -6723,7 +6724,7 @@ function saveExtEvents($oData) $aDataTask['EVN_TYPE'] = $oData->evn_type; $aDataTask['TAS_EVN_UID'] = $oData->evn_uid; $oTask->update($aDataTask); - + $aDataEvent['EVN_TAS_UID_TO'] = $oData->tas_uid; $output = $oEvent->update($aDataEvent); } @@ -6787,7 +6788,7 @@ function saveExtEvents($oData) $oCriteria->setOffset($start); if($limit != '') $oCriteria->setLimit($limit); - + $oDataset = TriggersPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); @@ -6807,7 +6808,7 @@ function saveExtEvents($oData) return $triggersArray; } - + function getAllInputDocsByTask($sPRO_UID){ $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn(StepPeer::STEP_UID_OBJ); @@ -6817,7 +6818,7 @@ function saveExtEvents($oData) $oCriteria->add(StepPeer::PRO_UID, $sPRO_UID); $oDataset = StepPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); - + $aIDocs = array(); while ($oDataset->next()){ $row = $oDataset->getRow(); @@ -6825,5 +6826,5 @@ function saveExtEvents($oData) } return $aIDocs; } - + } diff --git a/workflow/engine/classes/class.processes.php b/workflow/engine/classes/class.processes.php index 82204bc82..5e61ec7b5 100644 --- a/workflow/engine/classes/class.processes.php +++ b/workflow/engine/classes/class.processes.php @@ -21,7 +21,7 @@ * * For more information, contact Colosa Inc, 2566 Le Jeune Rd., * Coral Gables, FL, 33134, USA, or email info@colosa.com. - */ + */ require_once 'classes/model/Content.php'; require_once 'classes/model/Process.php'; @@ -73,7 +73,7 @@ class Processes { $oProcess->Update( $proFields ); } - + /** * change debug mode of any Process * @param string $sProUid @@ -531,109 +531,109 @@ class Processes { $oData->tasks[$key]['PRO_UID'] = $sNewProUid; } } - + if ( isset($oData->routes ) && is_array($oData->routes) ) { foreach ($oData->routes as $key => $val ) { $oData->routes[$key]['PRO_UID'] = $sNewProUid; } } - + if ( isset($oData->lanes ) && is_array($oData->lanes) ) { foreach ($oData->lanes as $key => $val ) { $oData->lanes[$key]['PRO_UID'] = $sNewProUid; } } - + if ( isset($oData->inputs ) && is_array($oData->inputs) ) { foreach ($oData->inputs as $key => $val ) { $oData->inputs[$key]['PRO_UID'] = $sNewProUid; } } - + if ( isset($oData->outputs ) && is_array($oData->outputs) ) { foreach ($oData->outputs as $key => $val ) { $oData->outputs[$key]['PRO_UID'] = $sNewProUid; } } - + if ( isset($oData->steps ) && is_array($oData->steps) ) { foreach ($oData->steps as $key => $val ) { $oData->steps[$key]['PRO_UID'] = $sNewProUid; } } - + if ( isset($oData->dynaforms ) && is_array($oData->dynaforms) ) { foreach ($oData->dynaforms as $key => $val ) { $oData->dynaforms[$key]['PRO_UID'] = $sNewProUid; } } - + if ( isset($oData->triggers ) && is_array($oData->triggers) ) { foreach ($oData->triggers as $key => $val ) { $oData->triggers[$key]['PRO_UID'] = $sNewProUid; } } - + if ( isset($oData->reportTables ) && is_array($oData->reportTables) ) { foreach ($oData->reportTables as $key => $val ) { $oData->reportTables[$key]['PRO_UID'] = $sNewProUid; } } - + if ( isset($oData->reportTablesVars ) && is_array($oData->reportTablesVars) ) { foreach ($oData->reportTablesVars as $key => $val ) { $oData->reportTablesVars[$key]['PRO_UID'] = $sNewProUid; } } - + if ( isset($oData->dbconnections ) && is_array($oData->dbconnections) ) { foreach ($oData->dbconnections as $key => $val ) { $oData->dbconnections[$key]['PRO_UID'] = $sNewProUid; } } - + if ( isset($oData->stepSupervisor ) && is_array($oData->stepSupervisor) ) { foreach ($oData->stepSupervisor as $key => $val ) { $oData->stepSupervisor[$key]['PRO_UID'] = $sNewProUid; } } - + if ( isset($oData->objectPermissions ) && is_array($oData->objectPermissions) ) { foreach ($oData->objectPermissions as $key => $val ) { $oData->objectPermissions[$key]['PRO_UID'] = $sNewProUid; - } + } } - + if ( isset($oData->caseTracker ) && is_array($oData->caseTracker) ) { foreach ($oData->caseTracker as $key => $val ) { $oData->caseTracker[$key]['PRO_UID'] = $sNewProUid; } } - + if ( isset($oData->caseTrackerObject ) && is_array($oData->caseTrackerObject) ) { foreach ($oData->caseTrackerObject as $key => $val ) { $oData->caseTrackerObject[$key]['PRO_UID'] = $sNewProUid; } } - + if ( isset($oData->stage ) && is_array($oData->stage) ) { foreach ($oData->stage as $key => $val ) { $oData->stage[$key]['PRO_UID'] = $sNewProUid; } } - + if ( isset($oData->subProcess ) && is_array($oData->subProcess) ) { foreach ($oData->subProcess as $key => $val ) { $oData->subProcess[$key]['PRO_PARENT'] = $sNewProUid; } } - + if ( isset($oData->event ) && is_array($oData->event) ) { foreach ($oData->event as $key => $val ) { $oData->event[$key]['PRO_UID'] = $sNewProUid; } } - + if ( isset($oData->caseScheduler ) && is_array($oData->caseScheduler) ) { foreach ($oData->caseScheduler as $key => $val){ $oData->caseScheduler[$key]['PRO_UID'] = $sNewProUid; @@ -683,7 +683,7 @@ class Processes { $oData->steps[$key]['TAS_UID'] = $newGuid; } } - + if ( isset($oData->steptriggers ) && is_array($oData->steptriggers) ) { foreach ( $oData->steptriggers as $key => $val ) { $newGuid = $map[ $val['TAS_UID'] ]; @@ -736,7 +736,7 @@ class Processes { } } } - + } /** @@ -750,14 +750,27 @@ class Processes { $newGuid = $this->getUnusedDynaformGUID(); $map[ $val['DYN_UID'] ] = $newGuid; $oData->dynaforms[$key]['DYN_UID'] = $newGuid; - } + + if (!is_array($oData->process['PRO_DYNAFORMS'])) { + $oData->process['PRO_DYNAFORMS'] = @unserialize($oData->process['PRO_DYNAFORMS']); + } + + if (!isset($oData->process['PRO_DYNAFORMS']['PROCESS'])) { + $oData->process['PRO_DYNAFORMS']['PROCESS'] = ''; + } + + if ($oData->process['PRO_DYNAFORMS']['PROCESS'] != '') { + $oData->process['PRO_DYNAFORMS']['PROCESS'] = $map[$oData->process['PRO_DYNAFORMS']['PROCESS']]; + } + foreach ( $oData->steps as $key => $val ) { if ( $val['STEP_TYPE_OBJ'] == 'DYNAFORM' ) { $newGuid = $map[ $val['STEP_UID_OBJ'] ]; $oData->steps[$key]['STEP_UID_OBJ'] = $newGuid; } } + if ( isset($oData->caseTrackerObject ) && is_array($oData->caseTrackerObject) ) { foreach ( $oData->caseTrackerObject as $key => $val ) { if ( $val['CTO_TYPE_OBJ'] == 'DYNAFORM' ) { @@ -954,7 +967,7 @@ class Processes { $oCriteria = new Criteria('workflow'); $oCriteria->add(DynaformPeer::PRO_UID, $sProUid); $oCriteria->addJoin (DynaformPeer::DYN_UID, FieldConditionPeer::FCD_DYN_UID ); - + $oDataset = FieldConditionPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); @@ -978,7 +991,7 @@ class Processes { try { $aEvent = array(); $oCriteria = new Criteria('workflow'); - + $oCriteria->add(EventPeer::PRO_UID, $sProUid); $oDataset = EventPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); @@ -1004,7 +1017,7 @@ class Processes { try { $aCaseScheduler = array(); $oCriteria = new Criteria('workflow'); - + $oCriteria->add(CaseSchedulerPeer::PRO_UID, $sProUid); $oDataset = CaseSchedulerPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); @@ -1020,7 +1033,7 @@ class Processes { throw($oError); } } - + /** * Get all Swimlanes Elements for any Process @@ -1264,7 +1277,7 @@ class Processes { $oEvent = new Event(); if($oEvent->Exists ($row['EVN_UID'])) $oEvent->remove($row['EVN_UID']); - + $res = $oEvent->create($row); } return; @@ -1281,7 +1294,7 @@ class Processes { $oCaseScheduler = new CaseScheduler(); if($oCaseScheduler->Exists($row['SCH_UID'])) $oCaseScheduler->remove($row['SCH_UID']); - + $res = $oCaseScheduler->create($row); } return; @@ -1577,7 +1590,7 @@ class Processes { } } } - + /** * Renew all the GUID's for Swimlanes Elements Objects * @param $oData array. @@ -1934,7 +1947,7 @@ class Processes { throw($oError); } } - + /** * Create Step Trigger Rows for a Process form an array * @param array $aTrigger @@ -2169,7 +2182,7 @@ class Processes { $oConnection->remove($aRow['DBS_UID'], $aRow['PRO_UID']); } $oConnection->create($aRow); - + // Update information in the table of contents $oContent = new Content(); $ConCategory = 'DBS_DESCRIPTION'; @@ -2273,7 +2286,7 @@ class Processes { */ function serializeProcess ( $sProUid = '') { $oProcess = new Process( ); - $oData->process = $this->getProcessRow( $sProUid, false); + $oData->process = $this->getProcessRow( $sProUid, false); $oData->tasks = $this->getTaskRows( $sProUid ); $oData->routes = $this->getRouteRows( $sProUid ); $oData->lanes = $this->getLaneRows( $sProUid ); @@ -2493,7 +2506,7 @@ class Processes { /* under here, I've not modified those lines */ fclose ($fp); - + //$bytesSaved = file_put_contents ( $filename , $oData ); $filenameLink = 'processes_DownloadFile?p=' . $proTitle . '&r=' . rand(100,1000); $result['PRO_UID'] = $data->process['PRO_UID']; @@ -2534,7 +2547,7 @@ class Processes { { $oData->gridFiles[$value['DYN_UID'] ] = $value['DYN_UID']; } } - + $oData->dynaformFiles = array(); $sIdentifier = 0; while ( !feof ( $fp ) && is_numeric ( $sIdentifier ) ) { @@ -2559,7 +2572,7 @@ class Processes { fclose ( $fp); return $oData; } - + // import process related functions /** @@ -2803,9 +2816,9 @@ class Processes { foreach($oData->sqlConnections as $key => $value ){ $XmlContent = str_replace($key, $value, $XmlContent); } - + } - + #here we verify if is adynaform or a html $aAux = explode(' ', $XmlContent); $ext = (strpos($aAux[0], 'createFieldCondition($oData->fieldCondition, $oData->dynaforms); $this->createEventRows( $oData->event); $this->createCaseSchedulerRows( $oData->caseScheduler ); - + } /** diff --git a/workflow/engine/classes/model/Process.php b/workflow/engine/classes/model/Process.php index a6c96ddb0..9314590ba 100644 --- a/workflow/engine/classes/model/Process.php +++ b/workflow/engine/classes/model/Process.php @@ -133,7 +133,7 @@ class Process extends BaseProcess { //verify the content for base language Content::copyContentOnBaseLanguageIfNotExists('PRO_DESCRIPTION', $this->getProUid(), $this->pro_description); - + $res = Content::addContent( 'PRO_DESCRIPTION', '', $this->getProUid(), $lang, $this->pro_description ); } @@ -180,6 +180,7 @@ class Process extends BaseProcess { $this->setProWidth ( 10000 ); $this->setProTitleX ( 0 ); $this->setProTitleY ( 0 ); + $this->setProDynaforms ( isset($aData['PRO_DYNAFORMS']) ? (is_array($aData['PRO_DYNAFORMS']) ? serialize($aData['PRO_DYNAFORMS']) : $aData['PRO_DYNAFORMS']) : '' ); if ( $this->validate() ) { $con->begin(); @@ -315,6 +316,8 @@ class Process extends BaseProcess { } } + $aFields['PRO_DYNAFORMS'] = @unserialize($aFields['PRO_DYNAFORMS']); + return $aFields; } else { @@ -393,6 +396,9 @@ class Process extends BaseProcess { public function update($aData) { + if (is_array($aData['PRO_DYNAFORMS'])) { + $aData['PRO_DYNAFORMS'] = @serialize($aData['PRO_DYNAFORMS']); + } $con = Propel::getConnection( ProcessPeer::DATABASE_NAME ); try { $con->begin(); @@ -458,6 +464,7 @@ class Process extends BaseProcess { $this->setProWidth ( $aData['PRO_WIDTH'] ); $this->setProTitleX ( $aData['PRO_TITLE_X'] ); $this->setProTitleY ( $aData['PRO_TITLE_Y'] ); + $this->setProDynaforms ( isset($aData['PRO_DYNAFORMS']) ? (is_array($aData['PRO_DYNAFORMS']) ? serialize($aData['PRO_DYNAFORMS']) : $aData['PRO_DYNAFORMS']) : '' ); if ( $this->validate() ) { $con->begin(); $res = $this->save(); diff --git a/workflow/engine/classes/model/map/ProcessMapBuilder.php b/workflow/engine/classes/model/map/ProcessMapBuilder.php index 767eb2ec9..1cbd586f9 100644 --- a/workflow/engine/classes/model/map/ProcessMapBuilder.php +++ b/workflow/engine/classes/model/map/ProcessMapBuilder.php @@ -110,6 +110,8 @@ class ProcessMapBuilder { $tMap->addColumn('PRO_DEBUG', 'ProDebug', 'int', CreoleTypes::INTEGER, true, null); + $tMap->addColumn('PRO_DYNAFORMS', 'ProDynaforms', 'string', CreoleTypes::LONGVARCHAR, false, null); + $tMap->addValidator('PRO_TIMEUNIT', 'validValues', 'propel.validator.ValidValuesValidator', 'WEEKS|MONTHS|DAYS|HOURS|MINUTES', 'Please select a valid Time Unit.'); $tMap->addValidator('PRO_STATUS', 'validValues', 'propel.validator.ValidValuesValidator', 'ACTIVE|INACTIVE|DISABLED', 'Please select a valid Process Status.'); diff --git a/workflow/engine/classes/model/om/BaseProcess.php b/workflow/engine/classes/model/om/BaseProcess.php index 5037d443e..e9b5c1200 100644 --- a/workflow/engine/classes/model/om/BaseProcess.php +++ b/workflow/engine/classes/model/om/BaseProcess.php @@ -188,6 +188,13 @@ abstract class BaseProcess extends BaseObject implements Persistent { */ protected $pro_debug = 0; + + /** + * The value for the pro_dynaforms field. + * @var string + */ + protected $pro_dynaforms; + /** * Flag to prevent endless save loop, if this object is referenced * by another object which falls in this transaction. @@ -495,6 +502,17 @@ abstract class BaseProcess extends BaseObject implements Persistent { return $this->pro_debug; } + /** + * Get the [pro_dynaforms] column value. + * + * @return string + */ + public function getProDynaforms() + { + + return $this->pro_dynaforms; + } + /** * Set the value of [pro_uid] column. * @@ -999,6 +1017,28 @@ abstract class BaseProcess extends BaseObject implements Persistent { } // setProDebug() + /** + * Set the value of [pro_dynaforms] column. + * + * @param string $v new value + * @return void + */ + public function setProDynaforms($v) + { + + // Since the native PHP type for this column is string, + // we will cast the input to a string (if it is not). + if ($v !== null && !is_string($v)) { + $v = (string) $v; + } + + if ($this->pro_dynaforms !== $v) { + $this->pro_dynaforms = $v; + $this->modifiedColumns[] = ProcessPeer::PRO_DYNAFORMS; + } + + } // setProDynaforms() + /** * Hydrates (populates) the object variables with values from the database resultset. * @@ -1062,12 +1102,14 @@ abstract class BaseProcess extends BaseObject implements Persistent { $this->pro_debug = $rs->getInt($startcol + 22); + $this->pro_dynaforms = $rs->getString($startcol + 23); + $this->resetModified(); $this->setNew(false); // FIXME - using NUM_COLUMNS may be clearer. - return $startcol + 23; // 23 = ProcessPeer::NUM_COLUMNS - ProcessPeer::NUM_LAZY_LOAD_COLUMNS). + return $startcol + 24; // 24 = ProcessPeer::NUM_COLUMNS - ProcessPeer::NUM_LAZY_LOAD_COLUMNS). } catch (Exception $e) { throw new PropelException("Error populating Process object", $e); @@ -1339,6 +1381,9 @@ abstract class BaseProcess extends BaseObject implements Persistent { case 22: return $this->getProDebug(); break; + case 23: + return $this->getProDynaforms(); + break; default: return null; break; @@ -1382,6 +1427,7 @@ abstract class BaseProcess extends BaseObject implements Persistent { $keys[20] => $this->getProTitleX(), $keys[21] => $this->getProTitleY(), $keys[22] => $this->getProDebug(), + $keys[23] => $this->getProDynaforms(), ); return $result; } @@ -1482,6 +1528,9 @@ abstract class BaseProcess extends BaseObject implements Persistent { case 22: $this->setProDebug($value); break; + case 23: + $this->setProDynaforms($value); + break; } // switch() } @@ -1528,6 +1577,7 @@ abstract class BaseProcess extends BaseObject implements Persistent { if (array_key_exists($keys[20], $arr)) $this->setProTitleX($arr[$keys[20]]); if (array_key_exists($keys[21], $arr)) $this->setProTitleY($arr[$keys[21]]); if (array_key_exists($keys[22], $arr)) $this->setProDebug($arr[$keys[22]]); + if (array_key_exists($keys[23], $arr)) $this->setProDynaforms($arr[$keys[23]]); } /** @@ -1562,6 +1612,7 @@ abstract class BaseProcess extends BaseObject implements Persistent { if ($this->isColumnModified(ProcessPeer::PRO_TITLE_X)) $criteria->add(ProcessPeer::PRO_TITLE_X, $this->pro_title_x); if ($this->isColumnModified(ProcessPeer::PRO_TITLE_Y)) $criteria->add(ProcessPeer::PRO_TITLE_Y, $this->pro_title_y); if ($this->isColumnModified(ProcessPeer::PRO_DEBUG)) $criteria->add(ProcessPeer::PRO_DEBUG, $this->pro_debug); + if ($this->isColumnModified(ProcessPeer::PRO_DYNAFORMS)) $criteria->add(ProcessPeer::PRO_DYNAFORMS, $this->pro_dynaforms); return $criteria; } @@ -1660,6 +1711,8 @@ abstract class BaseProcess extends BaseObject implements Persistent { $copyObj->setProDebug($this->pro_debug); + $copyObj->setProDynaforms($this->pro_dynaforms); + $copyObj->setNew(true); diff --git a/workflow/engine/classes/model/om/BaseProcessPeer.php b/workflow/engine/classes/model/om/BaseProcessPeer.php index 52a8751bd..7c7f47afa 100644 --- a/workflow/engine/classes/model/om/BaseProcessPeer.php +++ b/workflow/engine/classes/model/om/BaseProcessPeer.php @@ -24,7 +24,7 @@ abstract class BaseProcessPeer { const CLASS_DEFAULT = 'classes.model.Process'; /** The total number of columns. */ - const NUM_COLUMNS = 23; + const NUM_COLUMNS = 24; /** The number of lazy-loaded columns. */ const NUM_LAZY_LOAD_COLUMNS = 0; @@ -99,6 +99,9 @@ abstract class BaseProcessPeer { /** the column name for the PRO_DEBUG field */ const PRO_DEBUG = 'PROCESS.PRO_DEBUG'; + /** the column name for the PRO_DYNAFORMS field */ + const PRO_DYNAFORMS = 'PROCESS.PRO_DYNAFORMS'; + /** The PHP to DB Name Mapping */ private static $phpNameMap = null; @@ -110,10 +113,10 @@ abstract class BaseProcessPeer { * e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id' */ private static $fieldNames = array ( - BasePeer::TYPE_PHPNAME => array ('ProUid', 'ProParent', 'ProTime', 'ProTimeunit', 'ProStatus', 'ProTypeDay', 'ProType', 'ProAssignment', 'ProShowMap', 'ProShowMessage', 'ProShowDelegate', 'ProShowDynaform', 'ProCategory', 'ProSubCategory', 'ProIndustry', 'ProUpdateDate', 'ProCreateDate', 'ProCreateUser', 'ProHeight', 'ProWidth', 'ProTitleX', 'ProTitleY', 'ProDebug', ), - BasePeer::TYPE_COLNAME => array (ProcessPeer::PRO_UID, ProcessPeer::PRO_PARENT, ProcessPeer::PRO_TIME, ProcessPeer::PRO_TIMEUNIT, ProcessPeer::PRO_STATUS, ProcessPeer::PRO_TYPE_DAY, ProcessPeer::PRO_TYPE, ProcessPeer::PRO_ASSIGNMENT, ProcessPeer::PRO_SHOW_MAP, ProcessPeer::PRO_SHOW_MESSAGE, ProcessPeer::PRO_SHOW_DELEGATE, ProcessPeer::PRO_SHOW_DYNAFORM, ProcessPeer::PRO_CATEGORY, ProcessPeer::PRO_SUB_CATEGORY, ProcessPeer::PRO_INDUSTRY, ProcessPeer::PRO_UPDATE_DATE, ProcessPeer::PRO_CREATE_DATE, ProcessPeer::PRO_CREATE_USER, ProcessPeer::PRO_HEIGHT, ProcessPeer::PRO_WIDTH, ProcessPeer::PRO_TITLE_X, ProcessPeer::PRO_TITLE_Y, ProcessPeer::PRO_DEBUG, ), - BasePeer::TYPE_FIELDNAME => array ('PRO_UID', 'PRO_PARENT', 'PRO_TIME', 'PRO_TIMEUNIT', 'PRO_STATUS', 'PRO_TYPE_DAY', 'PRO_TYPE', 'PRO_ASSIGNMENT', 'PRO_SHOW_MAP', 'PRO_SHOW_MESSAGE', 'PRO_SHOW_DELEGATE', 'PRO_SHOW_DYNAFORM', 'PRO_CATEGORY', 'PRO_SUB_CATEGORY', 'PRO_INDUSTRY', 'PRO_UPDATE_DATE', 'PRO_CREATE_DATE', 'PRO_CREATE_USER', 'PRO_HEIGHT', 'PRO_WIDTH', 'PRO_TITLE_X', 'PRO_TITLE_Y', 'PRO_DEBUG', ), - BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, ) + BasePeer::TYPE_PHPNAME => array ('ProUid', 'ProParent', 'ProTime', 'ProTimeunit', 'ProStatus', 'ProTypeDay', 'ProType', 'ProAssignment', 'ProShowMap', 'ProShowMessage', 'ProShowDelegate', 'ProShowDynaform', 'ProCategory', 'ProSubCategory', 'ProIndustry', 'ProUpdateDate', 'ProCreateDate', 'ProCreateUser', 'ProHeight', 'ProWidth', 'ProTitleX', 'ProTitleY', 'ProDebug', 'ProDynaforms', ), + BasePeer::TYPE_COLNAME => array (ProcessPeer::PRO_UID, ProcessPeer::PRO_PARENT, ProcessPeer::PRO_TIME, ProcessPeer::PRO_TIMEUNIT, ProcessPeer::PRO_STATUS, ProcessPeer::PRO_TYPE_DAY, ProcessPeer::PRO_TYPE, ProcessPeer::PRO_ASSIGNMENT, ProcessPeer::PRO_SHOW_MAP, ProcessPeer::PRO_SHOW_MESSAGE, ProcessPeer::PRO_SHOW_DELEGATE, ProcessPeer::PRO_SHOW_DYNAFORM, ProcessPeer::PRO_CATEGORY, ProcessPeer::PRO_SUB_CATEGORY, ProcessPeer::PRO_INDUSTRY, ProcessPeer::PRO_UPDATE_DATE, ProcessPeer::PRO_CREATE_DATE, ProcessPeer::PRO_CREATE_USER, ProcessPeer::PRO_HEIGHT, ProcessPeer::PRO_WIDTH, ProcessPeer::PRO_TITLE_X, ProcessPeer::PRO_TITLE_Y, ProcessPeer::PRO_DEBUG, ProcessPeer::PRO_DYNAFORMS, ), + BasePeer::TYPE_FIELDNAME => array ('PRO_UID', 'PRO_PARENT', 'PRO_TIME', 'PRO_TIMEUNIT', 'PRO_STATUS', 'PRO_TYPE_DAY', 'PRO_TYPE', 'PRO_ASSIGNMENT', 'PRO_SHOW_MAP', 'PRO_SHOW_MESSAGE', 'PRO_SHOW_DELEGATE', 'PRO_SHOW_DYNAFORM', 'PRO_CATEGORY', 'PRO_SUB_CATEGORY', 'PRO_INDUSTRY', 'PRO_UPDATE_DATE', 'PRO_CREATE_DATE', 'PRO_CREATE_USER', 'PRO_HEIGHT', 'PRO_WIDTH', 'PRO_TITLE_X', 'PRO_TITLE_Y', 'PRO_DEBUG', 'PRO_DYNAFORMS', ), + BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, ) ); /** @@ -123,10 +126,10 @@ abstract class BaseProcessPeer { * e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0 */ private static $fieldKeys = array ( - BasePeer::TYPE_PHPNAME => array ('ProUid' => 0, 'ProParent' => 1, 'ProTime' => 2, 'ProTimeunit' => 3, 'ProStatus' => 4, 'ProTypeDay' => 5, 'ProType' => 6, 'ProAssignment' => 7, 'ProShowMap' => 8, 'ProShowMessage' => 9, 'ProShowDelegate' => 10, 'ProShowDynaform' => 11, 'ProCategory' => 12, 'ProSubCategory' => 13, 'ProIndustry' => 14, 'ProUpdateDate' => 15, 'ProCreateDate' => 16, 'ProCreateUser' => 17, 'ProHeight' => 18, 'ProWidth' => 19, 'ProTitleX' => 20, 'ProTitleY' => 21, 'ProDebug' => 22, ), - BasePeer::TYPE_COLNAME => array (ProcessPeer::PRO_UID => 0, ProcessPeer::PRO_PARENT => 1, ProcessPeer::PRO_TIME => 2, ProcessPeer::PRO_TIMEUNIT => 3, ProcessPeer::PRO_STATUS => 4, ProcessPeer::PRO_TYPE_DAY => 5, ProcessPeer::PRO_TYPE => 6, ProcessPeer::PRO_ASSIGNMENT => 7, ProcessPeer::PRO_SHOW_MAP => 8, ProcessPeer::PRO_SHOW_MESSAGE => 9, ProcessPeer::PRO_SHOW_DELEGATE => 10, ProcessPeer::PRO_SHOW_DYNAFORM => 11, ProcessPeer::PRO_CATEGORY => 12, ProcessPeer::PRO_SUB_CATEGORY => 13, ProcessPeer::PRO_INDUSTRY => 14, ProcessPeer::PRO_UPDATE_DATE => 15, ProcessPeer::PRO_CREATE_DATE => 16, ProcessPeer::PRO_CREATE_USER => 17, ProcessPeer::PRO_HEIGHT => 18, ProcessPeer::PRO_WIDTH => 19, ProcessPeer::PRO_TITLE_X => 20, ProcessPeer::PRO_TITLE_Y => 21, ProcessPeer::PRO_DEBUG => 22, ), - BasePeer::TYPE_FIELDNAME => array ('PRO_UID' => 0, 'PRO_PARENT' => 1, 'PRO_TIME' => 2, 'PRO_TIMEUNIT' => 3, 'PRO_STATUS' => 4, 'PRO_TYPE_DAY' => 5, 'PRO_TYPE' => 6, 'PRO_ASSIGNMENT' => 7, 'PRO_SHOW_MAP' => 8, 'PRO_SHOW_MESSAGE' => 9, 'PRO_SHOW_DELEGATE' => 10, 'PRO_SHOW_DYNAFORM' => 11, 'PRO_CATEGORY' => 12, 'PRO_SUB_CATEGORY' => 13, 'PRO_INDUSTRY' => 14, 'PRO_UPDATE_DATE' => 15, 'PRO_CREATE_DATE' => 16, 'PRO_CREATE_USER' => 17, 'PRO_HEIGHT' => 18, 'PRO_WIDTH' => 19, 'PRO_TITLE_X' => 20, 'PRO_TITLE_Y' => 21, 'PRO_DEBUG' => 22, ), - BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, ) + BasePeer::TYPE_PHPNAME => array ('ProUid' => 0, 'ProParent' => 1, 'ProTime' => 2, 'ProTimeunit' => 3, 'ProStatus' => 4, 'ProTypeDay' => 5, 'ProType' => 6, 'ProAssignment' => 7, 'ProShowMap' => 8, 'ProShowMessage' => 9, 'ProShowDelegate' => 10, 'ProShowDynaform' => 11, 'ProCategory' => 12, 'ProSubCategory' => 13, 'ProIndustry' => 14, 'ProUpdateDate' => 15, 'ProCreateDate' => 16, 'ProCreateUser' => 17, 'ProHeight' => 18, 'ProWidth' => 19, 'ProTitleX' => 20, 'ProTitleY' => 21, 'ProDebug' => 22, 'ProDynaforms' => 23, ), + BasePeer::TYPE_COLNAME => array (ProcessPeer::PRO_UID => 0, ProcessPeer::PRO_PARENT => 1, ProcessPeer::PRO_TIME => 2, ProcessPeer::PRO_TIMEUNIT => 3, ProcessPeer::PRO_STATUS => 4, ProcessPeer::PRO_TYPE_DAY => 5, ProcessPeer::PRO_TYPE => 6, ProcessPeer::PRO_ASSIGNMENT => 7, ProcessPeer::PRO_SHOW_MAP => 8, ProcessPeer::PRO_SHOW_MESSAGE => 9, ProcessPeer::PRO_SHOW_DELEGATE => 10, ProcessPeer::PRO_SHOW_DYNAFORM => 11, ProcessPeer::PRO_CATEGORY => 12, ProcessPeer::PRO_SUB_CATEGORY => 13, ProcessPeer::PRO_INDUSTRY => 14, ProcessPeer::PRO_UPDATE_DATE => 15, ProcessPeer::PRO_CREATE_DATE => 16, ProcessPeer::PRO_CREATE_USER => 17, ProcessPeer::PRO_HEIGHT => 18, ProcessPeer::PRO_WIDTH => 19, ProcessPeer::PRO_TITLE_X => 20, ProcessPeer::PRO_TITLE_Y => 21, ProcessPeer::PRO_DEBUG => 22, ProcessPeer::PRO_DYNAFORMS => 23, ), + BasePeer::TYPE_FIELDNAME => array ('PRO_UID' => 0, 'PRO_PARENT' => 1, 'PRO_TIME' => 2, 'PRO_TIMEUNIT' => 3, 'PRO_STATUS' => 4, 'PRO_TYPE_DAY' => 5, 'PRO_TYPE' => 6, 'PRO_ASSIGNMENT' => 7, 'PRO_SHOW_MAP' => 8, 'PRO_SHOW_MESSAGE' => 9, 'PRO_SHOW_DELEGATE' => 10, 'PRO_SHOW_DYNAFORM' => 11, 'PRO_CATEGORY' => 12, 'PRO_SUB_CATEGORY' => 13, 'PRO_INDUSTRY' => 14, 'PRO_UPDATE_DATE' => 15, 'PRO_CREATE_DATE' => 16, 'PRO_CREATE_USER' => 17, 'PRO_HEIGHT' => 18, 'PRO_WIDTH' => 19, 'PRO_TITLE_X' => 20, 'PRO_TITLE_Y' => 21, 'PRO_DEBUG' => 22, 'PRO_DYNAFORMS' => 23, ), + BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, ) ); /** @@ -273,6 +276,8 @@ abstract class BaseProcessPeer { $criteria->addSelectColumn(ProcessPeer::PRO_DEBUG); + $criteria->addSelectColumn(ProcessPeer::PRO_DYNAFORMS); + } const COUNT = 'COUNT(PROCESS.PRO_UID)'; diff --git a/workflow/engine/config/schema.xml b/workflow/engine/config/schema.xml index e90c82e96..e9c2d50f6 100644 --- a/workflow/engine/config/schema.xml +++ b/workflow/engine/config/schema.xml @@ -17,7 +17,7 @@ - + @@ -787,6 +787,7 @@ + @@ -2724,7 +2725,7 @@ - + diff --git a/workflow/engine/data/mysql/schema.sql b/workflow/engine/data/mysql/schema.sql index 63db2a3ba..41526991e 100644 --- a/workflow/engine/data/mysql/schema.sql +++ b/workflow/engine/data/mysql/schema.sql @@ -397,6 +397,7 @@ CREATE TABLE `PROCESS` `PRO_TITLE_X` INTEGER default 0 NOT NULL, `PRO_TITLE_Y` INTEGER default 6 NOT NULL, `PRO_DEBUG` INTEGER default 0 NOT NULL, + `PRO_DYNAFORMS` MEDIUMTEXT, PRIMARY KEY (`PRO_UID`) )ENGINE=MyISAM DEFAULT CHARSET='utf8' COMMENT='Store process Information'; #----------------------------------------------------------------------------- diff --git a/workflow/engine/js/processmap/core/processmap.js b/workflow/engine/js/processmap/core/processmap.js index b05b67975..93c5957d9 100644 --- a/workflow/engine/js/processmap/core/processmap.js +++ b/workflow/engine/js/processmap/core/processmap.js @@ -340,7 +340,7 @@ var processmap=function(){ this.tmp.editProcessPanel = panel =new leimnud.module.panel(); panel.options={ limit :true, - size :{w:700,h:390}, + size :{w:700,h:420}, position:{x:50,y:50,center:true}, title :G_STRINGS.ID_PROCESSMAP_EDIT_PROCESS+": "+this.data.db.title.label, theme :this.options.theme, diff --git a/workflow/engine/methods/cases/casesListExtJs.php b/workflow/engine/methods/cases/casesListExtJs.php index 99c1903ab..2617742fa 100755 --- a/workflow/engine/methods/cases/casesListExtJs.php +++ b/workflow/engine/methods/cases/casesListExtJs.php @@ -40,14 +40,16 @@ // if the general settings has been set the pagesize values are extracted from that record if (isset($generalConfCasesList['casesListRowNumber'])&&!empty($generalConfCasesList['casesListRowNumber'])){ $pageSize = intval($generalConfCasesList['casesListRowNumber']); - } else { + } + else { $pageSize = intval($config['rowsperpage']); } // if the general settings has been set the dateFormat values are extracted from that record - if (isset($generalConfCasesList['casesListDateFormat'])&&!empty($generalConfCasesList['casesListDateFormat'])){ + if (isset($generalConfCasesList['casesListDateFormat']) && !empty($generalConfCasesList['casesListDateFormat'])){ $dateFormat = $generalConfCasesList['casesListDateFormat']; - } else { + } + else { $dateFormat = $config['dateformat']; } @@ -75,7 +77,7 @@ $userUid = ( isset($_SESSION['USER_LOGGED'] ) && $_SESSION['USER_LOGGED'] != '' ) ? $_SESSION['USER_LOGGED'] : null; $oAppCache = new AppCacheView(); $oAppCache->confCasesList = $confCasesList; - + //get values for the comboBoxes $processes = getProcessArray($action, $userUid ); $status = getStatusArray($action, $userUid ); @@ -94,10 +96,10 @@ $oHeadPublisher->assign( 'processValues', $processes); //sending the columns to display in grid $oHeadPublisher->assign( 'userValues', $users); //sending the columns to display in grid $oHeadPublisher->assign( 'allUsersValues',$allUsers); //sending the columns to display in grid - - - - //menu permissions + + + + //menu permissions /*$c = new Criteria('workflow'); $c->clearSelectColumns(); $c->addSelectColumn( AppThreadPeer::APP_THREAD_PARENT ); @@ -111,18 +113,18 @@ $oHeadPublisher->assign( '___p34315105', $menuPerms); // user menu permissions $oHeadPublisher->usingExtJs('ux/GridRowActions'); - $oHeadPublisher->addExtJsScript('cases/caseNotes', true); + $oHeadPublisher->addExtJsScript('cases/caseUtils', true); $oHeadPublisher->addExtJsScript('cases/casesList', false ); //adding a javascript file .js $oHeadPublisher->addContent( 'cases/casesListExtJs'); //adding a html file .html. G::RenderPage('publish', 'extJs'); - - //functions to fill the comboboxes in the case list page + + //functions to fill the comboboxes in the case list page function getProcessArray ( $action, $userUid ) { global $oAppCache; $processes = Array(); $processes[] = array ( '', G::LoadTranslation('ID_ALL_PROCESS') ); - + //get the list based in the action provided // G::pr($action);die; @@ -135,14 +137,14 @@ break; case 'simple_search': case 'search' : - //in search action, the query to obtain all process is too slow, so we need to query directly to + //in search action, the query to obtain all process is too slow, so we need to query directly to //process and content tables, and for that reason we need the current language in AppCacheView. G::loadClass('configuration'); - $oConf = new Configurations; + $oConf = new Configurations; $oConf->loadConfig($x, 'APP_CACHE_VIEW_ENGINE','','','',''); $appCacheViewEngine = $oConf->aConfig; $lang = isset($appCacheViewEngine['LANG']) ? $appCacheViewEngine['LANG'] : 'en'; - + $cProcess = new Criteria('workflow'); $cProcess->clearSelectColumns ( ); $cProcess->addSelectColumn ( ProcessPeer::PRO_UID ); @@ -152,18 +154,18 @@ $conds[] = array(ProcessPeer::PRO_UID, ContentPeer::CON_ID ); $conds[] = array(ContentPeer::CON_CATEGORY, $del . 'PRO_TITLE' . $del); $conds[] = array(ContentPeer::CON_LANG, $del . $lang . $del); - $cProcess->addJoinMC($conds, Criteria::LEFT_JOIN); + $cProcess->addJoinMC($conds, Criteria::LEFT_JOIN); $cProcess->add(ProcessPeer::PRO_STATUS, 'ACTIVE'); $oDataset = ProcessPeer::doSelectRS($cProcess); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); - + while($aRow = $oDataset->getRow()){ $processes[] = array ( $aRow['PRO_UID'], $aRow['CON_VALUE'] ); $oDataset->next(); } - - return $processes; + + return $processes; break; case 'unassigned' : $cProcess = $oAppCache->getUnassignedListCriteria($userUid); @@ -187,7 +189,7 @@ $cProcess = $oAppCache->getToDoListCriteria($userUid); //fast enough break; } - + //get the processes for this user in this action $cProcess->clearSelectColumns ( ); $cProcess->setDistinct(); @@ -196,13 +198,13 @@ $oDataset = AppCacheViewPeer::doSelectRS($cProcess); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); - + while($aRow = $oDataset->getRow()){ $processes[] = array ( $aRow['PRO_UID'], $aRow['APP_PRO_TITLE'] ); $oDataset->next(); } - - return $processes; + + return $processes; } function getUserArray ( $action, $userUid ) { @@ -241,7 +243,7 @@ //now get users, just for the Search action $cUsers = $oAppCache->getToReassignListCriteria(); $cUsers->addSelectColumn(AppCacheViewPeer::USR_UID); - + if(g::MySQLSintaxis()) $cUsers->addGroupByColumn(AppCacheViewPeer::USR_UID); @@ -281,7 +283,7 @@ } return $status; break; - + case 'selfservice' : $cStatus = $oAppCache->getUnassignedListCriteria($userUid); break; @@ -321,11 +323,12 @@ } return $status; } - + //these getXX function gets the default fields in casesListSetup function getToDo() { $caseColumns = array (); $caseColumns[] = array( 'header' => '#', 'dataIndex' => 'APP_NUMBER', 'width' => 45, 'align' => 'center'); + $caseColumns[] = array( 'header' => '', 'dataIndex' => 'CASE_SUMMARY', 'width' => 15, 'align' => 'center', 'sorteable'=>false); $caseColumns[] = array( 'header' => '', 'dataIndex' => 'CASE_NOTES_COUNT', 'width' => 15, 'align' => 'center', 'sorteable'=>false); $caseColumns[] = array( 'header' => G::LoadTranslation('ID_CASE'), 'dataIndex' => 'APP_TITLE', 'width' => 150 ); $caseColumns[] = array( 'header' => 'UserUid', 'dataIndex' => 'USR_UID', 'width' => 50 , 'hidden'=> true, 'hideable'=> false); @@ -336,7 +339,7 @@ $caseColumns[] = array( 'header' => G::LoadTranslation('ID_DUE_DATE'), 'dataIndex' => 'DEL_TASK_DUE_DATE', 'width' => 110); $caseColumns[] = array( 'header' => G::LoadTranslation('ID_LAST_MODIFY'),'dataIndex' => 'APP_UPDATE_DATE', 'width' => 110 ); $caseColumns[] = array( 'header' => G::LoadTranslation('ID_PRIORITY'), 'dataIndex' => 'DEL_PRIORITY', 'width' => 50 ); - + $caseReaderFields = array(); $caseReaderFields[] = array( 'name' => 'APP_UID' ); $caseReaderFields[] = array( 'name' => 'USR_UID' ); @@ -355,14 +358,16 @@ $caseReaderFields[] = array( 'name' => 'APP_CURRENT_USER' ); $caseReaderFields[] = array( 'name' => 'APP_STATUS' ); + $caseReaderFields[] = array( 'name' => 'CASE_SUMMARY' ); $caseReaderFields[] = array( 'name' => 'CASE_NOTES_COUNT' ); - - return array ( 'caseColumns' => $caseColumns, 'caseReaderFields' => $caseReaderFields, 'rowsperpage' => 20, 'dateformat' => 'M d, Y' ); + + return array ( 'caseColumns' => $caseColumns, 'caseReaderFields' => $caseReaderFields, 'rowsperpage' => 20, 'dateformat' => 'M d, Y' ); } - + function getDraft() { $caseColumns = array (); $caseColumns[] = array( 'header' => '#', 'dataIndex' => 'APP_NUMBER', 'width' => 45, 'align' => 'center'); + $caseColumns[] = array( 'header' => '', 'dataIndex' => 'CASE_SUMMARY', 'width' => 15, 'align' => 'center', 'sorteable'=>false); $caseColumns[] = array( 'header' => '', 'dataIndex' => 'CASE_NOTES_COUNT', 'width' => 15, 'align' => 'center', 'sorteable'=>false); $caseColumns[] = array( 'header' => G::LoadTranslation('ID_CASE'), 'dataIndex' => 'APP_TITLE', 'width' => 150 ); $caseColumns[] = array( 'header' => 'UserUid', 'dataIndex' => 'USR_UID', 'width' => 50, 'hidden'=> true, 'hideable'=> false); @@ -372,7 +377,7 @@ $caseColumns[] = array( 'header' => G::LoadTranslation('ID_DUE_DATE'), 'dataIndex' => 'DEL_TASK_DUE_DATE', 'width' => 110); $caseColumns[] = array( 'header' => G::LoadTranslation('ID_LAST_MODIFY'),'dataIndex' => 'APP_UPDATE_DATE', 'width' => 110 ); $caseColumns[] = array( 'header' => G::LoadTranslation('ID_PRIORITY'), 'dataIndex' => 'DEL_PRIORITY', 'width' => 50 ); - + $caseReaderFields = array(); $caseReaderFields[] = array( 'name' => 'APP_UID' ); $caseReaderFields[] = array( 'name' => 'USR_UID' ); @@ -390,6 +395,7 @@ $caseReaderFields[] = array( 'name' => 'DEL_PRIORITY' ); $caseReaderFields[] = array( 'name' => 'APP_STATUS' ); $caseReaderFields[] = array( 'name' => 'APP_FINISH_DATE' ); + $caseReaderFields[] = array( 'name' => 'CASE_SUMMARY' ); $caseReaderFields[] = array( 'name' => 'CASE_NOTES_COUNT' ); return array ( 'caseColumns' => $caseColumns, 'caseReaderFields' => $caseReaderFields, 'rowsperpage' => 20, 'dateformat' => 'M d, Y' ); @@ -398,7 +404,8 @@ function getParticipated() { $caseColumns = array (); $caseColumns[] = array( 'header' => '#', 'dataIndex' => 'APP_NUMBER', 'width' => 45, 'align' => 'center'); - $caseColumns[] = array( 'header' => '', 'dataIndex' => 'CASE_NOTES_COUNT', 'width' => 15, 'align' => 'center', 'sorteable'=>false); + $caseColumns[] = array( 'header' => '', 'dataIndex' => 'CASE_SUMMARY', 'width' => 15, 'align' => 'center', 'sorteable'=>false); + $caseColumns[] = array( 'header' => '', 'dataIndex' => 'CASE_NOTES_COUNT', 'width' => 15, 'align' => 'center', 'sorteable'=>false); $caseColumns[] = array( 'header' => G::LoadTranslation('ID_CASE'), 'dataIndex' => 'APP_TITLE', 'width' => 150 ); $caseColumns[] = array( 'header' => 'UserUid', 'dataIndex' => 'USR_UID', 'width' => 50, 'hidden'=> true, 'hideable'=> false); $caseColumns[] = array( 'header' => 'PreUsrUid', 'dataIndex' => 'PREVIOUS_USR_UID', 'width' => 50, 'hidden'=> true, 'hideable'=> false); @@ -408,7 +415,7 @@ $caseColumns[] = array( 'header' => G::LoadTranslation('ID_CURRENT_USER'),'dataIndex' => 'APP_CURRENT_USER', 'width' => 120 ); $caseColumns[] = array( 'header' => G::LoadTranslation('ID_LAST_MODIFY'), 'dataIndex' => 'APP_UPDATE_DATE', 'width' => 80 ); $caseColumns[] = array( 'header' => G::LoadTranslation('ID_STATUS'), 'dataIndex' => 'APP_STATUS', 'width' => 50 ); - + $caseReaderFields = array(); $caseReaderFields[] = array( 'name' => 'APP_UID' ); $caseReaderFields[] = array( 'name' => 'USR_UID' ); @@ -426,6 +433,7 @@ $caseReaderFields[] = array( 'name' => 'DEL_PRIORITY' ); $caseReaderFields[] = array( 'name' => 'APP_STATUS' ); $caseReaderFields[] = array( 'name' => 'APP_FINISH_DATE' ); + $caseReaderFields[] = array( 'name' => 'CASE_SUMMARY' ); $caseReaderFields[] = array( 'name' => 'CASE_NOTES_COUNT' ); @@ -435,6 +443,8 @@ function getSearch() { $caseColumns = array (); $caseColumns[] = array( 'header' => '#', 'dataIndex' => 'APP_NUMBER', 'width' => 45, 'align' => 'center'); + $caseColumns[] = array( 'header' => '', 'dataIndex' => 'CASE_SUMMARY', 'width' => 15, 'align' => 'center', 'sorteable'=>false); + $caseColumns[] = array( 'header' => '', 'dataIndex' => 'CASE_NOTES_COUNT', 'width' => 15, 'align' => 'center', 'sorteable'=>false); $caseColumns[] = array( 'header' => G::LoadTranslation('ID_CASE'), 'dataIndex' => 'APP_TITLE', 'width' => 100 ); $caseColumns[] = array( 'header' => 'UserUid', 'dataIndex' => 'USR_UID', 'width' => 50 , 'hidden'=> true, 'hideable'=> false); $caseColumns[] = array( 'header' => 'PreUsrUid', 'dataIndex' => 'PREVIOUS_USR_UID', 'width' => 50 , 'hidden'=> true, 'hideable'=> false); @@ -464,15 +474,17 @@ $caseReaderFields[] = array( 'name' => 'DEL_PRIORITY' ); $caseReaderFields[] = array( 'name' => 'APP_STATUS' ); $caseReaderFields[] = array( 'name' => 'APP_FINISH_DATE' ); + $caseReaderFields[] = array( 'name' => 'CASE_SUMMARY' ); $caseReaderFields[] = array( 'name' => 'CASE_NOTES_COUNT' ); return array ( 'caseColumns' => $caseColumns, 'caseReaderFields' => $caseReaderFields, 'rowsperpage' => 20, 'dateformat' => 'M d, Y' ); } - + function getUnassigned() { $caseColumns = array (); $caseColumns[] = array( 'header' => '#', 'dataIndex' => 'APP_NUMBER', 'width' => 40, 'align' => 'left'); - $caseColumns[] = array( 'header' => '', 'dataIndex' => 'CASE_NOTES_COUNT', 'width' => 15, 'align' => 'center', 'sorteable'=>false); + $caseColumns[] = array( 'header' => '', 'dataIndex' => 'CASE_SUMMARY', 'width' => 15, 'align' => 'center', 'sorteable'=>false); + $caseColumns[] = array( 'header' => '', 'dataIndex' => 'CASE_NOTES_COUNT', 'width' => 15, 'align' => 'center', 'sorteable'=>false); $caseColumns[] = array( 'header' => G::LoadTranslation('ID_CASE'), 'dataIndex' => 'APP_TITLE', 'width' => 150 ); $caseColumns[] = array( 'header' => 'UserUid', 'dataIndex' => 'USR_UID', 'width' => 50, 'hidden'=> true, 'hideable'=> false); $caseColumns[] = array( 'header' => 'PreUsrUid', 'dataIndex' => 'PREVIOUS_USR_UID','width' => 50, 'hidden'=> true, 'hideable'=> false); @@ -502,6 +514,7 @@ $caseReaderFields[] = array( 'name' => 'DEL_PRIORITY' ); $caseReaderFields[] = array( 'name' => 'APP_STATUS' ); $caseReaderFields[] = array( 'name' => 'APP_FINISH_DATE' ); + $caseReaderFields[] = array( 'name' => 'CASE_SUMMARY' ); $caseReaderFields[] = array( 'name' => 'CASE_NOTES_COUNT' ); return array ( 'caseColumns' => $caseColumns, 'caseReaderFields' => $caseReaderFields, 'rowsperpage' => 20, 'dateformat' => 'M d, Y' ); @@ -510,7 +523,8 @@ function getPaused() { $caseColumns = array (); $caseColumns[] = array( 'header' => '#', 'dataIndex' => 'APP_NUMBER', 'width' => 45, 'align' => 'center'); - $caseColumns[] = array( 'header' => '', 'dataIndex' => 'CASE_NOTES_COUNT', 'width' => 15, 'align' => 'center', 'sorteable'=>false); + $caseColumns[] = array( 'header' => '', 'dataIndex' => 'CASE_SUMMARY', 'width' => 15, 'align' => 'center', 'sorteable'=>false); + $caseColumns[] = array( 'header' => '', 'dataIndex' => 'CASE_NOTES_COUNT', 'width' => 15, 'align' => 'center', 'sorteable'=>false); $caseColumns[] = array( 'header' => G::LoadTranslation('ID_CASE'), 'dataIndex' => 'APP_TITLE', 'width' => 150 ); $caseColumns[] = array( 'header' => 'UserUid', 'dataIndex' => 'USR_UID', 'width' => 50, 'hidden'=> true, 'hideable'=> false); $caseColumns[] = array( 'header' => 'PreUsrUid', 'dataIndex' => 'PREVIOUS_USR_UID', 'width' => 50, 'hidden'=> true, 'hideable'=> false); @@ -542,6 +556,7 @@ $caseReaderFields[] = array( 'name' => 'APP_STATUS' ); $caseReaderFields[] = array( 'name' => 'APP_FINISH_DATE' ); $caseReaderFields[] = array( 'name' => 'APP_THREAD_INDEX' ); + $caseReaderFields[] = array( 'name' => 'CASE_SUMMARY' ); $caseReaderFields[] = array( 'name' => 'CASE_NOTES_COUNT' ); return array ( 'caseColumns' => $caseColumns, 'caseReaderFields' => $caseReaderFields, 'rowsperpage' => 20, 'dateformat' => 'M d, Y' ); @@ -550,7 +565,8 @@ function getToRevise() { $caseColumns = array (); $caseColumns[] = array( 'header' => '#', 'dataIndex' => 'APP_NUMBER', 'width' => 45, 'align' => 'center'); - $caseColumns[] = array( 'header' => '', 'dataIndex' => 'CASE_NOTES_COUNT', 'width' => 15, 'align' => 'center', 'sorteable'=>false); + $caseColumns[] = array( 'header' => '', 'dataIndex' => 'CASE_SUMMARY', 'width' => 15, 'align' => 'center', 'sorteable'=>false); + $caseColumns[] = array( 'header' => '', 'dataIndex' => 'CASE_NOTES_COUNT', 'width' => 15, 'align' => 'center', 'sorteable'=>false); $caseColumns[] = array( 'header' => G::LoadTranslation('ID_CASE'), 'dataIndex' => 'APP_TITLE', 'width' => 150 ); $caseColumns[] = array( 'header' => 'UserUid', 'dataIndex' => 'USR_UID', 'width' => 50, 'hidden'=> true, 'hideable'=> false); $caseColumns[] = array( 'header' => 'PreUsrUid', 'dataIndex' => 'PREVIOUS_USR_UID','width' => 50, 'hidden'=> true, 'hideable'=> false); @@ -581,6 +597,7 @@ $caseReaderFields[] = array( 'name' => 'APP_STATUS' ); $caseReaderFields[] = array( 'name' => 'APP_FINISH_DATE' ); $caseReaderFields[] = array( 'name' => 'ID_SENT_BY' ); + $caseReaderFields[] = array( 'name' => 'CASE_SUMMARY' ); $caseReaderFields[] = array( 'name' => 'CASE_NOTES_COUNT' ); return array ( 'caseColumns' => $caseColumns, 'caseReaderFields' => $caseReaderFields, 'rowsperpage' => 20, 'dateformat' => 'M d, Y' ); @@ -588,7 +605,8 @@ function getToReassign() { $caseColumns = array (); - $caseColumns[] = array( 'header' => '', 'dataIndex' => 'CASE_NOTES_COUNT', 'width' => 15, 'align' => 'center', 'sorteable'=>false); + $caseColumns[] = array( 'header' => '', 'dataIndex' => 'CASE_SUMMARY', 'width' => 15, 'align' => 'center', 'sorteable'=>false); + $caseColumns[] = array( 'header' => '', 'dataIndex' => 'CASE_NOTES_COUNT', 'width' => 15, 'align' => 'center', 'sorteable'=>false); $caseColumns[] = array( 'header' => 'TaskUid', 'dataIndex' => 'TAS_UID' , 'width' => 150 ,'hidden'=> true, 'hideable'=> false); $caseColumns[] = array( 'header' => 'DelIndex', 'dataIndex' => 'DEL_INDEX' , 'width' => 150 ); $caseColumns[] = array( 'header' => 'UserUid', 'dataIndex' => 'USR_UID', 'width' => 50, 'hidden'=> true, 'hideable'=> false); @@ -616,16 +634,18 @@ // $caseReaderFields[] = array( 'name' => 'APP_DEL_PREVIOUS_USER' ); $caseReaderFields[] = array( 'name' => 'APP_UPDATE_DATE' ); $caseReaderFields[] = array( 'name' => 'APP_STATUS' ); + $caseReaderFields[] = array( 'name' => 'CASE_SUMMARY' ); $caseReaderFields[] = array( 'name' => 'CASE_NOTES_COUNT' ); return array ( 'caseColumns' => $caseColumns, 'caseReaderFields' => $caseReaderFields, 'rowsperpage' => 20, 'dateformat' => 'M d, Y' ); } - + function getGeneral() { $caseColumns = array (); $caseColumns[] = array( 'header' => '#', 'dataIndex' => 'APP_NUMBER', 'width' => 45, 'align' => 'center'); - $caseColumns[] = array( 'header' => '', 'dataIndex' => 'CASE_NOTES_COUNT', 'width' => 15, 'align' => 'center', 'sorteable'=>false); + $caseColumns[] = array( 'header' => '', 'dataIndex' => 'CASE_SUMMARY', 'width' => 15, 'align' => 'center', 'sorteable'=>false); + $caseColumns[] = array( 'header' => '', 'dataIndex' => 'CASE_NOTES_COUNT', 'width' => 15, 'align' => 'center', 'sorteable'=>false); $caseColumns[] = array( 'header' => G::LoadTranslation('ID_CASE'), 'dataIndex' => 'APP_TITLE', 'width' => 150 ); $caseColumns[] = array( 'header' => 'UserUid', 'dataIndex' => 'USR_UID', 'width' => 50 , 'hidden'=> true, 'hideable'=> false); $caseColumns[] = array( 'header' => 'PreUsrUid', 'dataIndex' => 'PREVIOUS_USR_UID', 'width' => 50 , 'hidden'=> true, 'hideable'=> false); @@ -648,6 +668,7 @@ $caseReaderFields[] = array( 'name' => 'APP_DEL_PREVIOUS_USER' ); $caseReaderFields[] = array( 'name' => 'APP_UPDATE_DATE' ); $caseReaderFields[] = array( 'name' => 'APP_STATUS' ); + $caseReaderFields[] = array( 'name' => 'CASE_SUMMARY' ); $caseReaderFields[] = array( 'name' => 'CASE_NOTES_COUNT' ); @@ -661,13 +682,13 @@ function getReassignList() { $caseColumns = array (); $caseColumns[] = array( 'header' => '#', 'dataIndex' => 'APP_NUMBER', 'width' => 40 ); + $caseColumns[] = array( 'header' => '', 'dataIndex' => 'CASE_SUMMARY', 'width' => 15, 'align' => 'center', 'sorteable'=>false); $caseColumns[] = array( 'header' => '', 'dataIndex' => 'CASE_NOTES_COUNT', 'width' => 15, 'align' => 'center', 'sorteable'=>false); $caseColumns[] = array( 'header' => G::LoadTranslation('ID_CASE'), 'dataIndex' => 'APP_TITLE', 'width' => 100, 'hidden'=> true); $caseColumns[] = array( 'header' => 'CaseId', 'dataIndex' => 'APP_UID' , 'width' => 200, 'hidden'=> true, 'hideable'=> false); $caseColumns[] = array( 'header' => 'User', 'dataIndex' => 'USR_UID' , 'width' => 200, 'hidden'=> true, 'hideable'=> false); $caseColumns[] = array( 'header' => G::LoadTranslation('ID_TASK'), 'dataIndex' => 'APP_TAS_TITLE', 'width' => 120 ); $caseColumns[] = array( 'header' => G::LoadTranslation('ID_PROCESS'), 'dataIndex' => 'APP_PRO_TITLE', 'width' => 120 ); -// $caseColumns[] = array( 'header' => G::LoadTranslation('ID_STATUS'), 'dataIndex' => 'APP_STATUS', 'width' => 50 ); $caseColumns[] = array( 'header' => 'Reassigned Uid', 'dataIndex' => 'APP_REASSIGN_USER_UID','width' => 120, 'hidden'=> true, 'hideable'=> false ); $caseColumns[] = array( 'header' => 'Reassigned Uid', 'dataIndex' => 'TAS_UID', 'width' => 120, 'hidden'=> true, 'hideable'=> false ); $caseColumns[] = array( 'header' => G::LoadTranslation('ID_REASSIGN_TO'),'dataIndex' => 'APP_REASSIGN_USER', 'width' => 170 ); @@ -682,11 +703,9 @@ $caseReaderFields[] = array( 'name' => 'APP_REASSIGN_USER_UID' ); $caseReaderFields[] = array( 'name' => 'TAS_UID' ); $caseReaderFields[] = array( 'name' => 'APP_REASSIGN_USER' ); -// $caseReaderFields[] = array( 'name' => 'APP_STATUS' ); -// $caseReaderFields[] = array( 'name' => 'USERS' ); + $caseReaderFields[] = array( 'name' => 'CASE_SUMMARY' ); $caseReaderFields[] = array( 'name' => 'CASE_NOTES_COUNT' ); - return array ( 'caseColumns' => $caseColumns, 'caseReaderFields' => $caseReaderFields, 'rowsperpage' => 20, 'dateformat' => 'M d, Y' ); } @@ -721,14 +740,13 @@ function getAdditionalFields($action, $confCasesList){ if ( !empty($confCasesList) && !empty($confCasesList['second']['data']) ) { foreach($confCasesList['second']['data'] as $fieldData){ if ( $fieldData['fieldType']!='key' ) { -// $label = ($fieldData['fieldType']=='case field' ) ? G::loadTranslation('ID_CASESLIST_'.$fieldData['name']) : $fieldData['label']; $label = $fieldData['label']; $caseColumns[] = array( 'header' => $label, 'dataIndex' => $fieldData['name'], 'width' => $fieldData['width'], 'align' => $fieldData['align'] ); $caseReaderFields[] = array( 'name' => $fieldData['name'] ); } } return array ( 'caseColumns' => $caseColumns, 'caseReaderFields' => $caseReaderFields, 'rowsperpage' => $confCasesList['rowsperpage'], 'dateformat' => $confCasesList['dateformat'] ); - } + } else { //seems this is only in case this user dont have the configuration for this action. switch ( $action ) { case 'draft' : @@ -758,7 +776,7 @@ function getAdditionalFields($action, $confCasesList){ $config = getGeneral(); break; case 'todo' : - default : + default : $action = 'todo'; $config = getToDo(); break; diff --git a/workflow/engine/methods/cases/cases_Step.php b/workflow/engine/methods/cases/cases_Step.php index 6cfdf3900..4fcb7d2fb 100644 --- a/workflow/engine/methods/cases/cases_Step.php +++ b/workflow/engine/methods/cases/cases_Step.php @@ -197,6 +197,7 @@ $Fields['APP_DATA']['__DYNAFORM_OPTIONS']['PREVIOUS_STEP_LABEL'] = G::loadTranslation("ID_PREVIOUS_STEP"); } $Fields['APP_DATA']['__DYNAFORM_OPTIONS']['NEXT_STEP'] = $aNextStep['PAGE']; + $Fields['APP_DATA']['__DYNAFORM_OPTIONS']['NEXT_STEP_LABEL'] = G::loadTranslation('ID_NEXT_STEP'); $oStep = new Step(); $oStep = $oStep->loadByProcessTaskPosition($_SESSION['PROCESS'], $_SESSION['TASK'], $_GET['POSITION']); @@ -432,7 +433,7 @@ $aProperties['margins']=array('left' => $aOD['OUT_DOC_LEFT_MARGIN'], 'right' => $aOD['OUT_DOC_RIGHT_MARGIN'], 'top' => $aOD['OUT_DOC_TOP_MARGIN'], 'bottom' => $aOD['OUT_DOC_BOTTOM_MARGIN']); if($aOD['OUT_DOC_PDF_SECURITY_ENABLED']=='1'){ $aProperties['pdfSecurity']=array('openPassword'=>$aOD['OUT_DOC_PDF_SECURITY_OPEN_PASSWORD'],'ownerPassword'=>$aOD['OUT_DOC_PDF_SECURITY_OWNER_PASSWORD'],'permissions'=>$aOD['OUT_DOC_PDF_SECURITY_PERMISSIONS']); - } + } $oOutputDocument->generate( $_GET['UID'], $Fields['APP_DATA'], $pathOutput, $sFilename, $aOD['OUT_DOC_TEMPLATE'], (boolean)$aOD['OUT_DOC_LANDSCAPE'], $aOD['OUT_DOC_GENERATE'],$aProperties ); //$sFilename, $aOD['OUT_DOC_TEMPLATE'], (boolean)$aOD['OUT_DOC_LANDSCAPE'], $aOD['OUT_DOC_GENERATE'] ); @@ -510,7 +511,7 @@ $oPluginRegistry =& PMPluginRegistry::getSingleton(); if ( $oPluginRegistry->existsTrigger ( PM_UPLOAD_DOCUMENT ) && class_exists ('uploadDocumentData' ) ) { $triggerDetail=$oPluginRegistry->getTriggerInfo( PM_UPLOAD_DOCUMENT ); - + $sPathName = PATH_DOCUMENT . $_SESSION['APPLICATION'] . PATH_SEP; @@ -896,7 +897,7 @@ } $sAux .= ''; $aFields['TASK'][$sKey]['NEXT_TASK']['TAS_CALENDAR'] = $sAux; - + } @@ -982,7 +983,7 @@ parent.showCaseNavigatorPanel('$sStatus'); } "); - + G::RenderPage('publish', 'blank'); if( $_SESSION['TRIGGER_DEBUG']['ISSET'] ){ diff --git a/workflow/engine/methods/cases/open.php b/workflow/engine/methods/cases/open.php index 3a7574da7..232264c52 100755 --- a/workflow/engine/methods/cases/open.php +++ b/workflow/engine/methods/cases/open.php @@ -22,7 +22,7 @@ * Coral Gables, FL, 33134, USA, or email info@colosa.com. * */ - + /** * @author Erik Amaru Ortiz * @date Jan 3th, 2010 @@ -36,17 +36,17 @@ G::LoadClass("case"); $oCase = new Cases(); $conf = new Configurations; - - $oHeadPublisher =& headPublisher::getSingleton(); + + $oHeadPublisher =& headPublisher::getSingleton(); $oHeadPublisher->usingExtJs('ux/miframe'); - $oHeadPublisher->addExtJsScript('cases/caseNotes', true); + $oHeadPublisher->addExtJsScript('cases/caseUtils', true); $oHeadPublisher->addExtJsScript('cases/open', true); - + $uri = ''; foreach($_GET as $k=>$v) { $uri .= ($uri == '')? "$k=$v": "&$k=$v"; } - + $case = $oCase->loadCase($_GET['APP_UID'], $_GET['DEL_INDEX']); if (!isset($_GET['to_revise'])){ diff --git a/workflow/engine/methods/cases/summary.php b/workflow/engine/methods/cases/summary.php new file mode 100644 index 000000000..1678dcfb7 --- /dev/null +++ b/workflow/engine/methods/cases/summary.php @@ -0,0 +1,80 @@ +. + * + * For more information, contact Colosa Inc, 2566 Le Jeune Rd., + * Coral Gables, FL, 33134, USA, or email info@colosa.com. + * + */ + +try { + global $RBAC; + switch ($RBAC->userCanAccess('PM_CASES')) { + case -2: + throw new Exception(G::LoadTranslation('ID_USER_HAVENT_RIGHTS_SYSTEM')); + break; + case -1: + throw new Exception(G::LoadTranslation('ID_USER_HAVENT_RIGHTS_PAGE')); + break; + } + + if (!isset($_REQUEST['APP_UID']) || !isset($_REQUEST['DEL_INDEX']) || !isset($_REQUEST['DYN_UID'])) { + throw new Exception(G::LoadTranslation('ID_REQUIRED_FIELDS_ERROR') . ' (APP_UID, DEL_INDEX, DYN_UID)'); + } + + if ($_REQUEST['APP_UID'] == '' || $_REQUEST['DEL_INDEX'] == '' || $_REQUEST['DYN_UID'] == '') { + throw new Exception(G::LoadTranslation('ID_REQUIRED_FIELDS_ERROR') . ' (APP_UID, DEL_INDEX, DYN_UID)'); + } + + G::LoadClass('case'); + $case = new Cases(); + if ($RBAC->userCanAccess('PM_ALLCASES') < 0 && $case->userParticipatedInCase($_REQUEST['APP_UID'], $_SESSION['USER_LOGGED']) == 0) { + throw new Exception(G::LoadTranslation('ID_NO_PERMISSION_NO_PARTICIPATED')); + } + + $applicationFields = $case->loadCase($_REQUEST['APP_UID'], $_REQUEST['DEL_INDEX']); + + if (file_exists(PATH_DYNAFORM . $applicationFields['PRO_UID'] . PATH_SEP . $_REQUEST['DYN_UID'] . '.xml')) { + $applicationFields['APP_DATA']['__DYNAFORM_OPTIONS']['PREVIOUS_STEP_LABEL'] = ''; + $applicationFields['APP_DATA']['__DYNAFORM_OPTIONS']['PREVIOUS_STEP'] = '#'; + $applicationFields['APP_DATA']['__DYNAFORM_OPTIONS']['NEXT_STEP_LABEL'] = ''; + $applicationFields['APP_DATA']['__DYNAFORM_OPTIONS']['NEXT_ACTION'] = '#'; + + G::LoadClass ('dbConnections'); + $_SESSION['PROCESS'] = $applicationFields['PRO_UID']; + $dbConnections = new dbConnections($_SESSION['PROCESS']); + $dbConnections->loadAdditionalConnections(); + $_SESSION['CURRENT_DYN_UID'] = $_REQUEST['DYN_UID']; + + global $G_PUBLISH; + $G_PUBLISH = new Publisher(); + $G_PUBLISH->AddContent('dynaform', 'xmlform', $applicationFields['PRO_UID'] . '/' . $_REQUEST['DYN_UID'], '', $applicationFields['APP_DATA'], '', '', 'view'); + G::RenderPage('publish', 'blank'); + } + else { + throw new Exception(G::LoadTranslation('INVALID_FILE') . ': ' . $_REQUEST['DYN_UID']); + } +} +catch (Exception $error) { + global $G_PUBLISH; + $G_PUBLISH = new Publisher(); + $G_PUBLISH->AddContent('xmlform', 'xmlform', 'login/showMessage', '', array('MESSAGE' => $error->getMessage())); + G::RenderPage('publish', 'blank'); + die(); +} \ No newline at end of file diff --git a/workflow/engine/methods/cases/summaryAjax.php b/workflow/engine/methods/cases/summaryAjax.php new file mode 100644 index 000000000..8e72714a2 --- /dev/null +++ b/workflow/engine/methods/cases/summaryAjax.php @@ -0,0 +1,98 @@ +. + * + * For more information, contact Colosa Inc, 2566 Le Jeune Rd., + * Coral Gables, FL, 33134, USA, or email info@colosa.com. + * + */ + +if (!isset($_REQUEST['action'])) { + $_REQUEST['action'] = 'getDataSummary'; +} +if ($_REQUEST['action'] == '') { + $_REQUEST['action'] = 'getDataSummary'; +} + +try { + global $RBAC; + switch ($RBAC->userCanAccess('PM_CASES')) { + case -2: + throw new Exception(G::LoadTranslation('ID_USER_HAVENT_RIGHTS_SYSTEM')); + break; + case -1: + throw new Exception(G::LoadTranslation('ID_USER_HAVENT_RIGHTS_PAGE')); + break; + } + + if (!isset($_REQUEST['APP_UID']) || !isset($_REQUEST['DEL_INDEX'])) { + throw new Exception(G::LoadTranslation('ID_REQUIRED_FIELDS_ERROR') . ' (APP_UID, DEL_INDEX)'); + } + + G::LoadClass('case'); + $case = new Cases(); + if ($RBAC->userCanAccess('PM_ALLCASES') < 0 && $case->userParticipatedInCase($_REQUEST['APP_UID'], $_SESSION['USER_LOGGED']) == 0) { + throw new Exception(G::LoadTranslation('ID_NO_PERMISSION_NO_PARTICIPATED')); + } + + $json = new Services_JSON(); + $response = new stdclass(); + $response->type = 'OK'; + switch ($_REQUEST['action']) { + case 'getDataSummary': + $response->labels = new stdclass(); + $form = new Form('cases/cases_Resume', PATH_XMLFORM, SYS_LANG); + foreach($form->fields as $fieldName => $field) { + $response->labels->{$fieldName} = $field->label; + } + $applicationFields = $case->loadCase($_REQUEST['APP_UID'], $_REQUEST['DEL_INDEX']); + $process = new Process(); + $processData = $process->load($applicationFields['PRO_UID']); + if (!isset($processData['PRO_DYNAFORMS']['PROCESS'])) { + $processData['PRO_DYNAFORMS']['PROCESS'] = ''; + } + $task = new Task(); + $taskData = $task->load($applicationFields['TAS_UID']); + $response->values = new stdclass(); + $response->values->PRO_TITLE = $processData['PRO_TITLE']; + $response->values->TITLE = $applicationFields['TITLE']; + $response->values->APP_NUMBER = $applicationFields['APP_NUMBER']; + $response->values->STATUS = $applicationFields['STATUS']; + $response->values->APP_UID = $applicationFields['APP_UID']; + $response->values->CREATOR = $applicationFields['CREATOR']; + $response->values->CREATE_DATE = $applicationFields['CREATE_DATE']; + $response->values->UPDATE_DATE = $applicationFields['UPDATE_DATE']; + $response->values->TAS_TITLE = $taskData['TAS_TITLE']; + $response->values->CURRENT_USER = $applicationFields['CURRENT_USER']; + $response->values->DEL_DELEGATE_DATE = $applicationFields['DEL_DELEGATE_DATE']; + $response->values->DEL_INIT_DATE = $applicationFields['DEL_INIT_DATE']; + $response->values->DEL_TASK_DUE_DATE = $applicationFields['DEL_TASK_DUE_DATE']; + $response->values->DEL_FINISH_DATE = $applicationFields['DEL_FINISH_DATE']; + $response->values->DYN_UID = $processData['PRO_DYNAFORMS']['PROCESS']; + break; + } + die($json->encode($response)); +} +catch (Exception $error) { + $response = new stdclass(); + $response->type = 'ERROR'; + $response->message = $error->getMessage(); + $json = new Services_JSON(); + die($json->encode($response)); +} \ No newline at end of file diff --git a/workflow/engine/methods/processes/processes_Save.php b/workflow/engine/methods/processes/processes_Save.php index ab308042c..2b7698e7e 100644 --- a/workflow/engine/methods/processes/processes_Save.php +++ b/workflow/engine/methods/processes/processes_Save.php @@ -1,10 +1,10 @@ . - * - * For more information, contact Colosa Inc, 2566 Le Jeune Rd., + * + * For more information, contact Colosa Inc, 2566 Le Jeune Rd., * Coral Gables, FL, 33134, USA, or email info@colosa.com. - * + * */ - + /* * This is a ajax response file - * + * */ G::LoadThirdParty('pear/json','class.json'); @@ -45,44 +45,47 @@ switch($function){ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); $aRow = $oDataset->getRow(); - print ($aRow['PROCESS']?true:false); + print($aRow['PROCESS'] ? true : false); break; - default: if ( isset($_GET['PRO_UID'])) { $_POST['form']['PRO_UID'] = $_GET['PRO_UID']; } - + G::LoadClass('processMap'); $oProcessMap = new ProcessMap(); - if( !isset($_POST['form']['PRO_UID']) ) { + if (!isset($_POST['form']['PRO_UID'])) { $_POST['form']['USR_UID'] = $_SESSION['USER_LOGGED']; $oJSON = new Services_JSON(); require_once 'classes/model/Task.php'; - + $sProUid = $oProcessMap->createProcess($_POST['form']); - + //call plugins $oData['PRO_UID'] = $sProUid; - $oData['PRO_TEMPLATE'] = (isset($_POST['form']['PRO_TEMPLATE']) && $_POST['form']['PRO_TEMPLATE']!='')?$_POST['form']['PRO_TEMPLATE']:''; + $oData['PRO_TEMPLATE'] = (isset($_POST['form']['PRO_TEMPLATE']) && $_POST['form']['PRO_TEMPLATE'] != '') ? $_POST['form']['PRO_TEMPLATE'] : ''; $oData['PROCESSMAP'] = $oProcessMap; - + $oPluginRegistry =& PMPluginRegistry::getSingleton(); - $oPluginRegistry->executeTriggers ( PM_NEW_PROCESS_SAVE , $oData ); - - G::header('location: processes_Map?PRO_UID='. $sProUid ); + $oPluginRegistry->executeTriggers(PM_NEW_PROCESS_SAVE, $oData); + + G::header('location: processes_Map?PRO_UID=' . $sProUid); die; - } else { + } + else { + $_POST['form']['PRO_DYNAFORMS'] = array(); + $_POST['form']['PRO_DYNAFORMS']['PROCESS'] = isset($_POST['form']['PRO_SUMMARY_DYNAFORM']) ? $_POST['form']['PRO_SUMMARY_DYNAFORM'] : ''; + unset($_POST['form']['PRO_SUMMARY_DYNAFORM']); $oProcessMap->updateProcess($_POST['form']); $sProUid = $_POST['form']['PRO_UID']; } - + //Save Calendar ID for this process G::LoadClass("calendar"); $calendarObj=new Calendar(); - $calendarObj->assignCalendarTo($sProUid,$_POST['form']['PRO_CALENDAR'],'PROCESS'); - - if ($_POST['form']['THETYPE'] == ''){ + $calendarObj->assignCalendarTo($sProUid, $_POST['form']['PRO_CALENDAR'], 'PROCESS'); + + if ($_POST['form']['THETYPE'] == '') { G::header('location: main'); } break; diff --git a/workflow/engine/templates/cases/caseNotes.js b/workflow/engine/templates/cases/caseUtils.js similarity index 61% rename from workflow/engine/templates/cases/caseNotes.js rename to workflow/engine/templates/cases/caseUtils.js index c0fff5008..707e1ca6e 100644 --- a/workflow/engine/templates/cases/caseNotes.js +++ b/workflow/engine/templates/cases/caseUtils.js @@ -1,3 +1,5 @@ +/* Case Notes - Start */ + function closeCaseNotesWindow(){ if(Ext.get("caseNotesWindowPanel")){ Ext.get("caseNotesWindowPanel").destroy(); @@ -172,7 +174,7 @@ caseNotesWindow = new Ext.Window({ { cls: 'x-toolbar1', text: _('ID_SUBMIT_NOTE'), - iconCls: 'x-pm-startcase-btn', + iconCls: 'x-pm-notes-btn', scale: 'large', stype:'button', iconAlign: 'top', @@ -256,3 +258,166 @@ function statusBarMessage( msg, isLoading, success ) { } } + +/* Case Notes - End */ +/* Case Summary - Start */ +Ext.util.Format.capitalize = (function(){ + var re = /(^|[^\w])([a-z])/g, + fn = function(m, a, b) { + return a + b.toUpperCase(); + }; + return function(v) { + return v.toLowerCase().replace(re, fn); + } +})(); + +var openSummaryWindow = function(applicationUID, delegation) { + var summaryForm = new Ext.FormPanel({ + title: Ext.util.Format.capitalize(_('ID_GENERATE_INFO')), + frame : true, + height: 440, + labelWidth: 150, + items : [{ + xtype: 'displayfield', + name: 'TITLE1', + labelStyle: 'font-weight:bold;' + }, + { + xtype: 'displayfield', + name: 'PRO_TITLE' + }, + { + xtype: 'displayfield', + name: 'TITLE' + }, + { + xtype: 'displayfield', + name: 'APP_NUMBER' + }, + { + xtype: 'displayfield', + name: 'STATUS' + }, + { + xtype: 'displayfield', + name: 'APP_UID' + }, + { + xtype: 'displayfield', + name: 'CREATOR' + }, + { + xtype: 'displayfield', + name: 'CREATE_DATE' + }, + { + xtype: 'displayfield', + name: 'UPDATE_DATE' + }, + { + xtype: 'displayfield', + name: 'TITLE2', + labelStyle: 'font-weight:bold;' + }, + { + xtype: 'displayfield', + name: 'TAS_TITLE' + }, + { + xtype: 'displayfield', + name: 'CURRENT_USER' + }, + { + xtype: 'displayfield', + name: 'DEL_DELEGATE_DATE' + }, + { + xtype: 'displayfield', + name: 'DEL_INIT_DATE' + }, + { + xtype: 'displayfield', + name: 'DEL_TASK_DUE_DATE' + }, + { + xtype: 'displayfield', + name: 'DEL_FINISH_DATE' + }], + }); + + var summaryWindow = new Ext.Window({ + title: _('ID_SUMMARY'), + id: 'summaryWindow', + width: 750, + height: 500, + minWidth: 750, + minHeight: 500, + left: 0, + top: 0, + resizable: false, + closable: true, + modal: true, + autoScroll:true, + shadow: true, + bodyBorder: false, + keys: { + key: 27, + fn: function() { + summaryWindow.close(); + } + }, + listeners: { + show: function() { + this.loadMask = new Ext.LoadMask(this.body, { + msg: _('ID_LOADING') + }); + this.loadMask.show(); + Ext.Ajax.request({ + url : '../cases/summaryAjax', + params : { + action : 'getDataSummary', + APP_UID: applicationUID, + DEL_INDEX: delegation + }, + success: function (result, request) { + var response = Ext.util.JSON.decode(result.responseText); + var tabs = []; + if (response.values.DYN_UID != '') { + tabs.push({title: Ext.util.Format.capitalize(_('ID_MORE_INFORMATION')), bodyCfg: { + tag: 'iframe', + id: 'summaryIFrame', + src: '../cases/summary?APP_UID=' + applicationUID + '&DEL_INDEX=' + delegation + '&DYN_UID=' + response.values.DYN_UID, + style: {border: '0px none', height: '440px'}, + onload: '' + }}); + } + for (var fieldName in response.labels) { + var field = summaryForm.getForm().findField(fieldName); + if (field) { + field.fieldLabel = response.labels[fieldName]; + } + } + summaryForm.getForm().setValues(response.values); + tabs.push(summaryForm); + var summaryTabs = new Ext.TabPanel({ + activeTab: 0, + items: tabs + }); + summaryWindow.add(summaryTabs); + summaryWindow.doLayout(); + summaryWindow.loadMask.hide(); + }, + failure: function (result, request) { + Ext.MessageBox.alert('Failed', result.responseText); + } + }); + }, + close: function() { + var summaryIFrame = document.getElementById('summaryIFrame'); + delete(summaryIFrame); + } + } + }); + summaryWindow.show(); +}; +/* Case Summary - End*/ \ No newline at end of file diff --git a/workflow/engine/templates/cases/casesList.js b/workflow/engine/templates/cases/casesList.js index 8e995576b..cff28d456 100755 --- a/workflow/engine/templates/cases/casesList.js +++ b/workflow/engine/templates/cases/casesList.js @@ -22,8 +22,16 @@ var storeReassignCases; var grid; var textJump; +var caseSummary = function() { + var rowModel = grid.getSelectionModel().getSelected(); + if (rowModel) { + openSummaryWindow(rowModel.data.APP_UID, rowModel.data.DEL_INDEX); + } + else { + msgBox('Information', TRANSLATIONS.ID_SELECT_ONE_AT_LEAST); + } +}; -/** */ function caseNotes(){ var rowModel = grid.getSelectionModel().getSelected(); if(rowModel){ @@ -42,7 +50,7 @@ function openCase(){ var appUid = rowModel.data.APP_UID; var delIndex = rowModel.data.DEL_INDEX; var caseTitle = (rowModel.data.APP_TITLE) ? rowModel.data.APP_TITLE : rowModel.data.APP_UID; - + Ext.Msg.show({ msg: TRANSLATIONS.ID_OPEN_CASE + ' ' + caseTitle, width:300, @@ -74,8 +82,17 @@ function openCase(){ requestFile = 'open'; break; } - - parent._CASE_TITLE = caseTitle; + try { + try { + parent._CASE_TITLE = caseTitle; + } + catch (e) { + // Nothing to do + } + } + catch (e) { + // Nothing to do + } params += '&action=' + action; redirect(requestFile + '?' + params); @@ -108,9 +125,19 @@ function deleteCase() { Ext.Ajax.request({ url: 'cases_Delete', success: function(response) { - parent.updateCasesView(); + try { + parent.updateCasesView(); + } + catch (e) { + // Nothing to do + } Ext.MessageBox.hide(); - parent.updateCasesTree(); + try { + parent.updateCasesTree(); + } + catch (e) { + // Nothing to do + } }, params: {APP_UIDS:APP_UIDS} }); @@ -143,8 +170,19 @@ function pauseCase(date){ Ext.Ajax.request({ url: 'cases_Ajax', success: function(response) { - parent.updateCasesView(); - parent.updateCasesTree(); + try { + parent.updateCasesView(); + } + catch (e) { + // Nothing to do + } + Ext.MessageBox.hide(); + try { + parent.updateCasesTree(); + } + catch (e) { + // Nothing to do + } Ext.MessageBox.hide(); }, params: {action:'pauseCase', unpausedate:unpauseDate, APP_UID:rowModel.data.APP_UID, DEL_INDEX: rowModel.data.DEL_INDEX} @@ -178,9 +216,19 @@ function cancelCase(){ Ext.Ajax.request({ url: 'cases_Ajax', success: function(response) { - parent.updateCasesView(); + try { + parent.updateCasesView(); + } + catch (e) { + // Nothing to do + } Ext.MessageBox.hide(); - parent.updateCasesTree(); + try { + parent.updateCasesTree(); + } + catch (e) { + // Nothing to do + } }, params: {action:'cancelCase', APP_UID:APP_UIDS, DEL_INDEX:DEL_INDEXES} }); @@ -206,9 +254,19 @@ function callbackUnpauseCase (btn, text) { Ext.Ajax.request({ url: 'cases_Ajax', success: function(response) { - parent.updateCasesView(); + try { + parent.updateCasesView(); + } + catch (e) { + // Nothing to do + } Ext.MessageBox.hide(); - parent.updateCasesTree(); + try { + parent.updateCasesTree(); + } + catch (e) { + // Nothing to do + } }, params: {action:'unpauseCase', sApplicationUID: caseIdToUnpause, iIndex: caseIndexToUnpause} }); @@ -226,9 +284,19 @@ function unpauseCase() { Ext.Ajax.request({ url: 'cases_Ajax', success: function(response) { - parent.updateCasesView(); + try { + parent.updateCasesView(); + } + catch (e) { + // Nothing to do + } Ext.MessageBox.hide(); - parent.updateCasesTree(); + try { + parent.updateCasesTree(); + } + catch (e) { + // Nothing to do + } }, params: {action:'unpauseCase', sApplicationUID: caseIdToUnpause, iIndex: caseIndexToUnpause} }); @@ -242,14 +310,19 @@ function redirect(href){ Ext.onReady ( function() { Ext.state.Manager.setProvider(new Ext.state.CookieProvider()); - + var ids = ''; var filterProcess = ''; var filterUser = ''; var caseIdToDelete = ''; var caseIdToUnpause = ''; var caseIndexToUnpause = ''; - parent._action = action; + try { + parent._action = action; + } + catch (e) { + // Nothing to do + } function openLink(value, p, r){ return String.format("" + TRANSLATIONS.ID_VIEW + "", r.data['APP_UID'], r.data['DEL_INDEX'], r.data['APP_TITLE']); @@ -295,6 +368,12 @@ Ext.onReady ( function() { return String.format("{0}", myDate.dateFormat(PMDateFormat), myColor ); } + var renderSummary = function (val, p, r) { + var summaryIcon = ''; + return summaryIcon; + }; + function renderNote(val,p,r) { appUid="'"+r.data['APP_UID']+"'"; return ''; @@ -315,6 +394,7 @@ Ext.onReady ( function() { if( c.id == 'deleteLink') c.renderer = deleteLink; if( c.id == 'viewLink') c.renderer = viewLink; if( c.id == 'unpauseLink') c.renderer = unpauseLink; + if( c.dataIndex == 'CASE_SUMMARY') c.renderer = renderSummary; if( c.dataIndex == 'CASE_NOTES_COUNT') c.renderer = renderNote; } @@ -361,7 +441,7 @@ Ext.onReady ( function() { // text: 'Reassign All', // text: TRANSLATIONS.LABEL_SELECT_ALL, handler: function(){ - + var rs = storeReassignCases.getModifiedRecords(); var sv = []; for(var i = 0; i <= rs.length-1; i++){ @@ -369,7 +449,7 @@ Ext.onReady ( function() { sv[i]= rs[i].data; } var gridData = storeReassignCases.getModifiedRecords(); - + Ext.Ajax.request({ url: 'proxySaveReassignCasesList', success: function(response) { @@ -378,7 +458,7 @@ Ext.onReady ( function() { }, params: { APP_UIDS:ids, data:Ext.util.JSON.encode(sv), selected:false } }); - + /* storeReassignCases.setBaseParam('selected', false); var result = storeReassignCases.save(); @@ -388,7 +468,7 @@ Ext.onReady ( function() { //storeReassignCases.reload(); } }); - + var btnExecReassignSelected = new Ext.Button ({ text: TRANSLATIONS.ID_REASSIGN, // text: 'Reassign', @@ -411,26 +491,26 @@ Ext.onReady ( function() { var ajaxServerResponse = Ext.util.JSON.decode(response.responseText); var count; var message = ''; - + for (count in ajaxServerResponse) { if ( ajaxServerResponse[count]['TAS_TITLE'] != undefined ){ message = message + "Task: " + ajaxServerResponse[count]['TAS_TITLE'] + " - Reassigned Cases: " + ajaxServerResponse[count]['REASSIGNED_CASES'] + "
" ; }; } - + if (ajaxServerResponse['TOTAL']!=undefined&&ajaxServerResponse['TOTAL']!=-1){ message = message + "Total Cases Reassigned: " + ajaxServerResponse['TOTAL']; } else { message = ""; }; - + if (message!=""){ Ext.MessageBox.alert( 'Status Reassignment', message, '' ); } }, params: { APP_UIDS:ids, data:Ext.util.JSON.encode(sv), selected:true } }); - + /*storeReassignCases.setBaseParam('selected', true); var result = storeReassignCases.save(); //storeCases.load({params:{process: filterProcess, start : 0 , limit : pageSize}}); @@ -440,7 +520,7 @@ Ext.onReady ( function() { */ } }); - + // Create HttpProxy instance, all CRUD requests will be directed to single proxy url. var proxyCasesList = new Ext.data.HttpProxy({ api: { @@ -586,7 +666,7 @@ Ext.onReady ( function() { ' {APP_PRO_TITLE}', '' ); - + var comboProcess = new Ext.form.ComboBox({ width : 200, boxMaxWidth : 200, @@ -631,7 +711,7 @@ Ext.onReady ( function() { mode : 'local', forceSelection: true, triggerAction: 'all', - + emptyText: TRANSLATIONS.ID_EMPTY_USERS, selectOnFocus: true, //getListParent: function() { @@ -873,8 +953,6 @@ Ext.onReady ( function() { } function enableDisableMenuOption(){ - - var rows = grid.getSelectionModel().getSelections(); switch(action){ case 'todo': @@ -942,53 +1020,64 @@ Ext.onReady ( function() { }); - - - reassingCaseToUser = function() - { - var APP_UID = optionMenuReassignGlobal.APP_UID; - var DEL_INDEX = optionMenuReassignGlobal.DEL_INDEX; - - var rowSelected = Ext.getCmp('reassignGrid').getSelectionModel().getSelected(); - if( rowSelected ) { - PMExt.confirm(_('ID_CONFIRM'), _('ID_REASSIGN_CONFIRM'), function(){ - Ext.Ajax.request({ - url : 'casesList_Ajax' , - params : {actionAjax : 'reassignCase', USR_UID: rowSelected.data.USR_UID, APP_UID: APP_UID, DEL_INDEX:DEL_INDEX}, - success: function ( result, request ) { - var data = Ext.util.JSON.decode(result.responseText); - if( data.status == 0 ) { - parent.notify('', data.msg); - location.href = 'casesListExtJs'; - } else { - alert(data.msg); - } - }, - failure: function ( result, request) { - Ext.MessageBox.alert('Failed', result.responseText); - } - }); - }); - } - } + var optionMenuSummary = new Ext.Action({ + text: _('ID_SUMMARY'), + iconCls: 'x-tree-node-icon ss_application_form', + handler: caseSummary + }); + optionMenuNotes = new Ext.Action({ text: _('ID_CASES_NOTES'), iconCls: 'ICON_CASES_NOTES', handler: caseNotes }); + reassingCaseToUser = function() { var APP_UID = optionMenuReassignGlobal.APP_UID; var DEL_INDEX = optionMenuReassignGlobal.DEL_INDEX; - + var rowSelected = Ext.getCmp('reassignGrid').getSelectionModel().getSelected(); if( rowSelected ) { PMExt.confirm(_('ID_CONFIRM'), _('ID_REASSIGN_CONFIRM'), function(){ Ext.Ajax.request({ - url : 'casesList_Ajax' , + url : 'casesList_Ajax' , params : {actionAjax : 'reassignCase', USR_UID: rowSelected.data.USR_UID, APP_UID: APP_UID, DEL_INDEX:DEL_INDEX}, success: function ( result, request ) { - var data = Ext.util.JSON.decode(result.responseText); + var data = Ext.util.JSON.decode(result.responseText); + if( data.status == 0 ) { + try { + parent.notify('', data.msg); + } + catch (e) { + // Nothing to do + } + location.href = 'casesListExtJs'; + } else { + alert(data.msg); + } + }, + failure: function ( result, request) { + Ext.MessageBox.alert('Failed', result.responseText); + } + }); + }); + } + } + + reassingCaseToUser = function() + { + var APP_UID = optionMenuReassignGlobal.APP_UID; + var DEL_INDEX = optionMenuReassignGlobal.DEL_INDEX; + + var rowSelected = Ext.getCmp('reassignGrid').getSelectionModel().getSelected(); + if( rowSelected ) { + PMExt.confirm(_('ID_CONFIRM'), _('ID_REASSIGN_CONFIRM'), function(){ + Ext.Ajax.request({ + url : 'casesList_Ajax' , + params : {actionAjax : 'reassignCase', USR_UID: rowSelected.data.USR_UID, APP_UID: APP_UID, DEL_INDEX:DEL_INDEX}, + success: function ( result, request ) { + var data = Ext.util.JSON.decode(result.responseText); if( data.status == 0 ) { parent.notify('', data.msg); location.href = 'casesListExtJs'; @@ -997,36 +1086,36 @@ Ext.onReady ( function() { } }, failure: function ( result, request) { - Ext.MessageBox.alert('Failed', result.responseText); + Ext.MessageBox.alert('Failed', result.responseText); } }); }); - } + } } //optionMenuPause.setMinValue('2010-11-04'); var optionMenuReassignGlobal = {}; optionMenuReassignGlobal.APP_UID = ""; optionMenuReassignGlobal.DEL_INDEX = ""; - + optionMenuReassign = new Ext.Action({ text: TRANSLATIONS.ID_REASSIGN, iconCls: 'ICON_CASES_TO_REASSIGN', handler: function() { - - var casesGrid_ = Ext.getCmp('casesGrid'); + + var casesGrid_ = Ext.getCmp('casesGrid'); var rowSelected = casesGrid_.getSelectionModel().getSelected(); var rowAllJsonArray = casesGrid_.store.reader.jsonData.data; var rowSelectedIndex = casesGrid_.getSelectionModel().lastActive; var rowSelectedJsonArray = rowAllJsonArray[rowSelectedIndex]; - + var TAS_UID = rowSelectedJsonArray.TAS_UID; var USR_UID = rowSelectedJsonArray.USR_UID; - + var APP_UID = rowSelectedJsonArray.APP_UID; var DEL_INDEX = rowSelectedJsonArray.DEL_INDEX; - + optionMenuReassignGlobal.APP_UID = APP_UID; - optionMenuReassignGlobal.DEL_INDEX = DEL_INDEX; + optionMenuReassignGlobal.DEL_INDEX = DEL_INDEX; if( rowSelected ){ var store = new Ext.data.Store( { autoLoad: true, @@ -1043,7 +1132,7 @@ Ext.onReady ( function() { ] }) }); - + var grid = new Ext.grid.GridPanel( { id: 'reassignGrid', height:300, @@ -1056,25 +1145,25 @@ Ext.onReady ( function() { frame:false, cls : 'grid_with_checkbox', columnLines: true, - + viewConfig: { forceFit:true }, - + cm: new Ext.grid.ColumnModel({ defaults: { width: 200, sortable: true - }, + }, columns: [ {id:'USR_UID', dataIndex: 'USR_UID', hidden:true, hideable:false}, {header: _('ID_FIRSTNAME'), dataIndex: 'USR_FIRSTNAME', width: 300}, {header: _('ID_LASTNAME'), dataIndex: 'USR_LASTNAME', width: 300} ] }), - + store: store, - + tbar:[ { text:_('ID_REASSIGN'), @@ -1093,7 +1182,7 @@ Ext.onReady ( function() { } } }); - + var win = new Ext.Window({ title: '', width: 450, @@ -1104,7 +1193,7 @@ Ext.onReady ( function() { maximizable: false, items: [grid] }); - win.show(); + win.show(); } } }); @@ -1122,16 +1211,15 @@ Ext.onReady ( function() { switch(action){ case 'todo': - menuItems = [optionMenuOpen, optionMenuPause,optionMenuNotes]; + menuItems = [optionMenuOpen, optionMenuPause, optionMenuSummary, optionMenuNotes]; if( ___p34315105.search('R') != -1 ) menuItems.push(optionMenuReassign); - break; case 'draft': - menuItems = [optionMenuOpen, optionMenuPause,optionMenuNotes]; + menuItems = [optionMenuOpen, optionMenuPause, optionMenuSummary, optionMenuNotes]; if( ___p34315105.search('R') != -1 ) menuItems.push(optionMenuReassign); menuItems.push(optionMenuDelete); @@ -1139,11 +1227,11 @@ Ext.onReady ( function() { break; case 'paused': - menuItems = [optionMenuUnpause,optionMenuNotes]; + menuItems = [optionMenuUnpause, optionMenuSummary, optionMenuNotes]; break; default: - menuItems = [optionMenuNotes] + menuItems = [optionMenuSummary, optionMenuNotes] } var messageContextMenu = new Ext.menu.Menu({ @@ -1370,7 +1458,7 @@ Ext.onReady ( function() { items: itemToolbar }); - + // create the editor grid grid = new Ext.grid.GridPanel({ region: 'center', @@ -1381,8 +1469,8 @@ Ext.onReady ( function() { layout: 'fit', viewConfig: { forceFit:true, - cls:"x-grid-empty", - emptyText: (TRANSLATIONS.ID_NO_RECORDS_FOUND) + cls:"x-grid-empty", + emptyText: (TRANSLATIONS.ID_NO_RECORDS_FOUND) }, listeners: { rowdblclick: openCase, @@ -1414,13 +1502,13 @@ Ext.onReady ( function() { }, this); grid.addListener('rowcontextmenu', onMessageContextMenu,this); - - // patch in order to hide the USR_UIR and PREVIOUS_USR_UID columns + + // patch in order to hide the USR_UIR and PREVIOUS_USR_UID columns var userIndex = grid.getColumnModel().findColumnIndex('USR_UID'); if ( userIndex >= 0 ) grid.getColumnModel().setHidden(userIndex, true); var prevUserIndex = grid.getColumnModel().findColumnIndex('PREVIOUS_USR_UID'); if ( prevUserIndex >= 0 ) grid.getColumnModel().setHidden(prevUserIndex, true); - + if (action=='to_reassign'){ //grid.getColumnModel().setHidden(0, true); grid.getColumnModel().setHidden(1, true); @@ -1541,7 +1629,7 @@ var gridForm = new Ext.FormPanel({ //newPopUp.add(reassignGrid); newPopUp.add(gridForm); newPopUp.addButton(btnExecReassignSelected); - //newPopUp.addButton(btnExecReassign); + //newPopUp.addButton(btnExecReassign); newPopUp.addButton(btnCloseReassign); //storeProcesses.load(); @@ -1623,16 +1711,25 @@ var gridForm = new Ext.FormPanel({ break; } - if( _nodeId != '' ){ - treePanel1 = parent.Ext.getCmp('tree-panel') - if(treePanel1) - node = treePanel1.getNodeById(_nodeId); - if(node) - node.select(); + try { + if ( _nodeId != '' ){ + treePanel1 = parent.Ext.getCmp('tree-panel') + if(treePanel1) + node = treePanel1.getNodeById(_nodeId); + if(node) + node.select(); + } + } + catch (e) { + // Nothing to do } - //parent.updateCasesView(); - parent.updateCasesTree(); + try { + parent.updateCasesTree(); + } + catch (e) { + // Nothing to do + } comboStatus.setValue(''); comboProcess.setValue(''); // hidding the buttons for the reassign diff --git a/workflow/engine/xmlform/cases/cases_Resume.xml b/workflow/engine/xmlform/cases/cases_Resume.xml index df1fc06e5..35833189e 100644 --- a/workflow/engine/xmlform/cases/cases_Resume.xml +++ b/workflow/engine/xmlform/cases/cases_Resume.xml @@ -1,81 +1,51 @@ - - + Case Properties - Process - - - Case Status - - <en>Case Title</en> - Case Number - + + Case Status + Case Uid - Creator - Create Date - Last Update - Current Task Properties - Task - Current User - Task Delegate Date - Task Init Date - Task Due Date - Finish Date - - - \ No newline at end of file diff --git a/workflow/engine/xmlform/gulliver/dynaforms_Options.xml b/workflow/engine/xmlform/gulliver/dynaforms_Options.xml index 584f49bad..a73eff84a 100644 --- a/workflow/engine/xmlform/gulliver/dynaforms_Options.xml +++ b/workflow/engine/xmlform/gulliver/dynaforms_Options.xml @@ -1,9 +1,10 @@ - + + -
- - - - - - - - - - - - - - - - - - - - - - - - -
{$form.PRO_TITLE}
{$PRO_DESCRIPTION}{$form.PRO_DESCRIPTION}
{$PRO_CALENDAR}{$form.PRO_CALENDAR}
{$PRO_CATEGORY}{$form.PRO_CATEGORY}
{$PRO_DEBUG}{$form.PRO_DEBUG}

{$form.SUBMIT}   {$form.BTN_CANCEL}
- - - -
* {php}echo (G::LoadTranslation('ID_REQUIRED_FIELD'));{/php}
-
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{$form.TITLE1}
{$form.PRO_UID}
{$form.THETYPE}
* {$PRO_TITLE}{$form.PRO_TITLE}
{$PRO_DESCRIPTION}{$form.PRO_DESCRIPTION}
{$PRO_CALENDAR}{$form.PRO_CALENDAR}
{$PRO_CATEGORY}{$form.PRO_CATEGORY}
{$PRO_SUMMARY_DYNAFORM}{$form.PRO_SUMMARY_DYNAFORM}
{$PRO_DEBUG}{$form.PRO_DEBUG}

{$form.SUBMIT}   {$form.BTN_CANCEL}
+ + + + +
* {php}echo (G::LoadTranslation('ID_REQUIRED_FIELD'));{/php}
- - \ No newline at end of file +
+
+ + \ No newline at end of file diff --git a/workflow/engine/xmlform/processes/processes_Edit.xml b/workflow/engine/xmlform/processes/processes_Edit.xml index 254c0e71e..3016d162b 100644 --- a/workflow/engine/xmlform/processes/processes_Edit.xml +++ b/workflow/engine/xmlform/processes/processes_Edit.xml @@ -1,8 +1,8 @@ - + - Process Information + Process Information @@ -13,20 +13,31 @@ Title - Description + -SELECT CALENDAR_UID, CALENDAR_NAME FROM availableCalendars -Calendar + +Calendar + + -SELECT CATEGORY_UID, CATEGORY_NAME FROM PROCESS_CATEGORY -Process Category + +Process Category + + + + +Dynaform to show a case summary + + + + Debug @@ -41,30 +52,28 @@ SELECT CATEGORY_UID, CATEGORY_NAME FROM PROCESS_CATEGORY - + + -]]> - - \ No newline at end of file + \ No newline at end of file