From 699b960820e89ae127e5547cb6bf80929550b5f6 Mon Sep 17 00:00:00 2001 From: blavenie <benoit.lavenier@e-is.pro> Date: Mon, 8 Apr 2019 10:42:42 +0200 Subject: [PATCH] [fix] API: fix Cancel when no amount select [fix] API: fix amount select on small screen --- www/i18n/locale-fr-FR.json | 4 ++-- www/js/api/app.js | 11 +++++------ www/templates/api/transfer.html | 33 +++++++++++++++++++++------------ 3 files changed, 28 insertions(+), 20 deletions(-) diff --git a/www/i18n/locale-fr-FR.json b/www/i18n/locale-fr-FR.json index a57744edc..890764df4 100644 --- a/www/i18n/locale-fr-FR.json +++ b/www/i18n/locale-fr-FR.json @@ -913,12 +913,12 @@ "TRANSFER": { "TITLE": "{{'COMMON.APP_NAME'|translate}} - Paiement en ligne", "TITLE_SHORT": "Paiement en ligne", - "SUMMARY": "Récapitulatif de la commande :", + "SUMMARY": "Récapitulatif du paiement :", "AMOUNT": "Montant :", "AMOUNTS_HELP": "Veuillez choisir le montant :", "NAME": "Nom :", "PUBKEY": "Clé publique du destinataire :", - "COMMENT": "Référence de la commande :", + "COMMENT": "Référence de l'opération :", "NODE": "Addresse du nœud :", "DEMO": { "SALT": "demo", diff --git a/www/js/api/app.js b/www/js/api/app.js index 748300375..c478b7220 100644 --- a/www/js/api/app.js +++ b/www/js/api/app.js @@ -393,7 +393,7 @@ angular.module('cesium-api', ['ionic', 'ionic-material', 'ngMessages', 'pascalpr // Make sure amount require fields if (!$scope.transferData.amount || !$scope.transferData.pubkey) { - $scope.transferData.error = true; + $scope.form.$submitted=true; UIUtils.loading.hide(); return $q.reject(); } @@ -418,6 +418,8 @@ angular.module('cesium-api', ['ionic', 'ionic-material', 'ngMessages', 'pascalpr }); }) .then(function(walletData) { + if (!walletData) return; + $scope.login = true; UIUtils.loading.hide(); @@ -495,7 +497,7 @@ angular.module('cesium-api', ['ionic', 'ionic-material', 'ngMessages', 'pascalpr url = url.replace(/\{pubkey\}/g, $scope.transferData.pubkey); url = url.replace(/\{hash\}/g, txRes.hash||''); url = url.replace(/\{comment\}/g, $scope.transferData.comment||''); - url = url.replace(/\{amount\}/g, $scope.transferData.amount.toString()); + url = url.replace(/\{amount\}/g, $scope.transferData.amount && ($scope.transferData.amount/100).toString() || ''); url = url.replace(/\{tx\}/g, encodeURI(txRes.tx)); url = url.replace(/\{node\}/g, encodeURI(BMA.host+':'+BMA.port)); @@ -519,7 +521,7 @@ angular.module('cesium-api', ['ionic', 'ionic-material', 'ngMessages', 'pascalpr // Make replacements - fix #548 url = url.replace(/\{pubkey\}/g, $scope.transferData.pubkey); url = url.replace(/\{comment\}/g, $scope.transferData.comment||''); - url = url.replace(/\{amount\}/g, $scope.transferData.amount.toString()); + url = url.replace(/\{amount\}/g, $scope.transferData.amount && ($scope.transferData.amount/100).toString() || ''); return $scope.redirectToUrl(url, 1500); }); @@ -545,9 +547,6 @@ angular.module('cesium-api', ['ionic', 'ionic-material', 'ngMessages', 'pascalpr /* -- methods need by Login controller -- */ - $scope.setForm = function(form) { - $scope.form = form; - }; $scope.closeModal = onLogin; }) diff --git a/www/templates/api/transfer.html b/www/templates/api/transfer.html index 28742af80..8f75adb22 100644 --- a/www/templates/api/transfer.html +++ b/www/templates/api/transfer.html @@ -19,7 +19,7 @@ <small class="ion-arrow-down-b"></small> </button> - <button class="button button-positive button-icon button-clear icon ion-android-done visible-xs" ng-click="doLogin()"> + <button class="button button-positive button-icon button-clear icon ion-android-send visible-xs" ng-click="doLogin()"> </button> </ion-nav-buttons> @@ -49,7 +49,7 @@ </div> <br class="hidden-xs"/> <br class="hidden-xs"/> - <div class="list padding no-padding-xs light-bg expert-mode"> + <div class="list padding no-padding-xs light-bg"> <div class="item"> <p translate>API.TRANSFER.SUMMARY</p> </div> @@ -61,21 +61,30 @@ <div class="badge item-note badge-calm ng-hide" ng-show="!loading" ng-bind-html="transferData.amount|formatAmount:{useRelative: false, currency: currency.name}"></div> <div class="item-note badge-secondary ng-hide" ng-show="!loading" ng-bind-html="transferData.amount|formatAmount:{useRelative: true, currency: currency.name, currentUD: currency.currentUD}"></div> </div> + <!-- Amounts --> - <label ng-if="transferData.amounts" - class="item item-icon-left-padding item-tx no-border" - ng-class="{'item-input item-select': transferData.amounts}"> - <span class="input-label" translate>API.TRANSFER.AMOUNT</span> + <ion-item + class="item-icon-left-padding item-input item-select" + ng-class="{ 'item-input-error': form.$submitted && !transferData.amount}"> + <div class="input-label" translate>API.TRANSFER.AMOUNT</div> <select ng-model="transferData.amount" required="true" ng-options="(amount |formatAmount:{useRelative: false, currency: currency.name}) for amount in transferData.amounts"> </select> - <h3 class="assertive" ng-if="!transferData.amount"> - <i class="icon ion-alert-circled" ng-if="transferData.error"></i> - <span translate>API.TRANSFER.AMOUNTS_HELP</span> - </h3> - <span class="gray badge-secondary" ng-bind-html="transferData.amount|formatAmount:{useRelative: true, currency: currency.name, currentUD: currency.currentUD}"></span> - </label> + <div class="hidden-xs hidden-sm"> + <h3 class="assertive" ng-if="!transferData.amount"> + <i class="icon ion-alert-circled" ng-if="form.$submitted && !transferData.amount"></i> + <span translate>API.TRANSFER.AMOUNTS_HELP</span> + </h3> + <span class="gray badge-secondary " ng-bind-html="transferData.amount|formatAmount:{useRelative: true, currency: currency.name, currentUD: currency.currentUD}"></span> + </div> + </ion-item> + <div class="form-errors" + ng-if="form.$submitted && !transferData.amount"> + <div class="form-error"> + <span translate="ERROR.FIELD_REQUIRED"></span> + </div> + </div> <div class="item item-icon-left-padding" > <h2 translate>API.TRANSFER.NAME</h2> -- GitLab