summaryrefslogtreecommitdiff
path: root/modules/server_add/js/server_add.js
diff options
context:
space:
mode:
authorBharat Mediratta <bharat@menalto.com>2009-09-21 21:29:13 -0700
committerBharat Mediratta <bharat@menalto.com>2009-09-21 21:29:13 -0700
commite5a78d39ec49332054cbc1a398d7c110e1d9191c (patch)
treec2acb4731a381b7a1b28fa5ed505a76adb23a3ef /modules/server_add/js/server_add.js
parent529ded3388673036314eefd5bfb1cfc0b76f7f9e (diff)
parent33690a32bcf132e5ab470ff77ba23c073ac26271 (diff)
Merge branch 'master' of git@github.com:gallery/gallery3 into bharat_dev
Conflicts: modules/gallery/controllers/albums.php
Diffstat (limited to 'modules/server_add/js/server_add.js')
-rw-r--r--modules/server_add/js/server_add.js179
1 files changed, 120 insertions, 59 deletions
diff --git a/modules/server_add/js/server_add.js b/modules/server_add/js/server_add.js
index 51ef41a7..50a8c36b 100644
--- a/modules/server_add/js/server_add.js
+++ b/modules/server_add/js/server_add.js
@@ -1,64 +1,125 @@
-/**
- * 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(); });
+ });
+ $("#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();
+ });
+ $("#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);
+ });
+ $("#gServerAddTree span.gDirectory", this.element).dblclick(function(event) {
+ self.open_dir(event);
+ });
+ $("#gDialog").bind("dialogclose", function(event, ui) {
+ window.location.reload();
+ });
+ },
-/**
- * Load a new directory
- */
-function open_dir(path) {
- $.ajax({
- url: GET_CHILDREN_URL.replace("__PATH__", path),
- success: function(data, textStatus) {
- $("#gServerAddTree").html(data);
- }
- });
-}
+ taskURL: null,
+ pause: false,
-function start_add() {
- var paths = [];
- $.each($("#gServerAdd span.selected"),
- function () {
- paths.push($(this).attr("file"));
- }
- );
+ start_add: function() {
+ var self = this;
+ var paths = [];
+ $.each($("span.selected", self.element), function () {
+ paths.push($(this).attr("ref"));
+ });
- $.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); }, 0);
- }
- });
- return false;
-}
+ $("#gServerAddAddButton", this.element).hide();
+ $("#gServerAddPauseButton", this.element).show();
-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); }, 0);
- }
- }
- });
-}
+ $.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);
+ self.taskURL = data.url;
+ setTimeout(function() { self.run_add(); }, 25);
+ }
+ });
+ return false;
+ },
+ run_add: function () {
+ var self = this;
+ $.ajax({
+ url: self.taskURL,
+ 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();
+ $("#gServerAddAddButton", this.element).show();
+ $("#gServerAddPauseButton", this.element).hide();
+ $("#gServerAddContinueButton", this.element).hide();
+ } else {
+ if (!self.pause) {
+ setTimeout(function() { self.run_add(); }, 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);