Jump to content

Lucas Correia

Administrators
  • Posts

    209
  • Joined

  • Last visited

  • Days Won

    41

Posts posted by Lucas Correia

  1. The documentation could be a bit more clear about this. The JS API doesn't support targeted expressions when subscribing to events.

    That is, the following will trigger the callback if the topic matches regardless of what the data is:

    session.eventHub.subscribe('topic=my-company.some-topic and data.foo=bar', callback);

      

    It should however support publishing events that target specific clients. Try the following:

    const event = new Event(
          'ftrack.action.trigger-user-interface',
          eventData,
          {
              target: 'applicationId=ftrack.client.web and user.id="SOME-USER-ID"'
          }
    );

    Regards,
    Lucas

  2. Hi,

    The Adobe extension consists of two parts: ftrack-connect-spark-adobe (adobe specific logic) and ftrack-connect-spark (shared UI).

    When building the extension, it copies the UI distribution (`node_modules/ftrack-connect-spark/dist/`) to build/staging/ftrack_connect_spark/. I don't actually think the distribution files are checked in into ftrack-connect-spark, which means that you either have to build those files locally or copy the files over from the extension if you are not making any changes to the UI.

    To build the extension with changes to the UI, you will need to:

    1. Clone the ftrack-connect-spark repository
    2. Build it (yarn install && yarn dist)
    3. Configure ftrack-connect-spark-adobe to use the local package
      1. In ftrack-connect-spark: yarn link
      2. In ftrack-connect-spark-adobe: yarn link ftrack-connect-spark
    4. Rebuild ftrack-connect-spark-adobe using grunt

    Regards,
    Lucas

  3. Hi Jen,

    For your use case are you looking at obtaining the file path or uploading the file to the server location / storage?

    For showing the actions interface, have you tried using the ftrack.action.trigger-user-interface event instead of ftrack.actions.launchhttps://help.ftrack.com/en/articles/1040479-events#ftrackactiontrigger-user-interface

    I believe the Web UI listens for the trigger-user-interface event, but not for the launch one.

    Regards,
    Lucas

  4. The Python API Client often uses relationships (e.g. status) to update entities, but when using the raw API backend or the JS API client I recommend that you instead the relationship key attributes instead. In this case, that would be `status_id`.

    A more complete example of a request body would be:

    [
      {
        "action": "update",
        "entity_type": "Task",
        "entity_key": [
          "12bd29be-72b0-11e7-96a7-0a580ae40a16"
        ],
        "entity_data": {
          "status_id": "44dd9fb2-4164-11df-9218-0019bb4983d8",
          "__entity_type__": "Task"
        }
      }
    ]

    Regards,
    Lucas

  5. Hi Mike,

    We have a helper method for obtaining the available statuses in the project schema, but it doesn't seem to be one for returning the available types at the moment.

    It is a bit complicated to follow the entity structure for the project/workflow schemas, so I did a first pass at a similar method which you can find here: https://bitbucket.org/snippets/ftrack/n79e8B

    It might need some more polish before it is read for general use, but I believe it should be enough for your use case. You can use it like so:
     

    getAvailableTypes(
    	session,
    	'AssetBuild',
    	'caddd816-acb5-11e1-8668-f23c91df1211'
    ).then(
    	types => console.info('Types', types)
    );

     

    Regards,
    Lucas

  6. Hi Margot,

    For the next iteration of the client review interface, we will make it possible to add previous invitees by searching for them by name.

    Further down the line, we may also introduce a way to view and manage all external collaborators/clients.

    Thanks for the feedback!

    Regards,
    Lucas

  7. Hi,

    Thanks for reaching out.

    If you call "AssetVersion.encode_media(component, keep_original=False)" the original component will automatically be removed from the cloud storage (ftrack server location) and deleted when the encoding process completes. There is no need to remove it manually.

    Regards,
    Lucas

  8. Hi,

    That is correct, if you are cloud-hosted or run the server over HTTPS/SSL, the dashboard widget must also be served over SSL due to the browsers security restrictions. For development, you could run a SSL proxy in front of the development server.

    To host the built widget, you can google for "static website hosting" for alternatives. It should be possible to host it on AWS S3, Google's storage service, github, etc.. I believe you can use e.g. dropbox for static website hosting as well.

    Regards,
    Lucas

  9. Hi,

    Thanks for showing interest in the widget examples.

    To run the example you linked to in development mode, install the dependencies (`npm install`), and then start the development server using the following command and opening a web browser on port 8001.

    npm start
    

    To build a a production version, you can run `npm build`.

    The example contains a very minimal webpack configuration, which can be extended.  The example can probably be rewritten using create-react-app to avoid having to deal with build configuration etc.. Interesting parts of the example are:

    • Setting up the Javascript API using injected credentials in index.js
    • Fetching and displaying notes in the Notes component.

    Regards,
    Lucas

  10. Hi Chris,

    It should be possible to use an event listener to automate starting a timer for a user when a task's status is set in progress. The reason that we don't do this automatically is that there can be several situations where you do not want the timer started automatically, and it is hard to know when this is. 

    An event listener is a small python script that can be used to subscribe to changes in ftrack and perform custom logic such as updating a status, starting a external process or triggering a user interface. Here are some useful resources for setting up an event listener:

    * Developer hub with introduction to the API
    * How to subscribe with the API
    * Information about the update event
    * Example event listeners

    If you are not interested in logging time, but rather want to see how long a particular task has been in a certain state you can look at querying `Event` objects using the API. There is a snippet with some examples here. You probably want to query for action=change.status.task and parent_id=the task's id.

    Regards,
    Lucas

  11. Hi,

    We have just added a new "Clone review session" feature to client reviews in ftrack 3.3.17. Cloning review session will allow you to carry over the collaborators from one review session to the next, making it a lot easier to work with reoccurring review sessions with the same collaborators. Hosted sites will be upgraded to this version during the next week. More information is available in the release notes for 3.3.17.

    We still have more plans to further improve the workflow when inviting collaborators to review sessions going forward. Please let me know what you think; does the new feature implemented work for your use cases, or do you need anything more?

    Regards,

    Lucas

    review_session_clone.png

×
×
  • Create New...