mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-09 16:32:39 +01:00
Add new super hero header for Phame Blog
Summary: Adds a new header layout for Phame Blog. Subtitles now also. Test Plan: With Image, With Subtitle, Without Image, Without Subtitle. Mobile, Tablet, Desktop. {F1691506} Reviewers: epriestley Reviewed By: epriestley Subscribers: Korvin Differential Revision: https://secure.phabricator.com/D16147
This commit is contained in:
parent
96c51028e5
commit
20affe9ce8
8 changed files with 104 additions and 8 deletions
|
@ -81,7 +81,7 @@ return array(
|
|||
'rsrc/css/application/owners/owners-path-editor.css' => '2f00933b',
|
||||
'rsrc/css/application/paste/paste.css' => '1898e534',
|
||||
'rsrc/css/application/people/people-profile.css' => '2473d929',
|
||||
'rsrc/css/application/phame/phame.css' => 'dfdaec0e',
|
||||
'rsrc/css/application/phame/phame.css' => '4748d928',
|
||||
'rsrc/css/application/pholio/pholio-edit.css' => '07676f51',
|
||||
'rsrc/css/application/pholio/pholio-inline-comments.css' => '8e545e49',
|
||||
'rsrc/css/application/pholio/pholio.css' => 'ca89d380',
|
||||
|
@ -808,7 +808,7 @@ return array(
|
|||
'phabricator-uiexample-reactor-sendclass' => '1def2711',
|
||||
'phabricator-uiexample-reactor-sendproperties' => 'b1f0ccee',
|
||||
'phabricator-zindex-css' => '5b6fcf3f',
|
||||
'phame-css' => 'dfdaec0e',
|
||||
'phame-css' => '4748d928',
|
||||
'pholio-css' => 'ca89d380',
|
||||
'pholio-edit-css' => '07676f51',
|
||||
'pholio-inline-comments-css' => '8e545e49',
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
ALTER TABLE {$NAMESPACE}_phame.phame_blog
|
||||
ADD subtitle VARCHAR(64) NOT NULL COLLATE {$COLLATE_TEXT};
|
|
@ -32,10 +32,10 @@ final class PhameBlogViewController extends PhameLiveController {
|
|||
|
||||
$posts = $post_query->executeWithCursorPager($pager);
|
||||
|
||||
$hero = $this->buildHeaderImage($blog);
|
||||
$hero = $this->buildPhameHeader($blog);
|
||||
|
||||
$header = id(new PHUIHeaderView())
|
||||
->setHeader($blog->getName())
|
||||
->addClass('phame-header-bar')
|
||||
->setUser($viewer);
|
||||
|
||||
if (!$is_external) {
|
||||
|
@ -155,11 +155,12 @@ final class PhameBlogViewController extends PhameLiveController {
|
|||
return $actions;
|
||||
}
|
||||
|
||||
private function buildHeaderImage(
|
||||
private function buildPhameHeader(
|
||||
PhameBlog $blog) {
|
||||
|
||||
$image = null;
|
||||
if ($blog->getHeaderImagePHID()) {
|
||||
$view = phutil_tag(
|
||||
$image = phutil_tag(
|
||||
'div',
|
||||
array(
|
||||
'class' => 'phame-header-hero',
|
||||
|
@ -170,9 +171,17 @@ final class PhameBlogViewController extends PhameLiveController {
|
|||
'src' => $blog->getHeaderImageURI(),
|
||||
'class' => 'phame-header-image',
|
||||
)));
|
||||
return $view;
|
||||
}
|
||||
return null;
|
||||
|
||||
$title = phutil_tag_div('phame-header-title', $blog->getName());
|
||||
$subtitle = null;
|
||||
if ($blog->getSubtitle()) {
|
||||
$subtitle = phutil_tag_div('phame-header-subtitle', $blog->getSubtitle());
|
||||
}
|
||||
|
||||
return phutil_tag_div(
|
||||
'phame-mega-header', array($image, $title, $subtitle));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -77,6 +77,14 @@ final class PhameBlogEditEngine
|
|||
->setConduitTypeDescription(pht('New blog title.'))
|
||||
->setTransactionType(PhameBlogTransaction::TYPE_NAME)
|
||||
->setValue($object->getName()),
|
||||
id(new PhabricatorTextEditField())
|
||||
->setKey('subtitle')
|
||||
->setLabel(pht('Subtitle'))
|
||||
->setDescription(pht('Blog subtitle.'))
|
||||
->setConduitDescription(pht('Change the blog subtitle.'))
|
||||
->setConduitTypeDescription(pht('New blog subtitle.'))
|
||||
->setTransactionType(PhameBlogTransaction::TYPE_SUBTITLE)
|
||||
->setValue($object->getSubtitle()),
|
||||
id(new PhabricatorRemarkupEditField())
|
||||
->setKey('description')
|
||||
->setLabel(pht('Description'))
|
||||
|
|
|
@ -15,6 +15,7 @@ final class PhameBlogEditor
|
|||
$types = parent::getTransactionTypes();
|
||||
|
||||
$types[] = PhameBlogTransaction::TYPE_NAME;
|
||||
$types[] = PhameBlogTransaction::TYPE_SUBTITLE;
|
||||
$types[] = PhameBlogTransaction::TYPE_DESCRIPTION;
|
||||
$types[] = PhameBlogTransaction::TYPE_DOMAIN;
|
||||
$types[] = PhameBlogTransaction::TYPE_STATUS;
|
||||
|
@ -31,6 +32,8 @@ final class PhameBlogEditor
|
|||
switch ($xaction->getTransactionType()) {
|
||||
case PhameBlogTransaction::TYPE_NAME:
|
||||
return $object->getName();
|
||||
case PhameBlogTransaction::TYPE_SUBTITLE:
|
||||
return $object->getSubtitle();
|
||||
case PhameBlogTransaction::TYPE_DESCRIPTION:
|
||||
return $object->getDescription();
|
||||
case PhameBlogTransaction::TYPE_DOMAIN:
|
||||
|
@ -46,6 +49,7 @@ final class PhameBlogEditor
|
|||
|
||||
switch ($xaction->getTransactionType()) {
|
||||
case PhameBlogTransaction::TYPE_NAME:
|
||||
case PhameBlogTransaction::TYPE_SUBTITLE:
|
||||
case PhameBlogTransaction::TYPE_DESCRIPTION:
|
||||
case PhameBlogTransaction::TYPE_STATUS:
|
||||
return $xaction->getNewValue();
|
||||
|
@ -65,6 +69,8 @@ final class PhameBlogEditor
|
|||
switch ($xaction->getTransactionType()) {
|
||||
case PhameBlogTransaction::TYPE_NAME:
|
||||
return $object->setName($xaction->getNewValue());
|
||||
case PhameBlogTransaction::TYPE_SUBTITLE:
|
||||
return $object->setSubtitle($xaction->getNewValue());
|
||||
case PhameBlogTransaction::TYPE_DESCRIPTION:
|
||||
return $object->setDescription($xaction->getNewValue());
|
||||
case PhameBlogTransaction::TYPE_DOMAIN:
|
||||
|
@ -82,6 +88,7 @@ final class PhameBlogEditor
|
|||
|
||||
switch ($xaction->getTransactionType()) {
|
||||
case PhameBlogTransaction::TYPE_NAME:
|
||||
case PhameBlogTransaction::TYPE_SUBTITLE:
|
||||
case PhameBlogTransaction::TYPE_DESCRIPTION:
|
||||
case PhameBlogTransaction::TYPE_DOMAIN:
|
||||
case PhameBlogTransaction::TYPE_STATUS:
|
||||
|
|
|
@ -15,6 +15,7 @@ final class PhameBlog extends PhameDAO
|
|||
const MARKUP_FIELD_DESCRIPTION = 'markup:description';
|
||||
|
||||
protected $name;
|
||||
protected $subtitle;
|
||||
protected $description;
|
||||
protected $domain;
|
||||
protected $configData;
|
||||
|
@ -40,6 +41,7 @@ final class PhameBlog extends PhameDAO
|
|||
),
|
||||
self::CONFIG_COLUMN_SCHEMA => array(
|
||||
'name' => 'text64',
|
||||
'subtitle' => 'text64',
|
||||
'description' => 'text',
|
||||
'domain' => 'text128?',
|
||||
'status' => 'text32',
|
||||
|
|
|
@ -4,6 +4,7 @@ final class PhameBlogTransaction
|
|||
extends PhabricatorApplicationTransaction {
|
||||
|
||||
const TYPE_NAME = 'phame.blog.name';
|
||||
const TYPE_SUBTITLE = 'phame.blog.subtitle';
|
||||
const TYPE_DESCRIPTION = 'phame.blog.description';
|
||||
const TYPE_DOMAIN = 'phame.blog.domain';
|
||||
const TYPE_STATUS = 'phame.blog.status';
|
||||
|
@ -80,6 +81,7 @@ final class PhameBlogTransaction
|
|||
$tags[] = self::MAILTAG_SUBSCRIBERS;
|
||||
break;
|
||||
case self::TYPE_NAME:
|
||||
case self::TYPE_SUBTITLE:
|
||||
case self::TYPE_DESCRIPTION:
|
||||
case self::TYPE_DOMAIN:
|
||||
$tags[] = self::MAILTAG_DETAILS;
|
||||
|
@ -116,6 +118,19 @@ final class PhameBlogTransaction
|
|||
$new);
|
||||
}
|
||||
break;
|
||||
case self::TYPE_SUBTITLE:
|
||||
if ($old === null) {
|
||||
return pht(
|
||||
'%s set this blog\'s subtitle to "%s".',
|
||||
$this->renderHandleLink($author_phid),
|
||||
$new);
|
||||
} else {
|
||||
return pht(
|
||||
'%s updated the blog\'s subtitle to "%s".',
|
||||
$this->renderHandleLink($author_phid),
|
||||
$new);
|
||||
}
|
||||
break;
|
||||
case self::TYPE_DESCRIPTION:
|
||||
return pht(
|
||||
'%s updated the blog\'s description.',
|
||||
|
@ -166,6 +181,19 @@ final class PhameBlogTransaction
|
|||
$this->renderHandleLink($object_phid));
|
||||
}
|
||||
break;
|
||||
case self::TYPE_SUBTITLE:
|
||||
if ($old === null) {
|
||||
return pht(
|
||||
'%s set the subtitle for %s.',
|
||||
$this->renderHandleLink($author_phid),
|
||||
$this->renderHandleLink($object_phid));
|
||||
} else {
|
||||
return pht(
|
||||
'%s updated the subtitle for %s.',
|
||||
$this->renderHandleLink($author_phid),
|
||||
$this->renderHandleLink($object_phid));
|
||||
}
|
||||
break;
|
||||
case self::TYPE_DESCRIPTION:
|
||||
return pht(
|
||||
'%s updated the description for %s.',
|
||||
|
|
|
@ -261,3 +261,43 @@
|
|||
max-width: 100%;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.phui-document-view.phui-document-view-pro .phui-header-shell.phame-header-bar {
|
||||
border-top: 1px solid {$thinblueborder};
|
||||
border-bottom: none;
|
||||
padding: 4px 0;
|
||||
}
|
||||
|
||||
.phame-header-bar .phui-header-subheader {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.phame-mega-header {
|
||||
margin: 0 auto;
|
||||
text-align: center;
|
||||
background: #fff;
|
||||
padding: 16px 0 24px;
|
||||
}
|
||||
|
||||
.device-phone .phame-mega-header {
|
||||
padding: 24px 0;
|
||||
}
|
||||
|
||||
.phame-mega-header .phame-header-title {
|
||||
color: #000;
|
||||
font-size: 28px;
|
||||
font-weight: bold;
|
||||
font-family: 'Aleo', {$fontfamily};
|
||||
padding-top: 24px;
|
||||
}
|
||||
|
||||
.device-phone .phame-mega-header .phame-header-title {
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
.phame-mega-header .phame-header-subtitle {
|
||||
color: {$greytext};
|
||||
font-size: 20px;
|
||||
font-family: 'Aleo', {$fontfamily};
|
||||
padding-top: 8px;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue