@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Allow Diviner books to have a "preface" section

Summary: Ref T988. This is primarily intended to let us add the "HEY! THIS ISN'T USER DOCUMENTATION" notices to the arcanist and libphutil technical docs.

Test Plan: Added some prefaces, generated docs, looked at them.

Reviewers: chad, btrahan

Reviewed By: btrahan

CC: aran

Maniphest Tasks: T988

Differential Revision: https://secure.phabricator.com/D8410

+38 -22
+18 -18
resources/celerity/map.php
··· 401 401 'rsrc/js/application/policy/behavior-policy-control.js' => 'c01153ea', 402 402 'rsrc/js/application/policy/behavior-policy-rule-editor.js' => '263aeb8c', 403 403 'rsrc/js/application/ponder/behavior-votebox.js' => '327dbe61', 404 - 'rsrc/js/application/projects/behavior-project-boards.js' => '1b9facd8', 404 + 'rsrc/js/application/projects/behavior-project-boards.js' => 'cbdc9b22', 405 405 'rsrc/js/application/projects/behavior-project-create.js' => '065227cc', 406 406 'rsrc/js/application/releeph/releeph-preview-branch.js' => '9eb2cedb', 407 407 'rsrc/js/application/releeph/releeph-request-state-change.js' => 'fe7fc914', ··· 610 610 'javelin-behavior-policy-control' => 'c01153ea', 611 611 'javelin-behavior-policy-rule-editor' => '263aeb8c', 612 612 'javelin-behavior-ponder-votebox' => '327dbe61', 613 - 'javelin-behavior-project-boards' => '1b9facd8', 613 + 'javelin-behavior-project-boards' => 'cbdc9b22', 614 614 'javelin-behavior-project-create' => '065227cc', 615 615 'javelin-behavior-refresh-csrf' => 'c4b31646', 616 616 'javelin-behavior-releeph-preview-branch' => '9eb2cedb', ··· 937 937 1 => 'javelin-util', 938 938 2 => 'phabricator-keyboard-shortcut-manager', 939 939 ), 940 - '1b9facd8' => 941 - array( 942 - 0 => 'javelin-behavior', 943 - 1 => 'javelin-dom', 944 - 2 => 'javelin-util', 945 - 3 => 'javelin-stratcom', 946 - 4 => 'javelin-workflow', 947 - 5 => 'phabricator-draggable-list', 948 - ), 949 940 '1e1c8a59' => 950 941 array( 951 942 0 => 'javelin-behavior', ··· 1225 1216 2 => 'javelin-util', 1226 1217 3 => 'phabricator-shaped-request', 1227 1218 ), 1228 - '62e18640' => 1229 - array( 1230 - 0 => 'javelin-install', 1231 - 1 => 'javelin-util', 1232 - 2 => 'javelin-dom', 1233 - 3 => 'javelin-typeahead-normalizer', 1234 - ), 1235 1219 '6453c869' => 1236 1220 array( 1237 1221 0 => 'javelin-install', ··· 1264 1248 array( 1265 1249 0 => 'javelin-behavior', 1266 1250 1 => 'javelin-dom', 1251 + ), 1252 + '62e18640' => 1253 + array( 1254 + 0 => 'javelin-install', 1255 + 1 => 'javelin-util', 1256 + 2 => 'javelin-dom', 1257 + 3 => 'javelin-typeahead-normalizer', 1267 1258 ), 1268 1259 '75903ee1' => 1269 1260 array( ··· 1697 1688 1 => 'javelin-dom', 1698 1689 2 => 'javelin-stratcom', 1699 1690 3 => 'phabricator-phtize', 1691 + ), 1692 + 'cbdc9b22' => 1693 + array( 1694 + 0 => 'javelin-behavior', 1695 + 1 => 'javelin-dom', 1696 + 2 => 'javelin-util', 1697 + 3 => 'javelin-stratcom', 1698 + 4 => 'javelin-workflow', 1699 + 5 => 'phabricator-draggable-list', 1700 1700 ), 1701 1701 'cd9e7094' => 1702 1702 array(
+13 -4
src/applications/diviner/controller/DivinerBookController.php
··· 83 83 } 84 84 85 85 private function buildPropertyList(DivinerLiveBook $book) { 86 - $user = $this->getRequest()->getUser(); 86 + $viewer = $this->getRequest()->getUser(); 87 87 $view = id(new PHUIPropertyListView()) 88 - ->setUser($user); 88 + ->setUser($viewer); 89 89 90 90 $policies = PhabricatorPolicyQuery::renderPolicyDescriptions( 91 - $user, 91 + $viewer, 92 92 $book); 93 93 94 94 $view->addProperty( 95 95 pht('Updated'), 96 - phabricator_datetime($book->getDateModified(), $user)); 96 + phabricator_datetime($book->getDateModified(), $viewer)); 97 + 98 + $preface = $book->getPreface(); 99 + if (strlen($preface)) { 100 + $view->addTextContent( 101 + PhabricatorMarkupEngine::renderOneObject( 102 + id(new PhabricatorMarkupOneOff())->setContent($preface), 103 + 'default', 104 + $viewer)); 105 + } 97 106 98 107 return $view; 99 108 }
+4
src/applications/diviner/storage/DivinerLiveBook.php
··· 38 38 return $this->getConfig('short', $this->getTitle()); 39 39 } 40 40 41 + public function getPreface() { 42 + return $this->getConfig('preface'); 43 + } 44 + 41 45 public function getGroupName($group) { 42 46 $groups = $this->getConfig('groups'); 43 47 $spec = idx($groups, $group, array());
+1
src/applications/diviner/workflow/DivinerWorkflow.php
··· 37 37 'name' => 'string', 38 38 'title' => 'optional string', 39 39 'short' => 'optional string', 40 + 'preface' => 'optional string', 40 41 'root' => 'optional string', 41 42 'uri.source' => 'optional string', 42 43 'rules' => 'optional map<regex, string>',
+1
src/docs/book/phabricator.book
··· 2 2 "name" : "phabdev", 3 3 "title" : "Phabricator Technical Documentation", 4 4 "short" : "Phabricator Tech Docs", 5 + "preface" : "Technical documentation intended for Phabricator developers.", 5 6 "root" : "../../../", 6 7 "uri.source" : 7 8 "https://secure.phabricator.com/diffusion/P/browse/master/%f$%l",
+1
src/docs/book/user.book
··· 2 2 "name" : "phabricator", 3 3 "title" : "Phabricator User Documentation", 4 4 "short" : "Phabricator User Docs", 5 + "preface" : "Instructions for installing, configuring, and using Phabricator.", 5 6 "root" : "../../../", 6 7 "uri.source" : 7 8 "https://secure.phabricator.com/diffusion/P/browse/master/%f$%l",