]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Retool group join queue list ajax forms to use two buttons in one form, making it...
authorBrion Vibber <brion@pobox.com>
Wed, 23 Mar 2011 21:56:51 +0000 (14:56 -0700)
committerBrion Vibber <brion@pobox.com>
Wed, 23 Mar 2011 22:21:12 +0000 (15:21 -0700)
actions/approvegroup.php
actions/groupqueue.php
lib/approvegroupform.php

index c52e0e3c46975fc529156369b2db37b92a395ad0..c102c64cd5e900ad0e5640a2698cea3ad51ac257 100644 (file)
@@ -119,6 +119,15 @@ class ApprovegroupAction extends Action
         if (empty($this->request)) {
             $this->clientError(sprintf(_('%s is not in the moderation queue for this group.'), $this->profile->nickname), 403);
         }
+
+        $this->approve = (bool)$this->arg('approve');
+        $this->cancel = (bool)$this->arg('cancel');
+        if (!$this->approve && !$this->cancel) {
+            $this->clientError(_('Internal error: received neither cancel nor abort.'));
+        }
+        if ($this->approve && $this->cancel) {
+            $this->clientError(_('Internal error: received both cancel and abort.'));
+        }
         return true;
     }
 
@@ -136,7 +145,11 @@ class ApprovegroupAction extends Action
         parent::handle($args);
 
         try {
-            $this->profile->completeJoinGroup($this->group);
+            if ($this->approve) {
+                $this->profile->completeJoinGroup($this->group);
+            } elseif ($this->cancel) {
+                $this->profile->cancelJoinGroup($this->group);
+            }
         } catch (Exception $e) {
             common_log(LOG_ERROR, "Exception canceling group sub: " . $e->getMessage());
             // TRANS: Server error displayed when cancelling a queued group join request fails.
@@ -149,14 +162,17 @@ class ApprovegroupAction extends Action
         if ($this->boolean('ajax')) {
             $this->startHTML('text/xml;charset=utf-8');
             $this->elementStart('head');
-            // TRANS: Title for leave group page after leaving.
-            $this->element('title', null, sprintf(_m('TITLE','%1$s left group %2$s'),
+            // TRANS: Title for leave group page after group join request is approved/disapproved.
+            $this->element('title', null, sprintf(_m('TITLE','%1$s\'s request for %2$s'),
                                                   $this->profile->nickname,
                                                   $this->group->nickname));
             $this->elementEnd('head');
             $this->elementStart('body');
-            $jf = new JoinForm($this, $this->group);
-            $jf->show();
+            if ($this->approve) {
+                $this->element('p', 'success', _m('Join request approved.'));
+            } elseif ($this->cancel) {
+                $this->element('p', 'success', _m('Join request canceled.'));
+            }
             $this->elementEnd('body');
             $this->elementEnd('html');
         } else {
index 687fa0b9732a20616639478e6372c20f2d78970d..1b4a8b7b6e02cd8462c4073d1f018e8f8c89cce0 100644 (file)
@@ -174,26 +174,17 @@ class GroupQueueListItem extends GroupMemberListItem
     {
         $this->startActions();
         if (Event::handle('StartProfileListItemActionElements', array($this))) {
-            $this->showApproveButton();
-            $this->showCancelButton();
+            $this->showApproveButtons();
             Event::handle('EndProfileListItemActionElements', array($this));
         }
         $this->endActions();
     }
 
-    function showApproveButton()
+    function showApproveButtons()
     {
-        $this->out->elementStart('li', 'entity_join');
+        $this->out->elementStart('li', 'entity_approval');
         $form = new ApproveGroupForm($this->out, $this->group, $this->profile);
         $form->show();
         $this->out->elementEnd('li');
     }
-
-    function showCancelButton()
-    {
-        $this->out->elementStart('li', 'entity_leave');
-        $bf = new CancelGroupForm($this->out, $this->group, $this->profile);
-        $bf->show();
-        $this->out->elementEnd('li');
-    }
 }
index 265dc9ba7123c56f654d144dabc7615db1fb1a51..3ad74e0486ad6d0f8449e890c324824642dcd452 100644 (file)
@@ -79,7 +79,7 @@ class ApproveGroupForm extends Form
 
     function id()
     {
-        return 'group-cancel-' . $this->group->id;
+        return 'group-queue-' . $this->group->id;
     }
 
     /**
@@ -90,7 +90,7 @@ class ApproveGroupForm extends Form
 
     function formClass()
     {
-        return 'form_group_join ajax';
+        return 'form_group_queue ajax';
     }
 
     /**
@@ -117,6 +117,7 @@ class ApproveGroupForm extends Form
 
     function formActions()
     {
-        $this->out->submit('submit', _('Approve'));
+        $this->out->submit('approve', _('Accept'));
+        $this->out->submit('cancel', _('Reject'));
     }
 }