Skip to content

Commit

Permalink
Resolving properties from resources when building the available prope…
Browse files Browse the repository at this point in the history
…rties list for the datatable
  • Loading branch information
Dennis Meelis committed Sep 23, 2015
1 parent 21c05a9 commit 8bd3127
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 25 deletions.
60 changes: 37 additions & 23 deletions csComp/directives/DataTable/DataTableCtrl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -145,32 +145,46 @@ module DataTable {
var selectedLayer = this.findLayerById(this.selectedLayerId);
if (selectedLayer == null) return this.loadMapLayers();


this.$http.get(selectedLayer.url).
success((data: IGeoJsonFile) => {
this.dataset = data;

if (data.featureTypes == null) data.featureTypes = {};
if (data.features) {
data.features.forEach((f: IFeature) => {
if (f.properties.hasOwnProperty('FeatureTypeId')) {
f.featureTypeName = f.properties['FeatureTypeId'];
} else if (data.featureTypes.hasOwnProperty('Default')) {
f.featureTypeName = 'Default';
} else if (selectedLayer.defaultFeatureType != null && selectedLayer.defaultFeatureType != "") {
f.featureTypeName = selectedLayer.defaultFeatureType;
}
if (!(f.featureTypeName in data.featureTypes))
data.featureTypes[f.featureTypeName] = this.$layerService.getFeatureType(f);
});
this.updatepropertyType(data);
async.series([
(callback)=>{
if (selectedLayer.typeUrl != null) {
this.$layerService.loadTypeResources(selectedLayer.typeUrl, true, ()=>{
callback();
});
} else {
callback();
}
},
(callback)=> {
this.$http.get(selectedLayer.url).
success((data: IGeoJsonFile) => {
this.dataset = data;

if (data.featureTypes == null) data.featureTypes = {};
if (data.features) {
data.features.forEach((f: IFeature) => {
if (f.properties.hasOwnProperty('FeatureTypeId')) {
f.featureTypeName = f.properties['FeatureTypeId'];
} else if (data.featureTypes.hasOwnProperty('Default')) {
f.featureTypeName = 'Default';
} else if (selectedLayer.defaultFeatureType != null && selectedLayer.defaultFeatureType != "") {
f.featureTypeName = selectedLayer.defaultFeatureType;
}
if (!(f.featureTypeName in data.featureTypes))
data.featureTypes[f.featureTypeName] = this.$layerService.getFeatureType(f);
});
this.updatepropertyType(data);
}

callback();
}).
error((data, status, headers, config) => {
this.$messageBusService.notify("ERROR opening " + selectedLayer.title, "Could not get the data.");
callback();
});
}
]);

}).
error((data, status, headers, config) => {
this.$messageBusService.notify("ERROR opening " + selectedLayer.title, "Could not get the data.");
});
}

/**
Expand Down
12 changes: 10 additions & 2 deletions csComp/services/layer/LayerService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1503,8 +1503,16 @@ module csComp.Services {
*/
getFeatureType(feature: IFeature): IFeatureType {
if (feature.fType) return feature.fType;
if (!feature.featureTypeName)
feature.featureTypeName = this.getFeatureTypeId(feature);
if (!feature.featureTypeName) {
feature.featureTypeName = this.getFeatureTypeId(feature);
}

var ftKeys = Object.getOwnPropertyNames(this._featureTypes);
var featureTypes = ftKeys.map(key=>this._featureTypes[key]).filter(ft=>ft.name == feature.featureTypeName);
if (featureTypes.length > 0) {
this._featureTypes[feature.featureTypeName] = featureTypes[0];
}

if (!this._featureTypes.hasOwnProperty(feature.featureTypeName)) {
this._featureTypes[feature.featureTypeName] = csComp.Helpers.createDefaultType(feature);
//this._featureTypes[feature.featureTypeName] = this.typesResources[feature.layer.typeUrl].featureTypes[feature.featureTypeName];
Expand Down

0 comments on commit 8bd3127

Please sign in to comment.