Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Add user navigation

...

dRofus web application offers integration through embedding, in which the embedder clients can display dRofus data panels inside their application space. dRofus integrated application runs in a browser context and expected to be embedded through HTML iframe or run in a browser widget (e.g. WebView on Android, BrowserControl for C#/WPF) in app.

Remarks for apps

  1. integrated dRofus uses browser cache to boost startup performance, application assets (static files like html, css, javascript, images, etc.) are only being loaded first time (or if changed) and subsequent startups are being served from browser cache. To utilize this in apps, make sure browser widget cache is not being discarded if the application is closed.
  2. In some cases, integrated dRofus opens a new browser tab/window (when downloading files or opening the full dRofus webapp with the same context). Browser widgets default implementation is ignoring such external navigation (target="_blank") Embedders should implement then handle such event, for example in WPF WebView, NewWindowRequested event.

Login and startup
Anchor
login_startup
login_startup

...

Displaying the desired panel

...




Showing dRofus content

Application requires a logged in user, please do login first! The content of dRofus integrated application is displayed as a result of either by embedder's control or by user interaction (i.e. clicking on links). Embedder controls the content through application URL.

Remark: dRofus integrated application uses Single Page Application-technique for navigation. That means, that the application is loading the HTML-document and assets on startup, and only loads data from the server on user interactions (as in contrast with traditional applications, where the full rendered HTML-document is loaded, where data is blended in). It is often referred as client side navigation. This does not effect the embedder

The path URL of entry point to our dRofus integrated application is: is /embedded path on the corresponding application server. Application requires a logged in user, please do login first!

...

 and followed by one frontend URL (as a URL fragment/hash) as listed below.

Allowed frontend Urls

  • #/rooms/search?value={searchValue}

    #/rooms/search/{attributeId}?value={searchValue}

    Searches for rooms. If single result, shows the detail panel. If multiple, a selector is shown

    Parameters

    • : Defines what to search fro
    • : Optional parameter defining which field to search in
  • #/rooms/room/{roomId}

    Shows room detail panel

    Parameters

    • : Drofus room identifier (integer number)
  • #/articles/search?value={searchValue}

    #/articles/search/{attributeId}?value={searchValue}

    Searches for items. If single result, shows the detail panel. If multiple, a selector is shown

    Parameters

    • : Defines what to search fro
    • : Optional parameter defining which field to search in
  • #/articles/article/{articleId}

    Shows item detail panel

    Parameters

    • : Drofus article identifier (integer number)
  • #/occurrences/search?value={searchValue}

    #/occurrences/search/{attributeId}?value={searchValue}

    Searches for occurrences. If single result, shows the detail panel. If multiple, a selector is shown

    Parameters

    • : Defines what to search fro
    • : Optional parameter defining which field to search in
  • #/occurrences/occurrence/{occurrenceId}

    Shows occurrence detail panel

    Parameters

    • : Drofus occurrence identifier (integer number)

User navigation

dRofus Web and integrated application in many cases displays links for relations between entities (i.e. item-occurrence, room-occurrences, etc.). dRofus integrated application allows the users to follow these links, we refer this as user navigation. If a user navigation occurs, dRofus integrated application notifies the embedder.

Notification is a message event sent to the embedder's window object. Message payload contains the name of destination and parameters (i.e. entity ID).

Remarks:

  1. This feature is experimental, and implementation details might be changed on short notice. Actual message format will be added to documentation, once it is settled
  2. It is currently not possible to cancel a user navigation by the embedder. 
  3. The current implementation only supports message-based workflow, which aligns well with HTML iframe environment, however might be inconvinient for apps. One proposal for apps would be that embedder hosts an HTTP-server, which dRofus integrated application would post data to. Please contact us if you have a proposal.