Started with Report Tables (ExtJs)

This commit is contained in:
safan
2010-12-30 09:38:25 +00:00
parent b36c575db7
commit 84c77ee443
4 changed files with 334 additions and 1 deletions

View File

@@ -5752,4 +5752,32 @@ class processMap {
BasePeer::doUpdate($oCriteria2, $oCriteria1, Propel::getConnection('workflow'));
}
}
function getExtReportTables($sProcessUID = '') {
$sDelimiter = DBAdapter::getStringDelimiter ();
$oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn(ReportTablePeer::REP_TAB_UID);
$oCriteria->addSelectColumn(ReportTablePeer::PRO_UID);
// $oCriteria->addAsColumn ( 'REP_TAB_TITLE', 'C.CON_VALUE' );
$oCriteria->addAsColumn('REP_TAB_TITLE', "CASE WHEN C.CON_VALUE IS NULL THEN (SELECT DISTINCT MAX(A.CON_VALUE) FROM CONTENT A WHERE A.CON_ID = REPORT_TABLE.REP_TAB_UID ) ELSE C.CON_VALUE END ");
$oCriteria->addAlias('C', 'CONTENT');
$aConditions = array();
$aConditions [] = array(ReportTablePeer::REP_TAB_UID, 'C.CON_ID');
$aConditions [] = array('C.CON_CATEGORY', $sDelimiter . 'REP_TAB_TITLE' . $sDelimiter);
$aConditions [] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
$oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
$oCriteria->add(ReportTablePeer::PRO_UID, $sProcessUID);
$oDataset = ReportTablePeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
while ($aRow = $oDataset->getRow()) {
$aReportTable[] = array('REP_TAB_UID' => $aRow ['REP_TAB_UID'], 'REP_TAB_TITLE' => $aRow['REP_TAB_TITLE']);
$oDataset->next();
}
return $aReportTable;
}
}

View File

@@ -0,0 +1,21 @@
<?php
try
{
G::LoadClass('processMap');
$oProcessMap = new processMap(new DBConnection);
if ( isset($_GET['pid']) )
{
$rows = ExtreportTablesList($_GET['pid']);
}
$result['totalCount'] = count($rows);
$result['data'] = $rows;
print json_encode( $result ) ;
}
catch ( Exception $e ) {
print json_encode ( $e->getMessage() );
}
?>

View File

@@ -2027,3 +2027,281 @@ ProcessOptions.prototype.addOutputDoc= function(_5625)
});
gridWindow.show();
}
ProcessOptions.prototype.addReportTable= function(_5625)
{
var pro_uid = workflow.getUrlVars();
var reportFields = Ext.data.Record.create([
{
name: 'REP_TAB_TITLE',
type: 'string'
}
]);
var reportStore = new Ext.data.JsonStore({
root : 'data',
totalProperty: 'totalCount',
idProperty : 'gridIndex',
remoteSort : true,
fields : reportFields,
proxy : new Ext.data.HttpProxy({
url : 'proxyReportTables?pid='+pro_uid
})
});
var reportColumns = new Ext.grid.ColumnModel({
columns: [
new Ext.grid.RowNumberer(),
{
id: 'REP_TAB_TITLE',
header: 'Title',
dataIndex: 'REP_TAB_TITLE',
width: 280,
editable: false,
editor: new Ext.form.TextField({
//allowBlank: false
})
}
]
});
var btnAdd = new Ext.Button({
id: 'btnAdd',
text: 'New Report Table',
iconCls: 'application_add',
handler: function () {
formWindow.show();
}
});
var tb = new Ext.Toolbar({
items: [btnAdd]
});
var reportGrid = new Ext.grid.GridPanel({
store : reportStore,
id : 'mygrid',
loadMask : true,
loadingText : 'Loading...',
renderTo : 'cases-grid',
frame : false,
autoHeight :false,
clicksToEdit: 1,
minHeight :400,
height :400,
layout : 'fit',
cm : reportColumns,
stripeRows : true,
tbar : tb
//viewConfig : {forceFit: true}
});
var reportForm =new Ext.FormPanel({
// title:"Add new Database Source",
collapsible: false,
maximizable: true,
width:450,
frame:true,
plain: true,
bodyStyle: 'padding:5px;',
buttonAlign: 'center',
items:[{
xtype: 'textfield',
fieldLabel: 'Title',
name: 'REP_TAB_TITLE',
allowBlank: false
},{
xtype: 'textfield',
fieldLabel: 'Table Name',
name: 'REP_TAB_NAME',
allowBlank: false
},
{
xtype: 'combo',
width: 150,
mode: 'local',
editable: false,
fieldLabel: 'Type',
triggerAction: 'all',
forceSelection: true,
name: 'REP_TAB_TYPE',
displayField: 'name',
//emptyText : 'Select Format',
valueField : 'value',
value : 'global',
store: new Ext.data.JsonStore({
fields : ['name', 'value'],
data : [
{name : 'Global', value: 'global'},
{name : 'Grid', value: 'grid'}
]}),
onSelect: function(record, index) {
//Show-Hide Format Type Field
if(record.data.value == 'global')
{Ext.getCmp("fields").show();
Ext.getCmp("gridfields").hide();
}
else
{Ext.getCmp("gridfields").show();
Ext.getCmp("fields").hide();
}
this.setValue(record.data[this.valueField || this.displayField]);
this.collapse();
}
},
{
xtype: 'fieldset',
id: 'fields',
border:false,
hidden: false,
items: [{
xtype: 'multiselect',
width: 150,
mode: 'local',
// hidden: true,
editable: false,
fieldLabel: 'Fields',
triggerAction: 'all',
forceSelection: true,
//dataIndex : 'ENGINE',
name: 'FIELDS',
store: new Ext.data.JsonStore({
fields : ['name', 'value'],
data : [
]})
}]
//displayField: 'name',
//emptyText : 'Select Format',
// valueField : 'value',
// value : 'Select'
}, {
xtype: 'fieldset',
id: 'gridfields',
border:false,
hidden: true,
items:[{
xtype: 'combo',
width: 150,
mode: 'local',
// hidden: true,
editable:false,
fieldLabel: 'Grid Fields',
triggerAction: 'all',
forceSelection: true,
//dataIndex : 'ENGINE',
displayField: 'name',
valueField: 'value',
name: 'DBS_ENCODE',
store: new Ext.data.JsonStore({
fields : ['name', 'value'],
data : [
]})
}]
}
]
})
var formWindow = new Ext.Window({
title: 'New Report Table',
collapsible: false,
maximizable: true,
width: 450,
//autoHeight: true,
height: 400,
//layout: 'fit',
plain: true,
bodyStyle: 'padding:5px;',
buttonAlign: 'center',
items: reportForm,
buttons: [{
text: 'Save',
handler: function(){
var getForm = reportForm.getForm().getValues();
var tableUID = getForm.REP_TAB_UID;
var Title = getForm.REP_TAB_TITLE;
var Name = getForm.REP_TAB_NAME;
var Type = getForm.REP_TAB_TYPE;
var Grid = getForm.REP_TAB_GRID;
var Fields = getForm.FIELDS;
var VariableName = getForm.REP_VAR_NAME;
var VariableType = getForm.REP_VAR_TYPE
//if(dbConnUID=='')
Ext.Ajax.request({
url : '../reportTables/reportTables_Save.php',
method: 'POST',
params:{
PRO_UID :pro_uid,
REP_TAB_UID :tableUID,
REP_TAB_TITLE :Title,
REP_TAB_NAME :Name,
REP_TAB_TYPE :Type ,
REP_TAB_GRID :Grid,
FIELDS :Fields,
REP_VAR_NAME : VariableName,
REP_VAR_TYPE : VariableType
},
success: function(response) {
Ext.MessageBox.alert ('Status','Report Table Saved Successfully.');
}
});
/*else
{
Ext.Ajax.request({
url : '../dbConnections/dbConnectionsAjax.php',
method: 'POST',
params:{
dbs_uid :dbConnUID,
type :Type,
server :Server,
db_name :DatabaseName,
user :Username ,
passwd :Password,
port :Port,
desc :Description,
action :'saveEditConnection'
},
success: function(response) {
Ext.MessageBox.alert ('Status','Connection Edited Successfully.');
}
});
}*/
//var getData = getstore.data.items;
//taskExtObj.saveTaskUsers(getData);
formWindow.close();
// dbStore.reload();
}
},{
text: 'Cancel',
handler: function(){
// when this button clicked,
formWindow.close();
}
}]
});
}

View File

@@ -152,7 +152,13 @@ Ext.onReady ( function() {
handler : function() {
processObj.addOutputDoc();
}
},{text: 'Trigger'},{text: 'Report Table'},
},{text: 'Trigger'},
{
text: 'Report Table',
handler : function() {
processObj.addReportTable();
}
},
{
text: 'Database Connection',handler : function() {
processObj.dbConnection();