Differential D15953 Diff 38422 src/applications/files/controller/PhabricatorFileUploadDialogController.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/files/controller/PhabricatorFileUploadDialogController.php
<?php | <?php | ||||
final class PhabricatorFileUploadDialogController | final class PhabricatorFileUploadDialogController | ||||
extends PhabricatorFileController { | extends PhabricatorFileController { | ||||
public function handleRequest(AphrontRequest $request) { | public function handleRequest(AphrontRequest $request) { | ||||
$viewer = $request->getViewer(); | $viewer = $request->getViewer(); | ||||
return $this->newDialog() | $e_file = true; | ||||
->setTitle(pht('Upload File')) | $errors = array(); | ||||
->appendChild(pht( | if ($request->isDialogFormPost()) { | ||||
'To add files, drag and drop them into the comment text area.')) | $file_phids = $request->getStrList('filePHIDs'); | ||||
->addCancelButton('/', pht('Close')); | if ($file_phids) { | ||||
$files = id(new PhabricatorFileQuery()) | |||||
->setViewer($viewer) | |||||
->withPHIDs($file_phids) | |||||
->setRaisePolicyExceptions(true) | |||||
->execute(); | |||||
} else { | |||||
$files = array(); | |||||
} | |||||
if ($files) { | |||||
$results = array(); | |||||
foreach ($files as $file) { | |||||
$results[] = $file->getDragAndDropDictionary(); | |||||
} | |||||
$content = array( | |||||
'files' => $results, | |||||
); | |||||
return id(new AphrontAjaxResponse())->setContent($content); | |||||
} else { | |||||
$e_file = pht('Required'); | |||||
$errors[] = pht('You must choose a file to upload.'); | |||||
} | |||||
} | |||||
$form = id(new AphrontFormView()) | |||||
->appendChild( | |||||
id(new PHUIFormFileControl()) | |||||
->setName('filePHIDs') | |||||
->setLabel(pht('Upload File')) | |||||
->setAllowMultiple(true) | |||||
->setError($e_file)); | |||||
return $this->newDialog() | |||||
->setTitle(pht('File')) | |||||
->setErrors($errors) | |||||
->appendForm($form) | |||||
->addSubmitButton(pht('Upload')) | |||||
->addCancelButton('/'); | |||||
} | } | ||||
} | } |