Cases Scheduler Log Update Look n Feel

This commit is contained in:
Enrique Ponce de Leon
2011-01-27 15:15:10 +00:00
parent 976e6789d7
commit cffdb71ebc
3 changed files with 162 additions and 47 deletions

View File

@@ -34,7 +34,8 @@ $oHeadPublisher->addExtJsScript('cases/casesSchedulerLog', false); //adding a
$oHeadPublisher->addContent('cases/casesSchedulerLog'); //adding a html file .html.
$labels = G::getTranslations(Array('ID_DATE_LABEL','ID_TIME_LABEL','ID_USER','ID_RESULT', 'ID_CREATED_CASE_STATUS',
'ID_ROUTED_CASE_STATUS','ID_CLOSE','ID_LOG_CASE_SCHEDULER','ID_VIEW','ID_TITLE_LOG_DETAIL'));
'ID_ROUTED_CASE_STATUS','ID_CLOSE','ID_LOG_CASE_SCHEDULER','ID_VIEW','ID_TITLE_LOG_DETAIL','ID_ENTER_SEARCH_TERM','ID_SEARCH',
'ID_SCHEDULER_TASK','ID_TASK_ID','ID_PROCESS_ID','ID_EXECUTION_DATE','ID_EXECUTION_HOUR','ID_EXECUTION_STATUS'));
$oHeadPublisher->assign('TRANSLATIONS', $labels);
G::RenderPage('publish', 'extJs');

View File

@@ -29,6 +29,8 @@ require_once 'classes/model/LogCasesScheduler.php';
$start = isset($_REQUEST['start'])? $_REQUEST['start'] : 0;
$limit = isset($_REQUEST['limit'])? $_REQUEST['limit'] : 20;
$filter = (isset($_POST['textFilter'])) ? $_POST['textFilter'] : '';
$oCriteria = new Criteria('workflow');
$oCriteria->clearSelectColumns();
$oCriteria->addSelectColumn(LogCasesSchedulerPeer::LOG_CASE_UID);
@@ -42,6 +44,21 @@ $oCriteria->addSelectColumn(LogCasesSchedulerPeer::SCH_UID);
$oCriteria->addSelectColumn(LogCasesSchedulerPeer::WS_CREATE_CASE_STATUS);
$oCriteria->addSelectColumn(LogCasesSchedulerPeer::WS_ROUTE_CASE_STATUS);
if ($filter != ''){
$c_or = $oCriteria->getNewCriterion(LogCasesSchedulerPeer::WS_CREATE_CASE_STATUS, '%'.$filter.'%', Criteria::LIKE)->addOr(
$oCriteria->getNewCriterion(LogCasesSchedulerPeer::WS_ROUTE_CASE_STATUS,'%'.$filter.'%', Criteria::LIKE));
$oCriteria->add($c_or);
}
$oDataset = LogCasesSchedulerPeer::doSelectRS ( $oCriteria );
$oDataset->setFetchmode ( ResultSet::FETCHMODE_ASSOC );
$addTables = Array();
while( $oDataset->next() ) {
$addTables[] = $oDataset->getRow();
}
$results = count($addTables);
$oCriteria->setOffset($start);
$oCriteria->setLimit($limit);
@@ -61,8 +78,8 @@ while( $oDataset->next() ) {
$addTables[] = $oDataset->getRow();
}
$oLogCasesScheduler = new LogCasesScheduler();
$arrData = $oLogCasesScheduler->getAll();
$results = count($arrData);
//$oLogCasesScheduler = new LogCasesScheduler();
//$arrData = $oLogCasesScheduler->getAll();
echo '{results: '.$results.', rows: '.G::json_encode($addTables).'}';

View File

@@ -23,14 +23,82 @@ new Ext.KeyMap(document, {
var store;
var cmodel;
var smodel;
var infoGrid;
var viewport;
var bbarpaging;
var w;
var viewButton;
var searchButton;
var contextMenu;
Ext.onReady(function(){
Ext.QuickTips.init();
Ext.QuickTips.init();
viewButton = new Ext.Action({
text: TRANSLATIONS.ID_VIEW,
iconCls: 'button_menu_ext ss_sprite ss_table',
handler: ShowSelectedLog,
disabled: true
});
searchButton = new Ext.Action({
text: TRANSLATIONS.ID_SEARCH,
handler: DoSearch
});
contextMenu = new Ext.menu.Menu({
items: [viewButton]
});
searchText = new Ext.form.TextField ({
id: 'searchTxt',
ctCls:'pm_search_text_field',
allowBlank: true,
width: 150,
emptyText: TRANSLATIONS.ID_ENTER_SEARCH_TERM,//'enter search term',
listeners: {
specialkey: function(f,e){
if (e.getKey() == e.ENTER) {
DoSearch();
}
},
focus: function(f,e) {
var row = infoGrid.getSelectionModel().getSelected();
infoGrid.getSelectionModel().deselectRow(infoGrid.getStore().indexOf(row));
}
}
});
clearTextButton = new Ext.Action({
text: 'X',
ctCls:'pm_search_x_button',
handler: GridByDefault
});
viewForm = new Ext.FormPanel({
url: 'data_casesSchedulerLog',
frame: true,
title: TRANSLATIONS.ID_TITLE_LOG_DETAIL,
labelWidth: 150,
items:[
{xtype: 'label', fieldLabel: TRANSLATIONS.ID_SCHEDULER_TASK, id: 'stask', width: 250},
{xtype: 'label', fieldLabel: TRANSLATIONS.ID_TASK_ID, id: 'task', width: 250},
{xtype: 'label', fieldLabel: TRANSLATIONS.ID_PROCESS_ID, id: 'process', width: 250},
{xtype: 'label', fieldLabel: TRANSLATIONS.ID_USER, id: 'user', width: 250},
{xtype: 'label', fieldLabel: TRANSLATIONS.ID_EXECUTION_DATE, id: 'date', width: 250},
{xtype: 'label', fieldLabel: TRANSLATIONS.ID_EXECUTION_HOUR, id: 'hour', width: 250},
{xtype: 'label', fieldLabel: TRANSLATIONS.ID_EXECUTION_STATUS, id: 'status', width: 250},
{xtype: 'label', fieldLabel: TRANSLATIONS.ID_CREATED_CASE_STATUS, id: 'cstatus', width: 250},
{xtype: 'label', fieldLabel: TRANSLATIONS.ID_ROUTED_CASE_STATUS, id: 'rstatus', width: 250}
],
buttons: [
{text: TRANSLATIONS.ID_CLOSE, handler: CloseView}
]
});
store = new Ext.data.GroupingStore( {
proxy : new Ext.data.HttpProxy({
@@ -66,9 +134,20 @@ Ext.onReady(function(){
{header: TRANSLATIONS.ID_USER, dataIndex: 'USR_NAME', width: 40, hidden:false, align:'left'},
{header: TRANSLATIONS.ID_RESULT, dataIndex: 'RESULT', width: 40, hidden:false, align:'left'},
{header: TRANSLATIONS.ID_CREATED_CASE_STATUS, dataIndex: 'WS_CREATE_CASE_STATUS', width: 80, hidden:false, align:'left'},
{header: TRANSLATIONS.ID_ROUTED_CASE_STATUS, dataIndex: 'WS_ROUTE_CASE_STATUS', width: 80, hidden:false, align:'left'},
{header: TRANSLATIONS.ID_VIEW, dataIndex: 'LOG_CASE_UID', width: 20, hidden:false, align:'center', renderer: view_button}
]
{header: TRANSLATIONS.ID_ROUTED_CASE_STATUS, dataIndex: 'WS_ROUTE_CASE_STATUS', width: 80, hidden:false, align:'left'}
]
});
smodel = new Ext.grid.RowSelectionModel({
singleSelect: true,
listeners:{
rowselect: function(sm){
viewButton.enable();
},
rowdeselect: function(sm){
viewButton.disable();
}
}
});
bbarpaging = new Ext.PagingToolbar({
@@ -77,17 +156,17 @@ Ext.onReady(function(){
});
infoGrid = new Ext.grid.GridPanel({
title : TRANSLATIONS.ID_LOG_CASE_SCHEDULER,
region: 'center',
layout: 'fit',
id: 'infoGrid',
height:100,
autoWidth : true,
title : TRANSLATIONS.ID_LOG_CASE_SCHEDULER,
stateful : true,
stateId : 'grid',
enableColumnResize: true,
enableHdMenu: true,
frame:true,
frame:false,
iconCls:'icon-grid',
columnLines: false,
viewConfig: {
@@ -95,6 +174,8 @@ Ext.onReady(function(){
},
store: store,
cm: cmodel,
sm: smodel,
tbar: [viewButton,{xtype: 'tbfill'},searchText,clearTextButton,searchButton],
bbar: [{xtype: 'tbfill'}, bbarpaging],
listeners: {
rowdblclick: ShowSelectedLog
@@ -104,8 +185,25 @@ Ext.onReady(function(){
groupTextTpl: '{text}'
})
});
infoGrid.on('rowcontextmenu',
function (grid, rowIndex, evt) {
var sm = grid.getSelectionModel();
sm.selectRow(rowIndex, sm.isSelected(rowIndex));
},
this
);
infoGrid.on('contextmenu',
function (evt) {
evt.preventDefault();
},
this
);
infoGrid.addListener('rowcontextmenu',onMessageContextMenu,this);
infoGrid.store.load({params: {"function":"caseSchedulerLog"}});
GridByDefault();
viewport = new Ext.Viewport({
layout: 'fit',
@@ -116,56 +214,55 @@ Ext.onReady(function(){
});
});
//Funtion Handles Context Menu Opening
onMessageContextMenu = function (grid, rowIndex, e) {
e.stopEvent();
var coords = e.getXY();
contextMenu.showAt([coords[0], coords[1]]);
}
//Do Nothing Function
DoNothing = function(){}
//Handles DoubleClick's Grid
ShowSelectedLog = function(){
iGrid = Ext.getCmp('infoGrid');
rowSelected = iGrid.getSelectionModel().getSelected();
rowSelected = infoGrid.getSelectionModel().getSelected();
if (rowSelected){
ViewLogScheduler(rowSelected.data.LOG_CASE_UID);
Ext.getCmp('stask').setText(rowSelected.data.SCH_UID);
Ext.getCmp('task').setText(rowSelected.data.TAS_UID);
Ext.getCmp('process').setText(rowSelected.data.PRO_UID);
Ext.getCmp('user').setText(rowSelected.data.USR_NAME);
Ext.getCmp('date').setText(rowSelected.data.EXEC_DATE);
Ext.getCmp('hour').setText(rowSelected.data.EXEC_HOUR);
Ext.getCmp('status').setText(rowSelected.data.RESULT);
Ext.getCmp('cstatus').setText(rowSelected.data.WS_CREATE_CASE_STATUS);
Ext.getCmp('rstatus').setText(rowSelected.data.WS_ROUTE_CASE_STATUS);
w = new Ext.Window({
height: 320,
width: 550,
resizable: false,
closable: false,
items: [viewForm]
});
w.show();
}
}
//Renderer Button on Grid
view_button = function(val){
var sep = "'";
return '<input type="button" value="' + TRANSLATIONS.ID_VIEW + '" onclick="ViewLogScheduler(' + sep + val + sep + ');" />';
}
//Open Popup View Log Window
ViewLogScheduler = function(value){
Ext.Ajax.request({
url: 'cases_Scheduler_Log_Detail',
success: SuccessViewLog,
failure: DoNothing,
params: {LOG_CASE_UID: value}
});
//Load Grid By Default
GridByDefault = function(){
searchText.reset();
infoGrid.store.load();
}
//Response View Handler
SuccessViewLog = function(response, opts){
w = new Ext.Window({
height: 320,
width: 600,
resizable: false,
html: response.responseText,
autoscroll: false,
title: TRANSLATIONS.ID_TITLE_LOG_DETAIL,
closable: true,
buttons: [{
text: TRANSLATIONS.ID_CLOSE,
handler: CloseView
}]
});
w.show();
}
//Close View Dialog
CloseView = function(){
w.close();
w.hide();
}
//Do Search Function
DoSearch = function(){
infoGrid.store.load({params: {textFilter: searchText.getValue()}});
}