web/drupal/misc/batch.js
branchdrupal
changeset 74 0ff3ba646492
equal deleted inserted replaced
73:fcf75e232c5b 74:0ff3ba646492
       
     1 // $Id: batch.js,v 1.4 2007/10/21 18:59:01 goba Exp $
       
     2 
       
     3 /**
       
     4  * Attaches the batch behavior to progress bars.
       
     5  */
       
     6 Drupal.behaviors.batch = function (context) {
       
     7   // This behavior attaches by ID, so is only valid once on a page.
       
     8   if ($('#progress.batch-processed').size()) {
       
     9     return;
       
    10   }
       
    11   $('#progress', context).addClass('batch-processed').each(function () {
       
    12     var holder = this;
       
    13     var uri = Drupal.settings.batch.uri;
       
    14     var initMessage = Drupal.settings.batch.initMessage;
       
    15     var errorMessage = Drupal.settings.batch.errorMessage;
       
    16 
       
    17     // Success: redirect to the summary.
       
    18     var updateCallback = function (progress, status, pb) {
       
    19       if (progress == 100) {
       
    20         pb.stopMonitoring();
       
    21         window.location = uri+'&op=finished';
       
    22       }
       
    23     };
       
    24 
       
    25     var errorCallback = function (pb) {
       
    26       var div = document.createElement('p');
       
    27       div.className = 'error';
       
    28       $(div).html(errorMessage);
       
    29       $(holder).prepend(div);
       
    30       $('#wait').hide();
       
    31     };
       
    32 
       
    33     var progress = new Drupal.progressBar('updateprogress', updateCallback, "POST", errorCallback);
       
    34     progress.setProgress(-1, initMessage);
       
    35     $(holder).append(progress.element);
       
    36     progress.startMonitoring(uri+'&op=do', 10);
       
    37   });
       
    38 };