BUG 5488 "case inbox refresh time should be configurable..." SOLVED
- New feature - Case inbox refresh time should be configurable - Added new feature * Available from version 2.0.45
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
var PANEL_EAST_OPEN = false;
|
||||
var timerMinutes = 2*60*1000; //every 2 minutes, this should be customized also,
|
||||
var currentSelectedTreeMenuItem = null;
|
||||
var centerPanel;
|
||||
var menuTree;
|
||||
@@ -11,7 +10,7 @@ var detailsText = '<i></i>';
|
||||
|
||||
var debugTriggersDetailTpl = new Ext.Template('<pre style="font-size:10px"><code>{code}</code></pre>');
|
||||
debugTriggersDetailTpl.compile();
|
||||
|
||||
|
||||
var propStore;
|
||||
var triggerStore;
|
||||
|
||||
@@ -21,7 +20,7 @@ var NOTIFIER_FLAG = false;
|
||||
var result;
|
||||
var _action = '';
|
||||
var _CASE_TITLE;
|
||||
|
||||
|
||||
Ext.onReady(function(){
|
||||
new Ext.KeyMap(document, {
|
||||
key: Ext.EventObject.F5,
|
||||
@@ -32,8 +31,8 @@ Ext.onReady(function(){
|
||||
}
|
||||
e.stopEvent();
|
||||
updateCasesTree();
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
Ext.Msg.alert('Refresh', 'You clicked: CTRL-F5');
|
||||
}
|
||||
});
|
||||
@@ -41,7 +40,7 @@ Ext.onReady(function(){
|
||||
Ext.QuickTips.init();
|
||||
Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
|
||||
|
||||
var resetGrid = function() {
|
||||
var resetGrid = function() {
|
||||
propStore.load();
|
||||
};
|
||||
|
||||
@@ -52,16 +51,16 @@ Ext.onReady(function(){
|
||||
var debugVariablesFilterSystem = function(){
|
||||
propStore.load({params:{filter:'sys'}});
|
||||
}
|
||||
|
||||
|
||||
var resetTriggers = function(){
|
||||
triggerStore.load();
|
||||
}
|
||||
|
||||
|
||||
propStore = new Ext.data.Store({
|
||||
proxy: new Ext.data.HttpProxy({url: 'debug_vars'}),
|
||||
reader: new Ext.data.DynamicJsonReader({root: 'data'})
|
||||
});
|
||||
|
||||
|
||||
propStore.on('load', function(){
|
||||
propStore.fields = propStore.recordType.prototype.fields;
|
||||
debugVariables.setSource(propStore.getAt(0).data);
|
||||
@@ -76,14 +75,14 @@ Ext.onReady(function(){
|
||||
width: 400,
|
||||
region: 'center',
|
||||
margins: '2 2 0 2',
|
||||
|
||||
|
||||
border: true,
|
||||
stripeRows: true,
|
||||
listeners: {
|
||||
beforeedit: function(event) { //Cancel editing - read only
|
||||
event.cancel = true;
|
||||
}
|
||||
},
|
||||
},
|
||||
tbar: [
|
||||
{text: TRANSLATIONS.ID_ALL, handler: resetGrid},
|
||||
{text: TRANSLATIONS.ID_DYNAFORM, handler: debugVariablesFilterDynaform},
|
||||
@@ -95,18 +94,18 @@ Ext.onReady(function(){
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
//set debug variable details
|
||||
debugVariables.getSelectionModel().on('rowselect', function(sm, rowIdx, r) {
|
||||
var detailPanel = Ext.getCmp('debug-details-panel');
|
||||
var d = {}
|
||||
|
||||
|
||||
d.name = r.data.name;
|
||||
d.value = parent.parent.htmlentities ? parent.parent.htmlentities(r.data.value) : r.data.value;
|
||||
|
||||
debugVarTpl.overwrite(detailPanel.body, d);
|
||||
detailPanel.setTitle(r.data.name);
|
||||
|
||||
|
||||
if(r.data.value == '<object>' || r.data.value == '<array>' ){
|
||||
Ext.getCmp('deatachAction').setDisabled(false);
|
||||
Ext.Ajax.request({
|
||||
@@ -114,11 +113,11 @@ Ext.onReady(function(){
|
||||
success: function(response){
|
||||
try{
|
||||
result = eval('('+response.responseText+')');
|
||||
|
||||
|
||||
var store1a = new Ext.data.ArrayStore({fields: result.headers});
|
||||
// manually load local data
|
||||
store1a.loadData(result.rows);
|
||||
|
||||
|
||||
var myGridPanel = new Ext.grid.GridPanel({
|
||||
store: store1a,
|
||||
height: 200,
|
||||
@@ -129,7 +128,7 @@ Ext.onReady(function(){
|
||||
viewConfig:{forceFit:true, scrollOffset:0},
|
||||
listeners: {
|
||||
rowdblclick: function(grid, n,e){
|
||||
|
||||
|
||||
},
|
||||
render: function(){
|
||||
this.loadMask = new Ext.LoadMask(this.body, { msg:'Loading...' });
|
||||
@@ -152,12 +151,12 @@ Ext.onReady(function(){
|
||||
params: {request: 'getRows', fieldname:r.data.name}
|
||||
});
|
||||
|
||||
|
||||
|
||||
} else
|
||||
Ext.getCmp('deatachAction').setDisabled(true);
|
||||
|
||||
});
|
||||
|
||||
|
||||
//center iframe panel
|
||||
centerPanel = {
|
||||
region : 'center',
|
||||
@@ -217,13 +216,13 @@ Ext.onReady(function(){
|
||||
ReloadTreeMenuItemDetail({item:''});
|
||||
}
|
||||
})*/
|
||||
|
||||
|
||||
}/*,
|
||||
'afterrender': {
|
||||
fn: setNode,
|
||||
scope: this
|
||||
}*/
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
@@ -236,7 +235,7 @@ Ext.onReady(function(){
|
||||
//if it is, then update cases tree
|
||||
updateCasesTree();
|
||||
}
|
||||
|
||||
|
||||
if( _nodeId != '' ){
|
||||
treePanel1 = Ext.getCmp('tree-panel')
|
||||
if(treePanel1)
|
||||
@@ -291,7 +290,7 @@ Ext.onReady(function(){
|
||||
loaded:false,
|
||||
expanded:true
|
||||
});
|
||||
|
||||
|
||||
treeMenuItemDetail.setRootNode(root);
|
||||
|
||||
mainMenu = new Ext.Panel({
|
||||
@@ -313,19 +312,19 @@ Ext.onReady(function(){
|
||||
treeMenuItemDetail
|
||||
]
|
||||
});
|
||||
mainMenu.setTitle('<a href="#"><img id="refreshNotifiers" src="/images/refresh.gif" onClick="updateCasesTree(); updateCasesView();" /></a>');
|
||||
mainMenu.setTitle("<div style=\"height: 18px;\"><a href=\"javascript:;\"><img id=\"refreshNotifiers\" src=\"/images/refresh.gif\" onclick=\"updateCasesTree(); updateCasesView();\" /></a></div>");
|
||||
|
||||
/**
|
||||
* Triggers Panel
|
||||
*/
|
||||
var xg = Ext.grid;
|
||||
|
||||
|
||||
var reader = new Ext.data.JsonReader(
|
||||
{
|
||||
root: 'data',
|
||||
totalProperty: 'total',
|
||||
id: 'name'
|
||||
},
|
||||
},
|
||||
[
|
||||
{name: 'name'},
|
||||
{name: 'execution_time'},
|
||||
@@ -350,7 +349,7 @@ Ext.onReady(function(){
|
||||
|
||||
var debugTriggers = new xg.GridPanel({
|
||||
store: triggerStore,
|
||||
|
||||
|
||||
columns: [
|
||||
{id:'name',header: "Name", width: 60, sortable: true, dataIndex: 'name'},
|
||||
{header: "Execution", width: 30, sortable: true, dataIndex: 'execution_time'},
|
||||
@@ -378,14 +377,14 @@ Ext.onReady(function(){
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
debugTriggers.getSelectionModel().on('rowselect', function(sm, rowIdx, r) {
|
||||
Ext.getCmp('deatachAction').setDisabled(false);
|
||||
var detailPanel = Ext.getCmp('debug-details-panel');
|
||||
detailPanel.setTitle(r.data.name);
|
||||
debugTriggersDetailTpl.overwrite(detailPanel.body, r.data);
|
||||
});
|
||||
|
||||
|
||||
function triggerWindow() {
|
||||
var r = debugTriggers.getSelectionModel().getSelected();
|
||||
if(r){
|
||||
@@ -435,7 +434,7 @@ Ext.onReady(function(){
|
||||
items: [
|
||||
debugVariables,
|
||||
debugTriggers
|
||||
],
|
||||
],
|
||||
listeners: {
|
||||
beforetabchange: function(){
|
||||
Ext.getCmp('deatachAction').setDisabled(true);
|
||||
@@ -503,34 +502,34 @@ Ext.onReady(function(){
|
||||
}
|
||||
}
|
||||
]
|
||||
}]
|
||||
}]
|
||||
});
|
||||
|
||||
|
||||
var viewport = new Ext.Viewport({
|
||||
layout: 'border',
|
||||
items: [ mainMenu, centerPanel, debugPanel]
|
||||
});
|
||||
|
||||
|
||||
/** after panel creation routines */
|
||||
|
||||
/** after panel creation routines */
|
||||
var menuPanelC = Ext.getCmp('debugPanel');
|
||||
//w.collapse();
|
||||
|
||||
|
||||
/**hide*/
|
||||
menuPanelC.hide();
|
||||
menuPanelC.ownerCt.doLayout();
|
||||
|
||||
menuPanelC.hide();
|
||||
menuPanelC.ownerCt.doLayout();
|
||||
|
||||
/**show*/
|
||||
//w.show();
|
||||
//w.ownerCt.doLayout();
|
||||
//w.expand();
|
||||
|
||||
var menuPanelDetail = Ext.getCmp('tree_menuItem_detail');
|
||||
menuPanelDetail.hide();
|
||||
menuPanelDetail.hide();
|
||||
menuPanelDetail.ownerCt.doLayout();
|
||||
|
||||
//the starting timer will be triggered after timerMinutes
|
||||
setTimeout('Timer()', timerMinutes );
|
||||
//FORMATS.casesListRefreshTime is in seconds
|
||||
setTimeout("timer()", parseInt(FORMATS.casesListRefreshTime) * 1000);
|
||||
});
|
||||
|
||||
function updateCasesView() {
|
||||
@@ -538,7 +537,7 @@ function updateCasesView() {
|
||||
if (document.getElementById('casesSubFrame').contentWindow.storeCases) {
|
||||
document.getElementById('casesSubFrame').contentWindow.storeCases.reload();
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(e){};
|
||||
}
|
||||
|
||||
@@ -580,13 +579,16 @@ function updateCasesTree() {
|
||||
failure: function(){},
|
||||
params: {'updateCasesTree': true}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
//the timer function will be called after 2 minutes;
|
||||
function Timer(){
|
||||
updateCasesView();
|
||||
setTimeout('Timer()', timerMinutes);
|
||||
function timer()
|
||||
{
|
||||
//FORMATS.casesListRefreshTime is in seconds
|
||||
updateCasesTree();
|
||||
updateCasesView();
|
||||
|
||||
setTimeout("timer()", parseInt(FORMATS.casesListRefreshTime) * 1000);
|
||||
}
|
||||
|
||||
Ext.data.DynamicJsonReader = function(config){
|
||||
@@ -620,7 +622,7 @@ Ext.extend(Ext.data.DynamicJsonReader, Ext.data.JsonReader, {
|
||||
var recordType = this.getRecordType(root);
|
||||
var fields = recordType.prototype.fields;
|
||||
var records = [];
|
||||
|
||||
|
||||
for(var i = 0; i < root.length; i++){
|
||||
var n = root[i];
|
||||
var values = {};
|
||||
@@ -683,8 +685,8 @@ Ext.app.menuLoader = Ext.extend(Ext.ux.tree.XmlTreeLoader, {
|
||||
//attr.disabled=true;
|
||||
attr.expandable=true;
|
||||
attr.qtip=attr.blockTitle;
|
||||
|
||||
|
||||
|
||||
|
||||
}else if(attr.blockTitle){
|
||||
attr.text = attr.blockTitle;
|
||||
attr.iconCls = 'ICON_' + attr.id;
|
||||
@@ -694,11 +696,11 @@ Ext.app.menuLoader = Ext.extend(Ext.ux.tree.XmlTreeLoader, {
|
||||
//}else{
|
||||
attr.expanded = true;
|
||||
//}
|
||||
}else if(attr.title){
|
||||
}else if(attr.title){
|
||||
attr.text = attr.title;
|
||||
if( attr.cases_count )
|
||||
attr.text += ' (<label id="NOTIFIER_'+attr.id+'">' + attr.cases_count + '</label>)';
|
||||
|
||||
|
||||
attr.iconCls = 'ICON_' + attr.id;
|
||||
attr.loaded = true;
|
||||
attr.expanded = false;
|
||||
|
||||
Reference in New Issue
Block a user