]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
doomy doom doom
authorBrion Vibber <brion@status.net>
Mon, 8 Nov 2010 23:32:41 +0000 (15:32 -0800)
committerBrion Vibber <brion@status.net>
Mon, 8 Nov 2010 23:32:41 +0000 (15:32 -0800)
actions/shownotice.php
js/util.js
lib/attachmentlist.php
lib/noticelist.php
theme/base/css/display.css

index b7e61a13754ab6b0b912cf2f3afe5cddd738d631..7a11787b664b24c58fef368b2ab3e40318450db2 100644 (file)
@@ -356,9 +356,4 @@ class SingleNoticeItem extends DoFollowListItem
                                          $this->profile->fullname :
                                          $this->profile->nickname));
     }
-
-    function showNoticeAttachments() {
-        $al = new AttachmentList($this->notice, $this->out);
-        $al->show();
-    }
 }
index a4eb0fc28449b9bba8d0374e698665017dc6209c..15fb163103056cf5ad8bc407081a77acc464aafe 100644 (file)
@@ -431,16 +431,19 @@ var SN = { // StatusNet
                 //imgLoading : $('address .url')[0].href+'theme/base/images/illustrations/illu_progress_loading-01.gif',
 
                 notice.find('a.attachment').each(function() {
+                    /*
                     var attachId = ($(this).attr('id').substring('attachment'.length + 1));
                     if (attachId) {
                         var thumbUrl = $('address .url')[0].href+'attachment/' + attachId + '/thumb';
-                        var thumb = $('<div class="inline_thumb">Thumb: <img/></div>');
+                        var thumb = $('<div class="attachment-thumb">Thumb: <img/></div>');
                         thumb.find('img').attr('src', thumbUrl).last();
-                        notice.append(thumb);
+                        notice.find('.entry-title .entry-content').append(thumb);
                     }
+                    */
                 });
 
                 if ($('#shownotice').length == 0) {
+                    /*
                     var t;
                     notice.find('a.thumbnail').hover(
                         function() {
@@ -465,6 +468,7 @@ var SN = { // StatusNet
                             $(this).closest('.entry-title').removeClass('ov');
                         }
                     );
+                    */
                 }
             }
         },
index f6b09fb49182153d568bca81cad4014314649cc2..f29d32ada31bccd0cf7b5df4c18b5c0b24810476 100644 (file)
@@ -181,9 +181,11 @@ class AttachmentListItem extends Widget
      */
     function show()
     {
-        $this->showStart();
-        $this->showNoticeAttachment();
-        $this->showEnd();
+        if ($this->attachment->isEnclosure()) {
+            $this->showStart();
+            $this->showNoticeAttachment();
+            $this->showEnd();
+        }
     }
 
     function linkAttr() {
@@ -203,9 +205,44 @@ class AttachmentListItem extends Widget
     }
 
     function showRepresentation() {
+        $thumb = $this->getThumbInfo();
+        if ($thumb) {
+            $thumb = $this->sizeThumb($thumb);
+            $this->out->element('img', array('alt' => '', 'src' => $thumb->url, 'width' => $thumb->width, 'height' => $thumb->height));
+        }
+    }
+
+    function getThumbInfo()
+    {
         $thumbnail = File_thumbnail::staticGet('file_id', $this->attachment->id);
-        if (!empty($thumbnail)) {
-            $this->out->element('img', array('alt' => '', 'src' => $thumbnail->url, 'width' => $thumbnail->width, 'height' => $thumbnail->height));
+        if ($thumbnail) {
+            return $thumbnail;
+        } else {
+            switch ($this->attachment->mimetype) {
+                case 'image/gif':
+                case 'image/png':
+                case 'image/jpg':
+                case 'image/jpeg':
+                    $thumb = (object)array();
+                    $thumb->url = $this->attachment->url;
+                    $thumb->width = 100;
+                    $thumb->height = 75; // @fixme
+                    return $thumb;
+            }
+        }
+        return false;
+    }
+
+    function sizeThumb($thumbnail) {
+        $maxWidth = 100;
+        $maxHeight = 75;
+        if ($thumbnail->width > $maxWidth) {
+            $thumb = clone($thumbnail);
+            $thumb->width = $maxWidth;
+            $thumb->height = intval($thumbnail->height * $maxWidth / $thumbnail->width);
+            return $thumb;
+        } else {
+            return $thumbnail;
         }
     }
 
@@ -234,6 +271,9 @@ class AttachmentListItem extends Widget
     }
 }
 
+/**
+ * used for one-off attachment action
+ */
 class Attachment extends AttachmentListItem
 {
     function showLink() {
@@ -414,18 +454,4 @@ class Attachment extends AttachmentListItem
 
         return $scrubbed;
     }
-
-    function showFallback()
-    {
-        // If we don't know how to display an attachment inline, we probably
-        // shouldn't have gotten to this point.
-        //
-        // But, here we are... displaying details on a file or remote URL
-        // either on the main view or in an ajax-loaded lightbox. As a lesser
-        // of several evils, we'll try redirecting to the actual target via
-        // client-side JS.
-
-        common_log(LOG_ERR, "Empty or unknown type for file id {$this->attachment->id}; falling back to client-side redirect.");
-        $this->out->raw('<script>window.location = ' . json_encode($this->attachment->url) . ';</script>');
-    }
 }
index 6f82c9269b1c5795a08b8f0469df4168168a096b..fb5db2374c1ccfd40c7e19260e42deb4686a4982 100644 (file)
@@ -208,6 +208,7 @@ class NoticeListItem extends Widget
         $this->showStart();
         if (Event::handle('StartShowNoticeItem', array($this))) {
             $this->showNotice();
+            $this->showNoticeAttachments();
             $this->showNoticeInfo();
             $this->showNoticeOptions();
             Event::handle('EndShowNoticeItem', array($this));
@@ -383,6 +384,11 @@ class NoticeListItem extends Widget
         $this->out->elementEnd('p');
     }
 
+    function showNoticeAttachments() {
+        $al = new AttachmentList($this->notice, $this->out);
+        $al->show();
+    }
+
     /**
      * show the link to the main page for the notice
      *
index 7ac66095a83510cff63c1800da9b70a7d06af9e4..29f7d0ae0d9ffccfdc6769cbc2a3e803c10ea5e1 100644 (file)
@@ -1150,7 +1150,8 @@ border-radius:4px;
 -webkit-border-radius:4px;
 }
 
-.notice div.entry-content {
+.notice div.entry-content,
+.notice dl.entry-content {
 clear:left;
 float:left;
 font-size:0.95em;
@@ -1325,6 +1326,7 @@ margin-left:4px;
 .notice .attachment.more {
 padding-left:0;
 }
+/*
 .notice .attachment img {
 position:absolute;
 top:18px;
@@ -1334,20 +1336,30 @@ z-index:99;
 #shownotice .notice .attachment img {
 position:static;
 }
+*/
 
-#attachments {
+
+/* Small inline attachment list */
+#attachments ol li {
+    list-style-type: none;
+}
+#attachments dt {
+    display: none;
+}
+
+#shownotice #attachments {
 clear:both;
 float:left;
 width:100%;
 margin-top:18px;
 }
-#attachments dt {
+#shownotice #attachments dt {
 font-weight:bold;
 font-size:1.3em;
 margin-bottom:4px;
 }
 
-#attachments ol li {
+#shownotice #attachments ol li {
 margin-bottom:18px;
 list-style-type:decimal;
 float:left;