Публикация

Функция "Показать на карте" в пользовательском разделе

Вопрос

Отображать на карте не стандартный раздел "Щиты". Версия 7.5.0.966

Ответ

Реализовывается данный вопрос по аналогии с его реализацией в разделе «Контрагенты». 

Пример реализации:

 

/**
* Действие "Показать на карте"
*/
openShowOnMap: function() {
    var items = this.getSelectedItems();
    var select = Ext.create("Terrasoft.EntitySchemaQuery", {
        rootSchemaName: "Account"
    });
    select.addColumn("Id");
    select.addColumn("Name");
    select.addColumn("Address");
    select.addColumn("City");
    select.addColumn("Region");
    select.addColumn("Country");
    select.addColumn("GPSN");
    select.addColumn("GPSE");
    select.filters.add("AcountIdFilter", this.Terrasoft.createColumnInFilterWithParameters("Id", items));
    select.getEntityCollection(function(result) {
        if (result.success) {
            var mapsConfig = {
                mapsData: []
            };
            result.collection.each(function(item) {
                var address = [];
                if (item.get("Country") && item.get("Country").displayValue) {
                    address.push(item.get("Country").displayValue);
                }
                if (item.get("Region") && item.get("Region").displayValue) {
                    address.push(item.get("Region").displayValue);
                }
                if (item.get("City") && item.get("City").displayValue) {
                    address.push(item.get("City").displayValue);
                }
                address.push(item.get("Address"));
                var dataItem = {
                    caption: item.get("Name"),
                    content: "<h2>" + item.get("Name") + "</h2><div>" + address.join(", ") + "</div>",
                    address: item.get("Address") ? address.join(", ") : null,
                    gpsN: item.get("GPSN"),
                    gpsE: item.get("GPSE"),
                    updateCoordinatesConfig: {
                        schemaName: "Account",
                        id: item.get("Id")
                    }
                };
                mapsConfig.mapsData.push(dataItem);
            });
            var mapsModuleSandboxId = this.sandbox.id + "_MapsModule" + this.Terrasoft.generateGUID();
            this.sandbox.subscribe("GetMapsConfig", function() {
                return mapsConfig;
            [mapsModuleSandboxId]);
            this.sandbox.loadModule("MapsModule", {
                id: mapsModuleSandboxId,
                keepAlive: true
            });
        }
    }, this);
},

 

Нравится

Поделиться

0 комментариев
Показать все комментарии