diff --git a/src/__celerity_resource_map__.php b/src/__celerity_resource_map__.php index 6d99772cef..f14376e471 100644 --- a/src/__celerity_resource_map__.php +++ b/src/__celerity_resource_map__.php @@ -3379,7 +3379,7 @@ celerity_register_resource_map(array( ), 'pholio-css' => array( - 'uri' => '/res/b0947e46/rsrc/css/application/pholio/pholio.css', + 'uri' => '/res/b03fae38/rsrc/css/application/pholio/pholio.css', 'type' => 'css', 'requires' => array( diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php index f223749053..d80bd7c2ea 100644 --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -1493,6 +1493,7 @@ phutil_register_library_map(array( 'PholioInlineDeleteController' => 'applications/pholio/controller/PholioInlineDeleteController.php', 'PholioInlineEditController' => 'applications/pholio/controller/PholioInlineEditController.php', 'PholioInlineSaveController' => 'applications/pholio/controller/PholioInlineSaveController.php', + 'PholioInlineThumbController' => 'applications/pholio/controller/PholioInlineThumbController.php', 'PholioInlineViewController' => 'applications/pholio/controller/PholioInlineViewController.php', 'PholioMock' => 'applications/pholio/storage/PholioMock.php', 'PholioMockCommentController' => 'applications/pholio/controller/PholioMockCommentController.php', @@ -3093,6 +3094,7 @@ phutil_register_library_map(array( 'PholioInlineDeleteController' => 'PholioController', 'PholioInlineEditController' => 'PholioController', 'PholioInlineSaveController' => 'PholioController', + 'PholioInlineThumbController' => 'PholioController', 'PholioInlineViewController' => 'PholioController', 'PholioMock' => array( diff --git a/src/applications/pholio/application/PhabricatorApplicationPholio.php b/src/applications/pholio/application/PhabricatorApplicationPholio.php index 52cd7f2f64..ed67840ede 100644 --- a/src/applications/pholio/application/PhabricatorApplicationPholio.php +++ b/src/applications/pholio/application/PhabricatorApplicationPholio.php @@ -54,7 +54,8 @@ final class PhabricatorApplicationPholio extends PhabricatorApplication { 'save/' => 'PholioInlineSaveController', 'delete/(?P\d+)/' => 'PholioInlineDeleteController', 'view/(?P\d+)/' => 'PholioInlineViewController', - 'edit/(?P\d+)/' => 'PholioInlineEditController' + 'edit/(?P\d+)/' => 'PholioInlineEditController', + 'thumb/(?P\d+)/' => 'PholioInlineThumbController' ), ), ); diff --git a/src/applications/pholio/controller/PholioInlineThumbController.php b/src/applications/pholio/controller/PholioInlineThumbController.php new file mode 100644 index 0000000000..dfc906e689 --- /dev/null +++ b/src/applications/pholio/controller/PholioInlineThumbController.php @@ -0,0 +1,40 @@ +imageid = idx($data, 'imageid'); + } + + public function processRequest() { + $request = $this->getRequest(); + $user = $request->getUser(); + + $image = id(new PholioImage())->load($this->imageid); + + if ($image == null) { + return new Aphront404Response(); + } + + $mock = id(new PholioMockQuery()) + ->setViewer($user) + ->withIDs(array($image->getMockID())) + ->executeOne(); + + if (!$mock) { + return new Aphront404Response(); + } + + $file = id(new PhabricatorFile())->loadOneWhere( + 'phid = %s', + $image->getFilePHID()); + + return id(new AphrontRedirectResponse())->setURI($file->getThumb60x45URI()); + } + +} diff --git a/src/applications/pholio/view/PholioTransactionView.php b/src/applications/pholio/view/PholioTransactionView.php index 6271d164b3..21619bcc37 100644 --- a/src/applications/pholio/view/PholioTransactionView.php +++ b/src/applications/pholio/view/PholioTransactionView.php @@ -73,11 +73,35 @@ final class PholioTransactionView if (!$inline->getComment()) { continue; } - $out[] = parent::renderTransactionContent($inline); + $out[] = $this->renderInlineContent($inline); } } return $out; } + private function renderInlineContent(PholioTransaction $inline) { + $comment = $inline->getComment(); + + $thumb = phutil_tag( + 'img', + array( + 'src' => '/pholio/inline/thumb/'.$comment->getImageID(), + )); + + $link = phutil_tag( + 'a', + array( + 'href' => '#' + ), + $thumb); + + $inline_comment = hsprintf('

%s

', $comment->getContent()); + + return phutil_tag( + 'div', + array('class' => 'pholio-transaction-inline-comment'), + array($link, $inline_comment)); + } + } diff --git a/webroot/rsrc/css/application/pholio/pholio.css b/webroot/rsrc/css/application/pholio/pholio.css index e0a05c9e4c..c623bc1abf 100644 --- a/webroot/rsrc/css/application/pholio/pholio.css +++ b/webroot/rsrc/css/application/pholio/pholio.css @@ -182,3 +182,18 @@ color: #fff; font-weight: bold; } + +.pholio-transaction-inline-comment { + display: table-row; +} + +.pholio-transaction-inline-comment img { + display: table-cell; + padding-bottom: 2px; +} + +.pholio-transaction-inline-comment p { + display: table-cell; + vertical-align: middle; + padding-bottom: 2px; +}