1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-30 02:32:42 +01:00

Make workboards truly 'fixed' in display

Summary:
**WIP**

This sets a shadow fixed to the full screen of the browser for which panels to live in. I have some minor things to fix, but play with it.

Specifically I haven't been able to dig up when stuff that overflowwed, doesn't always render even after scroll.

Test Plan: Test on a board with many tasks, many panels, small screens. Test on mobile too!

Reviewers: epriestley, btrahan

Reviewed By: btrahan

Subscribers: qgil, epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9005
This commit is contained in:
Chad Little 2014-05-08 14:21:32 -07:00
parent 61dd5ab6c1
commit 38739755c6
8 changed files with 68 additions and 54 deletions

View file

@ -7,7 +7,7 @@
return array( return array(
'names' => 'names' =>
array( array(
'core.pkg.css' => '989eee69', 'core.pkg.css' => '719389b0',
'core.pkg.js' => 'b2ed04a2', 'core.pkg.js' => 'b2ed04a2',
'darkconsole.pkg.js' => 'ca8671ce', 'darkconsole.pkg.js' => 'ca8671ce',
'differential.pkg.css' => '4b8686e3', 'differential.pkg.css' => '4b8686e3',
@ -24,7 +24,7 @@ return array(
'rsrc/css/aphront/error-view.css' => '9f1d5518', 'rsrc/css/aphront/error-view.css' => '9f1d5518',
'rsrc/css/aphront/lightbox-attachment.css' => '7acac05d', 'rsrc/css/aphront/lightbox-attachment.css' => '7acac05d',
'rsrc/css/aphront/list-filter-view.css' => '2ae43867', 'rsrc/css/aphront/list-filter-view.css' => '2ae43867',
'rsrc/css/aphront/multi-column.css' => '667ca7b8', 'rsrc/css/aphront/multi-column.css' => '1b95ab2e',
'rsrc/css/aphront/notification.css' => 'ef2c9b34', 'rsrc/css/aphront/notification.css' => 'ef2c9b34',
'rsrc/css/aphront/pager-view.css' => '2e3539af', 'rsrc/css/aphront/pager-view.css' => '2e3539af',
'rsrc/css/aphront/panel-view.css' => '5846dfa2', 'rsrc/css/aphront/panel-view.css' => '5846dfa2',
@ -132,12 +132,12 @@ return array(
'rsrc/css/phui/phui-fontkit.css' => 'de84aa4a', 'rsrc/css/phui/phui-fontkit.css' => 'de84aa4a',
'rsrc/css/phui/phui-form-view.css' => '867463b4', 'rsrc/css/phui/phui-form-view.css' => '867463b4',
'rsrc/css/phui/phui-form.css' => 'b78ec020', 'rsrc/css/phui/phui-form.css' => 'b78ec020',
'rsrc/css/phui/phui-header-view.css' => '5b79f0ef', 'rsrc/css/phui/phui-header-view.css' => '5d245c9c',
'rsrc/css/phui/phui-icon.css' => '215fa314', 'rsrc/css/phui/phui-icon.css' => '215fa314',
'rsrc/css/phui/phui-info-panel.css' => '27ea50a1', 'rsrc/css/phui/phui-info-panel.css' => '27ea50a1',
'rsrc/css/phui/phui-list.css' => 'ef8035b6', 'rsrc/css/phui/phui-list.css' => 'ef8035b6',
'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' => '24444832', 'rsrc/css/phui/phui-object-item-list-view.css' => '3bf8e1c9',
'rsrc/css/phui/phui-pinboard-view.css' => 'e7d3b05e', 'rsrc/css/phui/phui-pinboard-view.css' => 'e7d3b05e',
'rsrc/css/phui/phui-property-list-view.css' => 'af4b381f', 'rsrc/css/phui/phui-property-list-view.css' => 'af4b381f',
'rsrc/css/phui/phui-remarkup-preview.css' => '19ad512b', 'rsrc/css/phui/phui-remarkup-preview.css' => '19ad512b',
@ -146,8 +146,8 @@ return array(
'rsrc/css/phui/phui-tag-view.css' => '295d81c4', 'rsrc/css/phui/phui-tag-view.css' => '295d81c4',
'rsrc/css/phui/phui-text.css' => '23e9b4b7', 'rsrc/css/phui/phui-text.css' => '23e9b4b7',
'rsrc/css/phui/phui-timeline-view.css' => '15ff2a9f', 'rsrc/css/phui/phui-timeline-view.css' => '15ff2a9f',
'rsrc/css/phui/phui-workboard-view.css' => '84f2c272', 'rsrc/css/phui/phui-workboard-view.css' => '2bf82d00',
'rsrc/css/phui/phui-workpanel-view.css' => 'b6ccc22d', 'rsrc/css/phui/phui-workpanel-view.css' => '97b69459',
'rsrc/css/sprite-actions.css' => '969ad0e5', 'rsrc/css/sprite-actions.css' => '969ad0e5',
'rsrc/css/sprite-apps-large.css' => '3e3ec4c3', 'rsrc/css/sprite-apps-large.css' => '3e3ec4c3',
'rsrc/css/sprite-apps-xlarge.css' => 'db66c878', 'rsrc/css/sprite-apps-xlarge.css' => 'db66c878',
@ -495,7 +495,7 @@ return array(
'aphront-dialog-view-css' => 'c01d24b4', 'aphront-dialog-view-css' => 'c01d24b4',
'aphront-error-view-css' => '9f1d5518', 'aphront-error-view-css' => '9f1d5518',
'aphront-list-filter-view-css' => '2ae43867', 'aphront-list-filter-view-css' => '2ae43867',
'aphront-multi-column-view-css' => '667ca7b8', 'aphront-multi-column-view-css' => '1b95ab2e',
'aphront-pager-view-css' => '2e3539af', 'aphront-pager-view-css' => '2e3539af',
'aphront-panel-view-css' => '5846dfa2', 'aphront-panel-view-css' => '5846dfa2',
'aphront-request-failure-view-css' => 'da14df31', 'aphront-request-failure-view-css' => 'da14df31',
@ -761,12 +761,12 @@ return array(
'phui-fontkit-css' => 'de84aa4a', 'phui-fontkit-css' => 'de84aa4a',
'phui-form-css' => 'b78ec020', 'phui-form-css' => 'b78ec020',
'phui-form-view-css' => '867463b4', 'phui-form-view-css' => '867463b4',
'phui-header-view-css' => '5b79f0ef', 'phui-header-view-css' => '5d245c9c',
'phui-icon-view-css' => '215fa314', 'phui-icon-view-css' => '215fa314',
'phui-info-panel-css' => '27ea50a1', 'phui-info-panel-css' => '27ea50a1',
'phui-list-view-css' => 'ef8035b6', 'phui-list-view-css' => 'ef8035b6',
'phui-object-box-css' => 'ce92d8ec', 'phui-object-box-css' => 'ce92d8ec',
'phui-object-item-list-view-css' => '24444832', 'phui-object-item-list-view-css' => '3bf8e1c9',
'phui-pinboard-view-css' => 'e7d3b05e', 'phui-pinboard-view-css' => 'e7d3b05e',
'phui-property-list-view-css' => 'af4b381f', 'phui-property-list-view-css' => 'af4b381f',
'phui-remarkup-preview-css' => '19ad512b', 'phui-remarkup-preview-css' => '19ad512b',
@ -775,8 +775,8 @@ return array(
'phui-tag-view-css' => '295d81c4', 'phui-tag-view-css' => '295d81c4',
'phui-text-css' => '23e9b4b7', 'phui-text-css' => '23e9b4b7',
'phui-timeline-view-css' => '15ff2a9f', 'phui-timeline-view-css' => '15ff2a9f',
'phui-workboard-view-css' => '84f2c272', 'phui-workboard-view-css' => '2bf82d00',
'phui-workpanel-view-css' => 'b6ccc22d', 'phui-workpanel-view-css' => '97b69459',
'phuix-action-list-view' => 'b5c256b8', 'phuix-action-list-view' => 'b5c256b8',
'phuix-action-view' => '19a0b148', 'phuix-action-view' => '19a0b148',
'phuix-dropdown-menu' => 'bd4c8dca', 'phuix-dropdown-menu' => 'bd4c8dca',

View file

@ -150,55 +150,45 @@ final class PhabricatorProjectBoardViewController
$board->addPanel($panel); $board->addPanel($panel);
} }
$crumbs = $this->buildApplicationCrumbs();
$crumbs->addTextCrumb(pht('Board'));
$can_edit = PhabricatorPolicyFilter::hasCapability( $can_edit = PhabricatorPolicyFilter::hasCapability(
$viewer, $viewer,
$project, $project,
PhabricatorPolicyCapability::CAN_EDIT); PhabricatorPolicyCapability::CAN_EDIT);
$actions = id(new PhabricatorActionListView()) $add_icon = id(new PHUIIconView())
->setUser($viewer) ->setIconFont('fa-plus bluegrey');
->addAction(
id(new PhabricatorActionView())
->setName(pht('Add Column'))
->setHref($this->getApplicationURI('board/'.$this->id.'/edit/'))
->setIcon('create')
->setDisabled(!$can_edit)
->setWorkflow(!$can_edit));
$plist = id(new PHUIPropertyListView()); $add_button = id(new PHUIButtonView())
->setText(pht('Add Column'))
->setIcon($add_icon)
->setTag('a')
->setHref($this->getApplicationURI('board/'.$this->id.'/edit/'))
->setDisabled(!$can_edit)
->setWorkflow(!$can_edit);
// TODO: Need this to get actions to render. $header_link = phutil_tag(
$plist->addProperty( 'a',
pht('Project Boards'), array(
phutil_tag( 'href' => $this->getApplicationURI('view/'.$project->getID().'/')
'em', ),
array(), $project->getName());
pht(
'This feature is beta, but should mostly work.')));
$plist->setActionList($actions);
$header = id(new PHUIHeaderView()) $header = id(new PHUIHeaderView())
->setHeader($project->getName()) ->setHeader($header_link)
->setUser($viewer) ->setUser($viewer)
->setNoBackground(true)
->setImage($project->getProfileImageURI()) ->setImage($project->getProfileImageURI())
->setImageURL($this->getApplicationURI('view/'.$project->getID().'/'))
->addActionLink($add_button)
->setPolicyObject($project); ->setPolicyObject($project);
$box = id(new PHUIObjectBoxView())
->setHeader($header)
->addPropertyList($plist);
$board_box = id(new PHUIBoxView()) $board_box = id(new PHUIBoxView())
->appendChild($board) ->appendChild($board)
->addClass('project-board-wrapper') ->addClass('project-board-wrapper');
->addMargin(PHUI::MARGIN_LARGE);
return $this->buildApplicationPage( return $this->buildApplicationPage(
array( array(
$crumbs, $header,
$box,
$board_box, $board_box,
), ),
array( array(

View file

@ -8,6 +8,7 @@ final class PHUIHeaderView extends AphrontView {
private $header; private $header;
private $tags = array(); private $tags = array();
private $image; private $image;
private $imageURL = null;
private $subheader; private $subheader;
private $gradient; private $gradient;
private $noBackground; private $noBackground;
@ -42,6 +43,11 @@ final class PHUIHeaderView extends AphrontView {
return $this; return $this;
} }
public function setImageURL($url) {
$this->imageURL = $url;
return $this;
}
public function setSubheader($subheader) { public function setSubheader($subheader) {
$this->subheader = $subheader; $this->subheader = $subheader;
return $this; return $this;
@ -128,12 +134,13 @@ final class PHUIHeaderView extends AphrontView {
$image = null; $image = null;
if ($this->image) { if ($this->image) {
$image = phutil_tag( $image = phutil_tag(
'span', ($this->imageURL ? 'a' : 'span'),
array( array(
'href' => $this->imageURL,
'class' => 'phui-header-image', 'class' => 'phui-header-image',
'style' => 'background-image: url('.$this->image.')', 'style' => 'background-image: url('.$this->image.')',
), ),
''); ' ');
$classes[] = 'phui-header-has-image'; $classes[] = 'phui-header-has-image';
} }

View file

@ -17,6 +17,11 @@
margin: 0; margin: 0;
} }
.device-desktop .phui-workboard-view-shadow .aphront-multi-column-inner
.aphront-multi-column-column-last {
margin-right: 8px;
}
.device .aphront-multi-column-outer .device .aphront-multi-column-outer
div.aphront-multi-column-column-outer { div.aphront-multi-column-column-outer {
width: auto; width: auto;
@ -28,7 +33,7 @@
} }
.aphront-multi-column-fixed .aphront-multi-column-column-outer { .aphront-multi-column-fixed .aphront-multi-column-column-outer {
width: 280px; width: 300px;
} }
/* flexible, but with a minimum */ /* flexible, but with a minimum */
@ -103,6 +108,10 @@
width: 100%; width: 100%;
} }
.device-desktop .aphront-multi-column-fixed .aphront-multi-column-inner {
margin: 0 0 12px 12px;
}
/* magic sauce */ /* magic sauce */
.aphront-multi-column-fluid .aphront-multi-column-inner { .aphront-multi-column-fluid .aphront-multi-column-inner {
table-layout: fixed; table-layout: fixed;

View file

@ -50,6 +50,11 @@ body .phui-header-shell.phui-bleed-header
.phui-header-view .phui-header-action-links { .phui-header-view .phui-header-action-links {
position: absolute; position: absolute;
top: 24px;
right: 12px;
}
.phui-object-box .phui-header-view .phui-header-action-links {
top: 5px; top: 5px;
right: 0; right: 0;
} }

View file

@ -39,7 +39,6 @@
border-color: {$lightgreyborder}; border-color: {$lightgreyborder};
border-width: 0 0 0 4px; border-width: 0 0 0 4px;
margin: 5px 0; margin: 5px 0;
overflow: hidden;
} }
.phui-object-item .phui-icon-view { .phui-object-item .phui-icon-view {
@ -51,7 +50,6 @@
border-color: {$lightgreyborder}; border-color: {$lightgreyborder};
border-bottom-color: {$greyborder}; border-bottom-color: {$greyborder};
border-width: 1px 1px 1px 0; border-width: 1px 1px 1px 0;
overflow: hidden;
position: relative; position: relative;
min-height: 29px; min-height: 29px;
} }

View file

@ -6,18 +6,23 @@
width: 100%; width: 100%;
} }
.phui-workboard-view-shadow { .device-desktop .phui-workboard-view-shadow {
overflow-x: auto; overflow-x: auto;
padding-bottom: 8px; position: absolute;
top: 120px;
bottom: 0;
left: 0;
right: 0;
} }
.phui-workboard-view-shadow::-webkit-scrollbar { .phui-workboard-view-shadow::-webkit-scrollbar {
height: 12px; height: 12px;
width: 12px;
background: rgba(200,200,200,.6);
} }
.phui-workboard-view-shadow::-webkit-scrollbar-thumb { .phui-workboard-view-shadow::-webkit-scrollbar-thumb {
background: {$lightbluetext}; background: {$lightbluetext};
border-radius: 10px;
} }
.phui-workboard-action-list { .phui-workboard-action-list {
@ -68,7 +73,7 @@
margin: 0 3px; margin: 0 3px;
} }
.device-phone .project-board-wrapper { .device-tablet .project-board-wrapper {
margin-left: 0; margin-left: 8px;
margin-right: 0; margin-right: 8px;
} }

View file

@ -53,7 +53,7 @@
} }
.aphront-multi-column-fixed .phui-workpanel-body { .aphront-multi-column-fixed .phui-workpanel-body {
width: 280px; width: 300px;
} }
.phui-workpanel-body .phui-object-item-list-view { .phui-workpanel-body .phui-object-item-list-view {