improving the dynaform list for new bpmn editor
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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;*/
|
||||||
?>
|
|
||||||
|
|||||||
@@ -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';
|
||||||
|
|||||||
@@ -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'},
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
},{
|
},{
|
||||||
|
|||||||
Reference in New Issue
Block a user