Update Files to new UI

Summary: Modernize Files a bit, use newPage

Test Plan: New file, drag and drop file, view file, edit file

Reviewers: epriestley

Reviewed By: epriestley

Subscribers: Korvin

Differential Revision: https://secure.phabricator.com/D15631
This commit is contained in:
Chad Little 2016-04-05 15:55:04 -07:00
parent 46881c4ce5
commit 1914ea28eb
7 changed files with 89 additions and 68 deletions

View file

@ -155,8 +155,7 @@ final class PhabricatorFileComposeController
'defaultIcon' => $value_icon, 'defaultIcon' => $value_icon,
)); ));
$dialog = id(new AphrontDialogView()) return $this->newDialog()
->setUser($viewer)
->setFormID($dialog_id) ->setFormID($dialog_id)
->setClass('compose-dialog') ->setClass('compose-dialog')
->setTitle(pht('Compose Image')) ->setTitle(pht('Compose Image'))
@ -188,8 +187,6 @@ final class PhabricatorFileComposeController
->appendChild($icon_input) ->appendChild($icon_input)
->addCancelButton('/') ->addCancelButton('/')
->addSubmitButton(pht('Save Image')); ->addSubmitButton(pht('Save Image'));
return id(new AphrontDialogResponse())->setDialog($dialog);
} }
private function getIconMap() { private function getIconMap() {

View file

@ -29,17 +29,14 @@ final class PhabricatorFileDeleteController extends PhabricatorFileController {
return id(new AphrontRedirectResponse())->setURI('/file/'); return id(new AphrontRedirectResponse())->setURI('/file/');
} }
$dialog = new AphrontDialogView(); return $this->newDialog()
$dialog->setUser($viewer); ->setTitle(pht('Really delete file?'))
$dialog->setTitle(pht('Really delete file?')); ->appendChild(hsprintf(
$dialog->appendChild(hsprintf(
'<p>%s</p>', '<p>%s</p>',
pht( pht(
"Permanently delete '%s'? This action can not be undone.", 'Permanently delete "%s"? This action can not be undone.',
$file->getName()))); $file->getName())))
$dialog->addSubmitButton(pht('Delete')); ->addSubmitButton(pht('Delete'))
$dialog->addCancelButton($file->getInfoURI()); ->addCancelButton($file->getInfoURI());
return id(new AphrontDialogResponse())->setDialog($dialog);
} }
} }

View file

@ -19,8 +19,9 @@ final class PhabricatorFileEditController extends PhabricatorFileController {
return new Aphront404Response(); return new Aphront404Response();
} }
$title = pht('Edit %s', $file->getName()); $title = pht('Edit File: %s', $file->getName());
$file_name = $file->getName(); $file_name = $file->getName();
$header_icon = 'fa-pencil';
$view_uri = '/'.$file->getMonogram(); $view_uri = '/'.$file->getMonogram();
$error_name = true; $error_name = true;
$validation_exception = null; $validation_exception = null;
@ -86,21 +87,28 @@ final class PhabricatorFileEditController extends PhabricatorFileController {
$crumbs = $this->buildApplicationCrumbs() $crumbs = $this->buildApplicationCrumbs()
->addTextCrumb($file->getMonogram(), $view_uri) ->addTextCrumb($file->getMonogram(), $view_uri)
->addTextCrumb(pht('Edit')); ->addTextCrumb(pht('Edit'))
->setBorder(true);
$object_box = id(new PHUIObjectBoxView()) $box = id(new PHUIObjectBoxView())
->setHeaderText($title) ->setHeaderText($title)
->setValidationException($validation_exception) ->setValidationException($validation_exception)
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->appendChild($form); ->appendChild($form);
return $this->buildApplicationPage( $header = id(new PHUIHeaderView())
array( ->setHeader($title)
$crumbs, ->setHeaderIcon($header_icon);
$object_box,
), $view = id(new PHUITwoColumnView())
array( ->setHeader($header)
'title' => $title, ->setFooter($box);
));
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
->appendChild($view);
} }
} }

View file

@ -35,7 +35,8 @@ final class PhabricatorFileInfoController extends PhabricatorFileController {
$header = id(new PHUIHeaderView()) $header = id(new PHUIHeaderView())
->setUser($viewer) ->setUser($viewer)
->setPolicyObject($file) ->setPolicyObject($file)
->setHeader($file->getName()); ->setHeader($file->getName())
->setHeaderIcon('fa-file-o');
$ttl = $file->getTTL(); $ttl = $file->getTTL();
if ($ttl !== null) { if ($ttl !== null) {
@ -55,28 +56,35 @@ final class PhabricatorFileInfoController extends PhabricatorFileController {
$header->addTag($partial_tag); $header->addTag($partial_tag);
} }
$actions = $this->buildActionView($file); $curtain = $this->buildCurtainView($file);
$timeline = $this->buildTransactionView($file); $timeline = $this->buildTransactionView($file);
$crumbs = $this->buildApplicationCrumbs(); $crumbs = $this->buildApplicationCrumbs();
$crumbs->addTextCrumb( $crumbs->addTextCrumb(
'F'.$file->getID(), 'F'.$file->getID(),
$this->getApplicationURI("/info/{$phid}/")); $this->getApplicationURI("/info/{$phid}/"));
$crumbs->setBorder(true);
$object_box = id(new PHUIObjectBoxView()) $object_box = id(new PHUIObjectBoxView())
->setHeader($header); ->setHeaderText(pht('File'))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY);
$this->buildPropertyViews($object_box, $file, $actions); $this->buildPropertyViews($object_box, $file);
$title = $file->getName();
return $this->buildApplicationPage( $view = id(new PHUITwoColumnView())
array( ->setHeader($header)
$crumbs, ->setCurtain($curtain)
->setMainColumn(array(
$object_box, $object_box,
$timeline, $timeline,
),
array(
'title' => $file->getName(),
'pageObjects' => array($file->getPHID()),
)); ));
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
->setPageObjectPHIDs(array($file->getPHID()))
->appendChild($view);
} }
private function buildTransactionView(PhabricatorFile $file) { private function buildTransactionView(PhabricatorFile $file) {
@ -108,7 +116,7 @@ final class PhabricatorFileInfoController extends PhabricatorFileController {
); );
} }
private function buildActionView(PhabricatorFile $file) { private function buildCurtainView(PhabricatorFile $file) {
$viewer = $this->getViewer(); $viewer = $this->getViewer();
$id = $file->getID(); $id = $file->getID();
@ -118,14 +126,12 @@ final class PhabricatorFileInfoController extends PhabricatorFileController {
$file, $file,
PhabricatorPolicyCapability::CAN_EDIT); PhabricatorPolicyCapability::CAN_EDIT);
$view = id(new PhabricatorActionListView()) $curtain = $this->newCurtainView($file);
->setUser($viewer)
->setObject($file);
$can_download = !$file->getIsPartial(); $can_download = !$file->getIsPartial();
if ($file->isViewableInBrowser()) { if ($file->isViewableInBrowser()) {
$view->addAction( $curtain->addAction(
id(new PhabricatorActionView()) id(new PhabricatorActionView())
->setName(pht('View File')) ->setName(pht('View File'))
->setIcon('fa-file-o') ->setIcon('fa-file-o')
@ -133,7 +139,7 @@ final class PhabricatorFileInfoController extends PhabricatorFileController {
->setDisabled(!$can_download) ->setDisabled(!$can_download)
->setWorkflow(!$can_download)); ->setWorkflow(!$can_download));
} else { } else {
$view->addAction( $curtain->addAction(
id(new PhabricatorActionView()) id(new PhabricatorActionView())
->setUser($viewer) ->setUser($viewer)
->setRenderAsForm($can_download) ->setRenderAsForm($can_download)
@ -145,7 +151,7 @@ final class PhabricatorFileInfoController extends PhabricatorFileController {
->setWorkflow(!$can_download)); ->setWorkflow(!$can_download));
} }
$view->addAction( $curtain->addAction(
id(new PhabricatorActionView()) id(new PhabricatorActionView())
->setName(pht('Edit File')) ->setName(pht('Edit File'))
->setIcon('fa-pencil') ->setIcon('fa-pencil')
@ -153,7 +159,7 @@ final class PhabricatorFileInfoController extends PhabricatorFileController {
->setWorkflow(!$can_edit) ->setWorkflow(!$can_edit)
->setDisabled(!$can_edit)); ->setDisabled(!$can_edit));
$view->addAction( $curtain->addAction(
id(new PhabricatorActionView()) id(new PhabricatorActionView())
->setName(pht('Delete File')) ->setName(pht('Delete File'))
->setIcon('fa-times') ->setIcon('fa-times')
@ -161,24 +167,22 @@ final class PhabricatorFileInfoController extends PhabricatorFileController {
->setWorkflow(true) ->setWorkflow(true)
->setDisabled(!$can_edit)); ->setDisabled(!$can_edit));
$view->addAction( $curtain->addAction(
id(new PhabricatorActionView()) id(new PhabricatorActionView())
->setName(pht('View Transforms')) ->setName(pht('View Transforms'))
->setIcon('fa-crop') ->setIcon('fa-crop')
->setHref($this->getApplicationURI("/transforms/{$id}/"))); ->setHref($this->getApplicationURI("/transforms/{$id}/")));
return $view; return $curtain;
} }
private function buildPropertyViews( private function buildPropertyViews(
PHUIObjectBoxView $box, PHUIObjectBoxView $box,
PhabricatorFile $file, PhabricatorFile $file) {
PhabricatorActionListView $actions) {
$request = $this->getRequest(); $request = $this->getRequest();
$viewer = $request->getUser(); $viewer = $request->getUser();
$properties = id(new PHUIPropertyListView()); $properties = id(new PHUIPropertyListView());
$properties->setActionList($actions);
$box->addPropertyList($properties, pht('Details')); $box->addPropertyList($properties, pht('Details'));
if ($file->getAuthorPHID()) { if ($file->getAuthorPHID()) {

View file

@ -113,26 +113,35 @@ final class PhabricatorFileTransformListController
$crumbs = $this->buildApplicationCrumbs(); $crumbs = $this->buildApplicationCrumbs();
$crumbs->addTextCrumb($monogram, '/'.$monogram); $crumbs->addTextCrumb($monogram, '/'.$monogram);
$crumbs->addTextCrumb(pht('Transforms')); $crumbs->addTextCrumb(pht('Transforms'));
$crumbs->setBorder(true);
$dst_box = id(new PHUIObjectBoxView()) $dst_box = id(new PHUIObjectBoxView())
->setHeaderText(pht('File Sources')) ->setHeaderText(pht('File Sources'))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setTable($dst_table); ->setTable($dst_table);
$src_box = id(new PHUIObjectBoxView()) $src_box = id(new PHUIObjectBoxView())
->setHeaderText(pht('Available Transforms')) ->setHeaderText(pht('Available Transforms'))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setTable($src_table); ->setTable($src_table);
return $this->buildApplicationPage( $title = pht('%s Transforms', $file->getName());
array(
$crumbs, $header = id(new PHUIHeaderView())
->setHeader($title)
->setHeaderIcon('fa-arrows-alt');
$view = id(new PHUITwoColumnView())
->setHeader($header)
->setFooter(array(
$dst_box, $dst_box,
$src_box, $src_box,
),
array(
'title' => array(
pht('%s %s', $monogram, $file->getName()),
pht('Tranforms'),
),
)); ));
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
->appendChild($view);
} }
} }

View file

@ -81,6 +81,7 @@ final class PhabricatorFileUploadController extends PhabricatorFileController {
$crumbs = $this->buildApplicationCrumbs(); $crumbs = $this->buildApplicationCrumbs();
$crumbs->addTextCrumb(pht('Upload'), $request->getRequestURI()); $crumbs->addTextCrumb(pht('Upload'), $request->getRequestURI());
$crumbs->setBorder(true);
$title = pht('Upload File'); $title = pht('Upload File');
@ -89,19 +90,26 @@ final class PhabricatorFileUploadController extends PhabricatorFileController {
->setShowIfSupportedID($support_id); ->setShowIfSupportedID($support_id);
$form_box = id(new PHUIObjectBoxView()) $form_box = id(new PHUIObjectBoxView())
->setHeaderText($title) ->setHeaderText(pht('File'))
->setFormErrors($errors) ->setFormErrors($errors)
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setForm($form); ->setForm($form);
return $this->buildApplicationPage( $header = id(new PHUIHeaderView())
array( ->setHeader($title)
$crumbs, ->setHeaderIcon('fa-upload');
$view = id(new PHUITwoColumnView())
->setHeader($header)
->setFooter(array(
$form_box, $form_box,
$global_upload, $global_upload,
),
array(
'title' => $title,
)); ));
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
->appendChild($view);
} }
} }

View file

@ -6,14 +6,12 @@ final class PhabricatorFileUploadDialogController
public function handleRequest(AphrontRequest $request) { public function handleRequest(AphrontRequest $request) {
$viewer = $request->getViewer(); $viewer = $request->getViewer();
$dialog = id(new AphrontDialogView()) return $this->newDialog()
->setUser($viewer)
->setTitle(pht('Upload File')) ->setTitle(pht('Upload File'))
->appendChild(pht( ->appendChild(pht(
'To add files, drag and drop them into the comment text area.')) 'To add files, drag and drop them into the comment text area.'))
->addCancelButton('/', pht('Close')); ->addCancelButton('/', pht('Close'));
return id(new AphrontDialogResponse())->setDialog($dialog);
} }
} }