Map View doesn't work in overviews

Feature(s) impacted

Drivers Overviews

Observed behavior

black screen

Expected behavior

show drivers positions in a Map.

Failure Logs

in the backend req.query.action is undefined

Context

  • Project name: Roby
  • Team name: Admin
  • Environment name:UAT
  • Agent technology: (nodejs)
  • Agent (forest package) name & version: 9.0.0^
  • Database type: mongodb

Hi @pegasus and welcome in our community !

Could you please share the code of you smart view and the error stack trace you have on the frontend or backend :pray:?

called function:

    /**
     *
     * @param req
     * @param res
     * @param next
     * @param debugContext
     * @returns {Promise<void>}
     */
    async fetch(req, res, next, debugContext)
    {
        this.debug.indent("DriverOverviewCollectionsController:fetch");

        const action = _.get(req.query, "action", null);
        const filterLongitude = parseFloat(_.get(req.query, "filterLng", null));
        const filterLatitude = parseFloat(_.get(req.query, "filterLat", null));
        const filterRadius = parseInt(_.get(req.query, "filterRadius", null));
        const loadStatus = _.get(req.query, "loadStatus", false) === "true";
        const id = _.get(req.query, "id", null);
        const userTeams = _.has(req, "user.team") ? [_.get(req, "user.team")] : [];

        console.log("action:", action);
        console.log("filterLongitude:", filterLongitude);
        console.log("filterLatitude:", filterLatitude);
        console.log("filterRadius:", filterRadius);
        console.log("loadStatus:", loadStatus);
        console.log("id:", id);
        console.log("userTeams:", userTeams);

        let response;
        let meta = {};

        switch (action) {
            case "init":
                meta = await this._init(userTeams);
                response = [];
                break;
            case "getAll":
                response = await this._getAll(filterLatitude, filterLongitude, filterRadius, loadStatus);
                break;
            case "getOne":
                response = await this._getOne(id);
                break;
            default:
                response = null;
        }

        console.log("response:", response);

        // OK, send response.
        res.send(this._serialize(response, meta));
        next();
        this.debug.outdent();
    }

console.log:
server-v5.0_1 | action: null
server-v5.0_1 | filterLongitude: NaN
server-v5.0_1 | filterLatitude: NaN
server-v5.0_1 | filterRadius: NaN
server-v5.0_1 | loadStatus: false
server-v5.0_1 | id: null
server-v5.0_1 | userTeams: [ ‘Admin’ ]
server-v5.0_1 | response: null

What is action in your case?
Could you also share the code of your smart view please?

the smart view code that we have is:

/**
 *
 */
class DriverOverviewCollection {

    /**
     *
     */
    static get $inject()
    {
        return [
            "debugContext"
        ];
    }

    /**
     *
     * @param debugContext
     */
    constructor(debugContext)
    {
        this.debug = debugContext("ForestCommon");
        this.debug.indent("DriverOverviewCollection::init");

        Liana.collection('driversoverview', {
            fields: [

                /* Infos. */

                {field: 'id', type: 'String'},
                {field: 'isAmbassador', type: 'Boolean'},
                {field: 'gender', type: 'String'},
                {field: 'fullName', type: 'String'},
                {field: 'email', type: 'Object'},
                {field: 'phoneNumber', type: 'String'},
                {field: 'driverRate', type: 'Number'},
                {field: 'driverNbRates', type: 'Number'},
                {field: 'driverRateStars', type: 'String'},
                {field: 'driverTaxiLicenceNumber', type: 'String'},
                {field: 'driverDriverLicenceNumber', type: 'String'},
                {field: 'driverProposedCriterias', type: 'Array'},
                {field: 'driverRateStars', type: 'String'},

                {field: 'geolocation', type: 'String'},
                {field: 'bearing', type: 'Number'},

                /* Vehicle */

                {field: 'driverTaxiNumber', type: 'String'},
                {field: 'driverVehicleLicencePlate', type: 'String'},
                {field: 'driverVehicleType', type: 'Object'},
                {field: 'driverVehicleBrand', type: 'String'},

                /* Device */

                {field: 'installationLocale', type: 'String'},
                {field: 'installationRegion', type: 'String'},
                {field: 'installationOsVersion', type: 'String'},
                {field: 'installationMobileVersion', type: 'String'},
                {field: 'installationAppVersion', type: 'String'},

                /* Stats */

                {field: 'cancellationRate', type: 'Number'},
                {field: 'cancellationClientRate', type: 'Number'},
                {field: 'cancellationDriverRate', type: 'Number'},
                {field: 'cancellationAbortedRate', type: 'Number'},
                {field: 'nbFinishedRun', type: 'Number'},
                {field: 'lastRuns', type: 'Array'},
                {field: 'driverLiveStatus', type: 'Enum', enums: DRIVER_LIVE_STATUS}

            ]
        });

        this.debug.outdent();
    }

}

in the forest schema file we have this:

{
    "name": "driversoverview",
    "nameOld": "driversoverview",
    "icon": null,
    "integration": null,
    "isReadOnly": false,
    "isSearchable": false,
    "isVirtual": true,
    "onlyForRelationships": false,
    "paginationType": "page",
    "fields": [{
      "field": "bearing",
      "type": "Number",
      "defaultValue": null,
      "enums": null,
      "integration": null,
      "isFilterable": false,
      "isPrimaryKey": false,
      "isReadOnly": true,
      "isRequired": false,
      "isSortable": false,
      "isVirtual": true,
      "reference": null,
      "inverseOf": null,
      "validations": []
    }, {
      "field": "cancellationAbortedRate",
      "type": "Number",
      "defaultValue": null,
      "enums": null,
      "integration": null,
      "isFilterable": false,
      "isPrimaryKey": false,
      "isReadOnly": true,
      "isRequired": false,
      "isSortable": false,
      "isVirtual": true,
      "reference": null,
      "inverseOf": null,
      "validations": []
    }, {
      "field": "cancellationClientRate",
      "type": "Number",
      "defaultValue": null,
      "enums": null,
      "integration": null,
      "isFilterable": false,
      "isPrimaryKey": false,
      "isReadOnly": true,
      "isRequired": false,
      "isSortable": false,
      "isVirtual": true,
      "reference": null,
      "inverseOf": null,
      "validations": []
    }, {
      "field": "cancellationDriverRate",
      "type": "Number",
      "defaultValue": null,
      "enums": null,
      "integration": null,
      "isFilterable": false,
      "isPrimaryKey": false,
      "isReadOnly": true,
      "isRequired": false,
      "isSortable": false,
      "isVirtual": true,
      "reference": null,
      "inverseOf": null,
      "validations": []
    }, {
      "field": "cancellationRate",
      "type": "Number",
      "defaultValue": null,
      "enums": null,
      "integration": null,
      "isFilterable": false,
      "isPrimaryKey": false,
      "isReadOnly": true,
      "isRequired": false,
      "isSortable": false,
      "isVirtual": true,
      "reference": null,
      "inverseOf": null,
      "validations": []
    }, {
      "field": "driverDriverLicenceNumber",
      "type": "String",
      "defaultValue": null,
      "enums": null,
      "integration": null,
      "isFilterable": false,
      "isPrimaryKey": false,
      "isReadOnly": true,
      "isRequired": false,
      "isSortable": false,
      "isVirtual": true,
      "reference": null,
      "inverseOf": null,
      "validations": []
    }, {
      "field": "driverLiveStatus",
      "type": "Enum",
      "defaultValue": null,
      "enums": [
        "available",
        "unavailable",
        "scheduled",
        "pickedUp"
      ],
      "integration": null,
      "isFilterable": false,
      "isPrimaryKey": false,
      "isReadOnly": true,
      "isRequired": false,
      "isSortable": false,
      "isVirtual": true,
      "reference": null,
      "inverseOf": null,
      "validations": []
    }, {
      "field": "driverNbRates",
      "type": "Number",
      "defaultValue": null,
      "enums": null,
      "integration": null,
      "isFilterable": false,
      "isPrimaryKey": false,
      "isReadOnly": true,
      "isRequired": false,
      "isSortable": false,
      "isVirtual": true,
      "reference": null,
      "inverseOf": null,
      "validations": []
    }, {
      "field": "driverProposedCriterias",
      "type": "Array",
      "defaultValue": null,
      "enums": null,
      "integration": null,
      "isFilterable": false,
      "isPrimaryKey": false,
      "isReadOnly": true,
      "isRequired": false,
      "isSortable": false,
      "isVirtual": true,
      "reference": null,
      "inverseOf": null,
      "validations": []
    }, {
      "field": "driverRate",
      "type": "Number",
      "defaultValue": null,
      "enums": null,
      "integration": null,
      "isFilterable": false,
      "isPrimaryKey": false,
      "isReadOnly": true,
      "isRequired": false,
      "isSortable": false,
      "isVirtual": true,
      "reference": null,
      "inverseOf": null,
      "validations": []
    }, {
      "field": "driverRateStars",
      "type": "String",
      "defaultValue": null,
      "enums": null,
      "integration": null,
      "isFilterable": false,
      "isPrimaryKey": false,
      "isReadOnly": true,
      "isRequired": false,
      "isSortable": false,
      "isVirtual": true,
      "reference": null,
      "inverseOf": null,
      "validations": []
    }, {
      "field": "driverRateStars",
      "type": "String",
      "defaultValue": null,
      "enums": null,
      "integration": null,
      "isFilterable": false,
      "isPrimaryKey": false,
      "isReadOnly": true,
      "isRequired": false,
      "isSortable": false,
      "isVirtual": true,
      "reference": null,
      "inverseOf": null,
      "validations": []
    }, {
      "field": "driverTaxiLicenceNumber",
      "type": "String",
      "defaultValue": null,
      "enums": null,
      "integration": null,
      "isFilterable": false,
      "isPrimaryKey": false,
      "isReadOnly": true,
      "isRequired": false,
      "isSortable": false,
      "isVirtual": true,
      "reference": null,
      "inverseOf": null,
      "validations": []
    }, {
      "field": "driverTaxiNumber",
      "type": "String",
      "defaultValue": null,
      "enums": null,
      "integration": null,
      "isFilterable": false,
      "isPrimaryKey": false,
      "isReadOnly": true,
      "isRequired": false,
      "isSortable": false,
      "isVirtual": true,
      "reference": null,
      "inverseOf": null,
      "validations": []
    }, {
      "field": "driverVehicleBrand",
      "type": "String",
      "defaultValue": null,
      "enums": null,
      "integration": null,
      "isFilterable": false,
      "isPrimaryKey": false,
      "isReadOnly": true,
      "isRequired": false,
      "isSortable": false,
      "isVirtual": true,
      "reference": null,
      "inverseOf": null,
      "validations": []
    }, {
      "field": "driverVehicleLicencePlate",
      "type": "String",
      "defaultValue": null,
      "enums": null,
      "integration": null,
      "isFilterable": false,
      "isPrimaryKey": false,
      "isReadOnly": true,
      "isRequired": false,
      "isSortable": false,
      "isVirtual": true,
      "reference": null,
      "inverseOf": null,
      "validations": []
    }, {
      "field": "driverVehicleType",
      "type": "Object",
      "defaultValue": null,
      "enums": null,
      "integration": null,
      "isFilterable": false,
      "isPrimaryKey": false,
      "isReadOnly": true,
      "isRequired": false,
      "isSortable": false,
      "isVirtual": true,
      "reference": null,
      "inverseOf": null,
      "validations": []
    }, {
      "field": "email",
      "type": "Object",
      "defaultValue": null,
      "enums": null,
      "integration": null,
      "isFilterable": false,
      "isPrimaryKey": false,
      "isReadOnly": true,
      "isRequired": false,
      "isSortable": false,
      "isVirtual": true,
      "reference": null,
      "inverseOf": null,
      "validations": []
    }, {
      "field": "fullName",
      "type": "String",
      "defaultValue": null,
      "enums": null,
      "integration": null,
      "isFilterable": false,
      "isPrimaryKey": false,
      "isReadOnly": true,
      "isRequired": false,
      "isSortable": false,
      "isVirtual": true,
      "reference": null,
      "inverseOf": null,
      "validations": []
    }, {
      "field": "gender",
      "type": "String",
      "defaultValue": null,
      "enums": null,
      "integration": null,
      "isFilterable": false,
      "isPrimaryKey": false,
      "isReadOnly": true,
      "isRequired": false,
      "isSortable": false,
      "isVirtual": true,
      "reference": null,
      "inverseOf": null,
      "validations": []
    }, {
      "field": "geolocation",
      "type": "String",
      "defaultValue": null,
      "enums": null,
      "integration": null,
      "isFilterable": false,
      "isPrimaryKey": false,
      "isReadOnly": true,
      "isRequired": false,
      "isSortable": false,
      "isVirtual": true,
      "reference": null,
      "inverseOf": null,
      "validations": []
    }, {
      "field": "id",
      "type": "String",
      "defaultValue": null,
      "enums": null,
      "integration": null,
      "isFilterable": false,
      "isPrimaryKey": false,
      "isReadOnly": true,
      "isRequired": false,
      "isSortable": false,
      "isVirtual": true,
      "reference": null,
      "inverseOf": null,
      "validations": []
    }, {
      "field": "installationAppVersion",
      "type": "String",
      "defaultValue": null,
      "enums": null,
      "integration": null,
      "isFilterable": false,
      "isPrimaryKey": false,
      "isReadOnly": true,
      "isRequired": false,
      "isSortable": false,
      "isVirtual": true,
      "reference": null,
      "inverseOf": null,
      "validations": []
    }, {
      "field": "installationLocale",
      "type": "String",
      "defaultValue": null,
      "enums": null,
      "integration": null,
      "isFilterable": false,
      "isPrimaryKey": false,
      "isReadOnly": true,
      "isRequired": false,
      "isSortable": false,
      "isVirtual": true,
      "reference": null,
      "inverseOf": null,
      "validations": []
    }, {
      "field": "installationMobileVersion",
      "type": "String",
      "defaultValue": null,
      "enums": null,
      "integration": null,
      "isFilterable": false,
      "isPrimaryKey": false,
      "isReadOnly": true,
      "isRequired": false,
      "isSortable": false,
      "isVirtual": true,
      "reference": null,
      "inverseOf": null,
      "validations": []
    }, {
      "field": "installationOsVersion",
      "type": "String",
      "defaultValue": null,
      "enums": null,
      "integration": null,
      "isFilterable": false,
      "isPrimaryKey": false,
      "isReadOnly": true,
      "isRequired": false,
      "isSortable": false,
      "isVirtual": true,
      "reference": null,
      "inverseOf": null,
      "validations": []
    }, {
      "field": "installationRegion",
      "type": "String",
      "defaultValue": null,
      "enums": null,
      "integration": null,
      "isFilterable": false,
      "isPrimaryKey": false,
      "isReadOnly": true,
      "isRequired": false,
      "isSortable": false,
      "isVirtual": true,
      "reference": null,
      "inverseOf": null,
      "validations": []
    }, {
      "field": "isAmbassador",
      "type": "Boolean",
      "defaultValue": null,
      "enums": null,
      "integration": null,
      "isFilterable": false,
      "isPrimaryKey": false,
      "isReadOnly": true,
      "isRequired": false,
      "isSortable": false,
      "isVirtual": true,
      "reference": null,
      "inverseOf": null,
      "validations": []
    }, {
      "field": "lastRuns",
      "type": "Array",
      "defaultValue": null,
      "enums": null,
      "integration": null,
      "isFilterable": false,
      "isPrimaryKey": false,
      "isReadOnly": true,
      "isRequired": false,
      "isSortable": false,
      "isVirtual": true,
      "reference": null,
      "inverseOf": null,
      "validations": []
    }, {
      "field": "nbFinishedRun",
      "type": "Number",
      "defaultValue": null,
      "enums": null,
      "integration": null,
      "isFilterable": false,
      "isPrimaryKey": false,
      "isReadOnly": true,
      "isRequired": false,
      "isSortable": false,
      "isVirtual": true,
      "reference": null,
      "inverseOf": null,
      "validations": []
    }, {
      "field": "phoneNumber",
      "type": "String",
      "defaultValue": null,
      "enums": null,
      "integration": null,
      "isFilterable": false,
      "isPrimaryKey": false,
      "isReadOnly": true,
      "isRequired": false,
      "isSortable": false,
      "isVirtual": true,
      "reference": null,
      "inverseOf": null,
      "validations": []
    }],
    "segments": [],
    "actions": []
  },

N.B: the smart action was working fine with the same code.

hello ForestAdmin,
we need to view drivers positions as soon as possible, please could you help us resolve the problem.
Thank you
pegasus