An update cause this bug is getting rather critical.
It happens when dynamic tab panel asks server to get id for a new tab to partial update this new tab pane and fill it with content. After that it may go two ways:
1. Response id gets mangled (tab container's id repeated twice), like this (just did this after refresh and it came up immediately):
view:_id1:djTabContainer1:djTabContainer1:djTabPane2:2232
I circumvented it by hacking it like this:
extlib.dijit.TabContainer.prototype.createTab=function(params) {
if(params && params.tabUniqueKey) {
var t
dojo.forEach(this.getChildren(), function(item) {
if(item.tabUniqueKey==params.tabUniqueKey) {t = item}
})
if(t){this.selectChild(t); return;}
}
var url = XSP.axGetRequestUrl(this.id,dojo.mixin({_action:"createTab"},params))
if(url) {
var _this = this;
dojo.xhrGet({
url: url,
handleAs: "json",
load: function(resp, ioArgs) {
var ids=_this.id.split(":");
if(ids.length>0){
var lastid=ids[ids.length-1];
resp.id=resp.id.replace(':'+lastid+':'+lastid,':'+lastid);
}
dojo.place("",_this.containerNode,"last")
var axOptions = {
onComplete: function() {
var dj = dijit.byId(resp.id)
_this.addChild(dj)
_this.selectChild(dj)
}
}
XSP.partialRefreshGet(resp.id,axOptions)
},
error: function(err) {
console.log(err)
}
});
}
};
Underlined is my hack.
Fix works for some time, but then there is
2. Sometimes ajax query made in createTab function (the second one, line XSP.partialRefreshGet(resp.id,axOptions) ) is just never responded. And so new tabpane is never filled with content.
Can it be related to sessions? Maybe they just expire and after that server denies ajax queries?
I will try to provide more examples if needed.