]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Initial inline listing of favoriters
authorBrion Vibber <brion@pobox.com>
Thu, 17 Mar 2011 21:19:03 +0000 (14:19 -0700)
committerBrion Vibber <brion@pobox.com>
Thu, 17 Mar 2011 21:19:03 +0000 (14:19 -0700)
lib/threadednoticelist.php
theme/neo/css/display.css

index 28e6aa5aa8d9bdb3ac2b707aeb7eee1d67f4c24b..87e2a7e39a48dbf5127015663f754cc8a3c41790 100644 (file)
@@ -181,10 +181,10 @@ class ThreadedNoticeListItem extends NoticeListItem
                 $notices[] = clone($notice); // *grumble* inefficient as hell
             }
 
+            $this->out->elementStart('ul', 'notices threaded-replies xoxo');
+            $item = new ThreadedNoticeListFavesItem($this->notice, $this->out);
+            $hasFaves = $item->show();
             if ($notices) {
-                $this->out->elementStart('ul', 'notices threaded-replies xoxo');
-                $item = new ThreadedNoticeListFavesItem($this->notice, $this->out);
-                $hasFaves = $item->show();
                 if ($moreCutoff) {
                     $item = new ThreadedNoticeListMoreItem($moreCutoff, $this->out);
                     $item->show();
@@ -193,14 +193,16 @@ class ThreadedNoticeListItem extends NoticeListItem
                     $item = new ThreadedNoticeListSubItem($notice, $this->out);
                     $item->show();
                 }
+            }
+            if ($notices || $hasFaves) {
                 // @fixme do a proper can-post check that's consistent
                 // with the JS side
                 if (common_current_user()) {
                     $item = new ThreadedNoticeListReplyItem($this->notice, $this->out);
                     $item->show();
                 }
-                $this->out->elementEnd('ul');
             }
+            $this->out->elementEnd('ul');
         }
 
         parent::showEnd();
@@ -229,6 +231,13 @@ class ThreadedNoticeListSubItem extends NoticeListItem
     {
         //
     }
+
+    function showEnd()
+    {
+        $item = new ThreadedNoticeListInlineFavesItem($this->notice, $this->out);
+        $hasFaves = $item->show();
+        parent::showEnd();
+    }
 }
 
 /**
@@ -368,15 +377,25 @@ class ThreadedNoticeListFavesItem extends NoticeListItem
             }
             $out = sprintf($msg, $this->magicList($links));
 
-            $this->out->elementStart('li', array('class' => 'notice-faves'));
+            $this->showStart();
             $this->out->raw($out);
-            $this->out->elementEnd('li');
+            $this->showEnd();
             return $count;
         } else {
             return 0;
         }
     }
 
+    function showStart()
+    {
+        $this->out->elementStart('li', array('class' => 'notice-data notice-faves'));
+    }
+
+    function showEnd()
+    {
+        $this->out->elementEnd('li');
+    }
+
     function magicList($items)
     {
         if (count($items) == 0) {
@@ -391,3 +410,16 @@ class ThreadedNoticeListFavesItem extends NoticeListItem
         }
     }
 }
+
+class ThreadedNoticeListInlineFavesItem extends ThreadedNoticeListFavesItem
+{
+    function showStart()
+    {
+        $this->out->elementStart('div', array('class' => 'entry-content notice-faves'));
+    }
+
+    function showEnd()
+    {
+        $this->out->elementEnd('div');
+    }
+}
index 643a1f29dd780733990a6cd56ede841f04111ccd..ee3c13624f82fa0400afba527cde4e42d94c819e 100644 (file)
@@ -577,7 +577,8 @@ div.entry-content a.response:after {
     font-size: 1em;
 }
 
-#content .notice .threaded-replies .notice {
+#content .notice .threaded-replies .notice,
+#content .notice .threaded-replies .notice-data {
     width: 440px;
     min-height: 1px;
     padding-bottom: 14px;