--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/web/drupal/misc/batch.js Fri Aug 21 16:26:26 2009 +0000
@@ -0,0 +1,38 @@
+// $Id: batch.js,v 1.4 2007/10/21 18:59:01 goba Exp $
+
+/**
+ * Attaches the batch behavior to progress bars.
+ */
+Drupal.behaviors.batch = function (context) {
+ // This behavior attaches by ID, so is only valid once on a page.
+ if ($('#progress.batch-processed').size()) {
+ return;
+ }
+ $('#progress', context).addClass('batch-processed').each(function () {
+ var holder = this;
+ var uri = Drupal.settings.batch.uri;
+ var initMessage = Drupal.settings.batch.initMessage;
+ var errorMessage = Drupal.settings.batch.errorMessage;
+
+ // Success: redirect to the summary.
+ var updateCallback = function (progress, status, pb) {
+ if (progress == 100) {
+ pb.stopMonitoring();
+ window.location = uri+'&op=finished';
+ }
+ };
+
+ var errorCallback = function (pb) {
+ var div = document.createElement('p');
+ div.className = 'error';
+ $(div).html(errorMessage);
+ $(holder).prepend(div);
+ $('#wait').hide();
+ };
+
+ var progress = new Drupal.progressBar('updateprogress', updateCallback, "POST", errorCallback);
+ progress.setProgress(-1, initMessage);
+ $(holder).append(progress.element);
+ progress.startMonitoring(uri+'&op=do', 10);
+ });
+};