Carson Taylor
Carson Taylor

Reputation: 45

How to bind Dropdown widget to query filter?

I have a Calculated Model, MonthlyTotalsByResource, displayed in a table that I am trying to query with a filter. First, I am retrieving the initial data from a regular Data Model called Allocations. I only wish to retrieve records from Allocations where the "Approved" field =true.

I also want to allow the user to filter MonthlyTotalsByResource by the "ManagerName" field. I have created a Dropdown widget with the Options as the full list of managers, and the Value is a query on the Calculated Model datasource:

    @datasource.query.filters.ManagerName._equals

Here is the beginning of my code for getting the data for the Calculated Model MonthlyTotalsByResource from the regular data model Allocations, and where I filter for only "true" values in the Approved field. I am unclear what I should make the ManagerName filter set to in order for it to be binded to my Dropdown widget, or if I should add another query on the Calculated Model itself, instead of here on the regular Data Model.

    function getMonthlyTotalsByResource_() {
        var allRecordsQuery = app.models.Allocations.newQuery();
        allRecordsQuery.filters.Approved._equals = true;
        allRecordsQuery.filters.Resource.Manager.ManagerName._equals = ;

Upvotes: 1

Views: 828

Answers (1)

Pavel Shkleinik
Pavel Shkleinik

Reputation: 6347

First things first, you need to introduce ManagerName parameter in your calculated datasource: Query parameter

Once you add the parameter, you'll be able to set its value on client and read on server.

// dropdown widget's 'value' property binding
@datasources.MonthlyTotalsByResource.query.parameters.ManagerName


// server side code to get parameter value
var query = app.models.Allocations.newQuery();
...
query.filters.Resource.Manager.ManagerName._equals = query.parameters.ManagerName;
...

Upvotes: 1

Related Questions