Esempio n. 1
0
 protected function addMerchantCrumb($crumbs, PhortuneMerchant $merchant, $link = true)
 {
     $name = $merchant->getName();
     $href = null;
     $crumbs->addTextCrumb(pht('Merchants'), $this->getApplicationURI('merchant/'));
     if ($link) {
         $href = $this->getApplicationURI('merchant/' . $merchant->getID() . '/');
         $crumbs->addTextCrumb($name, $href);
     } else {
         $crumbs->addTextCrumb($name);
     }
 }
 private function buildProviderList(PhortuneMerchant $merchant, array $providers)
 {
     $viewer = $this->getRequest()->getUser();
     $id = $merchant->getID();
     $can_edit = PhabricatorPolicyFilter::hasCapability($viewer, $merchant, PhabricatorPolicyCapability::CAN_EDIT);
     $provider_list = id(new PHUIObjectItemListView())->setFlush(true)->setNoDataString(pht('This merchant has no payment providers.'));
     foreach ($providers as $provider_config) {
         $provider = $provider_config->buildProvider();
         $provider_id = $provider_config->getID();
         $item = id(new PHUIObjectItemView())->setHeader($provider->getName());
         if ($provider->isEnabled()) {
             if ($provider->isAcceptingLivePayments()) {
                 $item->setStatusIcon('fa-check green');
             } else {
                 $item->setStatusIcon('fa-warning yellow');
                 $item->addIcon('fa-exclamation-triangle', pht('Test Mode'));
             }
             $item->addAttribute($provider->getConfigureProvidesDescription());
         } else {
             // Don't show disabled providers to users who can't manage the merchant
             // account.
             if (!$can_edit) {
                 continue;
             }
             $item->setDisabled(true);
             $item->addAttribute(phutil_tag('em', array(), pht('This payment provider is disabled.')));
         }
         if ($can_edit) {
             $edit_uri = $this->getApplicationURI("/provider/edit/{$provider_id}/");
             $disable_uri = $this->getApplicationURI("/provider/disable/{$provider_id}/");
             if ($provider->isEnabled()) {
                 $disable_icon = 'fa-times';
                 $disable_name = pht('Disable');
             } else {
                 $disable_icon = 'fa-check';
                 $disable_name = pht('Enable');
             }
             $item->addAction(id(new PHUIListItemView())->setIcon($disable_icon)->setHref($disable_uri)->setName($disable_name)->setWorkflow(true));
             $item->addAction(id(new PHUIListItemView())->setIcon('fa-pencil')->setHref($edit_uri)->setName(pht('Edit')));
         }
         $provider_list->addItem($item);
     }
     $add_action = id(new PHUIButtonView())->setTag('a')->setHref($this->getApplicationURI('provider/edit/?merchantID=' . $id))->setText(pht('Add Payment Provider'))->setDisabled(!$can_edit)->setWorkflow(!$can_edit)->setIcon('fa-plus');
     $header = id(new PHUIHeaderView())->setHeader(pht('Payment Providers'))->addActionLink($add_action);
     return id(new PHUIObjectBoxView())->setHeader($header)->setObjectList($provider_list);
 }
Esempio n. 3
0
 public function getDetailURI(PhortuneMerchant $authority = null)
 {
     if ($authority) {
         $prefix = 'merchant/' . $authority->getID() . '/';
     } else {
         $prefix = '';
     }
     return '/phortune/' . $prefix . 'cart/' . $this->getID() . '/';
 }
 private function processChooseClassRequest(AphrontRequest $request, PhortuneMerchant $merchant, array $current_map)
 {
     $viewer = $request->getUser();
     $providers = PhortunePaymentProvider::getAllProviders();
     $v_class = null;
     $errors = array();
     if ($request->isFormPost()) {
         $v_class = $request->getStr('class');
         if (!isset($providers[$v_class])) {
             $errors[] = pht('You must select a valid provider type.');
         }
     }
     $merchant_id = $merchant->getID();
     $cancel_uri = $this->getApplicationURI("merchant/{$merchant_id}/");
     if (!$v_class) {
         $v_class = key($providers);
     }
     $panel_classes = id(new AphrontFormRadioButtonControl())->setName('class')->setValue($v_class);
     $providers = msort($providers, 'getConfigureName');
     foreach ($providers as $class => $provider) {
         $disabled = isset($current_map[$class]);
         if ($disabled) {
             $description = phutil_tag('em', array(), pht('This merchant already has a payment account configured ' . 'with this provider.'));
         } else {
             $description = $provider->getConfigureDescription();
         }
         $panel_classes->addButton($class, $provider->getConfigureName(), $description, null, $disabled);
     }
     $form = id(new AphrontFormView())->setUser($viewer)->addHiddenInput('merchantID', $merchant->getID())->appendRemarkupInstructions(pht('Choose the type of payment provider to add:'))->appendChild($panel_classes)->appendChild(id(new AphrontFormSubmitControl())->setValue(pht('Continue'))->addCancelButton($cancel_uri));
     $title = pht('Add Payment Provider');
     $crumbs = $this->buildApplicationCrumbs();
     $crumbs->addTextCrumb($merchant->getName(), $cancel_uri);
     $crumbs->addTextCrumb($title);
     $box = id(new PHUIObjectBoxView())->setHeaderText($title)->setFormErrors($errors)->setForm($form);
     return $this->buildApplicationPage(array($crumbs, $box), array('title' => $title));
 }