Giter Site home page Giter Site logo

victorbalssa / abacus Goto Github PK

View Code? Open in Web Editor NEW
449.0 8.0 26.0 28.97 MB

🟠 Abacus: Firefly III mobile application.

Home Page: https://apps.apple.com/us/app/1627093491

License: GNU General Public License v3.0

JavaScript 3.58% TypeScript 96.42%
expo firefly-iii react-native finance fintech ios mobile redux ux-design fireflyiii

abacus's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

abacus's Issues

BUG_ "Caught an error in Firefly III"

Describe the bug
Hello,

I've added an Oauth client in Firefly (first with and then I tried without a secret). I use Authentik for remote user authentication. These are the Docker environment variables:

AUTHENTICATION_GUARD=remote_user_guard
AUTHENTICATION_GUARD_HEADER=HTTP_X_AUTHENTIK_USERNAME

I've got no issues logging in the Firefly web interface. However, when I pass the Authentik login page, there's a blank grey page and Firefly sends me an email with the following content:

Firefly III v5.7.15 ran into an error: Laravel\Passport\Http\Controllers\AuthorizationController::__construct(): Argument #3 ($guard) must be of type Illuminate\Contracts\Auth\StatefulGuard, FireflyIII\Support\Authentication\RemoteUserGuard given.

The error was of type "TypeError".

The error occurred on/at: Tue, 08 Nov 2022 09:09:56 +0200.

This error occurred in file "/var/www/html/vendor/laravel/passport/src/Http/Controllers/AuthorizationController.php" on line 52 with code 0.

There was no user logged in for this error or no user was detected.

The full stacktrace:

#0 [internal function]: Laravel\Passport\Http\Controllers\AuthorizationController->__construct()
#1 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php(915): ReflectionClass->newInstanceArgs()
#2 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php(756): Illuminate\Container\Container->build()
#3 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(860): Illuminate\Container\Container->resolve()
#4 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php(692): Illuminate\Foundation\Application->resolve()
#5 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(845): Illuminate\Container\Container->make()
#6 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Route.php(274): Illuminate\Foundation\Application->make()
#7 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Route.php(260): Illuminate\Routing\Route->getController()
#8 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Route.php(205): Illuminate\Routing\Route->runController()
#9 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(725): Illuminate\Routing\Route->run()
#10 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\Routing\Router->Illuminate\Routing\{closure}()
#11 /var/www/html/vendor/laravel/passport/src/Http/Middleware/CreateFreshApiToken.php(50): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#12 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Laravel\Passport\Http\Middleware\CreateFreshApiToken->handle()
#13 /var/www/html/vendor/laravel/framework/src/Illuminate/Session/Middleware/AuthenticateSession.php(40): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#14 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Session\Middleware\AuthenticateSession->handle()
#15 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(78): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#16 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle()
#17 /var/www/html/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#18 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\View\Middleware\ShareErrorsFromSession->handle()
#19 /var/www/html/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#20 /var/www/html/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\Session\Middleware\StartSession->handleStatefulRequest()
#21 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Session\Middleware\StartSession->handle()
#22 /var/www/html/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#23 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle()
#24 /var/www/html/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#25 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Cookie\Middleware\EncryptCookies->handle()
#26 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#27 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(726): Illuminate\Pipeline\Pipeline->then()
#28 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(703): Illuminate\Routing\Router->runRouteWithinStack()
#29 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(667): Illuminate\Routing\Router->runRoute()
#30 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(656): Illuminate\Routing\Router->dispatchToRoute()
#31 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(190): Illuminate\Routing\Router->dispatch()
#32 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}()
#33 /var/www/html/app/Http/Middleware/InstallationId.php(52): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#34 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): FireflyIII\Http\Middleware\InstallationId->handle()
#35 /var/www/html/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(39): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#36 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Http\Middleware\TrustProxies->handle()
#37 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#38 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#39 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull->handle()
#40 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#41 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#42 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Foundation\Http\Middleware\TrimStrings->handle()
#43 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#44 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle()
#45 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#46 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle()
#47 /var/www/html/app/Http/Middleware/SecureHeaders.php(51): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#48 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): FireflyIII\Http\Middleware\SecureHeaders->handle()
#49 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#50 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(165): Illuminate\Pipeline\Pipeline->then()
#51 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(134): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter()
#52 /var/www/html/public/index.php(75): Illuminate\Foundation\Http\Kernel->handle()
#53 {main}

The following headers may also be relevant:

- x-authentik-username: zkvvoob
- x-authentik-groups: All apps|authentik Admins
- x-authentik-email: [email protected]
- x-authentik-name: Zkvv Ooob
- x-authentik-uid: 0***2
- x-forwarded-host: firefly.domain.com
- x-forwarded-server: firefly.domain.com
- x-forwarded-proto: https
- x-forwarded-for: 156.XXX.XXX.XXX, 172.68.50.214
- host: firefly.domain.com
- connection: close
- cf-ipcountry: XX
- cdn-loop: cloudflare
- accept-encoding: gzip
- cf-ray: 766c***
- cf-visitor: {"scheme":"https"}
- accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
- user-agent: Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Mobile/15E148 Safari/604.1
- accept-language: ***;q=0.9
- cf-connecting-ip: 156.XXX.XXX.XXX

Smartphone (please complete the following information):

  • Device: iPhone 13 Pro
  • OS: iOS 16.0
  • Version [e.g. 22]

I'm not sure whether this is the place to ask for help or over at Firefly III's Github page.

Thanks in advance for looking into this!

BUG_autocompletion_not_work_non_english

Describe the bug
The autocompletion on account type and categories not work if the content is not Engish.
This works fine on FireflyIII web.

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'New Transaction'
  2. Click on 'Source account'
  3. Type some keyword to check autocompletion
  4. It's ok f the input is engish, but not work if it's not English

Expected behavior
The autocompletion should work on any language.

Smartphone (please complete the following information):

  • Device: iPhone13
  • OS: iOS 16.2
  • Version 0.4.0
  • FireflyIII: 5.7.18

BUG_HTTPS Call Not working

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to Abacus App and try to call your Firefly via your HTTPS Link
  2. See error: Offline - You are probably offline. Firefly III is Not reachable.

Expected behavior
My expectation was that I can use HTTPS for a more safety call via reverse proxy to use the app everywhere. The normal call of firefly via https in my browser is just working fine.

Screenshots
0DEFC8AC-80AB-4944-88CE-2DCBB3BE363C
6426F4D8-7E61-498C-ACCF-CEE9EED17669

Smartphone (please complete the following information):

  • Device: IPhone 12ProMax
  • OS: IOS 15.5

Additional Context
Not sure if this is really a bug or just a „missing“ functionality. It would be really great if those calls are possible to let as many ports as possible untouched.

Feature Request: Transaction Templates x4 solutions

  • auto filling a new transaction with templates data.

From @hessijames79

I am heavily using Abacus to track my expenses. There are several transactions that occur regularly and I am thus faced with performing repeated tasks to fill the same fields with the same values (except for e. g. the amount) over and over again.

Describe the solution you'd like

  • Solution 1: Templates (preferred solution)

Templates containing all of the fields of a transaction can be created by filling selected fields. By selecting "New transaction of template" a new transaction opens with the fields pre-filled according to the template. After making additions or changes (e. g. amount), the transaction is submitted.

  • Solution 2: Shortcuts integration

Allow for the triggering of pre-filled transactions from the iOS Shortcuts app.

  • Solution 3: URI schemes

Introduce extensive uri schemes so that pre-filled transactions can be triggered from outside of Abacus, e. g. by Launch.

  • Solution 4: Pre-filled fields based on the last transaction with the same title

When creating a new transaction in the current ui function the title field offers a selection of auto-completes. Upon selecting a title the form should be optionally pre-filled with the (exact) details of the last transaction with this title.

Feature Request: Chart Preferences

Discussed in #91

Originally posted by paulcalabro May 7, 2023
It would nice if the four accounts displayed in the charts were not based on Firefly-III settings. In the web UI I like to group accounts in a particular way, but in the app the accounts I'd prefer to display are not necessarily the top four in the groupings.

Feature request: possibility to add field "label"

Hi,
Can you add optional and maybe enabled by option in tab setting the filed Label under new transaction creation page?
with search functionality like firefly standard webpage.

Describe the solution you'd like
App point
image

firefy field
image

Thanks

Feature Request: Android support.

Discussed in #50

Originally posted by carvalholeo November 5, 2022
Hello everyone!

Before October 10th, I was an Android user and all apps to manage my Firefly III account it's so bad. So, I started to playing with this app and its source code, to make a version for Android (at that day, my Android phone did die and I bought an iPhone as my main device).

So, I want to know what do you think about an Android version of Abacus.

Clearly, it isn't an easy job or question, but it can be an excellent way of bring this excellent app to Android users.

@obxjames
@carvalholeo

Feature Request: Transactions Search Bar

This app is an absolute game changer on iOS! Recent updates have added such great functionality. I was wondering if it’s possible for search to be incorporated? This works really well with clone transaction in the webUI.

Not actually sure if it’s possible though.

Feature Request: Clone a transaction

Discussed in #82

Originally posted by imlonghao February 11, 2023
Usually, most of fields of my daily transaction are same for example the accounts and category, only the amount would be a little different.

It would be easier to add new transaction, I only need to clone an existing transaction, then modify the amount and save.
Instead of typing the same fields everyday.

The clone button/API is existed on the FireFly III web interface, but not in their open API, it may take times to implement it.

Hope to the clone button this in transaction editing page like this.

[RESET]

  • [CLONE]
    [SUBMIT]

BUG_Failed to get accessToken, Network request failed

Describe the bug
I'm trying to use Abacus with Firefly III server v.5.7.9 running on Docker via docker-compose.

To Reproduce
Steps to reproduce the behavior:

  1. Create new OAuth token in Firefly III
  2. Open Abacus for Firefly III
  3. Fill the backend URL and Client ID in Abacus for Firefly III leaving client secret empty
  4. Click on "Sign in" button
  5. Log in to Firefly III
  6. Click on "Authorize" in Firefly III
  7. You see the error message saying that "Something went wrong" with description "failed to get accessToken, Network request failed.

Expected behavior
After clicking on "Authorize" in Firefly III I'd expect the application to log me in and allow to insert information to my Firefly III instance through Abacus for Firefly.

Screenshots
obraz

Smartphone (please complete the following information):

  • Device: iPhone 13
  • OS: iOS 16
  • Firefly III v5.7.9 running in Docker behind Apache2 reverse proxy
  • Latest Abacus for Firefly III

Add all accounts from API

Discussed in #19

Originally posted by Roxas2712 July 21, 2022
Hello :) Would it be possible to have a different valuehelp here that would allow me to enter something new or is doing a „lookup“ within my accounts and making suggestions? Just like firefly is doing it ^^.

i have the problem that I did an import of all my transactions and I’m somehow now not able to use the app anymore because I can’t enter a correct account. :( Don’t now if this is maybe also a bug but if not it would be another idea vor an improvement. Find attached a screenshot. I can just scroll to „F“ - then the list ends.

5EB8106D-0253-41F7-A2C4-1E54B19206BD

BUG_Unable to Sign In

Describe the bug
My FireFly III instance is protected and running behind Keycloak for sign in. This is accomplished using the Traefik forwardauth middleware which forwards traffic to KeyCloak for auth, then back to FireFly when authenticated, and passes a HTTP header for authentication.

When trying to authenticate via the app, it redirects to KeyCloak as it should, I sign in, and FireFly asks me to authorize Abacus. When I do, Abacus returns the following error: "Failed to get accessToken, JSON Parse error: Unexpected identifier "Authentication""

Not sure if there's anything that can be done app-side to fix by any chance, but my FireFly instance is behind KeyCloak for added security and for SSO, so I don't really want to remove the forwardauth middleware and revert to username/password authentication for web access.

To Reproduce
Type my backend URL into the app, along with the created Oauth Client ID, and tap Sign In.

Expected behavior
It should sign in.

Smartphone (please complete the following information):

  • Device: iPhone 13 Pro
  • OS: iOS 16.2
  • Version 0.4.0

Feature Request: Take and attach photos to transactions

In the firefly iii website there is the option to attach files to a transaction. In the app it would be nice to be able to do the same. One possible improvement over the website would be to allow the app to open up the camera to take and attach photos directly.

I can't log in

Hi!
This probably goes to the discussion section, but I can't find it.
Just downloaded the app form the app store, but I can't manage to log in.
I get "invalid_client" error. I've just created a new token, copied the secret and read the Client ID from the database, but still it does not work. Do you have any suggestion?

Thanks for the app!

401 on connecting to firefly

Setting up Abacus to connect to my firefly instance. Here are the server logs when I try to connect:

172.31.0.10 - - [02/Aug/2022:19:38:51 -0500] "POST /login HTTP/1.1" 302 3530 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Mobile/15E148 Safari/604.1"
172.31.0.10 - - [02/Aug/2022:19:38:52 -0500] "GET /oauth/authorize?client_id=43&client_secret=xxx&code_challenge=xxx&code_challenge_method=S256&redirect_uri=abacusiosapp%3A%2F%2Fredirect&response_type=code&state=AHlE11up1y HTTP/1.1" 200 3578 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Mobile/15E148 Safari/604.1"
172.31.0.10 - - [02/Aug/2022:19:38:58 -0500] "POST /oauth/authorize HTTP/1.1" 302 2598 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Mobile/15E148 Safari/604.1"
172.31.0.10 - - [02/Aug/2022:19:38:59 -0500] "POST /oauth/token HTTP/1.1" 200 2733 "-" "Abacus/0.1.0 CFNetwork/1388 Darwin/22.0.0"
172.31.0.10 - - [02/Aug/2022:19:39:02 -0500] "GET /api/v1/about/user HTTP/1.1" 401 956 "-" "Abacus/0.1.0 CFNetwork/1388 Darwin/22.0.0"

Authentication works correctly. You can see the redirect set right. Last GET request gets a 401.

Firefly Version [5.7.10]
IOS16

Feature Request: Add reconciliation option on Transaction View

Hello,

I have been using Abacus for Firefly III and have found it to be very useful. However, I've noticed that the app currently does not have a feature to reconcile transactions.

This feature is available in the web version of Firefly III, and it would be incredibly helpful if it could be included in Abacus as well. Being able to reconcile transactions directly in the mobile app would make managing my finances on-the-go much easier and more efficient.

Thank you for considering my request.

Best Regards,

Select between list of accounts and create a new account (text input).

Discussed in #19

Originally posted by Roxas2712 July 21, 2022
Hello :) Would it be possible to have a different valuehelp here that would allow me to enter something new or is doing a „lookup“ within my accounts and making suggestions? Just like firefly is doing it ^^.

i have the problem that I did an import of all my transactions and I’m somehow now not able to use the app anymore because I can’t enter a correct account. :( Don’t now if this is maybe also a bug but if not it would be another idea vor an improvement. Find attached a screenshot. I can just scroll to „F“ - then the list ends.

5EB8106D-0253-41F7-A2C4-1E54B19206BD

BUG_Crash_at_transactions_menu (0.2.3)

Describe the bug
The app crashes when Transactions menu is opened. (version 0.2.3)

To Reproduce
Steps to reproduce the behavior:

  1. Open app
  2. Click on Transactions menu (the icon before settings icon)
  3. App crashes

Expected behavior
Transactions history should be displayed.

Smartphone (please complete the following information):

  • Device: iPhone
  • OS: iOS
  • Version 15.6.1

Additional context
I have tested version 0.2.2 on another phone (same model, iOS version is 15.6.0) and it works fine.

ENHANCEMENT - Make Redirect url copyable

Describe the bug
Currently when setting up the app, the redirect URL is not copyable. It would be nice to be able to copy it so we can paste it into the fireflyiii oauth setup.

Switch to monthly view results in "Invalid date NaN."

If I switch from Quarterly View to Monthly View I receive two error messages.
"Something went wrong - Request failed with status code 422".
The heading of the App shows "Invalid date NaN." - Feb 1.2023 - Invalid date
I am using iOS 16.3 and the App-Version is 0.5.0

Feature Request: Offline mode

Will be awesome if the app can store internally transactions when is offline and sync each new transacción when you get online again.

this is important for me because I live in an area with pour internet connection, also is a problem when I travel to a country and I don't have internet plan there.

BUG_Monthly Period is messed up

Describe the bug
In June Month July is standing as headline. For July August is standing in headline
To Reproduce
Steps to reproduce the behavior:

  1. Go to Home
  2. Switch to monthly period
  3. Take a look to top of the screen

Expected behavior
I would expect that the Intervall of month and the headline are the same.

Screenshots
44733A30-5524-4090-81CD-879809D59D1C
7D780BEC-48D9-41DF-9A8E-07851B870EB0

Smartphone (please complete the following information):

  • Device: IPhone 12 Pro Max
  • OS: 15.5

Additional context
Add any other context about the problem here.

BUG_Icons on navbar not appearing when using other language beyond English

Describe the bug
All icons (except the pencil and transactions) don't appear when you use a different language in the system. So, the interface could be broken for non-English iDevices users.

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'Settings' app on the system. So, enter into 'General' section. After, 'Language & Region'
  2. On 'Preferred Languages,' tap to 'Add Language' and select one of the supported languages at the app (e.g, 'Portuguese (Brazil)' or French). So, put as preferred language.
  3. Allow to iPhone restart device with new language
  4. Open Abacus to see navbar without almost any icons
  5. Repeat steps 1-4, changing language back to English, to see all icons back.

Expected behavior
As a non-English user of the app, I expect that icons must appear, to guide me and myself experience across the app on how to use.

Screenshots
Navigation bar when using in Portuguese
IMG_4005

Navigation bar when using in English
IMG_4006

Smartphone:

  • Device: iPhone12
  • OS: iOS 16.1.2
  • Version 0.4.0

Additional context
Probably this bug it was generated by me. It occurs because on routes screen, the object for icons expect receive for a name in English. While the app didn't translate, this wasn't a problem.

But, when I made the last PR (#48), I introduced this bug for translating navigation bar names, that were used to access object with icons names. Sorry for this.

I'm working right now at a bugfix for this. I'm sorry for neither report nor see this bug before, I don't have an Apple setup (any Mac, it's too much expensive in Brazil) to debug iOS apps.

Likewise, I believe that between today and Friday, I'm going to open a new PR, solving this bug.

Lower toolbar overlaps with main settings screen

Describe the bug
On the settings screen, the lower toolbar overlaps with the main screen. Hides the debug row

To Reproduce
Steps to reproduce the behavior:

  1. Go to settings screen
  2. See error

Expected behavior
The main screen is fully visible

Screenshots
image

Smartphone:

  • Device: iPhone SE (1st generation)
  • OS: iOS 15.6
  • Version: 0.21 BETA

BUG_Crash_on_incomplete_URL

Describe the bug
A clear and concise description of what the bug is.

When entering the firefly address without http(s) the app crashes without error when continuing.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'

  2. Click on '....'

  3. Scroll down to '....'

  4. See error

  5. Start freshly installed app.

  6. Enter address without http(s):// e.g. firefly.domain.com

Expected behavior
A clear and concise description of what you expected to happen.

Request to fix address, auto adding of http(s).

Screenshots
If applicable, add screenshots to help explain your problem.

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6] iPhone 13 pro
  • OS: [e.g. iOS8.1] 15.6
  • Version [e.g. 22] 0.2.2

Additional context
Add any other context about the problem here.

BUG: Wrong budget limit value if limits with different currencies are used

Describe the bug
When a budget has limits with different currencies, the limit value shown in the app can be wrong. For example, I have a 1000 EUR limit and a 40000 RUB limit for the same budget, but the app shows 40000 EUR as the limit for this budget when I choose EUR as currency.

To Reproduce
Steps to reproduce the behavior:

  1. On Firefly III, enable EUR and RUB as currencies
  2. Create a budget
  3. Set a limit of 1000 EUR for this budget
  4. Set another limit of 40000 RUB for the same budget
  5. Open Abacus and choose EUR as currency, it will display 40000 EUR as the limit

Expected behavior
With the example provided, the limit should be displayed as 1000 EUR.

Screenshots
On Firefly III:
image

On Abacus:
image

Smartphone (please complete the following information):

  • Device: Google Pixel 6A
  • OS: Android
  • Version: 13

BUG_ Login via Cloudflare Tunnels 2FA

Describe the bug
My Firefly III instance is reachable at firefly.mydomain.com and is protected by Cloudflare ZTNA (https://www.cloudflare.com/products/zero-trust/zero-trust-network-access/).
Basically, Cloudflare adds a 2FA protection (mail TOTP code) on top of the domain. Once you pass the challenge, you are forwarded to the service.
I managed to login via Abacus only by reaching the domain locally. If I try the domain firefly.mydomain.com, I'm asked for the 2FA challenge, I log into Firefly III and I got an error message.

To Reproduce
Steps to reproduce the behavior:

  1. Configure Abacus to reach Firefly III public domain
  2. Login using the credentials

Expected behavior

Remote login.

Screenshots
If applicable, add screenshots to help explain your problem.

Smartphone (please complete the following information):

  • Device: iPhone
  • OS: iOS 16.1

Is it possible to use Abacus via Cloudlfare ZTNA protection?
Thank you!

App not available on Europe App Store

Describe the bug
Not a bug, but missing feature - application is currently unavailable on European App Store.

To Reproduce

  1. Try to open App Store Link on EU account

Expected behavior
Download and install the application.

Screenshots
/

Smartphone (please complete the following information):

  • Device: iPhone 12
  • OS: iOS 16.4.1
  • Version 16.4.1

Additional context
Is there any plan to release the app on EU App Store ? Is there any way to install the app without App Store in EU ?

BUG: refresh home details

Describe the bug
Pulling down in the app to manually refresh balance data does not update the net worth panel at the top.

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'Home' with the 'Accounts' tab selected
  2. Swipe down to initiate a sync
  3. Observe balance data updates but net worth data for period does not update (you need to change the period and come back to the same period to refresh the data)

Expected behavior
All balance and net worth data is refreshed

Screenshots

Smartphone (please complete the following information):

  • Device: iPhone 11 Pro Max
  • OS: iOS 17.0
  • Version 0.8.1

Additional context

Month is incorrect monthly transaction list

Going to transaction view and selecting monthly report, month shown on the top of the page is one earlier than selected, e.g., when I select July, the text says June.

P.S. Hey! I really appreciate you working on this app, I love it. Thanks and keep up the good work. I just installed the latest version and started using it, there are unfortunately a few bugs, so I'll report them separately.

BUG_Language Problems with Amount Keyboard

Describe the bug
The problem I face is that our German use of decimal keyboard has , instead of . for separating the decimal area. For example: If I need to add 8,41€ we would do that with , sperating the Euro and the Cents. The systems is expecting a . - That means 8.41€ instead.

To Reproduce
Steps to reproduce the behavior:

  1. Go to New Transaction
  2. Try to add a new amount with German Keyboard
  3. See that we have only , as separators suggested
  4. See error

Expected behavior
i would expect the system to accept also , as separator for decimals depending on the used keyboard.
Even a switch of the keyboard has no improvements. Maybe this will be fixed with the languages coming.

Screenshots
6CA29CBC-EDB2-4246-AAB9-E04595063C76

BE2AEC7F-F7BC-4E92-818C-E776A939134C

Smartphone (please complete the following information):

  • Device: iPhone 12 Pro Max
  • OS: iOS 15.6

Additional context
Add any other context about the problem here.

BUG_Autocomplete failed when query param is Chinese

Describe the bug

Double url encode when querying account name, resulting autocomplete failed.

To Reproduce

  1. Create an Asset Account on your Firefly III instance with the name 饭卡
  2. Search for this Asset Account in abacus by typing single char
  3. The following API request can be found on your Firefly III instance logs
  4. Unable to found 饭卡
"GET /api/v1/autocomplete/accounts?types=Asset%2520account,Revenue%2520account,Loan,Debt,Mortgage&limit=9&query=%E9%A5%AD HTTP/1.1" 200 920 "-" "Abacus/0.5.0 CFNetwork/1404.0.5 Darwin/22.3.0"

You can see the original %20 become %2520

Expected behavior

Able to search the Asset Account 饭卡

Screenshots

N/A

Smartphone (please complete the following information):

  • Device: iPhone 12
  • OS: iOS16.3
  • Version 0.5.0

Additional context

I think we can fix this issue by change the %20 to a simple space in this file, somewhere in axios will auto do the url encode job.

const type = isDestination ? 'Expense%20account' : 'Revenue%20account';
const autocompleteAccounts = await dispatch.configuration.apiFetch(
{ url: `/api/v1/autocomplete/accounts?types=Asset%20account,${type},Loan,Debt,Mortgage&limit=${limit}&query=${query}` },

German Language File

Hi,

I've just seen, that the PB from another user wasn't edited. So I made one language file on my own:

export default {
  configuration_app_version: 'App Version',
  configuration_about: 'Über',
  configuration_clear_option: 'Inhalte löschen und zurücksetzen',
  configuration_clear_confirm_button: 'Jetzt löschen',
  configuration_clear_alert_title: 'Sind Sie sicher?',
  configuration_clear_alert_text: 'Durch das Löschen des Cache wird Folgendes entfernt:\n'
    + 'lokale Konfigurationen\n'
    + 'Oauth Client ID & Secret\n'
    + 'URL Ihrer Instanz',
  configuration_clear_cancel_button: 'Abbrechen',
  configuration_security: 'Sicherheit',
  configuration_biometry: 'Face ID Sperre',
  configuration_share_feedback: 'Feedback teilen',
  configuration_report_issue: 'Problem melden',
  configuration_sources: 'Quellen',
  configuration_debug: 'Debuggen',
  configuration_get_help: 'Hilfe',
  assetsHistoryCharts_chart_works: 'Dieses Diagramm funktioniert am besten mit bis zu 4 Konten,',
  assetsHistoryCharts_change_preferences: 'Hier Klicken',
  assetsHistoryCharts_choose_preferences_text: 'um Ihre bevorzugten Konten in den Firefly III Einstellungen zu wählen:',
  assetsHistoryCharts_home_screen: 'Startbildschirm',
  transaction_form_description_required: 'Beschreibung ist erforderlich.',
  transaction_form_description_short: 'Die Beschreibung ist zu kurz.',
  transaction_form_amount_required: 'Betrag ist erforderlich.',
  transaction_form_description_label: 'Beschreibung',
  transaction_form_sourceAccount_label: 'Quellkonto',
  transaction_form_destinationAccount_label: 'Zielkonto',
  transaction_form_date_label: 'Datum',
  transaction_form_amount_label: 'Betrag',
  transaction_form_category_label: 'Kategorie',
  transaction_form_budget_label: 'Budget',
  transaction_form_reset_button: 'Zurücksetzen',
  transaction_form_submit_button: 'Absenden',
  transaction_list_alert_title: 'Sind Sie sicher?',
  transaction_list_alert_text: 'Diese Transaktion wird dauerhaft entfernt:',
  transaction_list_delete_button: 'Löschen',
  transaction_list_cancel_button: 'Abbrechen',
  auth_form_url_label: 'Firefly III Backend URL',
  auth_form_url_help: "ohne '/' am Ende.",
  auth_form_url_placeholder: "Firefly III Backend URL (ohne '/' am Ende)",
  auth_form_oauth_clientId: 'Oauth Client ID',
  auth_form_oauth_client_secret: 'Oauth Client Secret',
  auth_form_secrets_help_message: 'Alle Secrets werden in Android/iOS sicher aufbewahrt.',
  auth_form_set_redirect: 'Umleitungs-URI setzen auf:',
  auth_form_need_help: 'Brauchen Sie Hilfe?',
  auth_form_submit_button_initial: 'Anmelden',
  auth_form_submit_button_loading: 'Senden...',
  auth_form_faceID: 'Face ID',
  home_accounts: 'Konten',
  layout_new_update_header: 'Neue Aktualisierung verfügbar',
  layout_new_update_body_text: 'Sie können später jederzeit unter Einstellungen aktualisieren.',
  layout_new_update_cancel_button: 'Abbrechen',
  layout_new_update_update_button: 'Jetzt aktualisieren',

  // from version 0.31
  transaction_screen_title: 'Neue Transaktion',
  navigation_home_tab: 'Startseite',
  navigation_chart_tab: 'Diagramm',
  navigation_create_tab: 'Erstellen',
  navigation_transactions_tab: 'Vorgänge',
  navigation_settings_tab: 'Einstellungen',
  transaction_form_type_withdraw: 'Ausgabe',
  transaction_form_type_deposit: 'Einnahme',
  transaction_form_type_transfer: 'Überweisung',

  // from 0.4.1
  period_switcher_monthly: 'Monatlich',
  period_switcher_quarterly: 'Quartalsweise',
  period_switcher_semiannually: 'Halbjährlich',
  period_switcher_yearly: 'Jährlich',
  error_widget_title: 'Etwas ist schief gelaufen',
  home_container_error_title: 'Etwas ist schief gelaufen',
  home_container_error_description: 'AccessToken konnte nicht abgerufen werden',
  oauth_token_error_title: 'Etwas ist schief gelaufen',
  oauth_token_error_description: 'AccessToken konnte nicht abgerufen werden',
  oauth_token_info_title: 'Info',
  oauth_token_info_description: 'Authentifizierung abgebrochen, Client-ID und Backend-URL prüfen.',
  oauth_token_success_title: 'Erfolgreich',
  oauth_token_success_description: 'Sichere Verbindung mit Ihrer Firefly III-Instanz hergestellt.',
  transaction_form_success_title: 'Erfolgreich',
  transaction_form_success_description: 'Transaktion erstellt. Tippen Sie hier, um zur Transaktionsliste zu gelangen.',
  transaction_form_error_title: 'Fehler',
  home_header_time_range_year: 'Jahr',
  home_header_time_range_q: 'Q', // Geben Sie eine Abkürzung ein, die ein Quartal am besten repräsentiert
  home_header_time_range_s: 'H', // Setzen Sie eine Abkürzung ein, die am besten ein Halbjahresdatum repräsentiert

  // from 0.6.0
  balance: 'Bilanz',
  history: 'Historie',
  home_categories: 'Kategorien',
  home_net_worth: 'Nettowert',

  // from 0.7.0
  home_budgets: 'Budgets',
  configuration_ui: 'Benutzeroberfläche',
  configuration_color_mode: 'Dark Mode',
  auth_form_personal_access_token_label: 'Persönliches Zugangstoken',
  auth_use_personal_access_token: 'Persönliches Zugangstoken verwenden',
  auth_external_heads_up: '❗️ Wenn Sie einen externen Authentifizierungsanbieter wie Authelia, Keycloak, Cloudflare Tunnels, etc. verwenden werden diese Clients nicht funktionieren. Sie können nur Personal Access Tokens verwenden.',
  auth_create_new_oauth_client: 'Erstellen Sie einen neuen OAuth-Client auf der Registerkarte OAuth, hier:',
  auth_create_new_personal_access_token: 'Erstellen Sie ein neues Personal Access Token auf der Registerkarte OAuth, hier:',
  oauth_wrong_token_error_description: 'AccessToken konnte nicht validiert werden, bitte überprüfen Sie Ihr Token oder Ihre Backend-URL erneut.',
  transaction_screen_edit_title: 'Transaktion bearbeiten',
};

BUG_ Updating the app, client id and secret is not saved

Describe the bug
I had previously set up the app with my Firefly instance, when I installed the new version of the app, the url, client id and secret were reset.

To Reproduce
Steps to reproduce the behavior:

  1. Set up app2.
  2. Update to a newer version

Expected behavior
Those details are saved

Screenshots
If applicable, add screenshots to help explain your problem.

Smartphone (please complete the following information):

  • Device: iPhone 11 Pro
  • OS: 15.5
  • Version: 0.9

Additional context
Add any other context about the problem here.

BUG: OAUTH Connection issue

The bug
When installing the app for the first time and trying to help a friend to authenticate, after login in on the authorization page we got the message:

{"error":"unsupported_grant_type","error_description":"The authorization grant type is not supported by the authorization server.","hint":"Check that all required parameters have been provided","message":"The authorization grant type is not supported by the authorization server."}

To Reproduce
Steps to reproduce the behavior:

  1. Create an Oauth Client on Firefly III (with or without secret). With abacusiosapp://redirect as the redirection URL
  2. Go to the Abacus App
  3. Fill in the URL of the Firefly Instance server (e.g. https://firefly.domain.name)
  4. Fill in the ID with the integer given in the Firefly Server Oauth Client previously created
    4[optional]. Fill in the Secret given from the Oauth client previously created
  5. Click on connect, then login on the instance page
  6. Get the error message:
{"error":"unsupported_grant_type","error_description":"The authorization grant type is not supported by the authorization server.","hint":"Check that all required parameters have been provided","message":"The authorization grant type is not supported by the authorization server."}

Expected behavior
Step 6 should be: successful connection to the server

Smartphone (please complete the following information):

  • Device: iPhone12-mini
  • OS: iOS
  • Abacus Version 0.30
  • Firefly III Server Version: 5.7.12

Please let me know if there is anything i did wrong. Thanks!

Feature request: Add date time in new transaction

Is your feature request related to a problem? Please describe.
I know that FireflyIII web interface does not allow to enter the time of transaction, but i know it is possible because other app (Waterfly) can do it.

Describe the solution you'd like
Activate a date/time widget instead of date transaction.

Describe alternatives you've considered
I don't know.

Additional context
Congratulations for the excellent app, I hope it grows more and more.

Split transaction

When I enter a split transaction on the web app, it does not show the complete transaction in the mobile app. It shows only one record from the split transaction

Add Budgets

Discussed in #23

Originally posted by Roxas2712 July 25, 2022
Hello,

as I already mentioned I would like to use abacus to log all my purchases etc. remotely :)

therefore it would be great to also label my transactions or add them to a specificity budget directly within the app.

Do you think this would be possible?

BUG_Not all Currencies are listed

Describe the bug
In the main screen when selecting the currency, it only shows the first 20-25 currencies. I have more currencies in the app and I cannot see other currencies than the first 20 or 25 of them.

To Reproduce
Steps to reproduce the behavior:

  1. Go to Main Screen
  2. Click on Currency Dropbox
  3. Scroll down to the end
  4. Not listing more than 20/25 currencies

Expected behavior
The list should show all the currencies created in the website

Smartphone (please complete the following information):

  • Device: iPhone 14Pro
  • OS: iOS 17
  • Version Abacus 0.8.1

BUG_ Create transaction button crashes the app

Describe the bug
Opening the app and clicking the add transaction button, the app immediately crashes.

To Reproduce
Steps to reproduce the behavior:

  1. Open app
  2. Click on add transaction button in middle
  3. See the app crash.

Expected behavior
I guess a new window should open

Screenshots
If applicable, add screenshots to help explain your problem.

Smartphone (please complete the following information):

  • Device: iPhone 11 Pro
  • OS: 15.5
  • Version: 0.9

Additional context
Add any other context about the problem here.

Translations i18n

Discussed in #17

Originally posted by Roxas2712 July 21, 2022
Hello:) As for now the app is just working great - would it be feasible to add a few more languages? Like German? I could help with that if help is needed ^^.

Best regards

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.