summaryrefslogtreecommitdiff
path: root/modules/server_add/js/server_add.js
diff options
context:
space:
mode:
authorBharat Mediratta <bharat@menalto.com>2009-07-02 11:23:40 -0700
committerBharat Mediratta <bharat@menalto.com>2009-07-02 11:23:40 -0700
commite5b6193b26cf0f8509a98f7913a1d87fa354da05 (patch)
tree232a2dacd29acae22795234383140550415dfa63 /modules/server_add/js/server_add.js
parent495c76f729372e09f7511967c63948e36303e3d7 (diff)
Partial pass of server_add cleanup. It's broken at this stage since
I've redone the browsing code but I have not implemented the adding code. 1) Rename index() to browse() since index is too generic. 2) Simplify the data that we pass to _dialog and _tree 3) Change _tree to return list items only, so that the outer dialog can be a <ul> for consistency. 4) Simplify the data structures so that we're not tracking checked vs. unchecked status in the PHP code, it's all done in jquery where we can do it with just a line or two of JS 5) use glob() which pretty much entirely replaces _get_children
Diffstat (limited to 'modules/server_add/js/server_add.js')
-rw-r--r--modules/server_add/js/server_add.js52
1 files changed, 42 insertions, 10 deletions
diff --git a/modules/server_add/js/server_add.js b/modules/server_add/js/server_add.js
index e2526dbe..47340c45 100644
--- a/modules/server_add/js/server_add.js
+++ b/modules/server_add/js/server_add.js
@@ -1,3 +1,44 @@
+function open_close_branch(path, id) {
+ var parent = $("#file_" + id);
+ var children = $("#tree_" + id);
+ var icon = parent.find(".ui-icon:first");
+
+ if (!children.html()) {
+ parent.addClass("gLoadingSmall");
+ $.ajax({
+ url: GET_CHILDREN_URL.replace("__PATH__", path),
+ success: function(data, textStatus) {
+ children.html(data);
+ parent.removeClass("gLoadingSmall");
+
+ // Propagate checkbox value
+ children.find("input[type=checkbox]").attr(
+ "checked", parent.find("input[type=checkbox]:first").attr("checked"));
+ },
+ });
+ }
+
+ children.slideToggle("fast", function() {
+ if (children.is(":hidden")) {
+ icon.addClass("ui-icon-plus");
+ icon.removeClass("ui-icon-minus");
+ } else {
+ icon.addClass("ui-icon-minus");
+ icon.removeClass("ui-icon-plus");
+ parent.removeClass("gCollapsed");
+ }
+ });
+}
+
+function click_node(checkbox) {
+ var parent = $(checkbox).parents("li").get(0);
+ var checked = $(checkbox).attr("checked");
+ $(parent).find("input[type=checkbox]").attr("checked", checked);
+}
+
+/* ================================================================================ */
+
+/*
var paused = false;
var task = null;
@@ -82,16 +123,6 @@ function get_url(uri, task_id) {
return url;
}
-function checkbox_click(checkbox) {
- var parent = $(checkbox).parents("li").get(0);
- var checked = $(checkbox).attr("checked");
- if (!$(parent).hasClass("gCollapsed")) {
- $(parent).find(".gCheckboxTree input[type=checkbox]").attr("checked", checked);
- }
- var checkboxes = $("#gServerAdd :checkbox[checked]");
- $("#gServerAdd form :submit").attr("disabled", checkboxes.length == 0);
-}
-
function load_children(icon) {
$("#gDialog").addClass("gDialogLoadingLarge");
var parent = icon.parentNode;
@@ -203,3 +234,4 @@ function display_upload_error(error) {
});
}
+*/