mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-18 12:52:42 +01:00
Use PHUIPinboard UI for embedding Pholio Mocks
Summary: Changes the old dark embed to match the PinboardView. Retains ability to target individual files. Removes "carousel" of files (not super useful?) Test Plan: Tested embedding Mocks, with and without targeting specific files. Tested Pholio Pinboard, Macro Pinboard. {F166451} {F166452} {F166453} {F166454} Reviewers: epriestley Reviewed By: epriestley Subscribers: epriestley, Korvin Differential Revision: https://secure.phabricator.com/D9531
This commit is contained in:
parent
adbdea8d3f
commit
f801c8fed9
6 changed files with 59 additions and 145 deletions
|
@ -81,7 +81,7 @@ return array(
|
||||||
'rsrc/css/application/phame/phame.css' => '19ecc703',
|
'rsrc/css/application/phame/phame.css' => '19ecc703',
|
||||||
'rsrc/css/application/pholio/pholio-edit.css' => 'b9e59b6d',
|
'rsrc/css/application/pholio/pholio-edit.css' => 'b9e59b6d',
|
||||||
'rsrc/css/application/pholio/pholio-inline-comments.css' => '52be33f0',
|
'rsrc/css/application/pholio/pholio-inline-comments.css' => '52be33f0',
|
||||||
'rsrc/css/application/pholio/pholio.css' => 'e059f955',
|
'rsrc/css/application/pholio/pholio.css' => '005be8e1',
|
||||||
'rsrc/css/application/phortune/phortune-credit-card-form.css' => 'b25b4beb',
|
'rsrc/css/application/phortune/phortune-credit-card-form.css' => 'b25b4beb',
|
||||||
'rsrc/css/application/phrequent/phrequent.css' => 'ffc185ad',
|
'rsrc/css/application/phrequent/phrequent.css' => 'ffc185ad',
|
||||||
'rsrc/css/application/phriction/phriction-document-css.css' => '7d7f0071',
|
'rsrc/css/application/phriction/phriction-document-css.css' => '7d7f0071',
|
||||||
|
@ -135,7 +135,7 @@ return array(
|
||||||
'rsrc/css/phui/phui-list.css' => '43ed2d93',
|
'rsrc/css/phui/phui-list.css' => '43ed2d93',
|
||||||
'rsrc/css/phui/phui-object-box.css' => 'ce92d8ec',
|
'rsrc/css/phui/phui-object-box.css' => 'ce92d8ec',
|
||||||
'rsrc/css/phui/phui-object-item-list-view.css' => '46e12abc',
|
'rsrc/css/phui/phui-object-item-list-view.css' => '46e12abc',
|
||||||
'rsrc/css/phui/phui-pinboard-view.css' => '32e8e1a9',
|
'rsrc/css/phui/phui-pinboard-view.css' => '2c8abb19',
|
||||||
'rsrc/css/phui/phui-property-list-view.css' => '2f7199e8',
|
'rsrc/css/phui/phui-property-list-view.css' => '2f7199e8',
|
||||||
'rsrc/css/phui/phui-remarkup-preview.css' => '19ad512b',
|
'rsrc/css/phui/phui-remarkup-preview.css' => '19ad512b',
|
||||||
'rsrc/css/phui/phui-spacing.css' => '042804d6',
|
'rsrc/css/phui/phui-spacing.css' => '042804d6',
|
||||||
|
@ -739,7 +739,7 @@ return array(
|
||||||
'phabricator-uiexample-reactor-sendproperties' => '551add57',
|
'phabricator-uiexample-reactor-sendproperties' => '551add57',
|
||||||
'phabricator-zindex-css' => 'efb673ac',
|
'phabricator-zindex-css' => 'efb673ac',
|
||||||
'phame-css' => '19ecc703',
|
'phame-css' => '19ecc703',
|
||||||
'pholio-css' => 'e059f955',
|
'pholio-css' => '005be8e1',
|
||||||
'pholio-edit-css' => 'b9e59b6d',
|
'pholio-edit-css' => 'b9e59b6d',
|
||||||
'pholio-inline-comments-css' => '52be33f0',
|
'pholio-inline-comments-css' => '52be33f0',
|
||||||
'phortune-credit-card-form' => '2290aeef',
|
'phortune-credit-card-form' => '2290aeef',
|
||||||
|
@ -764,7 +764,7 @@ return array(
|
||||||
'phui-list-view-css' => '43ed2d93',
|
'phui-list-view-css' => '43ed2d93',
|
||||||
'phui-object-box-css' => 'ce92d8ec',
|
'phui-object-box-css' => 'ce92d8ec',
|
||||||
'phui-object-item-list-view-css' => '46e12abc',
|
'phui-object-item-list-view-css' => '46e12abc',
|
||||||
'phui-pinboard-view-css' => '32e8e1a9',
|
'phui-pinboard-view-css' => '2c8abb19',
|
||||||
'phui-property-list-view-css' => '2f7199e8',
|
'phui-property-list-view-css' => '2f7199e8',
|
||||||
'phui-remarkup-preview-css' => '19ad512b',
|
'phui-remarkup-preview-css' => '19ad512b',
|
||||||
'phui-spacing-css' => '042804d6',
|
'phui-spacing-css' => '042804d6',
|
||||||
|
|
|
@ -14,6 +14,7 @@ final class PholioRemarkupRule
|
||||||
$viewer = $this->getEngine()->getConfig('viewer');
|
$viewer = $this->getEngine()->getConfig('viewer');
|
||||||
return id(new PholioMockQuery())
|
return id(new PholioMockQuery())
|
||||||
->setViewer($viewer)
|
->setViewer($viewer)
|
||||||
|
->needCoverFiles(true)
|
||||||
->needImages(true)
|
->needImages(true)
|
||||||
->needTokenCounts(true)
|
->needTokenCounts(true)
|
||||||
->withIDs($ids)
|
->withIDs($ids)
|
||||||
|
|
|
@ -22,98 +22,35 @@ final class PholioMockEmbedView extends AphrontView {
|
||||||
if (!$this->mock) {
|
if (!$this->mock) {
|
||||||
throw new Exception('Call setMock() before render()!');
|
throw new Exception('Call setMock() before render()!');
|
||||||
}
|
}
|
||||||
|
$mock = $this->mock;
|
||||||
require_celerity_resource('pholio-css');
|
|
||||||
|
|
||||||
$mock_link = phutil_tag(
|
|
||||||
'a',
|
|
||||||
array(
|
|
||||||
'href' => '/M'.$this->mock->getID(),
|
|
||||||
),
|
|
||||||
'M'.$this->mock->getID().' '.$this->mock->getName());
|
|
||||||
|
|
||||||
$mock_header = phutil_tag(
|
|
||||||
'div',
|
|
||||||
array(
|
|
||||||
'class' => 'pholio-mock-embed-head',
|
|
||||||
),
|
|
||||||
$mock_link);
|
|
||||||
|
|
||||||
$images_to_show = array();
|
$images_to_show = array();
|
||||||
|
$thumbnail = null;
|
||||||
if (!empty($this->images)) {
|
if (!empty($this->images)) {
|
||||||
$images_to_show = array_intersect_key(
|
$images_to_show = array_intersect_key(
|
||||||
$this->mock->getImages(), array_flip($this->images));
|
$this->mock->getImages(), array_flip($this->images));
|
||||||
|
foreach ($images_to_show as $image) {
|
||||||
|
$thumbfile = $image->getFile();
|
||||||
|
$thumbnail = $thumbfile->getThumb280x210URI();
|
||||||
|
}
|
||||||
|
$header = 'M'.$mock->getID().' '.$mock->getName().
|
||||||
|
' (#'.$image->getID().')';
|
||||||
|
$uri = '/M'.$this->mock->getID().'/'.$image->getID().'/';
|
||||||
|
} else {
|
||||||
|
$thumbnail = $mock->getCoverFile()->getThumb280x210URI();
|
||||||
|
$header = 'M'.$mock->getID().' '.$mock->getName();
|
||||||
|
$uri = '/M'.$this->mock->getID();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($images_to_show)) {
|
$item = id(new PHUIPinboardItemView())
|
||||||
$images_to_show = array_slice($this->mock->getImages(), 0, 4);
|
->setHeader($header)
|
||||||
}
|
->setURI($uri)
|
||||||
|
->setImageURI($thumbnail)
|
||||||
|
->setImageSize(280, 210)
|
||||||
|
->setDisabled($mock->isClosed())
|
||||||
|
->addIconCount('fa-picture-o', count($mock->getImages()))
|
||||||
|
->addIconCount('fa-trophy', $mock->getTokenCount());
|
||||||
|
|
||||||
$thumbnails = array();
|
return $item;
|
||||||
foreach ($images_to_show as $image) {
|
|
||||||
$thumbfile = $image->getFile();
|
|
||||||
|
|
||||||
$dimensions = PhabricatorImageTransformer::getPreviewDimensions(
|
|
||||||
$thumbfile,
|
|
||||||
140);
|
|
||||||
|
|
||||||
$tag = phutil_tag(
|
|
||||||
'img',
|
|
||||||
array(
|
|
||||||
'width' => $dimensions['sdx'],
|
|
||||||
'height' => $dimensions['sdy'],
|
|
||||||
'class' => 'pholio-mock-carousel-thumbnail',
|
|
||||||
'src' => $thumbfile->getPreview140URI(),
|
|
||||||
'style' => 'top: '.floor((140 - $dimensions['sdy'] ) / 2).'px',
|
|
||||||
));
|
|
||||||
|
|
||||||
$thumbnails[] = javelin_tag(
|
|
||||||
'a',
|
|
||||||
array(
|
|
||||||
'class' => 'pholio-mock-carousel-thumb-item',
|
|
||||||
'href' => '/M'.$this->mock->getID().'/'.$image->getID().'/',
|
|
||||||
),
|
|
||||||
$tag);
|
|
||||||
}
|
|
||||||
|
|
||||||
$mock_body = phutil_tag(
|
|
||||||
'div',
|
|
||||||
array(),
|
|
||||||
$thumbnails);
|
|
||||||
|
|
||||||
$icons_data = array(
|
|
||||||
'fa-picture-o' => count($this->mock->getImages()),
|
|
||||||
'fa-trophy' => $this->mock->getTokenCount());
|
|
||||||
|
|
||||||
$icon_list = array();
|
|
||||||
foreach ($icons_data as $icon_name => $icon_value) {
|
|
||||||
$icon = id(new PHUIIconView())
|
|
||||||
->setIconFont($icon_name.' white')
|
|
||||||
->addClass('pholio-mock-embed-icon');
|
|
||||||
|
|
||||||
$count = phutil_tag('span', array(), $icon_value);
|
|
||||||
|
|
||||||
$icon_list[] = phutil_tag(
|
|
||||||
'span',
|
|
||||||
array(
|
|
||||||
'class' => 'pholio-mock-embed-icons'
|
|
||||||
),
|
|
||||||
array($icon, $count));
|
|
||||||
}
|
|
||||||
|
|
||||||
$mock_footer = phutil_tag(
|
|
||||||
'div',
|
|
||||||
array(
|
|
||||||
'class' => 'pholio-mock-embed-footer',
|
|
||||||
),
|
|
||||||
$icon_list);
|
|
||||||
|
|
||||||
|
|
||||||
return phutil_tag(
|
|
||||||
'div',
|
|
||||||
array(
|
|
||||||
'class' => 'pholio-mock-embed'
|
|
||||||
),
|
|
||||||
array($mock_header, $mock_body, $mock_footer));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,6 +43,7 @@ final class PHUIPinboardItemView extends AphrontView {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render() {
|
public function render() {
|
||||||
|
require_celerity_resource('phui-pinboard-view-css');
|
||||||
$header = null;
|
$header = null;
|
||||||
if ($this->header) {
|
if ($this->header) {
|
||||||
if ($this->disabled) {
|
if ($this->disabled) {
|
||||||
|
@ -59,19 +60,22 @@ final class PHUIPinboardItemView extends AphrontView {
|
||||||
phutil_tag('a', array('href' => $this->uri), $this->header));
|
phutil_tag('a', array('href' => $this->uri), $this->header));
|
||||||
}
|
}
|
||||||
|
|
||||||
$image = phutil_tag(
|
$image = null;
|
||||||
'a',
|
if ($this->imageWidth) {
|
||||||
array(
|
$image = phutil_tag(
|
||||||
'href' => $this->uri,
|
'a',
|
||||||
'class' => 'phui-pinboard-item-image-link',
|
|
||||||
),
|
|
||||||
phutil_tag(
|
|
||||||
'img',
|
|
||||||
array(
|
array(
|
||||||
'src' => $this->imageURI,
|
'href' => $this->uri,
|
||||||
'width' => $this->imageWidth,
|
'class' => 'phui-pinboard-item-image-link',
|
||||||
'height' => $this->imageHeight,
|
),
|
||||||
)));
|
phutil_tag(
|
||||||
|
'img',
|
||||||
|
array(
|
||||||
|
'src' => $this->imageURI,
|
||||||
|
'width' => $this->imageWidth,
|
||||||
|
'height' => $this->imageHeight,
|
||||||
|
)));
|
||||||
|
}
|
||||||
|
|
||||||
$icons = array();
|
$icons = array();
|
||||||
if ($this->iconBlock) {
|
if ($this->iconBlock) {
|
||||||
|
@ -121,8 +125,8 @@ final class PHUIPinboardItemView extends AphrontView {
|
||||||
array(
|
array(
|
||||||
$header,
|
$header,
|
||||||
$image,
|
$image,
|
||||||
$icons,
|
|
||||||
$content,
|
$content,
|
||||||
|
$icons,
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -146,40 +146,6 @@
|
||||||
background: url(/rsrc/image/darkload.gif) no-repeat center;
|
background: url(/rsrc/image/darkload.gif) no-repeat center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pholio-mock-embed {
|
|
||||||
display: inline-block;
|
|
||||||
background-color: #282828;
|
|
||||||
padding: 5px;
|
|
||||||
color: #fff;
|
|
||||||
margin: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pholio-mock-embed-head {
|
|
||||||
border-bottom: 1px solid #3d3d3d;
|
|
||||||
padding: 2px;
|
|
||||||
margin:2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pholio-mock-embed-footer {
|
|
||||||
margin: 2px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pholio-mock-embed-icons {
|
|
||||||
float: left;
|
|
||||||
margin-left: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pholio-mock-embed-icon {
|
|
||||||
height: 14px;
|
|
||||||
width: 14px;
|
|
||||||
padding: 2px 4px 0 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pholio-mock-embed-head a {
|
|
||||||
color: #fff;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pholio-transaction-inline-comment {
|
.pholio-transaction-inline-comment {
|
||||||
display: table-row;
|
display: table-row;
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,9 +18,12 @@
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
border: 1px solid {$lightblueborder};
|
border: 1px solid {$lightblueborder};
|
||||||
border-bottom: 1px solid {$blueborder};
|
border-bottom: 1px solid {$blueborder};
|
||||||
float: left;
|
|
||||||
width: 288px;
|
|
||||||
text-align: left;
|
text-align: left;
|
||||||
|
width: 288px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.phui-pinboard-view .phui-pinboard-item-view {
|
||||||
|
float: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
.device-desktop .phui-pinboard-item-view:hover {
|
.device-desktop .phui-pinboard-item-view:hover {
|
||||||
|
@ -34,7 +37,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.phui-pinboard-item-header {
|
.phui-pinboard-item-header {
|
||||||
padding: 4px 8px;
|
padding: 6px 8px;
|
||||||
display: block;
|
display: block;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
border-top-left-radius: 3px;
|
border-top-left-radius: 3px;
|
||||||
|
@ -54,10 +57,15 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.phui-pinboard-item-content {
|
.phui-pinboard-item-content {
|
||||||
padding: 0 8px 4px;
|
padding: 8px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
color: {$greytext};
|
color: {$bluetext};
|
||||||
font-size: 11px;
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.phui-pinboard-item-content + .phui-pinboard-icons,
|
||||||
|
.phui-pinboard-item-image-link + .phui-pinboard-icons {
|
||||||
|
border-top: 1px solid {$thinblueborder};
|
||||||
}
|
}
|
||||||
|
|
||||||
.phui-pinboard-item-count {
|
.phui-pinboard-item-count {
|
||||||
|
@ -66,10 +74,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.phui-pinboard-icons {
|
.phui-pinboard-icons {
|
||||||
padding: 0 8px 8px 0;
|
padding: 4px 8px 4px 0;
|
||||||
color: {$darkbluetext};
|
color: {$darkbluetext};
|
||||||
border-bottom: 1px solid {$lightblueborder};
|
|
||||||
margin-bottom: 5px;
|
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue