Page MenuHomestyx hydra

No OneTemporary

diff --git a/src/applications/differential/controller/DifferentialDiffCreateController.php b/src/applications/differential/controller/DifferentialDiffCreateController.php
index 121e67ab63..efc3c70a12 100644
--- a/src/applications/differential/controller/DifferentialDiffCreateController.php
+++ b/src/applications/differential/controller/DifferentialDiffCreateController.php
@@ -1,85 +1,109 @@
<?php
final class DifferentialDiffCreateController extends DifferentialController {
public function processRequest() {
$request = $this->getRequest();
+ $errors = array();
+ $e_diff = null;
+ $e_file = null;
if ($request->isFormPost()) {
$diff = null;
if ($request->getFileExists('diff-file')) {
$diff = PhabricatorFile::readUploadedFileData($_FILES['diff-file']);
} else {
$diff = $request->getStr('diff');
}
- $call = new ConduitCall(
- 'differential.createrawdiff',
- array(
- 'diff' => $diff,
- ));
- $call->setUser($request->getUser());
- $result = $call->execute();
+ if (!strlen($diff)) {
+ $errors[] = pht(
+ "You can not create an empty diff. Copy/paste a diff, or upload a ".
+ "diff file.");
+ $e_diff = pht('Required');
+ $e_file = pht('Required');
+ }
+
+ if (!$errors) {
+ $call = new ConduitCall(
+ 'differential.createrawdiff',
+ array(
+ 'diff' => $diff,
+ ));
+ $call->setUser($request->getUser());
+ $result = $call->execute();
- $path = id(new PhutilURI($result['uri']))->getPath();
- return id(new AphrontRedirectResponse())->setURI($path);
+ $path = id(new PhutilURI($result['uri']))->getPath();
+ return id(new AphrontRedirectResponse())->setURI($path);
+ }
}
$form = new AphrontFormView();
$form->setFlexible(true);
$arcanist_href = PhabricatorEnv::getDoclink(
'article/Arcanist_User_Guide.html');
$arcanist_link = phutil_tag(
'a',
array(
'href' => $arcanist_href,
'target' => '_blank',
),
'Arcanist');
+
+ $cancel_uri = $this->getApplicationURI();
+
$form
->setAction('/differential/diff/create/')
->setEncType('multipart/form-data')
->setUser($request->getUser())
- ->appendChild(hsprintf(
- '<p class="aphront-form-instructions">%s</p>',
+ ->appendInstructions(
pht(
'The best way to create a Differential diff is by using %s, but you '.
- 'can also just paste a diff (e.g., from %s or %s) into this box '.
- 'or upload it as a file if you really want.',
+ 'can also just paste a diff (for example, from %s, %s or %s) into '.
+ 'this box, or upload a diff file.',
$arcanist_link,
phutil_tag('tt', array(), 'svn diff'),
- phutil_tag('tt', array(), 'git diff'))))
+ phutil_tag('tt', array(), 'git diff'),
+ phutil_tag('tt', array(), 'hg diff')))
->appendChild(
id(new AphrontFormTextAreaControl())
->setLabel(pht('Raw Diff'))
->setName('diff')
- ->setHeight(AphrontFormTextAreaControl::HEIGHT_VERY_TALL))
+ ->setHeight(AphrontFormTextAreaControl::HEIGHT_VERY_TALL)
+ ->setError($e_diff))
->appendChild(
id(new AphrontFormFileControl())
- ->setLabel(pht('Raw Diff from file'))
- ->setName('diff-file'))
+ ->setLabel(pht('Raw Diff From File'))
+ ->setName('diff-file')
+ ->setError($e_file))
->appendChild(
id(new AphrontFormSubmitControl())
- ->setValue(pht("Create Diff \xC2\xBB")));
+ ->addCancelButton($cancel_uri)
+ ->setValue(pht("Create Diff")));
$crumbs = $this->buildApplicationCrumbs();
$crumbs->addCrumb(
id(new PhabricatorCrumbView())
- ->setName(pht('Create Diff'))
- ->setHref('/differential/diff/create/'));
+ ->setName(pht('Create Diff')));
+
+ if ($errors) {
+ $errors = id(new AphrontErrorView())
+ ->setErrors($errors);
+ }
return $this->buildApplicationPage(
array(
$crumbs,
+ $errors,
$form
),
array(
'title' => pht('Create Diff'),
'device' => true,
'dust' => true,
));
}
}

File Metadata

Mime Type
text/x-diff
Expires
Sat, Nov 15, 3:30 PM (15 h, 36 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
338083
Default Alt Text
(4 KB)

Event Timeline