summaryrefslogtreecommitdiff
path: root/modules/local_import/js/local_import.js
diff options
context:
space:
mode:
authorTim Almdal <tnalmdal@shaw.ca>2009-02-21 02:28:19 +0000
committerTim Almdal <tnalmdal@shaw.ca>2009-02-21 02:28:19 +0000
commitc2fa42cf6cf6a2742b2a40ef7fc46f95f7a734f3 (patch)
treefdb541eb6d7310ea7582a5aaaaf5bd8201f767d3 /modules/local_import/js/local_import.js
parentaf2f7f2c565519c177e9ef7d9848419936ddf8fb (diff)
Implementation of local import module. Still need work on better
status messages.
Diffstat (limited to 'modules/local_import/js/local_import.js')
-rw-r--r--modules/local_import/js/local_import.js60
1 files changed, 60 insertions, 0 deletions
diff --git a/modules/local_import/js/local_import.js b/modules/local_import/js/local_import.js
new file mode 100644
index 00000000..8118e20d
--- /dev/null
+++ b/modules/local_import/js/local_import.js
@@ -0,0 +1,60 @@
+function open_close_branch(icon, event) {
+ var parent = icon.parentNode;
+ //var label = $(parent).find("label");
+ var children = $(parent).find(".gCheckboxTree");
+ var closed = $(icon).hasClass("ui-icon-plus");
+
+ if (closed) {
+ if (children.length == 0) {
+ load_children( $(icon).attr("ref"), function(data, textStatus) {
+ $(parent).append(data);
+ $(icon).addClass("ui-icon-minus");
+ $(icon).removeClass("ui-icon-plus");
+ var checkbox = $(parent).find(":checkbox")[0];
+ checkbox_click(checkbox, null);
+ });
+ } else {
+ $(icon).addClass("ui-icon-minus");
+ $(icon).removeClass("ui-icon-plus");
+ $(parent).children("ul").slideDown("fast");
+ }
+ } else {
+ $(icon).addClass("ui-icon-plus");
+ $(icon).removeClass("ui-icon-minus");
+ $(parent).children("ul").slideUp("fast");
+ }
+}
+
+function checkbox_click(checkbox, event) {
+ var parents = $(checkbox).parents("li");
+ var parent = parents.get(0);
+ $(parent).find(".gCheckboxTree :checkbox").attr("checked", checkbox.checked);
+ var checked = $("#gLocalImport .gFile :checkbox[checked]");
+ $("#gLocalImport form :submit").attr("disabled", checked.length == 0);
+}
+
+function load_children(path, callback) {
+ var csrf = $("#gLocalImport form :hidden[name='csrf']")[0].value;
+ var base_url = $("#gLocalImport form :hidden[name='base_url']")[0].value;
+ $.post(base_url + "local_import/children",
+ {csrf: csrf, path: path}, callback);
+}
+
+function do_import(submit, event) {
+ event.preventDefault();
+ $("#gImportProgress").progressbar('value', 0);
+ $("#gImportProgress").css("visibility", "visible");
+ var check_list = $("#gLocalImport .gFile :checkbox[checked]");
+ var current = 0;
+ var csrf = $("#gLocalImport form :hidden[name='csrf']")[0].value;
+ var url = $("#gLocalImport form").attr("action");
+ $.each(check_list, function () {
+ var path = $(this).val();
+ $.post(url, {csrf: csrf, path: path}, function(data, status) {
+ });
+ current++;
+ $("#gImportProgress").progressbar('value', current / check_list.length * 100);
+ });
+ document.location.reload();
+ return false;
+}