summaryrefslogtreecommitdiff
path: root/modules/server_add
diff options
context:
space:
mode:
Diffstat (limited to 'modules/server_add')
-rw-r--r--modules/server_add/controllers/admin_server_add.php4
-rw-r--r--modules/server_add/controllers/server_add.php39
-rw-r--r--modules/server_add/helpers/server_add.php2
-rw-r--r--modules/server_add/helpers/server_add_event.php41
-rw-r--r--modules/server_add/helpers/server_add_installer.php4
-rw-r--r--modules/server_add/helpers/server_add_menu.php64
-rw-r--r--modules/server_add/helpers/server_add_theme.php8
-rw-r--r--modules/server_add/js/server_add.js16
-rw-r--r--modules/server_add/views/admin_server_add.html.php4
-rw-r--r--modules/server_add/views/server_add_tree.html.php8
-rw-r--r--modules/server_add/views/server_add_tree_dialog.html.php15
11 files changed, 96 insertions, 109 deletions
diff --git a/modules/server_add/controllers/admin_server_add.php b/modules/server_add/controllers/admin_server_add.php
index 30109f42..fac2aa44 100644
--- a/modules/server_add/controllers/admin_server_add.php
+++ b/modules/server_add/controllers/admin_server_add.php
@@ -38,7 +38,7 @@ class Admin_Server_Add_Controller extends Admin_Controller {
$path = $form->add_path->path->value;
$paths[$path] = 1;
module::set_var("server_add", "authorized_paths", serialize($paths));
- message::success(t("Added path %path", array("path" => p::clean($path))));
+ message::success(t("Added path %path", array("path" => $path)));
server_add::check_config($paths);
url::redirect("admin/server_add");
} else {
@@ -60,7 +60,7 @@ class Admin_Server_Add_Controller extends Admin_Controller {
$paths = unserialize(module::get_var("server_add", "authorized_paths"));
if (isset($paths[$path])) {
unset($paths[$path]);
- message::success(t("Removed path %path", array("path" => p::clean($path))));
+ message::success(t("Removed path %path", array("path" => $path)));
module::set_var("server_add", "authorized_paths", serialize($paths));
server_add::check_config($paths);
}
diff --git a/modules/server_add/controllers/server_add.php b/modules/server_add/controllers/server_add.php
index 6056d7cd..26b3bd08 100644
--- a/modules/server_add/controllers/server_add.php
+++ b/modules/server_add/controllers/server_add.php
@@ -150,7 +150,8 @@ class Server_Add_Controller extends Admin_Controller {
$queue[] = array($child, $entry->id);
} else {
$ext = strtolower(pathinfo($child, PATHINFO_EXTENSION));
- if (in_array($ext, array("gif", "jpeg", "jpg", "png", "flv", "mp4"))) {
+ if (in_array($ext, array("gif", "jpeg", "jpg", "png", "flv", "mp4")) &&
+ filesize($child) > 0) {
$child_entry = ORM::factory("server_add_file");
$child_entry->task_id = $task->id;
$child_entry->file = $child;
@@ -219,19 +220,25 @@ class Server_Add_Controller extends Admin_Controller {
$album = album::create($parent, $name, $title, null, $owner_id);
$entry->item_id = $album->id;
} else {
- $extension = strtolower(pathinfo($name, PATHINFO_EXTENSION));
- if (in_array($extension, array("gif", "png", "jpg", "jpeg"))) {
- $photo = photo::create($parent, $entry->file, $name, $title, null, $owner_id);
- $entry->item_id = $photo->id;
- } else if (in_array($extension, array("flv", "mp4"))) {
- $movie = movie::create($parent, $entry->file, $name, $title, null, $owner_id);
- $entry->item_id = $movie->id;
- } else {
- // This should never happen, because we don't add stuff to the list that we can't
- // process. But just in, case.. set this to a non-null value so that we skip this
- // entry.
+ try {
+ $extension = strtolower(pathinfo($name, PATHINFO_EXTENSION));
+ if (in_array($extension, array("gif", "png", "jpg", "jpeg"))) {
+ $photo = photo::create($parent, $entry->file, $name, $title, null, $owner_id);
+ $entry->item_id = $photo->id;
+ } else if (in_array($extension, array("flv", "mp4"))) {
+ $movie = movie::create($parent, $entry->file, $name, $title, null, $owner_id);
+ $entry->item_id = $movie->id;
+ } else {
+ // This should never happen, because we don't add stuff to the list that we can't
+ // process. But just in, case.. set this to a non-null value so that we skip this
+ // entry.
+ $entry->item_id = 0;
+ $task->log("Skipping unknown file type: $entry->file");
+ }
+ } catch (Exception $e) {
+ // This can happen if a photo file is invalid, like a BMP masquerading as a .jpg
$entry->item_id = 0;
- $task->log("Skipping unknown file type: $entry->file");
+ $task->log("Skipping invalid file: $entry->file");
}
}
@@ -239,7 +246,7 @@ class Server_Add_Controller extends Admin_Controller {
$entry->save();
}
$task->set("completed_files", $completed_files);
- $task->status = t("Adding photos and albums (%completed of %total)",
+ $task->status = t("Adding photos / albums (%completed of %total)",
array("completed" => $completed_files,
"total" => $total_files));
$task->percent_complete = 10 + 100 * ($completed_files / $total_files);
@@ -251,8 +258,8 @@ class Server_Add_Controller extends Admin_Controller {
$task->state = "success";
$task->percent_complete = 100;
ORM::factory("server_add_file")->where("task_id", $task->id)->delete_all();
- message::info(t2("Successfully added one photo",
- "Successfully added %count photos and albums",
+ message::info(t2("Successfully added one photo / album",
+ "Successfully added %count photos / albums",
$task->get("completed_files")));
}
}
diff --git a/modules/server_add/helpers/server_add.php b/modules/server_add/helpers/server_add.php
index 74f51ad9..27794855 100644
--- a/modules/server_add/helpers/server_add.php
+++ b/modules/server_add/helpers/server_add.php
@@ -25,7 +25,7 @@ class server_add_Core {
if (empty($paths)) {
site_status::warning(
t("Server Add needs configuration. <a href=\"%url\">Configure it now!</a>",
- array("url" => url::site("admin/server_add"))),
+ array("url" => html::mark_clean(url::site("admin/server_add")))),
"server_add_configuration");
} else {
site_status::clear("server_add_configuration");
diff --git a/modules/server_add/helpers/server_add_event.php b/modules/server_add/helpers/server_add_event.php
new file mode 100644
index 00000000..b9dd8c28
--- /dev/null
+++ b/modules/server_add/helpers/server_add_event.php
@@ -0,0 +1,41 @@
+<?php defined("SYSPATH") or die("No direct script access.");
+/**
+ * Gallery - a web based photo album viewer and editor
+ * Copyright (C) 2000-2009 Bharat Mediratta
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+class server_add_event_Core {
+ static function admin_menu($menu, $theme) {
+ $menu->get("settings_menu")
+ ->append(Menu::factory("link")
+ ->id("server_add")
+ ->label(t("Server Add"))
+ ->url(url::site("admin/server_add")));
+ }
+
+ static function site_menu($menu, $theme) {
+ $item = $theme->item();
+ $paths = unserialize(module::get_var("server_add", "authorized_paths"));
+
+ if ($item && user::active()->admin && $item->is_album() && !empty($paths)) {
+ $menu->get("add_menu")
+ ->append(Menu::factory("dialog")
+ ->id("server_add")
+ ->label(t("Server add"))
+ ->url(url::site("server_add/browse/$item->id")));
+ }
+ }
+}
diff --git a/modules/server_add/helpers/server_add_installer.php b/modules/server_add/helpers/server_add_installer.php
index cd278eb7..c3c1572d 100644
--- a/modules/server_add/helpers/server_add_installer.php
+++ b/modules/server_add/helpers/server_add_installer.php
@@ -27,7 +27,7 @@ class server_add_installer {
`parent_id` int(9),
`task_id` int(9) NOT NULL,
PRIMARY KEY (`id`))
- ENGINE=InnoDB DEFAULT CHARSET=utf8;");
+ DEFAULT CHARSET=utf8;");
module::set_version("server_add", 3);
server_add::check_config();
}
@@ -40,7 +40,7 @@ class server_add_installer {
`task_id` int(9) NOT NULL,
`file` varchar(255) NOT NULL,
PRIMARY KEY (`id`))
- ENGINE=InnoDB DEFAULT CHARSET=utf8;");
+ DEFAULT CHARSET=utf8;");
module::set_version("server_add", $version = 2);
}
diff --git a/modules/server_add/helpers/server_add_menu.php b/modules/server_add/helpers/server_add_menu.php
deleted file mode 100644
index 0f01eb64..00000000
--- a/modules/server_add/helpers/server_add_menu.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php defined("SYSPATH") or die("No direct script access.");
-/**
- * Gallery - a web based photo album viewer and editor
- * Copyright (C) 2000-2009 Bharat Mediratta
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or (at
- * your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
- */
-class server_add_menu_Core {
- static function admin($menu, $theme) {
- $menu->get("settings_menu")
- ->append(Menu::factory("link")
- ->id("server_add")
- ->label(t("Server Add"))
- ->url(url::site("admin/server_add")));
- }
-
- static function site($menu, $theme) {
- $item = $theme->item();
- $paths = unserialize(module::get_var("server_add", "authorized_paths"));
-
- if ($item && user::active()->admin && $item->is_album() && !empty($paths)) {
- // This is a little tricky. Normally there's an "Add Photo" menu option, but we want to
- // turn that into a dropdown if there are two different ways to add things. Do that in a
- // portable way for now. If we find ourselves duplicating this pattern, we should make an
- // API method for this.
- $server_add = Menu::factory("dialog")
- ->id("server_add")
- ->label(t("Add from server"))
- ->url(url::site("server_add/browse/$item->id"));
- $add_photos_item = $menu->get("add_photos_item");
- $add_photos_menu = $menu->get("add_photos_menu");
-
- if ($add_photos_item && !$add_photos_menu) {
- // Assuming that $add_menu is unset, create add_menu and add our item
- $menu->add_after(
- "add_photos_item",
- Menu::factory("submenu")
- ->id("add_photos_menu")
- ->label($add_photos_item->label)
- ->append(Menu::factory("dialog")
- ->id("add_photos_submenu_item")
- ->label(t("Simple Uploader"))
- ->url($add_photos_item->url))
- ->append($server_add));
- $menu->remove("add_photos_item");
- } else if ($add_photos_menu) {
- // Append to the existing sub-menu
- $add_photos_menu->append($server_add);
- }
- }
- }
-}
diff --git a/modules/server_add/helpers/server_add_theme.php b/modules/server_add/helpers/server_add_theme.php
index 02f99690..2ba2e167 100644
--- a/modules/server_add/helpers/server_add_theme.php
+++ b/modules/server_add/helpers/server_add_theme.php
@@ -20,20 +20,20 @@
class server_add_theme_Core {
static function head($theme) {
if (user::active()->admin) {
- $theme->script("modules/server_add/js/server_add.js");
+ $theme->script("server_add.js");
}
}
static function admin_head($theme) {
$head = array();
if (strpos(Router::$current_uri, "admin/server_add") !== false) {
- $theme->css("lib/jquery.autocomplete.css");
+ $theme->css("jquery.autocomplete.css");
$base = url::site("__ARGS__");
$csrf = access::csrf_token();
$head[] = "<script> var base_url = \"$base\"; var csrf = \"$csrf\";</script>";
- $theme->script("lib/jquery.autocomplete.js");
- $theme->script("modules/server_add/js/admin.js");
+ $theme->script("jquery.autocomplete.js");
+ $theme->script("admin.js");
}
return implode("\n", $head);
diff --git a/modules/server_add/js/server_add.js b/modules/server_add/js/server_add.js
index 989555cc..51ef41a7 100644
--- a/modules/server_add/js/server_add.js
+++ b/modules/server_add/js/server_add.js
@@ -4,11 +4,9 @@
function select_file(li) {
$(li).toggleClass("selected");
if ($("#gServerAdd span.selected").length) {
- $("#gServerAddAddButton").enable(true);
- $("#gServerAddAddButton").removeClass("ui-state-disabled");
+ $("#gServerAddAddButton").enable(true).removeClass("ui-state-disabled");
} else {
- $("#gServerAddAddButton").enable(false);
- $("#gServerAddAddButton").addClass("ui-state-disabled");
+ $("#gServerAddAddButton").enable(false).addClass("ui-state-disabled");
}
}
@@ -26,9 +24,11 @@ function open_dir(path) {
function start_add() {
var paths = [];
- $.each($("#gServerAdd span.selected"), function () {
- paths.push($(this).attr("file"));
- });
+ $.each($("#gServerAdd span.selected"),
+ function () {
+ paths.push($(this).attr("file"));
+ }
+ );
$.ajax({
url: START_URL,
@@ -54,7 +54,7 @@ function run_add(url) {
$("#gStatus").html(data.status);
$("#gServerAdd .gProgressBar").progressbar("value", data.percent_complete);
if (data.done) {
- $("#gProgress").slideUp();
+ $("#gServerAddProgress").slideUp();
} else {
setTimeout(function() { run_add(url); }, 0);
}
diff --git a/modules/server_add/views/admin_server_add.html.php b/modules/server_add/views/admin_server_add.html.php
index 588a9fca..b48a19da 100644
--- a/modules/server_add/views/admin_server_add.html.php
+++ b/modules/server_add/views/admin_server_add.html.php
@@ -11,12 +11,12 @@
<ul id="gPathList">
<? foreach ($paths as $id => $path): ?>
<li class="ui-icon-left">
- <a href="<?= url::site("admin/server_add/remove_path?path=$path&csrf=$csrf") ?>"
+ <a href="<?= url::site("admin/server_add/remove_path?path=" . urlencode($path) . "&amp;csrf=$csrf") ?>"
id="icon_<?= $id?>"
class="gRemoveDir ui-icon ui-icon-trash">
X
</a>
- <?= $path ?>
+ <?= html::clean($path) ?>
</li>
<? endforeach ?>
</ul>
diff --git a/modules/server_add/views/server_add_tree.html.php b/modules/server_add/views/server_add_tree.html.php
index 254a9da0..918fbdc7 100644
--- a/modules/server_add/views/server_add_tree.html.php
+++ b/modules/server_add/views/server_add_tree.html.php
@@ -9,8 +9,8 @@
<? foreach ($parents as $dir): ?>
<li class="ui-icon-left">
<span class="ui-icon ui-icon-folder-open"></span>
- <span ondblclick="open_dir('<?= $dir ?>')">
- <?= basename($dir) ?>
+ <span ondblclick='open_dir(<?= html::js_string($dir) ?>)'>
+ <?= html::clean(basename($dir)) ?>
</span>
<ul>
<? endforeach ?>
@@ -22,9 +22,9 @@
<? if (is_dir($file)): ?>
ondblclick="open_dir($(this).attr('file'))"
<? endif ?>
- file="<?= $file ?>"
+ file="<?= html::clean_attribute($file) ?>"
>
- <?= p::clean(basename($file)) ?>
+ <?= html::clean(basename($file)) ?>
</span>
</li>
<? endforeach ?>
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 21952849..8eb6e4df 100644
--- a/modules/server_add/views/server_add_tree_dialog.html.php
+++ b/modules/server_add/views/server_add_tree_dialog.html.php
@@ -5,17 +5,17 @@
</script>
<div id="gServerAdd">
- <h1 style="display: none;"><?= t("Add Photos to '%title'", array("title" => p::purify($item->title))) ?></h1>
+ <h1 style="display: none;"><?= t("Add Photos to '%title'", array("title" => html::purify($item->title))) ?></h1>
<p id="gDescription"><?= t("Photos will be added to album:") ?></p>
<ul class="gBreadcrumbs">
<? foreach ($item->parents() as $parent): ?>
<li>
- <?= p::purify($parent->title) ?>
+ <?= html::purify($parent->title) ?>
</li>
<? endforeach ?>
<li class="active">
- <?= p::purify($item->title) ?>
+ <?= html::purify($item->title) ?>
</li>
</ul>
@@ -23,7 +23,7 @@
<?= $tree ?>
</ul>
- <div id="gProgress" style="display: none">
+ <div id="gServerAddProgress" style="display: none">
<div class="gProgressBar"></div>
<div id="gStatus"></div>
</div>
@@ -34,7 +34,7 @@
<?= t("Add") ?>
</button>
- <button class="ui-state-default ui-corner-all" onclick="closeDialog(); window.location.reload();">
+ <button id="gServerCloseButton" class="ui-state-default ui-corner-all">
<?= t("Close") ?>
</button>
</span>
@@ -46,7 +46,10 @@
$("#gServerAdd .gProgressBar").
progressbar().
progressbar("value", 0);
- $("#gProgress").slideDown("fast", function() { start_add() });
+ $("#gServerAddProgress").slideDown("fast", function() { start_add() });
+ });
+ $("#gServerCloseButton").click(function(event) {
+ $("#gDialog").dialog("close");
});
});
</script>