Code Monkey home page Code Monkey logo

swift-paperless's Introduction

Native Swift app for Paperless-ngx

This repository is for a native Swift iOS app for the Paperless-ngx software. Paperless-ngx is a self-hosted document management system that helps you organize your documents digitally.

This application requires a self-hosted instance to function.

TestFlight

To get the latest development version of the app, grab it on TestFlight!

swift-paperless's People

Contributors

cbot avatar christophe85 avatar luegm avatar paulgessinger avatar ptst avatar

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  avatar  avatar

swift-paperless's Issues

Adding file via camera doesn't work?

Hey, I'm trying to add some new files into my paperless instance via the app.

After using the plus button, I'm not seeing the document added. Am I using it wrong in some way?

Please see repro attached

trim.47859900-6B7D-454D-B228-6C0A551188AD.MOV

Swift Paperless App Not Retrieving Data

Hello, I have an issue with the Swift Paperless app on my iPhone. Unfortunately, the app doesn't seem to pull any data from my paperless-ngx installation. Logging in appears to work seamlessly with no error messages or anything of the sort. However, I can neither upload a file nor see anything stored in my paperless instance.

Everything is just empty. What can I do to solve this problem? I also tried the PaperParrot app as an alternative, and it worked with the same data without any issues.

Support forward-auth logins like Authelia, Authentik

It's currently not possible to log in to a Paperless-ngx server behind a reverse-proxy login mechanism like Authelia or Authentik.

Possible solutions could be:

  1. One possible workaround is disabling the login checks for the /api and allow the app to retrieve and use a token bypassing the login service.
  2. The Less Paper app uses a method that detects redirects, presents a web view, waits for a login and subsequent login back to Paperless-ngx, and captures cookies in the process. The stored cookies then allow the app to communicate with the /api endpoint. This has the possible caveat of requiring the app to throw up a web view where the app has full access to the web content. I'm looking to support this in an opt-in rather than on-by-default way.

Please chime in if I missed anything!

Feature ideas

  • Setting to select saved view that presents as Badge count
    • requires API method to get just the count not all the documents
    • can maybe update in the background?

Improve document editing UI to allow referencing the document while editing

So far the best app for paperless. Very good work.

But there is one thing I don’t like. If I edit a document, I only see the document in the background. So I cannot check for example the date on the document.

It would be nice if I can edit the details in the document view and don’t need the popup.

Adding Swift-Paperless to Paperless-ngx Wiki

Hey Paul,

Hope you're doing well!
I've been using Swift-Paperless and thought it's a great fit for the Paperless-ngx 'Affiliated Projects' list (https://github.com/paperless-ngx/paperless-ngx/wiki/Affiliated-Projects).

I believe adding your project there could help more users discover it and benefit from what you offer.
It seems like a win-win for both communities.

What do you think?
If you're on board with the idea, I'm happy to help out and try to get it added.

Cheers,
Michael

Add image upload capability

I am currently facing a challenge with importing images into the paperless system. Specifically, some of my receipts are only available in PNG format due to the export behavior of the LIDL app in my case.

Feature Requests:

1. Support for JPG/PNG Import:
Details: Modify the image import functionality to support image formats, considering cases where receipts are exported as JPG or PNG instead of PDF by certain apps like LIDL.

2. Camera Roll Access:
Details: Introduce a feature that allows direct access to the device's camera roll within the paperless app. This enhancement would enhance user convenience, making it easier to import images directly from the camera roll.

3. Integration with Photos App:
Details: Enable a seamless integration with the Photos app by implementing a share function. This would facilitate the direct sharing of images from the Photos app to the paperless system.


Context:
I really appreciate the paperless app and use it regularly as it has proven to be the best paperless app I've tried by far. Despite this, I believe that these enhancements would significantly improve the overall user experience by addressing the challenges associated with specific image formats and streamlining the import process from the camera roll.

Note:
This issue is being raised to suggest improvements in the image import functionality and the user interface for better compatibility with various receipt formats and enhanced convenience.

Directly apply chosen document type, correspondent, storage path when editing / creating

Hey, thank you a lot for creating the app. Works very well for me. ❤️
I have sorted a few documents in the last days and wanted to propose a little change.

When editing a document and changing something like the document type where only one option can be selected I would like the UI automatically use my selection (as it already does) and then also do the "back" step for me, where I have to tap once to get back to the edit view. This also applies to the correspondant but of course not for something like tags.

Paperless with application path

I have been trying to use the app but login was not working. I finally got the code and it looks like the application does not handle when paperless is deployed to an application path.

I have paperless deployed at a URL like (behind nginx):
https://myhome.myserver.com/paperless

In going through the login code I noticed the /paperless was being stripped so when the app tried to make API calls they were going to https://myhome.myserver.com/api rather than https://myhome.myserver.com/paperless/api. I modified the login deriveUrl function so components.path += "/api/" + suffix and that allowed the login to work but then other API calls appear to be failing. I'll look around for more places to modify in a similar manner but I wasn't sure if that was the "right" solution.

Thank you for all your hard work on this app!

Default owner permissions incorrectly applied

This is a rather odd one. When creating a new tag or correspondent in the app, it appears to assign a "blank" owner (you can clear this later via the web app).

This causes grief when attempting to view documents with another user account.

Add Shortcuts support

For example, the app could receive documents to upload them. This would for instance allow connecting to a VPN like tailscale before triggering the upload.

Translation to Polish

Hi! Awesome app, thanks for the effort!

I’d like to translate to Polish language, can you please add stub translations to the xcstrings?
Once you do it I can use the Localizator app to translate.
Or, if there is another process defined I please point me to it and I’ll follow it :)

ASN number not incrementing

Firstly, amazing app does pretty much everything I need and beautifully presented.

One issue I have is if adding ASN to a document and clicking the +1 I just get 1 rather than the next increment.

Thanks.

How to bypass Cloudflare Tunnel one time PIN authentication

I have an issue though once I set up authentication on my Cloudflare tunnel Eg One time PIN, the app will not work.

I check ur GitHub and the solution seemed to be using "Custom Header with API requests" (#11)

But I am not sure how to set it up in the Extra Headers.

I tried setting up two headers
CF-Access-Client-Id: xxxx
CF-Access-Client-Secret: xxxx

But still does not work.

Any advice on how to set up the app to work even with One Time Pin authentication

Login not Possible

I am not able to login into your app. Neither on iPhone (17.0.3) nor on Mac (14.0). Unfortunately I don't get any more feedback than the white cross in the red bubble on the login button. The Path is accepted (green bubble) and I am really sure the Username and the password fits. I run Paperless-ngx (1.17.4) via docker on an unraid server. The login attempt does not appear in the Paperless logs.

Is there a way I can give you more data for analysis or a specific config I have to enable?

Thanks for your help

Option to accept an access token instead of username/password

Is it possible to accept an access token directly instead of a username and password?

This would allow the app to work with the following Paperless setup, which I use:

  • Authelia used to manage access to Paperless
  • Nginx used as a reverse proxy with the auth_request module configured to use Authelia to authorize requests
  • Paperless configured with PAPERLESS_ENABLE_HTTP_REMOTE_USER=true and PAPERLESS_HTTP_REMOTE_USER_HEADER_NAME set to the header configured in Authelia. In my case the default HTTP_REMOTE_USER value
  • Nginx configured to bypass Authelia for Paperless /api endpoints

With this setup, it means that:

  • User accounts are centralised behind Authelia's user store (in my case a local LDAP server)
  • User accounts in Paperless are created automatically on first access
  • Paperless accounts don't have a password set
  • To access the Paperless API, we can use Django's Admin interface and create a token in admin/authtoken/tokenproxy/ for an existing user

I see the app already allows to add custom headers but at the moment, even if we manually create an Authorization: Token xxxx header, the login flow is still there.

Improve error message in case document is too large

In my initial setup, upload of larger files failed. The error (Failed to create Document) message was not specific enough, so I had to dig into my nginx server logs.

The http reponse was 413 - content too large. It would be cool if the http error code would be displayed in die error message.

I am not a swift deveoper, nor can test any change. :-(, but I enjoy the app.

I solved the issue by configuring my nginx reverse proxy accordingly.

Matching Patterns for Any Allocation of tags, etc. cannot be edited

On swift-paperless version 1.0.1, the editing of matching patterns for non-automatic matching algorithms is not possible. The creation of new, e.g. document types, with a custom (any) matching pattern is however possible.

Steps to reproduce:

  • on the webserver create a new document type with allocation algorithm Any and set the matching pattern to any word
  • go to the app and try to change the matching pattern words
  • matching pattern words will not show up

Info: I have only tried this for document types with the matching algorithm any. But I assume that this is a generic implementation and thus applies to other allocation algorithms as well.

Current Workaround:
To get the input field for a custom matching pattern, you have to set the algorithm to something else, then change it back to your desired matching algorithm. Then the matching pattern input field will show up and contain your previously set words.

Editing not possible:
IMG_5664
Creation of a new document type with matching Any is working with match input:
IMG_5665

Authorizations are not applied correctly

First of all: I'm not sure if this is a problem with the app or with Paperless-ngx, but the permissions of the documents are not taken into account when they are displayed in the app.

If I log in with my normal user without admin rights, who should only have access to his documents, I am still shown documents that are explicitly assigned to only one other person as the owner. Everything is displayed correctly in the browser.

Is this a bug within the app or should I also open an issue with Paperless-ngx because the rights are apparently not assigned so robustly that the behavior can occur?

Addendum: The whole thing occurs under iOS 17.3.1, both under the last stable version and in the version currently published by TestFlight.

@shamoon: FYI

Add ability to view upload status

Hi, I noticed that when I upload I see the upload status on the right side for a few seconds and then it disappears If there is an error I don't get any info about it only if I login to the ui of paperless then I see that is a problem with the upload of the file....

if we able to get info about the upload it we be great

Asn does not increment

Version 1.0.22 on iOS 17.2.1 with paperless-ngx 2.2.1

steps to reproduce:

  • create a first document
  • press Asn „+1“ button
  • Asn 1 is correctly assigned
  • Save document
  • Create new document
  • Press asn „+1“ button
  • Asn 1 is assigned

expected behavior: asn is correctly incremented to „2“

Import File from Camera

Please support the import of Files direct from the camera. So when you click the + you can choose "Camera", take the foto und it will be uploaded automaticly.

Unable to add files with the share menu

Hi, I was using the app today with iPad Pro 11 and when I tried to upload a file to the app through the share menu the save button wasn’t there and the other field was unusable
See screenshot
Don’t know if this is a problem with iPadOS or the app and don’t know if this problem is with the screen size or because I use a language that is RTL (Heb)

image

Saved Views disappears

Hi there,

I noticed, that if you have some views saved, they will simply disappear.
You can still create new ones and save it, but they won't be displayed.

One the webpage you can still see them, but not in the app.

Scan documents directly from the app

Good morning,
It would be interesting to be able to scan a document directly from the application.
I don't know if this is possible but you would have to use the same function as in the file application.
In any case, congratulations for the rest of the application which is very beautiful and intuitive.
Best wishes

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.