Fixed broken GCODE viewer / concurrent settings requests

The GCODE viewer settings callback was not properly called, hence the
viewer was not initialized properly.

Changed prevention of concurrent settings requests to properly handle
the situation where the registered settings callbacks might be extended
through another callback.
(cherry picked from commit 7d6462b)
This commit is contained in:
Gina Häußge 2015-08-12 12:30:56 +02:00
parent e33f69917f
commit 273bb45741

View file

@ -274,20 +274,25 @@ $(function() {
type: "GET",
dataType: "json",
success: function(response) {
var callbacks = self.callbacks;
self.callbacks = [];
if (callback) {
callbacks.push(callback);
self.callbacks.push(callback);
}
try {
self.fromResponse(response);
_.each(callbacks, function(cb) {
cb();
});
var cb;
while (self.callbacks.length) {
cb = self.callbacks.shift();
try {
cb();
} catch(exc) {
log.error("Error calling settings callback", cb, ":", (exc.stack || exc));
}
}
} finally {
self.receiving(false);
self.callbacks = [];
}
},
error: function(xhr) {