Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

set imageurl prefix to use new nextcloud-commons capabilities #1489

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

newhinton
Copy link
Contributor

@newhinton newhinton commented Mar 21, 2022

This sets the url prefix in nextcloud-commons:markdown

It requires newhinton:feature/noid/imageurl, until a version with this pr is released, it is nessessary to add a local version of that branch to be used by the notes app.

This pr is tiny, and only supports images. The web-app does support arbitrary attachments, and provides a download for those. However, i think i broke mardown-conventions in doing so, so we may or may not want to support it here aswell. If we do want to support it, i have to change the library to make it work.

Also, when images cannot be loaded, we currently only show a broken image, shouldnt we also display the alt-text?

closes #1051

Oh, and i didnt check if servers that override index.php work, since the note object did not provide the "basepath", just the fqdn (or ip adress in my case)

@@ -114,6 +114,7 @@ protected void onNoteLoaded(Note note) {
super.onNoteLoaded(note);
noteLoaded = true;
registerInternalNoteLinkHandler();
binding.singleNoteContent.setMarkdownImageUrlPrefix(repo.getAccountById(note.getAccountId()).getUrl()+"/index.php/apps/notes/notes/"+note.getRemoteId()+"/attachment?path=");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This uses the internal API of the notes app. This is not intended (and will not always work). Please wait for nextcloud/notes#826 to be implemented and then use the official API!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

okay, now i have to say i am still confused about what you mean with internal API.

The only difference between above endpoint and the notes_api-routes are that the latter do have a requirement-version, but besides that i cant see a difference. Is it only semantic and therefore "locked" down? Because most other apps that i have contributed to didn't really check for that (Which isn't really the best style, but yeah.)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The internal API is used by the web app, only. It has no public contract, so it can be changed at any time without information to third-party developers. It is fitted to the demands of the web app and not to the demands of third-party apps like mobile apps (e.g. which have an offline mode).

In contrast to this, the public API has a public documentation as well as continuous integration tests, it changes very seldom, changes must be backwards-compatible (create an incompatible new major API version should be used with caution) and it is fitted to the needs of mobile apps.

@AndyScherzinger
Copy link
Member

Rebased due to major technical updates in terms of libraries, especially AGP and SSO

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

📎 Attachments
3 participants