@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.

Update Macro comment form

Summary: Moves over to transaction commenting.

Test Plan: Leave a comment (tested with TYPE_COMMENT still present).

Reviewers: epriestley

Reviewed By: epriestley

Subscribers: Korvin

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

+13 -83
-2
src/__phutil_library_map__.php
··· 2975 2975 'PhabricatorMacroAudioBehaviorTransaction' => 'applications/macro/xaction/PhabricatorMacroAudioBehaviorTransaction.php', 2976 2976 'PhabricatorMacroAudioController' => 'applications/macro/controller/PhabricatorMacroAudioController.php', 2977 2977 'PhabricatorMacroAudioTransaction' => 'applications/macro/xaction/PhabricatorMacroAudioTransaction.php', 2978 - 'PhabricatorMacroCommentController' => 'applications/macro/controller/PhabricatorMacroCommentController.php', 2979 2978 'PhabricatorMacroConfigOptions' => 'applications/macro/config/PhabricatorMacroConfigOptions.php', 2980 2979 'PhabricatorMacroController' => 'applications/macro/controller/PhabricatorMacroController.php', 2981 2980 'PhabricatorMacroDatasource' => 'applications/macro/typeahead/PhabricatorMacroDatasource.php', ··· 8190 8189 'PhabricatorMacroAudioBehaviorTransaction' => 'PhabricatorMacroTransactionType', 8191 8190 'PhabricatorMacroAudioController' => 'PhabricatorMacroController', 8192 8191 'PhabricatorMacroAudioTransaction' => 'PhabricatorMacroTransactionType', 8193 - 'PhabricatorMacroCommentController' => 'PhabricatorMacroController', 8194 8192 'PhabricatorMacroConfigOptions' => 'PhabricatorApplicationConfigOptions', 8195 8193 'PhabricatorMacroController' => 'PhabricatorController', 8196 8194 'PhabricatorMacroDatasource' => 'PhabricatorTypeaheadDatasource',
-1
src/applications/macro/application/PhabricatorMacroApplication.php
··· 32 32 '(query/(?P<key>[^/]+)/)?' => 'PhabricatorMacroListController', 33 33 'create/' => 'PhabricatorMacroEditController', 34 34 'view/(?P<id>[1-9]\d*)/' => 'PhabricatorMacroViewController', 35 - 'comment/(?P<id>[1-9]\d*)/' => 'PhabricatorMacroCommentController', 36 35 $this->getEditRoutePattern('edit/') 37 36 => 'PhabricatorMacroEditController', 38 37 'audio/(?P<id>[1-9]\d*)/' => 'PhabricatorMacroAudioController',
-63
src/applications/macro/controller/PhabricatorMacroCommentController.php
··· 1 - <?php 2 - 3 - final class PhabricatorMacroCommentController 4 - extends PhabricatorMacroController { 5 - 6 - public function handleRequest(AphrontRequest $request) { 7 - $viewer = $request->getViewer(); 8 - $id = $request->getURIData('id'); 9 - 10 - if (!$request->isFormPost()) { 11 - return new Aphront400Response(); 12 - } 13 - 14 - $macro = id(new PhabricatorMacroQuery()) 15 - ->setViewer($viewer) 16 - ->withIDs(array($id)) 17 - ->executeOne(); 18 - if (!$macro) { 19 - return new Aphront404Response(); 20 - } 21 - 22 - $is_preview = $request->isPreviewRequest(); 23 - $draft = PhabricatorDraft::buildFromRequest($request); 24 - 25 - $view_uri = $this->getApplicationURI('/view/'.$macro->getID().'/'); 26 - 27 - $xactions = array(); 28 - $xactions[] = id(new PhabricatorMacroTransaction()) 29 - ->setTransactionType(PhabricatorTransactions::TYPE_COMMENT) 30 - ->attachComment( 31 - id(new PhabricatorMacroTransactionComment()) 32 - ->setContent($request->getStr('comment'))); 33 - 34 - $editor = id(new PhabricatorMacroEditor()) 35 - ->setActor($viewer) 36 - ->setContinueOnNoEffect($request->isContinueRequest()) 37 - ->setContentSourceFromRequest($request) 38 - ->setIsPreview($is_preview); 39 - 40 - try { 41 - $xactions = $editor->applyTransactions($macro, $xactions); 42 - } catch (PhabricatorApplicationTransactionNoEffectException $ex) { 43 - return id(new PhabricatorApplicationTransactionNoEffectResponse()) 44 - ->setCancelURI($view_uri) 45 - ->setException($ex); 46 - } 47 - 48 - if ($draft) { 49 - $draft->replaceOrDelete(); 50 - } 51 - 52 - if ($request->isAjax() && $is_preview) { 53 - return id(new PhabricatorApplicationTransactionResponse()) 54 - ->setViewer($viewer) 55 - ->setTransactions($xactions) 56 - ->setIsPreview($is_preview); 57 - } else { 58 - return id(new AphrontRedirectResponse()) 59 - ->setURI($view_uri); 60 - } 61 - } 62 - 63 - }
+13 -17
src/applications/macro/controller/PhabricatorMacroViewController.php
··· 36 36 $macro, 37 37 new PhabricatorMacroTransactionQuery()); 38 38 39 + $comment_form = $this->buildCommentForm($macro, $timeline); 40 + 39 41 $header = id(new PHUIHeaderView()) 40 42 ->setUser($viewer) 41 43 ->setPolicyObject($macro) ··· 48 50 $header->setStatus('fa-ban', 'indigo', pht('Archived')); 49 51 } 50 52 51 - $is_serious = PhabricatorEnv::getEnvConfig('phabricator.serious-business'); 52 - 53 - $comment_header = $is_serious 54 - ? pht('Add Comment') 55 - : pht('Grovel in Awe'); 56 - 57 - $draft = PhabricatorDraft::newFromUserAndKey($viewer, $macro->getPHID()); 58 - 59 - $add_comment_form = id(new PhabricatorApplicationTransactionCommentView()) 60 - ->setUser($viewer) 61 - ->setObjectPHID($macro->getPHID()) 62 - ->setDraft($draft) 63 - ->setHeaderText($comment_header) 64 - ->setAction($this->getApplicationURI('/comment/'.$macro->getID().'/')) 65 - ->setSubmitButtonName(pht('Add Comment')); 66 - 67 53 $view = id(new PHUITwoColumnView()) 68 54 ->setHeader($header) 69 55 ->setSubheader($subheader) 70 56 ->setCurtain($curtain) 71 57 ->setMainColumn(array( 72 58 $timeline, 73 - $add_comment_form, 59 + $comment_form, 74 60 )) 75 61 ->addPropertySection(pht('Macro'), $file) 76 62 ->addPropertySection(pht('Details'), $details); ··· 80 66 ->setCrumbs($crumbs) 81 67 ->setPageObjectPHIDs(array($macro->getPHID())) 82 68 ->appendChild($view); 69 + } 70 + 71 + private function buildCommentForm( 72 + PhabricatorFileImageMacro $macro, $timeline) { 73 + $viewer = $this->getViewer(); 74 + 75 + return id(new PhabricatorMacroEditEngine()) 76 + ->setViewer($viewer) 77 + ->buildEditEngineCommentView($macro) 78 + ->setTransactionTimeline($timeline); 83 79 } 84 80 85 81 private function buildCurtain(