Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/files/controller/PhabricatorFileUICurtainListController.php
12242 views
1
<?php
2
3
final class PhabricatorFileUICurtainListController
4
extends PhabricatorFileController {
5
6
public function shouldAllowPublic() {
7
return true;
8
}
9
10
public function handleRequest(AphrontRequest $request) {
11
$viewer = $request->getViewer();
12
13
$object_phid = $request->getURIData('phid');
14
15
$object = id(new PhabricatorObjectQuery())
16
->setViewer($viewer)
17
->withPHIDs(array($object_phid))
18
->executeOne();
19
if (!$object) {
20
return new Aphront404Response();
21
}
22
23
$attachments = id(new PhabricatorFileAttachmentQuery())
24
->setViewer($viewer)
25
->withObjectPHIDs(array($object->getPHID()))
26
->needFiles(true)
27
->execute();
28
29
$handles = $viewer->loadHandles(array($object_phid));
30
$object_handle = $handles[$object_phid];
31
32
$file_phids = mpull($attachments, 'getFilePHID');
33
$file_handles = $viewer->loadHandles($file_phids);
34
35
$list = id(new PHUIObjectItemListView())
36
->setUser($viewer);
37
foreach ($attachments as $attachment) {
38
$file_phid = $attachment->getFilePHID();
39
$handle = $file_handles[$file_phid];
40
41
$item = id(new PHUIObjectItemView())
42
->setHeader($handle->getFullName())
43
->setHref($handle->getURI())
44
->setDisabled($handle->isDisabled());
45
46
if ($handle->getImageURI()) {
47
$item->setImageURI($handle->getImageURI());
48
}
49
50
$list->addItem($item);
51
}
52
53
return $this->newDialog()
54
->setViewer($viewer)
55
->setWidth(AphrontDialogView::WIDTH_FORM)
56
->setTitle(pht('Referenced Files'))
57
->setObjectList($list)
58
->addCancelButton($object_handle->getURI(), pht('Close'));
59
}
60
61
}
62
63