diff -r fcf75e232c5b -r 0ff3ba646492 web/drupal/includes/batch.inc
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/web/drupal/includes/batch.inc Fri Aug 21 16:26:26 2009 +0000
@@ -0,0 +1,354 @@
+ array('id' => $batch['id'])));
+ $js_setting = array(
+ 'batch' => array(
+ 'errorMessage' => $current_set['error_message'] .'
'. $batch['error_message'],
+ 'initMessage' => $current_set['init_message'],
+ 'uri' => $url,
+ ),
+ );
+ drupal_add_js($js_setting, 'setting');
+ drupal_add_js('misc/batch.js', 'core', 'header', FALSE, FALSE);
+
+ $output = '
';
+ return $output;
+}
+
+/**
+ * Do one pass of execution and inform back the browser about progression
+ * (used for JavaScript-mode only).
+ */
+function _batch_do() {
+ // HTTP POST required
+ if ($_SERVER['REQUEST_METHOD'] != 'POST') {
+ drupal_set_message(t('HTTP POST is required.'), 'error');
+ drupal_set_title(t('Error'));
+ return '';
+ }
+
+ // Perform actual processing.
+ list($percentage, $message) = _batch_process();
+
+ drupal_json(array('status' => TRUE, 'percentage' => $percentage, 'message' => $message));
+}
+
+/**
+ * Batch processing page without JavaScript support.
+ */
+function _batch_progress_page_nojs() {
+ $batch =& batch_get();
+ $current_set = _batch_current_set();
+
+ drupal_set_title($current_set['title']);
+
+ $new_op = 'do_nojs';
+
+ if (!isset($batch['running'])) {
+ // This is the first page so we return some output immediately.
+ $percentage = 0;
+ $message = $current_set['init_message'];
+ $batch['running'] = TRUE;
+ }
+ else {
+ // This is one of the later requests: do some processing first.
+
+ // Error handling: if PHP dies due to a fatal error (e.g. non-existant
+ // function), it will output whatever is in the output buffer,
+ // followed by the error message.
+ ob_start();
+ $fallback = $current_set['error_message'] .'
'. $batch['error_message'];
+ $fallback = theme('maintenance_page', $fallback, FALSE, FALSE);
+
+ // We strip the end of the page using a marker in the template, so any
+ // additional HTML output by PHP shows up inside the page rather than
+ // below it. While this causes invalid HTML, the same would be true if
+ // we didn't, as content is not allowed to appear after