diff options
author | Tim Almdal <tnalmdal@shaw.ca> | 2009-02-21 02:28:19 +0000 |
---|---|---|
committer | Tim Almdal <tnalmdal@shaw.ca> | 2009-02-21 02:28:19 +0000 |
commit | c2fa42cf6cf6a2742b2a40ef7fc46f95f7a734f3 (patch) | |
tree | fdb541eb6d7310ea7582a5aaaaf5bd8201f767d3 /modules/local_import/js/local_import.js | |
parent | af2f7f2c565519c177e9ef7d9848419936ddf8fb (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.js | 60 |
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; +} |