Lokavaluto / monujo

GNU Affero General Public License v3.0
2 stars 4 forks source link

fix: display pop-up error message on ```PaymentConfirmationMissing``` #396

Closed SeddikKadi closed 4 months ago

github-actions[bot] commented 4 months ago

✔️ translation is up-to-date

:x: code style needs update

It seems your code wasn't properly formatted using our current rules.

Please run src/App.vue 456ms src/assets/custom-variables.scss 43ms src/assets/datepicker.scss 4ms src/assets/fonts/roboto/style.css 25ms src/assets/main.scss 49ms src/assets/native.scss 5ms src/assets/switch-prefs.scss 10ms src/components/AboutModal.vue 76ms src/components/AuthChallenge.vue 51ms src/components/AuthChallengeDirect.vue 26ms src/components/AuthChallengePin.vue 42ms src/components/AuthChallengeRetention.vue 24ms src/components/AuthPref.vue 101ms src/components/AuthPrefDirect.vue 9ms src/components/AuthPrefPin.vue 64ms src/components/AuthPrefRetention.vue 12ms src/components/AuthPrefs.vue 35ms src/components/BankAccountItem.vue 56ms src/components/BiometryPrefs.vue 38ms src/components/ConfirmPaymentModal.vue 95ms src/components/CreateAccount.vue 113ms src/components/Dialog.vue 36ms src/components/LangPrefs.vue 35ms src/components/Modal.vue 20ms src/components/MoneyCreditModal.vue 80ms src/components/MoneyTransferModal.vue 169ms src/components/PasswordField.vue 24ms src/components/PendingTopUp.vue 42ms src/components/QrCodeModal.vue 32ms src/components/RecipientItem.vue 27ms src/components/ScanQrCode.vue 20ms src/components/TheBankAccountList.vue 115ms src/components/TheDashboardFooter.vue 40ms src/components/TheNavBar.vue 108ms src/components/TheTransactionList.vue 22ms src/components/TransactionItem.vue 20ms src/components/TransactionListModal.vue 200ms src/components/TransactionListRecent.vue 40ms src/exception.ts 12ms src/main.ts 63ms src/plugins/loading.ts 8ms src/plugins/vue-loading-overlay.d.ts 2ms src/polyfill.ts 3ms src/router/index.ts 16ms src/services/AuthService.ts 45ms src/services/Biometry.ts 12ms src/services/DatePicker.ts 11ms src/services/Dialog.ts 3ms src/services/ExportService.ts 11ms src/services/Gettext.ts 15ms src/services/lokapiService.ts 34ms src/services/PrefsService.ts 11ms src/services/QrCodeService.ts 22ms src/services/secret.ts 10ms src/services/toastService.ts 5ms src/services/UseBatchLoading.ts 10ms src/services/UseModal.ts 11ms src/shims-vue.d.ts 2ms src/store/index.ts 10ms src/store/lokapi.ts 31ms src/store/prefs.ts 3ms src/utils/fonts.ts 2ms src/utils/password.ts 3ms src/utils/vuex.ts 2ms src/views/admin/PendingAccounts.vue 69ms src/views/admin/PendingCredits.vue 78ms src/views/Carto.vue 14ms src/views/CreateMyAccount.vue 6ms src/views/Dashboard.vue 29ms src/views/Login.vue 60ms src/views/Prefs.vue 19ms src/views/ResetPassword.vue 42ms src/views/Signup.vue 95ms on your code before submitting the PR. You can amend this current PR.

18 files changed, 6 insertions(+), 53 deletions(-)

```diff diff --git a/src/App.vue b/src/App.vue index 56d1d38..8f8fb36 100644 --- a/src/App.vue +++ b/src/App.vue @@ -23,7 +23,6 @@ await StatusBar.setStyle({ style: Style.Light }) } CapacitorApp.addListener("backButton", ({ canGoBack }) => { - // XXXvlab: will need a back button service to insert these if (this.$qrCode.isActive()) return if (this.$modal.isActive.value) { this.$modal.back() diff --git a/src/components/AuthChallenge.vue b/src/components/AuthChallenge.vue index 38a8343..5557b3a 100644 --- a/src/components/AuthChallenge.vue +++ b/src/components/AuthChallenge.vue @@ -73,7 +73,6 @@ hide() { this.visible = false - // Destroys in memory previous challenge structure this.handler = false }, diff --git a/src/components/AuthChallengeRetention.vue b/src/components/AuthChallengeRetention.vue index 55b2f99..a8aecc5 100644 --- a/src/components/AuthChallengeRetention.vue +++ b/src/components/AuthChallengeRetention.vue @@ -36,14 +36,12 @@ }, async mounted() { this.subState = this.state - // Do we have some credential saved in store ? if (await this.handler.checkUserInput()) { if (this.state === "firstTry") { const lastCredsInput = await this.handler.inferKey() this.submitInput(lastCredsInput) return } - // Uh-oh, these weren't valid credentials this.handler.constructor.flush() this.subState = "firstTry" } diff --git a/src/components/AuthPref.vue b/src/components/AuthPref.vue index ac871de..f573313 100644 --- a/src/components/AuthPref.vue +++ b/src/components/AuthPref.vue @@ -102,13 +102,8 @@ } return true }, - /** - * Trigger direct default challenge an disable any retention - */ triggerDefaultChallenge() { return this.triggerChallenge(async (state: any, userAccount: any) => { - // By not asking the specific userAccount's auth, we remove - // any retention mecanism aspect. const accountAuthService = await this.$auth.getAccountAuth() return await accountAuthService.requestCredentials(state) }) @@ -128,7 +123,6 @@ setUseSimplifiedAuth(value: any) { this.useSimplifiedAuth = value this.$refs.checkbox.checked = value - // XXXvlab: nextTick didn't work. setTimeout(() => { this.$refs.checkbox.checked = value }, 0) @@ -136,12 +130,7 @@ async switchSimplifiedAuth(e: any) { e.preventDefault() if (this.useSimplifiedAuth) { - // Was on, switching off if (!(await this.triggerDefaultChallenge())) { - // XXXvlab: vuejs won't see any changes so won't force - // the checkbox to be unchecked. But it is automatically checked - // despite the preventDefault. - // this.useSimplifiedAuth = true this.setUseSimplifiedAuth(true) return } @@ -152,12 +141,7 @@ this.$forceUpdate() return } - // ``useSimplifiedAuth`` was off, switching on if (!(await this.triggerDefaultChallenge())) { - // XXXvlab: vuejs won't see any changes so won't force - // the checkbox to be unchecked. But it is automatically checked - // despite the preventDefault. - // this.useSimplifiedAuth = false this.setUseSimplifiedAuth(false) return } diff --git a/src/components/AuthPrefs.vue b/src/components/AuthPrefs.vue index fd7a48d..0659350 100644 --- a/src/components/AuthPrefs.vue +++ b/src/components/AuthPrefs.vue @@ -38,9 +38,6 @@ const $auth = this.$auth const moreThanOneUserAccount = userAccounts.length !== 1 - // XXXvlab: typeforcing to 'any' as typescript doesn't seem to - // understand that a 'allSettled' is actually a Promise of an - // array. const preparedTemplateDataPromises = (await Promise.allSettled( userAccounts.map(async (userAccount: any) => ({ name: diff --git a/src/components/BiometryPrefs.vue b/src/components/BiometryPrefs.vue index 730ae43..e5ab210 100644 --- a/src/components/BiometryPrefs.vue +++ b/src/components/BiometryPrefs.vue @@ -62,7 +62,6 @@ setUseBiometry(value: any) { this.setUserBiometry(value) this.useBiometry = value - // XXXvlab: nextTick didn't work. setTimeout(() => { this.$refs.biometryCheckbox.checked = value }, 0) diff --git a/src/components/ConfirmPaymentModal.vue b/src/components/ConfirmPaymentModal.vue index 9c200f1..2db4b22 100644 --- a/src/components/ConfirmPaymentModal.vue +++ b/src/components/ConfirmPaymentModal.vue @@ -181,8 +181,6 @@ }, methods: { async payTopUpRequest(): Promise { - // XXXvlab: we would need to launch regular checks - // here to acknowledge the payment window.open( this.$modal.args?.value[0].transaction.jsonData.odoo.order_url, "_blank" @@ -199,7 +197,6 @@ paymentStatus = await this.promiseWaitPayment } catch (err) { if (err === false) { - // The current modal was closed while waiting return } throw new UIError( @@ -211,13 +208,11 @@ } let modalName = this.$modal.modal.value if (modalName !== "ConfirmPaymentModal") { - // The modal was likely closed while waiting return } let myCurrentOrderId = this.$modal.args?.value[0].transaction.jsonData.odoo.order_id if (myCurrentOrderId !== orderId) { - // The modal was likely closed while waiting return } this.closeAndRefresh() @@ -232,7 +227,6 @@ let modalArgs = this.$modal.args?.value let modalName = this.$modal.modal.value if (modalName !== "ConfirmPaymentModal") { - // The modal was likely closed while waiting clearInterval(interval) reject(false) return @@ -240,7 +234,6 @@ let myCurrentOrderId = this.$modal.args?.value[0].transaction.jsonData.odoo.order_id if (myCurrentOrderId !== orderId) { - // The modal was likely closed while waiting clearInterval(interval) reject(false) return diff --git a/src/components/CreateAccount.vue b/src/components/CreateAccount.vue index ee47b44..b22a8a4 100644 --- a/src/components/CreateAccount.vue +++ b/src/components/CreateAccount.vue @@ -274,7 +274,7 @@ this.$gettext("Please try again or contact your administrator") ) - return // stay on page + return } this.$msg.warning(this.$gettext("Wallet already created")) } diff --git a/src/components/LangPrefs.vue b/src/components/LangPrefs.vue index 17a7b16..0e7cb3c 100644 --- a/src/components/LangPrefs.vue +++ b/src/components/LangPrefs.vue @@ -65,7 +65,6 @@ setUseCustomLanguage(value: any) { this.setCustomLanguage(value ? this.userLanguage : null) this.useCustomLanguage = value - // XXXvlab: nextTick didn't work. setTimeout(() => { this.$refs.langCheckbox.checked = value }, 0) diff --git a/src/components/MoneyCreditModal.vue b/src/components/MoneyCreditModal.vue index 786fb15..1dbd4a6 100644 --- a/src/components/MoneyCreditModal.vue +++ b/src/components/MoneyCreditModal.vue @@ -170,7 +170,6 @@ : false }, async newLinkTab() { - // This to ensure we are left with 2 decimals only this.amount = this.amount.toFixed(2) const { refreshTransaction, account } = this.$modal.args.value[0] diff --git a/src/components/MoneyTransferModal.vue b/src/components/MoneyTransferModal.vue index 1469dea..0431e8d 100644 --- a/src/components/MoneyTransferModal.vue +++ b/src/components/MoneyTransferModal.vue @@ -262,7 +262,6 @@ account = account._obj.parent } this.account = account - // No need to declare in data, no live mechanism required here this.selectedBackend = makeUIProxyBackend(account.parent, this.$gettext) this.recipientBatchLoader = UseBatchLoading({ @@ -375,7 +374,6 @@ this.transferOngoing = false return } - // This to ensure we are left with 2 decimals only this.amount = parseFloat(this.amount).toFixed(2) if (this.ownSelectedAccount._obj.getGlobalBalance) { @@ -462,7 +460,6 @@ return } if (err.message === "User canceled the dialog box") { - // A warning message should have already been sent return } this.$msg.error( @@ -511,8 +508,6 @@ try { await this.selectedRecipient.toggleFavorite() } catch (err) { - // XXXvlab: using ``.then`` makes it trigger outside of - // view js grasp. this.$errorHandler(err) return } diff --git a/src/components/QrCodeModal.vue b/src/components/QrCodeModal.vue index 63e043a..f032b6b 100644 --- a/src/components/QrCodeModal.vue +++ b/src/components/QrCodeModal.vue @@ -71,8 +71,8 @@ methods: { async downloadQrCodePdf() { let svgQrCode = this.$refs.qrCode.firstChild.outerHTML - const finalSizeMm = 120 // mm of final printed QrCode - const resolution = 5 // px/mm + const finalSizeMm = 120 + const resolution = 5 svgQrCode = svgQrCode.replace( 'width="200"', @@ -94,7 +94,6 @@ const imgData = canvas.toDataURL("image/png") - // Generate PDF let pdf = new jsPDF("p", "mm", "a4") await pdf.addImage( diff --git a/src/components/TheBankAccountList.vue b/src/components/TheBankAccountList.vue index 0ed73e3..97fb2e0 100644 --- a/src/components/TheBankAccountList.vue +++ b/src/components/TheBankAccountList.vue @@ -216,8 +216,6 @@ const backend = this.getBackends()[backendId] const file = event.target.files[0] if (!file) { - // This doesn't happen even if user has canceled dialog - // and it is not clear when this actually occurs. console.log("Unexpectedly received no file. Ignoring.") return } @@ -232,7 +230,6 @@ ) } if (typeof fileContent !== "string") - // typeguard throw new UIError(this.$gettext("Unexpected type of file"), null) let fileData: any try { diff --git a/src/components/TransactionListRecent.vue b/src/components/TransactionListRecent.vue index 70b0fa6..e9a1a71 100644 --- a/src/components/TransactionListRecent.vue +++ b/src/components/TransactionListRecent.vue @@ -73,7 +73,7 @@ @Options({ name: "TransactionListRecent", props: { - refreshToggle: Boolean, // change of this props requests a refresh + refreshToggle: Boolean, account: Object, }, components: { diff --git a/src/views/Dashboard.vue b/src/views/Dashboard.vue index 813f2c0..4cad13e 100644 --- a/src/views/Dashboard.vue +++ b/src/views/Dashboard.vue @@ -58,7 +58,6 @@ }, methods: { refreshTransaction() { - // This change is propagated through props to children components this.refreshToggle = !this.refreshToggle }, accountSelected(account: any) { diff --git a/src/views/Login.vue b/src/views/Login.vue index 4b455e6..2dfa827 100644 --- a/src/views/Login.vue +++ b/src/views/Login.vue @@ -93,8 +93,8 @@ password: "", fail: "", success: "", - biometryEnabled: false, // User preference - biometryAvailable: false, // Biometry available and credential saved + biometryEnabled: false, + biometryAvailable: false, canResetPassword: false, canSignup: false, } @@ -158,7 +158,6 @@ this.$router.push({ name: "dashboard" }) this.$persistentStore.set("loginEmail", this.email) } catch (e) { - // { APIRequestFailed, InvalidCredentials } if (e instanceof RestExc.APIRequestFailed) { this.fail = this.$gettext( "Request refused by remote server. Contact your administrator" @@ -212,7 +211,6 @@ prefs.biometryEnabled = true await this.$localSettings.save(prefs) } - // biometryEnabled is true const hasCredentialsAvailable = await this.$biometry.hasCredentialsAvailable("login") console.log("has", hasCredentialsAvailable) diff --git a/src/views/admin/PendingAccounts.vue b/src/views/admin/PendingAccounts.vue index a011212..2795015 100644 --- a/src/views/admin/PendingAccounts.vue +++ b/src/views/admin/PendingAccounts.vue @@ -156,7 +156,6 @@ } catch (err: any) { this.isWaitingForValidation = false if (err.message === "User canceled the dialog box") { - // A warning message should have already been sent return } diff --git a/src/views/admin/PendingCredits.vue b/src/views/admin/PendingCredits.vue index b89bf69..27759a6 100644 --- a/src/views/admin/PendingCredits.vue +++ b/src/views/admin/PendingCredits.vue @@ -161,7 +161,6 @@ await request.validate() } catch (err: any) { if (err.message === "User canceled the dialog box") { - // A warning message should have already been sent return } this.$msg.error( ```

github-actions[bot] commented 4 months ago

:evergreen_tree: test report

Passes: 9, failures: 1, pending: 0, skipped: 0, other: 0. | State | Description | | ----- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | fail | **Filepath**: tests/e2e/spec.cy.ts
**Title**: General processes when logged in Top-up process
**Error**: AssertionError: Timed out retrying after 60000ms: Expected not to exist in the DOM, but it was continuously found. |
vaab commented 4 months ago

LGTM, live reviewed, rebased and pushed.