<span ng-show="may_email_receipt()" class="glyphicon glyphicon-envelope" aria-label="[% l('Send Email Receipt') %]"></span>
<span ng-show="!may_email_receipt()" class="glyphicon glyphicon-print" aria-label="[% l('Print Receipt') %]"></span>
<div class="btn-group" uib-dropdown>
- <button ng-click="print_or_email_receipt()" id="quick-button" type="button" ng-disabled="checkouts.length == 0" class="btn btn-default">[% l('Quick Receipt') %]</button>
+ <button ng-click="print_or_email_receipt()" id="quick-button" type="button"
+ ng-disabled="checkouts.length == 0 || (is_emailing_receipt && may_email_receipt())"
+ class="btn btn-default">[% l('Quick Receipt') %]</button>
<button type="button" ng-disabled="checkouts.length == 0" class="btn btn-default" uib-dropdown-toggle>
<span class="caret"></span>
<span class="sr-only">[% l('receipt option') %]</span>
</button>
<ul class="dropdown-menu" uib-dropdown-menu role="menu" aria-labelledby="quick-button">
- <li role="menuitem" ng-class="{disabled : !has_email_address()}"><a ng-click="email_receipt()" a-disabled="!has_email_address()" href="#">[% l('Email Receipt') %]</a></li>
+ <li role="menuitem" ng-class="{disabled : !has_email_address() || is_emailing_receipt}"><a ng-click="email_receipt()" a-disabled="!has_email_address()" href="#">[% l('Email Receipt') %]</a></li>
<li role="menuitem"><a ng-click="print_receipt()" href="#">[% l('Print Receipt') %]</a></li>
</ul>
</div>
<div class="btn-group" uib-dropdown>
<button class="btn btn-default"
id="done-button" type="button"
+ ng-disabled="is_emailing_receipt && may_email_receipt()"
ng-click="done_auto_receipt()">[% l('Done') %]</button>
<button type="button" class="btn btn-default" uib-dropdown-toggle>
<span class="caret"></span>
</button>
<ul class="dropdown-menu" uib-dropdown-menu role="menu" aria-labelledby="done-button">
<li role="menuitem"><a ng-click="done_no_receipt()" href="#">[% l('No Receipt') %]</a></li>
- <li role="menuitem" ng-class="{disabled : !has_email_address()}"><a ng-click="done_email_receipt()" a-disabled="!has_email_address()" href="#">[% l('Email Receipt') %]</a></li>
+ <li role="menuitem" ng-class="{disabled : !has_email_address() || is_emailing_receipt}"><a ng-click="done_email_receipt()" a-disabled="!has_email_address()" href="#">[% l('Email Receipt') %]</a></li>
<li role="menuitem"><a ng-click="done_print_receipt()" href="#">[% l('Print Receipt') %]</a></li>
</ul>
</div>
</div>
+<div class="flex-row" ng-show="is_emailing_receipt">
+ <div class="flex-cell"></div>
+ <span *ngIf="is_emailing_receipt">
+ [% l('Emailing checkout receipt') %]...
+ </span>
+</div>
});
}
+ $scope.is_emailing_receipt = false;
$scope.email_receipt = function() {
- if ($scope.has_email_address() && $scope.checkouts.length) {
+ if ($scope.has_email_address() && $scope.checkouts.length
+ && !$scope.is_emailing_receipt) {
+ $scope.is_emailing_receipt = true;
return egCore.net.request(
'open-ils.circ',
'open-ils.circ.checkout.batch_notify.session.atomic',
).then(function() {
ngToast.create(egCore.strings.EMAILED_CHECKOUT_RECEIPT);
return $q.when();
+ }).finally(function() {
+ $scope.is_emailing_receipt = false;
});
}
return $q.when();