diff --git a/addon/locales/en/models/new-platform-flexberry-g-i-s-background-layer.js b/addon/locales/en/models/new-platform-flexberry-g-i-s-background-layer.js new file mode 100644 index 000000000..e6a651e7a --- /dev/null +++ b/addon/locales/en/models/new-platform-flexberry-g-i-s-background-layer.js @@ -0,0 +1,105 @@ +export default { + projections: { + AuditView: { + name: { + __caption__: 'name' + }, + creator: { + __caption__: 'creator' + }, + createTime: { + __caption__: 'createTime' + }, + editor: { + __caption__: 'editor' + }, + editTime: { + __caption__: 'editTime' + } + }, + BackgroundLayerD: { + name: { + __caption__: 'name' + }, + description: { + __caption__: 'description' + }, + keyWords: { + __caption__: 'keyWords' + }, + anyText: { + __caption__: 'anyText' + }, + index: { + __caption__: 'index' + }, + visibility: { + __caption__: 'visibility' + }, + type: { + __caption__: 'type' + }, + settings: { + __caption__: 'settings' + }, + scale: { + __caption__: 'scale' + }, + coordinateReferenceSystem: { + __caption__: 'coordinateReferenceSystem' + }, + boundingBox: { + __caption__: 'boundingBox' + }, + public: { + __caption__: 'public' + }, + owner: { + __caption__: 'owner' + } + }, + BackgroundLayerE: { + name: { + __caption__: 'name' + }, + description: { + __caption__: 'description' + }, + keyWords: { + __caption__: 'keyWords' + }, + index: { + __caption__: 'index' + }, + visibility: { + __caption__: 'visibility' + }, + type: { + __caption__: 'type' + }, + settings: { + __caption__: 'settings' + }, + scale: { + __caption__: 'scale' + }, + coordinateReferenceSystem: { + __caption__: 'coordinateReferenceSystem' + }, + boundingBox: { + __caption__: 'boundingBox' + } + }, + BackgroundLayerL: { + name: { + __caption__: 'name' + }, + description: { + __caption__: 'description' + }, + type: { + __caption__: 'type' + } + } + } +}; diff --git a/addon/locales/ru/models/new-platform-flexberry-g-i-s-background-layer.js b/addon/locales/ru/models/new-platform-flexberry-g-i-s-background-layer.js new file mode 100644 index 000000000..ed0effff5 --- /dev/null +++ b/addon/locales/ru/models/new-platform-flexberry-g-i-s-background-layer.js @@ -0,0 +1,105 @@ +export default { + projections: { + AuditView: { + name: { + __caption__: 'Наименование' + }, + creator: { + __caption__: 'Создатель' + }, + createTime: { + __caption__: 'Время создания' + }, + editor: { + __caption__: 'Редактор' + }, + editTime: { + __caption__: 'Время редактирования' + } + }, + BackgroundLayerD: { + name: { + __caption__: 'Наименование' + }, + description: { + __caption__: 'Описание' + }, + keyWords: { + __caption__: 'Ключевые слова' + }, + anyText: { + __caption__: '' + }, + index: { + __caption__: 'Индекс' + }, + visibility: { + __caption__: 'Видимость' + }, + type: { + __caption__: 'Тип' + }, + settings: { + __caption__: 'Настройки' + }, + scale: { + __caption__: 'Масштаб' + }, + coordinateReferenceSystem: { + __caption__: 'Система координат' + }, + boundingBox: { + __caption__: 'Граница' + }, + public: { + __caption__: '' + }, + owner: { + __caption__: '' + } + }, + BackgroundLayerE: { + name: { + __caption__: 'Наименование' + }, + description: { + __caption__: 'Описание' + }, + keyWords: { + __caption__: 'Ключевые слова' + }, + index: { + __caption__: 'Индекс' + }, + visibility: { + __caption__: 'Видимость' + }, + type: { + __caption__: 'Тип' + }, + settings: { + __caption__: 'Настройки' + }, + scale: { + __caption__: 'Масштаб' + }, + coordinateReferenceSystem: { + __caption__: 'Система координат' + }, + boundingBox: { + __caption__: 'Граница' + } + }, + BackgroundLayerL: { + name: { + __caption__: 'Наименование' + }, + description: { + __caption__: 'Описание' + }, + type: { + __caption__: 'Тип' + } + } + } +}; diff --git a/addon/mixins/flexberry-map-model-api-cosmos.js b/addon/mixins/flexberry-map-model-api-cosmos.js index dce2dd3fa..17dc843f2 100644 --- a/addon/mixins/flexberry-map-model-api-cosmos.js +++ b/addon/mixins/flexberry-map-model-api-cosmos.js @@ -179,20 +179,8 @@ export default Ember.Mixin.create({ let mapLayer = createLayerFromMetadata(model, this.get('store')); mapLayer.set('index', index); mapLayer.set('map', this); - let canBeBackground = mapLayer.get('settingsAsObject.backgroundSettings.canBeBackground'); const layers = this.get('hierarchy'); - const layersInTree = this.get('otherLayers'); - const layerBackground = this.get('backgroundLayers'); layers.addObject(mapLayer); - if (canBeBackground) { - if (!Ember.isNone(layerBackground)) { - layerBackground.addObject(mapLayer); - } - } else { - if (!Ember.isNone(layersInTree)) { - layersInTree.addObject(mapLayer); - } - } let rootArray = this.get('mapLayer'); rootArray.pushObject(mapLayer); diff --git a/addon/mixins/flexberry-maplayer-actions-handler.js b/addon/mixins/flexberry-maplayer-actions-handler.js index 943e5b24d..beb283a57 100644 --- a/addon/mixins/flexberry-maplayer-actions-handler.js +++ b/addon/mixins/flexberry-maplayer-actions-handler.js @@ -365,7 +365,7 @@ export default Ember.Mixin.create({ `but \`string\` is expected`, Ember.typeOf(primaryParentLayerPath) === 'string'); - let secondaryParentLayerPath = primaryParentLayerPath.indexOf('hierarchy') !== -1 ? 'model.otherLayers' : 'model.hierarchy'; + let secondaryParentLayerPath = 'model.hierarchy'; let backgroundLayerPath = 'model.backgroundLayers'; let { diff --git a/addon/mixins/regenerated/models/new-platform-flexberry-g-i-s-background-layer.js b/addon/mixins/regenerated/models/new-platform-flexberry-g-i-s-background-layer.js new file mode 100644 index 000000000..b821c2cae --- /dev/null +++ b/addon/mixins/regenerated/models/new-platform-flexberry-g-i-s-background-layer.js @@ -0,0 +1,107 @@ +import Ember from 'ember'; +import DS from 'ember-data'; +import { attr } from 'ember-flexberry-data/utils/attributes'; + +export let Model = Ember.Mixin.create({ + name: DS.attr('string'), + description: DS.attr('string'), + keyWords: DS.attr('string'), + /** + Non-stored property. + + @property anyText + */ + anyText: DS.attr('string'), + /** + Method to set non-stored property. + Please, use code below in model class (outside of this mixin) otherwise it will be replaced during regeneration of models. + Please, implement 'anyTextCompute' method in model class (outside of this mixin) if you want to compute value of 'anyText' property. + + @method _anyTextCompute + @private + @example + ```javascript + _anyTextChanged: Ember.on('init', Ember.observer('anyText', function() { + Ember.run.once(this, '_anyTextCompute'); + })) + ``` + */ + _anyTextCompute: function() { + let result = (this.anyTextCompute && typeof this.anyTextCompute === 'function') ? this.anyTextCompute() : null; + this.set('anyText', result); + }, + index: DS.attr('number'), + visibility: DS.attr('boolean', { defaultValue: true }), + type: DS.attr('string'), + settings: DS.attr('string'), + scale: DS.attr('number'), + coordinateReferenceSystem: DS.attr('string'), + boundingBox: DS.attr('string'), + public: DS.attr('boolean'), + owner: DS.attr('string'), + createTime: DS.attr('date'), + creator: DS.attr('string'), + editTime: DS.attr('date'), + editor: DS.attr('string'), + getValidations: function () { + let parentValidations = this._super(); + let thisValidations = { + }; + return Ember.$.extend(true, {}, parentValidations, thisValidations); + }, + init: function () { + this.set('validations', this.getValidations()); + this._super.apply(this, arguments); + } +}); + +export let defineNamespace = function (modelClass) { + modelClass.reopenClass({ + namespace: 'NewPlatform.Flexberry.GIS', + }); +}; + +export let defineProjections = function (modelClass) { + modelClass.defineProjection('AuditView', 'new-platform-flexberry-g-i-s-background-layer', { + name: attr('Наименование', { index: 0 }), + creator: attr('Создатель', { index: 1 }), + createTime: attr('Время создания', { index: 2 }), + editor: attr('Редактор', { index: 3 }), + editTime: attr('Время редактирования', { index: 4 }) + }); + + modelClass.defineProjection('BackgroundLayerD', 'new-platform-flexberry-g-i-s-background-layer', { + name: attr('Наименование', { index: 0 }), + description: attr('Описание', { index: 1 }), + keyWords: attr('Ключевые слова', { index: 2 }), + anyText: attr('', { index: 3 }), + index: attr('Индекс', { index: 4 }), + visibility: attr('Видимость', { index: 5 }), + type: attr('Тип', { index: 6 }), + settings: attr('Настройки', { index: 7 }), + scale: attr('Масштаб', { index: 8 }), + coordinateReferenceSystem: attr('Система координат', { index: 9 }), + boundingBox: attr('Граница', { index: 10 }), + public: attr('', { index: 11 }), + owner: attr('', { index: 12 }) + }); + + modelClass.defineProjection('BackgroundLayerE', 'new-platform-flexberry-g-i-s-background-layer', { + name: attr('Наименование', { index: 0 }), + description: attr('Описание', { index: 1 }), + keyWords: attr('Ключевые слова', { index: 2 }), + index: attr('Индекс', { index: 3 }), + visibility: attr('Видимость', { index: 4 }), + type: attr('Тип', { index: 5 }), + settings: attr('Настройки', { index: 6 }), + scale: attr('Масштаб', { index: 7 }), + coordinateReferenceSystem: attr('Система координат', { index: 8 }), + boundingBox: attr('Граница', { index: 9 }) + }); + + modelClass.defineProjection('BackgroundLayerL', 'new-platform-flexberry-g-i-s-background-layer', { + name: attr('Наименование', { index: 0 }), + description: attr('Описание', { index: 1 }), + type: attr('Тип', { index: 2 }) + }); +}; diff --git a/addon/mixins/regenerated/serializers/new-platform-flexberry-g-i-s-background-layer.js b/addon/mixins/regenerated/serializers/new-platform-flexberry-g-i-s-background-layer.js new file mode 100644 index 000000000..1a3cbc735 --- /dev/null +++ b/addon/mixins/regenerated/serializers/new-platform-flexberry-g-i-s-background-layer.js @@ -0,0 +1,22 @@ +import Ember from 'ember'; + +/** + Mixin containing initializetion logic for background layer serializer. + + @class NewPlatformFlexberyGISBackgroundLayerSerializerMixin + @extends Ember.Mixin +*/ +export let Serializer = Ember.Mixin.create({ + getAttrs: function () { + let parentAttrs = this._super(); + let attrs = { + + }; + + return Ember.$.extend(true, {}, parentAttrs, attrs); + }, + init: function () { + this.set('attrs', this.getAttrs()); + this._super(...arguments); + } +}); diff --git a/addon/models/new-platform-flexberry-g-i-s-background-layer.js b/addon/models/new-platform-flexberry-g-i-s-background-layer.js new file mode 100644 index 000000000..a0cc12e56 --- /dev/null +++ b/addon/models/new-platform-flexberry-g-i-s-background-layer.js @@ -0,0 +1,16 @@ +import { + defineNamespace, + defineProjections, + Model as BackgroundLayerMixin +} from '../mixins/regenerated/models/new-platform-flexberry-g-i-s-background-layer'; + +import EmberFlexberryDataModel from 'ember-flexberry-data/models/model'; +import OfflineModelMixin from 'ember-flexberry-data/mixins/offline-model'; + +let Model = EmberFlexberryDataModel.extend(OfflineModelMixin, BackgroundLayerMixin, { +}); + +defineNamespace(Model); +defineProjections(Model); + +export default Model; diff --git a/addon/routes/edit-map.js b/addon/routes/edit-map.js index eccf7575e..bbe90630c 100644 --- a/addon/routes/edit-map.js +++ b/addon/routes/edit-map.js @@ -110,11 +110,13 @@ export default EditFormRoute.extend({ let mapId = params.id; let modelQuery = this.get('mapStore').getMapById(mapId); let metadataQuery = this._getMetadata(params.metadata); + let backgroundQuery = this.getBackgroundLayers(); return new Ember.RSVP.Promise((resolve, reject) => { - Ember.RSVP.all([modelQuery, metadataQuery]).then((data) => { - let [model, metadata] = data; + Ember.RSVP.all([modelQuery, metadataQuery, backgroundQuery]).then((data) => { + let [model, metadata, backgroundLayers] = data; this._addMetadata(model, metadata); + Ember.set(model, 'backgroundLayers', backgroundLayers); resolve(model); }).catch((error) => { reject(error); @@ -132,9 +134,13 @@ export default EditFormRoute.extend({ */ setupController(controller, model) { this._super(...arguments); - let layers = model.get('mapLayer'); - this.setLayerCategories(model, layers); + let layers = model.get('mapLayer'); + if (layers) { + let rootLayers = layers.filter(layer => Ember.isEmpty(layer.get('parent'))); + let maplayers = this.sortLayersByIndex(rootLayers); + model.set('hierarchy', maplayers); + } let urlParams = ['zoom', 'lat', 'lng']; let currentParams = {}; @@ -154,24 +160,24 @@ export default EditFormRoute.extend({ }); }, - setLayerCategories(model, layers) { - if (layers) { - let rootLayers = layers.filter(layer => Ember.isEmpty(layer.get('parent'))); - - let hierarchy = this.sortLayersByIndex(rootLayers); - model.set('hierarchy', hierarchy); - - let backgroundLayers = Ember.A(); - backgroundLayers.addObjects(hierarchy.filterBy('settingsAsObject.backgroundSettings.canBeBackground', true)); - model.set('backgroundLayers', backgroundLayers); + /** + Requests a list of background layers. - let other = hierarchy.filter((layer) => { - return Ember.isNone(layer.get('settingsAsObject')) || !layer.get('settingsAsObject.backgroundSettings.canBeBackground'); - }); - let otherLayers = Ember.A(); - otherLayers.addObjects(other); - model.set('otherLayers', otherLayers); - } + @method getBackgroundLayers + */ + getBackgroundLayers() { + let store = this.get('store'); + let modelName = 'new-platform-flexberry-g-i-s-background-layer'; + let queryBuilder = new Query.Builder(this.get('store')) + .from(modelName) + .selectByProjection('BackgroundLayerL'); + + return store.findAll(modelName, queryBuilder.build()).then(response => response.content.map(responseArray => { + let backgroundLayer = responseArray.record; + let settingsAsObject = JSON.parse(Ember.get(backgroundLayer, 'settings')); + backgroundLayer.set('settingsAsObject', settingsAsObject); + return backgroundLayer; + })); }, /** diff --git a/addon/serializers/new-platform-flexberry-g-i-s-background-layer.js b/addon/serializers/new-platform-flexberry-g-i-s-background-layer.js new file mode 100644 index 000000000..5eb6e65ab --- /dev/null +++ b/addon/serializers/new-platform-flexberry-g-i-s-background-layer.js @@ -0,0 +1,16 @@ +import FlexberryData from 'ember-flexberry-data'; +import { Serializer as BackgroundLayerSerializer } from '../mixins/regenerated/serializers/new-platform-flexberry-g-i-s-background-layer'; + +/** + Background layer serializer. + + @class NewPlatformFlexberryGISBackgroundLayerSerializer + @extends OdataSerializer + @uses NewPlatformFlexberryGISBackgroundLayerSerializerMixin +*/ +export default FlexberryData.Serializer.Odata.extend(BackgroundLayerSerializer, { + /** + * Field name where object identifier is kept. + */ + primaryKey: '__PrimaryKey' +}); diff --git a/app/models/new-platform-flexberry-g-i-s-background-layer.js b/app/models/new-platform-flexberry-g-i-s-background-layer.js new file mode 100644 index 000000000..ee5dda4c0 --- /dev/null +++ b/app/models/new-platform-flexberry-g-i-s-background-layer.js @@ -0,0 +1 @@ +export { default } from 'ember-flexberry-gis/models/new-platform-flexberry-g-i-s-background-layer'; diff --git a/app/serializers/new-platform-flexberry-g-i-s-background-layer.js b/app/serializers/new-platform-flexberry-g-i-s-background-layer.js new file mode 100644 index 000000000..e3fda84a7 --- /dev/null +++ b/app/serializers/new-platform-flexberry-g-i-s-background-layer.js @@ -0,0 +1 @@ +export { default } from 'ember-flexberry-gis/serializers/new-platform-flexberry-g-i-s-background-layer'; diff --git a/tests/dummy/app/templates/map.hbs b/tests/dummy/app/templates/map.hbs index eb1af4bef..a7888531d 100644 --- a/tests/dummy/app/templates/map.hbs +++ b/tests/dummy/app/templates/map.hbs @@ -54,7 +54,7 @@ class="styled" leafletMap=leafletMap sideBySide=sideBySide - layers=(get-with-dynamic-actions this "model.otherLayers" + layers=(get-with-dynamic-actions this "model.hierarchy" hierarchyPropertyName="layers" pathKeyword="layerPath" dynamicActions=(array @@ -66,7 +66,7 @@ (hash on="copy" actionName="onMapLayerCopy" - actionArguments=(array "model.otherLayers") + actionArguments=(array "model.hierarchy") ) (hash on="edit" diff --git a/tests/unit/models/new-platform-flexberry-g-i-s-background-layer-test.js b/tests/unit/models/new-platform-flexberry-g-i-s-background-layer-test.js new file mode 100644 index 000000000..60e683988 --- /dev/null +++ b/tests/unit/models/new-platform-flexberry-g-i-s-background-layer-test.js @@ -0,0 +1,24 @@ +import { moduleForModel, test } from 'ember-qunit'; + +moduleForModel('new-platform-flexberry-g-i-s-background-layer', 'Unit | Model | new-platform-flexberry-g-i-s-background-layer', { + // Specify the other units that are required for this test. + needs: [ + 'model:custom-inflector-rules', + 'model:new-platform-flexberry-g-i-s-background-layer', + 'model:new-platform-flexberry-g-i-s-layer-link', + 'model:new-platform-flexberry-g-i-s-layer-metadata', + 'model:new-platform-flexberry-g-i-s-link-metadata', + 'model:new-platform-flexberry-g-i-s-link-parameter', + 'model:new-platform-flexberry-g-i-s-map-layer', + 'model:new-platform-flexberry-g-i-s-map-object-setting', + 'model:new-platform-flexberry-g-i-s-map', + 'model:new-platform-flexberry-g-i-s-parameter-metadata' + ] +}); + +test('it exists', function(assert) { + let model = this.subject(); + + // let store = this.store(); + assert.ok(!!model); +}); diff --git a/tests/unit/serializers/new-platform-flexberry-g-i-s-background-layer-test.js b/tests/unit/serializers/new-platform-flexberry-g-i-s-background-layer-test.js new file mode 100644 index 000000000..e96d231b0 --- /dev/null +++ b/tests/unit/serializers/new-platform-flexberry-g-i-s-background-layer-test.js @@ -0,0 +1,30 @@ +import { moduleForModel, test } from 'ember-qunit'; + +moduleForModel('new-platform-flexberry-g-i-s-background-layer', 'Unit | Serializer | new-platform-flexberry-g-i-s-background-layer', { + // Specify the other units that are required for this test. + needs: [ + 'serializer:new-platform-flexberry-g-i-s-background-layer', + 'transform:file', + 'transform:decimal', + 'transform:json', + + 'model:custom-inflector-rules', + 'model:new-platform-flexberry-g-i-s-layer-link', + 'model:new-platform-flexberry-g-i-s-layer-metadata', + 'model:new-platform-flexberry-g-i-s-link-metadata', + 'model:new-platform-flexberry-g-i-s-link-parameter', + 'model:new-platform-flexberry-g-i-s-map-layer', + 'model:new-platform-flexberry-g-i-s-map-object-setting', + 'model:new-platform-flexberry-g-i-s-map', + 'model:new-platform-flexberry-g-i-s-parameter-metadata' + ] +}); + +// Replace this with your real tests. +test('it serializes records', function(assert) { + let record = this.subject(); + + let serializedRecord = record.serialize(); + + assert.ok(serializedRecord); +}); diff --git a/vendor/flexberry/models/new-platform-flexberry-g-i-s-background-layer.json b/vendor/flexberry/models/new-platform-flexberry-g-i-s-background-layer.json new file mode 100644 index 000000000..456a343b9 --- /dev/null +++ b/vendor/flexberry/models/new-platform-flexberry-g-i-s-background-layer.json @@ -0,0 +1,388 @@ +{ + "name": "NewPlatformFlexberryGISBackgroundLayer", + "modelName": "new-platform-flexberry-g-i-s-background-layer", + "className": "BackgroundLayer", + "nameSpace": "NewPlatform.Flexberry.GIS", + "parentModelName": null, + "parentClassName": null, + "attrs": [ + { + "name": "name", + "type": "string", + "flexberryType": "string", + "notNull": false, + "defaultValue": "", + "stored": true, + "ordered": false + }, + { + "name": "description", + "type": "string", + "flexberryType": "stringMax", + "notNull": false, + "defaultValue": "", + "stored": true, + "ordered": false + }, + { + "name": "keyWords", + "type": "string", + "flexberryType": "stringMax", + "notNull": false, + "defaultValue": "", + "stored": true, + "ordered": false + }, + { + "name": "anyText", + "type": "string", + "flexberryType": "stringMax", + "notNull": false, + "defaultValue": "", + "stored": false, + "ordered": false + }, + { + "name": "index", + "type": "number", + "flexberryType": "int", + "notNull": false, + "defaultValue": "", + "stored": true, + "ordered": false + }, + { + "name": "visibility", + "type": "boolean", + "flexberryType": "bool", + "notNull": false, + "defaultValue": "true", + "stored": true, + "ordered": false + }, + { + "name": "type", + "type": "string", + "flexberryType": "string", + "notNull": false, + "defaultValue": "", + "stored": true, + "ordered": false + }, + { + "name": "settings", + "type": "string", + "flexberryType": "stringMax", + "notNull": false, + "defaultValue": "", + "stored": true, + "ordered": false + }, + { + "name": "scale", + "type": "number", + "flexberryType": "int", + "notNull": false, + "defaultValue": "", + "stored": true, + "ordered": false + }, + { + "name": "coordinateReferenceSystem", + "type": "string", + "flexberryType": "string", + "notNull": false, + "defaultValue": "", + "stored": true, + "ordered": false + }, + { + "name": "boundingBox", + "type": "string", + "flexberryType": "Geography", + "notNull": false, + "defaultValue": "", + "stored": true, + "ordered": false + }, + { + "name": "public", + "type": "boolean", + "flexberryType": "bool", + "notNull": false, + "defaultValue": "", + "stored": true, + "ordered": false + }, + { + "name": "owner", + "type": "string", + "flexberryType": "string", + "notNull": false, + "defaultValue": "", + "stored": true, + "ordered": false + }, + { + "name": "createTime", + "type": "date", + "flexberryType": "AuditNullableDateTime", + "notNull": false, + "defaultValue": "", + "stored": true, + "ordered": false + }, + { + "name": "creator", + "type": "string", + "flexberryType": "string", + "notNull": false, + "defaultValue": "", + "stored": true, + "ordered": false + }, + { + "name": "editTime", + "type": "date", + "flexberryType": "AuditNullableDateTime", + "notNull": false, + "defaultValue": "", + "stored": true, + "ordered": false + }, + { + "name": "editor", + "type": "string", + "flexberryType": "string", + "notNull": false, + "defaultValue": "", + "stored": true, + "ordered": false + } + ], + "belongsTo": [], + "hasMany": [], + "projections": [ + { + "name": "AuditView", + "modelName": "new-platform-flexberry-g-i-s-background-layer", + "attrs": [ + { + "name": "name", + "caption": "Наименование", + "hidden": false, + "index": 0 + }, + { + "name": "creator", + "caption": "Создатель", + "hidden": false, + "index": 1 + }, + { + "name": "createTime", + "caption": "Время создания", + "hidden": false, + "index": 2 + }, + { + "name": "editor", + "caption": "Редактор", + "hidden": false, + "index": 3 + }, + { + "name": "editTime", + "caption": "Время редактирования", + "hidden": false, + "index": 4 + } + ], + "belongsTo": [], + "hasMany": [] + }, + { + "name": "BackgroundLayerD", + "modelName": "new-platform-flexberry-g-i-s-background-layer", + "attrs": [ + { + "name": "name", + "caption": "Наименование", + "hidden": false, + "index": 0 + }, + { + "name": "description", + "caption": "Описание", + "hidden": false, + "index": 1 + }, + { + "name": "keyWords", + "caption": "Ключевые слова", + "hidden": false, + "index": 2 + }, + { + "name": "anyText", + "caption": "", + "hidden": false, + "index": 3 + }, + { + "name": "index", + "caption": "Индекс", + "hidden": false, + "index": 4 + }, + { + "name": "visibility", + "caption": "Видимость", + "hidden": false, + "index": 5 + }, + { + "name": "type", + "caption": "Тип", + "hidden": false, + "index": 6 + }, + { + "name": "settings", + "caption": "Настройки", + "hidden": false, + "index": 7 + }, + { + "name": "scale", + "caption": "Масштаб", + "hidden": false, + "index": 8 + }, + { + "name": "coordinateReferenceSystem", + "caption": "Система координат", + "hidden": false, + "index": 9 + }, + { + "name": "boundingBox", + "caption": "Граница", + "hidden": false, + "index": 10 + }, + { + "name": "public", + "caption": "", + "hidden": false, + "index": 11 + }, + { + "name": "owner", + "caption": "", + "hidden": false, + "index": 12 + } + ], + "belongsTo": [], + "hasMany": [] + }, + { + "name": "BackgroundLayerE", + "modelName": "new-platform-flexberry-g-i-s-background-layer", + "attrs": [ + { + "name": "name", + "caption": "Наименование", + "hidden": false, + "index": 0 + }, + { + "name": "description", + "caption": "Описание", + "hidden": false, + "index": 1 + }, + { + "name": "keyWords", + "caption": "Ключевые слова", + "hidden": false, + "index": 2 + }, + { + "name": "index", + "caption": "Индекс", + "hidden": false, + "index": 3 + }, + { + "name": "visibility", + "caption": "Видимость", + "hidden": false, + "index": 4 + }, + { + "name": "type", + "caption": "Тип", + "hidden": false, + "index": 5 + }, + { + "name": "settings", + "caption": "Настройки", + "hidden": false, + "index": 6 + }, + { + "name": "scale", + "caption": "Масштаб", + "hidden": false, + "index": 7 + }, + { + "name": "coordinateReferenceSystem", + "caption": "Система координат", + "hidden": false, + "index": 8 + }, + { + "name": "boundingBox", + "caption": "Граница", + "hidden": false, + "index": 9 + } + ], + "belongsTo": [], + "hasMany": [] + }, + { + "name": "BackgroundLayerL", + "modelName": "new-platform-flexberry-g-i-s-background-layer", + "attrs": [ + { + "name": "name", + "caption": "Наименование", + "hidden": false, + "index": 0 + }, + { + "name": "description", + "caption": "Описание", + "hidden": false, + "index": 1 + }, + { + "name": "type", + "caption": "Тип", + "hidden": false, + "index": 2 + } + ], + "belongsTo": [], + "hasMany": [] + } + ], + "stored": true, + "offline": true, + "external": false +} \ No newline at end of file