]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/disfavor.php
better error reporting for rememberme cookie handling
[quix0rs-gnu-social.git] / actions / disfavor.php
index 59807f5e6b83eb06e92623772273e8847ea43f51..6ac94d720ac48aeb09949630fd95ca81f4f0985b 100644 (file)
@@ -19,8 +19,6 @@
 
 if (!defined('LACONICA')) { exit(1); }
 
-require_once($INSTALLDIR.'/lib/mail.php');
-
 class DisfavorAction extends Action {
 
        function handle($args) {
@@ -35,21 +33,21 @@ class DisfavorAction extends Action {
                $user = common_current_user();
 
                if ($_SERVER['REQUEST_METHOD'] != 'POST') {
-                       common_redirect(common_local_url('favorites', array('nickname' => $user->nickname)));
+                       common_redirect(common_local_url('showfavorites', array('nickname' => $user->nickname)));
                        return;
                }
 
-               $token = $this->trimmed('token');
+               $id = $this->trimmed('notice');
+
+               $notice = Notice::staticGet($id);
+
+               $token = $this->trimmed('token-'.$notice->id);
 
                if (!$token || $token != common_session_token()) {
-                       $this->client_error(_('There was a problem with your session token. Try again, please.'));
+                       $this->client_error(_("There was a problem with your session token. Try again, please."));
                        return;
                }
 
-               $id = $this->trimmed('notice');
-
-               $notice = Notice::staticGet($id);
-
                $fave = new Fave();
                $fave->user_id = $this->id;
                $fave->notice_id = $notice->id;
@@ -65,10 +63,21 @@ class DisfavorAction extends Action {
                        $this->server_error(_('Could not delete favorite.'));
                        return;
                }
-
-               # XXX: ajax response
-
-               common_redirect(common_local_url('favorites',
-                                                                                array('nickname' => $user->nickname)));
+               
+               $user->blowFavesCache();
+
+               if ($this->boolean('ajax')) {
+                       common_start_html('text/xml');
+                       common_element_start('head');
+                       common_element('title', null, _('Add to favorites'));
+                       common_element_end('head');
+                       common_element_start('body');
+                       common_favor_form($notice);
+                       common_element_end('body');
+                       common_element_end('html');
+               } else {
+                       common_redirect(common_local_url('showfavorites',
+                                                                                        array('nickname' => $user->nickname)));
+               }
        }
 }
\ No newline at end of file