diff options
author | Brion Vibber <brion@pobox.com> | 2010-11-03 12:32:11 -0700 |
---|---|---|
committer | Brion Vibber <brion@pobox.com> | 2010-11-03 12:32:11 -0700 |
commit | 5592333b73d970cb9ae326880fc587b1fb8032ce (patch) | |
tree | 6943726824d030d8a3a317574545e1f2509c9ec2 /plugins/UserFlag | |
parent | 607d9589775dc79afd4e7295ce00bcf3eeb84d04 (diff) |
Fix for ticket #2168: if we've already flagged a profile from another window, let the 'Flag' form submission gracefully show the updated state instead of throwing an error (error message isn't even exposed properly in AJAX submissions)
Diffstat (limited to 'plugins/UserFlag')
-rw-r--r-- | plugins/UserFlag/flagprofile.php | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/plugins/UserFlag/flagprofile.php b/plugins/UserFlag/flagprofile.php index 283eea40c..7096d3748 100644 --- a/plugins/UserFlag/flagprofile.php +++ b/plugins/UserFlag/flagprofile.php @@ -60,13 +60,6 @@ class FlagprofileAction extends ProfileFormAction assert(!empty($user)); // checked above assert(!empty($this->profile)); // checked above - if (User_flag_profile::exists($this->profile->id, - $user->id)) { - // TRANS: Client error when setting flag that has already been set for a profile. - $this->clientError(_m('Flag already exists.')); - return false; - } - return true; } @@ -104,7 +97,13 @@ class FlagprofileAction extends ProfileFormAction // throws an exception on error - User_flag_profile::create($user->id, $this->profile->id); + if (User_flag_profile::exists($this->profile->id, + $user->id)) { + // We'll return to the profile page (or return the updated AJAX form) + // showing the current state, so no harm done. + } else { + User_flag_profile::create($user->id, $this->profile->id); + } if ($this->boolean('ajax')) { $this->ajaxResults(); |