improving the dynaform list for new bpmn editor

This commit is contained in:
Fernando Ontiveros
2011-02-16 05:28:22 +00:00
parent df725f6209
commit e6687e6850
4 changed files with 730 additions and 672 deletions

View File

@@ -5129,6 +5129,7 @@ class processMap {
} }
//new functions //new functions
//deprecated
function getAllDynaformCount(){ function getAllDynaformCount(){
$c = $this->tmpCriteria; $c = $this->tmpCriteria;
$c->clearSelectColumns(); $c->clearSelectColumns();
@@ -5150,10 +5151,11 @@ class processMap {
*/ */
function getExtDynaformsList($start, $limit, $sProcessUID = '') function getExtDynaformsList($start, $limit, $sProcessUID = '')
{ {
//select the main fields for dynaform and the title and description from CONTENT Table
$sDelimiter = DBAdapter::getStringDelimiter (); $sDelimiter = DBAdapter::getStringDelimiter ();
$oCriteria = new Criteria ( 'workflow' ); $oCriteria = new Criteria ( 'workflow' );
$oCriteria->addSelectColumn ( DynaformPeer::DYN_UID ); $oCriteria->addSelectColumn ( DynaformPeer::DYN_UID );
$oCriteria->addSelectColumn ( DynaformPeer::PRO_UID ); //$oCriteria->addSelectColumn ( DynaformPeer::PRO_UID );
$oCriteria->addSelectColumn ( DynaformPeer::DYN_TYPE ); $oCriteria->addSelectColumn ( DynaformPeer::DYN_TYPE );
$oCriteria->addAsColumn ( 'DYN_TITLE', 'C1.CON_VALUE' ); $oCriteria->addAsColumn ( 'DYN_TITLE', 'C1.CON_VALUE' );
$oCriteria->addAsColumn ( 'DYN_DESCRIPTION', 'C2.CON_VALUE' ); $oCriteria->addAsColumn ( 'DYN_DESCRIPTION', 'C2.CON_VALUE' );
@@ -5170,10 +5172,11 @@ class processMap {
$aConditions [] = array ('C2.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter ); $aConditions [] = array ('C2.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria->addJoinMC ( $aConditions, Criteria::LEFT_JOIN ); $oCriteria->addJoinMC ( $aConditions, Criteria::LEFT_JOIN );
$oCriteria->add ( DynaformPeer::PRO_UID, $sProcessUID ); $oCriteria->add ( DynaformPeer::PRO_UID, $sProcessUID );
$this->tmpCriteria = clone $oCriteria;
//if we have pagination, we use it and limit the query
if($start != '') if($start != '')
$oCriteria->setOffset($start); $oCriteria->setOffset($start);
if($limit != '') if($limit != '')
$oCriteria->setLimit($limit); $oCriteria->setLimit($limit);
@@ -5181,23 +5184,82 @@ class processMap {
$oDataset->setFetchmode ( ResultSet::FETCHMODE_ASSOC ); $oDataset->setFetchmode ( ResultSet::FETCHMODE_ASSOC );
$oDataset->next (); $oDataset->next ();
$dynaformArray = array (); $dynaformArray = array ();
$dynaformArray [] = array ('d' => 'char' ); $gridLabel = G::LoadTranslation( 'ID_GRID' );
$normalLabel = G::LoadTranslation( 'ID_NORMAL' );
while ( $aRow = $oDataset->getRow () ) { 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 if (($aRow ['DYN_TITLE'] == NULL)||($aRow ['DYN_TITLE'] == "")) { // There is no transaltion for this Document name, try to get/regenerate the label
$aRow ['DYN_TITLE'] = Content::Load("DYN_TITLE","",$aRow ['DYN_UID'],SYS_LANG); $aRow ['DYN_TITLE'] = Content::Load("DYN_TITLE","",$aRow ['DYN_UID'],SYS_LANG);
} }
if (($aRow ['DYN_DESCRIPTION'] == NULL)||($aRow ['DYN_DESCRIPTION'] == "")) { // There is no transaltion for this Document name, try to get/regenerate the label if (($aRow ['DYN_DESCRIPTION'] == NULL)||($aRow ['DYN_DESCRIPTION'] == "")) { // There is no transaltion for this Document name, try to get/regenerate the label
$aRow ['DYN_DESCRIPTION'] = Content::Load("DYN_DESCRIPTION","",$aRow ['DYN_UID'],SYS_LANG); $aRow ['DYN_DESCRIPTION'] = Content::Load("DYN_DESCRIPTION","",$aRow ['DYN_UID'],SYS_LANG);
} }
if ( $aRow['DYN_TYPE'] == 'grid' ) $aRow['DYN_TYPE'] = $gridLabel;
if ( $aRow['DYN_TYPE'] == 'xmlform' ) $aRow['DYN_TYPE'] = $normalLabel;
$aRow['TAS_EDIT'] = 0;
$aRow['TAS_VIEW'] = 0;
$dynaformArray [] = $aRow; $dynaformArray [] = $aRow;
$oDataset->next (); $oDataset->next ();
} }
$result = array();
return $dynaformArray; //Now count how many times the dynaform was used in different tasks in VIEW mode,
$groupbyCriteria = new Criteria ( 'workflow' );
$groupbyCriteria->clearSelectColumns();
$groupbyCriteria->addSelectColumn ( StepPeer::STEP_UID_OBJ );
$groupbyCriteria->addSelectColumn('COUNT(TAS_UID)');
$groupbyCriteria->add(StepPeer::PRO_UID, $sProcessUID );
$groupbyCriteria->add(StepPeer::STEP_TYPE_OBJ, 'DYNAFORM' );
$groupbyCriteria->add(StepPeer::STEP_MODE, 'VIEW');
$groupbyCriteria->addGroupByColumn(StepPeer::STEP_UID_OBJ);
$oDataset = DynaformPeer::doSelectRS ( $groupbyCriteria );
$oDataset->setFetchmode ( ResultSet::FETCHMODE_ASSOC );
$oDataset->next ();
while ( $aRow = $oDataset->getRow () ) {
foreach ( $dynaformArray as $key => $val ) {
if ($val['DYN_UID'] == $aRow['STEP_UID_OBJ'] ) $dynaformArray[$key]['TAS_VIEW'] = $aRow['COUNT(TAS_UID)'] ;
}
$oDataset->next ();
}
//Now count how many times the dynaform was used in different tasks in EDIT mode,
$groupbyCriteria = new Criteria ( 'workflow' );
$groupbyCriteria->clearSelectColumns();
$groupbyCriteria->addSelectColumn ( StepPeer::STEP_UID_OBJ );
$groupbyCriteria->addSelectColumn('COUNT(TAS_UID)');
$groupbyCriteria->add(StepPeer::PRO_UID, $sProcessUID );
$groupbyCriteria->add(StepPeer::STEP_TYPE_OBJ, 'DYNAFORM' );
$groupbyCriteria->add(StepPeer::STEP_MODE, 'EDIT');
$groupbyCriteria->addGroupByColumn(StepPeer::STEP_UID_OBJ);
$oDataset = DynaformPeer::doSelectRS ( $groupbyCriteria );
$oDataset->setFetchmode ( ResultSet::FETCHMODE_ASSOC );
$oDataset->next ();
while ( $aRow = $oDataset->getRow () ) {
foreach ( $dynaformArray as $key => $val ) {
if ($val['DYN_UID'] == $aRow['STEP_UID_OBJ'] ) $dynaformArray[$key]['TAS_EDIT'] = $aRow['COUNT(TAS_UID)'] ;
}
$oDataset->next ();
}
//now query to get total dynaform for this process,
//$counCriteria is used to count how many dynaforms there are in this process
$countCriteria = new Criteria ( 'workflow' );
$countCriteria->clearSelectColumns();
$countCriteria->addSelectColumn('COUNT(*)');
$countCriteria->add ( DynaformPeer::PRO_UID, $sProcessUID );
$oDataset = DynaformPeer::doSelectRS($countCriteria);
$oDataset->next();
$aRow = $oDataset->getRow();
if( is_array($aRow) )
$result['totalCount'] = $aRow[0];
else
$result['totalCount'] = 0;
$result['data'] = $dynaformArray;
return $result;
} }

View File

@@ -1,34 +1,31 @@
<?php <?php
G::LoadClass('processMap'); G::LoadClass('processMap');
$oProcessMap = new processMap(new DBConnection); $oProcessMap = new processMap(new DBConnection);
//$_GET['sid'] gets STEP_UID and sTYPE(i.e BEFORE and AFTER) in format STEP_UID-sTYPE
if(isset($_GET['stepid'])){ //$_GET['sid'] gets STEP_UID and sTYPE(i.e BEFORE and AFTER) in format STEP_UID-sTYPE
if(isset($_GET['stepid'])){
$aStepTypeId = explode('|',$_GET['stepid']); $aStepTypeId = explode('|',$_GET['stepid']);
$_SESSION['stepUID'] = $_GET['stepid']; $_SESSION['stepUID'] = $_GET['stepid'];
//$aStepTypeId = explode('-','2517180104cd42c25cc39e4071099227-BEFORE'); //$aStepTypeId = explode('-','2517180104cd42c25cc39e4071099227-BEFORE');
$sStep = $aStepTypeId[0]; $sStep = $aStepTypeId[0];
$sType = $aStepTypeId[1]; $sType = $aStepTypeId[1];
} }
//$_GET['sid'] gets STEP_UID and sTYPE(i.e BEFORE and AFTER) in format STEP_UID-sTYPE //$_GET['sid'] gets STEP_UID and sTYPE(i.e BEFORE and AFTER) in format STEP_UID-sTYPE
if(isset($_GET['stepid'])){ if(isset($_GET['stepid'])){
$aStepTypeId = explode('|',$_GET['stepid']); $aStepTypeId = explode('|',$_GET['stepid']);
$_SESSION['stepUID'] = $_GET['stepid']; $_SESSION['stepUID'] = $_GET['stepid'];
//$aStepTypeId = explode('-','2517180104cd42c25cc39e4071099227-BEFORE'); //$aStepTypeId = explode('-','2517180104cd42c25cc39e4071099227-BEFORE');
$sStep = $aStepTypeId[0]; $sStep = $aStepTypeId[0];
$sType = $aStepTypeId[1]; $sType = $aStepTypeId[1];
} }
$start = isset($_POST['start'])? $_POST['start']: 0; $start = isset($_POST['start'])? $_POST['start']: 0;
$limit = isset($_POST['limit'])? $_POST['limit']: ''; $limit = isset($_POST['limit'])? $_POST['limit']: '';
switch($_GET['action']) switch( $_GET['action'] ) {
{ case 'getDynaformList' :
case 'getDynaformList': $result = $oProcessMap->getExtDynaformsList($start, $limit, $_GET['pid']);
$rows = $oProcessMap->getExtDynaformsList($start, $limit, $_GET['pid']);
$result['totalCount'] = $oProcessMap->getAllDynaformCount();
array_shift($rows);
$result['data'] = $rows;
print json_encode( $result ) ; print json_encode( $result ) ;
break; break;
@@ -336,13 +333,12 @@ switch($_GET['action'])
$result = $tmpData; $result = $tmpData;
echo $result; echo $result;
break; break;
} }
//$result['data'] = $rows; //$result['data'] = $rows;
//print json_encode( $result ) ; //print json_encode( $result ) ;
/*$tmpData = json_encode( $rows ) ; /*$tmpData = json_encode( $rows ) ;
$tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // unescape the slashes $tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // unescape the slashes
$result = $tmpData; $result = $tmpData;
echo $result;*/ echo $result;*/
?>

View File

@@ -46,9 +46,9 @@ if( $access != 1 ){
} }
$processUID = $_GET['PRO_UID']; $processUID = $_GET['PRO_UID'];
if ( isset($_SESSION['PROCESSMAP']) && $_SESSION['PROCESSMAP'] == 'BPMN' ) { //if ( isset($_SESSION['PROCESSMAP']) && $_SESSION['PROCESSMAP'] == 'BPMN' ) {
header ( "Location: ../bpmn/processmap?PRO_UID=". $processUID ); // header ( "Location: ../bpmn/processmap?PRO_UID=". $processUID );
} //}
$_SESSION['PROCESS'] = $processUID; $_SESSION['PROCESS'] = $processUID;
$_SESSION['PROCESSMAP'] = 'LEIMNUD'; $_SESSION['PROCESSMAP'] = 'LEIMNUD';

View File

@@ -15,7 +15,9 @@ ProcessOptions.prototype.addDynaform= function(_5625)
{name: 'DYN_UID'}, {name: 'DYN_UID'},
{name: 'DYN_TYPE'}, {name: 'DYN_TYPE'},
{name: 'DYN_TITLE'}, {name: 'DYN_TITLE'},
{name: 'DYN_DISCRIPTION'}, {name: 'DYN_DESCRIPTION'},
{name: 'TAS_EDIT'},
{name: 'TAS_VIEW'},
{name: 'ACTION'} {name: 'ACTION'}
]); ]);
@@ -111,6 +113,8 @@ ProcessOptions.prototype.addDynaform= function(_5625)
items: [btnAdd, btnRemove] items: [btnAdd, btnRemove]
}); });
//taskDynaform? and groupingStore?
//var taskDynaform = new Ext.data.GroupingStore({
var taskDynaform = new Ext.data.GroupingStore({ var taskDynaform = new Ext.data.GroupingStore({
idProperty : 'gridIndex', idProperty : 'gridIndex',
reader : new Ext.data.JsonReader( { reader : new Ext.data.JsonReader( {
@@ -121,7 +125,7 @@ ProcessOptions.prototype.addDynaform= function(_5625)
proxy : new Ext.data.HttpProxy({ proxy : new Ext.data.HttpProxy({
url: 'proxyExtjs?pid='+pro_uid+'&action=getDynaformList' url: 'proxyExtjs?pid='+pro_uid+'&action=getDynaformList'
}), }),
sortInfo:{field: 'DYN_TITLE', direction: "ASC"} //sortInfo:{field: 'DYN_TITLE', direction: "ASC"}
}); });
taskDynaform.load({params:{start:0, limit:10}}); taskDynaform.load({params:{start:0, limit:10}});
@@ -164,41 +168,41 @@ ProcessOptions.prototype.addDynaform= function(_5625)
}); });
//tablesFieldsStore.load(); //tablesFieldsStore.load();
var dynaformColumns = new Ext.grid.ColumnModel({ var dynaformColumns = new Ext.grid.ColumnModel({
defaults: { defaults: {
width: 200, width: 90,
sortable: true sortable: true
}, },
columns: [ columns: [
new Ext.grid.RowNumberer(), new Ext.grid.RowNumberer(),
{ {
id: 'DYN_TITLE',
header: _('ID_TITLE_FIELD'), header: _('ID_TITLE_FIELD'),
dataIndex: 'DYN_TITLE', dataIndex: 'DYN_TITLE',
width: 280, width: 280,
editable: false,
editor: new Ext.form.TextField({
allowBlank: false
})
},{ },{
id: 'ACTION',
header: _('ID_TYPE'), header: _('ID_TYPE'),
dataIndex: 'ACTION', dataIndex: 'DYN_TYPE',
//width: 280, width: 90,
editable: false, },{
editor: new Ext.form.TextField({
allowBlank: false
})
},
{
sortable: false, sortable: false,
header: _('ID_TAS_EDIT'),
dataIndex: 'TAS_EDIT',
width: 110
},{
sortable: false,
header: _('ID_TAS_VIEW'),
dataIndex: 'TAS_VIEW',
width: 110
},{
sortable: false,
width: 50,
renderer: function(val, meta, record) renderer: function(val, meta, record)
{ {
return String.format("<a href='../dynaforms/dynaforms_Editor?PRO_UID={0}&DYN_UID={1}' >Edit</a>",pro_uid,record.data.DYN_UID); return String.format("<a href='../dynaforms/dynaforms_Editor?PRO_UID={0}&DYN_UID={1}' >Edit</a>",pro_uid,record.data.DYN_UID);
} }
}, },{
{
sortable: false, sortable: false,
width: 60,
renderer: function(val, meta, record) renderer: function(val, meta, record)
{ {
return String.format("<input type='button' value='UID' onclick=workflow.createUIDButton('{0}');>",record.data.DYN_UID); return String.format("<input type='button' value='UID' onclick=workflow.createUIDButton('{0}');>",record.data.DYN_UID);
@@ -248,7 +252,6 @@ var dynaformColumns = new Ext.grid.ColumnModel({
//renderTo: 'cases-grid', //renderTo: 'cases-grid',
frame: false, frame: false,
autoHeight:false, autoHeight:false,
clicksToEdit: 1,
minHeight:400, minHeight:400,
height :400, height :400,
width: '', width: '',
@@ -270,14 +273,12 @@ var dynaformColumns = new Ext.grid.ColumnModel({
}); });
var dynaformDetails = new Ext.FormPanel({ var dynaformDetails = new Ext.FormPanel({
labelWidth: 100, labelWidth : 100,
buttonAlign: 'center', buttonAlign : 'center',
width : 490, width : 490,
height : 420, height : 420,
bodyStyle : 'padding:10px 0 0 10px;', bodyStyle : 'padding:10px 0 0 10px;',
//monitorValid : true,
autoHeight: true, autoHeight: true,
//defaults :{autoScroll:true},
items: items:
[{ [{
xtype: 'fieldset', xtype: 'fieldset',
@@ -301,7 +302,6 @@ var dynaformColumns = new Ext.grid.ColumnModel({
inputValue: 'blankDyna', inputValue: 'blankDyna',
checked: true checked: true
}, },
{ {
boxLabel: _('ID_PM_DYNAFORM'), boxLabel: _('ID_PM_DYNAFORM'),
name: 'DYN_SOURCE', name: 'DYN_SOURCE',
@@ -352,8 +352,8 @@ var dynaformColumns = new Ext.grid.ColumnModel({
store: new Ext.data.JsonStore({ store: new Ext.data.JsonStore({
fields : ['name', 'value'], fields : ['name', 'value'],
data : [ data : [
{name : 'Normal', value: 'Normal'}, {name : _('ID_NORMAL'), value: 'Normal'},
{name : 'Grid', value: 'Grid'}, {name : _('ID_GRID') , value: 'Grid'},
] ]
}) })
},{ },{