Fullstack Portal Created by the HCMR for the Marine Strategy Framework Directive Program in order to cover demands and aspects considering extendability and maintainability
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

639 lines
15 KiB

//
// function init_config_create_tree_groups()
// {
// if (typeof _config_create_tree_groups!=="undefined")
// {
// if (_config_create_tree_groups.length>0)
// {
// Ext.each(_config_create_tree_groups,function(item){
// // maptab_west_layer_tree_panel_tree_json_store.getNodeById('maptab_west_layer_tree_panel_tabs_layers_layers_node').appendChild(item);
// // Ext.getCmp("maptab_west_layer_tree_panel_tree").getView().refresh(false);
// });
// }
// }
// }
function init_config_add_layer()
{
var mask=fn_loadingMask(Ext.getBody(),_mask_loading_message_default);
mask.show();
Ext.each(_config_load_layers,function(item){
var _layerObject;
switch(item._serviceType)
{
case "WMS":
var _serviceObject=wms_register_service(item._serviceUrl,item._username,item._password);
wms_fetch_layers(_serviceObject);
var _layers=item._layerName;
if (item._layerName=="*")
{
var _layers=wms_StoreColumnsServiceLayers.store;
for(var i=0;i<=i<_layers.getCount();i++)
{
try{
var _layer=_layers.getAt(i);
var _layerObject = _layer.get("_layerObject");
_layerObject._groupId = config_getPerLayer_GroupId(item,_layerObject._layerName);
wms_register_layer(_serviceObject,_layerObject);
}catch(err){}
}
}
else
{
var _layers=_layers.reverse();
for(var i=0;i<_layers.length;i++)
{
try{
var _layer=_layers[i];
var _layerObject;
_layerObject = wms_StoreColumnsServiceLayers.store.findRecord('_layerName', _layer,0,false,true,true).get("_layerObject");
if (_layerObject)
{
_layerObject._groupId = config_getPerLayer_GroupId(item,_layer);
wms_register_layer(_serviceObject,_layerObject);
}
}catch(err){}
}
}
break;
case "WMTS":
var _serviceObject=wmts_register_service(item._serviceUrl,item._username,item._password);
wmts_fetch_layers(_serviceObject);
var _layers=item._layerName;
if (item._layerName=="*")
{
var _layers=wmts_StoreColumnsServiceLayers.store;
for(var i=0;i<=i<_layers.getCount();i++)
{
try{
var _layer=_layers.getAt(i);
var _layerObject = _layer.get("_layerObject");
_layerObject._groupId = config_getPerLayer_GroupId(item,_layerObject._layerName);
wmts_register_layer(_serviceObject,_layerObject);
}catch(err){}
}
}
else
{
var _layers=_layers.reverse();
for(var i=0;i<_layers.length;i++)
{
try
{
var _layer=_layers[i];
var _layerObject;
_layerObject = wmts_StoreColumnsServiceLayers.store.findRecord('_layerName', _layer,0,false,true,true).get("_layerObject");
if (_layerObject)
{
_layerObject._groupId = config_getPerLayer_GroupId(item,_layer);
wmts_register_layer(_serviceObject,_layerObject);
}
}catch(err){}
}
}
break;
case "WFS":
var _serviceObject=wfs_register_service(item._serviceUrl,item._username,item._password);
wfs_fetch_layers(_serviceObject);
item._layerName = item._layerNames;
var _layers=item._layerName;
if (item._layerName=="*")
{
var _layers=wfs_StoreColumnsServiceLayers.store;
for(var i=0;i<=i<_layers.getCount();i++)
{
try{
var _layer=_layers.getAt(i);
var _layerObject = _layer.get("_layerObject");
_layerObject._groupId = config_getPerLayer_GroupId(item,_layerObject._layerName);
wfs_register_layer(_serviceObject,_layerObject);
}catch(err){}
}
}
else
{
var _layers=_layers.reverse();
for(var i=0;i<_layers.length;i++)
{
try{
var _layer=_layers[i];
var _layerObject;
_layerObject = wfs_StoreColumnsServiceLayers.store.findRecord('_layerName', _layer,0,false,true,true).get("_layerObject");
if (_layerObject)
{
_layerObject._groupId = config_getPerLayer_GroupId(item,_layer);
wfs_register_layer(_serviceObject,_layerObject);
}
}catch(err){}
}
}
break;
case "CSW":
var _serviceObject=csw_register_service(item._serviceUrl,item._username,item._password);
break;
}
});
// maptab_west_layer_reorder_layer();
mask.hide();
}
function config_getPerLayer_GroupId(item,_layerName)
{
var _groupId= item._groupId;
if (typeof item._perLayerProperties!=="undefined")
{
Ext.each(item._perLayerProperties,function(_layerProperties){
Ext.iterate(_layerProperties,function(_propertyKey,_propertyValue){
if ((_propertyKey=="_layerName") && (_propertyValue==_layerName))
{
if (typeof _layerProperties._groupId!=="undefined")
{
_groupId=_layerProperties._groupId;
}
}
});
});
}
return _groupId;
}
function config_update_layerObjectProperties(_layerObject,_configItem)
{
if (_layerObject)
{
Ext.iterate(_configItem._generalProperties,function(_propertyKey,_propertyValue)
{
var _hasCustomIndex=fn_objIndexOf(_configItem._perLayerProperties,"_layerName",_layerObject._layerName);
var _hasCustom=false;
if (_hasCustomIndex>=0)
{
var _perLayerItem=_configItem._perLayerProperties[_hasCustomIndex];
if (typeof _perLayerItem[_propertyKey]!=="undefined")
{
_propertyValue=_perLayerItem[_propertyKey];
_hasCustom=true;
if (_propertyValue!="inherit")
{
_layerObject[_propertyKey]=_propertyValue;
}
}
if((typeof _perLayerItem._attributes!=="undefined") && (_perLayerItem._attributes!=""))
{
if ((_perLayerItem._attributes=="*") && ((typeof _perLayerItem._attributesExceptions!=="undefined") || (_perLayerItem._attributesExceptions!=="")))
{
Ext.each(_perLayerItem._attributesExceptions,function(_exceptAttribute){
var _attributeIndex=fn_objIndexOf(_layerObject._attributesFields,"_attributeName",_exceptAttribute);
if (_attributeIndex>=0)
{
Ext.Array.erase(_layerObject._attributesFields,_attributeIndex,1);
Ext.Array.clean(_layerObject._attributesFields);
}
});
}
else if (_perLayerItem._attributes!="*")
{
var _attributesRemoved=[];
Ext.each(_layerObject._attributesFields,function(_attribute)
{
if (_perLayerItem._attributes.indexOf(_attribute._attributeName)<0)
{
_attributesRemoved.push(_attribute);
}
});
for(var i=0;i<_attributesRemoved.length;i++)
{
Ext.Array.remove(_layerObject._attributesFields,_attributesRemoved[i]);
}
Ext.Array.clean(_layerObject._attributesFields);
var _orderAttributes=[];
Ext.each(_perLayerItem._attributes,function(_attribute){
var _attributeIndex=fn_objIndexOf(_layerObject._attributesFields,"_attributeName",_attribute);
if (_attributeIndex>=0)
{
_orderAttributes.push(_layerObject._attributesFields[_attributeIndex]);
}
})
_layerObject._attributesFields=_orderAttributes;
}
}
if((typeof _perLayerItem._attributesFields!=="undefined") && (_perLayerItem._attributesFields.length>0))
{
Ext.each(_perLayerItem._attributesFields, function(_attribute)
{
var _attributeIndex=fn_objIndexOf(_layerObject._attributesFields,"_attributeName",_attribute._attributeName);
if (_attributeIndex>=0)
{
if (typeof _attribute._attributeType!=="undefined")
{
_layerObject._attributesFields[_attributeIndex]._attributeType=_attribute._attributeType;
}
if (typeof _attribute._attributeTranslation!=="undefined")
{
_layerObject._attributesFields[_attributeIndex]._attributeTranslation=_attribute._attributeTranslation;
}
if (typeof _attribute._attributeEditor!=="undefined")
{
_layerObject._attributesFields[_attributeIndex]._attributeEditor=_attribute._attributeEditor;
}
if (typeof _attribute._attributeIsSortable!=="undefined")
{
_layerObject._attributesFields[_attributeIndex]._attributeIsSortable=_attribute._attributeIsSortable;
}
if (typeof _attribute._attributeIsVisible!=="undefined")
{
_layerObject._attributesFields[_attributeIndex]._attributeIsVisible=_attribute._attributeIsVisible;
}
if (typeof _attribute._attributeIsSearchable!=="undefined")
{
_layerObject._attributesFields[_attributeIndex]._attributeIsSearchable=_attribute._attributeIsSearchable;
}
if (typeof _attribute._attributeVisible!=="undefined")
{
_layerObject._attributesFields[_attributeIndex]._attributeVisible=_attribute._attributeVisible;
}
if (typeof _attribute._attributeShowOnSummary!=="undefined")
{
_layerObject._attributesFields[_attributeIndex]._attributeShowOnSummary=_attribute._attributeShowOnSummary;
}
if (typeof _attribute.renderer!=="undefined")
{
_layerObject._attributesFields[_attributeIndex].renderer=_attribute.renderer;
}
}
});
}
}
if ((_propertyValue!="inherit") && (!_hasCustom))
{
if (_propertyValue=="*")
{
_layerObject[_propertyKey]=true;
}else if ((_propertyKey=="_layerTitle") || (_propertyKey=="_layerAbstract") || (_propertyKey=="_opacity"))
{
if (_layerObject[_propertyKey]!="")
{
_layerObject[_propertyKey]=_propertyValue;
}
}else
{
_layerObject[_propertyKey]=false;
if (Ext.Array.contains(_propertyValue, _layerObject._layerName))
{
_layerObject[_propertyKey]=true;
}
}
}
});
}
}
function config_init_layerScales(_layerObject)
{
var _config=new _config_init_map();
var _defaultScales=_config._defaultScales;
if(typeof _defaultScales!=="undefined")
{
var _arrayScales=[];
for(var i=0;i<_defaultScales.length;i++)
{
var _min=_defaultScales[i];
var _max;
if (_defaultScales[i+1])
{
_max=_defaultScales[i+1];
}
else
{
_max=-1;
}
var _minmax=[_min,_max];
_arrayScales.push(_minmax);
}
_layerObject._scales=_arrayScales;
}
}
function config_update_addLayer(_layerObject,_serviceObject)
{
if ((_layerObject) && (_serviceObject))
{
Ext.each(_config_load_layers,function(item)
{
if(item._serviceUrl==_serviceObject._serviceUrl)
{
if (item._layerName=="*")
{
config_update_layerObjectProperties(_layerObject,item);
}
else
{
if (Ext.Array.contains(item._layerName, _layerObject._layerName))
{
config_update_layerObjectProperties(_layerObject,item);
}
}
}
});
}
}
function config_findConfig(_layerObject,_serviceObject)
{
var output=false;
if (installing==false)
{
if ((_layerObject) && (_serviceObject))
{
for(var k in _config_load_layers)
{
var item = _config_load_layers[k];
if(item._serviceUrl==_serviceObject._serviceUrl)
{
if (Ext.Array.contains(item._layerName, _layerObject._layerName))
{
var _hasCustomIndex=fn_objIndexOf(item._perLayerProperties,"_layerName",_layerObject._layerName);
if (_hasCustomIndex>=0)
{
output=item._perLayerProperties[_hasCustomIndex];
}
}
}
}
}
}
return output;
}
function config_getProperty(_layerObject,_serviceObject,_propertyName,_currentValue)
{
var output=_currentValue;
if ((_layerObject) && (_serviceObject))
{
Ext.each(_config_load_layers,function(item)
{
if(item._serviceUrl==_serviceObject._serviceUrl)
{
if (typeof item._perLayerProperties!=="undefined")
{
Ext.each(item._perLayerProperties,function(layeritem)
{
if(layeritem._layerName==_layerObject._layerName)
{
if(typeof layeritem[_propertyName]!=="undefined")
{
if ((layeritem[_propertyName]!="") && (layeritem[_propertyName]!=null))
{
output=layeritem[_propertyName];
}
}
}
});
}
}
});
}
return output;
}
function config_setProperty(_layerObject,_serviceObject,_propertyName,_propertyValue)
{
if ((_layerObject) && (_serviceObject))
{
Ext.each(_config_load_layers,function(item)
{
if(item._serviceUrl==_serviceObject._serviceUrl)
{
if (typeof item._perLayerProperties!=="undefined")
{
Ext.each(item._perLayerProperties,function(layeritem)
{
if(layeritem._layerName==_layerObject._layerName)
{
layeritem[_propertyName] = _propertyValue;
}
});
}
}
});
}
}
function init_config_congigure_portal()
{
var _config=new _config_init_map();
if (Ext.getCmp("maptab_toolbar_edit_tab"))
{
if (typeof _config._canEdit!=="undefined")
{
if (_config._canEdit)
{
Ext.getCmp("maptab_toolbar_edit_tab").enable();
}
else
{
Ext.getCmp("maptab_toolbar_edit_tab").disable();
}
}
}
if (typeof _config._canAddService!=="undefined")
{
if (_config._canAddService)
{
return;
// Ext.getCmp("maptab_west_layer_tree_panel_add_btn").enable();
}
else
{
Ext.getCmp("maptab_west_layer_tree_panel_add_btn").disable();
}
}
if (typeof _config._canRemoveLayer!=="undefined")
{
if (_config._canRemoveLayer)
{
Ext.getCmp("maptab_west_layer_tree_panel_remove_btn").enable();
}
else
{
Ext.getCmp("maptab_west_layer_tree_panel_remove_btn").disable();
}
}
}
function config_add_layer_from_url()
{
var url=fn_getParameterByName("service_url");
if ((url!=null) && (url!="")) {
var _serviceObject=wms_register_service(url,"","");
wms_fetch_layers(_serviceObject);
var _layers=wms_StoreColumnsServiceLayers.store;
var _layerObject;
var layer_name=fn_getParameterByName("layer_name");
_layerObject = wms_StoreColumnsServiceLayers.store.findRecord('_layerName',layer_name,0,false,true,true).get("_layerObject");
if (_layerObject) {
wms_register_layer(_serviceObject,_layerObject);
}
var bbox=fn_getParameterByName("bbox");
if ((bbox!=null) && (bbox!="")) {
bbox=new OpenLayers.Bounds.fromString(bbox);
if (mapGetCurrentProjection()!="EPSG:4326") {
bbox=bbox.transform(new OpenLayers.Projection("EPSG:4326"),new OpenLayers.Projection(mapGetCurrentProjection()));
}
map.zoomToExtent(bbox);
}
}
}
var init_onloadfinished_fn = new Array();
Ext.onReady(function()
{
if (typeof fn_setConfigPolicy == 'function') {
fn_setConfigPolicy();
}
// init_leaflet_map();
// init_map();
init_config_congigure_portal();
// init_config_create_tree_groups();
setTimeout(function(){
init_config_add_layer();
config_add_layer_from_url();
// maptab_west_search_settings_grid_on_add_remove_layer();
// init_maptab_west_search_settings_grid_store_populate();
Ext.each(init_onloadfinished_fn,function(item)
{
if(item) {
item();
}
});
},0);
});