]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
show the repeat form in notice lists
authorEvan Prodromou <evan@status.net>
Fri, 11 Dec 2009 15:49:26 +0000 (10:49 -0500)
committerEvan Prodromou <evan@status.net>
Fri, 11 Dec 2009 15:49:26 +0000 (10:49 -0500)
classes/Profile.php
lib/noticelist.php
lib/repeatform.php

index 4b2e0900647b29a20204ed63345a6665e2df69c5..03196447b891e31ef5b09e7af9d97b6942cf24dd 100644 (file)
@@ -716,4 +716,15 @@ class Profile extends Memcached_DataObject
         }
         return $result;
     }
+
+    function hasRepeated($notice_id)
+    {
+        // XXX: not really a pkey, but should work
+
+        $notice = Memcached_DataObject::pkeyGet('Notice',
+                                                array('profile_id' => $this->id,
+                                                      'repeat_of' => $notice_id));
+
+        return !empty($notice);
+    }
 }
index 21cec528ffbd72b5ec5e2d7acec695e8277ecdfb..924056ece271ce2218c02cddb5f628390c6f93f7 100644 (file)
@@ -212,6 +212,7 @@ class NoticeListItem extends Widget
             $this->out->elementStart('div', 'notice-options');
             $this->showFaveForm();
             $this->showReplyLink();
+            $this->showRepeatForm();
             $this->showDeleteLink();
             $this->out->elementEnd('div');
         }
@@ -551,6 +552,26 @@ class NoticeListItem extends Widget
         }
     }
 
+    /**
+     * show the form to repeat a notice
+     *
+     * @return void
+     */
+
+    function showRepeatForm()
+    {
+        $user = common_current_user();
+        if ($user && $user->id != $this->notice->profile_id) {
+            $profile = $user->getProfile();
+            if ($profile->hasRepeated($this->notice->id)) {
+                $this->out->text(_('Repeated'));
+            } else {
+                $rf = new RepeatForm($this->out, $this->notice);
+                $rf->show();
+            }
+        }
+    }
+
     /**
      * finish the notice
      *
index 2052856ae67a5a8b65d9242ac5ed5da50e876c77..50e5d6dbe04d19e44284f1166a0872d2ec333ad8 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * StatusNet, the distributed open-source microblogging tool
  *
- * Form for forwarding a notice
+ * Form for repeating a notice
  *
  * PHP version 5
  *
  * @link      http://status.net/
  */
 
-if (!defined('STATUSNET') && !defined('LACONICA')) {
+if (!defined('STATUSNET')) {
     exit(1);
 }
 
-require_once INSTALLDIR.'/lib/form.php';
-
 /**
- * Form for forwarding a notice
+ * Form for repeating a notice
  *
  * @category Form
  * @package  StatusNet
@@ -43,10 +41,10 @@ require_once INSTALLDIR.'/lib/form.php';
  * @link     http://status.net/
  */
 
-class ForwardForm extends Form
+class RepeatForm extends Form
 {
     /**
-     * Notice to forward
+     * Notice to repeat
      */
 
     var $notice = null;
@@ -55,7 +53,7 @@ class ForwardForm extends Form
      * Constructor
      *
      * @param HTMLOutputter $out    output channel
-     * @param Notice        $notice notice to forward
+     * @param Notice        $notice notice to repeat
      */
 
     function __construct($out=null, $notice=null)
@@ -73,7 +71,7 @@ class ForwardForm extends Form
 
     function id()
     {
-        return 'forward-' . $this->notice->id;
+        return 'repeat-' . $this->notice->id;
     }
 
     /**
@@ -84,7 +82,7 @@ class ForwardForm extends Form
 
     function action()
     {
-        return common_local_url('forward');
+        return common_local_url('repeat');
     }
 
     /**
@@ -106,7 +104,7 @@ class ForwardForm extends Form
      */
     function formLegend()
     {
-        $this->out->element('legend', null, _('Forward this notice'));
+        $this->out->element('legend', null, _('Repeat this notice'));
     }
 
     /**
@@ -130,8 +128,8 @@ class ForwardForm extends Form
 
     function formActions()
     {
-        $this->out->submit('forward-submit-' . $this->notice->id,
-                           _('Forward'), 'submit', null, _('Forward this notice'));
+        $this->out->submit('repeat-submit-' . $this->notice->id,
+                           _('Repeat'), 'submit', null, _('Repeat this notice'));
     }
 
     /**
@@ -142,6 +140,6 @@ class ForwardForm extends Form
 
     function formClass()
     {
-        return 'form_forward';
+        return 'form_repeat';
     }
 }