From c2fa42cf6cf6a2742b2a40ef7fc46f95f7a734f3 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Sat, 21 Feb 2009 02:28:19 +0000 Subject: Implementation of local import module. Still need work on better status messages. --- .../controllers/admin_local_import.php | 82 ++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 modules/local_import/controllers/admin_local_import.php (limited to 'modules/local_import/controllers/admin_local_import.php') diff --git a/modules/local_import/controllers/admin_local_import.php b/modules/local_import/controllers/admin_local_import.php new file mode 100644 index 00000000..5c78344b --- /dev/null +++ b/modules/local_import/controllers/admin_local_import.php @@ -0,0 +1,82 @@ +content = local_import::get_admin_page(); + + print $view; + } + + public function add_path() { + access::verify_csrf(); + + $form = local_import::get_admin_form(); + $paths = unserialize(module::get_var("local_import", "authorized_paths", "a:0:{}")); + if ($form->validate()) { + if (is_readable($form->add_path->path->value)) { + $paths[$form->add_path->path->value] = 1; + module::set_var("local_import", "authorized_paths", serialize($paths)); + $path_count = count($paths) - 1; + $path_view = new View("local_import_dir_list.html"); + $path_view->paths = array_keys($paths); + $form->add_path->inputs["path"]->value(""); + print json_encode( + array("result" => "success", + "paths" => $path_view->__toString(), + "form" => $form->__toString())); + } else { + $form->add_path->inputs["path"]->error("not_readable"); + print json_encode(array("result" => "error", "form" => $form->__toString())); + } + } else { + print json_encode(array("result" => "error", "form" => $form->__toString())); + } + + } + + public function remove() { + access::verify_csrf(); + + $path = $this->input->post("path"); + $paths = unserialize(module::get_var("local_import", "authorized_paths")); + unset($paths[$path]); + module::set_var("local_import", "authorized_paths", serialize($paths)); + + $view = new View("local_import_dir_list.html"); + $view->paths = array_keys($paths); + + print $view->render(); + } + + public function autocomplete() { + access::verify_csrf(); + + $directories = array(); + $path_prefix = $this->input->get("q"); + foreach (glob("{$path_prefix}*") as $file) { + if (is_dir($file)) { + $directories[] = $file; + } + } + + print implode("\n", $directories); + } +} \ No newline at end of file -- cgit v1.2.3