Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F15409715
D10660.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
9 KB
Referenced Files
None
Subscribers
None
D10660.diff
View Options
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
Details
Attached
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)
Attached To
Mode
D10660: Make Fund backers render a little more nicely
Attached
Detach File
Event Timeline
Log In to Comment