Fix displaying of raw files in Differential
Summary: See D1533#5. Also deduplicates logic of what is stored to blob in ArcanistDiffWorkflow. Blame Rev: D1533 Test Plan: Display raw version of text file. Display raw version of image. Reviewers: epriestley, nh Reviewed By: epriestley CC: aran, epriestley Differential Revision: https://secure.phabricator.com/D1583
This commit is contained in:
@@ -48,20 +48,17 @@ class DifferentialChangesetViewController extends DifferentialController {
|
|||||||
$view = $request->getStr('view');
|
$view = $request->getStr('view');
|
||||||
if ($view) {
|
if ($view) {
|
||||||
$changeset->attachHunks($changeset->loadHunks());
|
$changeset->attachHunks($changeset->loadHunks());
|
||||||
$type = $changeset->getFileType();
|
$phid = idx($changeset->getMetadata(), "$view:binary-phid");
|
||||||
if ($type === DifferentialChangeType::FILE_TEXT) {
|
if ($phid) {
|
||||||
switch ($view) {
|
return id(new AphrontRedirectResponse())->setURI("/file/info/$phid/");
|
||||||
case 'new':
|
}
|
||||||
return $this->buildRawFileResponse($changeset->makeNewFile());
|
switch ($view) {
|
||||||
case 'old':
|
case 'new':
|
||||||
return $this->buildRawFileResponse($changeset->makeOldFile());
|
return $this->buildRawFileResponse($changeset->makeNewFile());
|
||||||
default:
|
case 'old':
|
||||||
return new Aphront400Response();
|
return $this->buildRawFileResponse($changeset->makeOldFile());
|
||||||
}
|
default:
|
||||||
} else if ($type === DifferentialChangeType::FILE_IMAGE ||
|
return new Aphront400Response();
|
||||||
$type === DifferentialChangeType::FILE_BINARY) {
|
|
||||||
$phid = idx($changeset->getMetadata(), "$view:binary-phid");
|
|
||||||
return id(new AphrontRedirectResponse())->setURI("/file/info/$phid/");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ phutil_require_module('phabricator', 'aphront/response/404');
|
|||||||
phutil_require_module('phabricator', 'aphront/response/ajax');
|
phutil_require_module('phabricator', 'aphront/response/ajax');
|
||||||
phutil_require_module('phabricator', 'aphront/response/file');
|
phutil_require_module('phabricator', 'aphront/response/file');
|
||||||
phutil_require_module('phabricator', 'aphront/response/redirect');
|
phutil_require_module('phabricator', 'aphront/response/redirect');
|
||||||
phutil_require_module('phabricator', 'applications/differential/constants/changetype');
|
|
||||||
phutil_require_module('phabricator', 'applications/differential/controller/base');
|
phutil_require_module('phabricator', 'applications/differential/controller/base');
|
||||||
phutil_require_module('phabricator', 'applications/differential/parser/changeset');
|
phutil_require_module('phabricator', 'applications/differential/parser/changeset');
|
||||||
phutil_require_module('phabricator', 'applications/differential/storage/changeset');
|
phutil_require_module('phabricator', 'applications/differential/storage/changeset');
|
||||||
|
|||||||
Reference in New Issue
Block a user