I've been having issues with the montage scaling since several minor release back. It's always been an issue with the mootools libs. Firebug is good for locating these problems.
They've alway been where mootools assume a parameter is defined and try's to call a member varaible from the pramater. In 1.24.3's latest SVN version, it's (in a expanded view):
Code: Select all
function(a,b)
{
if(b._groupSend)
{
return this;
}
The parameter b is undefined. When running the montage view and causes a java script error (which kills the rest of the javascript on that page). It's pretty bad practice to blindly trust input parameters like that.
I've never had a chance to drill down into mootools and see why b is undefined, so I just make the function exit when b is undefined.
Here is a patch of my change off of ZM SVN:
Code: Select all
Index: web/tools/mootools/mootools-1.2.5.1-more-yc.js
===================================================================
--- web/tools/mootools/mootools-1.2.5.1-more-yc.js (revision 3224)
+++ web/tools/mootools/mootools-1.2.5.1-more-yc.js (working copy)
@@ -479,7 +479,7 @@
}});Request.JSONP.counter=0;Request.JSONP.request_map={};Request.Queue=new Class({Implements:[Options,Events],Binds:["attach","request","complete","cancel","success","failure","exception"],options:{stopOnFailure:true,autoAdvance:true,concurrent:1,requests:{}},initialize:function(a){if(a){var b=a.requests;
delete a.requests;}this.setOptions(a);this.requests=new Hash;this.queue=[];this.reqBinders={};if(b){this.addRequests(b);}},addRequest:function(a,b){this.requests.set(a,b);
this.attach(a,b);return this;},addRequests:function(a){$each(a,function(c,b){this.addRequest(b,c);},this);return this;},getName:function(a){return this.requests.keyOf(a);
-},attach:function(a,b){if(b._groupSend){return this;}["request","complete","cancel","success","failure","exception"].each(function(c){if(!this.reqBinders[a]){this.reqBinders[a]={};
+},attach:function(a,b){if(b == undefined){return;}if(b._groupSend){return this;}["request","complete","cancel","success","failure","exception"].each(function(c){if(!this.reqBinders[a]){this.reqBinders[a]={};
}this.reqBinders[a][c]=function(){this["on"+c.capitalize()].apply(this,[a,b].extend(arguments));}.bind(this);b.addEvent(c,this.reqBinders[a][c]);},this);
b._groupSend=b.send;b.send=function(c){this.send(a,c);return b;}.bind(this);return this;},removeRequest:function(b){var a=$type(b)=="object"?this.getName(b):b;
if(!a&&$type(a)!="string"){return this;}b=this.requests.get(a);if(!b){return this;}["request","complete","cancel","success","failure","exception"].each(function(c){b.removeEvent(c,this.reqBinders[a][c]);
This patches the mootool file Zoneminders source folder, you can apply that patch to your source folder and do a "make install".