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

feat(settings): migrate AppAPI ExApps management to settings #48665

Open
wants to merge 12 commits into
base: master
Choose a base branch
from

Conversation

andrey18106
Copy link
Contributor

@andrey18106 andrey18106 commented Oct 11, 2024

Summary

This PR migrates the UI for ExApp management to default Apps management page (settings app).
On backend side in settings app there is only addition for initial state for ExApps UI.
All ExApp related logic is in separate store that uses backend API part of AppAPI.
Also small fix for markdown render.

Screen Shot 2024-10-14 at 17 01 48

TODO

Checklist

Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
Copy link
Member

@bigcat88 bigcat88 left a comment

Choose a reason for hiding this comment

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

Checked, the functionality works.

Note for future reviewers: a backport of this pull request will be included in version 30.0.2, the merge is planned to be right after the release of 30.0.1, so that everyone has enough time to test.

Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
…s bundled

Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
Copy link
Contributor

@susnux susnux left a comment

Choose a reason for hiding this comment

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

Nothing very critical but a lot of stuff summing up. See comments.

$defaultDaemonConfig = null;

if ($appApiEnabled) {
$exAppFetcher = Server::get(\OCA\AppAPI\Fetcher\ExAppFetcher::class);
Copy link
Contributor

Choose a reason for hiding this comment

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

This probably should be part of server somewhen^^

@provokateurin do you think we can have stubs here or will have to fill up the baseline?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

AppAPI is shipped since 30.0.1

apps/settings/lib/Controller/AppSettingsController.php Outdated Show resolved Hide resolved
apps/settings/src/components/AppList/AppItem.vue Outdated Show resolved Hide resolved
apps/settings/src/mixins/AppManagement.js Outdated Show resolved Hide resolved
apps/settings/src/mixins/AppManagement.js Outdated Show resolved Hide resolved
apps/settings/src/mixins/AppManagement.js Outdated Show resolved Hide resolved
apps/settings/src/mixins/AppManagement.js Outdated Show resolved Hide resolved
apps/settings/src/mixins/AppManagement.js Outdated Show resolved Hide resolved
const mutations = {

APPS_API_FAILURE(state, error) {
showError(t('app_api', 'An error occurred during the request. Unable to proceed.') + '<br>' + error.error.response.data.data.message, { isHTML: true })
Copy link
Contributor

Choose a reason for hiding this comment

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

Is this really needed, does the message contain USER information? Or is this just technical information?
If it has user information (not just technical), then rephrase the message as it will be likely truncated as the first part is even every long.

If it contains user facing information then just show that, as the first part is really unhelpful, otherwise just show the first part and log the error.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Not sure, it wasn't changed because it was originally clone from the settings "apps" Vuex store. Will remove.

apps/settings/src/store/app_api_apps.js Outdated Show resolved Hide resolved
Copy link
Member

@julien-nc julien-nc left a comment

Choose a reason for hiding this comment

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

I'm not sure how likely it is to happen in a production environment but in my dev setup, some apps don't have a licence so when clicking on their list item, the sidebar does not open.
image

@susnux
Copy link
Contributor

susnux commented Oct 15, 2024

I'm not sure how likely it is to happen in a production environment but in my dev setup, some apps don't have a licence so when clicking on their list item, the sidebar does not open.

How can this happen? I was pretty sure the license is a required field in appinfo.xml thus the appstore should deny uploading such an app?

@andrey18106
Copy link
Contributor Author

I'm not sure how likely it is to happen in a production environment but in my dev setup, some apps don't have a licence so when clicking on their list item, the sidebar does not open.

How can this happen? I was pretty sure the license is a required field in appinfo.xml thus the appstore should deny uploading such an app?

It's a Test Deploy app, or any other manual-install type ExApp, it has no appstore information, only short info from DB.

Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants