summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/gallery/controllers/uploader.php19
-rw-r--r--modules/tag/helpers/tag_event.php40
2 files changed, 29 insertions, 30 deletions
diff --git a/modules/gallery/controllers/uploader.php b/modules/gallery/controllers/uploader.php
index 8e09dbed..c708db92 100644
--- a/modules/gallery/controllers/uploader.php
+++ b/modules/gallery/controllers/uploader.php
@@ -123,10 +123,25 @@ class Uploader_Controller extends Controller {
->label(t("Add photos to %album_title", array("album_title" => html::purify($album->title))));
$group->uploadify("uploadify")->album($album);
- $group = $form->group("actions");
- $group->uploadify_buttons("");
+ $group_actions = $form->group("actions");
+ $group_actions->uploadify_buttons("");
+ $inputs_before_event = array_keys($form->add_photos->inputs);
module::event("add_photos_form", $album, $form);
+ $inputs_after_event = array_keys($form->add_photos->inputs);
+
+ // For each new input in add_photos, attach JS to make uploadify update its value.
+ foreach (array_diff($inputs_after_event, $inputs_before_event) as $input) {
+ if (!$input) {
+ // Likely a script input - don't do anything with it.
+ continue;
+ }
+ $group->uploadify->script_data($input, $group->{$input}->value);
+ $group->script("")
+ ->text("$('input[name=\"$input\"]').change(function (event) {
+ $('#g-uploadify').uploadifySettings('scriptData', {'$input': $(this).val()});
+ });");
+ }
return $form;
}
diff --git a/modules/tag/helpers/tag_event.php b/modules/tag/helpers/tag_event.php
index 08d5d53a..927153aa 100644
--- a/modules/tag/helpers/tag_event.php
+++ b/modules/tag/helpers/tag_event.php
@@ -69,18 +69,14 @@ class tag_event_Core {
}
static function item_edit_form($item, $form) {
- $url = url::site("tags/autocomplete");
- $form->script("")
- ->text("$('form input[name=tags]').ready(function() {
- $('form input[name=tags]').gallery_autocomplete('$url', {multiple: true});
- });");
-
$tag_names = array();
foreach (tag::item_tags($item) as $tag) {
$tag_names[] = $tag->name;
}
$form->edit_item->input("tags")->label(t("Tags (comma separated)"))
->value(implode(", ", $tag_names));
+
+ $form->script("")->text(self::_get_autocomplete_js());
}
static function item_edit_form_completed($item, $form) {
@@ -110,38 +106,21 @@ class tag_event_Core {
static function add_photos_form($album, $form) {
$group = $form->add_photos;
- if (!is_object($group->uploadify)) {
- return;
- }
$group->input("tags")
->label(t("Add tags to all uploaded files"))
->value("");
- $group->uploadify->script_data("tags", "");
-
- $autocomplete_url = url::site("tags/autocomplete");
- $group->script("")
- ->text("$('input[name=tags]')
- .gallery_autocomplete(
- '$autocomplete_url',
- {multiple: true}
- );
- $('input[name=tags]')
- .change(function (event) {
- $('#g-uploadify').uploadifySettings('scriptData', {'tags': $(this).val()});
- });");
+
+ $group->script("")->text(self::_get_autocomplete_js());
}
- static function add_photos_form_completed($album, $form) {
+ static function add_photos_form_completed($item, $form) {
$group = $form->add_photos;
- if (!is_object($group->uploadify)) {
- return;
- }
- foreach (explode(",", $form->add_photos->tags->value) as $tag_name) {
+ foreach (explode(",", $group->tags->value) as $tag_name) {
$tag_name = trim($tag_name);
if ($tag_name) {
- $tag = tag::add($album, $tag_name);
+ $tag = tag::add($item, $tag_name);
}
}
}
@@ -161,4 +140,9 @@ class tag_event_Core {
$block->content->metadata = $info;
}
}
+
+ private static function _get_autocomplete_js() {
+ $url = url::site("tags/autocomplete");
+ return "$('input[name=\"tags\"]').gallery_autocomplete('$url', {multiple: true});";
+ }
}