summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/server_add/js/server_add.js151
-rw-r--r--modules/server_add/views/server_add_tree.html.php12
-rw-r--r--modules/server_add/views/server_add_tree_dialog.html.php14
3 files changed, 98 insertions, 79 deletions
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 @@
<?php defined("SYSPATH") or die("No direct script access.") ?>
<li class="ui-icon-left">
<span class="ui-icon ui-icon-folder-open"></span>
- <span ondblclick="open_dir('')">
+ <span class="gDirectory" ref="">
<?= t("All") ?>
</span>
<ul>
@@ -9,7 +9,7 @@
<? foreach ($parents as $dir): ?>
<li class="ui-icon-left">
<span class="ui-icon ui-icon-folder-open"></span>
- <span ondblclick='open_dir(<?= html::js_string($dir) ?>)'>
+ <span class="gDirectory" ref="<?= html::clean_attribute($dir) ?>">
<?= html::clean(basename($dir)) ?>
</span>
<ul>
@@ -18,12 +18,8 @@
<? foreach ($files as $file): ?>
<li class="ui-icon-left">
<span class="ui-icon <?= is_dir($file) ? "ui-icon-folder-collapsed" : "ui-icon-document" ?>"></span>
- <span onclick="select_file(this)"
- <? if (is_dir($file)): ?>
- ondblclick="open_dir($(this).attr('file'))"
- <? endif ?>
- file="<?= html::clean_attribute($file) ?>"
- >
+ <span class="<?= is_dir($file) ? "gDirectory" : "gFile" ?>"
+ ref="<?= html::clean_attribute($file) ?>" >
<?= html::clean(basename($file)) ?>
</span>
</li>
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 @@
</span>
<script type="text/javascript">
- $("#gServerAddAddButton").ready(function() {
- $("#gServerAddAddButton").click(function(event) {
- event.preventDefault();
- $("#gServerAdd .gProgressBar").
- progressbar().
- progressbar("value", 0);
- $("#gServerAddProgress").slideDown("fast", function() { start_add() });
- });
- $("#gServerCloseButton").click(function(event) {
- $("#gDialog").dialog("close");
- window.location.reload();
- });
+ $("#gServerAdd").ready(function() {
+ $("#gServerAdd").gallery_server_add();
});
</script>