54

Action Menu Item enhancement : Support for in page pop-ups

--- Background:
Currently Action Menu Items allow to open a new browser window (or trigger an external protocol handler)
Opening a new window with the custom HTTP url works fine in many cases but it also takes users out of their current context and gives the impression of calling an external and somewhat disconnected, separate application.

--- Proposal:
What would be great to add is the ability to open a modal or floating in page pop-up window.
In page pop-ups provide an integrated, seamless, context aware user experience and are already used all over shotgun.
Being able to create them via AMIs would mean there is no visible difference between custom and native shotgun in page pop-ups.
Especially if we are reusing the official shotgun CSS to style our pop-up form. 

The already existing "Poll for Data Updates" feature allows for a full round trip experience with a native feel:
..the user selects a row, calls the pop-up, the pop-up code changes the values of the selected row and shotgun displays it immediately.

--- Use cases: 

- pop-up to allow time logging to external time card application for selected task/ticket
- pop-up allowing user to set options before triggering for example an external transfer request
- pop-up with customized in house version creation dialog
- pop-up to duplicated the selected tasks in another shot with automatic re-linking / renaming
- pop-up with a complex time code calculator which will update the time code on the current row when ok is pressed
- In v2 ActionMenuItems could be registered to overwrite the default entity new dialogs. this would allow creating custom "new version", "new timelog" dialogs
etc.

In a nutshell custom in page pop-ups open the door to extend shotgun in many exciting and creative ways and provide a better user experience!
Do you have more use cases? Please share!
Do you want to see it in shotgun? Please vote under "Me too!"

Thanks,
Patrick

related: https://shotgunsoftware.zendesk.com/entries/110709-creating-custom-menu-items-for-integration-with-other-pipeline-tools




SG-TimeLog.JPG
timecode_calculator.jpeg
SG-TimeLog-Custom.JPG
SG-in-page-pop-up.jpg

19 comments

  • Avatar
    Matt Daw Official comment

    Hi everyone, we're preparing to ship a simple v1 of an AMI Modal Overlay in our next major release. After you've had a chance to experiment with it, we'd love to get your feedback about what our next steps should be. Cheers!

  • 0
    Avatar
    Nhat Phong Tran

    Definitely a required feature!

  • 0
    Avatar
    Tony Barbieri

    I would also love to see something like this implemented.  We really need better validation of data before it gets put into the Shotgun database.  We are having many issues with duplicate Shot names or Asset names being created and it's hard to get control over it.  A custom dialog with web hooks could allow us to run validation before allowing the user to submit the data to Shotgun.  

    The event daemon is great but reacting after the data is in the Database can be too late.  I'd also much prefer to not force users to go through a completely custom tool to deal with Entity creation so deeper customization within the Shotgun UI would be much appreciated!

  • 0
    Avatar
    Alexey Borzykh

    Must have feature!

    Our use case on using AIMs is to read XML editorial file which then should be used to update current SG database (sequences, shots, shot's duration, statuses, e.t.c). So, similar to "import" interface, we'd like to have step by step process of reading -> comparing -> selecting changes we need -> apply changes

  • 0
    Avatar
    Scott Ballard

    +1

  • 0
    Avatar
    'Marc Weigert / Uncharted Territory'
    Yes, please!
  • 0
    Avatar
    Patrick Wolf

    Glad that you guys are into it.
    What would also be great is to use the official shotgun style sheets to style our in page pop-ups.
    ie Shotgun would publish a small sample html form with a couple of controls utilizing the official shotgun CSS.
    Then all we need to do is make use of the same CSS classes to get a native look.

  • 0
    Avatar
    Alexey Borzykh

    Totally Agree with Patrick. Official sample page with CSS would be great to keep SG clean and clear in general UI style.

  • 0
    Avatar
    J Howe

    Task status changes - Very useful to alert managers or other people down the pipeline when a task status changes or versions are ready for review.

    Playlist Opened - Would be nice to see a pop-up when a playlist has been opened and clients are downloading files.

    For tooltips or tutorials - Leave a pop-up tip for other people who are visiting the page to better navigate the page or if there's another page with more info they might be looking for.  

     

    //resumes lurking..

  • 0
    Avatar
    Jeff Beeland

    A use case that's come up recently at Blur would be simpler than most mentioned in this thread, but would benefit from the ability to trigger the drawing of an in-page dialog containing some supplied data.

     

    1) From shots page, user selects some number of shots/rows.

    2) User right-clicks over assets column, selects "show unique asset list for selected shots"

    3) Dialog pops up containing the composite list of assets for all selected shots.

     

    The logic for this could be stored in much the same way as custom menu items, such that a small chunk of Python could be embedded that receives the list of selected items and the column being operated upon, and would return the list of SG entities to be displayed.  That would cover many of the simple "I just want to process the column's data for the selected items and present it in a new way" and would not require the injection of any custom HTML to get the job done.

     

    Hope that makes sense.  We're still relatively new to Shotgun over here, so we are still learning.

  • 0
    Avatar
    Patrick Wolf

    Hi Jeff, thanks for sharing!
    The use-case would fit very well into the in-page pop-up scenario.
    Regarding injecting HTML and Python it would actually happen not on the shotgun side but on your own web server.
    ie shotgun would open a in-page pop-up with an iframe and then load your page into it.
    Your page would read the post request data and then continue to behave like a standard "Custom HTTP URL handler" page.
    see: https://shotgunsoftware.zendesk.com/entries/110709-creating-custom-menu-items-for-integration-with-other-pipeline-tools#custom_http_url
    Attached a quick diagram showing the sequence of events.
    Hope that helps

  • 0
    Avatar
    Janice Thomas

    Hope that makes sense.  We're still relatively new to Shotgun over here, so we are still learning. by VimaxSuplementos®

  • 0
    Avatar
    Russel Rehmund

    +1 for me as well.

  • 0
    Avatar
    Mike Boers

    I'm actually very near being able to offer this sort of functionality via a Chrome extension. I've attached a pair of screenshots showing our enhanced action menu, and the result of one of the debugging actions.

    The caveat: I'm monkey-patching Shotgun's Javascript and it is potentially the most fragile thing you've ever seen. I'm doing everything I can so that it will fail gracefully, and could likely extend that to in-dialog iframes.

    Despite that huge caveat, is building that out something that is of interest? The project lives at <https://github.com/westernx/sgactions> (and the docs are a good few months out of date so don't judge too harshly; this is more an inquiry if this would be useful to not-me, despite the fragility).

    Cheers,

    Mike

  • 0
    Avatar
    Scott Ballard

    That looks  great Mike! Tremendous effort! Any ideas how this will play with Chrome once they phase out the current plugin framework in the next few months?

  • 0
    Avatar
    Mike Boers

    This uses Chrome's native messaging API (<https://developer.chrome.com/extensions/nativeMessaging>), and does not touch the NSAPI at all. This is also one of the reasons that it is Chrome-only.

    This connection could likely also be established in Firefox via <https://developer.mozilla.org/en-US/docs/Mozilla/js-ctypes>, but I have no motivation to try in studio (since I can easily get away with restricting my artists' to using Chrome).

    The most important part of considering this is that the polished UI which behaves very nicely is very sketchy and fragile (I have had it break on a major Shotgun update), but everything is designed to have a working (albeit ugly and slow) fallback.

  • 0
    Avatar
    Scott Ballard

    Again very nice, thanks for putting in the effort and open sourcing it to everyone. I look forward to SGTK reworking their browser plugin to make it compatible with Chrome once NSAPI is gone. Firefox is nice but my preferred browser is Chrome.

  • 0
    Avatar
    Patrick Wolf

    Hey Mike, this looks great and reminds of the power these pop-up's could provide. Thanks for trying this out!

    Unfortunately requiring a locally installed plug-in makes it unlikely that we would use it as the deployment and maintenance across multiple branches and many machines and user accounts is time intensive and error prone. In other words it would take considerable effort to be able to say we can trust that everybody can use a particular pop-up.

    That's why I'm so much for Shotgun adding this feature as it would come without dependencies and just work out of the box.
    It would provide us all with a native way to extend Shotgun while being a seamless experience to end users. 

    So from my perspective all we can do for now is keep asking and add many, many votes to the request!

     

     

     

  • 0
    Avatar
    Ben Hadden

    Hey everyone,

    I wanted to comment on this one because it's definitely been considered:

    First, I definitely see the potential for this as a way to scale how pipeline developer integrate their in-house tools and other 3rd Party apps they're using with Shotgun. The potential to do things like launch a 3rd party time logging tool form from a Task is really awesome and totally makes sense from a user experience standpoint.

    As it stands, there are a few things we'd like to tackle before we implement something like this. Some of these things we're actively working on, some are further out:

    - A consistently styled UI: right now, many of the components in the Shotgun web app are using one-off styles, which makes re-using styles difficult. The reason I mention this is because some pipeline developers have expressed interest in using Shotgun's core styles to style their own custom components (if we allowed them to launch those components in the web app). The way our app is architected, that would be very difficult at the moment. However, the good news is that we're planning on refactoring how we deal with styles in the app that will make this better. Our hope is that work we do to consolidate and simplify our app's CSS will make it possible, one day, for 3rd party developers to build in-page widgets on top of Shotgun.

    - Automated QA: Mike Boers made a great point about how his widgets break from time to time. Although it wouldn't be possible for us to ensure custom in-page pop-ups never break, the work we're doing to automate QA for our web app components will make writing a few tests for common custom pop-ups more feasible. If we allowed you to write custom pop-ups in the Shotgun interface, we'd also want to ensure they don't break. We're not quite setup to do that yet, at scale, but we're working on it.

    - Security: My team assures me that there's a way to pull this feature off without introducing security vulnerabilities into the app, but we'd need to validate that. Once we allow custom apps to run inside our app, even within an iFrame, we need to be extra careful that we're blocking any potential threats.

    So, although we aren't actively developing this feature, I hope you guys can see us taking steps to get here. Over the next year, my hope is that you see Shotgun become better looking, more consistent, more stable, and simpler to develop on, which gets us on the path to a lot of the exciting use cases you bring up in this post. Keep them coming! And let me know if I can answer any questions about my uber-long comment ;)

Please sign in to leave a comment.