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

[Feature] UI Plugin API Improvements #4510

Open
3 tasks done
QxxxGit opened this issue Jan 27, 2024 · 15 comments
Open
3 tasks done

[Feature] UI Plugin API Improvements #4510

QxxxGit opened this issue Jan 27, 2024 · 15 comments

Comments

@QxxxGit
Copy link

QxxxGit commented Jan 27, 2024

Per WP's suggestion, this is an issue for plugin developers to request improvements to the UI plugin API. This single issue would be used to keep requests in one place.

My current requests (completed):

  • Date picker support
  • Country dropdown select (display countries with flags)
  • Tag dropdown select (includes tag previews and pill badges)

Edit: Updated for cleanliness and to mark as completed.

@ralle947
Copy link

ralle947 commented Feb 6, 2024

We need functionality to move and create elements to all parts of all pages so that those who work on making themes and scripts can fulfill their creative ideas.

@7dJx1qP
Copy link
Contributor

7dJx1qP commented Feb 13, 2024

  • A way for plugins to provide custom mutations and subscriptions that can be executed and subscribed to by the UI. I currently work around this using tasks but I have to hide the ones that require arguments from the tasks page and I also need to poll the logs to be able to receive any output and have the UI act on it.

  • A "multiple" plugin config setting property in addition to the "description" and "type" setting properties. A multiple value of true would indicate that the setting is a list of values rather than a single value. I currently work around this by allowing for comma-separated strings for multiple values, but it would be nice if the UI showed a list input for these kinds of settings.

  • A "visible" plugin config setting property to control whether a setting is shown in the UI. This can currently be worked around by hiding the element through the UI script. Nevermind, this is already supported

  • Additional plugin config setting types like date, country, tag, studio, performer, tag, etc. that would use those specialized input components OR allow config settings to be hooked so the UI plugin can replace the text inputs with the specialized input components.

@QxxxGit
Copy link
Author

QxxxGit commented Mar 4, 2024

Another request: Scene page as a patched component, with access to some of the current components on that page. I think the essentials I would need are the video player and... maybe the queue? I think if I had those I'd have a good amount to work with. Extra tooling like the tab/pane functionality could be useful, but lower priority.

@Ceequester
Copy link

Text blocks as a type to allow for users to create more complex configurations for things like pathParser without needing to edit the plugin code manually which should hopefully be on the way out with a built-in installer.

@QxxxGit
Copy link
Author

QxxxGit commented Apr 20, 2024

Can I get a confirmation: when I register a route, that route can only be viewed when navigating from an existing one. I cannot view the page by visiting localhost:9999/plugin/test-route on its own. Doing that or refreshing the page throws a 404.

@Valkyr-JS
Copy link

Valkyr-JS commented Jun 16, 2024

Thanks for adding the PerformerDetailsPanel components, they're working nicely. Could I request the PerformerCard and TagCard components as well, if that's okay?

Thanks

@Valkyr-JS
Copy link

Valkyr-JS commented Jun 16, 2024

Also, for some reason play_history and last_played_at are not available on a plugin GQL query. Here's a snapshot of my console log if it helps.

Hopefully this is the best place to raise this - apologies if not.

image

@Valkyr-JS
Copy link

Sorry to keep asking for stuff! It would also be useful to have a defaultSettings option in the plugin yaml so that we can set defaults there. This would be similar to the defaultArgs option in plugin Hook configuration.

Currently, default values are 0, false, or "" as the settings are undefined. There are cases where it would be better to have different values as default, however.

Thanks

@blackx69
Copy link
Contributor

blackx69 commented Jul 8, 2024

Would it be possible to add the hooks to more components like the Scene detail tabs. I would like to add a few features to the File info tab content component.

@feederbox826
Copy link
Contributor

Integration of library features into core PluginAPI

csUiLib

  • raw /graphql interface with APIKey and base path
    • While the typed interface is nice, it is obviously lacking features and direct translations
  • syncronous access to plugin settings
    • currently the best way is to async access through pluginApi or by stealing it with forbiddenConfig
  • wait for key elements function
  • path + element listener
    • subpage and page change listeners

7dJx

  • gql listener
  • pretty logger
  • mutation observer
  • stashbox(es) interface

@Valkyr-JS
Copy link

Valkyr-JS commented Nov 4, 2024

Please could I request the components for the performers page Appears With tab and pane be made available to the plugin API? I'd like to work on a plugin that would filter out certain performers from the Appears With pane and update the number badge on the tab. See #5444 for info.

@feederbox826
Copy link
Contributor

Please could I request the components for the performers page Appears With tab and pane be made available to the plugin API? I'd like to work on a plugin that would filter out certain performers from the Appears With pane and update the number badge on the tab. See #5444 for info.

might be better in a standalone issue

@Valkyr-JS
Copy link

Please could I request the components for the performers page Appears With tab and pane be made available to the plugin API? I'd like to work on a plugin that would filter out certain performers from the Appears With pane and update the number badge on the tab. See #5444 for info.

might be better in a standalone issue

How so? I only need the components exposed, the rest I can do myself. If I need to raise it separately though, I'm happy to.

@Valkyr-JS
Copy link

Could I also request the React-Select library be exposed to the PluginApi.libraries options? I see its used in the main app but when I try installing it separately for my plugin, I get the below error. Looks like it's not finding React correctly, so I'd expect using the same library instance as the app will fix this.

image

@S3L3CT3DLoves
Copy link

As far as I can see, the Scene page is not in the Plugin API right now right?

I would love to move QuickEdits to a more native plugin, but for that I will need the ability to inject a custom tab on the left side of the scene page.

To avoid conflicts between tabs, I would also need for this tab to use the same data as the Edit tab, so changes in one tab don't overwrite changes made in the other. So either I re-create the Edit tab with the plugin, or somehow I can access the scene data it uses ?

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

No branches or pull requests

8 participants