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