Update Fund for EditEngine commenting
Summary: Ref T12685. Moves Fund to EditEngine commenting. Test Plan: View an old Fund, leave a comment, add a subscriber. Reviewers: epriestley Reviewed By: epriestley Subscribers: Korvin Maniphest Tasks: T12685 Differential Revision: https://secure.phabricator.com/D17857
This commit is contained in:
		@@ -1138,7 +1138,6 @@ phutil_register_library_map(array(
 | 
				
			|||||||
    'FundInitiativeBackController' => 'applications/fund/controller/FundInitiativeBackController.php',
 | 
					    'FundInitiativeBackController' => 'applications/fund/controller/FundInitiativeBackController.php',
 | 
				
			||||||
    'FundInitiativeBackerTransaction' => 'applications/fund/xaction/FundInitiativeBackerTransaction.php',
 | 
					    'FundInitiativeBackerTransaction' => 'applications/fund/xaction/FundInitiativeBackerTransaction.php',
 | 
				
			||||||
    'FundInitiativeCloseController' => 'applications/fund/controller/FundInitiativeCloseController.php',
 | 
					    'FundInitiativeCloseController' => 'applications/fund/controller/FundInitiativeCloseController.php',
 | 
				
			||||||
    'FundInitiativeCommentController' => 'applications/fund/controller/FundInitiativeCommentController.php',
 | 
					 | 
				
			||||||
    'FundInitiativeDescriptionTransaction' => 'applications/fund/xaction/FundInitiativeDescriptionTransaction.php',
 | 
					    'FundInitiativeDescriptionTransaction' => 'applications/fund/xaction/FundInitiativeDescriptionTransaction.php',
 | 
				
			||||||
    'FundInitiativeEditController' => 'applications/fund/controller/FundInitiativeEditController.php',
 | 
					    'FundInitiativeEditController' => 'applications/fund/controller/FundInitiativeEditController.php',
 | 
				
			||||||
    'FundInitiativeEditEngine' => 'applications/fund/editor/FundInitiativeEditEngine.php',
 | 
					    'FundInitiativeEditEngine' => 'applications/fund/editor/FundInitiativeEditEngine.php',
 | 
				
			||||||
@@ -6103,7 +6102,6 @@ phutil_register_library_map(array(
 | 
				
			|||||||
    'FundInitiativeBackController' => 'FundController',
 | 
					    'FundInitiativeBackController' => 'FundController',
 | 
				
			||||||
    'FundInitiativeBackerTransaction' => 'FundInitiativeTransactionType',
 | 
					    'FundInitiativeBackerTransaction' => 'FundInitiativeTransactionType',
 | 
				
			||||||
    'FundInitiativeCloseController' => 'FundController',
 | 
					    'FundInitiativeCloseController' => 'FundController',
 | 
				
			||||||
    'FundInitiativeCommentController' => 'FundController',
 | 
					 | 
				
			||||||
    'FundInitiativeDescriptionTransaction' => 'FundInitiativeTransactionType',
 | 
					    'FundInitiativeDescriptionTransaction' => 'FundInitiativeTransactionType',
 | 
				
			||||||
    'FundInitiativeEditController' => 'FundController',
 | 
					    'FundInitiativeEditController' => 'FundController',
 | 
				
			||||||
    'FundInitiativeEditEngine' => 'PhabricatorEditEngine',
 | 
					    'FundInitiativeEditEngine' => 'PhabricatorEditEngine',
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -42,7 +42,6 @@ final class PhabricatorFundApplication extends PhabricatorApplication {
 | 
				
			|||||||
      '/fund/' => array(
 | 
					      '/fund/' => array(
 | 
				
			||||||
        '(?:query/(?P<queryKey>[^/]+)/)?' => 'FundInitiativeListController',
 | 
					        '(?:query/(?P<queryKey>[^/]+)/)?' => 'FundInitiativeListController',
 | 
				
			||||||
        'create/' => 'FundInitiativeEditController',
 | 
					        'create/' => 'FundInitiativeEditController',
 | 
				
			||||||
        'comment/(?P<id>[1-9]\d*)/' => 'FundInitiativeCommentController',
 | 
					 | 
				
			||||||
        $this->getEditRoutePattern('edit/')
 | 
					        $this->getEditRoutePattern('edit/')
 | 
				
			||||||
          => 'FundInitiativeEditController',
 | 
					          => 'FundInitiativeEditController',
 | 
				
			||||||
        'close/(?P<id>\d+)/' => 'FundInitiativeCloseController',
 | 
					        'close/(?P<id>\d+)/' => 'FundInitiativeCloseController',
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,63 +0,0 @@
 | 
				
			|||||||
<?php
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
final class FundInitiativeCommentController
 | 
					 | 
				
			||||||
  extends FundController {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  public function handleRequest(AphrontRequest $request) {
 | 
					 | 
				
			||||||
    $viewer = $request->getViewer();
 | 
					 | 
				
			||||||
    $id = $request->getURIData('id');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (!$request->isFormPost()) {
 | 
					 | 
				
			||||||
      return new Aphront400Response();
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    $initiative = id(new FundInitiativeQuery())
 | 
					 | 
				
			||||||
      ->setViewer($viewer)
 | 
					 | 
				
			||||||
      ->withIDs(array($id))
 | 
					 | 
				
			||||||
      ->executeOne();
 | 
					 | 
				
			||||||
    if (!$initiative) {
 | 
					 | 
				
			||||||
      return new Aphront404Response();
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    $is_preview = $request->isPreviewRequest();
 | 
					 | 
				
			||||||
    $draft = PhabricatorDraft::buildFromRequest($request);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    $view_uri = '/'.$initiative->getMonogram();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    $xactions = array();
 | 
					 | 
				
			||||||
    $xactions[] = id(new FundInitiativeTransaction())
 | 
					 | 
				
			||||||
      ->setTransactionType(PhabricatorTransactions::TYPE_COMMENT)
 | 
					 | 
				
			||||||
      ->attachComment(
 | 
					 | 
				
			||||||
        id(new FundInitiativeTransactionComment())
 | 
					 | 
				
			||||||
          ->setContent($request->getStr('comment')));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    $editor = id(new FundInitiativeEditor())
 | 
					 | 
				
			||||||
      ->setActor($viewer)
 | 
					 | 
				
			||||||
      ->setContinueOnNoEffect($request->isContinueRequest())
 | 
					 | 
				
			||||||
      ->setContentSourceFromRequest($request)
 | 
					 | 
				
			||||||
      ->setIsPreview($is_preview);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    try {
 | 
					 | 
				
			||||||
      $xactions = $editor->applyTransactions($initiative, $xactions);
 | 
					 | 
				
			||||||
    } catch (PhabricatorApplicationTransactionNoEffectException $ex) {
 | 
					 | 
				
			||||||
      return id(new PhabricatorApplicationTransactionNoEffectResponse())
 | 
					 | 
				
			||||||
        ->setCancelURI($view_uri)
 | 
					 | 
				
			||||||
        ->setException($ex);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if ($draft) {
 | 
					 | 
				
			||||||
      $draft->replaceOrDelete();
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if ($request->isAjax() && $is_preview) {
 | 
					 | 
				
			||||||
      return id(new PhabricatorApplicationTransactionResponse())
 | 
					 | 
				
			||||||
        ->setViewer($viewer)
 | 
					 | 
				
			||||||
        ->setTransactions($xactions)
 | 
					 | 
				
			||||||
        ->setIsPreview($is_preview);
 | 
					 | 
				
			||||||
    } else {
 | 
					 | 
				
			||||||
      return id(new AphrontRedirectResponse())
 | 
					 | 
				
			||||||
        ->setURI($view_uri);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -52,15 +52,16 @@ final class FundInitiativeViewController
 | 
				
			|||||||
    $timeline = $this->buildTransactionTimeline(
 | 
					    $timeline = $this->buildTransactionTimeline(
 | 
				
			||||||
      $initiative,
 | 
					      $initiative,
 | 
				
			||||||
      new FundInitiativeTransactionQuery());
 | 
					      new FundInitiativeTransactionQuery());
 | 
				
			||||||
 | 
					    $timeline->setQuoteRef($initiative->getMonogram());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $add_comment = $this->buildCommentForm($initiative);
 | 
					    $comment_view = $this->buildCommentForm($initiative, $timeline);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $view = id(new PHUITwoColumnView())
 | 
					    $view = id(new PHUITwoColumnView())
 | 
				
			||||||
      ->setHeader($header)
 | 
					      ->setHeader($header)
 | 
				
			||||||
      ->setCurtain($curtain)
 | 
					      ->setCurtain($curtain)
 | 
				
			||||||
      ->setMainColumn(array(
 | 
					      ->setMainColumn(array(
 | 
				
			||||||
        $timeline,
 | 
					        $timeline,
 | 
				
			||||||
        $add_comment,
 | 
					        $comment_view,
 | 
				
			||||||
      ))
 | 
					      ))
 | 
				
			||||||
      ->addPropertySection(pht('Details'), $details);
 | 
					      ->addPropertySection(pht('Details'), $details);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -164,26 +165,14 @@ final class FundInitiativeViewController
 | 
				
			|||||||
    return $curtain;
 | 
					    return $curtain;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private function buildCommentForm(FundInitiative $initiative) {
 | 
					  private function buildCommentForm(FundInitiative $initiative, $timeline) {
 | 
				
			||||||
    $viewer = $this->getViewer();
 | 
					    $viewer = $this->getViewer();
 | 
				
			||||||
 | 
					    $box = id(new FundInitiativeEditEngine())
 | 
				
			||||||
 | 
					      ->setViewer($viewer)
 | 
				
			||||||
 | 
					      ->buildEditEngineCommentView($initiative)
 | 
				
			||||||
 | 
					      ->setTransactionTimeline($timeline);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $is_serious = PhabricatorEnv::getEnvConfig('phabricator.serious-business');
 | 
					    return $box;
 | 
				
			||||||
 | 
					 | 
				
			||||||
    $add_comment_header = $is_serious
 | 
					 | 
				
			||||||
      ? pht('Add Comment')
 | 
					 | 
				
			||||||
      : pht('Add Liquidity');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    $draft = PhabricatorDraft::newFromUserAndKey(
 | 
					 | 
				
			||||||
      $viewer, $initiative->getPHID());
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return id(new PhabricatorApplicationTransactionCommentView())
 | 
					 | 
				
			||||||
      ->setUser($viewer)
 | 
					 | 
				
			||||||
      ->setObjectPHID($initiative->getPHID())
 | 
					 | 
				
			||||||
      ->setDraft($draft)
 | 
					 | 
				
			||||||
      ->setHeaderText($add_comment_header)
 | 
					 | 
				
			||||||
      ->setAction(
 | 
					 | 
				
			||||||
        $this->getApplicationURI('/comment/'.$initiative->getID().'/'))
 | 
					 | 
				
			||||||
      ->setSubmitButtonName(pht('Add Comment'));
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -45,7 +45,7 @@ final class FundInitiativeMerchantTransaction
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    return pht(
 | 
					    return pht(
 | 
				
			||||||
      '%s changed the merchant receiving funds from %s '.
 | 
					      '%s changed the merchant receiving funds from %s '.
 | 
				
			||||||
      'initiative from %s to %s.',
 | 
					      'from %s to %s.',
 | 
				
			||||||
      $this->renderAuthor(),
 | 
					      $this->renderAuthor(),
 | 
				
			||||||
      $this->renderObject(),
 | 
					      $this->renderObject(),
 | 
				
			||||||
      $old_merchant,
 | 
					      $old_merchant,
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user