Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/diffusion/controller/DiffusionRepositoryEditPublishingController.php
12242 views
1
<?php
2
3
final class DiffusionRepositoryEditPublishingController
4
extends DiffusionRepositoryManageController {
5
6
public function handleRequest(AphrontRequest $request) {
7
$response = $this->loadDiffusionContextForEdit();
8
if ($response) {
9
return $response;
10
}
11
12
$viewer = $this->getViewer();
13
$drequest = $this->getDiffusionRequest();
14
$repository = $drequest->getRepository();
15
16
$panel_uri = id(new DiffusionRepositoryBasicsManagementPanel())
17
->setRepository($repository)
18
->getPanelURI();
19
20
if ($request->isFormPost()) {
21
if ($repository->isPublishingDisabled()) {
22
$new_status = true;
23
} else {
24
$new_status = false;
25
}
26
27
$xaction = id(new PhabricatorRepositoryTransaction())
28
->setTransactionType(
29
PhabricatorRepositoryNotifyTransaction::TRANSACTIONTYPE)
30
->setNewValue($new_status);
31
32
$editor = id(new PhabricatorRepositoryEditor())
33
->setContinueOnNoEffect(true)
34
->setContinueOnMissingFields(true)
35
->setContentSourceFromRequest($request)
36
->setActor($viewer)
37
->applyTransactions($repository, array($xaction));
38
39
return id(new AphrontReloadResponse())->setURI($panel_uri);
40
}
41
42
$body = array();
43
if (!$repository->isPublishingDisabled()) {
44
$title = pht('Disable Publishing');
45
$body[] = pht(
46
'If you disable publishing for this repository, new commits '.
47
'will not: send email, publish feed stories, trigger audits, or '.
48
'trigger Herald.');
49
50
$body[] = pht(
51
'This option is most commonly used to temporarily allow a major '.
52
'repository maintenance operation (like a history rewrite) to '.
53
'occur with minimal disruption to users.');
54
55
$submit = pht('Disable Publishing');
56
} else {
57
$title = pht('Reactivate Publishing');
58
$body[] = pht(
59
'If you reactivate publishing for this repository, new commits '.
60
'that become reachable from permanent refs will: send email, '.
61
'publish feed stories, trigger audits, and trigger Herald.');
62
63
$body[] = pht(
64
'Commits which became reachable from a permanent ref while '.
65
'publishing was disabled will not trigger these actions '.
66
'retroactively.');
67
68
$submit = pht('Reactivate Publishing');
69
}
70
71
$dialog = $this->newDialog()
72
->setTitle($title)
73
->addSubmitButton($submit)
74
->addCancelButton($panel_uri);
75
76
foreach ($body as $graph) {
77
$dialog->appendParagraph($graph);
78
}
79
80
return $dialog;
81
}
82
83
}
84
85