Create Dataview out of the current view

Goal of the activity

The user can navigate in the table view and we would like to be able a stored Dataview out of the current settings that the user has set within that Dataview

The filtering, the sorting and Freetext filtering shall be automatically acknowledged and stored.

The name of the dataview shall be user-given.

The dataview shall be stored in an automatic Package specifically for that activity.

The user shall be able to easily use that dataview.

Workpackage Breakdown

  • ✓ Check that the user can filter and sort as intended

    • ✓ Migrate Dataview to use Dynamic Views

  • ✓ Activate Storage of the current view

    • ✓ Provide Storage button

    • ✓ By activation of the Storage button, the user shall be able to define the name of the created DataView

    • ✓ Define package in which the user-defined storages shall be done

    • ✓ Store current DataView into the defined Package

  • ✓ Provide the action which allows the storage

    • ✓ Creates the package

    • ✓ Stores the view itself

    • ✓ Creates the QueryStatement

    • ✓ Check that the references are correctly added!

  • ✓ Define Mechanism to retrieve the stored view

    • ✓ Include Form Selector into the Table View

    • ✓ User shall be able to select the DataView

    • ✓ Instead of client-defined Query Statement, a server-selected QueryStatement shall be chosen.

Check that the user can filter and sort as intended

Feature Branch: feature/migrate_collecitonform_to_queries

  • Everything seems to work correctly, we have added the option to remove sorting by third click (4b38be356d0b2a98e82b38c5a6831c584b7ded82)

Activate Storage of the current view

The implementation is done in the function of 'createFunctionToStoreCurrentView' in the TableForm.ContextMenus.ts file.

Provide and define Storage button

Define package in which the user-defined storages shall be done

Store current DataView into the defined Package

The defined dataview shall contain a dynamic mechanism which allows also the use of the DataView for other tables

Creates the dataview

The implemenation will happen in

  • Assembly: DatenMeister.Forms.Actions

  • Action: CreateFormUponView

The action parameters are:

  • name: Name of the package

  • viewnode: The full set of the viewnode

  • package: The package in which the viewnode shall be stored

Define Mechanism to retrieve the stored view

Include Form Selector into the Table View

Done via clickable butteon which shows the export

User shall be able to select the DataVie

Done via ItemSelectControl

Instead of client-defined Query Statement, a server-selected QueryStatement shall be chosen.

The Clients.Elements.queryObject is required to load also from a pre-selected QueryStatement.

Here are two options open:

  • Option 1: Directly use the existing API and reference to the query and its url

  • Option 2: Use the existing API but implement another server call

  • Option 3 Create an intermediate QueryStatement object which is just gatewaying to another option

Option 1
  • We get a quite cluttering API call signature on client side

  • No increased # of API Calls

  • Dependent on whether the server call by just referencing the target querystatement is working

Opton 2
  • Would be quite clean

  • Dependent on whether the server call by just referencing the target querystatement is working

Option 3
  • New object is being created

  • Might be useful also in future for indirect requests

  • No change on existing Server API and Client API

Decision

We will choose for option 3 to allow also future usages of that new type. The name of the new ViewNode will be called 'ReferenceViewNode' and will contain the following properties:

  • name: As always

  • workspaceId: Id of the workspace in which the referenced item is being located

  • itemUri: Uri which is used to dereference the workitem.