Clear partition button problem
Great extra, I use it a lot!
Have an anoying issue with the clear partition menu button though.
- First time you click the custom button, MODX console opens and partition clears as expected.
- Second click, the MODX console doesn't open, partition doesn't clear and there's a js error 'TypeError: b.dom is undefined' in ext-all.js
- All further times you click the button nothing happens and this js error is thrown 'TypeError: this.manager is undefined'
To get the button working again you have to force refresh the manager page.
My menu button code as the docs:
var topic = '/getcache/cache/partition/refresh/navMenu/';
if (this.console == null || this.console == undefined) {
this.console = MODx.load({
xtype: 'modx-console'
,register: 'mgr'
,topic: topic
,show_filename: 0
});
} else {
this.console.setRegister('mgr', topic);
}
this.console.show(Ext.getBody());
MODx.Ajax.request({
url: MODx.config.assets_url+'components/getcache/connector.php'
,params: { action: 'cache/partition/refresh', partitions: 'navMenu', register: 'mgr' , topic: topic }
,listeners: {
'success':{fn:function() {
this.console.fireEvent('complete');
},scope:this}
}
});
return false;
I tried removing the 'if' check and it seemed to solve it:
var topic = '/getcache/cache/partition/refresh/navMenu/';
this.console = MODx.load({
xtype: 'modx-console'
,register: 'mgr'
,topic: topic
,show_filename: 0
});
this.console.show(Ext.getBody());
MODx.Ajax.request({
url: MODx.config.assets_url+'components/getcache/connector.php'
,params: { action: 'cache/partition/refresh', partitions: 'navMenu', register: 'mgr' , topic: topic }
,listeners: {
'success':{fn:function() {
this.console.fireEvent('complete');
},scope:this}
}
});
return false;
Are these changes likely to cause problems or is there a better way of doing the 'if' check?
To be honest, I'm not sure why the if check is breaking this. But I have updated the wiki with a version that works, without said conditional. See Refresh Custom Cache Partitions.
I had the some problem today. Adding the Script without the if statement also does'nt work in MODX 2.7.3.
My solution is now this and it also get reopened:
var topic = '/getcache/cache/partition/refresh/global_cache/';
this.console = MODx.load({
xtype: 'modx-console'
,register: 'mgr'
,topic: topic
,show_filename: 0
});
this.console.show(Ext.getBody());MODx.Ajax.request({
url: MODx.config.assets_url+'components/getcache/connector.php'
,params: { action: 'cache/partition/refresh', partitions: 'global_cache', register: 'mgr' , topic: topic }
,listeners: { }
});
return false;