Every asset type has a corresponding workspace page. The corresponding workspace page is set in the page blueprint.

Dialog spot

Every page has a Dialog spot, where all dialogs are created on the DOM. The management of all dialogs on that page is provided by Dialog Manager, which keeps in memory a stack of all the dialogs that the user opens on the page. Therefore, if a user switches to another page and then back, the dialog manager will take care to revive this stack and will show the latest dialog from that stack. If a dialog has been closed by the user, it will be removed from the stack immediately.

Life cycle

A page is kept in the memory, while it is appearing in Navigation Bar under section Open. Only if a user deletes it from this section or reload the browser window, the page will be destroyed and removed from memory.

For example, if a user switches to another page, all angular $scope (DOM) will be destroyed and all DOM elements of the current page will be removed, but all headless data managers of widgets and all applications (client-side and backend) will stay allocated in the memory and keep the latest state. In case a user returns to the previously closed page, all the controllers and directives of the widgets and dialogs will be instantiated again and the corresponding DOM elements will be recreated. At this point, it is possible to fetch the previous state of every widget and dialog.

If a tab inside the opened page has been switched, then all the DOM of all widgets which were on the closed tab will be destroyed, but the headless data managers of those widgets will stay allocated in the memory and will keep the latest state of the widget.

Javascript code

In the framework, the page API can be found in csPageRegistry.js and csPageBorder.js.

  1. Workspace configuration
  2. Applications in censhare framework
  3. Widgets
  4. Dialogs