Possibility to add UI Elements and JS code?

Hi everyone!

My first post here.

I was wondering if plugin developers have the possibility of adding UI elements to views other than the settings page. Is there any update/plan about this?

I couldn’t find any documentation and the few topic on the forum are old or left unanswered.

I was planning to code a plugin, but having the possibility of adding UI elements and JS code outside the settings page is kind of a deal breaker. In my particular case I am talking about adding a button in the “player bar” that could open a view with some Javascript.

Thanks.

1 Like

I don’t think you can. The best I could do is add HTML / JS in the title area of a music service plugin’s browse section, like this:

‘Set current selection as default’ will execute a call to save plugin settings. ‘Browse by tags’ will invoke a fetchLibrary command.

But you won’t even be able to do this if you’re not writing a music service plugin…

1 Like

Thanks for your reply @ patrickkfkan.

I can’t find in a view like the one in your screenshot.
What plugin/view is that?

My plugin would probably not be a music_service plugin.
It would probably be a user_interface plugin, but I am here exploring the different options.

It’s the Bandcamp Discover plugin, which requires manual installation through ssh.

The code for generating the ‘Set current selection as default’ and ‘Browse by tags’ links can be found here.

1 Like

Thank you so much @patrickkfkan,
I looked through the code and found it very useful.
With some hack here and there I should be able to do what I need…

You’re welcome :slightly_smiling_face:

If anyone from the core team is following:

I think giving more control over the UI would open a lot of possibilities for developers and great plugins.
Adding a button, a new view, a menu item, etc.

My suggestion would be to have something similar to what Wordpress CMS have.
WordPress allows developers to add features and modify behaviour by using the two easy concepts of actions and filters. It can be implemented in any language and require little effort on the “core” development, but opens a lot of possibilities for third party plugins.