summaryrefslogtreecommitdiff
path: root/modules/server_add
diff options
context:
space:
mode:
Diffstat (limited to 'modules/server_add')
-rw-r--r--modules/server_add/controllers/server_add.php33
-rw-r--r--modules/server_add/helpers/server_add_event.php29
-rw-r--r--modules/server_add/helpers/server_add_installer.php4
-rw-r--r--modules/server_add/js/server_add.js8
-rw-r--r--modules/server_add/views/server_add_tree_dialog.html.php9
5 files changed, 36 insertions, 47 deletions
diff --git a/modules/server_add/controllers/server_add.php b/modules/server_add/controllers/server_add.php
index f68392ce..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");
}
}
diff --git a/modules/server_add/helpers/server_add_event.php b/modules/server_add/helpers/server_add_event.php
index b53e72d1..6b21ec2e 100644
--- a/modules/server_add/helpers/server_add_event.php
+++ b/modules/server_add/helpers/server_add_event.php
@@ -35,30 +35,11 @@ class server_add_event_Core {
// 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);
- }
+ $add_menu = $menu->get("add_menu");
+ $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/js/server_add.js b/modules/server_add/js/server_add.js
index 989555cc..fbd61dcc 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");
}
}
@@ -54,7 +52,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/server_add_tree_dialog.html.php b/modules/server_add/views/server_add_tree_dialog.html.php
index 533cad04..912e69b6 100644
--- a/modules/server_add/views/server_add_tree_dialog.html.php
+++ b/modules/server_add/views/server_add_tree_dialog.html.php
@@ -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>