Merge pull request #5514 from cmgustavo/ref/amazon-gift-cards-01

Refactor Amazon integration. Clear amount/confirm views
This commit is contained in:
Matias Alejo Garcia 2017-01-26 10:33:49 -03:00 committed by GitHub
commit 54ef068968
17 changed files with 721 additions and 329 deletions

View file

@ -11,14 +11,15 @@
Sandbox version. Only for testing purpose
</div>
<div class="m20t text-center" ng-click="updatePendingGiftCards()">
<div class="m20t text-center">
<img src="img/GCs-logo-cllb.png" alt="Amazon.com Gift Card" width="200">
<div class="size-12 m10t"><b>Only</b> redeemable on www.amazon.com (USA website)</div>
</div>
<div ng-if="!giftCards" class="m20t padding text-center">
<button class="button button-standard button-primary" ui-sref="tabs.giftcards.amazon.amount">
<button class="button button-standard button-primary"
ui-sref="tabs.giftcards.amazon.amount">
Buy now
</button>
@ -29,13 +30,20 @@
</div>
<div class="m20t" ng-if="giftCards">
<div class="card list">
<div class="list card">
<a class="item item-icon-left item-icon-right" href
ui-sref="tabs.giftcards.amazon.amount">
<i class="icon ion-bag"></i>
<i class="icon ion-ios-pricetags-outline"></i>
Buy Gift Card
<i class="icon bp-arrow-right"></i>
</a>
<a class="item item-icon-right item-icon-left"
ui-sref="tabs.giftcards.amazon.cards">
<i class="icon ion-ios-folder-outline"></i>
Your cards
<i class="icon bp-arrow-right"></i>
</a>
</div>
<div class="size-12 p15h">
@ -49,29 +57,6 @@
of <a ng-click="openExternalLink('http://amazon.com')">Amazon.com</a>, Inc. or its affiliates.
No expiration date or service fees.
</div>
<div class="card">
<div class="item item-heading">
Your cards
</div>
<div ng-repeat="(id, item) in giftCards | orderObjectBy:'date':true track by $index"
ng-click="openCardModal(item)"
class="item item-avatar">
<img src="img/a-smile_color_btn.png" alt="{{id}}" width="40">
<h2 ng-if="item.claimCode">
{{item.amount | currency : '$ ' : 2}}
</h2>
<h2 ng-if="!item.claimCode">
-
</h2>
<p>
<span class="text-warning" ng-if="item.status == 'FAILURE' || item.status == 'RESEND'">Error</span>
<span class="text-gray" ng-if="item.status == 'PENDING'">Pending to confirmation</span>
<span class="text-gray" ng-if="item.status == 'SUCCESS' && item.cardStatus == 'Canceled'">Canceled</span>
<span class="text-gray" ng-if="item.status == 'SUCCESS' && item.cardStatus == 'Fulfilled'">{{item.date | amTimeAgo}}</span>
</p>
</div>
</div>
</div>
</ion-content>
</ion-view>

View file

@ -0,0 +1,43 @@
<ion-view>
<ion-nav-bar class="bar-royal">
<ion-nav-back-button>
</ion-nav-back-button>
<ion-nav-title>Your cards</ion-nav-title>
</ion-nav-bar>
<ion-content>
<div class="list card">
<div ng-repeat="(id, item) in giftCards | orderObjectBy:'date':true track by $index"
ng-click="openCardModal(item)"
class="item item-avatar"
ng-hide="hideCards">
<img src="img/a-smile_color_btn.png" alt="{{id}}" width="40">
<ion-spinner class="spinner-dark recent right m10 size-16" icon="crescent" ng-show="updatingPending[item.invoiceId]">
</ion-spinner>
<h2>
<span ng-if="item.claimCode">{{item.amount | currency : '$ ' : 2}} {{item.currency}}</span>
<span ng-if="!item.claimCode">-</span>
</h2>
<p>
<span class="assertive" ng-if="item.status == 'FAILURE' || item.status == 'RESEND'">Error</span>
<span class="assertive" ng-if="item.status == 'expired'">Expired</span>
<span class="text-gray" ng-if="item.status == 'PENDING'">Pending to confirmation</span>
<span class="assertive" ng-if="item.status == 'SUCCESS' && item.cardStatus == 'Canceled'">Canceled</span>
<span class="text-gray" ng-if="item.status == 'SUCCESS' && item.cardStatus == 'Fulfilled'">{{item.date | amTimeAgo}}</span>
</p>
</div>
</div>
<div class="size-12 p15h">
* <a ng-click="openExternalLink('http://amazon.com')">Amazon.com</a> is not a sponsor of this promotion.
Except as required by law, <a ng-click="openExternalLink('http://amazon.com')">Amazon.com</a>
Gift Cards ("GCs") cannot be transferred for value or redeemed for cash. GCs may be used only for purchases of
eligible goods at <a ng-click="openExternalLink('http://amazon.com')">Amazon.com</a> or certain of its
affiliated websites. For complete terms and conditions, see
<a ng-click="openExternalLink('https://www.amazon.com/gc-legal')">www.amazon.com/gc-legal</a>.
GCs are issued by ACI Gift Cards, Inc., a Washington corporation. All Amazon &reg;, &trade; &amp; &copy; are IP
of <a ng-click="openExternalLink('http://amazon.com')">Amazon.com</a>, Inc. or its affiliates.
No expiration date or service fees.
</div>
</ion-content>
</ion-view>

View file

@ -21,7 +21,7 @@
<i class="icon big-icon-svg" ng-if="isWallet">
<img src="img/icon-wallet.svg" ng-style="{'background-color': toColor}" class="bg"/>
</i>
<span ng-if="!isWallet && !isGiftCard">
<span ng-if="!isWallet">
<i class="icon big-icon-svg" ng-if="isChromeApp">
<img src="img/contact-placeholder.svg" class="bg"/>
</i>
@ -30,11 +30,6 @@
<div class="bg icon-bitpay-card"></div>
</i>
</span>
<span ng-if="isGiftCard">
<i class="icon big-icon-svg">
<div class="bg icon-amazon"></div>
</i>
</span>
<span class="m10l">{{toName || toAddress}}</span>
</div>
</div>
@ -45,7 +40,6 @@
<div class="amount-bar oh">
<div class="title">
<span translate>Amount</span>
<div class="size-12" ng-show="isGiftCard">Purchase Amount is limited to USD 1000 per day</div>
<div class="size-12" ng-if="cardId" ng-init="getRates()">{{exchangeRate}}</div>
<div ng-show="isGlidera">
<div class="limits" ng-show="limits && isGlidera == 'buy'">

100
www/views/buyAmazon.html Normal file
View file

@ -0,0 +1,100 @@
<ion-view id="amazon" hide-tabs>
<ion-nav-bar class="bar-royal">
<ion-nav-back-button>
</ion-nav-back-button>
<ion-nav-title>Buy</ion-nav-title>
</ion-nav-bar>
<ion-content class="add-bottom-for-cta">
<!-- BUY -->
<div class="list">
<div class="item head">
<div class="sending-label">
<i class="icon big-icon-svg">
<div class="bg icon-amazon"></div>
</i>
<span>Amazon.com Gift Card</span>
</div>
<div class="amount-label">
<div class="amount">{{amountUnitStr}}</div>
<div class="alternative">
Purchase Amount is limited to USD 1000 per day
</div>
</div>
</div>
<div class="info">
<div class="item item-icon-right" ng-click="showWalletSelector()">
<div class="label">From</div>
<div class="wallet">
<i class="icon big-icon-svg">
<img src="img/icon-wallet.svg" ng-style="{'background-color': wallet.color}" class="bg">
</i>
{{wallet ? wallet.name : '...'}}
</div>
<i class="icon bp-arrow-right"></i>
</div>
<div class="item item-divider"></div>
<div class="item size-12">
* <a ng-click="openExternalLink('http://amazon.com')">Amazon.com</a> is not a sponsor of this promotion.
Except as required by law, <a ng-click="openExternalLink('http://amazon.com')">Amazon.com</a>
Gift Cards ("GCs") cannot be transferred for value or redeemed for cash. GCs may be used only for purchases of
eligible goods at <a ng-click="openExternalLink('http://amazon.com')">Amazon.com</a> or certain of its
affiliated websites. For complete terms and conditions, see
<a ng-click="openExternalLink('https://www.amazon.com/gc-legal')">www.amazon.com/gc-legal</a>.
GCs are issued by ACI Gift Cards, Inc., a Washington corporation. All Amazon &reg;, &trade; &amp; &copy; are IP
of <a ng-click="openExternalLink('http://amazon.com')">Amazon.com</a>, Inc. or its affiliates.
No expiration date or service fees.
</div>
</div>
</div>
</ion-content>
<click-to-accept
ng-disabled="!wallet"
ng-click="buyConfirm()"
ng-if="!isCordova"
click-send-status="sendStatus"
has-wallet-chosen="wallet"
insufficient-funds="false"
no-matching-wallet="false">
Confirm purchase
</click-to-accept>
<slide-to-accept
ng-disabled="!wallet"
ng-if="isCordova"
slide-on-confirm="buyConfirm()"
slide-send-status="sendStatus"
has-wallet-chosen="wallet"
insufficient-funds="false"
no-matching-wallet="false">
Slide to buy
</slide-to-accept>
<slide-to-accept-success
slide-success-show="sendStatus === 'success'"
slide-success-on-confirm="goBackHome()"
slide-success-hide-on-confirm="true">
<span ng-show="amazonGiftCard.status == 'FAILURE'">
Your purchase could not be completed
</span>
<span ng-show="amazonGiftCard.status == 'PENDING'">
Your purchase was added to the list of pending
</span>
<span ng-show="amazonGiftCard.status == 'SUCCESS'">
Bought {{amazonGiftCard.amount}} {{amazonGiftCard.currency}}
</span>
<div class="m10 size-14" ng-show="amazonGiftCard.status == 'SUCCESS'">
Gift card generated and ready to use.
</div>
</slide-to-accept-success>
<wallet-selector
wallet-selector-title="walletSelectorTitle"
wallet-selector-wallets="wallets"
wallet-selector-selected-wallet="wallet"
wallet-selector-show="showWallets"
wallet-selector-on-select="onWalletSelect">
</wallet-selector>
</ion-view>

View file

@ -45,6 +45,9 @@
<span class="text-bold" ng-show="card.status == 'FAILURE' || card.status == 'RESEND'">
FAILURE
</span>
<span class="text-bold" ng-show="card.status == 'expired'">
EXPIRED
</span>
</div>
</div>
<div class="m10t text-center">
@ -96,7 +99,7 @@
<span class="assertive">Cancel</span>
</a>
<a class="item" ng-show="card.status == 'FAILURE' || card.cardStatus == 'Canceled'
|| card.cardStatus == 'Expired'" ng-click="remove()">
|| card.cardStatus == 'Expired' || card.status == 'expired'" ng-click="remove()">
<span class="assertive">Remove</span>
</a>
</div>

View file

@ -168,7 +168,7 @@
<i class="icon big-icon-svg">
<div class="bg icon-amazon"></div>
</i>
<span translate>Buy an Amazon Gift Card</span>
<span translate>Buy a gift card</span>
<i class="icon bp-arrow-right"></i>
</a>
</div>