Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/dashboard/install/PhabricatorDashboardPortalInstallWorkflow.php
12242 views
1
<?php
2
3
final class PhabricatorDashboardPortalInstallWorkflow
4
extends PhabricatorDashboardObjectInstallWorkflow {
5
6
const WORKFLOWKEY = 'portal';
7
8
public function getOrder() {
9
return 2000;
10
}
11
12
protected function newWorkflowMenuItem() {
13
return $this->newMenuItem()
14
->setHeader(pht('Add to Portal Menu'))
15
->setImageIcon('fa-compass')
16
->addAttribute(
17
pht('Add this dashboard to the menu on a portal.'));
18
}
19
20
protected function newProfileEngine() {
21
return new PhabricatorDashboardPortalProfileMenuEngine();
22
}
23
24
protected function newQuery() {
25
return new PhabricatorDashboardPortalQuery();
26
}
27
28
protected function newConfirmDialog($object) {
29
return $this->newDialog()
30
->setTitle(pht('Add Dashboard to Portal Menu'))
31
->appendParagraph(
32
pht(
33
'Add the dashboard %s to portal %s?',
34
$this->getDashboardDisplayName(),
35
phutil_tag('strong', array(), $object->getName())))
36
->addSubmitButton(pht('Add to Portal'));
37
}
38
protected function newObjectSelectionForm($object) {
39
$viewer = $this->getViewer();
40
41
if ($object) {
42
$tokenizer_value = array($object->getPHID());
43
} else {
44
$tokenizer_value = array();
45
}
46
47
return id(new AphrontFormView())
48
->setViewer($viewer)
49
->appendInstructions(
50
pht(
51
'Select which portal you want to add the dashboard %s to.',
52
$this->getDashboardDisplayName()))
53
->appendControl(
54
id(new AphrontFormTokenizerControl())
55
->setName('target')
56
->setLimit(1)
57
->setLabel(pht('Add to Portal'))
58
->setValue($tokenizer_value)
59
->setDatasource(new PhabricatorDashboardPortalDatasource()));
60
}
61
62
}
63
64