Page MenuHomePhabricator

D10660.diff
No OneTemporary

D10660.diff

diff --git a/resources/sql/autopatches/20141007.fundrisks.sql b/resources/sql/autopatches/20141007.fundrisks.sql
new file mode 100644
--- /dev/null
+++ b/resources/sql/autopatches/20141007.fundrisks.sql
@@ -0,0 +1,2 @@
+ALTER TABLE {$NAMESPACE}_fund.fund_initiative
+ ADD risks LONGTEXT NOT NULL COLLATE utf8_bin;
diff --git a/src/applications/fund/controller/FundInitiativeBackController.php b/src/applications/fund/controller/FundInitiativeBackController.php
--- a/src/applications/fund/controller/FundInitiativeBackController.php
+++ b/src/applications/fund/controller/FundInitiativeBackController.php
@@ -118,7 +118,8 @@
->setError($e_amount));
return $this->newDialog()
- ->setTitle(pht('Back Initiative'))
+ ->setTitle(
+ pht('Back %s %s', $initiative->getMonogram(), $initiative->getName()))
->setErrors($errors)
->appendChild($form->buildLayoutView())
->addCancelButton($initiative_uri)
diff --git a/src/applications/fund/controller/FundInitiativeEditController.php b/src/applications/fund/controller/FundInitiativeEditController.php
--- a/src/applications/fund/controller/FundInitiativeEditController.php
+++ b/src/applications/fund/controller/FundInitiativeEditController.php
@@ -52,6 +52,7 @@
$v_merchant = $initiative->getMerchantPHID();
$v_desc = $initiative->getDescription();
+ $v_risk = $initiative->getRisks();
if ($is_new) {
$v_projects = array();
@@ -66,6 +67,7 @@
if ($request->isFormPost()) {
$v_name = $request->getStr('name');
$v_desc = $request->getStr('description');
+ $v_risk = $request->getStr('risks');
$v_view = $request->getStr('viewPolicy');
$v_edit = $request->getStr('editPolicy');
$v_merchant = $request->getStr('merchantPHID');
@@ -73,6 +75,7 @@
$type_name = FundInitiativeTransaction::TYPE_NAME;
$type_desc = FundInitiativeTransaction::TYPE_DESCRIPTION;
+ $type_risk = FundInitiativeTransaction::TYPE_RISKS;
$type_merchant = FundInitiativeTransaction::TYPE_MERCHANT;
$type_view = PhabricatorTransactions::TYPE_VIEW_POLICY;
$type_edit = PhabricatorTransactions::TYPE_EDIT_POLICY;
@@ -88,6 +91,10 @@
->setNewValue($v_desc);
$xactions[] = id(new FundInitiativeTransaction())
+ ->setTransactionType($type_risk)
+ ->setNewValue($v_risk);
+
+ $xactions[] = id(new FundInitiativeTransaction())
->setTransactionType($type_merchant)
->setNewValue($v_merchant);
@@ -197,6 +204,11 @@
->setLabel(pht('Description'))
->setValue($v_desc))
->appendChild(
+ id(new PhabricatorRemarkupControl())
+ ->setName('risks')
+ ->setLabel(pht('Risks/Challenges'))
+ ->setValue($v_risk))
+ ->appendChild(
id(new AphrontFormTokenizerControl())
->setLabel(pht('Projects'))
->setName('projects')
diff --git a/src/applications/fund/controller/FundInitiativeViewController.php b/src/applications/fund/controller/FundInitiativeViewController.php
--- a/src/applications/fund/controller/FundInitiativeViewController.php
+++ b/src/applications/fund/controller/FundInitiativeViewController.php
@@ -96,7 +96,7 @@
$this->getHandle($owner_phid)->renderLink());
$view->addProperty(
- pht('Payable To Merchant'),
+ pht('Payable to Merchant'),
$this->getHandle($merchant_phid)->renderLink());
$view->addProperty(
@@ -116,6 +116,17 @@
$view->addTextContent($description);
}
+ $risks = $initiative->getRisks();
+ if (strlen($risks)) {
+ $risks = PhabricatorMarkupEngine::renderOneObject(
+ id(new PhabricatorMarkupOneOff())->setContent($risks),
+ 'default',
+ $viewer);
+
+ $view->addSectionHeader(pht('Risks/Challenges'));
+ $view->addTextContent($risks);
+ }
+
return $view;
}
diff --git a/src/applications/fund/editor/FundInitiativeEditor.php b/src/applications/fund/editor/FundInitiativeEditor.php
--- a/src/applications/fund/editor/FundInitiativeEditor.php
+++ b/src/applications/fund/editor/FundInitiativeEditor.php
@@ -16,6 +16,7 @@
$types[] = FundInitiativeTransaction::TYPE_NAME;
$types[] = FundInitiativeTransaction::TYPE_DESCRIPTION;
+ $types[] = FundInitiativeTransaction::TYPE_RISKS;
$types[] = FundInitiativeTransaction::TYPE_STATUS;
$types[] = FundInitiativeTransaction::TYPE_BACKER;
$types[] = FundInitiativeTransaction::TYPE_MERCHANT;
@@ -33,6 +34,8 @@
return $object->getName();
case FundInitiativeTransaction::TYPE_DESCRIPTION:
return $object->getDescription();
+ case FundInitiativeTransaction::TYPE_RISKS:
+ return $object->getRisks();
case FundInitiativeTransaction::TYPE_STATUS:
return $object->getStatus();
case FundInitiativeTransaction::TYPE_BACKER:
@@ -51,6 +54,7 @@
switch ($xaction->getTransactionType()) {
case FundInitiativeTransaction::TYPE_NAME:
case FundInitiativeTransaction::TYPE_DESCRIPTION:
+ case FundInitiativeTransaction::TYPE_RISKS:
case FundInitiativeTransaction::TYPE_STATUS:
case FundInitiativeTransaction::TYPE_BACKER:
case FundInitiativeTransaction::TYPE_MERCHANT:
@@ -71,6 +75,9 @@
case FundInitiativeTransaction::TYPE_DESCRIPTION:
$object->setDescription($xaction->getNewValue());
return;
+ case FundInitiativeTransaction::TYPE_RISKS:
+ $object->setRisks($xaction->getNewValue());
+ return;
case FundInitiativeTransaction::TYPE_MERCHANT:
$object->setMerchantPHID($xaction->getNewValue());
return;
@@ -106,6 +113,7 @@
switch ($xaction->getTransactionType()) {
case FundInitiativeTransaction::TYPE_NAME:
case FundInitiativeTransaction::TYPE_DESCRIPTION:
+ case FundInitiativeTransaction::TYPE_RISKS:
case FundInitiativeTransaction::TYPE_STATUS:
case FundInitiativeTransaction::TYPE_MERCHANT:
case FundInitiativeTransaction::TYPE_BACKER:
diff --git a/src/applications/fund/query/FundBackerSearchEngine.php b/src/applications/fund/query/FundBackerSearchEngine.php
--- a/src/applications/fund/query/FundBackerSearchEngine.php
+++ b/src/applications/fund/query/FundBackerSearchEngine.php
@@ -126,29 +126,35 @@
$viewer = $this->requireViewer();
- $list = id(new PHUIObjectItemListView());
+ $rows = array();
foreach ($backers as $backer) {
- $backer_handle = $handles[$backer->getBackerPHID()];
-
- $currency = $backer->getAmountAsCurrency();
-
- $header = pht(
- '%s for %s',
- $currency->formatForDisplay(),
- $handles[$backer->getInitiativePHID()]->renderLink());
-
- $item = id(new PHUIObjectItemView())
- ->setHeader($header)
- ->addIcon(
- 'none',
- phabricator_datetime($backer->getDateCreated(), $viewer))
- ->addByline(pht('Backer: %s', $backer_handle->renderLink()));
-
- $list->addItem($item);
+ $rows[] = array(
+ $handles[$backer->getInitiativePHID()]->renderLink(),
+ $handles[$backer->getBackerPHID()]->renderLink(),
+ $backer->getAmountAsCurrency()->formatForDisplay(),
+ phabricator_datetime($backer->getDateCreated(), $viewer),
+ );
}
+ $table = id(new AphrontTableView($rows))
+ ->setHeaders(
+ array(
+ pht('Initiative'),
+ pht('Backer'),
+ pht('Amount'),
+ pht('Date'),
+ ))
+ ->setColumnClasses(
+ array(
+ null,
+ null,
+ 'wide right',
+ 'right',
+ ));
- return $list;
+ return id(new PHUIObjectBoxView())
+ ->setHeaderText(pht('Backers'))
+ ->appendChild($table);
}
}
diff --git a/src/applications/fund/storage/FundInitiative.php b/src/applications/fund/storage/FundInitiative.php
--- a/src/applications/fund/storage/FundInitiative.php
+++ b/src/applications/fund/storage/FundInitiative.php
@@ -15,6 +15,7 @@
protected $ownerPHID;
protected $merchantPHID;
protected $description;
+ protected $risks;
protected $viewPolicy;
protected $editPolicy;
protected $status;
diff --git a/src/applications/fund/storage/FundInitiativeTransaction.php b/src/applications/fund/storage/FundInitiativeTransaction.php
--- a/src/applications/fund/storage/FundInitiativeTransaction.php
+++ b/src/applications/fund/storage/FundInitiativeTransaction.php
@@ -5,6 +5,7 @@
const TYPE_NAME = 'fund:name';
const TYPE_DESCRIPTION = 'fund:description';
+ const TYPE_RISKS = 'fund:risks';
const TYPE_STATUS = 'fund:status';
const TYPE_BACKER = 'fund:backer';
const TYPE_MERCHANT = 'fund:merchant';
@@ -64,6 +65,10 @@
$new);
}
break;
+ case FundInitiativeTransaction::TYPE_RISKS:
+ return pht(
+ '%s edited the risks for this initiative.',
+ $this->renderHandleLink($author_phid));
case FundInitiativeTransaction::TYPE_DESCRIPTION:
return pht(
'%s edited the description of this initiative.',
@@ -159,6 +164,7 @@
$old = $this->getOldValue();
switch ($this->getTransactionType()) {
case FundInitiativeTransaction::TYPE_DESCRIPTION:
+ case FundInitiativeTransaction::TYPE_RISKS:
return ($old === null);
}
return parent::shouldHide();
@@ -167,6 +173,7 @@
public function hasChangeDetails() {
switch ($this->getTransactionType()) {
case FundInitiativeTransaction::TYPE_DESCRIPTION:
+ case FundInitiativeTransaction::TYPE_RISKS:
return ($this->getOldValue() !== null);
}

File Metadata

Mime Type
text/plain
Expires
Thu, Mar 20, 4:54 AM (3 w, 6 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7385367
Default Alt Text
D10660.diff (9 KB)

Event Timeline