From be1d49d017a71ee0967c47325986f482532a4f16 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Thu, 17 Sep 2009 10:55:50 -0700 Subject: Change the timeout on resubmitting the next task iteration to 25ms instead of. This allows the jQuery.ajax method to complete its processing. Otherwise, the browser can spend time thrashing around trying to send the next request. --- modules/server_add/js/server_add.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'modules/server_add/js') diff --git a/modules/server_add/js/server_add.js b/modules/server_add/js/server_add.js index 51ef41a7..4c411715 100644 --- a/modules/server_add/js/server_add.js +++ b/modules/server_add/js/server_add.js @@ -39,7 +39,7 @@ function start_add() { success: function(data, textStatus) { $("#gStatus").html(data.status); $("#gServerAdd .gProgressBar").progressbar("value", data.percent_complete); - setTimeout(function() { run_add(data.url); }, 0); + setTimeout(function() { run_add(data.url); }, 25); } }); return false; @@ -56,7 +56,7 @@ function run_add(url) { if (data.done) { $("#gServerAddProgress").slideUp(); } else { - setTimeout(function() { run_add(url); }, 0); + setTimeout(function() { run_add(url); }, 25); } } }); -- cgit v1.2.3 From 15c3f0b1aaf43a1b627266d569971b08c11d5835 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Thu, 17 Sep 2009 21:26:55 -0700 Subject: Refactor the server add javascript into a ui.gallery_server_add widget. --- modules/server_add/js/server_add.js | 151 +++++++++++++-------- modules/server_add/views/server_add_tree.html.php | 12 +- .../views/server_add_tree_dialog.html.php | 14 +- 3 files changed, 98 insertions(+), 79 deletions(-) (limited to 'modules/server_add/js') diff --git a/modules/server_add/js/server_add.js b/modules/server_add/js/server_add.js index 4c411715..7daa0adc 100644 --- a/modules/server_add/js/server_add.js +++ b/modules/server_add/js/server_add.js @@ -1,64 +1,97 @@ -/** - * Manage file selection state. - */ -function select_file(li) { - $(li).toggleClass("selected"); - if ($("#gServerAdd span.selected").length) { - $("#gServerAddAddButton").enable(true).removeClass("ui-state-disabled"); - } else { - $("#gServerAddAddButton").enable(false).addClass("ui-state-disabled"); - } -} +(function($) { + $.widget("ui.gallery_server_add", { + _init: function() { + var self = this; + $("#gServerAddAddButton", this.element).click(function(event) { + event.preventDefault(); + $(".gProgressBar", this.element). + progressbar(). + progressbar("value", 0); + $("#gServerAddProgress", this.element).slideDown("fast", function() { self.start_add(); }); + }); + $("#gServerCloseButton", this.element).click(function(event) { + $("#gDialog").dialog("close"); + window.location.reload(); + }); + $("#gServerAddTree span.gDirectory", this.element).dblclick(function(event) { + self.open_dir(event); + }); + $("#gServerAddTree span.gFile, #gServerAddTree span.gDirectory", this.element).click(function(event) { + self.select_file(event); + }); + }, -/** - * Load a new directory - */ -function open_dir(path) { - $.ajax({ - url: GET_CHILDREN_URL.replace("__PATH__", path), - success: function(data, textStatus) { - $("#gServerAddTree").html(data); - } - }); -} + start_add: function() { + var self = this; + var paths = []; + $.each($("span.selected", self.element), function () { + paths.push($(this).attr("ref")); + }); -function start_add() { - var paths = []; - $.each($("#gServerAdd span.selected"), - function () { - paths.push($(this).attr("file")); - } - ); + $.ajax({ + url: START_URL, + type: "POST", + async: false, + data: { "paths[]": paths }, + dataType: "json", + success: function(data, textStatus) { + $("#gStatus").html(data.status); + $(".gProgressBar", self.element).progressbar("value", data.percent_complete); + setTimeout(function() { self.run_add(data.url); }, 25); + } + }); + return false; + }, - $.ajax({ - url: START_URL, - type: "POST", - async: false, - data: { "paths[]": paths }, - dataType: "json", - success: function(data, textStatus) { - $("#gStatus").html(data.status); - $("#gServerAdd .gProgressBar").progressbar("value", data.percent_complete); - setTimeout(function() { run_add(data.url); }, 25); - } - }); - return false; -} + run_add: function (url) { + var self = this; + $.ajax({ + url: url, + async: false, + dataType: "json", + success: function(data, textStatus) { + $("#gStatus").html(data.status); + $(".gProgressBar", self.element).progressbar("value", data.percent_complete); + if (data.done) { + $("#gServerAddProgress", this.element).slideUp(); + } else { + setTimeout(function() { self.run_add(url); }, 25); + } -function run_add(url) { - $.ajax({ - url: url, - async: false, - dataType: "json", - success: function(data, textStatus) { - $("#gStatus").html(data.status); - $("#gServerAdd .gProgressBar").progressbar("value", data.percent_complete); - if (data.done) { - $("#gServerAddProgress").slideUp(); - } else { - setTimeout(function() { run_add(url); }, 25); - } - } - }); -} + } + }); + }, + /** + * Load a new directory + */ + open_dir: function(event) { + var self = this; + var path = $(event.target).attr("ref"); + $.ajax({ + url: GET_CHILDREN_URL.replace("__PATH__", path), + success: function(data, textStatus) { + $("#gServerAddTree", self.element).html(data); + $("#gServerAddTree span.gDirectory", self.element).dblclick(function(event) { + self.open_dir(event); + }); + $("#gServerAddTree span.gFile, #gServerAddTree span.gDirectory", this.element).click(function(event) { + self.select_file(event); + }); + } + }); + }, + + /** + * Manage file selection state. + */ + select_file: function (event) { + $(event.target).toggleClass("selected"); + if ($("#gServerAdd span.selected").length) { + $("#gServerAddAddButton").enable(true).removeClass("ui-state-disabled"); + } else { + $("#gServerAddAddButton").enable(false).addClass("ui-state-disabled"); + } + } + }); +})(jQuery); diff --git a/modules/server_add/views/server_add_tree.html.php b/modules/server_add/views/server_add_tree.html.php index 918fbdc7..4e5bf601 100644 --- a/modules/server_add/views/server_add_tree.html.php +++ b/modules/server_add/views/server_add_tree.html.php @@ -1,7 +1,7 @@
  • - +
      @@ -9,7 +9,7 @@
    • - +
        @@ -18,12 +18,8 @@
      • "> - - ondblclick="open_dir($(this).attr('file'))" - - file="" - > + " + ref="" >
      • diff --git a/modules/server_add/views/server_add_tree_dialog.html.php b/modules/server_add/views/server_add_tree_dialog.html.php index dd4efd06..354659bc 100644 --- a/modules/server_add/views/server_add_tree_dialog.html.php +++ b/modules/server_add/views/server_add_tree_dialog.html.php @@ -40,18 +40,8 @@ -- cgit v1.2.3 From be84c7be2557dae92426e64ab44170e8999cfc44 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Fri, 18 Sep 2009 12:17:58 -0700 Subject: * Changed the close functionality so the page is reloaded when the dialog is closed. * Renamed the ServerAddCloseButton. * Added Pause and Continue buttons. Now when add is clicked, A Pause button is shown, once the adding is complete, the add button is reshown andpause button is hidden. Clicking the pause button will hide it and show a continue button. --- modules/server_add/js/server_add.js | 40 ++++++++++++++++++---- .../views/server_add_tree_dialog.html.php | 8 ++++- 2 files changed, 41 insertions(+), 7 deletions(-) (limited to 'modules/server_add/js') diff --git a/modules/server_add/js/server_add.js b/modules/server_add/js/server_add.js index 7daa0adc..50a8c36b 100644 --- a/modules/server_add/js/server_add.js +++ b/modules/server_add/js/server_add.js @@ -9,7 +9,18 @@ progressbar("value", 0); $("#gServerAddProgress", this.element).slideDown("fast", function() { self.start_add(); }); }); - $("#gServerCloseButton", this.element).click(function(event) { + $("#gServerAddPauseButton", this.element).click(function(event) { + self.pause = true; + $("#gServerAddPauseButton", this.element).hide(); + $("#gServerAddContinueButton", this.element).show(); + }); + $("#gServerAddContinueButton", this.element).click(function(event) { + self.pause = false; + $("#gServerAddPauseButton", this.element).show(); + $("#gServerAddContinueButton", this.element).hide(); + self.run_add(); + }); + $("#gServerAddCloseButton", this.element).click(function(event) { $("#gDialog").dialog("close"); window.location.reload(); }); @@ -19,8 +30,17 @@ $("#gServerAddTree span.gFile, #gServerAddTree span.gDirectory", this.element).click(function(event) { self.select_file(event); }); + $("#gServerAddTree span.gDirectory", this.element).dblclick(function(event) { + self.open_dir(event); + }); + $("#gDialog").bind("dialogclose", function(event, ui) { + window.location.reload(); + }); }, + taskURL: null, + pause: false, + start_add: function() { var self = this; var paths = []; @@ -28,6 +48,9 @@ paths.push($(this).attr("ref")); }); + $("#gServerAddAddButton", this.element).hide(); + $("#gServerAddPauseButton", this.element).show(); + $.ajax({ url: START_URL, type: "POST", @@ -37,16 +60,17 @@ success: function(data, textStatus) { $("#gStatus").html(data.status); $(".gProgressBar", self.element).progressbar("value", data.percent_complete); - setTimeout(function() { self.run_add(data.url); }, 25); + self.taskURL = data.url; + setTimeout(function() { self.run_add(); }, 25); } }); return false; }, - run_add: function (url) { + run_add: function () { var self = this; $.ajax({ - url: url, + url: self.taskURL, async: false, dataType: "json", success: function(data, textStatus) { @@ -54,10 +78,14 @@ $(".gProgressBar", self.element).progressbar("value", data.percent_complete); if (data.done) { $("#gServerAddProgress", this.element).slideUp(); + $("#gServerAddAddButton", this.element).show(); + $("#gServerAddPauseButton", this.element).hide(); + $("#gServerAddContinueButton", this.element).hide(); } else { - setTimeout(function() { self.run_add(url); }, 25); + if (!self.pause) { + setTimeout(function() { self.run_add(); }, 25); + } } - } }); }, diff --git a/modules/server_add/views/server_add_tree_dialog.html.php b/modules/server_add/views/server_add_tree_dialog.html.php index 354659bc..fdb66d1c 100644 --- a/modules/server_add/views/server_add_tree_dialog.html.php +++ b/modules/server_add/views/server_add_tree_dialog.html.php @@ -33,8 +33,14 @@ disabled="disabled"> + + - -- cgit v1.2.3