summaryrefslogtreecommitdiff
path: root/modules/developer/js/developer.js
blob: 065a731695a6527755c560c7cc0fa228037d0360 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
var module_success = function(data) {
  $("#g-developer-admin").append('<div id="g-module-progress" style="margin-top: 1em;"></div>');
  $("#g-module-progress").progressbar();

  var task = data.task;
  var url = data.url;
  var done = false;
  var counter = 0;
  var max_iterations = data.max_iterations;
  while (!done) {
    $.ajax({async: false,
      success: function(data, textStatus) {
        $("#g-module-progress").progressbar("value", data.task.percent_complete);
        done = data.task.done;
      },
      error: function(XMLHttpRequest, textStatus, errorThrown) {
        done = true;
      },
      dataType: "json",
      type: "POST",
      url: url
    });
    // Leave this in as insurance that we never run away
    done = done || ++counter > max_iterations;
  }
  document.location.reload();
};

function ajaxify_developer_form(selector, success) {
  $(selector).ajaxForm({
    dataType: "json",
    success: function(data) {
      if (data.form && data.result != "started") {
        $(selector).replaceWith(data.form);
        ajaxify_developer_form(selector, success);
      }
      if (data.result == "started") {
        success(data);
      }
    }
  });
}