https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=35837 --- Comment #27 from Martin Renvoize (ashimema) <martin.renvoize@openfifth.co.uk> --- Created attachment 206486 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=206486&action=edit Bug 35837: Add a Vue plugin store page for discovering and installing plugins Adds a staff-interface "Plugin store" page (Administration > Plugins) for browsing plugins published to a configured plugin-store service and installing them, alongside the existing manual upload path: * Search/filter the store's catalogue by name, description or author, with an option to include releases that don't declare support for this Koha version * Install directly from a search result, or upload a local .kpz file * A plugin already installed, but with a newer release available, shows an "Update available" badge and an Update action in place of Install -- reusing the same install flow, since the backend already overwrites in place and runs the plugin's own upgrade() hook * Unsigned-plugin and unsupported-Koha-version installs require explicit confirmation before proceeding, with the backend's error code driving which confirmation (if any) is shown * All plugin-store-supplied metadata (name, description, author, version strings) is HTML-escaped before rendering -- it's text from a remote, third-party service The search results table is fed by two independent fetches (the store's catalogue, and this Koha's installed-plugins list); a watcher on each refreshes the DataTable so a completed install/update is reflected immediately, without a page reload. Also wires the page into the admin menu and breadcrumbs, and extends the shared Vue HttpClient with postForm() (multipart uploads) and clearer error-message extraction for Mojolicious::Plugin::OpenAPI validation failures, both needed by the upload path. Test plan: 1. yarn build 2. Configure plugin_store_url in koha-conf.xml, pointing at a plugin-store instance with at least one published plugin. 3. Administration > Plugins > Plugin store: confirm the catalogue loads, search/filter works, and installing a plugin succeeds and is reflected in the table without reloading. 4. Upload a local .kpz file via the Upload plugin button and confirm it installs. 5. Downgrade an installed plugin's version on disk, restart, and confirm the row now shows "Update available" with a working Update action. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> -- You are receiving this mail because: You are watching all bug changes.