diff options
author | Tim Almdal <tnalmdal@shaw.ca> | 2009-03-24 17:41:20 +0000 |
---|---|---|
committer | Tim Almdal <tnalmdal@shaw.ca> | 2009-03-24 17:41:20 +0000 |
commit | 00ffb24eb05705813505ac6e83adb155a9303496 (patch) | |
tree | f213b518c4f0249abb9e55645ed938bd846d3baa /modules/server_add/js | |
parent | 520a4b41b3776c0ffb71af5580668d6530d9ed05 (diff) |
Add a pause button to the server add dialog and if it is clicked then
the upload is paused. If the dialog is closed and the task is not
complete then a warning message is displayed on the album.
Diffstat (limited to 'modules/server_add/js')
-rw-r--r-- | modules/server_add/js/server_add.js | 84 |
1 files changed, 60 insertions, 24 deletions
diff --git a/modules/server_add/js/server_add.js b/modules/server_add/js/server_add.js index d4066a7d..392bedab 100644 --- a/modules/server_add/js/server_add.js +++ b/modules/server_add/js/server_add.js @@ -1,10 +1,33 @@ +var paused = false; +var task = null; + $("#gServerAdd").ready(function() { - $("#gServerAdd :submit").click(function(event) { + init_server_add_form(); +}); + +function init_server_add_form() { + $("#gServerAdd #gServerAddButton").click(function(event) { do_add(this, event); }); + $("#gServerAdd #gServerPauseButton").click(function(event) { + event.preventDefault(); + paused = true; + }); $(".gProgressBar").progressbar(); $("#gServerAddTree ul").css("display", "block"); -}); + $("#gServerAdd form").bind("form_closing", function(target) { + if (task != null && !task.done) { + $.ajax({async: false, + success: function(data, textStatus) { + document.location.reload(); + }, + dataType: "json", + type: "POST", + url: get_url("server_add/finish", task.id + "/true") + }); + } + }); +} function open_close_branch(icon, event) { var parent = icon.parentNode; @@ -60,27 +83,35 @@ function load_children(parent, callback) { function do_add(submit, event) { event.preventDefault(); - $(".gProgressBar").progressbar("value", 0); - $(".gProgressBar").css("visibility", "visible"); - var check_list = $("#gServerAdd :checkbox[checked]"); - var parms = ""; - $.each(check_list, function () { - var parent = $(this).parents("li")[0]; - // If its a file or a directory with no children - if ($(parent).hasClass("gFile") || - ($(parent).hasClass("gDirectory") && $(parent).find(".gCheckboxTree").length == 0)) { - parms += "&path[]=" + this.value; - } - }); + $("#gServerAdd #gServerAddButton").hide(); + $("#gServerAdd #gServerPauseButton").show(); + + if (!paused) { + $(".gProgressBar").progressbar("value", 0); + $(".gProgressBar").css("visibility", "visible"); + var check_list = $("#gServerAdd :checkbox[checked]"); + + var parms = ""; + $.each(check_list, function () { + var parent = $(this).parents("li")[0]; + // If its a file or a directory with no children + if ($(parent).hasClass("gFile") || + ($(parent).hasClass("gDirectory") && $(parent).find(".gCheckboxTree").length == 0)) { + parms += "&path[]=" + this.value; + } + }); + } + paused = false; + $.ajax({async: false, data: parms, dataType: "json", success: function(data, textStatus) { - var task = data.task; + task = data.task; var url = data.url; var done = false; - while (!done) { + while (!done && !paused) { $.ajax({async: false, success: function(data, textStatus) { $(".gProgressBar").progressbar("value", data.task.percent_complete); @@ -91,14 +122,19 @@ function do_add(submit, event) { url: url }); } - $.ajax({async: false, - success: function(data, textStatus) { - document.location.reload(); - }, - dataType: "json", - type: "POST", - url: get_url("server_add/finish", task.id) - }); + if (!paused) { + $.ajax({async: false, + success: function(data, textStatus) { + document.location.reload(); + }, + dataType: "json", + type: "POST", + url: get_url("server_add/finish", task.id) + }); + } else { + $("#gServerAdd #gServerAddButton").show(); + $("#gServerAdd #gServerPauseButton").hide(); + } }, type: "POST", url: get_url("server_add/start") |