Report data API

Report data is component which is reponsible for showing data inside Grid, Tile and List (refered to as GTL). This component shows a lot of data so it comes with API along side of it. This API is for working with GTL and both changing its state and getting data out of it.

Sending data

To initiate any action you just simply call specific function called sendDataWithRx which is hooked to Rx.js’s Subject and forwards these messeges to corresponding controller.

You have to specify 3 attributes when comunicating with report data API 1) controller - reportDataController, constant and should not be changed 2) action - what action should be initiated 3) data - if action requires some data pass them via this attribute

Example of how to send data to GTL:

sendDataWithRx({
    controller: 'reportDataController',
    action: 'SOME_ACTION_NAME',
    data: []
})

Notice that data is always array even if you are sending single value always pass it as array.

Some actions will store data in ManageIQ.qe.gtl.result, it’s either direct result (string, number) or object which contains item or items, based on action.

Actions

select_item

Action which selects item based on its id. Data should be array with first attribut ID of item and second true|false to select|deselect item.

sendDataWithRx({
    controller: 'reportDataController',
    action: 'select_item',
    data: [1, true]
})
click_item

Action to click on item and take you to detail page of such item. Data should be array with one attribute ID.

sendDataWithRx({
    controller: 'reportDataController',
    action: 'click_item',
    data: [1]
})
select_all

Action to select all items on screen. Data should be array with one attribute true|false to select|deselect all items.

sendDataWithRx({
    controller: 'reportDataController',
    action: 'select_all',
    data: [true]
})
go_to_page

To navigate to specific page call this action. Data should be array with one attribute, page number.

sendDataWithRx({
    controller: 'reportDataController',
    action: 'go_to_page',
    data: [5]
})
last_page

This action will lead you to last page, no need to send any data.

sendDataWithRx({
    controller: 'reportDataController',
    action: 'last_page'
})
first_page

Action which is oposite of last_page, it will take you to first page. Again no data needed.

sendDataWithRx({
    controller: 'reportDataController',
    action: 'first_page'
})
previous_page

To navigate to previous page call action previous_page, no data required.

sendDataWithRx({
    controller: 'reportDataController',
    action: 'previous_page'
})
next_page

This action is oposite of previous_page and it will take you to next page. No data needed.

sendDataWithRx({
    controller: 'reportDataController',
    action: 'next_page'
})
get_current_page

This action will store into ManageIQ.qe.gtl.result page number on which you currently are. No data needed.

sendDataWithRx({
    controller: 'reportDataController',
    action: 'get_current_page'
})
get_pages_amount

Action which stores into ManageIQ.qe.gtl.result number of pages, no data needed.

sendDataWithRx({
    controller: 'reportDataController',
    action: 'get_pages_amount'
})
get_items_per_page

This actions stores into ManageIQ.qe.gtl.result number of items per page, no data needed.

sendDataWithRx({
    controller: 'reportDataController',
    action: 'get_items_per_page'
})
set_items_per_page

To change how many items should be visible per page call this function. Data should be number of items per page, please use 5, 10, 20, 50, 100 or 1000 as items per page.

sendDataWithRx({
    controller: 'reportDataController',
    action: 'set_items_per_page',
    data: [10]
})
set_sorting

To change sorting order call this function as object it requires array with object containing column id and if isAscending.

sendDataWithRx({
    controller: 'reportDataController',
    action: 'set_sorting',
    data: [{sortBy: 2, isAscending: true}]
})
get_sorting

To retrieve object how data are sorted call this action and it will store into ManageIQ.qe.gtl.result desired information, no data needed.

sendDataWithRx({
    controller: 'reportDataController',
    action: 'get_sorting'
})
get_all_items

Action which will store into ManageIQ.qe.gtl.result all items on screen, no data needed.

sendDataWithRx({
    controller: 'reportDataController',
    action: 'get_all_items'
})
get_item

This action is for retrieving one item into ManageIQ.qe.gtl.result, data should be array with one item which is either ID (number) or name (string). If item is not present on screen no data will be returned.

sendDataWithRx({
    controller: 'reportDataController',
    action: 'get_item',
    data: ['aaaop3322']
})
query

For some really sophisticated filtering over items call this action which will then stores the results into ManageIQ.qe.gtl.result. This action can take multiple data over which to query and it can then return multiple items which are found.

sendDataWithRx({
    controller: 'reportDataController',
    action: 'query',
    data: [{name: 'cfmear01', datastore: 'some-data-store'}]
})
is_displayed

This action will store into ManageIQ.qe.gtl.result if item is visible. Data should be id or name of item.

sendDataWithRx({
    controller: 'reportDataController',
    action: 'is_displayed',
    data: [2]
})
pagination_range

This action will store into ManageIQ.qe.gtl.result object which will contain information about pagination - total, start, end, pageCount. No data required.

sendDataWithRx({
    controller: 'reportDataController',
    action: 'pagination_range'
})

Item result

If you want to get item from this API, you will receive object with multiple items

  • click - function to click on item
  • is_selected - function to retrieve if item is selected
  • select - select item
  • unselect - unselect item
  • item - object with item’s information
    • cells - values of each cell
    • id - item’s id
    • long_id - item’s long_id
    • quad - quad information
      • topLeft - fileicon fonticon tooltip text background color
      • topRight - fileicon fonticon tooltip text background color
      • bottomLeft - fileicon fonticon tooltip text background color
      • bottomRight - fileicon fonticon tooltip text background color
    • gtlType - grid tile list