summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBharat Mediratta <bharat@menalto.com>2010-11-14 15:01:29 -0800
committerBharat Mediratta <bharat@menalto.com>2010-11-14 15:01:29 -0800
commit7efa9a5b87eaa8fe86972376af8c58dc29c44392 (patch)
treeabf5180da0521c1ab617cade4a83abc884c0f355
parente87c502eded374e927c531ad10a78dac8ee70e64 (diff)
Fix two issues with item deletion:
1) We're compacting tags on every deletion which is slow. Since we delete albums in batch, we should just do one tag compaction at the end. Fixes #1487. 2) Issue introduced in 3d952f41c8d90b5c217616fb060697f93fb9db07 where we trigger an item_related_update in tag::clear_all(). Since tag::clear_all() is called when we delete an item, this causes the search module to attempt to index a deleted item. Move that triggering upstream.
-rw-r--r--modules/tag/helpers/tag.php1
-rw-r--r--modules/tag/helpers/tag_event.php11
2 files changed, 9 insertions, 3 deletions
diff --git a/modules/tag/helpers/tag.php b/modules/tag/helpers/tag.php
index 79e74385..14d27c94 100644
--- a/modules/tag/helpers/tag.php
+++ b/modules/tag/helpers/tag.php
@@ -126,7 +126,6 @@ class tag_Core {
->delete("items_tags")
->where("item_id", "=", $item->id)
->execute();
- module::event("item_related_update", $item);
}
/**
diff --git a/modules/tag/helpers/tag_event.php b/modules/tag/helpers/tag_event.php
index 0cc2170c..829089c4 100644
--- a/modules/tag/helpers/tag_event.php
+++ b/modules/tag/helpers/tag_event.php
@@ -62,6 +62,12 @@ class tag_event_Core {
static function item_deleted($item) {
tag::clear_all($item);
+ if (!batch::in_progress()) {
+ tag::compact();
+ }
+ }
+
+ static function batch_complete() {
tag::compact();
}
@@ -88,6 +94,7 @@ class tag_event_Core {
tag::add($item, trim($tag_name));
}
}
+ module::event("item_related_update", $item);
tag::compact();
}
@@ -109,7 +116,7 @@ class tag_event_Core {
if (!isset($group->uploadify)) {
return;
}
-
+
$group = $form->add_photos;
$group->input("tags")
->label(t("Add tags to all uploaded files"))
@@ -132,7 +139,7 @@ class tag_event_Core {
if (!isset($group->uploadify)) {
return;
}
-
+
foreach (explode(",", $form->add_photos->tags->value) as $tag_name) {
$tag_name = trim($tag_name);
if ($tag_name) {