Remove all "FileHasObject" edge reads and writes
[phabricator.git] / src / applications / phortune / controller / account / PhortuneAccountProfileController.php
blob212dfcd5a7cd58b4a9e25e5ba45f464a8b7fcac2
1 <?php
3 abstract class PhortuneAccountProfileController
4 extends PhortuneAccountController {
6 protected function buildHeaderView() {
7 $viewer = $this->getViewer();
8 $account = $this->getAccount();
9 $title = $account->getName();
11 $header = id(new PHUIHeaderView())
12 ->setUser($viewer)
13 ->setHeader($title)
14 ->setHeaderIcon('fa-user-circle');
16 if ($this->getMerchants()) {
17 $customer_tag = id(new PHUITagView())
18 ->setType(PHUITagView::TYPE_SHADE)
19 ->setName(pht('Customer Account'))
20 ->setColor('indigo')
21 ->setIcon('fa-credit-card');
22 $header->addTag($customer_tag);
25 return $header;
28 protected function buildSideNavView($filter = null) {
29 $viewer = $this->getViewer();
30 $account = $this->getAccount();
31 $id = $account->getID();
33 $can_edit = !$this->getMerchants();
35 $nav = id(new AphrontSideNavFilterView())
36 ->setBaseURI(new PhutilURI($this->getApplicationURI()));
38 $nav->addLabel(pht('Account'));
40 $nav->addFilter(
41 'overview',
42 pht('Overview'),
43 $account->getURI(),
44 'fa-user-circle');
46 $nav->newLink('details')
47 ->setName(pht('Account Details'))
48 ->setHref($this->getApplicationURI("/account/{$id}/details/"))
49 ->setIcon('fa-address-card-o')
50 ->setWorkflow(!$can_edit)
51 ->setDisabled(!$can_edit);
53 $nav->addLabel(pht('Payments'));
55 $nav->addFilter(
56 'methods',
57 pht('Payment Methods'),
58 $account->getPaymentMethodsURI(),
59 'fa-credit-card');
61 $nav->addFilter(
62 'subscriptions',
63 pht('Subscriptions'),
64 $account->getSubscriptionsURI(),
65 'fa-retweet');
67 $nav->addFilter(
68 'orders',
69 pht('Orders'),
70 $account->getOrdersURI(),
71 'fa-shopping-bag');
73 $nav->addFilter(
74 'charges',
75 pht('Charges'),
76 $account->getChargesURI(),
77 'fa-calculator');
79 $nav->addLabel(pht('Personnel'));
81 $nav->addFilter(
82 'managers',
83 pht('Account Managers'),
84 $this->getApplicationURI("/account/{$id}/managers/"),
85 'fa-group');
87 $nav->newLink('addresses')
88 ->setname(pht('Email Addresses'))
89 ->setHref($account->getEmailAddressesURI())
90 ->setIcon('fa-envelope-o')
91 ->setWorkflow(!$can_edit)
92 ->setDisabled(!$can_edit);
94 $nav->selectFilter($filter);
96 return $nav;
99 final protected function newRecentOrdersView(
100 PhortuneAccount $account,
101 $limit) {
103 $viewer = $this->getViewer();
105 $carts = id(new PhortuneCartQuery())
106 ->setViewer($viewer)
107 ->withAccountPHIDs(array($account->getPHID()))
108 ->needPurchases(true)
109 ->withStatuses(
110 array(
111 PhortuneCart::STATUS_PURCHASING,
112 PhortuneCart::STATUS_CHARGED,
113 PhortuneCart::STATUS_HOLD,
114 PhortuneCart::STATUS_REVIEW,
115 PhortuneCart::STATUS_PURCHASED,
117 ->setLimit($limit)
118 ->execute();
120 $orders_uri = $account->getOrderListURI();
122 $table = id(new PhortuneOrderTableView())
123 ->setUser($viewer)
124 ->setCarts($carts);
126 $header = id(new PHUIHeaderView())
127 ->setHeader(pht('Recent Orders'))
128 ->addActionLink(
129 id(new PHUIButtonView())
130 ->setTag('a')
131 ->setIcon('fa-list')
132 ->setHref($orders_uri)
133 ->setText(pht('View All Orders')));
135 return id(new PHUIObjectBoxView())
136 ->setHeader($header)
137 ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
138 ->setTable($table);