diff options
author | Bharat Mediratta <bharat@menalto.com> | 2010-11-14 15:01:29 -0800 |
---|---|---|
committer | Bharat Mediratta <bharat@menalto.com> | 2010-11-14 15:01:29 -0800 |
commit | 7efa9a5b87eaa8fe86972376af8c58dc29c44392 (patch) | |
tree | abf5180da0521c1ab617cade4a83abc884c0f355 /modules/tag/helpers | |
parent | e87c502eded374e927c531ad10a78dac8ee70e64 (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.
Diffstat (limited to 'modules/tag/helpers')
-rw-r--r-- | modules/tag/helpers/tag.php | 1 | ||||
-rw-r--r-- | modules/tag/helpers/tag_event.php | 11 |
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) { |